447 lines
11 KiB
PHP
447 lines
11 KiB
PHP
@ Interact with cuttable tree
|
||
EventScript_CutTree::
|
||
lockall
|
||
goto_if_unset FLAG_BADGE01_GET, EventScript_CheckTreeCantCut
|
||
checkpartymove MOVE_CUT
|
||
goto_if_eq VAR_RESULT, PARTY_SIZE, EventScript_CheckTreeCantCut
|
||
setfieldeffectargument 0, VAR_RESULT
|
||
bufferpartymonnick STR_VAR_1, VAR_RESULT
|
||
buffermovename STR_VAR_2, MOVE_CUT
|
||
msgbox Text_WantToCut, MSGBOX_YESNO
|
||
goto_if_eq VAR_RESULT, NO, EventScript_CancelCut
|
||
msgbox Text_MonUsedFieldMove, MSGBOX_DEFAULT
|
||
closemessage
|
||
EventScript_CutTreeCommon:
|
||
isfollowerfieldmoveuser VAR_0x8004
|
||
setfieldeffectargument 3, VAR_0x8004 @ skip pose if so
|
||
dofieldeffect FLDEFF_USE_CUT_ON_TREE
|
||
waitstate
|
||
EventScript_CutTreeDown:: @ fallthrough
|
||
setflag FLAG_SAFE_FOLLOWER_MOVEMENT
|
||
call_if_eq VAR_0x8004, TRUE, EventScript_FollowerFieldMove
|
||
applymovement VAR_LAST_TALKED, Movement_CutTreeDown
|
||
waitmovement 0
|
||
removeobject VAR_LAST_TALKED
|
||
releaseall
|
||
end
|
||
|
||
@ Use cut from party menu
|
||
EventScript_UseCut::
|
||
lockall
|
||
goto EventScript_CutTreeCommon
|
||
|
||
Movement_CutTreeDown:
|
||
cut_tree
|
||
step_end
|
||
|
||
EventScript_CheckTreeCantCut::
|
||
msgbox Text_CantCut, MSGBOX_DEFAULT
|
||
releaseall
|
||
end
|
||
|
||
EventScript_CancelCut::
|
||
closemessage
|
||
releaseall
|
||
end
|
||
|
||
Text_WantToCut:
|
||
.string "这棵树好像可以砍断!\n"
|
||
.string "要用居合劈来砍吗?$"
|
||
|
||
Text_MonUsedFieldMove:
|
||
.string "{STR_VAR_1}使用了{STR_VAR_2}!$"
|
||
|
||
Text_CantCut:
|
||
.string "这棵树好像可以用\n"
|
||
.string "秘传招式砍断!$"
|
||
|
||
@ Use rock smash from party menu
|
||
EventScript_UseRockSmash::
|
||
lockall
|
||
goto EventScript_RockSmashCommon
|
||
|
||
@ Interact with smashable rock
|
||
EventScript_RockSmash::
|
||
lockall
|
||
goto_if_unset FLAG_BADGE03_GET, EventScript_CantSmashRock
|
||
checkpartymove MOVE_ROCK_SMASH
|
||
goto_if_eq VAR_RESULT, PARTY_SIZE, EventScript_CantSmashRock
|
||
setfieldeffectargument 0, VAR_RESULT
|
||
bufferpartymonnick STR_VAR_1, VAR_RESULT
|
||
buffermovename STR_VAR_2, MOVE_ROCK_SMASH
|
||
msgbox Text_WantToSmash, MSGBOX_YESNO
|
||
goto_if_eq VAR_RESULT, NO, EventScript_CancelSmash
|
||
msgbox Text_MonUsedFieldMove, MSGBOX_DEFAULT
|
||
closemessage
|
||
EventScript_RockSmashCommon:
|
||
@ check if follower should use the field move
|
||
isfollowerfieldmoveuser VAR_0x8004
|
||
setfieldeffectargument 3, VAR_0x8004 @ skip pose if so
|
||
dofieldeffect FLDEFF_USE_ROCK_SMASH
|
||
waitstate
|
||
EventScript_SmashRock:: @ fallthrough
|
||
setflag FLAG_SAFE_FOLLOWER_MOVEMENT
|
||
call_if_eq VAR_0x8004, TRUE, EventScript_FollowerFieldMove
|
||
applymovement VAR_LAST_TALKED, Movement_SmashRock
|
||
waitmovement 0
|
||
removeobject VAR_LAST_TALKED
|
||
specialvar VAR_RESULT, TryUpdateRusturfTunnelState
|
||
goto_if_eq VAR_RESULT, TRUE, EventScript_EndSmash
|
||
special RockSmashWildEncounter
|
||
goto_if_eq VAR_RESULT, FALSE, EventScript_EndSmash
|
||
waitstate
|
||
releaseall
|
||
end
|
||
|
||
EventScript_FollowerFieldMove:
|
||
getdirectiontoface VAR_0x8005, OBJ_EVENT_ID_FOLLOWER, OBJ_EVENT_ID_PLAYER
|
||
specialvar VAR_0x8006, GetPlayerFacingDirection
|
||
goto_if_eq VAR_0x8005, DIR_NONE, EventScript_FollowerFieldMoveEnd
|
||
@ Swap follower and player
|
||
call EventScript_FollowerSwap
|
||
@ Face follower in direction and jump
|
||
switch VAR_0x8006
|
||
case DIR_NORTH, EventScript_FollowerJumpNorth
|
||
case DIR_EAST, EventScript_FollowerJumpEast
|
||
case DIR_SOUTH, EventScript_FollowerJumpSouth
|
||
case DIR_WEST, EventScript_FollowerJumpWest
|
||
EventScript_FollowerFieldMoveEnd:
|
||
return
|
||
|
||
EventScript_FollowerSwap:
|
||
switch VAR_0x8005
|
||
case DIR_NORTH, EventScript_FollowerMoveNorth
|
||
case DIR_EAST, EventScript_FollowerMoveEast
|
||
case DIR_SOUTH, EventScript_FollowerMoveSouth
|
||
case DIR_WEST, EventScript_FollowerMoveWest
|
||
return
|
||
|
||
EventScript_FollowerMoveNorth:
|
||
applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkDown
|
||
waitmovement 0
|
||
applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_FaceUp
|
||
waitmovement 0
|
||
return
|
||
|
||
EventScript_FollowerMoveEast:
|
||
applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkLeft
|
||
waitmovement 0
|
||
applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_FaceRight
|
||
waitmovement 0
|
||
return
|
||
|
||
EventScript_FollowerMoveSouth:
|
||
applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkUp
|
||
waitmovement 0
|
||
applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_FaceDown
|
||
waitmovement 0
|
||
return
|
||
|
||
EventScript_FollowerMoveWest:
|
||
applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkRight
|
||
waitmovement 0
|
||
applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_FaceLeft
|
||
waitmovement 0
|
||
return
|
||
|
||
EventScript_FollowerJumpNorth:
|
||
applymovement OBJ_EVENT_ID_FOLLOWER, Movement_JumpUp
|
||
waitmovement 0
|
||
return
|
||
|
||
EventScript_FollowerJumpEast:
|
||
applymovement OBJ_EVENT_ID_FOLLOWER, Movement_JumpRight
|
||
waitmovement 0
|
||
return
|
||
|
||
EventScript_FollowerJumpSouth:
|
||
applymovement OBJ_EVENT_ID_FOLLOWER, Movement_JumpDown
|
||
waitmovement 0
|
||
return
|
||
|
||
EventScript_FollowerJumpWest:
|
||
applymovement OBJ_EVENT_ID_FOLLOWER, Movement_JumpLeft
|
||
waitmovement 0
|
||
return
|
||
|
||
EventScript_EndSmash::
|
||
releaseall
|
||
end
|
||
|
||
Movement_WalkUp:
|
||
walk_up
|
||
step_end
|
||
|
||
Movement_JumpUp:
|
||
jump_in_place_up
|
||
step_end
|
||
|
||
Movement_WalkRight:
|
||
walk_right
|
||
step_end
|
||
|
||
Movement_JumpRight:
|
||
jump_in_place_right
|
||
step_end
|
||
|
||
Movement_WalkDown:
|
||
walk_down
|
||
step_end
|
||
|
||
Movement_JumpDown:
|
||
jump_in_place_down
|
||
step_end
|
||
|
||
Movement_WalkLeft:
|
||
walk_left
|
||
step_end
|
||
|
||
Movement_JumpLeft:
|
||
jump_in_place_left
|
||
step_end
|
||
|
||
Movement_SmashRock:
|
||
rock_smash_break
|
||
step_end
|
||
|
||
EventScript_CantSmashRock::
|
||
msgbox Text_CantSmash, MSGBOX_DEFAULT
|
||
releaseall
|
||
end
|
||
|
||
EventScript_CancelSmash::
|
||
closemessage
|
||
releaseall
|
||
end
|
||
|
||
Text_WantToSmash:
|
||
.string "好像可以用秘传招式击碎!\n"
|
||
.string "要使用碎岩吗?$"
|
||
|
||
Text_CantSmash:
|
||
.string "看起来很硬的岩石……\n"
|
||
.string "或许可以用秘传招式击碎?$"
|
||
|
||
EventScript_StrengthBoulder::
|
||
lockall
|
||
goto_if_unset FLAG_BADGE04_GET, EventScript_CantStrength
|
||
goto_if_set FLAG_SYS_USE_STRENGTH, EventScript_CheckActivatedBoulder
|
||
checkpartymove MOVE_STRENGTH
|
||
goto_if_eq VAR_RESULT, PARTY_SIZE, EventScript_CantStrength
|
||
setfieldeffectargument 0, VAR_RESULT
|
||
msgbox Text_WantToStrength, MSGBOX_YESNO
|
||
goto_if_eq VAR_RESULT, NO, EventScript_CancelStrength
|
||
closemessage
|
||
dofieldeffect FLDEFF_USE_STRENGTH
|
||
waitstate
|
||
goto EventScript_ActivateStrength
|
||
end
|
||
|
||
EventScript_UseStrength::
|
||
lockall
|
||
dofieldeffect FLDEFF_USE_STRENGTH
|
||
waitstate
|
||
goto EventScript_ActivateStrength
|
||
end
|
||
|
||
EventScript_ActivateStrength::
|
||
setflag FLAG_SYS_USE_STRENGTH
|
||
msgbox Text_MonUsedStrength, MSGBOX_DEFAULT
|
||
releaseall
|
||
end
|
||
|
||
EventScript_CantStrength::
|
||
msgbox Text_CantStrength, MSGBOX_DEFAULT
|
||
releaseall
|
||
end
|
||
|
||
EventScript_CheckActivatedBoulder::
|
||
msgbox Text_StrengthActivated, MSGBOX_DEFAULT
|
||
releaseall
|
||
end
|
||
|
||
EventScript_CancelStrength::
|
||
closemessage
|
||
releaseall
|
||
end
|
||
|
||
Text_WantToStrength:
|
||
.string "好大的岩石……\n"
|
||
.string "或许可以用秘传招式推动?\l"
|
||
.string "要使用怪力吗?$"
|
||
|
||
Text_MonUsedStrength:
|
||
.string "{STR_VAR_1}使用了怪力!\p"
|
||
.string "使出了怪力后,\n"
|
||
.string "可以推动岩石了!$"
|
||
|
||
Text_CantStrength:
|
||
.string "好大的岩石……\n"
|
||
.string "或许可以用秘传招式推动?$"
|
||
|
||
Text_StrengthActivated:
|
||
.string "使出了怪力后,\n"
|
||
.string "可以推动岩石了!$"
|
||
|
||
EventScript_UseWaterfall::
|
||
lockall
|
||
checkpartymove MOVE_WATERFALL
|
||
goto_if_eq VAR_RESULT, PARTY_SIZE, EventScript_CantWaterfall
|
||
bufferpartymonnick STR_VAR_1, VAR_RESULT
|
||
setfieldeffectargument 0, VAR_RESULT
|
||
msgbox Text_WantToWaterfall, MSGBOX_YESNO
|
||
goto_if_eq VAR_RESULT, NO, EventScript_EndWaterfall
|
||
msgbox Text_MonUsedWaterfall, MSGBOX_DEFAULT
|
||
hidefollowernpc
|
||
dofieldeffect FLDEFF_USE_WATERFALL
|
||
callnative FollowerNPC_WarpSetEnd
|
||
goto EventScript_EndWaterfall
|
||
|
||
EventScript_CannotUseWaterfall::
|
||
lockall
|
||
|
||
EventScript_CantWaterfall::
|
||
msgbox Text_CantWaterfall, MSGBOX_DEFAULT
|
||
|
||
EventScript_EndWaterfall::
|
||
releaseall
|
||
end
|
||
|
||
Text_CantWaterfall:
|
||
.string "伴随着巨大的轰响,\n"
|
||
.string "大量的水从上方倾泻而下!\n"
|
||
.string "或许可以用秘传招式攀上去?$"
|
||
|
||
Text_WantToWaterfall:
|
||
.string "好大的瀑布啊!\n"
|
||
.string "要使用攀瀑吗?$"
|
||
|
||
Text_MonUsedWaterfall:
|
||
.string "{STR_VAR_1}使用了攀瀑。$"
|
||
|
||
EventScript_UseDive::
|
||
lockall
|
||
checkpartymove MOVE_DIVE
|
||
goto_if_eq VAR_RESULT, PARTY_SIZE, EventScript_CantDive
|
||
copyvar 0x8004 VAR_RESULT
|
||
bufferpartymonnick STR_VAR_1, VAR_RESULT
|
||
setfieldeffectargument 0, VAR_RESULT
|
||
setfieldeffectargument 1, 1
|
||
msgbox Text_WantToDive, MSGBOX_YESNO
|
||
goto_if_eq VAR_RESULT, NO, EventScript_EndDive
|
||
msgbox Text_MonUsedDive, MSGBOX_DEFAULT
|
||
hidefollowernpc
|
||
setfieldeffectargument 0, VAR_0x8004
|
||
setfieldeffectargument 1, 1
|
||
dofieldeffect FLDEFF_USE_DIVE
|
||
goto EventScript_EndDive
|
||
end
|
||
|
||
EventScript_CantDive::
|
||
msgbox Text_CantDive, MSGBOX_DEFAULT
|
||
releaseall
|
||
end
|
||
|
||
EventScript_EndDive::
|
||
releaseall
|
||
end
|
||
|
||
EventScript_UseDiveUnderwater::
|
||
lockall
|
||
checkpartymove MOVE_DIVE
|
||
goto_if_eq VAR_RESULT, PARTY_SIZE, EventScript_CantSurface
|
||
bufferpartymonnick STR_VAR_1, VAR_RESULT
|
||
setfieldeffectargument 0, VAR_RESULT
|
||
setfieldeffectargument 1, 1
|
||
msgbox Text_WantToSurface, MSGBOX_YESNO
|
||
goto_if_eq VAR_RESULT, NO, EventScript_NoSurface
|
||
msgbox Text_MonUsedDive, MSGBOX_DEFAULT
|
||
hidefollowernpc
|
||
dofieldeffect FLDEFF_USE_DIVE
|
||
goto EventScript_EndSurface
|
||
end
|
||
|
||
EventScript_CantSurface::
|
||
lockall
|
||
msgbox Text_CantSurface, MSGBOX_DEFAULT
|
||
goto EventScript_EndSurface
|
||
end
|
||
|
||
EventScript_EndSurface::
|
||
callnative SetFollowerNPCSurfSpriteAfterDive
|
||
EventScript_NoSurface::
|
||
releaseall
|
||
end
|
||
|
||
EventScript_DigCommon:
|
||
isfollowerfieldmoveuser VAR_0x8004
|
||
setfieldeffectargument 3, VAR_0x8004 @ skip pose if true
|
||
dofieldeffect FLDEFF_USE_DIG
|
||
waitstate
|
||
EventScript_DigSealedChamber:: @ fallthrough
|
||
setflag FLAG_SAFE_FOLLOWER_MOVEMENT
|
||
call_if_eq VAR_0x8004, TRUE, EventScript_FollowerFieldMove
|
||
callnative DoBrailleDigEffect
|
||
releaseall
|
||
end
|
||
|
||
@ Use Dig from party menu
|
||
EventScript_UseDig::
|
||
lockall
|
||
goto EventScript_DigCommon
|
||
|
||
|
||
EventScript_CutGrassCommon:
|
||
isfollowerfieldmoveuser VAR_0x8004
|
||
setfieldeffectargument 3, VAR_0x8004 @ skip pose if true
|
||
dofieldeffect FLDEFF_USE_CUT_ON_GRASS
|
||
waitstate
|
||
|
||
@ Use Cut grass from party menu
|
||
EventScript_UseCutGrass::
|
||
lockall
|
||
goto EventScript_CutGrassCommon
|
||
|
||
Text_CantDive:
|
||
.string "这里的水很深。\n"
|
||
.string "好像可以用秘传招式潜下去。$"
|
||
|
||
Text_WantToDive:
|
||
.string "这里的水很深。\n"
|
||
.string "要使用潜水吗?$"
|
||
|
||
Text_MonUsedDive:
|
||
.string "{STR_VAR_1}使用了潜水。$"
|
||
|
||
Text_CantSurface:
|
||
.string "上方有亮光洒下。\n"
|
||
.string "好像可以从这里浮出水面。$"
|
||
|
||
Text_WantToSurface:
|
||
.string "上方有亮光洒下。\n"
|
||
.string "要使用潜水吗?$"
|
||
|
||
EventScript_FailSweetScent::
|
||
msgbox Text_FailSweetScent, MSGBOX_SIGN
|
||
end
|
||
|
||
Text_FailSweetScent:
|
||
.string "看起来这里什么也没有……$"
|
||
|
||
EventScript_UseDefog::
|
||
lockall
|
||
bufferpartymonnick STR_VAR_1, VAR_RESULT
|
||
buffermovename STR_VAR_2, MOVE_DEFOG
|
||
msgbox Text_MonUsedFieldMove, MSGBOX_DEFAULT
|
||
closemessage
|
||
isfollowerfieldmoveuser VAR_0x8004
|
||
setfieldeffectargument 3, VAR_0x8004 @ skip pose if so
|
||
setflag FLAG_SAFE_FOLLOWER_MOVEMENT
|
||
call_if_eq VAR_0x8004, TRUE, EventScript_FollowerFieldMove
|
||
waitmovement 0
|
||
setfieldeffectargument 0, VAR_RESULT
|
||
dofieldeffect FLDEFF_DEFOG
|
||
waitstate
|
||
releaseall
|
||
end
|