欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > 传奇996_21——龙岭事件

传奇996_21——龙岭事件

2024/11/14 7:39:08 来源:https://blog.csdn.net/HSH541/article/details/143753590  浏览:    关键词:传奇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 thenreturnendnpcRet.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 = falseGameEvent.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 thenlocal err = "点击事件发生错误:事件名="..msgIDrelease_print(err, errInfo)end
endfunction 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函数

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com