出售黄蓝宝石,聚气丹的代码有问题
-
找包裹里的东西id用$findItem,卖给铁匠铺用找人物id的指令。
if $findItem("<hig>黄宝石</hig>")!=null
$wait 300
sell $findItem("<hig>黄宝石</hig>")to ……
第一句if判断语句的目的是,判断包里有没有黄宝石,有才延迟,没有就跳过。要是不弄延迟,会出故障。
但是这个if语句不行。finditem返回的是字符串,为什么不能用来判断返回是否为空呢。
第一句指令该怎么改
-
@沈沉舟 这个是
wsmud_pluginss
的语法吧?$findItem
好像说是有点问题?脚本公告里说增加 背包监控的物品id替换 使用方法 dialog 监控 执行命令 drop {id}; 即可丢弃获得的物品
我没试过
-
@Bob-cn 就算是直接丢弃也得判断,
因为丢东西之间需要有延迟,没有延迟就会故障。
假如我的代码里写了所有要丢的500种东西,直接每次延迟300,那就得150s了,太慢了。
这500种东西其实包里只有10种,我想怎么才能判断,如果没有某样东西直接跳过,不延迟,有某种东西才延迟300ms
-
@Bob-cn finditem我用着没问题,能返回id。我想知道if要怎么用
-
如果要用 if 不能使用
$findItem
这种,要使用流程的 id 占位符:[if] {<hic>黄宝石</hic>}? != null @wait 300 sell {<hic>黄宝石</hic>} to ...
复制上方代码
-
dc {r(arg0)} stopstate;select {r(arg0)};pack {r(arg0)} @dialog ($cmd) = null [if] {d芦荟}? != null ($cmd) = (cmd);dc {r(arg0)} give (:id) {d芦荟#} {d芦荟} [if] {d山楂叶}? != null ($cmd) = (cmd);dc {r(arg0)} give (:id) {d山楂叶#} {d山楂叶}
复制上方代码我看了你分享的一键搜刮代码。
这里的if我也没看明白,因为没有end,那么第一个if是在哪结束呢
-
类似于 Python
缩进部分是 [if] 内的语句
[if] 3 > 2 @print a [if] 4 > 5 @print b [else] @print c @print d
复制上方代码打印 a c d
-
@Bob-cn
流程里调试了
[if] {<hic>黄宝石</hic>}? ==null
@wait 3000
go west
[else]
@wait 5000
go east首先我试了print {<hic>黄宝石</hic>}?
返回值为4isbix46 总之不是null
然后我再运行上面那一段,返回值为
等待3秒
等待5秒
go east
运行结束。
这是啥情况,为啥会等待了3秒
-
@Bob-cn 流程里也通过对齐来判断if是否结束吗
-
@沈沉舟 就是流程呀
[if] {<hic>黄宝石</hic>}? ==null @wait 3000 @print {<hic>黄宝石</hic>}? go west [else] @wait 5000 go east
复制上方代码你把这段拷贝进去看看
你上面的没有缩进,会按照顺序一条一条执行
-
@Bob-cn 每次缩进都是4位吗,还是随意多少位只要缩进就行
-
@沈沉舟 都可以,一般 2 或 4
-
@Bob-cn 成功了,$finditem不能用的话,那获取人物id的那条指令应该的不能用,sell {<hic>黄宝石<hic>}? to 后边应该怎么写。如果卖到铁匠铺
-
-
@Bob-cn 试了可以。原来r就是人,d就是东西
-
-
@Bob-cn 我看了一下,内容很详细了
-
@沈沉舟
写出来好流程要给大家分享哈
-
@Bob-cn
开发指南里提到了两种循环
($number)=0 [while] (number) < 10 go north [if] (:room)==扬州城-广场 [break] ($number) = (number) + 1
和@until加判断条件
想要20ms判断一次是否在战斗状态,@until不能实现。
如果要用while 就是($number)=0 [while] (number) < 10000000 @wait 20 [if] (:combating)==false [break] ($number) = (number) + 1
复制上方代码能更简便一点吗
-
@Bob-cn :combating好慢,脱战1秒多才判断成功