文字MUD游戏论坛-天下泥潭群英会-水泊梁山

文字MUD游戏论坛-天下泥潭群英会-水泊梁山 (http://www.aolai.org/forums/)
-   『 机器人制作及下载 』 (http://www.aolai.org/forums/f5/)
-   -   找怪机器(非path类型)讨论 (http://www.aolai.org/forums/t12213/)

ozzy 2006-12-04 15:23

找怪机器(非path类型)讨论
 
思路:
接到任务 怪物名称name 英文名字id 地点where
判断难度等级 difficulty
定义地点 怪物所在地区map
搜索地区 路径path of map
如果地图过大分段搜索 路径分段pathpart1 pathpart2 pathpart3
如果找到了怪物 match id
停止搜索 stop search
走过了 back search
如果回头发现怪已经不在原地,继续back search
没找到 任务失败job fail

接受任务部分:
#TRIGGER {^李靖对你说道:近有(*)~((*)~)在(*)为非作歹,请速去降服!}
{#cw 303;#ts @ts;score=li;#math askli (@askli+1);monster=%1;id=%lower(%2);where=%3;kquest;findmap} {ask} 519
判断难度等级部分:
#TRIGGER {^李 靖:第(%x)个妖「@monster」没有完成。} {difficulty=%1;difficulty} {ask} 519
#ALIAS difficulty {#if (%ismember(@difficulty,"一")=1) {difficulty=1};#if (%ismember(@difficulty,"二")=1) {difficulty=2};#if (%ismember(@difficulty,"三")=1) {difficulty=3};#if (%ismember(@difficulty,"四")=1) {difficulty=4};#if (%ismember(@difficulty,"五")=1) {difficulty=5};#if (%ismember(@difficulty,"六")=1) {difficulty=6};#if (%ismember(@difficulty,"七")=1) {difficulty=7};#if (%ismember(@difficulty,"八")=1) {difficulty=8};#if (%ismember(@difficulty,"九")=1) {difficulty=9};#if (%ismember(@difficulty,"十")=1) {difficulty=10}}
定义地图
#alias {#var temp @where
path=nofind
xxx=nomap
#if %ismember( @temp, "长安城西") {
path=@mchanganwest
xxx=mchanganwest
}
#if %ismember( @temp, "长安城") {
path=@mchangan
xxx=mchangan
}
#if %ismember( @temp, "宝象国") {
path=@mbaoxiang
xxx=mbaoxiang
}
#if %ismember( @temp, "豹头山") {
path=@mbaotou
xxx=mbaotou
}
#if %ismember( @temp, "豹头二") {
path=@mbaotou2
xxx=mbaotou2
}
#if %ismember( @temp, "比丘国") {
path=@mbiqiu
xxx=mbiqiu
}
#if %ismember( @temp, "碧波潭") {
path=@mbibo
xxx=mbibo
}
#if %ismember( @temp, "车迟国") {
path=@mchechi
xxx=mchechi
}
#if %ismember( @temp, "大雪山") {
path=@mxueshan
xxx=mxueshan
}
#if %ismember( @temp, "毒敌山") {
path=@mdudi
xxx=mdudi
}
#if %ismember( @temp, "方寸山") {
path=@mfangcun
xxx=mfangcun
}
#if %ismember( @temp, "凤仙郡") {
path=@mfengxian
xxx=mfengxian
}
#if %ismember( @temp, "高老庄") {
path=@mgaozhuang
xxx=mgaozhuang
}
#if %ismember( @temp, "红楼一梦") {
path=@mhonglou
xxx=mhonglou
}
#if %ismember( @temp, "火焰山") {
path=@mfiremount
xxx=mfiremount
}
#if %ismember( @temp, "积雷山") {
path=@mjilei
xxx=mjilei
}
#if %ismember( @temp, "祭赛国") {
path=@mjisaiguo
xxx=mjisaiguo
}
#if %ismember( @temp, "金兜山") {
path=@mjindou
xxx=mjindou
}
#if %ismember( @temp, "金平府") {
path=@mjinping
xxx=mjinping
}
#if %ismember( @temp, "荆棘岭") {
path=@mjingjiling
xxx=mjingjiling
}
#if %ismember( @temp, "开封城") {
path=@mkaifeng
xxx=mkaifeng
}
#if %ismember( @temp, "灵山") {
path=@mlingshan
xxx=mlingshan
}
#if %ismember( @temp, "龙宫") {
path=@mlonggong
xxx=mlongdong
}
#if %ismember( @temp, "毛颖山") {
path=@mmaoying
xxx=mmaoying
}
#if %ismember( @temp, "梅山|灌江") {
path=@mmeishan
xxx=mmeishan
}
#if %ismember( @temp, "女儿国") {
path=@mnuerguo
xxx=mnuerguo
}
#if %ismember( @temp, "盘丝岭") {
path=@mpansi
xxx=mpansi
}
#if %ismember( @temp, "蓬莱仙岛") {
path=@mpenglai
xxx=mpenglai
}
#if %ismember( @temp, "平顶山") {
path=@mpingding
xxx=mpingding
}
#if %ismember( @temp, "普陀山") {
path=@mputuo
xxx=mputuo
}
#if %ismember( @temp, "麒麟山") {
#if (@wuxue>1000000) {
path=@mqilin
xxx=mqinlin
} {
path=@mqilin2
xxx=mqilin2
}
}
#if %ismember( @temp, "钦法国") {
path=@mqinfa
xxx=mqinfa
}
#if %ismember( @temp, "青龙山") {
path=@mqinglong
xxx=mqinglong
}
#if %ismember( @temp, "天竺国") {
path=@mtianzhu
xxx=mtianzhu
}
#if %ismember( @temp, "通天河") {
path=@mtongtian
xxx=mtongtian
}
#if %ismember( @temp, "乌鸡国") {
path=@mwuji
xxx=mwuji
}
#if %ismember( @temp, "无底洞") {
path=@mwudidong
xxx=mwudidong
}
#if %ismember( @temp, "五庄观") {
path=@mwuzhuang
xxx=mwuzhuang
}
#if %ismember( @temp, "小西天") {
path=@mxiaoxitian
xxx=mxiaoxitian
}
#if %ismember( @temp, "阴曹地府") {
path=@mhell
xxx=mhell
}
#if %ismember( @temp, "地府二") {
path=@mhell2
xxx=mhell2
}
#if %ismember( @temp, "隐雾山") {
path=@myinwu
xxx=myinwu
}
#if %ismember( @temp, "玉华县") {
path=@myuhua
xxx=myuhua
}
#if %ismember( @temp, "月宫") {
path=@mmoon
xxx=mmoon
}
#if %ismember( @temp, "朱紫国") {
path=@mzhuzi
xxx=mzhuzi
}
#if %ismember( @temp, "竹节山") {
path=@mzhujie
xxx=mzhujie
}
#if (@path=nofind) {#say Job fail:Monster:@monster Place:@where Reason:nomap} {
#wa 2000
findstart
}}

ozzy 2006-12-04 15:33

回复: 找怪机器(非path类型)讨论
 
#ALIAS findstart {#t- hprecover;#t+ @xxx;partnum=%numwords(@path,|);follow=1;findmonster=finding;pathpart=none;vc=0;findgo}
#ALIAS findgo {#if (@vc<@partnum) {#add vc 1;#var pathpart %word(@path,@vc,|);fgofind}}
#ALIAS fgofind {va=0;#t+ find;do=finding;#var steps %numwords(@pathpart,%char(59));#loop @steps {#add va 1;%word(@pathpart,@va,%char(59))};#say Mouse is best}
#alias backset {#if (@go=e) {back=w} {#if (@go=w) {back=e} {#if (@go=s) {back=n} {#if (@go=n) {back=s} {#if (@go=nw) {back=se} {#if (@go=ne) {back=sw} {#if (@go=se) {back=nw} {#if (@go=sw) {back=ne} {#if (@go=enter) {back=out} {#if (@go=out) {back=enter} {#if (@go=left) {back=right} {#if (@go=right) {back=left} {#if (@go=up) {back=down} {#if (@go=down) {back=up} {#if (@go=eu) {back=wd} {#if (@go=wu) {back=ed} {#if (@go=su) {back=nd} {#if (@go=nu) {back=sd} {#if (@go=wd) {back=eu} {#if (@go=ed) {back=wu} {#if (@go=nd) {back=su} {#if (@go=sd) {back=nu}}}}}}}}}}}}}}}}}}}}}}}
#TRIGGER {^Moust is best} {#cw 146;#t- find;#math wtime {@steps*40};#if (@do=finded) {findset} {#if (@wtime<100) {findset} {#wa @wtime;findset}}} {find} 548
#alias findset {#if (@do=finded) {findback}
#if (@findmonster=finding and @vc>=@partnum) {findend}
#if (@findmonster=finded and @vc>=@path and @do=finding) {findstart}
#if (@do=finding and @vc<@partnum) {findgo}}
#TRIGGER {^%s{@monster_title}%s@monster~(@id~)} {#cw white;guai_title={百年|龙宫怪物|五庄观凶徒|无底洞小妖|普陀恶僧|月宫魔女|将军府叛将|幽冥恶鬼|方寸妖道|雪山老妖};checkmonster}
#ALIAS checkmonster {#cw white;findmonster=finded;vb=0;#if (@do=findback) {do=findedag};#if (@do=finding or @do=finded) {#t+ find-vb;do=finded}}
#TRIGGER {这里(*)出口是} {#add vb 1} {findback} 548
#ALIAS findback {#t- findback;vamax=@va;do=findback;fgomonster}
#alias fgomonster {#t+ find
#if (@vb=0) {follow @monsterid} {
#loop @vb {
#var go %word( @pathpart, @va, %char( 59))
#add va -1
#if (@va<0 and @do=findback) {#say Beyond the part,research again} {
backset
@back
}
}
follow @monsterid
}}

ozzy 2006-12-04 15:43

回复: 找怪机器(非path类型)讨论
 
#TRIGGER {^这里没有%s@monsterid。} {follow=1;#if (@do=findedag) {#add va 1;#if (@va<=@vamax) {#var vd %word(@pathpart,@va,%char(59));@vd;follow @monsterid} {findgo}};#if (@do=findback) {#t- find;vb=1;fgomonster}} {find} 548

怪走动处理

我在zmud721上运行有问题,回头寻找的时候总是少走1步,不知道问题在那里.
还有就是555以上有时候会有乱码导致不能触发.
7xxx以上的版本有一个好处就是触发行前面不会出现命令提示符号.乱码问题可能是不支持汉字.
不用path唯一的好处就是速度快,可以处理一些复杂的路径,比如进出路径不同的情况
path就不行了.
路径用变量来定义 eg:
#FUNC mjingjiling {fly jingjiling;wu;sw;w;nw;wu;|nw;wu;s;su;sw;e;e;sw;w}

combat 2006-12-17 02:53

回复: 找怪机器(非path类型)讨论
 
灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌

bluehell 2007-11-18 14:18

回复: 找怪机器(非path类型)讨论
 
:em03: :em09: :em03: :em03:

wilewoof 2008-05-10 01:54

回复: 找怪机器(非path类型)讨论
 

鼎破
鼎坡天
顶顶顶顶
丁丁丁丁丁


所有时间均为格林尼治时间 +9, 现在的时间是 02:58.

Powered by SPLS
版权所有 2001-2023 水泊梁山
皖ICP备05012024号

站长 fengyue


Content Relevant URLs by vBSEO 3.6.1