37 lines
		
	
	
		
			890 B
		
	
	
	
		
			Lua
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			890 B
		
	
	
	
		
			Lua
		
	
	
		
			Executable File
		
	
	
	
	
module("NetmsgDispatcher", package.seeall)
 | 
						||
 | 
						||
local dispatcher = {}
 | 
						||
 | 
						||
-- @brief 注册网络包的处理函数
 | 
						||
-- @param sysId 系统id
 | 
						||
-- @param cmd   系统内的消息号
 | 
						||
function Reg(sysId, cmdId, func)
 | 
						||
	if cmdId == nil or sysId == nil then print( debug.traceback() ) end
 | 
						||
	if sysId > 256 or cmdId > 256 then
 | 
						||
		print("[ERROR][NetmsgDispatcher] sysId("..sysId..") or cmdId("..cmdId..") error!")
 | 
						||
		assert(false)
 | 
						||
		return
 | 
						||
	end
 | 
						||
	dispatcher[sysId] = dispatcher[sysId] or {}
 | 
						||
	dispatcher[sysId][cmdId] = func
 | 
						||
	System.regScriptNetMsg(sysId, cmdId)
 | 
						||
	return true
 | 
						||
end
 | 
						||
 | 
						||
function OnNetMsg(sysId, cmdId, actor, pack)
 | 
						||
	if not dispatcher[sysId] then return end
 | 
						||
 | 
						||
	local func = dispatcher[sysId][cmdId]
 | 
						||
	print("玩家:"..Actor.getActorId(actor)..",收到消息请求,系统:"..sysId..",协议:"..cmdId)
 | 
						||
	if func then
 | 
						||
		func(actor, pack)
 | 
						||
	end
 | 
						||
end
 | 
						||
 | 
						||
_G.OnNetMsg=OnNetMsg
 | 
						||
 | 
						||
 | 
						||
--[[ 详细见:LogicServerCmd.h
 | 
						||
 | 
						||
 | 
						||
]] |