|
少林新手6个任务,最近研究了一下在胡小子一个脚本框架下的mush机器人制作,做了个少林新手机器人,其中一些心得和大家分享一下!
论坛不允许传播新手机器人,所以只是谈谈思路。
一个脚本走天下框架参考http://www.pkuxkx.com/forum/thread-22571-1-1.html
直奔主题:
一、挑水
挑水应该是最简单的了,很简单的触发就可以搞定,步骤就是:
接到挑水任务----触发->
1.到厨房,拿木桶,走到水井,fill mu tong----触发-->
2.慢速行走,回到厨房,fill shui gang----触发-->
a.如果提示水缸满了----触发-->回到任务发布人那,交任务,接任务;
b.如果提示水缸没满----触发-->继续1
二、敲鼓
敲鼓比挑水稍微高了一个难度,因为涉及到了颜色触发,但是如果会了颜色触发了,这个和挑水可以算是一个难度里的吧,步骤:
接到敲鼓任务----触发-->
行走到鼓楼7层,xuqi start----触发了设置好的颜色触发语句-->
hit drum ----敲够次数,出现"你已经完成道果禅师交待的任务了,可以回去领赏了"这样的字样----触发-->
xuqi end ----出现"你现在没有处于蓄气状态,蓄气结束"这样的字样----触发-->
延时5秒,回去交任务,接任务。这里一定要延时,否则可能跳楼自杀身亡……
附上颜色触发的代码:
jiguqiaozhong = function(n,l,w,s)
local line_num = GetLinesInBufferCount()
local styles_num = GetLineInfo(line_num,1)
textC = GetStyleInfo (line_num, 1).textcolour --文本色(前景色)
backC = GetStyleInfo (line_num, 1).backcolour --背景色
blinkC = GetStyleInfo (line_num, 1).blink --是否闪烁(斜体)
if
textC == 255 and backC == 12632256 and blinkC == true
then
Execute("hit drum")
Execute("knock bell")
end
end
三、敲钟
同击鼓,只需要修改路径和指令(knock bell)
四、劈柴
这个又稍微高了个难度,因为涉及到了table(当然不嫌麻烦你可以用if判断)
其实说白了,难点在于:中文的尺寸,柴的类型,需要的数量如何转换为英文的或者数字的。
尺寸六种足够了:ChiCunlist = {
{name="一",id="yicun"},
{name="二",id="liangcun"},
{name="三",id="sancun"},
{name="四",id="sicun"},
{name="五",id="wucun"},
{name="六",id="liucun"},
}
类型就三种:LeiXinglist = {
{name="柏",id="bochai"},
{name="松",id="songchai"},
{name="杨",id="yangchai"},
}
数量最多见到要12个的:CnToNum = {
["一"]=1,["二"]=2,["三"]=3,["四"]=4,
["五"]=5,["六"]=6,["七"]=7,["八"]=8,
["九"]=9,["十"]=10,["十一"]=11,["十二"]=12
}
然后配上查找table的命令,完全可以实现了
for _,k in pairs(LeiXinglist) do
if string.find(w[2],k.name) then
pichaileixing2 = k.id
SetVariable("pichaileixing2",k.id)
end
end
至于take chai,put ***,可以用指令id2来抓取"大段的树杈"之类的中文字符所对应的英文id
具体的过程就不写啦,自己做两边就明白了。
五、诵经
这个给大家提供个思路:
首先把chanshi到少林寺内所有房间的路径录一遍,因为念经的地点我还没发现有什么特定范围;
然后就是流程了:
接到命令,抓取变量(诵经的地点,经书名字,经书章节,经书页数)----触发-->
计算经书真正的页数(需要经书章节页码的对照表),去藏经阁借书,回到禅师这里-->
走到诵经地点,page (realpage)真正页数,抓取经书内容,chanting realpage 经书内容-->
结束--还书--交任务
具体注意:
1、抓取变量:
金刚经是与众不同的,需要单独处理,其他经书中的章节页数有在()里的,有在()里的,要注意区别:
^道果禅师说道:「今天的早课安排在(.*),请"..player.name.."诵唱(.*)的(.*)((.*))
^道果禅师说道:「今天的早课安排在(.*),请"..player.name.."诵唱(.*)的(.*)\\((.*)\\)
^道果禅师说道:「今天的早课安排在(.*),请"..player.name.."诵唱金刚经的(.*)
2、经书对应的章节可以放在一个表里(整理表也是个麻烦事)
3、抓取经书内容时候有个问题到现在没解决,就是碰到经文里有“法轮”字样的会被河蟹成"氵去 车仑"中间还带空格,纠结……
六、超度:
这个满天下跑的任务,如果处理不了自动行走问题还是遇到就放弃好了,当然如果在中原地区,不需要过河什么的,做个路径还是可以的。
思路:
接到任务,抓取地点变量-----行走到目的地----ask gao seng about 法事----抓取经书---抓取章节---计算realpage----返回----借书----再回到目的地----超度页数----如果提示"你翻的和别人念的不是一页经书,没法跟别人一起做法事。",realpage+1,继续超度page,如果提示".*只有在念诵一段开始的时候才能和别人一起做法事!",那就等翻下页的时候再超度----然后超度结束----返回
PS:超度任务可能遇到各种突发事件需要处理,工作量还是蛮大的,建议遇到超度直接放弃。
大概就是这些了,语言组织能力不强,说不出来更多了,希望没有违规内容,更希望能对大家有所帮助。
如果大家有更好的思路,也希望能指点指点我。0" />
最后感谢胡子大哥的"一个脚本走天下",以及一直以来的指点和帮助;
感谢纸箱没纸总是在关键时刻给我当灯塔指明方向;
以及qdz,丸子等师兄弟们跟我交流,给我指错;
谢谢大家!
北大侠客行MUD,中国最好的MUD |
|