Hasiva

Space Traveller
Member
Joined
Jun 20, 2019
Messages
4
Reaction score
1
First Language
polish
Primarily Uses
RMVXA
Hello.
It's probably a beginners' question, but can you make conditional branches with AND and OR operators in Ace? I specifically want to do some statements with switches, but a solution for normal variables would be appreciated too. I know you can make one condition after another for AND, but I believe there is probably more efficient solution, that's why I'm asking.

Sorry if this was asked before, I'm completly new to RPG Makers and this forum and I couldn't find the info about this anywhere.
 

Hasiva

Space Traveller
Member
Joined
Jun 20, 2019
Messages
4
Reaction score
1
First Language
polish
Primarily Uses
RMVXA
Thanks for the info!
 

Heirukichi

Veteran
Veteran
Joined
Sep 24, 2015
Messages
1,453
Reaction score
620
First Language
Italian
Primarily Uses
RMVXA
Actually, even without that script, there is a "Script" option in the conditional branch Event Command, you can use that to place a code to evaluate.
 

Shiro-chan

Friendly Neighbourhood Neppy Maid
Veteran
Joined
Aug 7, 2018
Messages
193
Reaction score
58
First Language
German
Primarily Uses
RMVXA
Code:
$game_variables[x]>y or $game_switches[z]==true
$game_variables[x]>y and $game_switches[z]==true

Put things like this into the script option of your Conditional Branch.
 

Hasiva

Space Traveller
Member
Joined
Jun 20, 2019
Messages
4
Reaction score
1
First Language
polish
Primarily Uses
RMVXA
Code:
$game_variables[x]>y or $game_switches[z]==true
$game_variables[x]>y and $game_switches[z]==true

Put things like this into the script option of your Conditional Branch.

Thank you, that's even better!
I knew you could do this probably by scripting or something. Man, I must start learning Ruby as quick as possible.
 

Shiro-chan

Friendly Neighbourhood Neppy Maid
Veteran
Joined
Aug 7, 2018
Messages
193
Reaction score
58
First Language
German
Primarily Uses
RMVXA
It helps to check the scriptcall collection threads. Problem is mainly that Conditional Branches have so many possibilities that they're not covered, so for those it's best to ask in the help thread.

Also note that I tried both "xor" and "nand" operators, and neither works (! for negative also does not btw), so you will have to be a tad clever with just "and" and "or".
 

Heirukichi

Veteran
Veteran
Joined
Sep 24, 2015
Messages
1,453
Reaction score
620
First Language
Italian
Primarily Uses
RMVXA
Code:
$game_variables[x]>y or $game_switches[z]==true
$game_variables[x]>y and $game_switches[z]==true
Just try to avoid using "and" or "or" and use "&&" or "||" respectively. Using and/or is bad coding etiquette.
On top of it, there is absolutely no need to compare a switch to a boolean value. Switches are boolean values by themselves.
Code:
($game_variables[x]>y) && $game_switches[z] # and
($game_variables[x]>y) || $game_switches[z] # or
This does the same thing while being shorter.
 
Last edited:

Hasiva

Space Traveller
Member
Joined
Jun 20, 2019
Messages
4
Reaction score
1
First Language
polish
Primarily Uses
RMVXA
[...]Just try to avoid using "and" or "or" and use "&&" or "||" respectively. Using and/or is bad coding etiquette. [...]
Oh, in ruby you can use || and &&?
No worries, I'll be using this notation from now on then! ("and" and "or" looked too SQLish for me anyway.:kaoswt2:)
 

Heirukichi

Veteran
Veteran
Joined
Sep 24, 2015
Messages
1,453
Reaction score
620
First Language
Italian
Primarily Uses
RMVXA
Oh, in ruby you can use || and &&?
That syntax is the same for any programming language that I have ever used (except for Fortran). The main difference about them in ruby is operator precedence: "&&" has higher priority compared to "and" (similarly for "||" and "or"). If you want to know more about this you can take a look at the help file (F1 in your engine), these things are under Ruby Syntax.

However, just to give you a rough idea, what happens is this:
Code:
a && b or a || b = (a && b) || (a || b)
 
Last edited:

Shiro-chan

Friendly Neighbourhood Neppy Maid
Veteran
Joined
Aug 7, 2018
Messages
193
Reaction score
58
First Language
German
Primarily Uses
RMVXA
On top of it, there is absolutely no need to compare a switch to a boolean value. Switches are boolean values by themselves.
Code:
($game_variables[x]>y) && $game_switches[z] # and
($game_variables[x]>y) || $game_switches[z] # or
This does the same thing while being shorter.

So how do I short-write "switch is false" as the requirement?
 

Shiro-chan

Friendly Neighbourhood Neppy Maid
Veteran
Joined
Aug 7, 2018
Messages
193
Reaction score
58
First Language
German
Primarily Uses
RMVXA
Nvm, it was clearly a typo.
 

Heirukichi

Veteran
Veteran
Joined
Sep 24, 2015
Messages
1,453
Reaction score
620
First Language
Italian
Primarily Uses
RMVXA
Code:
!($game_switches[x])
Well, using parenthesis does not bring any harm.

@Shiro-chan anyway, you should always be wary when writing in ruby. Ruby is easy to read, but sometimes it does nasty things.
Code:
puts(2+3) # -> 5
puts(2 + 3) # -> 5
puts(2+ 3) # -> if I am not wrong this is 5 as well
puts(2 +3) # -> ERROR
 
Last edited:

Shiro-chan

Friendly Neighbourhood Neppy Maid
Veteran
Joined
Aug 7, 2018
Messages
193
Reaction score
58
First Language
German
Primarily Uses
RMVXA
Yeah, I noticed that when personalising some scripts. Anyway, looks like I'll have to do some improvements in various scriptcalls. Thanks again for the lessons.
 

Latest Threads

Latest Posts

Latest Profile Posts

Newbie, please be gentle
reworkMZ.png
To keep myself motivated to make the MZ SF tiles normal and usable modern tiles I like to make tiny maps and toggle between the options :3
Character selection in games be like
Special Tractor Operation! :kaojoy:
Current status screens for Shadows of the Earth: The Vrila'an Legend. Need to do something about the color scheme lol
Captura de pantalla (259).pngCaptura de pantalla (260).png

Forum statistics

Threads
122,083
Messages
1,146,341
Members
160,368
Latest member
slotgacorunsurtoto
Top