本篇收录 3 节2,020 字与表格内容
查看本篇的全部关联 使用前,先确认这些设置
- 先通读引擎与路线数据,不能只替换单个NPC期待完成整条任务。
来源脚本供研究参考,未在当前游戏环境运行验证。
01用途与执行流程
用“跑、问、刷”三类数据驱动部分神迹法帽对话,保存回退问话的实验引擎。
- a按次序列Frankenstein、Guan、Tompson、Fawkes、Block、Sister、Blue Store、Goldin等NPC路线。
- “跑”移动,“问”对话,“刷”回到前一条问话;“继续”的响应递增索引。
- 保留重复交纸等动作,它们属于任务重复执行步骤。
02这份代码的适用限制
03完整代码
157 行原文
#做任務代碼
#
#a變數中,跑下面接跑座標,再接無限座標.
#問,接輸入內容
#刷與問中間是內容,如果tell 自己 繼續 就退出刷
#示例一段神蹟法帽任務
.
%public_bc
(ctnu=ctnu+1)::%*告訴你 : 繼續
%var a
跑
54,67
問
ask franstein about restart
ask franstein about paper
ask franstein about academy
ask franstein about paper
ask 3145769 kuan about franstein
ask 3145769 kuan about paper
ask 3342373 tompson about franstein
ask 3342373 tompson about paper
刷
跑
55,34
問
ask fogs about franstein
ask fogs about paper
跑
44,33
問
ask block about franstein
ask block about paper
跑
50,48
問
ask sister about franstein
ask sister about paper
跑
22,99
問
ask bluestore about franstein
ask bluestore about paper
ask 3080227 goldin about paper
ask 3080227 goldin about academy
ask 3276828 kolaz about paper
ask 3276828 kolaz about academy
跑
73,61
問
ask hatis about academy
ask hatis about paper
跑
63,65
問
ask zeraah about academy
ask zeraah about paper
跑
62 76
問
ask webstein about academy
ask webstein about paper
跑
43,119
問
ask famile about academy
ask famile about paper
跑
35,125
問
ask tracer about academy
ask tracer about paper
跑
26,128
問
ask darkwiser about academy
ask darkwiser about paper
ask darkwiser about paper
%scene begin
(fanwei=5)
call 模糊走
stop
foreach a
if (ctnu==1)
call 不刷
endif
if (a=="跑")
::%ia
0.34::tell %n run %va
call 模糊走
::%ia
endif
if (a=="刷")
do(a!="問")
::%da
enddo
::%ia
endif
if (a=="問")
::%ia
endif
0.4::%va
loop
stop
%scene 不刷
(ctnu=0)
do (a!="刷")
::%ia
enddo
0.4::%ia
return next
%scene 模糊走
toreal a duibi
if (%sx*65536+%sy != duibi)
(zqx=%sx)
(zqy=%sy)
(xzx=%sx)
(xzy=%sy)
loop4
0.34::@run %va
(xzx=%sx)
(xzy=%sy)
if(zqx != xzx || zqy != xzy)
break
endif
endloop
endif
(qishix=0-fanwei)
(qishiy=0-fanwei*2)
(jieshux=fanwei)
(jieshuy=fanwei*2)
(jieguox=%sx + qishix)
(jieguoy=%sy+qishiy)
do (true)
(bizhi=jieguox * 65536 + jieguoy)
if (bizhi == duibi)
1::tell %n 到範圍
loop6
if (%sx*65536+%sy == duibi)
1::tell %n 到地點
return next
else
1::run %va
endif
endloop
return next
else
(jieguox=jieguox+1)
if (jieguox > %sx + jieshux)
(jieguox = %sx + qishix)
(jieguoy = jieguoy+1)
if (jieguoy > %sy + jieshuy)
(jieguoy=%sy+qishiy)
endif
endif
endif
enddo
return next↗来源与版本
飞梦/17KOK、渔夫与2001年典藏版出现数值或机制冲突时,以飞梦所记相应服务器的后续有效规则为正文依据;同站更新按明确生效日期处理。旧规则保留年代与服别,未明日期的差异就近说明;原资料对照用于追溯。
