- Pokémon Essentials Version
- v21.1 ✅
- Also compatible with
- v21.1
I have this working on my project, but with fixes all over the place which made it harder to find all the changes I did.
I will leave a small disclaimer, when I was fiddling with this I may have cut out parts that weren't of use to me which may have removed certain features.
I downloaded a clean essentials just with hotfixes and following pkmn plugins to make sure I found all the code I edited, hopefully I didn't miss anything.
This still works like the old plugin: https://eeveeexpo.com/resources/396/
(I encourage to not use offset : 0 tho (personally I use 16), in my testing if I was fast enough going on and off stairs I could desync the follower with 0 offset for some reason)
I just made it compatible with v21.1 and made the stair events be kept separately for faster access, this way you can use side stairs in a map with dozens of events and not lag since it won't be looping through all the events, just the stair events.
I don't intend to update or improve this any further! In the case I missed something important to make this work I'll do my best to make it work, but that's all.
Instructions:
1. Download the .txt file attached to this post, copy its contents, paste it in an empty page above main.
2. Ctrl + Shift + F "class Game_Map".
Add:
After this line:
3. Next, in the same page, find " def setup(map_id) " (The one in the Game_Map tab)
And overwrite it with this:
4. Next, find " def fancy_moveto(new_x, new_y, leader)" in Game_Follower page
And overwrite that function with this:
I will leave a small disclaimer, when I was fiddling with this I may have cut out parts that weren't of use to me which may have removed certain features.
I downloaded a clean essentials just with hotfixes and following pkmn plugins to make sure I found all the code I edited, hopefully I didn't miss anything.
This still works like the old plugin: https://eeveeexpo.com/resources/396/
(I encourage to not use offset : 0 tho (personally I use 16), in my testing if I was fast enough going on and off stairs I could desync the follower with 0 offset for some reason)
I just made it compatible with v21.1 and made the stair events be kept separately for faster access, this way you can use side stairs in a map with dozens of events and not lag since it won't be looping through all the events, just the stair events.
I don't intend to update or improve this any further! In the case I missed something important to make this work I'll do my best to make it work, but that's all.
Instructions:
1. Download the .txt file attached to this post, copy its contents, paste it in an empty page above main.
2. Ctrl + Shift + F "class Game_Map".
Add:
Ruby:
attr_accessor :side_stairs
Ruby:
attr_accessor :need_refresh # refresh request flag
And overwrite it with this:
Ruby:
def setup(map_id)
@map_id = map_id
@map = load_data(sprintf("Data/Map%03d.rxdata", map_id))
@side_stairs = {} #Keep side stair events here
tileset = $data_tilesets[@map.tileset_id]
updateTileset
@fog_ox = 0
@fog_oy = 0
@fog_tone = Tone.new(0, 0, 0, 0)
@fog_tone_target = Tone.new(0, 0, 0, 0)
@fog_tone_duration = 0
@fog_tone_timer_start = nil
@fog_opacity_duration = 0
@fog_opacity_target = 0
@fog_opacity_timer_start = nil
self.display_x = 0
self.display_y = 0
@need_refresh = false
EventHandlers.trigger(:on_game_map_setup, map_id, @map, tileset)
@events = {}
@map.events.each_key do |i|
@events[i] = Game_Event.new(@map_id, @map.events[i], self)
end
#mss stores all side stairs
@events.values.each do |event|
add_side_stair(map_id, event)
end
#mss
@common_events = {}
(1...$data_common_events.size).each do |i|
@common_events[i] = Game_CommonEvent.new(i)
end
@scroll_distance_x = 0
@scroll_distance_y = 0
@scroll_speed = 4
end
And overwrite that function with this:
Ruby:
def fancy_moveto(new_x, new_y, leader)
if self.x - new_x == 1 && self.y == new_y
move_fancy(4)
elsif self.x - new_x == -1 && self.y == new_y
move_fancy(6)
elsif self.x == new_x && self.y - new_y == 1
move_fancy(8)
elsif self.x == new_x && self.y - new_y == -1
move_fancy(2)
elsif self.x - new_x == 2 && self.y == new_y
jump_fancy(4, leader)
elsif self.x - new_x == -2 && self.y == new_y
jump_fancy(6, leader)
elsif self.x == new_x && self.y - new_y == 2
jump_fancy(8, leader)
elsif self.x == new_x && self.y - new_y == -2
jump_fancy(2, leader)
#fix follower on stairs
elsif self.x - new_x == -1
move_fancy(6)
elsif self.x - new_x == 1
move_fancy(4)
#fix follower on stairs
elsif self.x != new_x || self.y != new_y
moveto(new_x, new_y)
end
end
- Credits
- Marin for the OG Side Stairs
Aioros for the update and performance change