じ☆ve冰风 发表于 3 小时前

Ignore Layer Passability

Ignore Layer Passability 1.0

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:

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]
查看完整版本: Ignore Layer Passability