情为 发表于 2025-1-2 14:32:15

全局钩子能根据事件来判定吗?

本帖最后由 情为 于 2025-2-28 02:04 PM 编辑

hooksecurefunc( functionName, hookfunc)
就想简单的写个出本后自动重置的宏,应该是用WORLD_MAP_UPDATE事件吧,小白求教应该怎么写呢?

lbabey 发表于 2025-1-2 15:52:37

没用过这个事件,
预计应该是先注册这个事件,
然后触发这个事件后再判断下区域吧
再执行重置

情为 发表于 2025-1-2 21:44:33

lbabey 发表于 2025-1-2 03:52 PM
没用过这个事件,
预计应该是先注册这个事件,
然后触发这个事件后再判断下区域吧


区域判定弄好了 就差这个检测事件触发的判定了   
不知道应该是用show还是onshow,还是什么条件,也不知道在哪里能查这类判定{:5_156:}

lbabey 发表于 2025-1-2 21:59:55

本帖最后由 lbabey 于 2025-1-2 10:06 PM 编辑

随便搜下就知道怎么写了
大概举个例子local frame=CreateFrame("Frame") --来个框架接收
frame:RegisterEvent("CHAT_MSG_WHISPER")--注册密语事件
frame:SetScript("OnEvent",function(self,event,...)--事件发生触发函数
if event == "CHAT_MSG_WHISPER" then--事件是密语
xx
end
end)

情为 发表于 2025-1-3 13:30:44

有道理,全局钩子不好取消,还是得加个开关比较好.{:5_240:}

情为 发表于 2025-1-3 14:40:50

原来是我弄复杂了 直接根据玩家是否在副本的API判定就行了{:5_238:}宏版本
/run F=F or CreateFrame("Frame")F:RegisterEvent("ZONE_CHANGED_NEW_AREA") if I then print("关闭重置") I=nil else print("开启重置")I = function() if IsInInstance()~=1 then ResetInstances() SendChatMessage(".instance unbind all") end end end F:SetScript("OnEvent",I)


lua版本
if IsInInstance() ~= 1 then
        ResetInstances()
        SendChatMessage(".instance unbind all")        --GM命令 如无权限可删除
end

genius20001127 发表于 2025-1-9 20:35:11

{:5_249:}顺手牵羊了,找函数怎么找啊?函数手册就那么几种?
页: [1]
查看完整版本: 全局钩子能根据事件来判定吗?