LUACN论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
热搜: YJWOW MagicStone BoL
查看: 165|回复: 5

[wowbee] 求助:如何仅执行一次 事件监听

[复制链接]
发表于 2024-4-13 11:47:23 | 显示全部楼层 |阅读模式
本帖最后由 胡先生 于 2024-4-13 11:51 AM 编辑

local frame = CreateFrame("Frame")
frame:RegisterEvent("CHAT_MSG_RAID")

frame:SetScript("OnEvent", function(self, event, ...)
        local message, sender, _, _, _, _, _, _, _, _, _, guid = ...

        -- 如果消息是 "1",则回复 "2"
        if message == "1" then
            -- 发送消息 "2"
            SendChatMessage("2", "RAID")
            return
        end
end)

想做一个监听事件,当监听到 团队消息“1”时,自己发送消息“2".
功能可以实现,但却是在刷屏的发送“2”.如何仅发送一次消息“2”呢?
增加frame:UnregisterEvent("CHAT_MSG_RAID") 注销监听事件也无法阻止刷屏


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入我们

x
回复

使用道具 举报

 楼主| 发表于 2024-4-15 14:34:39 | 显示全部楼层
--控制施法
local frame = CreateFrame("Frame")
frame:RegisterEvent("CHAT_MSG_SAY")        --普通频道
frame:RegisterEvent("CHAT_MSG_RAID")        --团队成员频道
frame:RegisterEvent("CHAT_MSG_PARTY")      --小队成员频道
frame:RegisterEvent("CHAT_MSG_PARTY_LEADER") -- 小队领袖频道
frame:RegisterEvent("CHAT_MSG_RAID_LEADER") -- 团队领袖频道
frame:RegisterEvent("CHAT_MSG_GUILD") -- 工会频道
frame:SetScript("OnEvent", function(self, event, ...)
        local message, sender, _, _, _, _, _, _, _, _, _, guid = ...
        if message == "痛苦压制" then
            if BeeSpellCoolDown("痛苦压制") == 0 then
                BeeRun("痛苦压制", sender)
                return
            end
        end
end)

--我放弃了,改成不回话了。有人喊痛苦压制就对他用。
回复 支持 1 反对 0

使用道具 举报

发表于 2024-4-13 19:13:46 | 显示全部楼层
是不是在WBE里面运行的?
运行一次就行,别打勾
回复 支持 0 反对 1

使用道具 举报

发表于 2024-4-14 20:31:39 | 显示全部楼层
= =你是典型的捡了西瓜丢芝麻
你的回调函数里不能做个静态变量存储当前状态
然后进回调函数之前判断一下这个变量吗?
回复 支持 0 反对 1

使用道具 举报

发表于 2024-4-13 13:35:17 | 显示全部楼层
你重复注册事件了吧,代码看起来没啥问题
回复 支持 反对

使用道具 举报

发表于 2024-4-17 11:34:32 | 显示全部楼层
重复注册了,每运行一次就会注册一次,第一句不要local ,改成frame=frame or  CreateFrame("Frame"),
另外可以给function命名,如果function为空就赋值为函数,不为空就赋值为空,达到按1次开启,再按一次关闭的目的。做成宏比较好用。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

小黑屋|手机版|Archiver|LUACN论坛

GMT+8, 2024-4-30 03:07 PM , Processed in 0.051312 second(s), 23 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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