Let's make this happen:
GIF (Actions with item and Following Pokemon OW included).
First, save the image (named grass_anim) inside Graphics/Picture folder:
P.S: Thanks Maruno to riped the image.
If you want to use it in v16.2, check here:
https://www.pokecommunity.com/posts/10155104
Now, below 'Sprite_WaterReflection' script, paste a new one, called 'Sprite_TallGrass' or whatever you want. Then, inside the script, paste the code below:
Newest Code:
Older code
And finally, inside 'Sprite_Character' script, paste the lines:
I just edited like Surf Base works and made a little things to adapt to Tall Grass. Give me credits if used because was a lot of work to do that. @_@
![[PokeCommunity.com] [Essentials v16.2+] Tall Grass [PokeCommunity.com] [Essentials v16.2+] Tall Grass](https://i.imgur.com/ftLn3Vd.png)
GIF (Actions with item and Following Pokemon OW included).
First, save the image (named grass_anim) inside Graphics/Picture folder:
![[PokeCommunity.com] [Essentials v16.2+] Tall Grass [PokeCommunity.com] [Essentials v16.2+] Tall Grass](https://i.imgur.com/LGBg1Fe.png)
P.S: Thanks Maruno to riped the image.
If you want to use it in v16.2, check here:
https://www.pokecommunity.com/posts/10155104
Now, below 'Sprite_WaterReflection' script, paste a new one, called 'Sprite_TallGrass' or whatever you want. Then, inside the script, paste the code below:
Spoiler:
Newest Code:
Spoiler:
Code:
class Sprite_TallGrass
attr_reader :visible
attr_accessor :event
def initialize(sprite,event,viewport=nil)
@rsprite = sprite; @sprite = nil; @event = event; @viewport = viewport; @disposed = false;
@tallgrassbitmap = AnimatedBitmap.new("Graphics/Pictures/grass_anim")
@cws = @tallgrassbitmap.width/4; @chs = @tallgrassbitmap.height/4
update
end
def dispose; if !@disposed; @sprite.dispose if @sprite; @sprite = nil; @disposed = true; end; end
def disposed?; @disposed; end
def visible=(value); @visible = value; @sprite.visible = value if @sprite && [email protected]?; end
def jump_sprite
return unless @sprite
x = (@event.real_x - @event.map.display_x + 3) / 4 + (Game_Map::TILEWIDTH / 2)
y = (@event.real_y - @event.map.display_y + 3) / 4 + (Game_Map::TILEHEIGHT)
@sprite.x = x; @sprite.y = y; @sprite.z = @rsprite.z
end
def update
return if disposed? || !$scene || !$scene.is_a?(Scene_Map)
return jump_sprite if event.jumping?
if event.character_name =="" || event.character_name == "nil" || event.moving? ||
pbGetTerrainTag(event)!=PBTerrain::Grass || event.transparent
# Just-in-time disposal of sprite
if @sprite; @sprite.dispose; @sprite = nil; end; return
end
# Just-in-time creation of sprite
@sprite = Sprite.new(@viewport) if !@sprite
if @sprite
@sprite.bitmap = @tallgrassbitmap.bitmap; cw = @cws; ch = @chs
@sprite.x = @rsprite.x; @sprite.y = @rsprite.y
@sprite.ox = cw/2 +12; @sprite.oy = ch +15
@sprite.z = @rsprite.z
@sprite.zoom_x = @rsprite.zoom_x; @sprite.zoom_y = @rsprite.zoom_y
@sprite.tone = @rsprite.tone
@sprite.color = @rsprite.color
@sprite.opacity = @rsprite.opacity
end
end
end
Older code
Spoiler:
Code:
class Sprite_TallGrass
attr_reader :visible
attr_accessor :event
def initialize(sprite,event,viewport=nil)
@rsprite = sprite
@sprite = nil
@event = event
@viewport = viewport
@disposed = false
@tallgrassbitmap = AnimatedBitmap.new("Graphics/Pictures/grass_anim")
@cws = @tallgrassbitmap.height*2
@chs = @tallgrassbitmap.height*2
update
end
def dispose
if !@disposed
@sprite.dispose if @sprite
@sprite = nil
@disposed = true
end
end
def disposed?
@disposed
end
def visible=(value)
@visible = value
@sprite.visible = value if @sprite && [email protected]?
end
def update
return if disposed?
currentTag = pbGetTerrainTag(event)
if !$scene || !$scene.is_a?(Scene_Map) || event.character_name =="" || event.character_name == "nil" ||
currentTag!=PBTerrain::Grass || event.transparent
# Just-in-time disposal of sprite
if @sprite
@sprite.dispose
@sprite = nil
end
return
end
# Just-in-time creation of sprite
@sprite = Sprite.new(@viewport) if !@sprite
if @sprite
if currentTag==PBTerrain::Grass
@sprite.bitmap = @tallgrassbitmap.bitmap; cw = @cws; ch = @chs
end
@sprite.x = @rsprite.x
@sprite.y = @rsprite.y
@sprite.ox = cw/2 - 4
@sprite.oy = ch -20
@sprite.z = @rsprite.z
@sprite.zoom_x = @rsprite.zoom_x
@sprite.zoom_y = @rsprite.zoom_y
@sprite.tone = @rsprite.tone
@sprite.color = @rsprite.color
@sprite.opacity = @rsprite.opacity
if event.moving?
@sprite.visible = false
else
@sprite.visible = true
end
end
end
end
And finally, inside 'Sprite_Character' script, paste the lines:
Spoiler:
Code:
class Sprite_Character < RPG::Sprite
attr_accessor :character
def initialize(viewport, character = nil)
super(viewport)
@character = character
@oldbushdepth = 0
@spriteoffset = false
@reflection = Sprite_Reflection.new(self,character,viewport)
@surfbase = Sprite_SurfBase.new(self,character,viewport) if character==$game_player
[U][I][B]@tallgrass = Sprite_TallGrass.new(self,character,viewport)[/B][/I][/U]
update
end
Code:
def visible=(value)
super(value)
@reflection.visible = value if @reflection
[U][I][B]@tallgrass.visible = value if @tallgrass[/B][/I][/U]
end
Code:
def dispose
@bushbitmap.dispose if @bushbitmap
@bushbitmap = nil
@charbitmap.dispose if @charbitmap
@charbitmap = nil
@reflection.dispose if @reflection
@reflection = nil
[U][I][B]@tallgrass.dispose if @tallgrass
@tallgrass = nil[/B][/I][/U]
@surfbase.dispose if @surfbase
@surfbase = nil
super
end
Code:
# self.bush_depth = @character.bush_depth
if @character.animation_id!=0
animation = $data_animations[@character.animation_id]
animation(animation,true)
@character.animation_id = 0
end
@reflection.update if @reflection
[U][I][B]@tallgrass.update if @tallgrass[/B][/I][/U]
@surfbase.update if @surfbase
end
I just edited like Surf Base works and made a little things to adapt to Tall Grass. Give me credits if used because was a lot of work to do that. @_@
Last edited: