60 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Lua
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Lua
		
	
	
		
			Executable File
		
	
	
	
	
module("QuestDispatcher", package.seeall)
 | 
						|
 | 
						|
local dispatcher = {}
 | 
						|
 | 
						|
_G.QuestEvent =
 | 
						|
{
 | 
						|
    OnCompleteQuest = 1,   --任务完成
 | 
						|
    Count = 1,
 | 
						|
}
 | 
						|
 | 
						|
--------------------------------------------------------------------
 | 
						|
-- Lua接口
 | 
						|
--------------------------------------------------------------------
 | 
						|
 | 
						|
-- @brief 注册事件分发器
 | 
						|
-- @param evId 事件id
 | 
						|
-- @param questType 任务类型
 | 
						|
-- @param func 回调
 | 
						|
function Reg(evId, func, file)
 | 
						|
 | 
						|
	--参数检查
 | 
						|
	if evId == nil or func == nil or file == nil then 
 | 
						|
		print( debug.traceback() )
 | 
						|
		assert(false)
 | 
						|
	end
 | 
						|
 | 
						|
    --事件范围检查
 | 
						|
    if evId <= 0 or evId >= QuestEvent.Count then
 | 
						|
        assert(false)
 | 
						|
    end
 | 
						|
 | 
						|
    --回调表初始化
 | 
						|
    -- if dispatcher[evId] == nil then
 | 
						|
    --     dispatcher[evId] = {}
 | 
						|
    -- end
 | 
						|
 | 
						|
    --注册
 | 
						|
    dispatcher[evId] = func
 | 
						|
    print("[TIP][QuestDispatcher] Event("..evId..") In File("..file.."), And Index="..table.maxn(dispatcher[evId]))
 | 
						|
end
 | 
						|
 | 
						|
--------------------------------------------------------------------
 | 
						|
-- CPP回调
 | 
						|
--------------------------------------------------------------------
 | 
						|
 | 
						|
function OnEvent(evId, Qid, ...)
 | 
						|
    
 | 
						|
    --获取回调
 | 
						|
    local func = dispatcher[evId]
 | 
						|
    if func == nil  then
 | 
						|
        return true
 | 
						|
    end
 | 
						|
 | 
						|
    --回调调用
 | 
						|
    if evId == FubenEvent.OnCompleteQuest then --任务完成
 | 
						|
        -- return func(fbId, fbEnterType, ...)
 | 
						|
    end
 | 
						|
    return true
 | 
						|
end
 |