init
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
module("ActorEventDispatcher", package.seeall)
|
||||
|
||||
local dispatcher = {}
|
||||
|
||||
-- @brief 注册事件分发器
|
||||
-- @param evId 事件id
|
||||
-- @param func 回调
|
||||
function Reg(evId, func, file)
|
||||
|
||||
--必须有参数
|
||||
if evId == nil or func == nil or file == nil then
|
||||
print( debug.traceback() )
|
||||
print( file )
|
||||
assert(false)
|
||||
end
|
||||
|
||||
--玩家事件
|
||||
if evId >= aeMaxEventCount or evId <= aeNoEvent then
|
||||
print("[ERROR][EventDispatcher] evId("..evId..") error!")
|
||||
assert(false)
|
||||
else
|
||||
if dispatcher[evId] == nil then
|
||||
dispatcher[evId] = {}
|
||||
end
|
||||
table.insert(dispatcher[evId], func)
|
||||
System.regScriptEvent(enType, evId)
|
||||
end
|
||||
print("[TIP][EventDispatcher] Add Actor Event("..evId..") In File("..file.."), And Index="..table.maxn(dispatcher[evId]))
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
function OnEvent(nIndex, evId, pActor, ...)
|
||||
local func = dispatcher[evId][nIndex]
|
||||
if func then
|
||||
return func(pActor, ...)
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
|
||||
--[[ 详细见:ActorEventDef.h
|
||||
|
||||
enum tagActorEventID
|
||||
{
|
||||
aeNoEvent = 0, //未定义事件
|
||||
aeLevel = 1, //角色升级 参数1:当前等级数
|
||||
aeUserLogin = 2, //玩家登陆 参数1:是否第一次登录
|
||||
aeUserLogout = 3, //玩家登出 参数1:人物id
|
||||
aeOnActorDeath = 4, //人物死亡
|
||||
aeReliveTimeOut = 5, //判断复活时间是否超时(用户超过5分钟没有选择回城复活还是原地复活),如果到达,脚本处理,送回主城复活. 参数1:人物指针
|
||||
aeNewDayArrive = 6, //跨天或在线期间0点整[角色指针,天数]
|
||||
aeOnActorBeKilled = 7, //被玩家杀死 [角色指针,杀人者指针]
|
||||
aeWithDrawYuanBao = 8, //提取元宝 [角色指针,提取的元宝数量]
|
||||
aeConsumeYb = 9, //消费元宝 [角色指针,消耗元宝数量]
|
||||
aeOnEnterFuben = 10, //玩家请求进入副本 [角色指针,进入的副本id]
|
||||
aeOnExitFuben = 11, //玩家请求退出副本 [角色指针,退出的副本id]
|
||||
aeGuild = 12, //帮派相关
|
||||
aeEquipComposite = 13, //装备合成 [角色指针,目标装备ItemID]
|
||||
aeBuffRemoved = 14, //buff被删除事件
|
||||
aeLeaveTeam = 15, //离开队伍
|
||||
aeCircle = 16, //角色转生 [角色指针,当前等级数]
|
||||
aeChangeName = 17, //改名
|
||||
aeAsyncOpResult = 18, //异步操作结果 参数1:类型 参数2:结果 参数3:操作方式 参数4:错误码 参数5:卡号 参数6:增值类型 参数7:Sub类型
|
||||
aeHero = 19, //英雄系统
|
||||
aeHurtMonster = 20, //对怪物造成伤害
|
||||
};
|
||||
|
||||
]]
|
||||
|
||||
--return EventDispatcher
|
||||
Reference in New Issue
Block a user