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
15,354
Reaction score
8,533
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,192
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
15,354
Reaction score
8,533
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,192
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
97
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
32
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
40,098
Reaction score
13,704
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 Posts

Latest Profile Posts

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.
Do you Find Tilesetting or Looking for Tilesets/Plugins more fun? Personally I like making my tileset for my Game (Cretaceous Park TM) xD
How many parameters is 'too many'??

Forum statistics

Threads
105,862
Messages
1,017,047
Members
137,569
Latest member
Shtelsky
Top