Auteur: Yukihiro matsumoto
#============================================
# ¡ Interpreter (•ªŠ„’è‹` 7)
#----------------------------------------------
# @ƒCƒxƒ“ƒgƒRƒ}ƒ“ƒh‚ðŽÀs‚·‚éƒCƒ“ƒ^ƒvƒŠƒ^‚Å‚·B‚±‚̃Nƒ‰ƒX‚Í Game_System ƒNƒ‰
# ƒX‚â Game_Event ƒNƒ‰ƒX‚Ì“à•”‚ÅŽg—p‚³‚ê‚Ü‚·B
#============================================
class Interpreter
#------------------------------------------
# œ ƒGƒlƒ~[‚Ì HP ‘Œ¸
#------------------------------------------
def command_331
# ‘€ì‚·‚é’l‚ðŽæ“¾
value = operate_value(@parameters[1], @parameters[2], @parameters[3])
# ƒCƒeƒŒ[ƒ^‚ň—
iterate_enemy(@parameters[0]) do |enemy|
# HP ‚ª 0 ‚łȂ¢ê‡
if enemy.hp > 0
# HP ‚ð•ÏX (퓬•s”‚ª‹–‰Â‚³‚ê‚Ä‚¢‚È‚¯‚ê‚Î 1 ‚É‚·‚é)
if @parameters[4] == false and enemy.hp + value <= 0
enemy.hp = 1
else
enemy.hp += value
end
end
end
# Œp‘±
return true
end
#------------------------------------------
# œ ƒGƒlƒ~[‚Ì SP ‘Œ¸
#------------------------------------------
def command_332
# ‘€ì‚·‚é’l‚ðŽæ“¾
value = operate_value(@parameters[1], @parameters[2], @parameters[3])
# ƒCƒeƒŒ[ƒ^‚ň—
iterate_enemy(@parameters[0]) do |enemy|
# SP ‚ð•ÏX
enemy.sp += value
end
# Œp‘±
return true
end
#------------------------------------------
# œ ƒGƒlƒ~[‚̃Xƒe[ƒg•ÏX
#------------------------------------------
def command_333
# ƒCƒeƒŒ[ƒ^‚ň—
iterate_enemy(@parameters[0]) do |enemy|
# ƒXƒe[ƒg‚̃IƒvƒVƒ‡ƒ“ [HP 0 ‚Ìó‘ԂƂ݂Ȃ·] ‚ª—LŒø‚Ìê‡
if $data_states[@parameters[2]].zero_hp
# •sŽ€gƒtƒ‰ƒO‚ðƒNƒŠƒA
enemy.immortal = false
end
# ƒXƒe[ƒg‚ð•ÏX
if @parameters[1] == 0
enemy.add_state(@parameters[2])
else
enemy.remove_state(@parameters[2])
end
end
# Œp‘±
return true
end
#------------------------------------------
# œ ƒGƒlƒ~[‚Ì‘S‰ñ•œ
#------------------------------------------
def command_334
# ƒCƒeƒŒ[ƒ^‚ň—
iterate_enemy(@parameters[0]) do |enemy|
# ‘S‰ñ•œ
enemy.recover_all
end
# Œp‘±
return true
end
#------------------------------------------
# œ ƒGƒlƒ~[‚ÌoŒ»
#------------------------------------------
def command_335
# ƒGƒlƒ~[‚ðŽæ“¾
enemy = $game_troop.enemies[@parameters[0]]
# ‰B‚êƒtƒ‰ƒO‚ðƒNƒŠƒA
if enemy != nil
enemy.hidden = false
end
# Œp‘±
return true
end
#------------------------------------------
# œ ƒGƒlƒ~[‚Ì•Ïg
#------------------------------------------
def command_336
# ƒGƒlƒ~[‚ðŽæ“¾
enemy = $game_troop.enemies[@parameters[0]]
# •Ïgˆ—
if enemy != nil
enemy.transform(@parameters[1])
end
# Œp‘±
return true
end
#------------------------------------------
# œ ƒAƒjƒ[ƒVƒ‡ƒ“‚Ì•Ž¦
#------------------------------------------
def command_337
# ƒCƒeƒŒ[ƒ^‚ň—
iterate_battler(@parameters[0], @parameters[1]) do |battler|
# ƒoƒgƒ‰[‚ª‘¶Ý‚·‚éê‡
if battler.exist?
# ƒAƒjƒ[ƒVƒ‡ƒ“ ID ‚ðÝ’è
battler.animation_id = @parameters[2]
end
end
# Œp‘±
return true
end
#------------------------------------------
# œ ƒ_ƒ[ƒW‚̈—
#------------------------------------------
def command_338
# ‘€ì‚·‚é’l‚ðŽæ“¾
value = operate_value(0, @parameters[2], @parameters[3])
# ƒCƒeƒŒ[ƒ^‚ň—
iterate_battler(@parameters[0], @parameters[1]) do |battler|
# ƒoƒgƒ‰[‚ª‘¶Ý‚·‚éê‡
if battler.exist?
# HP ‚ð•ÏX
battler.hp -= value
# 퓬’†‚È‚ç
if $game_temp.in_battle
# ƒ_ƒ[ƒW‚ðÝ’è
battler.damage = value
battler.damage_pop = true
end
end
end
# Œp‘±
return true
end
#------------------------------------------
# œ ƒAƒNƒVƒ‡ƒ“‚Ì‹§
#------------------------------------------
def command_339
# 퓬’†‚łȂ¯‚ê‚Ζ³Ž‹
unless $game_temp.in_battle
return true
end
# ƒ^[ƒ“”‚ª 0 ‚È‚ç–³Ž‹
if $game_temp.battle_turn == 0
return true
end
# ƒCƒeƒŒ[ƒ^‚ň— (•Ö‹X“I‚È‚à‚Ì‚ÅA•¡”‚ɂȂ邱‚Ƃ͂Ȃ¢)
iterate_battler(@parameters[0], @parameters[1]) do |battler|
# ƒoƒgƒ‰[‚ª‘¶Ý‚·‚éê‡
if battler.exist?
# ƒAƒNƒVƒ‡ƒ“‚ðÝ’è
battler.current_action.kind = @parameters[2]
if battler.current_action.kind == 0
battler.current_action.basic = @parameters[3]
else
battler.current_action.skill_id = @parameters[3]
end
# s“®‘ÎÛ‚ðÝ’è
if @parameters[4] == -2
if battler.is_a?(Game_Enemy)
battler.current_action.decide_last_target_for_enemy
else
battler.current_action.decide_last_target_for_actor
end
elsif @parameters[4] == -1
if battler.is_a?(Game_Enemy)
battler.current_action.decide_random_target_for_enemy
else
battler.current_action.decide_random_target_for_actor
end
elsif @parameters[4] >= 0
battler.current_action.target_index = @parameters[4]
end
# ‹§ƒtƒ‰ƒO‚ðÝ’è
battler.current_action.forcing = true
# ƒAƒNƒVƒ‡ƒ“‚ª—LŒø‚©‚ [‚·‚®‚ÉŽÀs] ‚Ìê‡
if battler.current_action.valid? and @parameters[5] == 1
# ‹§‘Îۂ̃oƒgƒ‰[‚ðÝ’è
$game_temp.forcing_battler = battler
# ƒCƒ“ƒfƒbƒNƒX‚ði‚ß‚é
@index += 1
# I—¹
return false
end
end
end
# Œp‘±
return true
end
#------------------------------------------
# œ ƒoƒgƒ‹‚Ì’†’f
#------------------------------------------
def command_340
# ƒoƒgƒ‹’†’fƒtƒ‰ƒO‚ðƒZƒbƒg
$game_temp.battle_abort = true
# ƒCƒ“ƒfƒbƒNƒX‚ði‚ß‚é
@index += 1
# I—¹
return false
end
#------------------------------------------
# œ ƒƒjƒ…[‰æ–ʂ̌ĂÑo‚µ
#------------------------------------------
def command_351
# ƒoƒgƒ‹’†’fƒtƒ‰ƒO‚ðƒZƒbƒg
$game_temp.battle_abort = true
# ƒƒjƒ…[ŒÄ‚Ño‚µƒtƒ‰ƒO‚ðƒZƒbƒg
$game_temp.menu_calling = true
# ƒCƒ“ƒfƒbƒNƒX‚ði‚ß‚é
@index += 1
# I—¹
return false
end
#------------------------------------------
# œ ƒZ[ƒu‰æ–ʂ̌ĂÑo‚µ
#------------------------------------------
def command_352
# ƒoƒgƒ‹’†’fƒtƒ‰ƒO‚ðƒZƒbƒg
$game_temp.battle_abort = true
# ƒZ[ƒuŒÄ‚Ño‚µƒtƒ‰ƒO‚ðƒZƒbƒg
$game_temp.save_calling = true
# ƒCƒ“ƒfƒbƒNƒX‚ði‚ß‚é
@index += 1
# I—¹
return false
end
#------------------------------------------
# œ ƒQ[ƒ€ƒI[ƒo[
#------------------------------------------
def command_353
# ƒQ[ƒ€ƒI[ƒo[ƒtƒ‰ƒO‚ðƒZƒbƒg
$game_temp.gameover = true
# I—¹
return false
end
#------------------------------------------
# œ ƒ^ƒCƒgƒ‹‰æ–ʂɖ߂·
#------------------------------------------
def command_354
# ƒ^ƒCƒgƒ‹‰æ–ʂɖ߂·ƒtƒ‰ƒO‚ðƒZƒbƒg
$game_temp.to_title = true
# I—¹
return false
end
#------------------------------------------
# œ ƒXƒNƒŠƒvƒg
#------------------------------------------
def command_355
# script ‚É 1 s–Ú‚ðÝ’è
script = @list[@index].parameters[0] + "n"
# ƒ‹[ƒv
loop do
# ŽŸ‚̃Cƒxƒ“ƒgƒRƒ}ƒ“ƒh‚ªƒXƒNƒŠƒvƒg 2 s–ÚˆÈ~‚Ìê‡
if @list[@index+1].code == 655
# script ‚É 2 s–ÚˆÈ~‚ð’ljÁ
script += @list[@index+1].parameters[0] + "n"
# ƒCƒxƒ“ƒgƒRƒ}ƒ“ƒh‚ªƒXƒNƒŠƒvƒg 2 s–ÚˆÈ~‚ł͂Ȃ¢ê‡
else
# ƒ‹[ƒv’†’f
break
end
# ƒCƒ“ƒfƒbƒNƒX‚ði‚ß‚é
@index += 1
end
# •]‰¿
result = eval(script)
# –ß‚è’l‚ª false ‚Ìê‡
if result == false
# I—¹
return false
end
# Œp‘±
return true
end
end |
|