HELP WITH MY APPLES
Posts
Pages:
1
ok i didn't really feel like reading thru 11 pages of forums so i figured i'd just post this, this is how it goes i have apples that i want to add to an inventory BUT i want to add X amounts of apples up to 5 else don't do anything so i want to add apples till apples = 5 no matter how many the player currently has in thier inventory ...i've tried several ways of doing this and i failed each time if anyone would care to lend me a hand in how to do this it would be awesome thnx
Ultimahellmaster
Ultimahellmaster
What Maker?
In RM2k/3, you can use a variables.
Set Variable NumOfApples = Item: Apple, In Inventory
Set Variable AddApples = 5
Variable AddApples NumOfApples
Conditional Branch If: AddApples > 0
Add Item: Apple, Quantity: Variable: AddApples
End If
Makes sense?
Basically, you find out how many apples they have, find out how many they'd need to make 5, and then add the difference to the Inventory.
In RM2k/3, you can use a variables.
Set Variable NumOfApples = Item: Apple, In Inventory
Set Variable AddApples = 5
Variable AddApples NumOfApples
Conditional Branch If: AddApples > 0
Add Item: Apple, Quantity: Variable: AddApples
End If
Makes sense?
Basically, you find out how many apples they have, find out how many they'd need to make 5, and then add the difference to the Inventory.
ya it seems like it would work but i get an error which reads
Script `Game_Interpreter` line 750: NoMethodError occured.
undefined method ``for nil:NilClass
the few ways i tried before i even posted this i kept getting that error so i was wondering if i did anything wrong
Script `Game_Interpreter` line 750: NoMethodError occured.
undefined method ``for nil:NilClass
the few ways i tried before i even posted this i kept getting that error so i was wondering if i did anything wrong
Weird...that line in the script seems like it's an error, because it has no error and indeed seems capable of crashing it. Do this:
- Open up the script editor
- On the left side, select the Game_Interpreter script
- Scroll down to line 750, which should read this:
- Delete this line, or to be safe, comment it out by adding a # before it, like so:
Try again, hopefully that fixes it. If not, take a screenshot of your event commands so we can take a look at it.
- Open up the script editor
- On the left side, select the Game_Interpreter script
- Scroll down to line 750, which should read this:
actor = $game_actors[@parameters[1]]
#actor = $game_actors[@parameters[1]]
Try again, hopefully that fixes it. If not, take a screenshot of your event commands so we can take a look at it.
That's only one of the three errors in the control variables script 
Solution:
# This is stupid. Fuck you Enterbrain.
class Game_Interpreter
alias command_122_bug command_122
def command_122
value = 0
case @params # Operand
when 0 # Constant
value = @params
when 1 # Variable
value = $game_variables[@params]
when 2 # Random
value = @params + rand(@params - @params + 1)
when 3 # Item
value = $game_party.item_number($data_items[@params])
when 4 # Actor
actor = $game_actors[@params]
if actor != nil
case @params
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]
if enemy != nil
case @params
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)
if character != nil
case @params
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
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 .. @params # Batch control
case @params # 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
end
Copy it into a new script and it should work on its own.

Solution:
# This is stupid. Fuck you Enterbrain.
class Game_Interpreter
alias command_122_bug command_122
def command_122
value = 0
case @params # Operand
when 0 # Constant
value = @params
when 1 # Variable
value = $game_variables[@params]
when 2 # Random
value = @params + rand(@params - @params + 1)
when 3 # Item
value = $game_party.item_number($data_items[@params])
when 4 # Actor
actor = $game_actors[@params]
if actor != nil
case @params
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]
if enemy != nil
case @params
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)
if character != nil
case @params
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
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 .. @params # Batch control
case @params # 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
end
Copy it into a new script and it should work on its own.
Pages:
1
















