445 lines
14 KiB
Ruby
445 lines
14 KiB
Ruby
#==============================================================================
|
|
# ** Interpreter (part 5)
|
|
#------------------------------------------------------------------------------
|
|
# This interpreter runs event commands. This class is used within the
|
|
# Game_System class and the Game_Event class.
|
|
#==============================================================================
|
|
|
|
class Interpreter
|
|
#--------------------------------------------------------------------------
|
|
# * Transfer Player
|
|
#--------------------------------------------------------------------------
|
|
def command_201
|
|
# If in battle
|
|
if $game_temp.in_battle
|
|
# Continue
|
|
return true
|
|
end
|
|
# If transferring player, showing message, or processing transition
|
|
if $game_temp.player_transferring or
|
|
$game_temp.message_window_showing or
|
|
$game_temp.transition_processing
|
|
# End
|
|
return false
|
|
end
|
|
# Set transferring player flag
|
|
$game_temp.player_transferring = true
|
|
# If appointment method is [direct appointment]
|
|
if @parameters[0] == 0
|
|
# Set player move destination
|
|
$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]
|
|
# If appointment method is [appoint with variables]
|
|
else
|
|
# Set player move destination
|
|
$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
|
|
# Advance index
|
|
@index += 1
|
|
# If fade is set
|
|
if @parameters[5] == 0
|
|
# Prepare for transition
|
|
Graphics.freeze
|
|
# Set transition processing flag
|
|
$game_temp.transition_processing = true
|
|
$game_temp.transition_name = ""
|
|
end
|
|
# End
|
|
return false
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Set Event Location
|
|
#--------------------------------------------------------------------------
|
|
def command_202
|
|
# If in battle
|
|
if $game_temp.in_battle
|
|
# Continue
|
|
return true
|
|
end
|
|
# Get character
|
|
character = get_character(@parameters[0])
|
|
# If no character exists
|
|
if character == nil
|
|
# Continue
|
|
return true
|
|
end
|
|
# If appointment method is [direct appointment]
|
|
if @parameters[1] == 0
|
|
# Set character position
|
|
character.moveto(@parameters[2], @parameters[3])
|
|
# If appointment method is [appoint with variables]
|
|
elsif @parameters[1] == 1
|
|
# Set character position
|
|
character.moveto($game_variables[@parameters[2]],
|
|
$game_variables[@parameters[3]])
|
|
# If appointment method is [exchange with another event]
|
|
else
|
|
old_x = character.x
|
|
old_y = character.y
|
|
character2 = get_character(@parameters[2])
|
|
if character2 != nil
|
|
character.moveto(character2.x, character2.y)
|
|
character2.moveto(old_x, old_y)
|
|
end
|
|
end
|
|
# Set character direction
|
|
case @parameters[4]
|
|
when 8 # up
|
|
character.turn_up
|
|
when 6 # right
|
|
character.turn_right
|
|
when 2 # down
|
|
character.turn_down
|
|
when 4 # left
|
|
character.turn_left
|
|
end
|
|
# Continue
|
|
return true
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Scroll Map
|
|
#--------------------------------------------------------------------------
|
|
def command_203
|
|
# If in battle
|
|
if $game_temp.in_battle
|
|
# Continue
|
|
return true
|
|
end
|
|
# If already scrolling
|
|
if $game_map.scrolling?
|
|
# End
|
|
return false
|
|
end
|
|
# Start scroll
|
|
$game_map.start_scroll(@parameters[0], @parameters[1], @parameters[2])
|
|
# Continue
|
|
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
|
|
# Continue
|
|
return true
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Fog Color Tone
|
|
#--------------------------------------------------------------------------
|
|
def command_205
|
|
# Start color tone change
|
|
$game_map.start_fog_tone_change(@parameters[0], @parameters[1] * 2)
|
|
# Continue
|
|
return true
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Fog Opacity
|
|
#--------------------------------------------------------------------------
|
|
def command_206
|
|
# Start opacity level change
|
|
$game_map.start_fog_opacity_change(@parameters[0], @parameters[1] * 2)
|
|
# Continue
|
|
return true
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Show Animation
|
|
#--------------------------------------------------------------------------
|
|
def command_207
|
|
# Get character
|
|
character = get_character(@parameters[0])
|
|
# If no character exists
|
|
if character == nil
|
|
# Continue
|
|
return true
|
|
end
|
|
# Set animation ID
|
|
character.animation_id = @parameters[1]
|
|
# Continue
|
|
return true
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Transparent Flag
|
|
#--------------------------------------------------------------------------
|
|
def command_208
|
|
# Change player transparent flag
|
|
$game_player.transparent = (@parameters[0] == 0)
|
|
# Continue
|
|
return true
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Set Move Route
|
|
#--------------------------------------------------------------------------
|
|
def command_209
|
|
# Get character
|
|
character = get_character(@parameters[0])
|
|
# If no character exists
|
|
if character == nil
|
|
# Continue
|
|
return true
|
|
end
|
|
# Force move route
|
|
character.force_move_route(@parameters[1])
|
|
# Continue
|
|
return true
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Wait for Move's Completion
|
|
#--------------------------------------------------------------------------
|
|
def command_210
|
|
# If not in battle
|
|
unless $game_temp.in_battle
|
|
# Set move route completion waiting flag
|
|
@move_route_waiting = true
|
|
end
|
|
# Continue
|
|
return true
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Prepare for Transition
|
|
#--------------------------------------------------------------------------
|
|
def command_221
|
|
# If showing message window
|
|
if $game_temp.message_window_showing
|
|
# End
|
|
return false
|
|
end
|
|
# Prepare for transition
|
|
Graphics.freeze
|
|
# Continue
|
|
return true
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Execute Transition
|
|
#--------------------------------------------------------------------------
|
|
def command_222
|
|
# If transition processing flag is already set
|
|
if $game_temp.transition_processing
|
|
# End
|
|
return false
|
|
end
|
|
# Set transition processing flag
|
|
$game_temp.transition_processing = true
|
|
$game_temp.transition_name = @parameters[0]
|
|
# Advance index
|
|
@index += 1
|
|
# End
|
|
return false
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Screen Color Tone
|
|
#--------------------------------------------------------------------------
|
|
def command_223
|
|
# Start changing color tone
|
|
$game_screen.start_tone_change(@parameters[0], @parameters[1] * 2)
|
|
# Continue
|
|
return true
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Screen Flash
|
|
#--------------------------------------------------------------------------
|
|
def command_224
|
|
# Start flash
|
|
$game_screen.start_flash(@parameters[0], @parameters[1] * 2)
|
|
# Continue
|
|
return true
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Screen Shake
|
|
#--------------------------------------------------------------------------
|
|
def command_225
|
|
# Start shake
|
|
$game_screen.start_shake(@parameters[0], @parameters[1],
|
|
@parameters[2] * 2)
|
|
# Continue
|
|
return true
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Show Picture
|
|
#--------------------------------------------------------------------------
|
|
def command_231
|
|
# Get picture number
|
|
number = @parameters[0] + ($game_temp.in_battle ? 50 : 0)
|
|
# If appointment method is [direct appointment]
|
|
if @parameters[3] == 0
|
|
x = @parameters[4]
|
|
y = @parameters[5]
|
|
# If appointment method is [appoint with variables]
|
|
else
|
|
x = $game_variables[@parameters[4]]
|
|
y = $game_variables[@parameters[5]]
|
|
end
|
|
# Show picture
|
|
$game_screen.pictures[number].show(@parameters[1], @parameters[2],
|
|
x, y, @parameters[6], @parameters[7], @parameters[8], @parameters[9])
|
|
# Continue
|
|
return true
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Move Picture
|
|
#--------------------------------------------------------------------------
|
|
def command_232
|
|
# Get picture number
|
|
number = @parameters[0] + ($game_temp.in_battle ? 50 : 0)
|
|
# If appointment method is [direct appointment]
|
|
if @parameters[3] == 0
|
|
x = @parameters[4]
|
|
y = @parameters[5]
|
|
# If appointment method is [appoint with variables]
|
|
else
|
|
x = $game_variables[@parameters[4]]
|
|
y = $game_variables[@parameters[5]]
|
|
end
|
|
# Move picture
|
|
$game_screen.pictures[number].move(@parameters[1] * 2, @parameters[2],
|
|
x, y, @parameters[6], @parameters[7], @parameters[8], @parameters[9])
|
|
# Continue
|
|
return true
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Rotate Picture
|
|
#--------------------------------------------------------------------------
|
|
def command_233
|
|
# Get picture number
|
|
number = @parameters[0] + ($game_temp.in_battle ? 50 : 0)
|
|
# Set rotation speed
|
|
$game_screen.pictures[number].rotate(@parameters[1])
|
|
# Continue
|
|
return true
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Picture Color Tone
|
|
#--------------------------------------------------------------------------
|
|
def command_234
|
|
# Get picture number
|
|
number = @parameters[0] + ($game_temp.in_battle ? 50 : 0)
|
|
# Start changing color tone
|
|
$game_screen.pictures[number].start_tone_change(@parameters[1],
|
|
@parameters[2] * 2)
|
|
# Continue
|
|
return true
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Erase Picture
|
|
#--------------------------------------------------------------------------
|
|
def command_235
|
|
# Get picture number
|
|
number = @parameters[0] + ($game_temp.in_battle ? 50 : 0)
|
|
# Erase picture
|
|
$game_screen.pictures[number].erase
|
|
# Continue
|
|
return true
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Set Weather Effects
|
|
#--------------------------------------------------------------------------
|
|
def command_236
|
|
# Set Weather Effects
|
|
$game_screen.weather(@parameters[0], @parameters[1], @parameters[2])
|
|
# Continue
|
|
return true
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Play BGM
|
|
#--------------------------------------------------------------------------
|
|
def command_241
|
|
# Play BGM
|
|
$game_system.bgm_play(@parameters[0])
|
|
# Continue
|
|
return true
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Fade Out BGM
|
|
#--------------------------------------------------------------------------
|
|
def command_242
|
|
# Fade out BGM
|
|
$game_system.bgm_fade(@parameters[0])
|
|
# Continue
|
|
return true
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Play BGS
|
|
#--------------------------------------------------------------------------
|
|
def command_245
|
|
# Play BGS
|
|
$game_system.bgs_play(@parameters[0])
|
|
# Continue
|
|
return true
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Fade Out BGS
|
|
#--------------------------------------------------------------------------
|
|
def command_246
|
|
# Fade out BGS
|
|
$game_system.bgs_fade(@parameters[0])
|
|
# Continue
|
|
return true
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Memorize BGM/BGS
|
|
#--------------------------------------------------------------------------
|
|
def command_247
|
|
# Memorize BGM/BGS
|
|
$game_system.bgm_memorize
|
|
$game_system.bgs_memorize
|
|
# Continue
|
|
return true
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Restore BGM/BGS
|
|
#--------------------------------------------------------------------------
|
|
def command_248
|
|
# Restore BGM/BGS
|
|
$game_system.bgm_restore
|
|
$game_system.bgs_restore
|
|
# Continue
|
|
return true
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Play ME
|
|
#--------------------------------------------------------------------------
|
|
def command_249
|
|
# Play ME
|
|
$game_system.me_play(@parameters[0])
|
|
# Continue
|
|
return true
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Play SE
|
|
#--------------------------------------------------------------------------
|
|
def command_250
|
|
# Play SE
|
|
$game_system.se_play(@parameters[0])
|
|
# Continue
|
|
return true
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Stop SE
|
|
#--------------------------------------------------------------------------
|
|
def command_251
|
|
# Stop SE
|
|
Audio.se_stop
|
|
# Continue
|
|
return true
|
|
end
|
|
end
|