魔蜂:如何做到摧毁需要输入"DELETE"的物品。
魔蜂:如何做到摧毁需要输入"DELETE"的物品。代码应该怎么写。魔蜂没这个功能魔蜂没这个功能魔蜂没这个功能 本帖最后由 a000000 于 2024-6-1 08:47 PM 编辑
可以通过暴雪的API实现DeleteCursorItem() 楼上正解,没必要用魔蜂。非要用魔蜂删那么可能会承担误删其他物品的风险,手动删的话用宏就行了。
将这个代码/script DeleteCursorItem()做成宏,点一下物品再点宏。 本帖最后由 7858321 于 2024-6-2 02:27 PM 编辑
在魔兽世界(World of Warcraft)的 Lua API 中,DeleteCursorItem() 是一个函数,用于删除当前选中的物品(光标上的物品)。这个函数在游戏中非常有用,尤其是在处理物品的拖放操作时。
使用 DeleteCursorItem()当你想要删除当前光标上的物品时,可以直接调用这个函数。请注意,这个操作是不可逆的,因此要谨慎使用,以免误删重要物品。
以下是一个简单的示例,展示如何在某些条件下使用 DeleteCursorItem():
-- 检查光标上是否有物品
if GetCursorInfo() then
-- 删除光标上的物品
DeleteCursorItem()
else
print("光标上没有物品.")
end
示例代码说明
[*]检查光标上的物品:
[*]GetCursorInfo():这个函数返回当前光标上的信息(如物品、法术等)。如果光标上有物品,它会返回相关信息;如果没有,则返回 nil。
[*]删除光标上的物品:
[*]DeleteCursorItem():删除当前光标上的物品。
在实际应用中的注意事项
[*]慎重使用:因为 DeleteCursorItem() 会永久删除物品,没有任何提示,使用前一定要确认光标上的物品是可以被删除的。
[*]防止误操作:通常,删除物品的操作会结合一些确认机制,如弹出确认框,以避免误删除。
示例:结合确认框以下是一个更安全的示例,结合了一个简单的确认机制:
-- 定义一个函数,用于删除光标上的物品
local function safeDeleteCursorItem()
-- 检查光标上是否有物品
if GetCursorInfo() then
-- 弹出确认框
StaticPopupDialogs["CONFIRM_DELETE_CURSOR_ITEM"] = {
text = "你确定要删除这个物品吗?",
button1 = "是",
button2 = "否",
OnAccept = function()
-- 用户确认,删除光标上的物品
DeleteCursorItem()
end,
timeout = 0,
whileDead = true,
hideOnEscape = true,
preferredIndex = 3,
}
StaticPopup_Show("CONFIRM_DELETE_CURSOR_ITEM")
else
print("光标上没有物品.")
end
end
-- 调用函数
safeDeleteCursorItem()
说明
[*]StaticPopupDialogs:创建一个弹出确认框,提示用户确认删除操作。
[*]StaticPopup_Show:显示确认框。
[*]OnAccept:用户确认后调用 DeleteCursorItem() 删除物品。
这种方式可以有效避免误操作,确保在删除物品前获得用户确认
7858321 发表于 2024-6-2 02:23 PM
在魔兽世界(World of Warcraft)的 Lua API 中,DeleteCursorItem() 是一个函数,用于删除当前选中的物品 ...
--只删除白色/绿色
-- 逆序遍历背包
for bag = 4, 0, -1 do
-- 逆序遍历每个背包槽位
for slot = 40, 1, -1 do
-- 获取槽位上物品的名称
local name = GetContainerItemLink(bag, slot)
-- 如果物品存在
if name then
-- 判断物品名称是否包含关键字
local keywords = {"结构图", "图样", "公式", "设计图", "配方", "食谱"}
local containsKeyword = false
for _, keyword in ipairs(keywords) do
if string.find(name, keyword) then
containsKeyword = true
break
end
end
-- 如果物品包含关键字并且符合品质条件
if containsKeyword and (name:sub(5, 10) == "1eff00" or name:sub(5, 10) == "0070dd" or name:sub(5, 10) == "ffffff") then
-- 输出要删除的物品信息
print("Deleting: " .. name)
-- 删除物品
PickupContainerItem(bag, slot)
-- 删除光标上的物品
DeleteCursorItem()
end
end
end
end
7858321 发表于 2024-6-2 02:23 PM
在魔兽世界(World of Warcraft)的 Lua API 中,DeleteCursorItem() 是一个函数,用于删除当前选中的物品 ...
这是在论天里面扒拉的代码。我应该如何修改才能删除指定的其他颜色的物品。。。求大神指点 这个可以啊,我做个记号以后需要的时候来翻翻 本帖最后由 lyj141224 于 2024-10-20 12:05 PM 编辑
爱到这刚刚好 发表于 2024-6-2 10:43 PM
这是在论天里面扒拉的代码。我应该如何修改才能删除指定的其他颜色的物品。。。求大神指点以上代码中的 颜色判断代码是:
name:sub(5, 10) == "1eff00" or name:sub(5, 10) == "0070dd" or name:sub(5, 10) == "ffffff" 其中name:sub(5, 10) 是截取到当前物品的颜色(一个string),"1eff00" 是你要删除的物品颜色。进行对比,是就执行删除。
所以你可以将"1eff00" ,换成你要删除的颜色,实现你的目的。
本帖最后由 QQ_CAFE57 于 2024-11-8 11:58 AM 编辑
--删除装备自动加DELETE
hooksecurefunc(StaticPopupDialogs["DELETE_GOOD_ITEM"],"OnShow",function(boxEditor) boxEditor.editBox:SetText(DELETE_ITEM_CONFIRM_STRING);end) 给个参考,这个只用运行一次就行
页:
[1]