Comparing an array element to a value

Status
Not open for further replies.

WiseCyan

Warper
Member
Joined
Apr 22, 2019
Messages
3
Reaction score
1
First Language
German
Primarily Uses
RMMV
Hello, everyone! First time poster here - hope I hit the correct forum for this kind of thread :)

I'm having problems getting some code to work. I am an absolute beginner when it comes to using script blocks so I'm terribly sorry if my mistake is one that is totally obvious to you - definitely isn't to me ^^"

This is the part that is getting me headaches in RMMV:

Code:
* If: Player is facing Down
* * Script:

      if ($gameVariables.value(3)[$gameVariables.value(11)] == 0) {
        $gameMessage.add("Ping! Fehler!");
      } else {
        $gameTemp.reserveCommonEvent(2);
      }
  *
: End
*

By the time this event runs, the 11th element of Var[3] usually is not equal to 0, meaning "else" code should be carried out. But no matter what value I set my array element to before I activate the event, only the "then" code is carried out while "else" never takes place. Why does this happen? What have I been doing wrong? I tried using === instead of ==, but that does not seem to change the outcome.

Any help is greatly appreciated! Thanks in advance :)
 

Kes

Veteran
Veteran
Joined
Aug 3, 2012
Messages
22,299
Reaction score
11,713
First Language
English
Primarily Uses
RMVXA
[move]Learning Javascript[/move]
 

Aloe Guvner

Walrus
Veteran
Joined
Sep 28, 2017
Messages
1,628
Reaction score
1,115
First Language
English
Primarily Uses
RMMV
Looks like you're using variable #3 and variable #11, what are those values when the event runs?

Code:
if ($gameVariables.value(3)[$gameVariables.value(11)] == 0) {
Let's assume that:
  • Variable #3 is an array
  • Variable #11 has a value, let's say 5

Your formula would check the 6th element of the array.
Code:
if ($gameVariables.value(3)[$gameVariables.value(11)] == 0)
// if variable #11 is 5, then it's the same as this:
if ($gameVariables.value(3)[5] == 0)
Does that make sense?
 

WiseCyan

Warper
Member
Joined
Apr 22, 2019
Messages
3
Reaction score
1
First Language
German
Primarily Uses
RMMV
Yes, that is how it works. Variable 3 is an array containing 81 elements with Variable 11 used to point to the element desired.

Thank you so much for making me remember I have to decrease var#11 by one before executing the code above! Through all the revisions I've had til now I am pretty sure I had the code do that with it still not working, but right now it appears to have been fixed! My problem is now solved :D

Just in case other people suffer the same problem and are wondering how I altered my code, here is the working version:


Code:
* If: Player is facing Down
   * Script:
   * Control Variables: #0011 DNG_CURR_ROOM -= 1
      if ($gameVariables.value(3)[$gameVariables.value(11)] == 0) {
        $gameMessage.add("Ping! Fehler!");
      } else {
        $gameTemp.reserveCommonEvent(2);
      }
   * Control Variables: #0011 DNG_CURR_ROOM += 1
   *
: End
*
I am new to this board... do I have to mark this as solved now or anything of the sort? :o
 

Aloe Guvner

Walrus
Veteran
Joined
Sep 28, 2017
Messages
1,628
Reaction score
1,115
First Language
English
Primarily Uses
RMMV
Right, array indexes start at zero, so array[4] is the 5th item.

If you wanted to make it a little shorter you could subtract 1 in the same line, without actually changing the value of variable 11
Code:
if ($gameVariables.value(3)[$gameVariables.value(11) - 1] == 0)
For solved threads, click the "report" button and ask the moderators to mark the thread as solved
 

WiseCyan

Warper
Member
Joined
Apr 22, 2019
Messages
3
Reaction score
1
First Language
German
Primarily Uses
RMMV
Thank you very much for the additional information, that is very helpful to me! Will do that!
 

slimmmeiske2

Little Red Riding Hood
Global Mod
Joined
Sep 6, 2012
Messages
7,867
Reaction score
5,240
First Language
Dutch
Primarily Uses
RMXP

This thread is being closed, due to being solved. If for some reason you would like this thread re-opened, please report this post and leave a message why. Thank you.

 
Status
Not open for further replies.

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

Latest Threads

Latest Profile Posts

Our latest feature is an interview with... me?!

People4_2 (Capelet off and on) added!

Just beat the last of us 2 last night and starting jedi: fallen order right now, both use unreal engine & when I say i knew 80% of jedi's buttons right away because they were the same buttons as TLOU2 its ridiculous, even the same narrow hallway crawl and barely-made-it jump they do. Unreal Engine is just big budget RPG Maker the way they make games nearly identical at its core lol.
Can someone recommend some fun story-heavy RPGs to me? Coming up with good gameplay is a nightmare! I was thinking of making some gameplay platforming-based, but that doesn't work well in RPG form*. I also was thinking of removing battles, but that would be too much like OneShot. I don't even know how to make good puzzles!
one bad plugin combo later and one of my followers is moonwalking off the screen on his own... I didn't even more yet on the new map lol.

Forum statistics

Threads
106,034
Messages
1,018,446
Members
137,820
Latest member
georg09byron
Top