试试写一个魔女裁判 #
让我们来写一个简单的裁判 #
初始化裁判庭剧本 #
创建裁判庭初始化脚本TrialInit.nani,修改其中的设置
主要关注点为出场人物,不出场的人物ID设为-1即可
;设置出场人物位置ID,为-1的话就是未出席 @set "emaIdx = 0" @set "hiroIdx = 3" @set "meruruIdx = -1" @set "hannaIdx = 6" @set "sherryIdx = 9" @set "ananIdx = -1" @set "leiaIdx = -1" @set "cocoIdx = -1" @set "miriaIdx = -1" @set "margoIdx = -1" @set "noahIdx = -1" @set "nanokaIdx = -1" @set "alisaIdx = -1" @set "yukiIdx = -1" @set "wardenIdx = -1" @set "jailerIdx = -1"调用游戏自身的初始化剧本 #
调用初始化剧本:SherryAppleJuice_ExampleTrialMod/TrialInit和System/System_Subroutine.EndTrial。
在对话剧本的首尾通过gosub分别执行这两个初始化剧本
;初始化日常活动状态 @gosub SherryAppleJuice_ExampleTrialMod/TrialInit;结束裁判状态 @gosub System/System_Subroutine.EndTrial设置裁判超时坏结局 #
通过timer指令设置倒计时
通过set指令设置超时坏结局XXX,并创建Common/Common+XXX.nani文件,这个剧本文件就是坏结局的入口
;设置倒计时 @timer 30 ;设置坏结局 @set "commonBadEndId=\"SherryAppleJuice_ExampleTrialMod00\""完整样例 #
SherryAppleJuice_ExampleTrialMod/Main.nani
;初始化裁判状态 @gosub SherryAppleJuice_ExampleTrialMod/TrialInit ;设置倒计时 @timer 30 ;设置坏结局 @set "commonBadEndId=\"SherryAppleJuice_ExampleTrialMod00\"" ;隐藏日常UI并显示裁判UI @HideUI ControlPanel @ShowUI DebateUI ;裁判循环起点 # Judge00 ;裁判循环起点初始化 @gosub System/System_Subroutine.BeginDebate-First ;播放裁判循环起点特效 @gosub System/System_Subroutine.BeginDebate-Effect @gosub System/System_Subroutine.BeginDebate-Last ;裁判开始倒计时 @pauseTrial false ;隐藏正交相机的场景,展示出裁判庭的3D场景 @hideStageScreen 1 ;将最上面原本黑色的Overlay遮罩层变为透明,同时还指定了动画时间 @back SubId:"Overlay" Transparent tint:"#000000" time:0.9 ;将镜头设置到艾玛脸上 @char Ema.Smile1 @gosubModifyCamera 0 look:"Ema" comp:"Left" rollDir:"Right" zoomLvl:3 @printDebate pos:70,50 Roll:4 "这是一个测试用例,<br>我来客串一下。" @printDebate pos:70,50 Roll:4 "我在左边,字在右边" ;将镜头设置到艾玛脸上,换个方向 @char Ema.Smile1 @gosubModifyCamera 0 look:"Ema" comp:"Center" zoomLvl:3 @printDebate pos:50,30 Roll:4 "我在中间,字在下面。" ;将镜头设置到艾玛脸上,换个方向 @char Ema.Angry1 @gosubModifyCamera 0 look:"Ema" comp:"Right" rollDir:"Left" zoomLvl:3 @printDebate pos:30,50 Roll:4 "我在右边,字在左边。" ;雪莉说了一个破绽 @char Sherry.Smile1 @gosubModifyCamera 0 look:"Sherry" comp:"Left" rollDir:"Right" zoomLvl:3 @printDebate pos:70,50 Roll:4 "这里有一个<link="Right_Choice_000">关键词</link>,点进去就可以进入选项分支啦。" ;裁判循环终点初始化 @Gosub System/System_Subroutine.EndDebate-First @pauseTrial true ;播放裁判循环终点特效 @gosub System/System_Subroutine.EndDebate-Effect @gosub System/System_Subroutine.EndDebate-Last ;显示正交相机的场景 @showStageScreen 1 Ema: 到这里一轮辩论就结束啦 Ema: 接下来准备继续循环 ;回到裁判循环起点 @goto .Judge00 # Right_Choice_000 ;暂停倒计时 @pauseTrial true timer:true @choice "这个是正确的选项分支" button:"ChoiceButtons/Trial/Approval" handler:"Trial" ;播放有效 @sfx "Sfx_System_SaveData_001_2x" ;停止播放语音 @StopVoice ;关闭返回,使用这个指令后,点击选项就不会回到辩论循环了 @CancelGosub ;跳转到目标剧情 @goto .Right_Adv_000 @choice "这个是错误的选项分支" button:"ChoiceButtons/Trial/Objection" handler:"Trial" @sfx "Sfx_System_SaveData_001_2x" @StopVoice @CancelGosub @goto .Error_Adv_000 @choice "返回" button:"ChoiceButtons/Trial/Cancel" handler:"Trial" @pauseTrial false timer:true @Wait "i{debateWaitTime}" @Return @StopForChoice Clear:false # Right_Adv_000 @gosub System/System_Subroutine.EndDebate-First @pauseTrial false timer:false @gosub System/System_Subroutine.EndDebate-Last @char Hanna.Smile1 @gosubModifyCamera 0 look:"Hanna" comp:"Center" Hanna: 这个是正确的选项~ ;跳转到正确的路线 @goto .Right_End # Error_Adv_000 @gosub System/System_Subroutine.EndDebate-First @pauseTrial false timer:false @gosub System/System_Subroutine.EndDebate-Last @char Hanna.Angry1 @gosubModifyCamera 0 look:"Hanna" comp:"Center" Hanna: 这个是错误的选项! Hanna: 我要返回到辩论循环让你重新选择了。 @goto .Judge00 # Right_End ;显示日常UI并隐藏裁判UI @HideUI DebateUI @ShowUI ControlPanel @char Ema.Smile1 @gosubModifyCamera 0 look:"Ema" comp:"Center" Ema: 裁判教程到这里就结束啦。 @gosub System/System_Subroutine.EndTrial ;跳转到结束 @goto SherryAppleJuice_ExampleTrialMod/Tools.EndToTitleSherryAppleJuice_ExampleTrialMod/TrialInit.nani
;设置审判庭地点,有Court和CourtFinal两种,后者是决战时使用的版本 @set "stageName=\"Court\"" ;设置出庭人数,正常情况下是13个 @set "courtStandCount = 13" ;设置出场人物位置ID,为-1的话就是未出席 @set "emaIdx = 0" @set "hiroIdx = 3" @set "meruruIdx = -1" @set "hannaIdx = 6" @set "sherryIdx = 9" @set "ananIdx = -1" @set "leiaIdx = -1" @set "cocoIdx = -1" @set "miriaIdx = -1" @set "margoIdx = -1" @set "noahIdx = -1" @set "nanokaIdx = -1" @set "alisaIdx = -1" @set "yukiIdx = -1" @set "wardenIdx = -1" @set "jailerIdx = -1" ;初始化裁判 @gosub System/System_Subroutine.BeginTrial @returnCommon/CommonBadSherryAppleJuice_ExampleTrialMod00.nani
;初始化日常活动状态 @gosub System/System_Subroutine.BeginAdv ;显示背景 @back 5_1 Scale:{g_backgroundDefaultScale} ;将最上面原本黑色的Overlay遮罩层变为透明,同时还指定了动画时间 @back SubId:"Overlay" Transparent tint:"#000000" time:0.99 wait:true ;显示艾玛 @char Ema pos:50,50 ;艾玛说话 Ema: 这是一个Bad End。 ;隐藏全部角色 @hideChars ;结束化日常活动状态 @gosub System/System_Subroutine.EndAdv ;跳转到结束 @goto SherryAppleJuice_ExampleMod/Tools.EndToTitle
