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

文字MUD游戏论坛-天下泥潭群英会-水泊梁山 (http://www.aolai.org/forums/)
-   『 机器人制作及下载 』 (http://www.aolai.org/forums/f5/)
-   -   怎么判断自己在mud里是否发呆? (http://www.aolai.org/forums/t5105/)

icper 2003-09-24 21:37

怎么判断自己在mud里是否发呆?
 
不用另一个id finger
怎么判断自己在mud里是否发呆?

fengyue_xyj 2003-09-25 05:27

做个TICK啊。

Lovelove 2003-09-25 06:11

A。。。。慢著。

他問的是怎麼判斷是否發呆,又不是在問怎樣才不發呆

答案呢,很簡單,不過要講究耐心和修養,這玩意兒不是一般的人能做得到D

首先呢,稍安勿燥,等二十分鐘,如果看見被系統強迫D要quit 呢。。。那就是成功D判斷出你千真萬確D在發呆咯~~*:P *:P *:P

fengyue_xyj 2003-09-25 06:30

....
shoo lovelove
boo lovelove
做个tick就是可以判断是否发呆啊,做个#add idle 1的tick,#if (@idle>5) {say 靠!我发呆了!}
嘿嘿嘿。。。*wink

Lovelove 2003-09-25 06:43

這個不~行~

行不通啊行不通

那樣太亡羊補牢了。。。say 了9不再是發呆了,再以啊。。你會永遠判斷不出你在發呆了。。。真是呆年早逝呀~*sigh

icper 2003-09-25 22:33

zmud 应该提供这样一个函数或命令: 判断该客户端窗口多长时间没有向服务器端发送指令
这样就能判断自己发呆多长时间了
挂机就不需要另外一个id finger自己了

suaer 2003-09-26 10:51

支持fengyue

fengyue_xyj 2003-09-26 14:19

难道你的robot会把TICK停掉?
*flop *flop *flop

argus 2003-09-26 16:57

试试看
 
跑机器人,肯定老在重复做一些事情,ask li jing 啦,ask quests....
每次做的时候
idle=0;
然后在tick里加上
hp;#add idle 1;#if @idle>10 {say 靠!我怎么一直在发呆?!}
当然tick的时间要足够长.
应该可以防止了

icper 2003-09-26 19:03

我的tick里是#say 杀怪去
然后有一个变量isfree是判断当前状态的
如果正在找怪或杀怪,则isfree为0
没找到怪或杀死了怪则回到kz,同时isfree=1
每次#say 杀怪去 时会判断isfree
如果isfree=0,什么也不干
isfree=1,则去向li jing要怪,同时置isfree=0
就这样,但有时因一些不可抗因素
比如机器只响应了部分指令(这种情况我碰到过几次)
又或是机器不是很完善,导致重复响应
还有网速突然变慢也可能导致机器停下来
以前我一直是用一个id finger
当发现我发呆超过一定时间后就tell 我
我这边收到后判断isfree,
如果isfree=1,说明我在kz,不理会
如果isfree=0,说明真的发呆了,做相应的操作
用一个变量垒加的方法我也想过
但是阈值不好确定

argus 2003-09-26 22:26

正常情况下,我们每隔6分钟问一次任务,tick的设定一般也是6分钟。如果一个灭妖任务无法完成的话,等待的时间是多少?(这个我不清楚,因为我刚玩没多久,没注意过).假设为30分钟吧,30/6=5,如果idle累计到5的话,就认为自己是在发呆吧。

dhxy 2004-12-06 16:24

直接在TICK里面写句让ID不发呆的话吧,支持风月!何必搞的这么复杂呢??

mudy 2004-12-08 06:14

我每次回kz把时间记录下来,每10分钟check一下上次回客站的时间,和当前时间相差20分钟就飞回去。

argus 2004-12-08 19:15

让id不发呆很容易,但关键是我们要干活啊,不干活,老呆在mud里有什么意思?
楼主问的发呆,并不是真的发呆了,而是机器不干活了,比如灭妖机器不灭妖了,quests机器不做任务了等等。
这就是我们所讲的防止发“呆”。
一个再漂亮的机器,不能防止发呆,终究也是一堆废铁,用处不大。因为机器难免会出以外,导致不能正常工作。

至于如何防止,那就见仁见智了。

icper 2004-12-08 22:54

这么老的都被你们翻出来啦!

独孤无情 2004-12-16 17:49

应该比较简单的!

luoyiluoyi888 2005-01-23 00:00

回复: 怎么判断自己在mud里是否发呆?
 
引用:

作者: icper
我的tick里是#say 杀怪去
然后有一个变量isfree是判断当前状态的
如果正在找怪或杀怪,则isfree为0
没找到怪或杀死了怪则回到kz,同时isfree=1
每次#say 杀怪去 时会判断isfree
如果isfree=0,什么也不干
isfree=1,则去向li jing要怪,同时置isfree=0
就这样,但有时因一些不可抗因素
比如机器只响应了部分指令(这种情况我碰到过几次)
又或是机器不是很完善,导致重复响应
还有网速突然变慢也可能导致机器停下来
以前我一直是用一个id finger
当发现我发呆超过一定时间后就tell 我
我这边收到后判断isfree,
如果isfree=1,说明我在kz,不理会
如果isfree=0,说明真的发呆了,做相应的操作
用一个变量垒加的方法我也想过
但是阈值不好确定

大哥懂的真多.我崇拜你

100mangmang 2005-03-01 14:11

回复: 怎么判断自己在mud里是否发呆?
 
厉害呢。。。。。。。。。。。。。。。。

17181473 2005-05-07 23:24

回复: 怎么判断自己在mud里是否发呆?
 
引用:

作者: argus
让id不发呆很容易,但关键是我们要干活啊,不干活,老呆在mud里有什么意思?
楼主问的发呆,并不是真的发呆了,而是机器不干活了,比如灭妖机器不灭妖了,quests机器不做任务了等等。
这就是我们所讲的防止发“呆”。
一个再漂亮的机器,不能防止发呆,终究也是一堆废铁,用处不大。因为机器难免会出以外,导致不能正常工作。

至于如何防止,那就见仁见智了。

完全同意你的看法
不过,好像你什么办法也没有说呀
其实这个问题,我也非常想知道
我的办法是最笨的,就是从来不做循环机器人,每隔一段时间用时间触发给出初始命令
然后判断,最后action。然后就等待下一个时间命令
这样就避免了机器人不过做的情况
遗憾的是这样的机器人不可能完成太过复杂的任务
只是简单的作某一件事情。

17181473 2005-05-07 23:26

回复: 怎么判断自己在mud里是否发呆?
 
引用:

作者: mudy
我每次回kz把时间记录下来,每10分钟check一下上次回客站的时间,和当前时间相差20分钟就飞回去。

另外,mudy的看法,我看可以考虑。
我感觉他的思路和我的接近,并且更加智能化
不过,从另一个角度来说,如果他的判断函数出了问题,就……

这就让我感觉到好像是在用“发呆”避免“发呆”
呵呵

carl 2005-05-08 14:05

回复: 怎么判断自己在mud里是否发呆?
 
zmud中trigger有一种模式可以只抓取命令,并且可以在命令发送到mud之前截获、更改
可以利用这个计算最后命令发送的时间
#ONINPUT {(*)} {lastcmdstime=%ctime}


#ALARM *1 {#MATH idletime %ctime-@lastcmdstime}

每秒钟自动计算发呆的秒数

@idletime既发呆的秒数
判断自己在mud里是否发呆?只需要检查@idletime即可
把刚才第二个触发改为
#ALARM *1 {#MATH idletime %ctime-@lastcmdstime;#if (@idletime>55) {look}}
则人物在mud里永远不会发呆(除非lag>5s),不会学习发呆大法。
至于杀李的时候,如果@idletime>30基本上就可以认为机器出毛病了,可以quit或fly

carl 2005-05-08 14:25

回复: 怎么判断自己在mud里是否发呆?
 
说明一下
我用zMUD616(选人,武管,灭妖,解迷,读书,打坐,练功,学习,练武,杀灵珠机器全是自己编的,现在自动取经机器已经编了1/3了,dntg编了地符那关,向着全自动西游努力,争取登陆新人后自动发展,完成所有任务!最后用pk机器自动P人 ^_^)

至于zMUD462能不能抓命令,有没有#ONINPUT我就不知道了,
如果没有的话也很好办
就用
#trigger {^%a*} {lastcmdstime=%ctime}
#trigger {^[> ]%a*} {lastcmdstime=%ctime}
代替就行
因为命令是英文字母开头的(%a)而mud返回信息少有英文字母打头的
第二个trigger是为了防止破烂xyj经常自动在行首添“ > "和空格

楼上几位说的办法都太复杂了,需要改动别的机器,我便机器的原则就是独立性要强,适用性要广。
自动性要完善,所以就牺牲了速度 :em14:

chy5 2005-05-08 23:04

回复: 怎么判断自己在mud里是否发呆?
 
不懂,看来MUD不好弄啊

pkcat 2005-07-22 14:05

回复: 怎么判断自己在mud里是否发呆?
 
高手!大内高手高高手

icper 2005-08-08 00:01

回复: 怎么判断自己在mud里是否发呆?
 
谢谢
有近一年没有玩mud了
等什么时候重新玩的时候再试试

引用:

作者: carl
zmud中trigger有一种模式可以只抓取命令,并且可以在命令发送到mud之前截获、更改
可以利用这个计算最后命令发送的时间
#ONINPUT {(*)} {lastcmdstime=%ctime}


#ALARM *1 {#MATH idletime %ctime-@lastcmdstime}

每秒钟自动计算发呆的秒数

@idletime既发呆的秒数
判断自己在mud里是否发呆?只需要检查@idletime即可
把刚才第二个触发改为
#ALARM *1 {#MATH idletime %ctime-@lastcmdstime;#if (@idletime>55) {look}}
则人物在mud里永远不会发呆(除非lag>5s),不会学习发呆大法。
至于杀李的时候,如果@idletime>30基本上就可以认为机器出毛病了,可以quit或fly


Yau Keng 2005-09-05 00:12

回复: 怎么判断自己在mud里是否发呆?
 
????不大明白!!!!

flowermm 2005-11-04 12:49

回复: 怎么判断自己在mud里是否发呆?
 
19分钟一次idle就好了!

f_lilin 2005-12-11 22:55

回复: 怎么判断自己在mud里是否发呆?
 
我是用tick,每隔90s,robot全部初始化,重新开始ask li,一般杀妖没问题


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

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

站长 fengyue


Content Relevant URLs by vBSEO 3.6.1