跳到主要内容

事件说明

事件分类

事件类型特点
全局触发事件- 引擎已经注册好了
- 事件需要返回值
- 事件只在这一个地方触发
基础触发事件- 自由在任意使用前注册
- 事件不需要返回值
- 事件在触发到所有注册的地方

全局触发事件样例

描述

  • 全局触发事件需要写在 dev/modules/public/qfunction.lua 文件
  • 全局触发事件需要写在 dev/modules/public/qfunction.lua 文件
  • 统一函数命名:function QFunction:XXX(A, B, C)
    • XXX 是事件名
    • ABC 是参数,不同事件有不同参数
  • 全局事件列表见:全局事件列表

样例1:

样例说明

样例1代码:

--- 掉落前触发
---@param attacker userdata 对象
---@param scene_item userdata 场景道具对象
---@param droped_obj userdata 掉落对象
---@param x number X轴
---@param y number Y轴
---@return boolean 是否允许掉落
function isc_test_qfunction:pre_drop(attacker, scene_item, droped_obj, x, y)
if edi.object:is_monster(droped_obj) and edi.object:is_player(attacker) then
local item_cfg = edi.scene_item:get_meta(scene_item)

local player_name = edi.player:get_name(attacker)
local scene = edi.player:get_scene(attacker)
local scene_name = edi.scene:get_name(scene)
local monster_name = edi.monster:get_name(droped_obj)
local content = "恭喜玩家【"..player_name.."】 在【"..scene_name.."】 击败了【"..monster_name .. "】掉落了 【"..item_cfg.name.."】"
edi.general:send_broadcast_notice(const_def.NOTICE_TYPE.TopHorseLamp, content)
end
end

样例使用到的功能说明:

基础触发事件样例

描述

  • 事件需要自行先注册
  • 事件需要自行先注册
  • 基础事件列表见:基础事件列表

样例1:

样例说明

样例1代码:

--- 玩家死亡
---@param deader userdata 被击杀者对象
---@param attacker userdata 攻击者对象
local function _player_die(deader, attacker)
if edi.player:is_player(attacker) then
-- 每次击杀检查是否增加仇恨值
if not module:need_add_pk_val(deader, attacker) then
module:add_pk_val(attacker, 100)
end
end
end
edi.event:reg(edi.event.player_die, _player_die, "pk_mod")

事件注册及使用流程

流程说明

基础触发事件样例

描述

  • 事件需要自行先注册
  • 事件需要自行先注册
  • 基础事件列表见:基础事件列表

样例1:

样例说明

样例1代码:

--- 玩家死亡
---@param deader userdata 被击杀者对象
---@param attacker userdata 攻击者对象
local function _player_die(deader, attacker)
if edi.player:is_player(attacker) then
-- 每次击杀检查是否增加仇恨值
if not module:need_add_pk_val(deader, attacker) then
module:add_pk_val(attacker, 100)
end
end
end
edi.event:reg(edi.event.player_die, _player_die, "pk_mod")

接口

注册事件 reg

  • args:
名字类型说明、描述
event_namestring or number事件名
funcfunction关注接口函数
tagstring or number标签
---
  • ret: 无

主动触发事件 call

  • args:
名字类型说明、描述
event_namestring or number事件名
tagstring or number标签
...anyundefined
---
  • ret: any 带放回值的部分则依据实际引擎事件需求,放回对应的内容

移除事件 remove

  • args:
名字类型说明、描述
event_namestring or numberundefined
tagstring or numberundefined
---
  • ret: 无

注册ui事件 reg_ui_open

  • args:
名字类型说明、描述
ui_idstring or numberssr 事件
funcfunctionundefined
---
  • ret: 无

NPC 注册事件 reg_npc_click

  • args:
名字类型说明、描述
npc_idstring or numberssr 界面ID
funcfunctionundefined
---
  • ret: 无

NPC 注册事件 reg_click

  • args:
名字类型说明、描述
click_idstring or number按钮id
funcfunctionundefined
---
  • ret: 无

GM 注册事件 reg_gm

  • args:
名字类型说明、描述
event_namestring or numbergm命令
funcfunctionundefined
---
  • ret: 无

任务事件注册 reg_task_click

  • args:
名字类型说明、描述
event_namestring任务命令
funcfunctionundefined
---
  • ret: 无

任务事件注册 reg_item_effect

  • args:
名字类型说明、描述
event_namestring任务命令
funcfunctionundefined
---
  • ret: 无

事件注册及使用流程

流程说明