[Lua] 纯文本查看 复制代码 -- 新人加入公会自动欢迎
local GW_Message_Info = {
"欢迎 > %s < 加入《游戏》公会!",
"哟!有萌新 > %s < 加入啦?欢迎加入《游戏》公会!",
"HYHY > %s < ",
"欢迎大佬 > %s < 加入《游戏》公会!",
"热烈欢迎 > %s < 加《游戏》入公会,鼓掌呱唧呱唧~",
}--自定义随机喊话内容
local function UpdateGuildWelcome(_, _, msg) --定义一个喊话函数
local str = gsub(GUILDEVENT_TYPE_JOIN, "%%s", "")--- 切割字符串
if msg:find(str) then
local name = gsub(msg, str, "")
name = Ambiguate(name, "guild")
if not UnitIsUnit(name, "player") then
C_Timer.After(random(1000) / 1000, function() --延迟随机数随机时间,执行工会喊话
SendChatMessage(string.format(GW_Message_Info[random(4)], name), "GUILD")
end)
end
end
end
local loader = CreateFrame("Frame") -- 注册框架
loader:RegisterEvent("CHAT_MSG_SYSTEM") ---注册系统说话事件
loader:SetScript("OnEvent", UpdateGuildWelcome)---系统说话跟新就触发执行函数UpdateGuildWelcome
WOWBEE最大的问题 就是 不断执行脚本,靠条件判断去执行动作,如果你脚本里面有几个动作条件满足 就会同事执行执行,打乱你的动作循环,还有无法保存变量 脚本不断重复运行,变量值不断的变,所以靠时间这 延迟施法这类条件只能靠DBUFF 时间来判断,写的痛苦,研究了下事件触发能解决上述问题, 上面代码 是 注册了 系统说话是事件,,只要系统喊话 出现 就能触发 函数执行。
|