123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- -- 公有的,可以外部调用
- LogManager = {}
- -- 私有的,只能内部使用
- local this = {}
- -- 注册的日志处理器
- local HANDLER_MAP = {}
- -- 注册handler
- function LogManager.RegisterHandler(type, func)
- HANDLER_MAP[type] = func
- end
- -- 获取handler
- function LogManager.GetHandler(type)
- return HANDLER_MAP[type]
- end
- -- 执行方法
- function LogManager.TriggerByType(actor, type, params)
- local func = LogManager.GetHandler(type)
- local success, result = xpcall(func, function(err)
- error("LogManager记录脚本日志错误", actor, type, params, debug.traceback())
- end, actor, params)
- end
- -- 记录日志
- function LogManager.log(actor, type, content)
- logop(actor, type, content)
- end
- -- 玩家下线事件
- function LogManager.RoleLogout(actor)
- -- 某些数据就下线刷一次,防止日志膨胀
- gameDebug.debug(LogManager.TriggerByType, actor, LogOpType.CAREER_AND_ATTR)
- gameDebug.debug(LogManager.TriggerByType, actor, LogOpType.ANGEL_WEAPON)
- gameDebug.debug(LogManager.TriggerByType, actor, LogOpType.ANGEL_MAJOR_GRAIL)
- gameDebug.debug(this.SaveKillNomerMonster, actor)
- end
- function this.SaveKillNomerMonster(actor)
- local oldCount = getplaydef(actor, PlayerDefKey.LOG_KILL_NOMAR_MONSTER_COUNT)
- if oldCount ~= nil and oldCount > 0 then
- LogManager.TriggerByType(actor, LogOpType.KILL_NOMAR_MONSTER, oldCount)
- setplaydef(actor, PlayerDefKey.LOG_KILL_NOMAR_MONSTER_COUNT, 0)
- end
- end
- function LogManager.RoleLevelUp(actor)
- gameDebug.debug(LogManager.TriggerByType, actor, LogOpType.CAREER_AND_ATTR)
- gameDebug.debug(LogManager.TriggerByType, actor, LogOpType.ANGEL_WEAPON)
- gameDebug.debug(LogManager.TriggerByType, actor, LogOpType.ANGEL_MAJOR_GRAIL)
- end
- -- 穿戴装备事件
- function LogManager.RolePutOnEquip(actor)
- gameDebug.debug(LogManager.TriggerByType, actor, LogOpType.SUM_EQUIP_GRADE)
- end
- -- 强化装备事件
- function LogManager.RoleStrenthenEquip(actor)
- gameDebug.debug(LogManager.TriggerByType, actor, LogOpType.SUM_EQUIP_STRENTH)
- end
- -- 追加装备事件
- function LogManager.RoleAppendEquip(actor)
- gameDebug.debug(LogManager.TriggerByType, actor, LogOpType.SUM_EQUIP_APPEND)
- end
- -- 升级连击技能
- function LogManager.RoleUpComboSkill(actor, level)
- gameDebug.debug(LogManager.TriggerByType, actor, LogOpType.COMBO_SKILL_LEVEL, level)
- end
- -- 装备卡牌
- function LogManager.RolePutOnTransferCard(actor)
- gameDebug.debug(LogManager.TriggerByType, actor, LogOpType.TRANSFER_CARD_SCORE)
- end
- -- 击杀怪物事件
- function LogManager.KillMonster(actor, monCfgId)
- local monsterType = tonumber(ConfigDataManager.getTableValue("cfg_monster", "type", "id", monCfgId))
- if monsterType == 1 then
- --小怪,每100只记录一次
- local oldCount = getplaydef(actor, PlayerDefKey.LOG_KILL_NOMAR_MONSTER_COUNT)
- if oldCount == nil then
- oldCount = 0
- end
- local newCount = oldCount + 1
- if newCount >= 100 then
- LogManager.TriggerByType(actor, LogOpType.KILL_NOMAR_MONSTER, newCount)
- newCount = 0
- end
- setplaydef(actor, PlayerDefKey.LOG_KILL_NOMAR_MONSTER_COUNT, newCount)
- elseif monsterType == 2 then
- --黄金怪
- LogManager.TriggerByType(actor, LogOpType.KILL_GOLD_BOSS, 1)
- elseif monsterType == 3 then
- --BOSS
- LogManager.TriggerByType(actor, LogOpType.KILL_BOSS, 1)
- end
- end
- ---------------------------------------------------------注册不同的日志记录处理器----------------------------------------------------------------------
- LogManager.RegisterHandler(LogOpType.CAREER_AND_ATTR, function(actor, params)
- local career = getbaseinfo(actor, "getbasecareer")
- local maxDC = getattrinfo(actor, "maxDC")
- local maxMC = getattrinfo(actor, "maxMC")
- local armor = getattrinfo(actor, "armor")
- local content = career .. ":" .. maxDC .. "#" .. maxMC .. "#" .. armor
- LogManager.log(actor, LogOpType.CAREER_AND_ATTR, content)
- end)
- LogManager.RegisterHandler(LogOpType.B_AND_D_CHALLENGE, function(actor, params)
- LogManager.log(actor, LogOpType.B_AND_D_CHALLENGE, 1)
- end)
- LogManager.RegisterHandler(LogOpType.SUM_EQUIP_GRADE, function(actor, params)
- local bai = 0
- local zhuo = 0
- local tao = 0
- local allEquips = getputonequipinfo(actor)
- for _, equip in pairs(allEquips) do
- -- 区分套装、卓越、白装
- local itemCfgId = equip.cfgid
- if not AngelMajorEquipment.isAngelEquip(itemCfgId) then
- local quality = tostring(itemCfgId):sub(7, 7)
- local grade = tostring(itemCfgId):sub(5, 6)
- if quality == "1" then
- bai = bai + tonumber(grade)
- elseif quality == "2" then
- jprint("卓越",equip)
- zhuo = zhuo + tonumber(grade)
- elseif quality == "3" then
- tao = tao + tonumber(grade)
- end
- end
- end
- local content = bai .. "#" .. zhuo .. "#" .. tao
- LogManager.log(actor, LogOpType.SUM_EQUIP_GRADE, content)
- end)
- LogManager.RegisterHandler(LogOpType.SUM_EQUIP_STRENTH, function(actor, params)
- local sum = EquipAndAppear.allequipstrengthlv(actor)
- LogManager.log(actor, LogOpType.SUM_EQUIP_STRENTH, sum)
- end)
- LogManager.RegisterHandler(LogOpType.SUM_EQUIP_APPEND, function(actor, params)
- local sum = EquipAndAppear.allequipappendlv(actor)
- LogManager.log(actor, LogOpType.SUM_EQUIP_APPEND, sum)
- end)
- LogManager.RegisterHandler(LogOpType.COMBO_SKILL_LEVEL, function(actor, params)
- LogManager.log(actor, LogOpType.COMBO_SKILL_LEVEL, params)
- end)
- LogManager.RegisterHandler(LogOpType.TRANSFER_CARD_SCORE, function(actor, params)
- local score = TransferCard.GetRoleScore(actor)
- LogManager.log(actor, LogOpType.TRANSFER_CARD_SCORE, score)
- end)
- LogManager.RegisterHandler(LogOpType.ANGEL_WEAPON, function(actor, params)
- local rank, level = AngelMajorEquipment.getTotalInfo(actor, 1)
- LogManager.log(actor, LogOpType.ANGEL_WEAPON, rank .. "#" .. level)
- end)
- LogManager.RegisterHandler(LogOpType.ANGEL_MAJOR_GRAIL, function(actor, params)
- local rank, level = AngelMajorGrail.getAverageInfo(actor, 1)
- LogManager.log(actor, LogOpType.ANGEL_MAJOR_GRAIL, rank .. "#" .. level)
- end)
- LogManager.RegisterHandler(LogOpType.KILL_BOSS, function(actor, params)
- LogManager.log(actor, LogOpType.KILL_BOSS, params)
- end)
- LogManager.RegisterHandler(LogOpType.KILL_GOLD_BOSS, function(actor, params)
- LogManager.log(actor, LogOpType.KILL_GOLD_BOSS, params)
- end)
- LogManager.RegisterHandler(LogOpType.KILL_NOMAR_MONSTER, function(actor, params)
- LogManager.log(actor, LogOpType.KILL_NOMAR_MONSTER, params)
- end)
- ----------------------------------------------------------------------------------------------------------------------------------------
|