|
本帖最后由 squall 于 2022-3-17 09:53 AM 编辑
/施放 分解
/script for j=1,16 do PickupContainerItem(0,j); end
这条宏是在问了好久 有人告诉我的.后来我自己改成了/script for j=1,16 do for i=1,4 do PickupContainerItem(i,j); end end
但现在的问题是这两条宏在执行的时候都会遇到不能分解的物品就会卡住,然后我就又上网找,最终找到两个应该可以作为参考的案例(但不知道案例用的宏是不是支持1.12,但逻辑应该没问题)两个案例如下:
/cast 分解
/use 0 1
/脚本 P=PickupContainerItem for i=1,110 do q=GetContainerItemLink(i/23,i%23)if q then b={GetItemInfo(q)}if b[3]==2 and(b[6]=="护甲"or b[6]=="武器")then P(i/23,i%23)P(0,1)break end end end
这个案例里面就加入了物品类别的判断~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
目标:把前4个包的灵魂碎片全放到最后一个包内
/script
bag=0 cw=1 sc=1 --定义好变量,bag是包的编号,cw表示查找包的槽位,sc指向最后一个包内的槽位
for bag=0,3,1 do --从0号包开始,到3号包结束,最后一个包不搜索。
for cw=1,16,1 do --这里假设所有的包都是16个槽位的,如果没那么多槽位的包也可以用。
if GetContainerItemLink(bag,cw)~=nil --判断这个槽位是否是空的,是空就直接跳到下一个槽位
then
if string.find(GetContainerItemInfo(bag,cw),"Gem") --判断这个槽位里是否是灵魂碎片
then
while string.find(GetContainerItemInfo(4,sc),"Gem") do sc=sc+1 end
--判断最后一个包里原来是否已经有灵魂碎片,有的话就指向包的下一个槽位
PickupContainerItem(bag,cw)
PickupContainerItem(4,sc)
PickupContainerItem(bag,cw) --这3句控制灵魂碎片和最后一个包内物品的交换
sc=sc+1 --每放置好一个碎片后把最后一个包的槽位指针指向下一个槽位
end --(then end)
end --(then end)
end --(for end)
end --(for end 循环结束)
这个案例里面我看有个检索的循环,判断,然后跳到下一个槽位~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
自己瞎拼了一个但是一点用没有就不写出来了
所以请教1.12(插件/宏)达人,能不能帮忙搞一个分解宏,实现能够一键分解,在遇到不能分解的物品时,跳过~继续下一个槽位~
|
|