Files
infinitefusion-e18/Data/Scripts/003_Game processing/004_Interpreter_Commands.rb
infinitefusion 1e17cbe453 Revert "fixes mélangés..."
This reverts commit cd16986e30.
2022-07-21 19:57:56 -04:00

1028 lines
41 KiB
Ruby

#===============================================================================
# ** Interpreter
#-------------------------------------------------------------------------------
# This interpreter runs event commands. This class is used within the
# Game_System class and the Game_Event class.
#===============================================================================
class Interpreter
#-----------------------------------------------------------------------------
# * Event Command Execution
#-----------------------------------------------------------------------------
def execute_command
# Reached end of list of commands
if @index >= @list.size - 1
command_end
return true
end
# Make current command's parameters available for reference via @parameters
@parameters = @list[@index].parameters
# Branch by command code
case @list[@index].code
when 101 then return command_101 # Show Text
when 102 then return command_102 # Show Choices
when 402 then return command_402 # When [**]
when 403 then return command_403 # When Cancel
when 103 then return command_103 # Input Number
when 104 then return command_104 # Change Text Options
when 105 then return command_105 # Button Input Processing
when 106 then return command_106 # Wait
when 111 then return command_111 # Conditional Branch
when 411 then return command_411 # Else
when 112 then return command_112 # Loop
when 413 then return command_413 # Repeat Above
when 113 then return command_113 # Break Loop
when 115 then return command_115 # Exit Event Processing
when 116 then return command_116 # Erase Event
when 117 then return command_117 # Call Common Event
when 118 then return command_118 # Label
when 119 then return command_119 # Jump to Label
when 121 then return command_121 # Control Switches
when 122 then return command_122 # Control Variables
when 123 then return command_123 # Control Self Switch
when 124 then return command_124 # Control Timer
when 125 then return command_125 # Change Gold
when 126 then return command_126 # Change Items
when 127 then return command_127 # Change Weapons
when 128 then return command_128 # Change Armor
when 129 then return command_129 # Change Party Member
when 131 then return command_131 # Change Windowskin
when 132 then return command_132 # Change Battle BGM
when 133 then return command_133 # Change Battle End ME
when 134 then return command_134 # Change Save Access
when 135 then return command_135 # Change Menu Access
when 136 then return command_136 # Change Encounter
when 201 then return command_201 # Transfer Player
when 202 then return command_202 # Set Event Location
when 203 then return command_203 # Scroll Map
when 204 then return command_204 # Change Map Settings
when 205 then return command_205 # Change Fog Color Tone
when 206 then return command_206 # Change Fog Opacity
when 207 then return command_207 # Show Animation
when 208 then return command_208 # Change Transparent Flag
when 209 then return command_209 # Set Move Route
when 210 then return command_210 # Wait for Move's Completion
when 221 then return command_221 # Prepare for Transition
when 222 then return command_222 # Execute Transition
when 223 then return command_223 # Change Screen Color Tone
when 224 then return command_224 # Screen Flash
when 225 then return command_225 # Screen Shake
when 231 then return command_231 # Show Picture
when 232 then return command_232 # Move Picture
when 233 then return command_233 # Rotate Picture
when 234 then return command_234 # Change Picture Color Tone
when 235 then return command_235 # Erase Picture
when 236 then return command_236 # Set Weather Effects
when 241 then return command_241 # Play BGM
when 242 then return command_242 # Fade Out BGM
when 245 then return command_245 # Play BGS
when 246 then return command_246 # Fade Out BGS
when 247 then return command_247 # Memorize BGM/BGS
when 248 then return command_248 # Restore BGM/BGS
when 249 then return command_249 # Play ME
when 250 then return command_250 # Play SE
when 251 then return command_251 # Stop SE
when 301 then return command_301 # Battle Processing
when 601 then return command_601 # If Win
when 602 then return command_602 # If Escape
when 603 then return command_603 # If Lose
when 302 then return command_302 # Shop Processing
when 303 then return command_303 # Name Input Processing
when 311 then return command_311 # Change HP
when 312 then return command_312 # Change SP
when 313 then return command_313 # Change State
when 314 then return command_314 # Recover All
when 315 then return command_315 # Change EXP
when 316 then return command_316 # Change Level
when 317 then return command_317 # Change Parameters
when 318 then return command_318 # Change Skills
when 319 then return command_319 # Change Equipment
when 320 then return command_320 # Change Actor Name
when 321 then return command_321 # Change Actor Class
when 322 then return command_322 # Change Actor Graphic
when 331 then return command_331 # Change Enemy HP
when 332 then return command_332 # Change Enemy SP
when 333 then return command_333 # Change Enemy State
when 334 then return command_334 # Enemy Recover All
when 335 then return command_335 # Enemy Appearance
when 336 then return command_336 # Enemy Transform
when 337 then return command_337 # Show Battle Animation
when 338 then return command_338 # Deal Damage
when 339 then return command_339 # Force Action
when 340 then return command_340 # Abort Battle
when 351 then return command_351 # Call Menu Screen
when 352 then return command_352 # Call Save Screen
when 353 then return command_353 # Game Over
when 354 then return command_354 # Return to Title Screen
when 355 then return command_355 # Script
else return true # Other
end
end
def command_dummy
return true
end
#-----------------------------------------------------------------------------
# * End Event
#-----------------------------------------------------------------------------
def command_end
@list = nil
# If main map event and event ID are valid, unlock event
if @main && @event_id > 0 && $game_map.events[@event_id]
$game_map.events[@event_id].unlock
end
end
#-----------------------------------------------------------------------------
# * Command Skip
#-----------------------------------------------------------------------------
def command_skip
indent = @list[@index].indent
loop do
return true if @list[@index + 1].indent == indent
@index += 1
end
end
#-----------------------------------------------------------------------------
# * Command If
#-----------------------------------------------------------------------------
def command_if(value)
if @branch[@list[@index].indent] == value
@branch.delete(@list[@index].indent)
return true
end
return command_skip
end
#-----------------------------------------------------------------------------
# * Show Text
#-----------------------------------------------------------------------------
def command_101
return false if $game_temp.message_window_showing
message = @list[@index].parameters[0]
message_end = ""
commands = nil
number_input_variable = nil
number_input_max_digits = nil
# Check the next command(s) for things to add on to this text
loop do
next_index = pbNextIndex(@index)
case @list[next_index].code
when 401 # Continuation of 101 Show Text
text = @list[next_index].parameters[0]
message += " " if text != "" && message[message.length - 1, 1] != " "
message += text
@index = next_index
next
when 101 # Show Text
message_end = "\1"
when 102 # Show Choices
commands = @list[next_index].parameters
@index = next_index
when 103 # Input Number
number_input_variable = @list[next_index].parameters[0]
number_input_max_digits = @list[next_index].parameters[1]
@index = next_index
end
break
end
# Translate the text
message = _MAPINTL($game_map.map_id, message)
# Display the text, with commands/number choosing if appropriate
@message_waiting = true # Lets parallel process events work while a message is displayed
if commands
cmd_texts = []
for cmd in commands[0]
cmd_texts.push(_MAPINTL($game_map.map_id, cmd))
end
command = pbMessage(message + message_end, cmd_texts, commands[1])
@branch[@list[@index].indent] = command
elsif number_input_variable
params = ChooseNumberParams.new
params.setMaxDigits(number_input_max_digits)
params.setDefaultValue($game_variables[number_input_variable])
$game_variables[number_input_variable] = pbMessageChooseNumber(message + message_end, params)
$game_map.need_refresh = true if $game_map
else
pbMessage(message + message_end)
end
@message_waiting = false
return true
end
#-----------------------------------------------------------------------------
# * Show Choices
#-----------------------------------------------------------------------------
def command_102
@message_waiting = true
command = pbShowCommands(nil, @list[@index].parameters[0], @list[@index].parameters[1])
@message_waiting = false
@branch[@list[@index].indent] = command
Input.update # Must call Input.update again to avoid extra triggers
return true
end
#-----------------------------------------------------------------------------
# * When [**]
#-----------------------------------------------------------------------------
def command_402
if @branch[@list[@index].indent] == @parameters[0]
@branch.delete(@list[@index].indent)
return true
end
return command_skip
end
#-----------------------------------------------------------------------------
# * When Cancel
#-----------------------------------------------------------------------------
def command_403
if @branch[@list[@index].indent] == 4
@branch.delete(@list[@index].indent)
return true
end
return command_skip
end
#-----------------------------------------------------------------------------
# * Input Number
#-----------------------------------------------------------------------------
def command_103
@message_waiting = true
variable_number = @list[@index].parameters[0]
params = ChooseNumberParams.new
params.setMaxDigits(@list[@index].parameters[1])
params.setDefaultValue($game_variables[variable_number])
$game_variables[variable_number] = pbChooseNumber(nil, params)
$game_map.need_refresh = true if $game_map
@message_waiting = false
return true
end
#-----------------------------------------------------------------------------
# * Change Text Options
#-----------------------------------------------------------------------------
def command_104
return false if $game_temp.message_window_showing
$game_system.message_position = @parameters[0]
$game_system.message_frame = @parameters[1]
return true
end
#-----------------------------------------------------------------------------
# * Button Input Processing
#-----------------------------------------------------------------------------
def pbButtonInputProcessing(variable_number = 0, timeout_frames = 0)
ret = 0
timer = timeout_frames * Graphics.frame_rate / 20
loop do
Graphics.update
Input.update
pbUpdateSceneMap
# Check for input and break if there is one
for i in 1..18
ret = i if Input.trigger?(i)
end
break if ret != 0
# Count down the timer and break if it runs out
if timeout_frames > 0
timer -= 1
break if timer <= 0
end
end
Input.update
if variable_number && variable_number > 0
$game_variables[variable_number] = ret
$game_map.need_refresh = true if $game_map
end
return ret
end
def command_105
return false if @buttonInput
@buttonInput = true
pbButtonInputProcessing(@list[@index].parameters[0])
@buttonInput = false
@index += 1
return true
end
#-----------------------------------------------------------------------------
# * Wait
#-----------------------------------------------------------------------------
def command_106
@wait_count = @parameters[0] * Graphics.frame_rate / 20
return true
end
#-----------------------------------------------------------------------------
# * Conditional Branch
#-----------------------------------------------------------------------------
def command_111
result = false
case @parameters[0]
when 0 # switch
switch_name = $data_system.switches[@parameters[1]]
if switch_name && switch_name[/^s\:/]
result = (eval($~.post_match) == (@parameters[2] == 0))
else
result = ($game_switches[@parameters[1]] == (@parameters[2] == 0))
end
when 1 # variable
value1 = $game_variables[@parameters[1]]
value2 = (@parameters[2] == 0) ? @parameters[3] : $game_variables[@parameters[3]]
case @parameters[4]
when 0 then result = (value1 == value2)
when 1 then result = (value1 >= value2)
when 2 then result = (value1 <= value2)
when 3 then result = (value1 > value2)
when 4 then result = (value1 < value2)
when 5 then result = (value1 != value2)
end
when 2 # self switch
if @event_id > 0
key = [$game_map.map_id, @event_id, @parameters[1]]
result = ($game_self_switches[key] == (@parameters[2] == 0))
end
when 3 # timer
if $game_system.timer_working
sec = $game_system.timer / Graphics.frame_rate
result = (@parameters[2] == 0) ? (sec >= @parameters[1]) : (sec <= @parameters[1])
end
# when 4, 5 # actor, enemy
when 6 # character
character = get_character(@parameters[1])
result = (character.direction == @parameters[2]) if character
when 7 # gold
gold = $Trainer.money
result = (@parameters[2] == 0) ? (gold >= @parameters[1]) : (gold <= @parameters[1])
# when 8, 9, 10 # item, weapon, armor
when 11 # button
result = Input.press?(@parameters[1])
when 12 # script
result = execute_script(@parameters[1])
end
# Store result in hash
@branch[@list[@index].indent] = result
if @branch[@list[@index].indent]
@branch.delete(@list[@index].indent)
return true
end
return command_skip
end
#-----------------------------------------------------------------------------
# * Else
#-----------------------------------------------------------------------------
def command_411
if @branch[@list[@index].indent] == false # Could be nil, so intentionally checks for false
@branch.delete(@list[@index].indent)
return true
end
return command_skip
end
#-----------------------------------------------------------------------------
# * Loop
#-----------------------------------------------------------------------------
def command_112
return true
end
#-----------------------------------------------------------------------------
# * Repeat Above
#-----------------------------------------------------------------------------
def command_413
indent = @list[@index].indent
loop do
@index -= 1
return true if @list[@index].indent == indent
end
end
#-----------------------------------------------------------------------------
# * Break Loop
#-----------------------------------------------------------------------------
def command_113
indent = @list[@index].indent
temp_index = @index
loop do
temp_index += 1
return true if temp_index >= @list.size - 1 # Reached end of commands
# Skip ahead to after the [Repeat Above] end of the current loop
if @list[temp_index].code == 413 && @list[temp_index].indent < indent
@index = temp_index
return true
end
end
end
#-----------------------------------------------------------------------------
# * Exit Event Processing
#-----------------------------------------------------------------------------
def command_115
command_end
return true
end
#-----------------------------------------------------------------------------
# * Erase Event
#-----------------------------------------------------------------------------
def command_116
if @event_id > 0
$game_map.events[@event_id].erase if $game_map.events[@event_id]
$PokemonMap.addErasedEvent(@event_id) if $PokemonMap
end
@index += 1
return false
end
#-----------------------------------------------------------------------------
# * Call Common Event
#-----------------------------------------------------------------------------
def command_117
common_event = $data_common_events[@parameters[0]]
if common_event
@child_interpreter = Interpreter.new(@depth + 1)
@child_interpreter.setup(common_event.list, @event_id)
end
return true
end
#-----------------------------------------------------------------------------
# * Label
#-----------------------------------------------------------------------------
def command_118
return true
end
#-----------------------------------------------------------------------------
# * Jump to Label
#-----------------------------------------------------------------------------
def command_119
label_name = @parameters[0]
temp_index = 0
loop do
return true if temp_index >= @list.size - 1 # Reached end of commands
# Check whether this command is a label with the desired name
if @list[temp_index].code == 118 &&
@list[temp_index].parameters[0] == label_name
@index = temp_index
return true
end
# Command isn't the desired label, increment temp_index and keep looking
temp_index += 1
end
end
#-----------------------------------------------------------------------------
# * Control Switches
#-----------------------------------------------------------------------------
def command_121
should_refresh = false
for i in @parameters[0]..@parameters[1]
next if $game_switches[i] == (@parameters[2] == 0)
$game_switches[i] = (@parameters[2] == 0)
should_refresh = true
end
# Refresh map
$game_map.need_refresh = true if should_refresh
return true
end
#-----------------------------------------------------------------------------
# * Control Variables
#-----------------------------------------------------------------------------
def command_122
value = 0
case @parameters[3]
when 0 # invariable (fixed value)
value = @parameters[4]
when 1 # variable
value = $game_variables[@parameters[4]]
when 2 # random number
value = @parameters[4] + rand(@parameters[5] - @parameters[4] + 1)
# when 3, 4, 5 # item, actor, enemy
when 6 # character
character = get_character(@parameters[4])
if character
case @parameters[5]
when 0 then value = character.x # x-coordinate
when 1 then value = character.y # y-coordinate
when 2 then value = character.direction # direction
when 3 then value = character.screen_x # screen x-coordinate
when 4 then value = character.screen_y # screen y-coordinate
when 5 then value = character.terrain_tag.id_number # terrain tag
end
end
when 7 # other
case @parameters[4]
when 0 then value = $game_map.map_id # map ID
when 1 then value = $Trainer.pokemon_party.length # party members
when 2 then value = $Trainer.money # gold
# when 3 # steps
when 4 then value = Graphics.frame_count / Graphics.frame_rate # play time
when 5 then value = $game_system.timer / Graphics.frame_rate # timer
when 6 then value = $game_system.save_count # save count
end
end
# Apply value and operation to all specified game variables
for i in @parameters[0]..@parameters[1]
case @parameters[2]
when 0 # set
next if $game_variables[i] == value
$game_variables[i] = value
when 1 # add
next if $game_variables[i] >= 99999999
$game_variables[i] += value
when 2 # subtract
next if $game_variables[i] <= -99999999
$game_variables[i] -= value
when 3 # multiply
next if value == 1
$game_variables[i] *= value
when 4 # divide
next if value == 1 || value == 0
$game_variables[i] /= value
when 5 # remainder
next if value == 1 || value == 0
$game_variables[i] %= value
end
$game_variables[i] = 99999999 if $game_variables[i] > 99999999
$game_variables[i] = -99999999 if $game_variables[i] < -99999999
$game_map.need_refresh = true
end
return true
end
#-----------------------------------------------------------------------------
# * Control Self Switch
#-----------------------------------------------------------------------------
def command_123
if @event_id > 0
new_value = (@parameters[1] == 0)
key = [$game_map.map_id, @event_id, @parameters[0]]
if $game_self_switches[key] != new_value
$game_self_switches[key] = new_value
$game_map.need_refresh = true
end
end
return true
end
#-----------------------------------------------------------------------------
# * Control Timer
#-----------------------------------------------------------------------------
def command_124
$game_system.timer_working = (@parameters[0] == 0)
$game_system.timer = @parameters[1] * Graphics.frame_rate if @parameters[0] == 0
return true
end
#-----------------------------------------------------------------------------
# * Change Gold
#-----------------------------------------------------------------------------
def command_125
value = (@parameters[1] == 0) ? @parameters[2] : $game_variables[@parameters[2]]
value = -value if @parameters[0] == 1 # Decrease
$Trainer.money += value
return true
end
def command_126; command_dummy; end # Change Items
def command_127; command_dummy; end # Change Weapons
def command_128; command_dummy; end # Change Armor
def command_129; command_dummy; end # Change Party Member
#-----------------------------------------------------------------------------
# * Change Windowskin
#-----------------------------------------------------------------------------
def command_131
for i in 0...Settings::SPEECH_WINDOWSKINS.length
next if Settings::SPEECH_WINDOWSKINS[i] != @parameters[0]
$PokemonSystem.textskin = i
MessageConfig.pbSetSpeechFrame("Graphics/Windowskins/" + Settings::SPEECH_WINDOWSKINS[i])
return true
end
return true
end
#-----------------------------------------------------------------------------
# * Change Battle BGM
#-----------------------------------------------------------------------------
def command_132
($PokemonGlobal.nextBattleBGM = @parameters[0]) ? @parameters[0].clone : nil
return true
end
#-----------------------------------------------------------------------------
# * Change Battle End ME
#-----------------------------------------------------------------------------
def command_133
($PokemonGlobal.nextBattleME = @parameters[0]) ? @parameters[0].clone : nil
return true
end
#-----------------------------------------------------------------------------
# * Change Save Access
#-----------------------------------------------------------------------------
def command_134
$game_system.save_disabled = (@parameters[0] == 0)
return true
end
#-----------------------------------------------------------------------------
# * Change Menu Access
#-----------------------------------------------------------------------------
def command_135
$game_system.menu_disabled = (@parameters[0] == 0)
return true
end
#-----------------------------------------------------------------------------
# * Change Encounter
#-----------------------------------------------------------------------------
def command_136
$game_system.encounter_disabled = (@parameters[0] == 0)
$game_player.make_encounter_count
return true
end
#-----------------------------------------------------------------------------
# * Transfer Player
#-----------------------------------------------------------------------------
def command_201
return true if $game_temp.in_battle
return false if $game_temp.player_transferring ||
$game_temp.message_window_showing ||
$game_temp.transition_processing
# Set up the transfer and the player's new coordinates
$game_temp.player_transferring = true
if @parameters[0] == 0 # Direct appointment
$game_temp.player_new_map_id = @parameters[1]
$game_temp.player_new_x = @parameters[2]
$game_temp.player_new_y = @parameters[3]
$game_temp.player_new_direction = @parameters[4]
else # Appoint with variables
$game_temp.player_new_map_id = $game_variables[@parameters[1]]
$game_temp.player_new_x = $game_variables[@parameters[2]]
$game_temp.player_new_y = $game_variables[@parameters[3]]
$game_temp.player_new_direction = @parameters[4]
end
@index += 1
# If transition happens with a fade, do the fade
if @parameters[5] == 0
Graphics.freeze
$game_temp.transition_processing = true
$game_temp.transition_name = ""
end
return false
end
#-----------------------------------------------------------------------------
# * Set Event Location
#-----------------------------------------------------------------------------
def command_202
return true if $game_temp.in_battle
character = get_character(@parameters[0])
return true if character.nil?
# Move the character
if @parameters[1] == 0 # Direct appointment
character.moveto(@parameters[2], @parameters[3])
elsif @parameters[1] == 1 # Appoint with variables
character.moveto($game_variables[@parameters[2]], $game_variables[@parameters[3]])
else # Exchange with another event
character2 = get_character(@parameters[2])
if character2
old_x = character.x
old_y = character.y
character.moveto(character2.x, character2.y)
character2.moveto(old_x, old_y)
end
end
# Set character's direction
case @parameters[4]
when 2 then character.turn_down
when 4 then character.turn_left
when 6 then character.turn_right
when 8 then character.turn_up
end
return true
end
#-----------------------------------------------------------------------------
# * Scroll Map
#-----------------------------------------------------------------------------
def command_203
return true if $game_temp.in_battle
return false if $game_map.scrolling?
$game_map.start_scroll(@parameters[0], @parameters[1], @parameters[2])
return true
end
#-----------------------------------------------------------------------------
# * Change Map Settings
#-----------------------------------------------------------------------------
def command_204
case @parameters[0]
when 0 # panorama
$game_map.panorama_name = @parameters[1]
$game_map.panorama_hue = @parameters[2]
when 1 # fog
$game_map.fog_name = @parameters[1]
$game_map.fog_hue = @parameters[2]
$game_map.fog_opacity = @parameters[3]
$game_map.fog_blend_type = @parameters[4]
$game_map.fog_zoom = @parameters[5]
$game_map.fog_sx = @parameters[6]
$game_map.fog_sy = @parameters[7]
when 2 # battleback
$game_map.battleback_name = @parameters[1]
$game_temp.battleback_name = @parameters[1]
end
return true
end
#-----------------------------------------------------------------------------
# * Change Fog Color Tone
#-----------------------------------------------------------------------------
def command_205
$game_map.start_fog_tone_change(@parameters[0], @parameters[1] * Graphics.frame_rate / 20)
return true
end
#-----------------------------------------------------------------------------
# * Change Fog Opacity
#-----------------------------------------------------------------------------
def command_206
$game_map.start_fog_opacity_change(@parameters[0], @parameters[1] * Graphics.frame_rate / 20)
return true
end
#-----------------------------------------------------------------------------
# * Show Animation
#-----------------------------------------------------------------------------
def command_207
character = get_character(@parameters[0])
return true if character.nil?
character.animation_id = @parameters[1]
return true
end
#-----------------------------------------------------------------------------
# * Change Transparent Flag
#-----------------------------------------------------------------------------
def command_208
$game_player.transparent = (@parameters[0] == 0)
return true
end
#-----------------------------------------------------------------------------
# * Set Move Route
#-----------------------------------------------------------------------------
def command_209
character = get_character(@parameters[0])
return true if character.nil?
character.force_move_route(@parameters[1])
return true
end
#-----------------------------------------------------------------------------
# * Wait for Move's Completion
#-----------------------------------------------------------------------------
def command_210
@move_route_waiting = true if !$game_temp.in_battle
return true
end
#-----------------------------------------------------------------------------
# * Prepare for Transition
#-----------------------------------------------------------------------------
def command_221
return false if $game_temp.message_window_showing
Graphics.freeze
return true
end
#-----------------------------------------------------------------------------
# * Execute Transition
#-----------------------------------------------------------------------------
def command_222
return false if $game_temp.transition_processing
$game_temp.transition_processing = true
$game_temp.transition_name = @parameters[0]
@index += 1
return false
end
#-----------------------------------------------------------------------------
# * Change Screen Color Tone
#-----------------------------------------------------------------------------
def command_223
$game_screen.start_tone_change(@parameters[0], @parameters[1] * Graphics.frame_rate / 20)
return true
end
#-----------------------------------------------------------------------------
# * Screen Flash
#-----------------------------------------------------------------------------
def command_224
$game_screen.start_flash(@parameters[0], @parameters[1] * Graphics.frame_rate / 20)
return true
end
#-----------------------------------------------------------------------------
# * Screen Shake
#-----------------------------------------------------------------------------
def command_225
$game_screen.start_shake(@parameters[0], @parameters[1], @parameters[2] * Graphics.frame_rate / 20)
return true
end
#-----------------------------------------------------------------------------
# * Show Picture
#-----------------------------------------------------------------------------
def command_231
number = @parameters[0] + ($game_temp.in_battle ? 50 : 0)
if @parameters[3] == 0 # Direct appointment
x = @parameters[4]
y = @parameters[5]
else # Appoint with variables
x = $game_variables[@parameters[4]]
y = $game_variables[@parameters[5]]
end
$game_screen.pictures[number].show(@parameters[1], @parameters[2],
x, y, @parameters[6], @parameters[7], @parameters[8], @parameters[9])
return true
end
#-----------------------------------------------------------------------------
# * Move Picture
#-----------------------------------------------------------------------------
def command_232
number = @parameters[0] + ($game_temp.in_battle ? 50 : 0)
if @parameters[3] == 0 # Direct appointment
x = @parameters[4]
y = @parameters[5]
else # Appoint with variables
x = $game_variables[@parameters[4]]
y = $game_variables[@parameters[5]]
end
$game_screen.pictures[number].move(@parameters[1] * Graphics.frame_rate / 20,
@parameters[2], x, y, @parameters[6], @parameters[7], @parameters[8], @parameters[9])
return true
end
#-----------------------------------------------------------------------------
# * Rotate Picture
#-----------------------------------------------------------------------------
def command_233
number = @parameters[0] + ($game_temp.in_battle ? 50 : 0)
$game_screen.pictures[number].rotate(@parameters[1])
return true
end
#-----------------------------------------------------------------------------
# * Change Picture Color Tone
#-----------------------------------------------------------------------------
def command_234
number = @parameters[0] + ($game_temp.in_battle ? 50 : 0)
$game_screen.pictures[number].start_tone_change(@parameters[1],
@parameters[2] * Graphics.frame_rate / 20)
return true
end
#-----------------------------------------------------------------------------
# * Erase Picture
#-----------------------------------------------------------------------------
def command_235
number = @parameters[0] + ($game_temp.in_battle ? 50 : 0)
$game_screen.pictures[number].erase
return true
end
#-----------------------------------------------------------------------------
# * Set Weather Effects
#-----------------------------------------------------------------------------
def command_236
$game_screen.weather(@parameters[0], @parameters[1], @parameters[2])
return true
end
#-----------------------------------------------------------------------------
# * Play BGM
#-----------------------------------------------------------------------------
def command_241
pbBGMPlay(@parameters[0])
return true
end
#-----------------------------------------------------------------------------
# * Fade Out BGM
#-----------------------------------------------------------------------------
def command_242
pbBGMFade(@parameters[0])
return true
end
#-----------------------------------------------------------------------------
# * Play BGS
#-----------------------------------------------------------------------------
def command_245
pbBGSPlay(@parameters[0])
return true
end
#-----------------------------------------------------------------------------
# * Fade Out BGS
#-----------------------------------------------------------------------------
def command_246
pbBGSFade(@parameters[0])
return true
end
#-----------------------------------------------------------------------------
# * Memorize BGM/BGS
#-----------------------------------------------------------------------------
def command_247
$game_system.bgm_memorize
$game_system.bgs_memorize
return true
end
#-----------------------------------------------------------------------------
# * Restore BGM/BGS
#-----------------------------------------------------------------------------
def command_248
$game_system.bgm_restore
$game_system.bgs_restore
return true
end
#-----------------------------------------------------------------------------
# * Play ME
#-----------------------------------------------------------------------------
def command_249
pbMEPlay(@parameters[0])
return true
end
#-----------------------------------------------------------------------------
# * Play SE
#-----------------------------------------------------------------------------
def command_250
pbSEPlay(@parameters[0])
return true
end
#-----------------------------------------------------------------------------
# * Stop SE
#-----------------------------------------------------------------------------
def command_251
pbSEStop
return true
end
def command_301; command_dummy; end # Battle Processing
def command_601; command_if(0); end # If Win
def command_602; command_if(1); end # If Escape
def command_603; command_if(2); end # If Lose
def command_302; command_dummy; end # Shop Processing
#-----------------------------------------------------------------------------
# * Name Input Processing
#-----------------------------------------------------------------------------
def command_303
if $Trainer
$Trainer.name = pbEnterPlayerName(_INTL("Your name?"), 1, @parameters[1], $Trainer.name)
return true
end
if $game_actors && $data_actors && $data_actors[@parameters[0]] != nil
$game_temp.battle_abort = true
pbFadeOutIn {
sscene = PokemonEntryScene.new
sscreen = PokemonEntry.new(sscene)
$game_actors[@parameters[0]].name = sscreen.pbStartScreen(
_INTL("Enter {1}'s name.", $game_actors[@parameters[0]].name),
1, @parameters[1], $game_actors[@parameters[0]].name)
}
end
return true
end
def command_311; command_dummy; end # Change HP
def command_312; command_dummy; end # Change SP
def command_313; command_dummy; end # Change State
#-----------------------------------------------------------------------------
# * Recover All
#-----------------------------------------------------------------------------
def command_314
$Trainer.heal_party if @parameters[0] == 0
return true
end
def command_315; command_dummy; end # Change EXP
def command_316; command_dummy; end # Change Level
def command_317; command_dummy; end # Change Parameters
def command_318; command_dummy; end # Change Skills
def command_319; command_dummy; end # Change Equipment
def command_320; command_dummy; end # Change Actor Name
def command_321; command_dummy; end # Change Actor Class
def command_322; command_dummy; end # Change Actor Graphic
def command_331; command_dummy; end # Change Enemy HP
def command_332; command_dummy; end # Change Enemy SP
def command_333; command_dummy; end # Change Enemy State
def command_334; command_dummy; end # Enemy Recover All
def command_335; command_dummy; end # Enemy Appearance
def command_336; command_dummy; end # Enemy Transform
def command_337; command_dummy; end # Show Battle Animation
def command_338; command_dummy; end # Deal Damage
def command_339; command_dummy; end # Force Action
def command_340; command_dummy; end # Abort Battle
#-----------------------------------------------------------------------------
# * Call Menu Screen
#-----------------------------------------------------------------------------
def command_351
$game_temp.menu_calling = true
@index += 1
return false
end
#-----------------------------------------------------------------------------
# * Call Save Screen
#-----------------------------------------------------------------------------
def command_352
scene = PokemonSave_Scene.new
screen = PokemonSaveScreen.new(scene)
screen.pbSaveScreen
return true
end
#-----------------------------------------------------------------------------
# * Game Over
#-----------------------------------------------------------------------------
def command_353
pbBGMFade(1.0)
pbBGSFade(1.0)
pbFadeOutIn { pbStartOver(true) }
end
#-----------------------------------------------------------------------------
# * Return to Title Screen
#-----------------------------------------------------------------------------
def command_354
$game_temp.to_title = true
return false
end
#-----------------------------------------------------------------------------
# * Script
#-----------------------------------------------------------------------------
def command_355
script = @list[@index].parameters[0] + "\n"
# Look for more script commands or a continuation of one, and add them to script
loop do
break if ![355, 655].include?(@list[@index + 1].code)
script += @list[@index+1].parameters[0] + "\n"
@index += 1
end
# Run the script
execute_script(script)
return true
end
end