找回密码
 注册
搜索
查看: 2001|回复: 26

放一个单任务定点做快速做LL的改发

[复制链接]
门派:不明
发表于 2013-6-13 19:01:26 | 显示全部楼层 |阅读模式
首先,思路如下
现有鱼肠机器人的流程是这样的

1,去雪山接受雪山JOB,
2,完成雪山JOB,回到当铺
3,去大理接受送信JOB,
4,完成送信JOB,回到当铺
5,检查是否有LL,如果有,定点送LL。如果没有,检查POT是否超上限。
6,如果POT超上限,去学习,学习完毕后,回到当铺,开始雪山JOB
7,如果POT没有超上限,直接开始雪山JOB。

这样的结果就是每一个小单元(雪山+送信),如果不考虑特殊情况,就是说在非当铺的地方送信成功的话,那么一个小单元最多只能完成一次LL。而完成这样一个小单元的时间,如果是跑个神龙或者天山,最起码4分钟起,如果在加上在当铺等LL的时间,1小时能做10个LL就已经很不错了。所以做50个LL要5-6小时是很正常的事。

如果我们想多做LL。那么就是在雪山结束回到当铺后,如果有LL,能定点送,送完后去做送信JOB。但是我们的触发器里,关于sx32类别(定点送),不管送信成功还是失败,只有一个结果,那就是{check_time;dw},那么在这种情况下不管你是什么JOB完毕后的LL,送完后,必然去做你的firstjob,即是雪山JOB。因此,我们需要一个状态,告诉机器人,这个是雪山JOB完毕的LL,还是送信JOB完毕的LL。

于是,以鱼肠的机器人为例。
1,增加一个变量

#va dowhat 0

2,在我们接受雪山JOB时候,将这个变量赋值为1。(红色是我新加的)

#TRIGGER {^{> 宝|宝}象在你的耳边悄声说道:听说最近(%x)附近来了个漂亮的小妞,你去给我弄来。} {#t- xsjob-accept;#cw 159;xswhere=%1;#va xs_tick 1;#va dowhat 1;gddanger=0;bbb {xsbei;xsconsider}} {xsjob-accept} 548

3,当我们雪山任务做完的时候,判断是否有LL。如果有,定点做LL,如果没有,做送信job。于是我们可以修改别名xs-finish,这里的secondjob就是送信job

修改前:
#ALIAS xs-finish {gddanger=0;#va xswhere 完成;#va gdparty 完成;#va gdweapon 完成;#al te2 {alias action 8########};bbb {eu;ed;se;e;sw;se;#3 e;#3 s;ta;setdo {e;#2 ne;#6 e;#6 e;ta;setdo {#2 ne;#2 e;#2 ne;#6 e;#2 s;e;n;ta;setdo {secondjob}}}}}

修改后:
#ALIAS xs-finish {gddanger=0;#va xswhere 完成;#va gdparty 完成;#va gdweapon 完成;#al te2 {alias action 8########};bbb {eu;ed;se;e;sw;se;#3 e;#3 s;ta;setdo {e;#2 ne;#6 e;#6 e;ta;setdo {#2 ne;#2 e;#2 ne;#6 e;#2 s;e;n;ta;setdo {#if (@ll_now_have>0)&(@ll_need_wait>0) {ll_wait} {secondjob}}}}}}

4,然后当我们接受送信job的时候,我们将dowhat这个变量赋值为0

#TRIGGER {^{> 褚|褚}万里交给你一封密函。} {#t- sxjob_accept;#t+ sxjob_accept0;#va dowhat 0;look letter} {sxjob_accept} 548

5,最后,也是最关键的,我们把触发器定点送LL,即是类别{sx32}里的结束改一下,让他达到,定点送完LL后,判断上一个JOB是什么,然后能顺利的去做下一个JOB。成功与失败两种可能都要考虑。

修改前:
#TRIGGER {^{> 你|你}乘人不注意,偷偷把失落的信笺扔进了路边的草丛。} {#ts 0;log %e[16m【失落的信笺】:【失败】;#va ll_now_have 0;#va sx_target 请仔细填写目标人物;#va sxid 请仔细填写目标人物;#va sxname 请仔细填写目标人物;#t- sx3;#t- sx1;#t- sx32;#va dosx_start 0;#t- sx32;#t- sx31;#al autostart check_time;dw} {sx32} 548

#TRIGGER {^{> 你|你}将失落的信笺交给} {#ts 0;hp;log %e[16m【失落的信笺】:【成功】;#va ll_now_have 0;follow none;#va sx_target 请仔细填写目标人物;#va sxid 请仔细填写目标人物;#va sxname 请仔细填写目标人物;#t- sx3;#t- sx1;#t- sx32;#va dosx_start 0;#t- sx32;#t- sx31;#al autostart check_time;dw} {sx32} 548

修改后:
#TRIGGER {^{> 你|你}乘人不注意,偷偷把失落的信笺扔进了路边的草丛。} {#ts 0;log %e[16m【失落的信笺】:【失败】;#va ll_now_have 0;#va sx_target 请仔细填写目标人物;#va sxid 请仔细填写目标人物;#va sxname 请仔细填写目标人物;#t- sx3;#t- sx1;#t- sx32;#va dosx_start 0;#t- sx32;#t- sx31;#if @dowhat {dw} {#al autostart check_time;dw}} {sx32} 548

#TRIGGER {^{> 你|你}将失落的信笺交给} {#ts 0;hp;log %e[16m【失落的信笺】:【成功】;#va ll_now_have 0;follow none;#va sx_target 请仔细填写目标人物;#va sxid 请仔细填写目标人物;#va sxname 请仔细填写目标人物;#t- sx3;#t- sx1;#t- sx32;#va dosx_start 0;#t- sx32;#t- sx31;#if @dowhat {dw} {#al autostart check_time;dw}} {sx32} 548

这段修改就是,如果当dowhat变量有值的时候(表示我们现在正在做雪山,或者做完了雪山,但是没有开始做送信,那么送完LL直接DW,机器人会自己去送信,如果不是说明这个是我们送信结束后的LL,那么送完LL,机器人将check_time,开始新的一轮循环。


当然,我这个思路是说,中途的那个雪山完毕的LL不考虑去学习的情况。如果某位同学等级还较低,POT还比较珍贵,需要FULLskills,希望每次LL做完都判断下POT是否去学习。那么该怎么改呢?

1,首先,依然顶一个变量
#va dowhat 0

2,我们希望如果雪山做完有LL,就定点送,那么修改如下

#ALIAS xs-finish {gddanger=0;#va xswhere 完成;#va gdparty 完成;#va gdweapon 完成;#al te2 {alias action 8########};bbb {eu;ed;se;e;sw;se;#3 e;#3 s;ta;setdo {e;#2 ne;#6 e;#6 e;ta;setdo {#2 ne;#2 e;#2 ne;#6 e;#2 s;e;n;ta;setdo {#if (@ll_now_have>0)&(@ll_need_wait>0) {ll_wait} {secondjob}}}}}}

3,同样在接受雪山任务的时候,将变量赋值为1,区分两个不同任务

#TRIGGER {^{> 宝|宝}象在你的耳边悄声说道:听说最近(%x)附近来了个漂亮的小妞,你去给我弄来。} {#t- xsjob-accept;#cw 159;xswhere=%1;#va xs_tick 1;#va dowhat 1;gddanger=0;bbb {xsbei;xsconsider}} {xsjob-accept} 548

4,同样在接受送信任务的时候,将变量值赋值为0,区分两个不同任务

#TRIGGER {^{> 褚|褚}万里交给你一封密函。} {#t- sxjob_accept;#t+ sxjob_accept0;#va dowhat 0;look letter} {sxjob_accept} 548

5,不再修改定点送LL 的类别{sx32},让他不管什么LL做完后,都走一次check_pot的判断。而改为修改check_pot这个alias

#ALIAS check_pot {#if @flagpot {flagpot=0;#if @flaglit {startlit} {#if @flagduanzao {startdz} {#if @flagxuexi {startxuexi} {#if @flagautolingwu {startlingwu} {#if @flagwxz {startwxz} {#if @flagzhizao {startzz} {#if @flagcgdz {startcgdz} {#if @flagszj {startszj} {#if @dowhat {secondjob} {firstjob}}}}}}}}}} {#if @dowhat {secondjob} {firstjob}}}

意思是说,如果判断下来pot不够学习,那么如果dowhat=1去做送信,否则去做雪山。

6,最后,如果pot够自然就去学习了,需要修改学习回来以后的判断。我以TZT的铁掌finishxuexi为例,其他的可以一样修改

修改前:
#ALIAS finishxuexitz {#t- 11;#t- xuexi;unwield blade;unwield @learn_weapon;wield @fight_weapon;master-xy;ta;setdo {firstjob}}

修改后:
#ALIAS finishxuexitz {#t- 11;#t- xuexi;unwield blade;unwield @learn_weapon;wield @fight_weapon;master-xy;ta;setdo {#if @dowhat {secondjob} {firstjob}}}


改动后的效果,大约每小时可以达到15个左右的LL,50个LL如果顺利,可以在3个半小时内完成,具体可以咨询首批测试人员tzt@tx。

之所以今天写的这么细,连怎么改的思路都告诉大家,是想告诉大家,没有机器人是完美的,没有机器人是可以拿来可用的,机器人,永远都是自己根据自己的需要,不停完善,不停改变。所以大家还是没事了看一下机器人怎么修改,毕竟我们还是喜欢这个游戏,不是么。

顶置的机器人,有很多问题,因为自己时间有限,也不可能改的那么详细。一旦发出来,发现问题也一堆。让大家死了那么多次,很不好意思。因为机器人就像鞋子,自己的脚最适合的,别人的虽然好穿,但是总会绊倒或者硌脚。

今天被人说用机器人做LL需要5-6个小时,心里有些小郁闷,说多了。



评分

1

查看全部评分

门派:不明
发表于 2013-6-13 19:08:16 | 显示全部楼层
据说做LL还是hs1+sx1最快。我记得有人就是换机器人做完LL再换回去的。
门派:不明
发表于 2013-6-13 19:39:42 | 显示全部楼层
顶!这样的技术贴多发点,我们也好学习学习!!
addoil sosk
门派:不明
发表于 2013-6-13 19:57:04 | 显示全部楼层
顶                                 
门派:不明
发表于 2013-6-13 20:51:09 | 显示全部楼层
其实这样是影响job效率的            
门派:不明
发表于 2013-6-13 21:01:39 | 显示全部楼层
我现在做LL50 次 大概6个小时,一天都耗在MUD 上不合适,毕竟我们有工作还有生活,快速的做完LL,然后挂机是非常好的一件事情,楼主顶你。
门派:不明
发表于 2013-6-13 21:06:59 | 显示全部楼层
还是sx1+hs1最快,如果单一任务的话,很有可能做完任务没出LL
门派:不明
发表于 2013-6-13 21:07:40 | 显示全部楼层
做LL 需要5-6个小时是我发的,但是没有怪罪楼主的意思哦,别想多了,只是想让你优化一下,感谢你对慕容的贡献包括别的门派。
门派:不明
发表于 2013-6-13 21:20:54 | 显示全部楼层
sosk 如果是MR的 finishxueximr 怎么改?是不是还有个ask ying gu about over?
门派:不明
发表于 2013-6-14 06:27:00 | 显示全部楼层
流程合理,逻辑清晰,判断准确,一个好的robot就这么诞生了。

插句题外话,很多同学说不会改机器人,其实是因为不知道该如何下手,特别是这种比较全面的机器人。
所以了解这个机器人如何运作的流程就很重要,否则你找不到从哪里开始、如何分步运行、怎么任务结束,就会无从下手改。

sosk发的这个机器人就是一个很通用的例子:

1、初始化各种状态和参数
2、获取当前位置,并返回当铺
3、获取任务
4、判断任务地点
5、查找地点并载入路径
6、到达地点完成任务
7、通过全球定位返回当铺
8、判断各个参数,继续接任务

只有知道了流程,你才能按照这个流程找到机器人运行中的各种状态,才可能发现问题,分析问题,解决问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|书剑永恒MUD ( 闽ICP备14012032号|闽公网安备 35050202000162号 )

GMT+8, 2025-6-27 03:19 , Processed in 0.065303 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表