找回密码
 注册
搜索
查看: 576|回复: 6

请大神们看下这段代码,是不是有点问题

[复制链接]
门派:天龙寺
发表于 2019-2-14 23:50:29 | 显示全部楼层 |阅读模式
function jqg_checktiaotan()
        if Bag["ENCB"].value and Bag["ENCB"].value > 100 then
                exe('#5(drop stone)')
                checkBags()
                return check_busy(jqg_checktiaotan,1)
        elseif Bag["ENCB"].value > 80 then
                exe('tiao tan')
                return jgq_qiandown()
        else
                exe('#3(jian shi)')
                checkBags()
                return check_busy(jqg_checktiaotan,1)
        end
end
门派:天龙寺
 楼主| 发表于 2019-2-14 23:52:43 | 显示全部楼层
华山号跑去绝情谷底,时不时会发呆。

为什么红色那段,Bag["ENCB"].value这个变量要写两次呢?
门派:明教
发表于 2019-2-15 00:13:05 | 显示全部楼层
xlang@tj 发表于 2019-2-14 23:52
华山号跑去绝情谷底,时不时会发呆。

为什么红色那段,Bag["ENCB"].value这个变量要写两次呢?

if Bag["ENCB"].value 的意思,Bag["ENCB"].value 为真,也就是不是空值,不是nil

如果直接写 if  Bag["ENCB"].value>80,不够保险,因为假如 Bag["ENCB"].value==nil,空值是无法和数值进行比较的,会有报错的!
门派:明教
发表于 2019-2-15 00:17:49 | 显示全部楼层
xlang@tj 发表于 2019-2-14 23:52
华山号跑去绝情谷底,时不时会发呆。

为什么红色那段,Bag["ENCB"].value这个变量要写两次呢?

至于你说的发呆问题,是因为checkBags()运算太多,当比较 Bag["ENCB"].value>80时,ENCB没有取到值,

解决办法要么另外写一个只检查负重的简单函数,取代checkBags(),要么在checkBags之后,用checkwait等待2秒钟在比较 Bag["ENCB"].value。
门派:天龙寺
 楼主| 发表于 2019-2-15 01:05:49 | 显示全部楼层
kkfromch@tj 发表于 2019-2-15 00:17
至于你说的发呆问题,是因为checkBags()运算太多,当比较 Bag["ENCB"].value>80时,ENCB没有取到值,

...

多谢小风神了,具体该如何写呢?
门派:天龙寺
 楼主| 发表于 2019-2-15 01:06:54 | 显示全部楼层
kkfromch@tj 发表于 2019-2-15 00:17
至于你说的发呆问题,是因为checkBags()运算太多,当比较 Bag["ENCB"].value>80时,ENCB没有取到值,

...

还有就是看log,好像都是负重超过100%时会出问题。
门派:明教
发表于 2019-2-15 01:59:45 | 显示全部楼层
xlang@tj 发表于 2019-2-15 01:05
多谢小风神了,具体该如何写呢?

http://www.sjever.net/bbs/forum.php?mod=viewthread&tid=220780

我的集合贴里有啊!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-21 20:58 , Processed in 0.033529 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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