What am I doing wrong ?

Dissentrix

Veteran
Veteran
Joined
Oct 21, 2014
Messages
44
Reaction score
0
First Language
English
Primarily Uses
Hello to all,

I am completely new at this sort of thing. I'm making a game without scripts, and right now I'm in the process of creating torches. Now, I'm trying to do it so that when I use a match and a matchbox, one match will be deducted from your inventory. When I don't have the match, the text appears. When I don't have the matchbox, the text appears. When I have both, for some reason, the game crashes, with the message : "Script 'Game_Interpreter' line 750: NoMethodError occurred. undefined method `[]' for nil:NilClass".

Any idea what's causing this ? A pic of the event is attached, if that's any help.

Oh, and btw, I am using RMVX, and not Ace.

The Match Problem.png
 

Engr. Adiktuzmiko

Chemical Engineer, Game Developer, Using BlinkBoy'
Veteran
Joined
May 15, 2012
Messages
14,682
Reaction score
3,003
First Language
Tagalog
Primarily Uses
RMVXA
What's on the next page? Having the self switch A = ON before the change items can mean that the change items won't even run since the event will then change to the next page (assuming it has the self switch A = on as condition)


PS: There's a VX support sub-forum...
 

Dissentrix

Veteran
Veteran
Joined
Oct 21, 2014
Messages
44
Reaction score
0
First Language
English
Primarily Uses
What's on the next page? Having the self switch A = ON before the change items can mean that the change items won't even run since the event will then change to the next page (assuming it has the self switch A = on as condition)

PS: There's a VX support sub-forum...
Oh sorry, next time I'll post in the right forum. I'd casually clicked the rmvx ace page.

About my problem : putting the self switch after the event change resulted in the same error; here's the modified event, as well as the next page :

The Match Problem 2.png

Second page.png
 

Dissentrix

Veteran
Veteran
Joined
Oct 21, 2014
Messages
44
Reaction score
0
First Language
English
Primarily Uses
Oh, and thank you for taking the time to answer, as well as change this topic's place :)

Btw, the "lighting" switch just activates a light event underneath.
 
Last edited by a moderator:

Engr. Adiktuzmiko

Chemical Engineer, Game Developer, Using BlinkBoy'
Veteran
Joined
May 15, 2012
Messages
14,682
Reaction score
3,003
First Language
Tagalog
Primarily Uses
RMVXA
I didn't move it, only mods can do that.


Can you show me the area where line 750 belongs? I haven't installed VX so I can't check it myself


PS: for efficiency, remove the self switch, turn on the switch for lighting using the first page and use that same switch as the condition of the second page... And also just make the second page have direction fix and use action button as trigger instead of parallel, it's unnecessary.
 
Last edited by a moderator:

Dissentrix

Veteran
Veteran
Joined
Oct 21, 2014
Messages
44
Reaction score
0
First Language
English
Primarily Uses
Sure, here it is :

"when 3  # Item

      value = $game_party.item_number($data_items[@params[4]])

      actor = $game_actors[@parameters[1]]

      actor = $game_actors[@params[4]]"

This is line 748 to 751.

 

PS: Here's the full "Control Variables" part from the "Game_Interpreter" page :

"# * Control Variables

  #--------------------------------------------------------------------------

  def command_122

    value = 0

    case @params[3]  # Operand

    when 0  # Constant

      value = @params[4]

    when 1  # Variable

      value = $game_variables[@params[4]]

    when 2  # Random

      value = @params[4] + rand(@params[5] - @params[4] + 1)

    when 3  # Item

      value = $game_party.item_number($data_items[@params[4]])

      actor = $game_actors[@parameters[1]]

      actor = $game_actors[@params[4]]

      if actor != nil

        case @params[5]

        when 0  # Level

          value = actor.level

        when 1  # Experience

          value = actor.exp

        when 2  # HP

          value = actor.hp

        when 3  # MP

          value = actor.mp

        when 4  # Maximum HP

          value = actor.maxhp

        when 5  # Maximum MP

          value = actor.maxmp

        when 6  # Attack

          value = actor.atk

        when 7  # Defense

          value = actor.def

        when 8  # Spirit

          value = actor.spi

        when 9  # Agility

          value = actor.agi

        end

      end

    when 5  # Enemy

      enemy = $game_troop.members[@params[4]]

      if enemy != nil

        case @params[5]

        when 0  # HP

          value = enemy.hp

        when 1  # MP

          value = enemy.mp

        when 2  # Maximum HP

          value = enemy.maxhp

        when 3  # Maximum MP

          value = enemy.maxmp

        when 4  # Attack

          value = enemy.atk

        when 5  # Defense

          value = enemy.def

        when 6  # Spirit

          value = enemy.spi

        when 7  # Agility

          value = enemy.agi

        end

      end

    when 6  # Character

      character = get_character(@params[4])

      if character != nil

        case @params[5]

        when 0  # x-coordinate

          value = character.x

        when 1  # y-coordinate

          value = character.y

        when 2  # direction

          value = character.direction

        when 3  # screen x-coordinate

          value = character.screen_x

        when 4  # screen y-coordinate

          value = character.screen_y

        end

      end

    when 7  # Other

      case @params[4]

      when 0  # map ID

        value = $game_map.map_id

      when 1  # number of party members

        value = $game_party.members.size

      when 2  # gold

        value = $game_party.gold

      when 3  # steps

        value = $game_party.steps

      when 4  # play time

        value = Graphics.frame_count / Graphics.frame_rate

      when 5  # timer

        value = $game_system.timer / Graphics.frame_rate

      when 6  # save count

        value = $game_system.save_count

      end

    end

    for i in @params[0] .. @params[1]   # Batch control

      case @params[2]  # Operation

      when 0  # Set

        $game_variables = value

      when 1  # Add

        $game_variables += value

      when 2  # Sub

        $game_variables -= value

      when 3  # Mul

        $game_variables = value

      when 4  # Div

        $game_variables /= value if value != 0

      when 5  # Mod

        $game_variables %= value if value != 0

      end

      if $game_variables > 99999999    # Maximum limit check

        $game_variables = 99999999

      end

      if $game_variables < -99999999   # Minimum limit check

        $game_variables = -99999999

      end

    end

    $game_map.need_refresh = true

    return true

  end"
 
Last edited by a moderator:

Engr. Adiktuzmiko

Chemical Engineer, Game Developer, Using BlinkBoy'
Veteran
Joined
May 15, 2012
Messages
14,682
Reaction score
3,003
First Language
Tagalog
Primarily Uses
RMVXA
First, don't put a long code in that. If you need to do that, use spoiler tags...

So line 750 would be this line right?

actor = $game_actors[@parameters[1]]or was it this

Code:
value = $game_party.item_number($data_items[@params[4]])
I'm asking becoz the first one doesn't make sense, but counting from your post, it would be 750...Also in case you missed my PS:

PS: for efficiency, remove the self switch, turn on the switch for lighting using the first page and use that same switch as the condition of the second page... And also just make the second page have direction fix and use action button as trigger instead of parallel, it's unnecessary.
PS: Oh wait, I think that's it

try changing this

Code:
actor = $game_actors[@parameters[1]]
into this
Code:
actor = $game_actors[@params[1]]
All other lines in that code uses @params but your actor line uses @parameters, which is weird
 
Last edited by a moderator:

Dissentrix

Veteran
Veteran
Joined
Oct 21, 2014
Messages
44
Reaction score
0
First Language
English
Primarily Uses
Sorry about the wall of text, I'm still learning.

And you are correct, line 750 is : "actor = $game_actors[@parameters[1]]"

Thx for your PS, I used it :

Modified Event.png

Modified Event 2.png
 
Last edited by a moderator:

Engr. Adiktuzmiko

Chemical Engineer, Game Developer, Using BlinkBoy'
Veteran
Joined
May 15, 2012
Messages
14,682
Reaction score
3,003
First Language
Tagalog
Primarily Uses
RMVXA
This

I think that's it


try changing this

Code:
actor = $game_actors[@parameters[1]]
into this
Code:
actor = $game_actors[@params[1]]
All other lines in that code uses @params but your actor line uses @parameters, which is weird
 

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

Latest Threads

Latest Posts

Latest Profile Posts

How many parameters is 'too many'??
Yay, now back in action Happy Christmas time, coming back!






Back in action to develop the indie game that has been long overdue... Final Fallacy. A game that keeps on giving! The development never ends as the developer thinks to be the smart cookie by coming back and beginning by saying... "Oh bother, this indie game has been long overdue..." How could one resist such? No-one c
So I was playing with filters and this looked interesting...

Versus the normal look...

Kind of gives a very different feel. :LZSexcite:
To whom ever person or persons who re-did the DS/DS+ asset packs for MV (as in, they are all 48x48, and not just x2 the pixel scale) .... THANK-YOU!!!!!!!!! XwwwwX

Forum statistics

Threads
105,853
Messages
1,016,990
Members
137,562
Latest member
tamedeathman
Top