自学内容网 自学内容网

传奇996_21——龙岭事件

游戏事件

点击事件

点击触发npc

倒叙讲解:

  • 提前设下游戏事件add,由点击npc事件EventCfg.onClicknpc调用该游戏事件,搜索EventCfg.onClicknpc即可
GameEvent.add(EventCfg.onClicknpc, function (actor,npcid,npcRet)
    if npcid ~= 14 and npcid ~= 31 and npcid ~= 47 and npcid ~= 51 then
        return
    end
    npcRet.ret = true
    _openui(actor)
end, ChengHaoJinSheng)
  • QF中,游戏事件push调用的游戏事件add,然后的点击钩子函数clicknpc,调用游戏事件push
local npcRet = { ret = false }
function clicknpc(actor, npcid)
    --sendmsg(actor, ConstCfg.notice.own, '{"Msg":"' .. npcid .. '","Type":1}')
    --release_print("aaa",getflagstatus(actor,100))

    npcRet.ret = false
    GameEvent.push(EventCfg.onClicknpc, actor, npcid, npcRet)
    return npcRet.ret
end

以上点击npc打开弹窗就算结束,下面是点击弹窗内按钮功能:

  • ui内按钮触发,调用的onbtnclick函数,传参数升级称号,搜索onbtnclick
<Button|x=373.5|y=296.5|color=255|mimg=public/chxt/002.png|size=18|pimg=public/chxt/002.png|nimg=public/chxt/001.png|link=@onbtnclick,升级称号>]]
  • QF中onbtnclick函数调用点击事件dispatch
function onbtnclick(actor, msgId, ...)
    ClickEvent.dispatch(actor, msgId, ...)
end
  • 按钮点击事件dispatch函数中,执行了dispatch_handler数组内的函数,所以需要dispatch_handler内先有函数,下方第二个函数按钮注册事件就是往dispatch_handler送函数的,搜索ClickEvent.RegisterMsg
function ClickEvent.dispatch(actor, msgID, ...)
    local target = dispatch_handler[msgID]
    
    if not target then return end
    --target(actor, ...)
    local result, errInfo = pcall(target, actor,...)
if not result then
local err = "点击事件发生错误:事件名="..msgID
release_print(err, errInfo)
end
end

function ClickEvent.RegisterMsg(msgId, target)
    dispatch_handler[msgId] = target
end
  • 游戏注册事件如下,逻辑业务代码在_start函数中
ClickEvent.RegisterMsg("升级称号", _start)

npc事件总结:

点击npc,打开弹窗:
  • 提前添加游戏事件GameEvent.add,游戏事件内写业务代码(打开弹窗ui页面)
  • 由钩子函数clicknpc调用提前添加的游戏事件。
    除了框架外加GameEvent.add代码和业务函数代码
点击弹窗内按钮:
  • 提前弹窗内调用onbtnclick函数
  • onbtnclick函数调用ClickEvent.dispatch函数点击事件
  • ClickEvent.dispatch函数内调用了dispatch_handler数组内函数
  • ClickEvent.RegisterMsg函数往dispatch_handler数组内加函数

除了框架外加ClickEvent.RegisterMsg代码和调用onbtnclick函数


原文地址:https://blog.csdn.net/HSH541/article/details/143753590

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!