=begin ■ イベントコマンド:条件分岐周りのバグFix 2010/09/16 ・「アクターが防具XXXを装備している」で装飾品が判定されていなかったのを修正 ・「スクリプト」で「true,false」以外の結果でも機能するように修正 =end class Interpreter #-------------------------------------------------------------------------- # ● 条件分岐 #-------------------------------------------------------------------------- # 再定義 def command_111 # ローカル変数 result を初期化 result = false # 条件判定 case @parameters[0] when 0 # スイッチ result = ($game_switches[@parameters[1]] == (@parameters[2] == 0)) when 1 # 変数 value1 = $game_variables[@parameters[1]] if @parameters[2] == 0 value2 = @parameters[3] else value2 = $game_variables[@parameters[3]] end case @parameters[4] when 0 # と同値 result = (value1 == value2) when 1 # 以上 result = (value1 >= value2) when 2 # 以下 result = (value1 <= value2) when 3 # 超 result = (value1 > value2) when 4 # 未満 result = (value1 < value2) when 5 # 以外 result = (value1 != value2) end when 2 # セルフスイッチ if @event_id > 0 key = [$game_map.map_id, @event_id, @parameters[1]] if @parameters[2] == 0 result = ($game_self_switches[key] == true) else result = ($game_self_switches[key] != true) end end when 3 # タイマー if $game_system.timer_working sec = $game_system.timer / Graphics.frame_rate if @parameters[2] == 0 result = (sec >= @parameters[1]) else result = (sec <= @parameters[1]) end end when 4 # アクター actor = $game_actors[@parameters[1]] if actor != nil case @parameters[2] when 0 # パーティにいる result = ($game_party.actors.include?(actor)) when 1 # 名前 result = (actor.name == @parameters[3]) when 2 # スキル result = (actor.skill_learn?(@parameters[3])) when 3 # 武器 result = (actor.weapon_id == @parameters[3]) when 4 # 防具 # ★★★装飾品も判定するように変更 result = (actor.armor1_id == @parameters[3] or actor.armor2_id == @parameters[3] or actor.armor3_id == @parameters[3] or actor.armor4_id == @parameters[3]) when 5 # ステート result = (actor.state?(@parameters[3])) end end when 5 # エネミー enemy = $game_troop.enemies[@parameters[1]] if enemy != nil case @parameters[2] when 0 # 出現している result = (enemy.exist?) when 1 # ステート result = (enemy.state?(@parameters[3])) end end when 6 # キャラクター character = get_character(@parameters[1]) if character != nil result = (character.direction == @parameters[2]) end when 7 # ゴールド if @parameters[2] == 0 result = ($game_party.gold >= @parameters[1]) else result = ($game_party.gold <= @parameters[1]) end when 8 # アイテム result = ($game_party.item_number(@parameters[1]) > 0) when 9 # 武器 result = ($game_party.weapon_number(@parameters[1]) > 0) when 10 # 防具 result = ($game_party.armor_number(@parameters[1]) > 0) when 11 # ボタン result = (Input.press?(@parameters[1])) when 12 # スクリプト result = eval(@parameters[1]) end # 判定結果をハッシュに格納 # ★★★trueかfalseで格納するように変更 @branch[@list[@index].indent] = result ? true : false # 判定結果が真だった場合 if @branch[@list[@index].indent] == true # 分岐データを削除 @branch.delete(@list[@index].indent) # 継続 return true end # 条件に該当しない場合 : コマンドスキップ return command_skip end end