|
本帖最后由 shanghua 于 2022-9-14 03:54 PM 编辑
上一节 我们的开发框架已经搭好,这一节我们先填一层架子。
通过任务分发脚本,会关闭其他目录的触发,只激活练阵的触发,所以练阵脚本的开发思路:
1、换场:场地里有人,我们要换场子。而且在结束之后还要回来
2、开始:开始练的的时候会有正、反五行的提示,我们只记录正或反,别的不记
3、取五行:刚开始的时候都会有位置提示,只记这1个位置,别的不记,根据五行相生相克的规则,来自动走位,并且及时更新当前位置
4、走位:通过记录的“正”、“反”方向,来判断走位
5、练完:结束了,回去交任务,领赏
6、站错:结束了,回去放弃任务,正常情况下是走不到这一步的,因为不可能站错,但是不排除其他不确定因素,所以还是要做一个容错处理
先找一个自己记的住的位置,新建一个zf.lua文件,用vscode打开它,以下所有的脚本代码全都复制到这个文件里,最后把文件里的代码一起复制到mudlet的脚本里去。因为mudlet好像不能直接引用外部脚本文件,所以这么做既能起到备份的作用,又能方便开发,不用在触发和脚本之间切来切去。
以后修改都以这个文件为主,每次改完再复制到mudlet里去。虽然有点麻烦,但这是一个好习惯。
首先我们通过 这一节教程 接到任务后,去执行 startZF() 函数
1、换场
触发:
触发代码:
脚本代码:
function startZF ()
local dirs = {'ne','e','se','nw','w','sw'}
-- 演练场有人,换场
if zf then
-- 返回方向
zf.dirBack = dirs[7 - zf.i]
zf.i = zf.i + 1
if zf.i==7 then zf.i=1 end
-- 进场方向
zf.dir = dirs[zf.i]
else
zf = {
dir = dirs[1],
dirBack = dirs[6],
-- 进场记数
i = 1,
-- 正反走位
zouwei = myzouwei,
wuxing = ''
}
end
send(zf.dir)
send('zhenfa')
end
2、开始
触发:
- 阵法教习从远处跑过说到:今天练『(.*)五行阵』,请大家注意走位
复制代码 触发代码:
脚本代码:
function goZF (myzouwei)
-- 正反走位
zf.zouwei = myzouwei
end
3、取五行:
触发:
这个里的“张三”,要改成自己的中文姓名
触发代码:
脚本代码:
function lianZF(mywuxing)
zf.wuxing = mywuxing
tempTimer(2, [[send('zouwei '..zf.wuxing)]])
end
4、走位:
触发:
- 大家从自己现在的位置按照『(.+)五行阵』的要求往下走一步。
复制代码 触发代码:
脚本代码:
function goOnZF(myzouwei)
zf.zouwei = myzouwei
zf.wuxing = getWuxingZF()
tempTimer(2, [[send('zouwei '..zf.wuxing)]])
expandAlias('chihe')
end;
function getWuxingZF()
local wuxing
if zf.zouwei=='正' then
if zf.wuxing=='金' then
wuxing = '水'
elseif zf.wuxing=='木' then
wuxing = '火'
elseif zf.wuxing=='水' then
wuxing = '木'
elseif zf.wuxing=='火' then
wuxing = '土'
elseif zf.wuxing=='土' then
wuxing = '金'
end
end
if zf.zouwei=='反' then
if zf.wuxing=='金' then
wuxing = '木'
elseif zf.wuxing=='木' then
wuxing = '土'
elseif zf.wuxing=='水' then
wuxing = '火'
elseif zf.wuxing=='火' then
wuxing = '金'
elseif zf.wuxing=='土' then
wuxing = '水'
end
end
return wuxing;
end
上边的代码就是五行相生相克的实现原理,掐指一算就知道下一步要走哪里,不需要去记录当前走的是哪一步。
chihe是一个别名,吃两口烧鸡,喝两口酒,不需要的可以注释掉
5、练完:
触发:
触发代码:
脚本代码:
function overZF(ok)
send(zf.dirBack)
zf = nil
if ok then
expandAlias('cxok')
else
expandAlias('cxover')
end
end
cxok、cxover是两个别名,一个交任务,一个放弃任务
6、站错
触发:
- 你站错了方位,整个五行阵全都乱套了,大家只好都停下来!
- 你站在这里发傻,导致整个阵型全乱套了,气得阵法教习跳起来只骂娘!
复制代码 这是两条独立触发,任何一条匹配到,都会执行代码,不要勾选多行匹配。
触发代码:
交任务:
触发:
- ^你向冲虚道长打听有关『success』的消息。
- ^冲虚道长对道长拱了拱手.+
- ^\s+\D+点经验。
- ^\s+\D+潜能。
复制代码 触发代码:
- print('\n 完成')
- send('dazuo 100')
- enableTrigger('武当-任务恢复')
复制代码 交完任务后,穿插一个简单的打坐。
打坐
触发:
触发代码:
- tempTimer(1, [[
- disableTrigger('武当-任务恢复')
- expandAlias('cxjob')
- ]])
复制代码 起来之后,继续接任务。练阵脚本完成。
最后记得,把zf.lua里的代码复制到mudlet练阵脚本里去。
附上触发与脚本目录结构:
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|