shuigui 发表于 2012-3-30 22:23:46

少林新手任务机器人制作思路

少林新手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,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:超度任务可能遇到各种突发事件需要处理,工作量还是蛮大的,建议遇到超度直接放弃。




大概就是这些了,语言组织能力不强,说不出来更多了,希望没有违规内容,更希望能对大家有所帮助。

如果大家有更好的思路,也希望能指点指点我。yct700" />


最后感谢胡子大哥的"一个脚本走天下",以及一直以来的指点和帮助;
感谢纸箱没纸总是在关键时刻给我当灯塔指明方向;
以及qdz,丸子等师兄弟们跟我交流,给我指错;
谢谢大家!

北大侠客行MUD,中国最好的MUD

npckill 发表于 2012-3-31 09:09:51

果断精华。

xuesheng 发表于 2012-3-31 14:14:55

那个高手做个造福少林新手啊!

qdz 发表于 2012-3-31 15:27:42

顶水果的肺

ruoyu 发表于 2012-3-31 16:51:14

好水果~

alucar 发表于 2012-3-31 17:27:55

zmud党飘过,看8懂yct39.

feixiong 发表于 2012-3-31 19:08:30

回复 1# shuigui


   功德无量

caihong 发表于 2012-7-11 22:54:39

占楼,支持楼主多交流少林的任务

hibook 发表于 2012-7-18 09:20:24

谢谢,我去看看可否写出来

hibook 发表于 2012-7-18 09:20:30

谢谢,我去看看可否写出来
页: [1] 2
查看完整版本: 少林新手任务机器人制作思路