- 6
- Posts
- 3
- Years
- Seen Jul 31, 2020
Hey there!
So, I just set the terrain tag of some water tiles to StillWater (6), but for some reason it is not showing up in the emulator.
This is what it should look like: https://prntscr.com/tn6y7s
But once I emulate the game, this is what I get: https://prntscr.com/tn70p0
With regards to the scripts, I didn't modify them at all. I just added the WaterPondBubbles part under the "Main" script.
This is what I've got for PBTerrain:
-----------------
And this is for the WaterBubbles:
---------------
Now, when I try to use swimming, I get this error...
(This last error is happening anytime I press 'Accept'...)
I really hope somebody can help me with this.
So, I just set the terrain tag of some water tiles to StillWater (6), but for some reason it is not showing up in the emulator.
This is what it should look like: https://prntscr.com/tn6y7s
But once I emulate the game, this is what I get: https://prntscr.com/tn70p0
With regards to the scripts, I didn't modify them at all. I just added the WaterPondBubbles part under the "Main" script.
This is what I've got for PBTerrain:
Spoiler:
#===============================================================================
# Terrain tags
#===============================================================================
module PBTerrain
Ledge = 1
Grass = 2
Sand = 3
Rock = 4
DeepWater = 5
StillWater = 6
Water = 7
Waterfall = 8
WaterfallCrest = 9
TallGrass = 10
UnderwaterGrass = 11
Ice = 12
Neutral = 13
SootGrass = 14
Bridge = 15
Puddle = 16
def PBTerrain.isSurfable?(tag)
return PBTerrain.isWater?(tag)
end
def PBTerrain.isWater?(tag)
return tag==PBTerrain::Water ||
tag==PBTerrain::StillWater ||
tag==PBTerrain::DeepWater ||
tag==PBTerrain::WaterfallCrest ||
tag==PBTerrain::Waterfall
end
def PBTerrain.isPassableWater?(tag)
return tag==PBTerrain::Water ||
tag==PBTerrain::StillWater ||
tag==PBTerrain::DeepWater ||
tag==PBTerrain::WaterfallCrest
end
def PBTerrain.isJustWater?(tag)
return tag==PBTerrain::Water ||
tag==PBTerrain::StillWater ||
tag==PBTerrain::DeepWater
end
def PBTerrain.isGrass?(tag)
return tag==PBTerrain::Grass ||
tag==PBTerrain::TallGrass ||
tag==PBTerrain::UnderwaterGrass ||
tag==PBTerrain::SootGrass
end
def PBTerrain.isJustGrass?(tag) # The Poké Radar only works in these tiles
return tag==PBTerrain::Grass ||
tag==PBTerrain::SootGrass
end
def PBTerrain.isLedge?(tag)
return tag==PBTerrain::Ledge
end
def PBTerrain.isIce?(tag)
return tag==PBTerrain::Ice
end
def PBTerrain.isBridge?(tag)
return tag==PBTerrain::Bridge
end
def PBTerrain.hasReflections?(tag)
return tag==PBTerrain::StillWater ||
tag==PBTerrain::Puddle
end
def PBTerrain.onlyWalk?(tag)
return tag==PBTerrain::TallGrass ||
tag==PBTerrain::Ice
end
end
# Terrain tags
#===============================================================================
module PBTerrain
Ledge = 1
Grass = 2
Sand = 3
Rock = 4
DeepWater = 5
StillWater = 6
Water = 7
Waterfall = 8
WaterfallCrest = 9
TallGrass = 10
UnderwaterGrass = 11
Ice = 12
Neutral = 13
SootGrass = 14
Bridge = 15
Puddle = 16
def PBTerrain.isSurfable?(tag)
return PBTerrain.isWater?(tag)
end
def PBTerrain.isWater?(tag)
return tag==PBTerrain::Water ||
tag==PBTerrain::StillWater ||
tag==PBTerrain::DeepWater ||
tag==PBTerrain::WaterfallCrest ||
tag==PBTerrain::Waterfall
end
def PBTerrain.isPassableWater?(tag)
return tag==PBTerrain::Water ||
tag==PBTerrain::StillWater ||
tag==PBTerrain::DeepWater ||
tag==PBTerrain::WaterfallCrest
end
def PBTerrain.isJustWater?(tag)
return tag==PBTerrain::Water ||
tag==PBTerrain::StillWater ||
tag==PBTerrain::DeepWater
end
def PBTerrain.isGrass?(tag)
return tag==PBTerrain::Grass ||
tag==PBTerrain::TallGrass ||
tag==PBTerrain::UnderwaterGrass ||
tag==PBTerrain::SootGrass
end
def PBTerrain.isJustGrass?(tag) # The Poké Radar only works in these tiles
return tag==PBTerrain::Grass ||
tag==PBTerrain::SootGrass
end
def PBTerrain.isLedge?(tag)
return tag==PBTerrain::Ledge
end
def PBTerrain.isIce?(tag)
return tag==PBTerrain::Ice
end
def PBTerrain.isBridge?(tag)
return tag==PBTerrain::Bridge
end
def PBTerrain.hasReflections?(tag)
return tag==PBTerrain::StillWater ||
tag==PBTerrain::Puddle
end
def PBTerrain.onlyWalk?(tag)
return tag==PBTerrain::TallGrass ||
tag==PBTerrain::Ice
end
end
-----------------
And this is for the WaterBubbles:
Spoiler:
#===============================================================================
# # Klein Water Pond Bubbles for Pokémon Essentials
# # Give credits if you're using this!
# # https://kleinstudio.deviantart.com
#===============================================================================
# Terrain tag for Water Pond Bubbles, by default the one from reflected sprites
WATERPONDBUBBLE=PBTerrain::StillWater
WATERPONDBUBBLE=PBTerrain::Puddle
class PondWaterBubble
def initialize(event,position)
return if !$scene || !$scene.is_a?(Scene_Map) ||
event!=$game_player && (event.character_name=="" ||
event.name.include?("/nowb/"))
return if event!=$game_player && pbEventCommentInput(event,0,"NoWb")
character_sprites=$scene.spriteset.character_sprites
viewport=$scene.spriteset.viewport1
wbsprites=$scene.spriteset.wbsprites
nid=getNewId
fev=$game_map.events[nid]
rpgEvent=RPG::Event.new(position[0],position[1])
rpgEvent.id=nid
fev=Game_Event.new($game_map.map_id,rpgEvent,$game_map)
eventsprite=Sprite_Character.new(viewport,fev)
character_sprites.push(eventsprite)
wbsprites.push(PondWaterBubbleSprite.new(eventsprite,fev,viewport,
$game_map,position[2],nid,character_sprites,(event==$game_player)))
end
end
def getNewId
newId = 1
while $game_map.events[newId] != nil do
break if $game_map.events[newId].erased
newId += 1
end
return newId
end
class Game_Event < Game_Character
attr_reader :erased
end
class Sprite_Character
alias old_initialize_wb initialize
def initialize(viewport, character = nil)
old_initialize_wb(viewport, character)
@disposed=false
end
alias old_update_wb update
def update
return if @disposed
old_update_wb
end
alias old_dispose_wb dispose
def dispose
old_dispose_wb
@disposed=true
end
end
class Spriteset_Map
attr_accessor :character_sprites
attr_accessor :wbsprites
alias old_initialize_wb initialize
def initialize(map=nil)
old_initialize_wb(map)
@wbsprites=[]
end
def putWaterBubble(event,pos)
wb=PondWaterBubble.new(event,pos)
end
alias old_dispose_wb dispose
def dispose
old_dispose_wb
if @wbsprites!=nil
for sprite in @wbsprites
sprite.dispose
end
end
@wbsprites.clear
end
alias old_update_wb update
def update
old_update_wb
if @wbsprites!=nil
for sprite in @wbsprites
sprite.update
end
end
end
end
class Scene_Map
def spriteset?
return true if @spritesets!=nil
return false
end
end
class Game_Character
alias old_increase_wb increase_steps
def terrain_tag_pos(x=@x,y=@y)
return $game_map.terrain_tag(x, y)
end
def increase_steps
if terrain_tag_pos==WATERPONDBUBBLE
$scene.spriteset.putWaterBubble(self,[@x,@y,direction]) if $scene.is_a?(Scene_Map) &&
$scene.spriteset?
end
old_increase_wb
end
end
class PondWaterBubbleSprite
def initialize(sprite,event,viewport,map,direction,nid,chardata,player)
@rsprite=sprite
@sprite=Sprite.new(viewport)
@sprite.bitmap=BitmapCache.load_bitmap("Graphics/Pictures/waterpondbubble")
@actualframe=-2
@count=0
@[email protected]/@sprite.bitmap.height
@[email protected]
@sprite.src_rect.width=@width
pbDayNightTint(@sprite)
@event=event
@disposed=false
@map=map
@eventid=nid
@viewport=viewport
@chardata=chardata
@sprite.visible=false
update
end
def updateAnimation
@count+=1
if @count==6
if @actualframe<@frames
@actualframe+=1
@sprite.src_rect.x=@actualframe*@width
@sprite.visible=true if @actualframe>=0
end
@count=0
end
end
def dispose
if !@disposed
@disposed=true
@event.erase
for i in [email protected]
@chardata.delete_at(i) if @chardata==@rsprite
end
@rsprite.dispose
@sprite.dispose
@sprite=nil
end
end
def update
return if @disposed
updateAnimation
[email protected]@rsprite.ox
[email protected]@rsprite.oy
[email protected]_rect.width
[email protected]_rect.height
@sprite.x=x+width/2
@sprite.y=y+height
@sprite.ox=@width/2
@[email protected]
@[email protected]
if @actualframe>=@frames
dispose
end
end
end
# # Klein Water Pond Bubbles for Pokémon Essentials
# # Give credits if you're using this!
# # https://kleinstudio.deviantart.com
#===============================================================================
# Terrain tag for Water Pond Bubbles, by default the one from reflected sprites
WATERPONDBUBBLE=PBTerrain::StillWater
WATERPONDBUBBLE=PBTerrain::Puddle
class PondWaterBubble
def initialize(event,position)
return if !$scene || !$scene.is_a?(Scene_Map) ||
event!=$game_player && (event.character_name=="" ||
event.name.include?("/nowb/"))
return if event!=$game_player && pbEventCommentInput(event,0,"NoWb")
character_sprites=$scene.spriteset.character_sprites
viewport=$scene.spriteset.viewport1
wbsprites=$scene.spriteset.wbsprites
nid=getNewId
fev=$game_map.events[nid]
rpgEvent=RPG::Event.new(position[0],position[1])
rpgEvent.id=nid
fev=Game_Event.new($game_map.map_id,rpgEvent,$game_map)
eventsprite=Sprite_Character.new(viewport,fev)
character_sprites.push(eventsprite)
wbsprites.push(PondWaterBubbleSprite.new(eventsprite,fev,viewport,
$game_map,position[2],nid,character_sprites,(event==$game_player)))
end
end
def getNewId
newId = 1
while $game_map.events[newId] != nil do
break if $game_map.events[newId].erased
newId += 1
end
return newId
end
class Game_Event < Game_Character
attr_reader :erased
end
class Sprite_Character
alias old_initialize_wb initialize
def initialize(viewport, character = nil)
old_initialize_wb(viewport, character)
@disposed=false
end
alias old_update_wb update
def update
return if @disposed
old_update_wb
end
alias old_dispose_wb dispose
def dispose
old_dispose_wb
@disposed=true
end
end
class Spriteset_Map
attr_accessor :character_sprites
attr_accessor :wbsprites
alias old_initialize_wb initialize
def initialize(map=nil)
old_initialize_wb(map)
@wbsprites=[]
end
def putWaterBubble(event,pos)
wb=PondWaterBubble.new(event,pos)
end
alias old_dispose_wb dispose
def dispose
old_dispose_wb
if @wbsprites!=nil
for sprite in @wbsprites
sprite.dispose
end
end
@wbsprites.clear
end
alias old_update_wb update
def update
old_update_wb
if @wbsprites!=nil
for sprite in @wbsprites
sprite.update
end
end
end
end
class Scene_Map
def spriteset?
return true if @spritesets!=nil
return false
end
end
class Game_Character
alias old_increase_wb increase_steps
def terrain_tag_pos(x=@x,y=@y)
return $game_map.terrain_tag(x, y)
end
def increase_steps
if terrain_tag_pos==WATERPONDBUBBLE
$scene.spriteset.putWaterBubble(self,[@x,@y,direction]) if $scene.is_a?(Scene_Map) &&
$scene.spriteset?
end
old_increase_wb
end
end
class PondWaterBubbleSprite
def initialize(sprite,event,viewport,map,direction,nid,chardata,player)
@rsprite=sprite
@sprite=Sprite.new(viewport)
@sprite.bitmap=BitmapCache.load_bitmap("Graphics/Pictures/waterpondbubble")
@actualframe=-2
@count=0
@[email protected]/@sprite.bitmap.height
@[email protected]
@sprite.src_rect.width=@width
pbDayNightTint(@sprite)
@event=event
@disposed=false
@map=map
@eventid=nid
@viewport=viewport
@chardata=chardata
@sprite.visible=false
update
end
def updateAnimation
@count+=1
if @count==6
if @actualframe<@frames
@actualframe+=1
@sprite.src_rect.x=@actualframe*@width
@sprite.visible=true if @actualframe>=0
end
@count=0
end
end
def dispose
if !@disposed
@disposed=true
@event.erase
for i in [email protected]
@chardata.delete_at(i) if @chardata==@rsprite
end
@rsprite.dispose
@sprite.dispose
@sprite=nil
end
end
def update
return if @disposed
updateAnimation
[email protected]@rsprite.ox
[email protected]@rsprite.oy
[email protected]_rect.width
[email protected]_rect.height
@sprite.x=x+width/2
@sprite.y=y+height
@sprite.ox=@width/2
@[email protected]
@[email protected]
if @actualframe>=@frames
dispose
end
end
end
---------------
Now, when I try to use swimming, I get this error...
Spoiler:
---------------------------
Pokemon Essentials
---------------------------
[Pokémon Essentials version 17.2]
Exception: NoMethodError
Message: undefined method `isDeepWater?' for PBTerrain:Module
PField_FieldMoves:402
PField_FieldMoves:384:in `call'
EventHandlers:54:in `trigger'
EventHandlers:49:in `each'
EventHandlers:49:in `trigger'
Scene_Map:223:in `update'
Scene_Map:234:in `main'
Scene_Map:231:in `loop'
Scene_Map:236:in `main'
Main:49:in `mainFunctionDebug'
Pokemon Essentials
---------------------------
[Pokémon Essentials version 17.2]
Exception: NoMethodError
Message: undefined method `isDeepWater?' for PBTerrain:Module
PField_FieldMoves:402
PField_FieldMoves:384:in `call'
EventHandlers:54:in `trigger'
EventHandlers:49:in `each'
EventHandlers:49:in `trigger'
Scene_Map:223:in `update'
Scene_Map:234:in `main'
Scene_Map:231:in `loop'
Scene_Map:236:in `main'
Main:49:in `mainFunctionDebug'
(This last error is happening anytime I press 'Accept'...)
I really hope somebody can help me with this.
Last edited: