Ignore Layer Passability

Shaz

Veteran
Veteran
Joined
Mar 2, 2012
Messages
40,098
Reaction score
13,704
First Language
English
Primarily Uses
RMMV
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:

Changing terrain tag on flower tiles (notice only red/yellow flowers changed - white still set to 0)

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.

How to Use

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
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.
 

EternalShadow

Veteran
Veteran
Joined
Sep 16, 2012
Messages
5,781
Reaction score
1,041
First Language
English
Primarily Uses
Perfect, just what I need for when the grass reaches the edges of the cliff!
 

Tsukihime

Veteran
Veteran
Joined
Jun 30, 2012
Messages
8,564
Reaction score
3,846
First Language
English
Never knew that was the reason why some people were having strange passability issues that looked like it should be working correctly.
 
Last edited by a moderator:

Shaz

Veteran
Veteran
Joined
Mar 2, 2012
Messages
40,098
Reaction score
13,704
First Language
English
Primarily Uses
RMMV
Yep, if there's something on the top layer and it's passable, then the tile is passable, without considering what's underneath. That goes back to the days of XP.

And it's a pain to have to make that something on the top layer IMpassable just so you can decorate to the edge of cliffs.
 
Last edited by a moderator:

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Profile Posts

People3_5 and People3_8 added!

so hopefully tomorrow i get to go home from the hospital i've been here for 5 days already and it's driving me mad. I miss my family like crazy but at least I get to use my own toiletries and my own clothes. My mom is coming to visit soon i can't wait to see her cause i miss her the most. :kaojoy:
Couple hours of work. Might use in my game as a secret find or something. Not sure. Fancy though no? :D
Holy stink, where have I been? Well, I started my temporary job this week. So less time to spend on game design... :(
Cartoonier cloud cover that better fits the art style, as well as (slightly) improved blending/fading... fading clouds when there are larger patterns is still somewhat abrupt for some reason.

Forum statistics

Threads
105,868
Messages
1,017,078
Members
137,580
Latest member
Snavi
Top