搜查示例 #
本页内容:在剧本中使用游戏地图进行搜查。 示例作者:雪覆山茶
主剧本 #
1. 搜查流程说明 #
通过 @map 指令开启地图探索,玩家点击地点后会返回一个 flag 值,可以根据 flag 值判断玩家点击的房间走入分支。
2. 剧本代码 #
```nani
@Gosub System/System_Subroutine.BeginAdv
@update "F1" Category:"Map" Version:1
@update "F2" Category:"Map" Version:2
@update "B1" Category:"Map" Version:1
;chosenAreaFlag中的数字应为2的你的房间总数次方减一
@if "chosenAreaFlag == 4194303"
@set "chosenAreaFlag = 0"
@Gosub System/System_Subroutine.EndAdv
@goto soft:true End/End
@map RecreationRoom,Library,Infirmary,SolitaryConfinement,Lake,NoahStudio,Courtyard,BasementHallway,Lounge,EntranceHall,MessHall,Showers,ChamberSalamander,ChamberUndine,ChamberGnome,FrontGuesthouse,Warehouse,Courtroom,CourtroomHallway,PrisonEntrance,Wall,FlowerFields flag:"chosenAreaFlag" Back:false Global:false
;setflag中数字的顺序应与@map中房间的顺序相同
@if "chosenAreaId==\"RecreationRoom\""
@setFlag 0 var:"chosenAreaFlag"
@Gosub System/System_Subroutine.EndAdv
@goto soft:true RecreationRoom/RecreationRoom
@if "chosenAreaId==\"Library\""
@setFlag 1 var:"chosenAreaFlag"
@Gosub System/System_Subroutine.EndAdv
@goto soft:true Library/Library
@if "chosenAreaId==\"Infirmary\""
@setFlag 2 var:"chosenAreaFlag"
@Gosub System/System_Subroutine.EndAdv
@goto soft:true Infirmary/Infirmary
@if "chosenAreaId==\"SolitaryConfinement\""
@setFlag 3 var:"chosenAreaFlag"
@Gosub System/System_Subroutine.EndAdv
@goto soft:true SolitaryConfinement/SolitaryConfinement
@if "chosenAreaId==\"Lake\""
@setFlag 4 var:"chosenAreaFlag"
@Gosub System/System_Subroutine.EndAdv
@goto soft:true Lake/Lake
@if "chosenAreaId==\"NoahStudio\""
@setFlag 5 var:"chosenAreaFlag"
@Gosub System/System_Subroutine.EndAdv
@goto soft:true NoahStudio/NoahStudio
@if "chosenAreaId==\"Courtyard\""
@setFlag 6 var:"chosenAreaFlag"
@Gosub System/System_Subroutine.EndAdv
@goto soft:true Courtyard/Courtyard
@if "chosenAreaId==\"BasementHallway\""
@setFlag 7 var:"chosenAreaFlag"
@Gosub System/System_Subroutine.EndAdv
@goto soft:true BasementHallway/BasementHallway
@if "chosenAreaId==\"Lounge\""
@setFlag 8 var:"chosenAreaFlag"
@Gosub System/System_Subroutine.EndAdv
@goto soft:true Lounge/Lounge
@if "chosenAreaId==\"EntranceHall\""
@setFlag 9 var:"chosenAreaFlag"
@Gosub System/System_Subroutine.EndAdv
@goto soft:true EntranceHall/EntranceHall
@if "chosenAreaId==\"MessHall\""
@setFlag 10 var:"chosenAreaFlag"
@Gosub System/System_Subroutine.EndAdv
@goto soft:true MessHall/MessHall
@if "chosenAreaId==\"Showers\""
@setFlag 11 var:"chosenAreaFlag"
@Gosub System/System_Subroutine.EndAdv
@goto soft:true Showers/Showers
@if "chosenAreaId==\"ChamberSalamander\""
@setFlag 12 var:"chosenAreaFlag"
@Gosub System/System_Subroutine.EndAdv
@goto soft:true ChamberSalamander/ChamberSalamander
@if "chosenAreaId==\"ChamberUndine\""
@setFlag 13 var:"chosenAreaFlag"
@Gosub System/System_Subroutine.EndAdv
@goto soft:true ChamberUndine/ChamberUndine
@if "chosenAreaId==\"ChamberGnome\""
@setFlag 14 var:"chosenAreaFlag"
@Gosub System/System_Subroutine.EndAdv
@goto soft:true ChamberGnome/ChamberGnome
@if "chosenAreaId==\"FrontGuesthouse\""
@setFlag 15 var:"chosenAreaFlag"
@Gosub System/System_Subroutine.EndAdv
@goto soft:true FrontGuesthouse/FrontGuesthouse
@if "chosenAreaId==\"Warehouse\""
@setFlag 16 var:"chosenAreaFlag"
@Gosub System/System_Subroutine.EndAdv
@goto soft:true Warehouse/Warehouse
@if "chosenAreaId==\"Courtroom\""
@setFlag 17 var:"chosenAreaFlag"
@Gosub System/System_Subroutine.EndAdv
@goto soft:true Courtroom/Courtroom
@if "chosenAreaId==\"CourtroomHallway\""
@setFlag 18 var:"chosenAreaFlag"
@Gosub System/System_Subroutine.EndAdv
@goto soft:true CourtroomHallway/CourtroomHallway
@if "chosenAreaId==\"PrisonEntrance\""
@setFlag 19 var:"chosenAreaFlag"
@Gosub System/System_Subroutine.EndAdv
@goto soft:true PrisonEntrance/PrisonEntrance
@if "chosenAreaId==\"Wall\""
@setFlag 20 var:"chosenAreaFlag"
@Gosub System/System_Subroutine.EndAdv
@goto soft:true Wall/Wall
@if "chosenAreaId==\"FlowerFields\""
@setFlag 21 var:"chosenAreaFlag"
@Gosub System/System_Subroutine.EndAdv
@goto soft:true FlowerFields/FlowerFields
@StopForChoice Clear:false
```