554366424 发表于 2022-4-13 15:46:09

wowbee背包蓝绿装自动分解提问

前几天用wr写了一个背包的蓝绿装自动分解,用魔蜂的时候心血来潮也想写一个,昨晚想了一会发现有几个不会的问题,求助一下论坛里的大佬,有没有什么好的思路,研究一下,各位勿喷。下面上代码:

if(slotindex>16)
then slotindex=1 end
print(bagid)
print(slotindex)
local q=GetContainerItemLink(bagid,slotindex)

if(q==nil)
then
    slotindex=slotindex+1
else
    if(q:sub(5,10)=="1eff00" or q:sub(5,10)=="0070dd" )
    then
      ifBeeUnitCastSpellName("player")=="分解"   then return;end
      BeeRun("/cast 分解");
      UseContainerItem(bagid,slotindex)
    end
   
end
ifBeeUnitCastSpellName("player")=="分解"   then return;end
if(q~=nil)
then
    slotindex=slotindex+1
end

说明一下这个代码暂时只有第一个背包循环,残血版。而且没有加入是否是装备的判断,还有问题没解决就暂时没写。
代码里的全局变量是在另一个脚本里面,就没有贴出来了。下面说问题:
问题1:分解的时候有时候会把装备换上去,我觉得是不是运行速度太快,需要再放分解之后加一个延时。
问题2:全局变量怎么赋值一次就不去改变了。因为那个变量(bagid,slotindex)需要累加去循环背包格子
或者各位大佬有没有更好的思路,望各位大佬不吝赐教。

trio511 发表于 2022-4-13 16:25:09

顶一下大佬这个是个好东西希望早日完善

vshrd 发表于 2022-4-13 18:06:08


不太清楚这能不能解决第一个问题.
但是加延时挺蛋疼的.之前我也去搜索过lua延时相关的问题.反馈都是难而且解决方案拷贝进来也都不太能用

第二个问题
BeeSetVariableBeeGetVariable 这两个函数可以看看
而且反正lua执行效率高,我觉得是不是也可以暴力遍历.
分解一次我就返回,第二次完全重头开始遍历.直到最后一个背包格子

feixia5693 发表于 2022-4-13 20:16:15

第一个问题,加个 if BeeUnitCastSpellTime("player")>0 then retuen就解决了
第一个问题解决好了,把多余的句子删了第二个问题自然就好了
另外{:5_236:}
if(q~=nil)
then    你就不能写做if q吗

554366424 发表于 2022-4-14 10:06:21

vshrd 发表于 2022-4-13 06:06 PM
不太清楚这能不能解决第一个问题.
但是加延时挺蛋疼的.之前我也去搜索过lua延时相关的问题.反馈都是难而 ...

经过大佬们的指点我已经写出了一个勉强能用的版本了,待会发出来给大佬们看看

554366424 发表于 2022-4-14 10:08:41

feixia5693 发表于 2022-4-13 08:16 PM
第一个问题,加个 if BeeUnitCastSpellTime("player")>0 then retuen就解决了
第一个问题解决好了,把多余 ...

其实我有写的 只是用的这个BeeUnitCastSpellName没有 BeeUnitCastSpellTime这个函数,我想了一下位置放的有问题,我给放到最开始去了,还有if(q~=nil)这个是其他语言写习惯了,不要在意,哈哈,勉强写了一个能用的待会发出来给大佬们看看
页: [1]
查看完整版本: wowbee背包蓝绿装自动分解提问