Ignore Layer Passability
Ignore Layer Passability 1.0Shaz
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:
Spoiler
http://www.ezmash.net/Dev/RPGMaker/VXAce/IgnoreLayerPassability/Passable1.png
Changing terrain tag on flower tiles (notice only red/yellow flowers changed - white still set to 0)
Spoiler
http://www.ezmash.net/Dev/RPGMaker/VXAce/IgnoreLayerPassability/Passable2.png
Game with script - game looks at cliff passability, and ignores the red and yellow flowers.Cannot walk over edge of cliff here.White flowers still let you walk on/off.
Spoiler
http://www.ezmash.net/Dev/RPGMaker/VXAce/IgnoreLayerPassability/Passable3.png
How to Use
Paste into new slot in Materials ABOVE other scripts
Script
Spoiler 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
next if flag & 0x10 != 0 # [☆]: No effect on passage
next if flag >> 12 == 1 # ignore passability on terrain 1
return trueif flag & bit == 0 # [○] : Passable
return false if flag & bit == bit # [×] : Impassable
end
return false # Impassable
end
end
Credit and Thanks
- 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.
本贴来自国际rpgmaker官方论坛作者:Shaz处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/ignore-layer-passability.6746/
页:
[1]