Ignore Layer Passability 1.0
Shaz
Shaz
Introduction
You know how you have a really nice, crisp cliff edge that you can't walk over, then you go and put a pretty flower or a bit of grass or a weed on it, and suddenly you can walk right off the cliff onto the level below? This script fixes that.
Features
- Use terrain tags to tell the game to ignore THAT tile when determining passability.
- Game then looks at the next layer down.
Screenshots
Game without script - you can walk on/off the cliffs where all these flowers are:
Paste into new slot in Materials ABOVE other scripts
Script
Code:
class Game_Map
#--------------------------------------------------------------------------
# * Check Passage
# bit: Inhibit passage check bit
#--------------------------------------------------------------------------
def check_passage(x, y, bit)
all_tiles(x, y).each do |tile_id|
flag = tileset.flags[tile_id]
next if flag & 0x10 != 0 # [☆]: No effect on passage
next if flag >> 12 == 1 # ignore passability on terrain 1
return true if flag & bit == 0 # [○] : Passable
return false if flag & bit == bit # [×] : Impassable
end
return false # Impassable
end
end
- Shaz - but please don't add me to your game credits for a 1-line fix.
- Thanks to Indrah for giving me the motivation to investigate this issue.
Author's Notes
This OVERWRITES the Game_Map.check_passage method. If you use any scripts that alias this method, they must be below this one. If you use any scripts that overwrite this method, just take that one line (flag >> 12) and paste it in at the same place.
This script ignores passage settings on any tile where the terrain has been set to 1. To use a different terrain tag, just change the the 1 to a different number.
