Auteur: Yukihiro matsumoto
#============================================
# ¡ Interpreter (•ªŠ„’è‹` 2)
#----------------------------------------------
# @ƒCƒxƒ“ƒgƒRƒ}ƒ“ƒh‚ðŽÀs‚·‚éƒCƒ“ƒ^ƒvƒŠƒ^‚Å‚·B‚±‚̃Nƒ‰ƒX‚Í Game_System ƒNƒ‰
# ƒX‚â Game_Event ƒNƒ‰ƒX‚Ì“à•”‚ÅŽg—p‚³‚ê‚Ü‚·B
#============================================
class Interpreter
#------------------------------------------
# œ ƒCƒxƒ“ƒgƒRƒ}ƒ“ƒh‚ÌŽÀs
#------------------------------------------
def execute_command
# ŽÀs“à—eƒŠƒXƒg‚ÌÅŒã‚É“ž’B‚µ‚½ê‡
if @index >= @list.size - 1
# ƒCƒxƒ“ƒg‚ÌI—¹
command_end
# Œp‘±
return true
end
# ƒCƒxƒ“ƒgƒRƒ}ƒ“ƒh‚̃pƒ‰ƒ[ƒ^‚ð @parameters ‚ÅŽQƉ”‚É
@parameters = @list[@index].parameters
# ƒRƒ}ƒ“ƒhƒR[ƒh‚Å•ªŠò
case @list[@index].code
when 101 # •¶Í‚Ì•Ž¦
return command_101
when 102 # ‘I‘ðŽˆ‚Ì•Ž¦
return command_102
when 402 # [**] ‚Ìê‡
return command_402
when 403 # ƒLƒƒƒ“ƒZƒ‹‚Ìê‡
return command_403
when 103 # ”’l“ü—͂̈—
return command_103
when 104 # •¶ÍƒIƒvƒVƒ‡ƒ“•ÏX
return command_104
when 105 # ƒ{ƒ^ƒ““ü—͂̈—
return command_105
when 106 # ƒEƒFƒCƒg
return command_106
when 111 # ðŒ•ªŠò
return command_111
when 411 # ‚»‚êˆÈŠO‚Ìê‡
return command_411
when 112 # ƒ‹[ƒv
return command_112
when 413 # ˆÈãŒJ‚è•Ô‚µ
return command_413
when 113 # ƒ‹[ƒv‚Ì’†’f
return command_113
when 115 # ƒCƒxƒ“ƒgˆ—‚Ì’†’f
return command_115
when 116 # ƒCƒxƒ“ƒg‚̈ꎞÁ‹Ž
return command_116
when 117 # ƒRƒ‚ƒ“ƒCƒxƒ“ƒg
return command_117
when 118 # ƒ‰ƒxƒ‹
return command_118
when 119 # ƒ‰ƒxƒ‹ƒWƒƒƒ“ƒv
return command_119
when 121 # ƒXƒCƒbƒ`‚Ì‘€ì
return command_121
when 122 # •Ï”‚Ì‘€ì
return command_122
when 123 # ƒZƒ‹ƒtƒXƒCƒbƒ`‚Ì‘€ì
return command_123
when 124 # ƒ^ƒCƒ}[‚Ì‘€ì
return command_124
when 125 # ƒS[ƒ‹ƒh‚Ì‘Œ¸
return command_125
when 126 # ƒAƒCƒeƒ€‚Ì‘Œ¸
return command_126
when 127 # •Ší‚Ì‘Œ¸
return command_127
when 128 # –h‹ï‚Ì‘Œ¸
return command_128
when 129 # ƒAƒNƒ^[‚Ì“ü‚ê‘Ö‚¦
return command_129
when 131 # ƒEƒBƒ“ƒhƒEƒXƒLƒ“‚Ì•ÏX
return command_131
when 132 # ƒoƒgƒ‹ BGM ‚Ì•ÏX
return command_132
when 133 # ƒoƒgƒ‹I—¹ ME ‚Ì•ÏX
return command_133
when 134 # ƒZ[ƒu‹ÖŽ~‚Ì•ÏX
return command_134
when 135 # ƒƒjƒ…[‹ÖŽ~‚Ì•ÏX
return command_135
when 136 # ƒGƒ“ƒJƒEƒ“ƒg‹ÖŽ~‚Ì•ÏX
return command_136
when 201 # ꊈړ®
return command_201
when 202 # ƒCƒxƒ“ƒg‚̈ʒuÝ’è
return command_202
when 203 # ƒ}ƒbƒv‚̃XƒNƒ[ƒ‹
return command_203
when 204 # ƒ}ƒbƒv‚ÌÝ’è•ÏX
return command_204
when 205 # ƒtƒHƒO‚ÌF’²•ÏX
return command_205
when 206 # ƒtƒHƒO‚Ì•s“§–¾“x•ÏX
return command_206
when 207 # ƒAƒjƒ[ƒVƒ‡ƒ“‚Ì•Ž¦
return command_207
when 208 # “§–¾ó‘Ô‚Ì•ÏX
return command_208
when 209 # ˆÚ“®ƒ‹[ƒg‚ÌÝ’è
return command_209
when 210 # ˆÚ“®Š®—¹‚܂ŃEƒFƒCƒg
return command_210
when 221 # ƒgƒ‰ƒ“ƒWƒVƒ‡ƒ“€”õ
return command_221
when 222 # ƒgƒ‰ƒ“ƒWƒVƒ‡ƒ“ŽÀs
return command_222
when 223 # ‰æ–Ê‚ÌF’²•ÏX
return command_223
when 224 # ‰æ–ʂ̃tƒ‰ƒbƒVƒ…
return command_224
when 225 # ‰æ–ʂ̃VƒFƒCƒN
return command_225
when 231 # ƒsƒNƒ`ƒƒ‚Ì•Ž¦
return command_231
when 232 # ƒsƒNƒ`ƒƒ‚̈ړ®
return command_232
when 233 # ƒsƒNƒ`ƒƒ‚̉ñ“]
return command_233
when 234 # ƒsƒNƒ`ƒƒ‚ÌF’²•ÏX
return command_234
when 235 # ƒsƒNƒ`ƒƒ‚ÌÁ‹Ž
return command_235
when 236 # “VŒó‚ÌÝ’è
return command_236
when 241 # BGM ‚̉‰‘t
return command_241
when 242 # BGM ‚̃tƒF[ƒhƒAƒEƒg
return command_242
when 245 # BGS ‚̉‰‘t
return command_245
when 246 # BGS ‚̃tƒF[ƒhƒAƒEƒg
return command_246
when 247 # BGM / BGS ‚Ì‹L‰¯
return command_247
when 248 # BGM / BGS ‚Ì•œ‹A
return command_248
when 249 # ME ‚̉‰‘t
return command_249
when 250 # SE ‚̉‰‘t
return command_250
when 251 # SE ‚Ì’âŽ~
return command_251
when 301 # ƒoƒgƒ‹‚̈—
return command_301
when 601 # Ÿ‚Á‚½ê‡
return command_601
when 602 # “¦‚°‚½ê‡
return command_602
when 603 # •‰‚¯‚½ê‡
return command_603
when 302 # ƒVƒ‡ƒbƒv‚̈—
return command_302
when 303 # –¼‘O“ü—͂̈—
return command_303
when 311 # HP ‚Ì‘Œ¸
return command_311
when 312 # SP ‚Ì‘Œ¸
return command_312
when 313 # ƒXƒe[ƒg‚Ì•ÏX
return command_313
when 314 # ‘S‰ñ•œ
return command_314
when 315 # EXP ‚Ì‘Œ¸
return command_315
when 316 # ƒŒƒxƒ‹‚Ì‘Œ¸
return command_316
when 317 # ƒpƒ‰ƒ[ƒ^‚Ì‘Œ¸
return command_317
when 318 # ƒXƒLƒ‹‚Ì‘Œ¸
return command_318
when 319 # ‘•”õ‚Ì•ÏX
return command_319
when 320 # ƒAƒNƒ^[‚Ì–¼‘O•ÏX
return command_320
when 321 # ƒAƒNƒ^[‚̃Nƒ‰ƒX•ÏX
return command_321
when 322 # ƒAƒNƒ^[‚̃Oƒ‰ƒtƒBƒbƒN•ÏX
return command_322
when 331 # ƒGƒlƒ~[‚Ì HP ‘Œ¸
return command_331
when 332 # ƒGƒlƒ~[‚Ì SP ‘Œ¸
return command_332
when 333 # ƒGƒlƒ~[‚̃Xƒe[ƒg•ÏX
return command_333
when 334 # ƒGƒlƒ~[‚ÌoŒ»
return command_334
when 335 # ƒGƒlƒ~[‚Ì•Ïg
return command_335
when 336 # ƒGƒlƒ~[‚Ì‘S‰ñ•œ
return command_336
when 337 # ƒAƒjƒ[ƒVƒ‡ƒ“‚Ì•Ž¦
return command_337
when 338 # ƒ_ƒ[ƒW‚̈—
return command_338
when 339 # ƒAƒNƒVƒ‡ƒ“‚Ì‹§
return command_339
when 340 # ƒoƒgƒ‹‚Ì’†’f
return command_340
when 351 # ƒƒjƒ…[‰æ–ʂ̌ĂÑo‚µ
return command_351
when 352 # ƒZ[ƒu‰æ–ʂ̌ĂÑo‚µ
return command_352
when 353 # ƒQ[ƒ€ƒI[ƒo[
return command_353
when 354 # ƒ^ƒCƒgƒ‹‰æ–ʂɖ߂·
return command_354
when 355 # ƒXƒNƒŠƒvƒg
return command_355
else # ‚»‚Ì‘¼
return true
end
end
#------------------------------------------
# œ ƒCƒxƒ“ƒg‚ÌI—¹
#------------------------------------------
def command_end
# ŽÀs“à—eƒŠƒXƒg‚ðƒNƒŠƒA
@list = nil
# ƒƒCƒ“‚̃}ƒbƒvƒCƒxƒ“ƒg ‚©‚ ƒCƒxƒ“ƒg ID ‚ª—LŒø‚Ìê‡
if @main and @event_id > 0
# ƒCƒxƒ“ƒg‚̃ƒbƒN‚ð‰ðœ
$game_map.events[@event_id].unlock
end
end
#------------------------------------------
# œ ƒRƒ}ƒ“ƒhƒXƒLƒbƒv
#------------------------------------------
def command_skip
# ƒCƒ“ƒfƒ“ƒg‚ðŽæ“¾
indent = @list[@index].indent
# ƒ‹[ƒv
loop do
# ŽŸ‚̃Cƒxƒ“ƒgƒRƒ}ƒ“ƒh‚ª“¯ƒŒƒxƒ‹‚̃Cƒ“ƒfƒ“ƒg‚Ìê‡
if @list[@index+1].indent == indent
# Œp‘±
return true
end
# ƒCƒ“ƒfƒbƒNƒX‚ði‚ß‚é
@index += 1
end
end
#------------------------------------------
# œ ƒLƒƒƒ‰ƒNƒ^[‚̎擾
# parameter : ƒpƒ‰ƒ[ƒ^
#------------------------------------------
def get_character(parameter)
# ƒpƒ‰ƒ[ƒ^‚Å•ªŠò
case parameter
when -1 # ƒvƒŒƒCƒ„[
return $game_player
when 0 # ‚±‚̃Cƒxƒ“ƒg
events = $game_map.events
return events == nil ? nil : events[@event_id]
else # “Á’è‚̃Cƒxƒ“ƒg
events = $game_map.events
return events == nil ? nil : events[parameter]
end
end
#------------------------------------------
# œ ‘€ì‚·‚é’l‚ÌŒvŽZ
# operation : ‘€ì
# operand_type : ƒIƒyƒ‰ƒ“ƒhƒ^ƒCƒv (0:’è” 1:•Ï”)
# operand : ƒIƒyƒ‰ƒ“ƒh (”’l‚Ü‚½‚͕ϔ ID)
#------------------------------------------
def operate_value(operation, operand_type, operand)
# ƒIƒyƒ‰ƒ“ƒh‚ðŽæ“¾
if operand_type == 0
value = operand
else
value = $game_variables[operand]
end
# ‘€ì‚ª [Œ¸‚ç‚·] ‚Ìꇂ͕„†‚𔽓]
if operation == 1
value = -value
end
# value ‚ð•Ô‚·
return value
end
end |
|