1415 lines
52 KiB
Ruby
1415 lines
52 KiB
Ruby
# -*- coding: utf-8 -*-
|
|
#==============================================================================
|
|
# ** Game_Interpreter
|
|
#------------------------------------------------------------------------------
|
|
# An interpreter for executing event commands. This class is used within the
|
|
# Game_Map, Game_Troop, and Game_Event classes.
|
|
#==============================================================================
|
|
|
|
class Game_Interpreter
|
|
#--------------------------------------------------------------------------
|
|
# * Public Instance Variables
|
|
#--------------------------------------------------------------------------
|
|
attr_reader :map_id # Map ID
|
|
attr_reader :event_id # Event ID (normal events only)
|
|
#--------------------------------------------------------------------------
|
|
# * Object Initialization
|
|
# depth : nest depth
|
|
#--------------------------------------------------------------------------
|
|
def initialize(depth = 0)
|
|
@depth = depth
|
|
check_overflow
|
|
clear
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Check for Overflow
|
|
# Under normal usage, the depth will not exceed 100. Since recursive
|
|
# event calls are likely to result in an infinite loop, the depth is
|
|
# cut off at 100 and an error results.
|
|
#--------------------------------------------------------------------------
|
|
def check_overflow
|
|
if @depth >= 100
|
|
msgbox(Vocab::EventOverflow)
|
|
exit
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Clear
|
|
#--------------------------------------------------------------------------
|
|
def clear
|
|
@map_id = 0
|
|
@event_id = 0
|
|
@list = nil # Execution content
|
|
@index = 0 # Index
|
|
@branch = {} # Branch data
|
|
@fiber = nil # Fiber
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Event Setup
|
|
#--------------------------------------------------------------------------
|
|
def setup(list, event_id = 0)
|
|
clear
|
|
@map_id = $game_map.map_id
|
|
@event_id = event_id
|
|
@list = list
|
|
create_fiber
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Create Fiber
|
|
#--------------------------------------------------------------------------
|
|
def create_fiber
|
|
@fiber = Fiber.new { run } if @list
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Dump Objects
|
|
# Define fibers in advance as they are not compatible with Marshal.
|
|
# Advance the event execution position by one and save.
|
|
#--------------------------------------------------------------------------
|
|
def marshal_dump
|
|
[@depth, @map_id, @event_id, @list, @index + 1, @branch]
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Load Objects
|
|
# obj: An array of objects dumped by marshal_dump.
|
|
# Restore data through multiple assignment and if necessary create fiber.
|
|
#--------------------------------------------------------------------------
|
|
def marshal_load(obj)
|
|
@depth, @map_id, @event_id, @list, @index, @branch = obj
|
|
create_fiber
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Determine if Same Map as at Event Start
|
|
#--------------------------------------------------------------------------
|
|
def same_map?
|
|
@map_id == $game_map.map_id
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Detect/Set Up Call-Reserved Common Events
|
|
#--------------------------------------------------------------------------
|
|
def setup_reserved_common_event
|
|
if $game_temp.common_event_reserved?
|
|
setup($game_temp.reserved_common_event.list)
|
|
$game_temp.clear_common_event
|
|
true
|
|
else
|
|
false
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Execute
|
|
#--------------------------------------------------------------------------
|
|
def run
|
|
wait_for_message
|
|
while @list[@index] do
|
|
execute_command
|
|
@index += 1
|
|
end
|
|
Fiber.yield
|
|
@fiber = nil
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Determine if Running
|
|
#--------------------------------------------------------------------------
|
|
def running?
|
|
@fiber != nil
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Frame Update
|
|
#--------------------------------------------------------------------------
|
|
def update
|
|
@fiber.resume if @fiber
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Actor Iterator (ID)
|
|
# param : If 1 or more, ID. If 0, all
|
|
#--------------------------------------------------------------------------
|
|
def iterate_actor_id(param)
|
|
if param == 0
|
|
$game_party.members.each {|actor| yield actor }
|
|
else
|
|
actor = $game_actors[param]
|
|
yield actor if actor
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Actor Iterator (Variable)
|
|
# param1: Specify as fixed if 0 and variable if 1
|
|
# param2: Actor or variable ID
|
|
#--------------------------------------------------------------------------
|
|
def iterate_actor_var(param1, param2)
|
|
if param1 == 0
|
|
iterate_actor_id(param2) {|actor| yield actor }
|
|
else
|
|
iterate_actor_id($game_variables[param2]) {|actor| yield actor }
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Actor Iterator (Index)
|
|
# param : If 0 or more, index. If -1, all.
|
|
#--------------------------------------------------------------------------
|
|
def iterate_actor_index(param)
|
|
if param < 0
|
|
$game_party.members.each {|actor| yield actor }
|
|
else
|
|
actor = $game_party.members[param]
|
|
yield actor if actor
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Enemy Iterator (Index)
|
|
# param : If 0 or more, index. If -1, all.
|
|
#--------------------------------------------------------------------------
|
|
def iterate_enemy_index(param)
|
|
if param < 0
|
|
$game_troop.members.each {|enemy| yield enemy }
|
|
else
|
|
enemy = $game_troop.members[param]
|
|
yield enemy if enemy
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Battler Iterator (Account for Entire Enemy Group or Entire Party)
|
|
# param1 : If 0, enemy. If 1, actor.
|
|
# param2: Index if enemy and ID if actor.
|
|
#--------------------------------------------------------------------------
|
|
def iterate_battler(param1, param2)
|
|
if $game_party.in_battle
|
|
if param1 == 0
|
|
iterate_enemy_index(param2) {|enemy| yield enemy }
|
|
else
|
|
iterate_actor_id(param2) {|actor| yield actor }
|
|
end
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Get Target of Screen Command
|
|
#--------------------------------------------------------------------------
|
|
def screen
|
|
$game_party.in_battle ? $game_troop.screen : $game_map.screen
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Event Command Execution
|
|
#--------------------------------------------------------------------------
|
|
def execute_command
|
|
command = @list[@index]
|
|
@params = command.parameters
|
|
@indent = command.indent
|
|
method_name = "command_#{command.code}"
|
|
send(method_name) if respond_to?(method_name)
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Command Skip
|
|
# Skip commands deeper than current index and advance index.
|
|
#--------------------------------------------------------------------------
|
|
def command_skip
|
|
@index += 1 while @list[@index + 1].indent > @indent
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Get Code of Next Event Command
|
|
#--------------------------------------------------------------------------
|
|
def next_event_code
|
|
@list[@index + 1].code
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Get Character
|
|
# param : If -1, player. If 0, this event. Otherwise, event ID.
|
|
#--------------------------------------------------------------------------
|
|
def get_character(param)
|
|
if $game_party.in_battle
|
|
nil
|
|
elsif param < 0
|
|
$game_player
|
|
else
|
|
events = same_map? ? $game_map.events : {}
|
|
events[param > 0 ? param : @event_id]
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Calculate Operated Value
|
|
# operation : Operation (0: Increase 1: Decrease)
|
|
# operand_type : Operand type (0: Constant 1: Variable)
|
|
# operand : Operand (numeric value or variable ID)
|
|
#--------------------------------------------------------------------------
|
|
def operate_value(operation, operand_type, operand)
|
|
value = operand_type == 0 ? operand : $game_variables[operand]
|
|
operation == 0 ? value : -value
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Wait
|
|
#--------------------------------------------------------------------------
|
|
def wait(duration)
|
|
duration.times { Fiber.yield }
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Wait While Message Display is Busy
|
|
#--------------------------------------------------------------------------
|
|
def wait_for_message
|
|
Fiber.yield while $game_message.busy?
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Show Text
|
|
#--------------------------------------------------------------------------
|
|
def command_101
|
|
wait_for_message
|
|
$game_message.face_name = @params[0]
|
|
$game_message.face_index = @params[1]
|
|
$game_message.background = @params[2]
|
|
$game_message.position = @params[3]
|
|
while next_event_code == 401 # Text data
|
|
@index += 1
|
|
$game_message.add(@list[@index].parameters[0])
|
|
end
|
|
case next_event_code
|
|
when 102 # Show Choices
|
|
@index += 1
|
|
setup_choices(@list[@index].parameters)
|
|
when 103 # Input Number
|
|
@index += 1
|
|
setup_num_input(@list[@index].parameters)
|
|
when 104 # Select Item
|
|
@index += 1
|
|
setup_item_choice(@list[@index].parameters)
|
|
end
|
|
wait_for_message
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Show Choices
|
|
#--------------------------------------------------------------------------
|
|
def command_102
|
|
wait_for_message
|
|
setup_choices(@params)
|
|
Fiber.yield while $game_message.choice?
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Setup Choices
|
|
#--------------------------------------------------------------------------
|
|
def setup_choices(params)
|
|
params[0].each {|s| $game_message.choices.push(s) }
|
|
$game_message.choice_cancel_type = params[1]
|
|
$game_message.choice_proc = Proc.new {|n| @branch[@indent] = n }
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * When [**]
|
|
#--------------------------------------------------------------------------
|
|
def command_402
|
|
command_skip if @branch[@indent] != @params[0]
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * When Cancel
|
|
#--------------------------------------------------------------------------
|
|
def command_403
|
|
command_skip if @branch[@indent] != 4
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Input Number
|
|
#--------------------------------------------------------------------------
|
|
def command_103
|
|
wait_for_message
|
|
setup_num_input(@params)
|
|
Fiber.yield while $game_message.num_input?
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Number Input Setup
|
|
#--------------------------------------------------------------------------
|
|
def setup_num_input(params)
|
|
$game_message.num_input_variable_id = params[0]
|
|
$game_message.num_input_digits_max = params[1]
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Select Item
|
|
#--------------------------------------------------------------------------
|
|
def command_104
|
|
wait_for_message
|
|
setup_item_choice(@params)
|
|
Fiber.yield while $game_message.item_choice?
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Set Up Item Selection
|
|
#--------------------------------------------------------------------------
|
|
def setup_item_choice(params)
|
|
$game_message.item_choice_variable_id = params[0]
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Show Scrolling Text
|
|
#--------------------------------------------------------------------------
|
|
def command_105
|
|
Fiber.yield while $game_message.visible
|
|
$game_message.scroll_mode = true
|
|
$game_message.scroll_speed = @params[0]
|
|
$game_message.scroll_no_fast = @params[1]
|
|
while next_event_code == 405
|
|
@index += 1
|
|
$game_message.add(@list[@index].parameters[0])
|
|
end
|
|
wait_for_message
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Comment
|
|
#--------------------------------------------------------------------------
|
|
def command_108
|
|
@comments = [@params[0]]
|
|
while next_event_code == 408
|
|
@index += 1
|
|
@comments.push(@list[@index].parameters[0])
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Conditional Branch
|
|
#--------------------------------------------------------------------------
|
|
def command_111
|
|
result = false
|
|
case @params[0]
|
|
when 0 # Switch
|
|
result = ($game_switches[@params[1]] == (@params[2] == 0))
|
|
when 1 # Variable
|
|
value1 = $game_variables[@params[1]]
|
|
if @params[2] == 0
|
|
value2 = @params[3]
|
|
else
|
|
value2 = $game_variables[@params[3]]
|
|
end
|
|
case @params[4]
|
|
when 0 # value1 is equal to value2
|
|
result = (value1 == value2)
|
|
when 1 # value1 is greater than or equal to value2
|
|
result = (value1 >= value2)
|
|
when 2 # value1 is less than or equal to value2
|
|
result = (value1 <= value2)
|
|
when 3 # value1 is greater than value2
|
|
result = (value1 > value2)
|
|
when 4 # value1 is less than value2
|
|
result = (value1 < value2)
|
|
when 5 # value1 is not equal to value2
|
|
result = (value1 != value2)
|
|
end
|
|
when 2 # Self switch
|
|
if @event_id > 0
|
|
key = [@map_id, @event_id, @params[1]]
|
|
result = ($game_self_switches[key] == (@params[2] == 0))
|
|
end
|
|
when 3 # Timer
|
|
if $game_timer.working?
|
|
if @params[2] == 0
|
|
result = ($game_timer.sec >= @params[1])
|
|
else
|
|
result = ($game_timer.sec <= @params[1])
|
|
end
|
|
end
|
|
when 4 # Actor
|
|
actor = $game_actors[@params[1]]
|
|
if actor
|
|
case @params[2]
|
|
when 0 # in party
|
|
result = ($game_party.members.include?(actor))
|
|
when 1 # name
|
|
result = (actor.name == @params[3])
|
|
when 2 # Class
|
|
result = (actor.class_id == @params[3])
|
|
when 3 # Skills
|
|
result = (actor.skill_learn?($data_skills[@params[3]]))
|
|
when 4 # Weapons
|
|
result = (actor.weapons.include?($data_weapons[@params[3]]))
|
|
when 5 # Armors
|
|
result = (actor.armors.include?($data_armors[@params[3]]))
|
|
when 6 # States
|
|
result = (actor.state?(@params[3]))
|
|
end
|
|
end
|
|
when 5 # Enemy
|
|
enemy = $game_troop.members[@params[1]]
|
|
if enemy
|
|
case @params[2]
|
|
when 0 # appear
|
|
result = (enemy.alive?)
|
|
when 1 # state
|
|
result = (enemy.state?(@params[3]))
|
|
end
|
|
end
|
|
when 6 # Character
|
|
character = get_character(@params[1])
|
|
if character
|
|
result = (character.direction == @params[2])
|
|
end
|
|
when 7 # Gold
|
|
case @params[2]
|
|
when 0 # Greater than or equal to
|
|
result = ($game_party.gold >= @params[1])
|
|
when 1 # Less than or equal to
|
|
result = ($game_party.gold <= @params[1])
|
|
when 2 # Less than
|
|
result = ($game_party.gold < @params[1])
|
|
end
|
|
when 8 # Item
|
|
result = $game_party.has_item?($data_items[@params[1]])
|
|
when 9 # Weapon
|
|
result = $game_party.has_item?($data_weapons[@params[1]], @params[2])
|
|
when 10 # Armor
|
|
result = $game_party.has_item?($data_armors[@params[1]], @params[2])
|
|
when 11 # Button
|
|
result = Input.press?(@params[1])
|
|
when 12 # Script
|
|
result = eval(@params[1])
|
|
when 13 # Vehicle
|
|
result = ($game_player.vehicle == $game_map.vehicles[@params[1]])
|
|
end
|
|
@branch[@indent] = result
|
|
command_skip if !@branch[@indent]
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Else
|
|
#--------------------------------------------------------------------------
|
|
def command_411
|
|
command_skip if @branch[@indent]
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Loop
|
|
#--------------------------------------------------------------------------
|
|
def command_112
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Repeat Above
|
|
#--------------------------------------------------------------------------
|
|
def command_413
|
|
begin
|
|
@index -= 1
|
|
end until @list[@index].indent == @indent
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Break Loop
|
|
#--------------------------------------------------------------------------
|
|
def command_113
|
|
loop do
|
|
@index += 1
|
|
return if @index >= @list.size - 1
|
|
return if @list[@index].code == 413 && @list[@index].indent < @indent
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Exit Event Processing
|
|
#--------------------------------------------------------------------------
|
|
def command_115
|
|
@index = @list.size
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Common Event
|
|
#--------------------------------------------------------------------------
|
|
def command_117
|
|
common_event = $data_common_events[@params[0]]
|
|
if common_event
|
|
child = Game_Interpreter.new(@depth + 1)
|
|
child.setup(common_event.list, same_map? ? @event_id : 0)
|
|
child.run
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Label
|
|
#--------------------------------------------------------------------------
|
|
def command_118
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Jump to Label
|
|
#--------------------------------------------------------------------------
|
|
def command_119
|
|
label_name = @params[0]
|
|
@list.size.times do |i|
|
|
if @list[i].code == 118 && @list[i].parameters[0] == label_name
|
|
@index = i
|
|
return
|
|
end
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Control Switches
|
|
#--------------------------------------------------------------------------
|
|
def command_121
|
|
(@params[0]..@params[1]).each do |i|
|
|
$game_switches[i] = (@params[2] == 0)
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * 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 # Game Data
|
|
value = game_data_operand(@params[4], @params[5], @params[6])
|
|
when 4 # Script
|
|
value = eval(@params[4])
|
|
end
|
|
(@params[0]..@params[1]).each do |i|
|
|
operate_variable(i, @params[2], value)
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Get Game Data for Variable Operand
|
|
#--------------------------------------------------------------------------
|
|
def game_data_operand(type, param1, param2)
|
|
case type
|
|
when 0 # Items
|
|
return $game_party.item_number($data_items[param1])
|
|
when 1 # Weapons
|
|
return $game_party.item_number($data_weapons[param1])
|
|
when 2 # Armor
|
|
return $game_party.item_number($data_armors[param1])
|
|
when 3 # Actors
|
|
actor = $game_actors[param1]
|
|
if actor
|
|
case param2
|
|
when 0 # Level
|
|
return actor.level
|
|
when 1 # EXP
|
|
return actor.exp
|
|
when 2 # HP
|
|
return actor.hp
|
|
when 3 # MP
|
|
return actor.mp
|
|
when 4..11 # Parameter
|
|
return actor.param(param2 - 4)
|
|
end
|
|
end
|
|
when 4 # Enemies
|
|
enemy = $game_troop.members[param1]
|
|
if enemy
|
|
case param2
|
|
when 0 # HP
|
|
return enemy.hp
|
|
when 1 # MP
|
|
return enemy.mp
|
|
when 2..9 # Parameter
|
|
return enemy.param(param2 - 2)
|
|
end
|
|
end
|
|
when 5 # Character
|
|
character = get_character(param1)
|
|
if character
|
|
case param2
|
|
when 0 # x-coordinate
|
|
return character.x
|
|
when 1 # y-coordinate
|
|
return character.y
|
|
when 2 # direction
|
|
return character.direction
|
|
when 3 # screen x-coordinate
|
|
return character.screen_x
|
|
when 4 # screen y-coordinate
|
|
return character.screen_y
|
|
end
|
|
end
|
|
when 6 # Party
|
|
actor = $game_party.members[param1]
|
|
return actor ? actor.id : 0
|
|
when 7 # Other
|
|
case param1
|
|
when 0 # map ID
|
|
return $game_map.map_id
|
|
when 1 # number of party members
|
|
return $game_party.members.size
|
|
when 2 # gold
|
|
return $game_party.gold
|
|
when 3 # steps
|
|
return $game_party.steps
|
|
when 4 # play time
|
|
return Graphics.frame_count / Graphics.frame_rate
|
|
when 5 # timer
|
|
return $game_timer.sec
|
|
when 6 # save count
|
|
return $game_system.save_count
|
|
when 7 # battle count
|
|
return $game_system.battle_count
|
|
end
|
|
end
|
|
return 0
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Execute Variable Operation
|
|
#--------------------------------------------------------------------------
|
|
def operate_variable(variable_id, operation_type, value)
|
|
begin
|
|
case operation_type
|
|
when 0 # Set
|
|
$game_variables[variable_id] = value
|
|
when 1 # Add
|
|
$game_variables[variable_id] += value
|
|
when 2 # Sub
|
|
$game_variables[variable_id] -= value
|
|
when 3 # Mul
|
|
$game_variables[variable_id] *= value
|
|
when 4 # Div
|
|
$game_variables[variable_id] /= value
|
|
when 5 # Mod
|
|
$game_variables[variable_id] %= value
|
|
end
|
|
rescue
|
|
$game_variables[variable_id] = 0
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Control Self Switch
|
|
#--------------------------------------------------------------------------
|
|
def command_123
|
|
if @event_id > 0
|
|
key = [@map_id, @event_id, @params[0]]
|
|
$game_self_switches[key] = (@params[1] == 0)
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Control Timer
|
|
#--------------------------------------------------------------------------
|
|
def command_124
|
|
if @params[0] == 0 # Start
|
|
$game_timer.start(@params[1] * Graphics.frame_rate)
|
|
else # Stop
|
|
$game_timer.stop
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Gold
|
|
#--------------------------------------------------------------------------
|
|
def command_125
|
|
value = operate_value(@params[0], @params[1], @params[2])
|
|
$game_party.gain_gold(value)
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Items
|
|
#--------------------------------------------------------------------------
|
|
def command_126
|
|
value = operate_value(@params[1], @params[2], @params[3])
|
|
$game_party.gain_item($data_items[@params[0]], value)
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Weapons
|
|
#--------------------------------------------------------------------------
|
|
def command_127
|
|
value = operate_value(@params[1], @params[2], @params[3])
|
|
$game_party.gain_item($data_weapons[@params[0]], value, @params[4])
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Armor
|
|
#--------------------------------------------------------------------------
|
|
def command_128
|
|
value = operate_value(@params[1], @params[2], @params[3])
|
|
$game_party.gain_item($data_armors[@params[0]], value, @params[4])
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Party Member
|
|
#--------------------------------------------------------------------------
|
|
def command_129
|
|
actor = $game_actors[@params[0]]
|
|
if actor
|
|
if @params[1] == 0 # Add
|
|
if @params[2] == 1 # Initialize
|
|
$game_actors[@params[0]].setup(@params[0])
|
|
end
|
|
$game_party.add_actor(@params[0])
|
|
else # Remove
|
|
$game_party.remove_actor(@params[0])
|
|
end
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Battle BGM
|
|
#--------------------------------------------------------------------------
|
|
def command_132
|
|
$game_system.battle_bgm = @params[0]
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Battle End ME
|
|
#--------------------------------------------------------------------------
|
|
def command_133
|
|
$game_system.battle_end_me = @params[0]
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Save Access
|
|
#--------------------------------------------------------------------------
|
|
def command_134
|
|
$game_system.save_disabled = (@params[0] == 0)
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Menu Access
|
|
#--------------------------------------------------------------------------
|
|
def command_135
|
|
$game_system.menu_disabled = (@params[0] == 0)
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Encounter Disable
|
|
#--------------------------------------------------------------------------
|
|
def command_136
|
|
$game_system.encounter_disabled = (@params[0] == 0)
|
|
$game_player.make_encounter_count
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Formation Access
|
|
#--------------------------------------------------------------------------
|
|
def command_137
|
|
$game_system.formation_disabled = (@params[0] == 0)
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Window Color
|
|
#--------------------------------------------------------------------------
|
|
def command_138
|
|
$game_system.window_tone = @params[0]
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Transfer Player
|
|
#--------------------------------------------------------------------------
|
|
def command_201
|
|
return if $game_party.in_battle
|
|
Fiber.yield while $game_player.transfer? || $game_message.visible
|
|
if @params[0] == 0 # Direct designation
|
|
map_id = @params[1]
|
|
x = @params[2]
|
|
y = @params[3]
|
|
else # Designation with variables
|
|
map_id = $game_variables[@params[1]]
|
|
x = $game_variables[@params[2]]
|
|
y = $game_variables[@params[3]]
|
|
end
|
|
$game_player.reserve_transfer(map_id, x, y, @params[4])
|
|
$game_temp.fade_type = @params[5]
|
|
Fiber.yield while $game_player.transfer?
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Set Vehicle Location
|
|
#--------------------------------------------------------------------------
|
|
def command_202
|
|
if @params[1] == 0 # Direct designation
|
|
map_id = @params[2]
|
|
x = @params[3]
|
|
y = @params[4]
|
|
else # Designation with variables
|
|
map_id = $game_variables[@params[2]]
|
|
x = $game_variables[@params[3]]
|
|
y = $game_variables[@params[4]]
|
|
end
|
|
vehicle = $game_map.vehicles[@params[0]]
|
|
vehicle.set_location(map_id, x, y) if vehicle
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Set Event Location
|
|
#--------------------------------------------------------------------------
|
|
def command_203
|
|
character = get_character(@params[0])
|
|
if character
|
|
if @params[1] == 0 # Direct designation
|
|
character.moveto(@params[2], @params[3])
|
|
elsif @params[1] == 1 # Designation with variables
|
|
new_x = $game_variables[@params[2]]
|
|
new_y = $game_variables[@params[3]]
|
|
character.moveto(new_x, new_y)
|
|
else # Exchange with another event
|
|
character2 = get_character(@params[2])
|
|
character.swap(character2) if character2
|
|
end
|
|
character.set_direction(@params[4]) if @params[4] > 0
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Scroll Map
|
|
#--------------------------------------------------------------------------
|
|
def command_204
|
|
return if $game_party.in_battle
|
|
Fiber.yield while $game_map.scrolling?
|
|
$game_map.start_scroll(@params[0], @params[1], @params[2])
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Set Move Route
|
|
#--------------------------------------------------------------------------
|
|
def command_205
|
|
$game_map.refresh if $game_map.need_refresh
|
|
character = get_character(@params[0])
|
|
if character
|
|
character.force_move_route(@params[1])
|
|
Fiber.yield while character.move_route_forcing if @params[1].wait
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Getting On and Off Vehicles
|
|
#--------------------------------------------------------------------------
|
|
def command_206
|
|
$game_player.get_on_off_vehicle
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Transparency
|
|
#--------------------------------------------------------------------------
|
|
def command_211
|
|
$game_player.transparent = (@params[0] == 0)
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Show Animation
|
|
#--------------------------------------------------------------------------
|
|
def command_212
|
|
character = get_character(@params[0])
|
|
if character
|
|
character.animation_id = @params[1]
|
|
Fiber.yield while character.animation_id > 0 if @params[2]
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Show Balloon Icon
|
|
#--------------------------------------------------------------------------
|
|
def command_213
|
|
character = get_character(@params[0])
|
|
if character
|
|
character.balloon_id = @params[1]
|
|
Fiber.yield while character.balloon_id > 0 if @params[2]
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Temporarily Erase Event
|
|
#--------------------------------------------------------------------------
|
|
def command_214
|
|
$game_map.events[@event_id].erase if same_map? && @event_id > 0
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Player Followers
|
|
#--------------------------------------------------------------------------
|
|
def command_216
|
|
$game_player.followers.visible = (@params[0] == 0)
|
|
$game_player.refresh
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Gather Followers
|
|
#--------------------------------------------------------------------------
|
|
def command_217
|
|
return if $game_party.in_battle
|
|
$game_player.followers.gather
|
|
Fiber.yield until $game_player.followers.gather?
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Fadeout Screen
|
|
#--------------------------------------------------------------------------
|
|
def command_221
|
|
Fiber.yield while $game_message.visible
|
|
screen.start_fadeout(30)
|
|
wait(30)
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Fadein Screen
|
|
#--------------------------------------------------------------------------
|
|
def command_222
|
|
Fiber.yield while $game_message.visible
|
|
screen.start_fadein(30)
|
|
wait(30)
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Tint Screen
|
|
#--------------------------------------------------------------------------
|
|
def command_223
|
|
screen.start_tone_change(@params[0], @params[1])
|
|
wait(@params[1]) if @params[2]
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Screen Flash
|
|
#--------------------------------------------------------------------------
|
|
def command_224
|
|
screen.start_flash(@params[0], @params[1])
|
|
wait(@params[1]) if @params[2]
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Screen Shake
|
|
#--------------------------------------------------------------------------
|
|
def command_225
|
|
screen.start_shake(@params[0], @params[1], @params[2])
|
|
wait(@params[1]) if @params[2]
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Wait
|
|
#--------------------------------------------------------------------------
|
|
def command_230
|
|
wait(@params[0])
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Show Picture
|
|
#--------------------------------------------------------------------------
|
|
def command_231
|
|
if @params[3] == 0 # Direct designation
|
|
x = @params[4]
|
|
y = @params[5]
|
|
else # Designation with variables
|
|
x = $game_variables[@params[4]]
|
|
y = $game_variables[@params[5]]
|
|
end
|
|
screen.pictures[@params[0]].show(@params[1], @params[2],
|
|
x, y, @params[6], @params[7], @params[8], @params[9])
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Move Picture
|
|
#--------------------------------------------------------------------------
|
|
def command_232
|
|
if @params[3] == 0 # Direct designation
|
|
x = @params[4]
|
|
y = @params[5]
|
|
else # Designation with variables
|
|
x = $game_variables[@params[4]]
|
|
y = $game_variables[@params[5]]
|
|
end
|
|
screen.pictures[@params[0]].move(@params[2], x, y, @params[6],
|
|
@params[7], @params[8], @params[9], @params[10])
|
|
wait(@params[10]) if @params[11]
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Rotate Picture
|
|
#--------------------------------------------------------------------------
|
|
def command_233
|
|
screen.pictures[@params[0]].rotate(@params[1])
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Tint Picture
|
|
#--------------------------------------------------------------------------
|
|
def command_234
|
|
screen.pictures[@params[0]].start_tone_change(@params[1], @params[2])
|
|
wait(@params[2]) if @params[3]
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Erase Picture
|
|
#--------------------------------------------------------------------------
|
|
def command_235
|
|
screen.pictures[@params[0]].erase
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Set Weather
|
|
#--------------------------------------------------------------------------
|
|
def command_236
|
|
return if $game_party.in_battle
|
|
screen.change_weather(@params[0], @params[1], @params[2])
|
|
wait(@params[2]) if @params[3]
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Play BGM
|
|
#--------------------------------------------------------------------------
|
|
def command_241
|
|
@params[0].play
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Fadeout BGM
|
|
#--------------------------------------------------------------------------
|
|
def command_242
|
|
RPG::BGM.fade(@params[0] * 1000)
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Save BGM
|
|
#--------------------------------------------------------------------------
|
|
def command_243
|
|
$game_system.save_bgm
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Resume BGM
|
|
#--------------------------------------------------------------------------
|
|
def command_244
|
|
$game_system.replay_bgm
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Play BGS
|
|
#--------------------------------------------------------------------------
|
|
def command_245
|
|
@params[0].play
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Fadeout BGS
|
|
#--------------------------------------------------------------------------
|
|
def command_246
|
|
RPG::BGS.fade(@params[0] * 1000)
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Play ME
|
|
#--------------------------------------------------------------------------
|
|
def command_249
|
|
@params[0].play
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Play SE
|
|
#--------------------------------------------------------------------------
|
|
def command_250
|
|
@params[0].play
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Stop SE
|
|
#--------------------------------------------------------------------------
|
|
def command_251
|
|
RPG::SE.stop
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Play Movie
|
|
#--------------------------------------------------------------------------
|
|
def command_261
|
|
Fiber.yield while $game_message.visible
|
|
Fiber.yield
|
|
name = @params[0]
|
|
Graphics.play_movie('Movies/' + name) unless name.empty?
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Map Name Display
|
|
#--------------------------------------------------------------------------
|
|
def command_281
|
|
$game_map.name_display = (@params[0] == 0)
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Tileset
|
|
#--------------------------------------------------------------------------
|
|
def command_282
|
|
$game_map.change_tileset(@params[0])
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Battle Background
|
|
#--------------------------------------------------------------------------
|
|
def command_283
|
|
$game_map.change_battleback(@params[0], @params[1])
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Parallax Background
|
|
#--------------------------------------------------------------------------
|
|
def command_284
|
|
$game_map.change_parallax(@params[0], @params[1], @params[2],
|
|
@params[3], @params[4])
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Get Location Info
|
|
#--------------------------------------------------------------------------
|
|
def command_285
|
|
if @params[2] == 0 # Direct designation
|
|
x = @params[3]
|
|
y = @params[4]
|
|
else # Designation with variables
|
|
x = $game_variables[@params[3]]
|
|
y = $game_variables[@params[4]]
|
|
end
|
|
case @params[1]
|
|
when 0 # Terrain Tag
|
|
value = $game_map.terrain_tag(x, y)
|
|
when 1 # Event ID
|
|
value = $game_map.event_id_xy(x, y)
|
|
when 2..4 # Tile ID
|
|
value = $game_map.tile_id(x, y, @params[1] - 2)
|
|
else # Region ID
|
|
value = $game_map.region_id(x, y)
|
|
end
|
|
$game_variables[@params[0]] = value
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Battle Processing
|
|
#--------------------------------------------------------------------------
|
|
def command_301
|
|
return if $game_party.in_battle
|
|
if @params[0] == 0 # Direct designation
|
|
troop_id = @params[1]
|
|
elsif @params[0] == 1 # Designation with variables
|
|
troop_id = $game_variables[@params[1]]
|
|
else # Map-designated troop
|
|
troop_id = $game_player.make_encounter_troop_id
|
|
end
|
|
if $data_troops[troop_id]
|
|
BattleManager.setup(troop_id, @params[2], @params[3])
|
|
BattleManager.event_proc = Proc.new {|n| @branch[@indent] = n }
|
|
$game_player.make_encounter_count
|
|
SceneManager.call(Scene_Battle)
|
|
end
|
|
Fiber.yield
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * If Win
|
|
#--------------------------------------------------------------------------
|
|
def command_601
|
|
command_skip if @branch[@indent] != 0
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * If Escape
|
|
#--------------------------------------------------------------------------
|
|
def command_602
|
|
command_skip if @branch[@indent] != 1
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * If Lose
|
|
#--------------------------------------------------------------------------
|
|
def command_603
|
|
command_skip if @branch[@indent] != 2
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Shop Processing
|
|
#--------------------------------------------------------------------------
|
|
def command_302
|
|
return if $game_party.in_battle
|
|
goods = [@params]
|
|
while next_event_code == 605
|
|
@index += 1
|
|
goods.push(@list[@index].parameters)
|
|
end
|
|
SceneManager.call(Scene_Shop)
|
|
SceneManager.scene.prepare(goods, @params[4])
|
|
Fiber.yield
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Name Input Processing
|
|
#--------------------------------------------------------------------------
|
|
def command_303
|
|
return if $game_party.in_battle
|
|
if $data_actors[@params[0]]
|
|
SceneManager.call(Scene_Name)
|
|
SceneManager.scene.prepare(@params[0], @params[1])
|
|
Fiber.yield
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change HP
|
|
#--------------------------------------------------------------------------
|
|
def command_311
|
|
value = operate_value(@params[2], @params[3], @params[4])
|
|
iterate_actor_var(@params[0], @params[1]) do |actor|
|
|
next if actor.dead?
|
|
actor.change_hp(value, @params[5])
|
|
actor.perform_collapse_effect if actor.dead?
|
|
end
|
|
SceneManager.goto(Scene_Gameover) if $game_party.all_dead?
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change MP
|
|
#--------------------------------------------------------------------------
|
|
def command_312
|
|
value = operate_value(@params[2], @params[3], @params[4])
|
|
iterate_actor_var(@params[0], @params[1]) do |actor|
|
|
actor.mp += value
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change State
|
|
#--------------------------------------------------------------------------
|
|
def command_313
|
|
iterate_actor_var(@params[0], @params[1]) do |actor|
|
|
already_dead = actor.dead?
|
|
if @params[2] == 0
|
|
actor.add_state(@params[3])
|
|
else
|
|
actor.remove_state(@params[3])
|
|
end
|
|
actor.perform_collapse_effect if actor.dead? && !already_dead
|
|
end
|
|
$game_party.clear_results
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Recover All
|
|
#--------------------------------------------------------------------------
|
|
def command_314
|
|
iterate_actor_var(@params[0], @params[1]) do |actor|
|
|
actor.recover_all
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change EXP
|
|
#--------------------------------------------------------------------------
|
|
def command_315
|
|
value = operate_value(@params[2], @params[3], @params[4])
|
|
iterate_actor_var(@params[0], @params[1]) do |actor|
|
|
actor.change_exp(actor.exp + value, @params[5])
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Level
|
|
#--------------------------------------------------------------------------
|
|
def command_316
|
|
value = operate_value(@params[2], @params[3], @params[4])
|
|
iterate_actor_var(@params[0], @params[1]) do |actor|
|
|
actor.change_level(actor.level + value, @params[5])
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Parameters
|
|
#--------------------------------------------------------------------------
|
|
def command_317
|
|
value = operate_value(@params[3], @params[4], @params[5])
|
|
iterate_actor_var(@params[0], @params[1]) do |actor|
|
|
actor.add_param(@params[2], value)
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Skills
|
|
#--------------------------------------------------------------------------
|
|
def command_318
|
|
iterate_actor_var(@params[0], @params[1]) do |actor|
|
|
if @params[2] == 0
|
|
actor.learn_skill(@params[3])
|
|
else
|
|
actor.forget_skill(@params[3])
|
|
end
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Equipment
|
|
#--------------------------------------------------------------------------
|
|
def command_319
|
|
actor = $game_actors[@params[0]]
|
|
actor.change_equip_by_id(@params[1], @params[2]) if actor
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Name
|
|
#--------------------------------------------------------------------------
|
|
def command_320
|
|
actor = $game_actors[@params[0]]
|
|
actor.name = @params[1] if actor
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Class
|
|
#--------------------------------------------------------------------------
|
|
def command_321
|
|
actor = $game_actors[@params[0]]
|
|
actor.change_class(@params[1]) if actor && $data_classes[@params[1]]
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Actor Graphic
|
|
#--------------------------------------------------------------------------
|
|
def command_322
|
|
actor = $game_actors[@params[0]]
|
|
if actor
|
|
actor.set_graphic(@params[1], @params[2], @params[3], @params[4])
|
|
end
|
|
$game_player.refresh
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Vehicle Graphic
|
|
#--------------------------------------------------------------------------
|
|
def command_323
|
|
vehicle = $game_map.vehicles[@params[0]]
|
|
vehicle.set_graphic(@params[1], @params[2]) if vehicle
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Nickname
|
|
#--------------------------------------------------------------------------
|
|
def command_324
|
|
actor = $game_actors[@params[0]]
|
|
actor.nickname = @params[1] if actor
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Enemy HP
|
|
#--------------------------------------------------------------------------
|
|
def command_331
|
|
value = operate_value(@params[1], @params[2], @params[3])
|
|
iterate_enemy_index(@params[0]) do |enemy|
|
|
return if enemy.dead?
|
|
enemy.change_hp(value, @params[4])
|
|
enemy.perform_collapse_effect if enemy.dead?
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Enemy MP
|
|
#--------------------------------------------------------------------------
|
|
def command_332
|
|
value = operate_value(@params[1], @params[2], @params[3])
|
|
iterate_enemy_index(@params[0]) do |enemy|
|
|
enemy.mp += value
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Change Enemy State
|
|
#--------------------------------------------------------------------------
|
|
def command_333
|
|
iterate_enemy_index(@params[0]) do |enemy|
|
|
already_dead = enemy.dead?
|
|
if @params[1] == 0
|
|
enemy.add_state(@params[2])
|
|
else
|
|
enemy.remove_state(@params[2])
|
|
end
|
|
enemy.perform_collapse_effect if enemy.dead? && !already_dead
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Enemy Recover All
|
|
#--------------------------------------------------------------------------
|
|
def command_334
|
|
iterate_enemy_index(@params[0]) do |enemy|
|
|
enemy.recover_all
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Enemy Appear
|
|
#--------------------------------------------------------------------------
|
|
def command_335
|
|
iterate_enemy_index(@params[0]) do |enemy|
|
|
enemy.appear
|
|
$game_troop.make_unique_names
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Enemy Transform
|
|
#--------------------------------------------------------------------------
|
|
def command_336
|
|
iterate_enemy_index(@params[0]) do |enemy|
|
|
enemy.transform(@params[1])
|
|
$game_troop.make_unique_names
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Show Battle Animation
|
|
#--------------------------------------------------------------------------
|
|
def command_337
|
|
iterate_enemy_index(@params[0]) do |enemy|
|
|
enemy.animation_id = @params[1] if enemy.alive?
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Force Action
|
|
#--------------------------------------------------------------------------
|
|
def command_339
|
|
iterate_battler(@params[0], @params[1]) do |battler|
|
|
next if battler.death_state?
|
|
battler.force_action(@params[2], @params[3])
|
|
BattleManager.force_action(battler)
|
|
Fiber.yield while BattleManager.action_forced?
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Abort Battle
|
|
#--------------------------------------------------------------------------
|
|
def command_340
|
|
BattleManager.abort
|
|
Fiber.yield
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Open Menu Screen
|
|
#--------------------------------------------------------------------------
|
|
def command_351
|
|
return if $game_party.in_battle
|
|
SceneManager.call(Scene_Menu)
|
|
Window_MenuCommand::init_command_position
|
|
Fiber.yield
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Open Save Screen
|
|
#--------------------------------------------------------------------------
|
|
def command_352
|
|
return if $game_party.in_battle
|
|
SceneManager.call(Scene_Save)
|
|
Fiber.yield
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Game Over
|
|
#--------------------------------------------------------------------------
|
|
def command_353
|
|
SceneManager.goto(Scene_Gameover)
|
|
Fiber.yield
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Return to Title Screen
|
|
#--------------------------------------------------------------------------
|
|
def command_354
|
|
SceneManager.goto(Scene_Title)
|
|
Fiber.yield
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Script
|
|
#--------------------------------------------------------------------------
|
|
def command_355
|
|
script = @list[@index].parameters[0] + "\n"
|
|
while next_event_code == 655
|
|
@index += 1
|
|
script += @list[@index].parameters[0] + "\n"
|
|
end
|
|
eval(script)
|
|
end
|
|
end
|