Treetops behind cliff edges - problem & solution

Kryterion

Villager
Member
Joined
Sep 26, 2012
Messages
32
Reaction score
4
Primarily Uses
I was mapping recently when I came across an unusual problem that is best described with pictures.

tut_1.png

tut_2.png

tut_3.png

The reason for this is obvious: the passage for the tile is set to 'star', so it always appears above the character, no matter where you're standing. Clearly this is not acceptable! We want it to appear above the character when you're standing 'behind' it, and below when you're standing 'in front' of it - i.e., when you're on the cliff edge. The solution is pretty simple: you need to create the graphic as an event that 'knows' where you are on the map, so that it can change its priority accordingly. Experienced eventers have probably already worked out what I'm going to say (or else done this problem already), but for beginners, I'll explain it step-by-step.
 

First, create an event anywhere on the map. Preferably somewhere where it won't interfere with the play at all (I put these sort of events in the top-left so I can find it again if I need to). The only thing this event is going to contain is a variable that keeps track of the player's map co-ordinates. In this case, we're only concerned by the character's y-position.

Set the event trigger to parallel process.

In the event contents, right-click, insert > game progression > control variables.

Create a variable with the name of 'player y' (or some other useful description).

Leave the operation as 'set'.

Set the operand as game data > character > player > map y.

That's it for this event. Now go to where you want to place the treetop, and make a note of the map co-ordinates (it's given in the bottom right-hand corner of the screen). Again, we're only concerned by its y-position (remember grid co-ordinates are always given in the format "x,y" so it's the second number we want). For convenience I will refer to this number as 'event y'.

All that this event is going to contain is a process that watches the variable 'player y' and flips its priority accordingly. So again, set the event trigger to parallel process. Set the graphic to the treetop (obviously), and set the priority as 'above characters'.

In the event contents, place a conditional branch.

Set the condition for the branch as a variable > player y (or whatever you named it) > greater than > constant > [event y]. (While you're here, deselect the tick at the bottom that says 'set event handling when conditions do not apply', just for neatness.)

In the outcome of the branch, put control self switch > A = ON.

Now copy & paste the event page you just made.

In event tab 2, change the event's condition to self switch A is ON, and change the priority to below characters.

Change the condition of the branch from greater than to less than or equal to, and change the outcome of the branch to self switch A is OFF.

That's it! A simple, but I hope you agree, elegant solution to the problem. Now you can copy & paste the treetop event around the map as you need it. Just remember to change the value of [event y] everytime you place it.

tut_4.png
 
Last edited by a moderator:

Nova Toby

Veteran
Veteran
Joined
Mar 14, 2012
Messages
31
Reaction score
7
First Language
English
Primarily Uses
Great simple tutorial that's very useful. I've not encountered this problem before but when I do I will know what to do!
 

Bluevvorld

Villager
Member
Joined
Nov 18, 2013
Messages
9
Reaction score
3
First Language
Danish
Primarily Uses
This is pretty usefull in many ways, great way to do it,  thank you!
 

mlogan

Global Moderators
Global Mod
Joined
Mar 18, 2012
Messages
14,797
Reaction score
8,205
First Language
English
Primarily Uses
RMMV
I'm curious, how often does this issue occur?  I mean, it's great you figured out a solution and I can see this type of event possibly having other uses.  But wouldn't it have been much more simple to just not put a tree there?
 

Dark_Metamorphosis

What a horrible night to have a curse.
Veteran
Joined
Nov 23, 2012
Messages
2,194
Reaction score
382
First Language
Swedish
Primarily Uses
I'm curious, how often does this issue occur?  I mean, it's great you figured out a solution and I can see this type of event possibly having other uses.  But wouldn't it have been much more simple to just not put a tree there?
There might be tons of other scenarios where it could be useful as well (Not just with a tree top), so I think It's a valid tutorial :)
 

mlogan

Global Moderators
Global Mod
Joined
Mar 18, 2012
Messages
14,797
Reaction score
8,205
First Language
English
Primarily Uses
RMMV
I didn't say it wasn't valid.  To me it just seems overly complicated.  But I like to keep things simple, that's just me.
 
Last edited by a moderator:

Dark_Metamorphosis

What a horrible night to have a curse.
Veteran
Joined
Nov 23, 2012
Messages
2,194
Reaction score
382
First Language
Swedish
Primarily Uses
I didn't say it wasn't valid.  To me it just seems overly complicated.  But I like to keep things simple, that's just me.
True. I wouldn't have used this for a single tree perhaps, but I can see how this tutorial could be used in other cases.. and then I think It's a simple solution to a problem :)
 
Last edited by a moderator:

Napoleon

Veteran
Veteran
Joined
Dec 29, 2012
Messages
869
Reaction score
96
First Language
Dutch
Primarily Uses
I'm curious, how often does this issue occur?  I mean, it's great you figured out a solution and I can see this type of event possibly having other uses.  But wouldn't it have been much more simple to just not put a tree there?
It also happens to chairs..  So it is pretty common, for me at least.
 

Cosmic Architect

Architect of Worlds
Veteran
Joined
Nov 22, 2014
Messages
39
Reaction score
7
First Language
English
Primarily Uses
N/A
Quite useful for two block character sprites also. Thanks for the tutorial.
 

wolfpak692

Veteran
Veteran
Joined
May 18, 2016
Messages
127
Reaction score
31
First Language
English
Primarily Uses
so, i am just not getting this... am i creating 2 seperate events? one to track the Y and the other for the conditional branch? or is this all one event that consists of 2 pages? I have tried both ways and after over an hour, it still doesn't work for me...
 

Shaz

Veteran
Veteran
Joined
Mar 2, 2012
Messages
39,413
Reaction score
12,947
First Language
English
Primarily Uses
RMMV
The 'Star Passability Fix' script by Neon Black should fix this problem without you needing to use events.  Check and see if it's in your script list.  If it's not, do a search for it (it's in a new project by default if you have the latest version of Ace), and add it to your project in the Materials section.
 

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

Latest Threads

Latest Profile Posts

If anyone here is looking for another high-potential RPGMaker game--besides She Dreams Elsewhere--be sure to follow Lawmage Academy. Good social media presence will take that game far.
Lol, I was about to write a small tutorial and realized it would belong to the MZ section ....that does not exist yet.
I've noticed that more videos on YouTube have these segmented bookmark things in the videos themselves. It's nice being able to jump to parts of a video you want, and to have them all clearly labelled.
Why you do this? Now I have to buy the new RPG Maker xD
I've always dreaded planning for my games so I just didn't plan at all. That... didn't work out after all. :kaosigh:
Turns out it can be kind of fun if you keep the scope small and don't take it way too seriously.

Forum statistics

Threads
99,574
Messages
966,792
Members
131,229
Latest member
jackermv
Top