diff --git a/src/actions/ActivityAction.lua b/src/actions/ActivityAction.lua index c943acc..72c974c 100644 --- a/src/actions/ActivityAction.lua +++ b/src/actions/ActivityAction.lua @@ -70,6 +70,7 @@ function _M.sudokuRpc(agent, data) activity_type = 0, -- 活动类型,见活动类型枚举表 activity_reward = reward or {}, -- 活动奖励,json格式记录,{'itemid1':123,'itemid2':456,………...} }) + role:mylog("act_action", {desc = "sudoku", int1 = id, int2 = phase}) SendPacket(actionCodes.Activity_sudokuRpc, MsgPack.pack({task = role:packReward(task, tchange), reward = role:packReward(reward, rchange), rId = rId})) return true diff --git a/src/actions/AdvAction.lua b/src/actions/AdvAction.lua index 9f5faac..6c220e7 100644 --- a/src/actions/AdvAction.lua +++ b/src/actions/AdvAction.lua @@ -174,6 +174,7 @@ function _M.startAdvRpc( agent, data ) role:checkTaskEnter("AdvStart", {id = chapterId}) role:checkTaskEnter("AdvStartSelf", {id = chapterId}) role:getAdvData():popBackEvents() -- 清一下事件 + role:getAdvData():mylog({desc = "start", int1 = supportIdx}) SendPacket(actionCodes.Adv_startAdvRpc, '') return true @@ -254,6 +255,7 @@ function _M.startHangRpc(agent, data) role:changeAdvCount(adv_idle_energy) role:checkTaskEnter("AdvStart", {id = chapterId}) + role:mylog("adv_action", {desc = "startHang", int1 = chapterId}) SendPacket(actionCodes.Adv_startHangRpc, '') return true @@ -293,6 +295,8 @@ function _M.quickHangRpc(agent, data) info.time = 0 role:changeUpdates({{type = "advHang", field = chapterId, value = info}}) + role:mylog("adv_action", {desc = "advQuickHang", int1 = chapterId}) + SendPacket(actionCodes.Adv_quickHangRpc, '') return true end @@ -374,6 +378,8 @@ function _M.endHangRpc(agent, data) role:changeUpdates({{type = "advHang", field = chapterId, value = nil}}) + role:mylog("adv_action", {desc = "endHang", int1 = chapterId, short1 = cancel and 1 or 0}) + SendPacket(actionCodes.Adv_endHangRpc, MsgPack.pack({reward = reward, change = change, isFull = isFull})) return true end @@ -403,6 +409,7 @@ function _M.buyAdvCountRpc(agent , data) role:changeAdvCount(-count * globalCsv.adv_daily_buy_num) role.dailyData:updateProperty({field = "advBC", delta = count}) end + role:mylog("adv_action", {desc = "buyAdvCount", short1 = isEl and 1 or 0, int1 = count}) SendPacket(actionCodes.Adv_buyAdvCountRpc, '') return true @@ -427,6 +434,8 @@ function _M.finishTaskRpc(agent, data) if not status then return end role:checkTaskEnter("AdvOverTask", {id = taskId}) + adv:mylog({desc = "finishTask", int1 = taskId}) + SendPacket(actionCodes.Adv_finishTaskRpc, MsgPack.pack(role:packReward(reward, change))) return true end @@ -448,6 +457,8 @@ function _M.clickBlockRpc(agent, data) if adv:isWaitChooseArtifact() then return returnFail() end + adv:mylog({desc = "clickBlock", int1 = msg.roomId, int2 = msg.blockId}) + local status, errorCode = adv:clickBlock(msg.roomId, msg.blockId, msg) if not status then return returnFail(errorCode) end @@ -483,8 +494,8 @@ function _M.useItemRpc(agent, data) if itemId == 5020 then role:finishGuide(53) end - adv:checkAchievement(adv.AchievType.UseItem, count, itemId) + adv:mylog({desc = "useItem", int1 = itemId, int2 = count}) for i = 1, count do adv:doActive(itemData.effect, target) -- target @@ -520,6 +531,7 @@ function _M.usePotionRpc(agent, data) local adv = role:getAdvData() if adv:isWaitChooseArtifact() then return end + adv:mylog({desc = "usePotion", int1 = potionId}) local status = adv:doActive(potionData.effect, target) -- target if not status then return end @@ -619,6 +631,7 @@ function _M.exitAdvRpc(agent, data) role:saveGuide(57,1,true) end local adv = role:getAdvData() + adv:mylog({desc = "exit"}) local status = adv:exit() -- target {roomId = 1, blockId = 1} 选择的目标 SendPacket(actionCodes.Adv_exitAdvRpc, MsgPack.pack({events = adv:popBackEvents()})) return true @@ -689,7 +702,7 @@ function _M.endBattleRpc(agent, data) role:saveGuide(61,1,true) end end - + adv:mylog({desc = "endBattle"}) local status = adv:clickBlock(roomId, blockId, {player = player, bySkill = bySkill}) if not status then return end @@ -772,7 +785,9 @@ function _M.wheelSurfRpc(agent, data) end role:award(reward, {log = {desc = "advWheelSurf", int1 = ptype}}) role:finishGuide(58) + role:checkTaskEnter("AdvDraw", {count = count, ptype = ptype}) + role:mylog("adv_action", {desc = "advWheelSurf", int1 = ptype, int2 = count}) SendPacket(actionCodes.Adv_wheelSurfRpc, MsgPack.pack({reward = backReward})) return true @@ -801,6 +816,7 @@ function _M.repayWheelSurfRpc(agent, data) local gift = drawData["pool3"]:randWeight(true) local reward, change = {[gift[1]] = gift[2]} reward, change = role:award(reward, {log = {desc = "advRepayWheelSurf", int1 = ptype}}) + role:mylog("adv_action", {desc = "advRepayWheelSurf", int1 = ptype}) SendPacket(actionCodes.Adv_repayWheelSurfRpc, MsgPack.pack(role:packReward(reward, change))) return true @@ -824,6 +840,8 @@ function _M.finishAchievRpc(agent, data) if not status then return end adv:updateAchievement() role:finishGuide(57) + role:mylog("adv_action", {desc = "finishAchiev", short1 = ctype, int1 = chapterId, int2 = taskId}) + SendPacket(actionCodes.Adv_finishAchievRpc, MsgPack.pack(role:packReward(reward, change))) return true end @@ -879,6 +897,7 @@ function _M.refreshSupportRpc(agent, data) end role:advRandomSupportEffect() + role:mylog("adv_action", {desc = "advSupRe", short1 = cr < al and 0 or 1}) SendPacket(actionCodes.Adv_refreshSupportRpc, '') return true diff --git a/src/actions/CarAction.lua b/src/actions/CarAction.lua index e55b3c6..105002a 100644 --- a/src/actions/CarAction.lua +++ b/src/actions/CarAction.lua @@ -47,6 +47,8 @@ function _M.makePotionRpc( agent, data ) carriage_cook_amount = count, -- 制作总量 carriage_cook_cost = cost, -- 制作消耗道具,json格式记录,{'itemid1':10,'itemid2':5,…………..} }) + role:mylog("role_action", {desc = "makePotion", int1 = potionId, int2 = count}) + SendPacket(actionCodes.Car_makePotionRpc, MsgPack.pack({potionBag = potionBag})) return true end @@ -105,7 +107,7 @@ function _M.equipUpRpc( agent, data ) equip_upgrade_cost = costCount, -- 升级操作消耗装备数量 equip_upgrade_current = cost, -- 升级消耗的货币类型 }) - + role:mylog("role_action", {desc = "equipUp", int1 = id, int2 = count}) SendPacket(actionCodes.Car_equipUpRpc, '') return true end @@ -145,7 +147,7 @@ function _M.runeUpRpc( agent, data ) hero:updateProperty({field = "battleV", value = hero:getBattleValue()}) end end - ownRune:log({desc = "runeUp", int1 = level + 1}) + ownRune:mylog({desc = "runeUp", int1 = level + 1}) SendPacket(actionCodes.Car_runeUpRpc, '') return true @@ -179,7 +181,8 @@ function _M.saleEquipRpc(agent, data ) end role:checkTaskEnter("SaleEquip", {count = allCount}) reward, change = role:award(reward, {log = {desc = "saleEquip"}}) - + role:mylog("role_action", {desc = "saleEquip", int1 = allCount}) + SendPacket(actionCodes.Car_saleEquipRpc, MsgPack.pack(role:packReward(reward, change))) return true end diff --git a/src/actions/DinerAction.lua b/src/actions/DinerAction.lua index 2cc8d12..e961f7b 100644 --- a/src/actions/DinerAction.lua +++ b/src/actions/DinerAction.lua @@ -106,6 +106,8 @@ function _M.addSellRpc( agent, data ) end role:finishGuide(28) + role:mylog("diner_action", {desc = "addSell", int1 = dish, int2 = count}) + role.dinerData:updateProperty({field = "sells", value = json.encode(sells)}) SendPacket(actionCodes.Diner_addSellRpc, "") return true @@ -161,6 +163,7 @@ function _M.removeSellRpc( agent, data ) restaurant_sale_coin = reward[ItemId.DinerCoin] or 0, -- 售卖获得美食币 restaurant_sale_gear = reward[ItemId.Gold] or 0, -- 售卖获得齿轮 }) + role:mylog("diner_action", {desc = "removeSell", int1 = dish}) role.dinerData:updateProperty({field = "sells", value = json.encode(sells)}) SendPacket(actionCodes.Diner_removeSellRpc, MsgPack.pack({reward = reward, change = change})) @@ -230,7 +233,7 @@ function _M.getSellRewardRpc( agent, data ) role.dinerData:notifyUpdateProperty("order", role.dinerData:getProperty("order")) end - + role:mylog("diner_action", {desc = "sell"}) SendPacket(actionCodes.Diner_getSellRewardRpc, MsgPack.pack({reward = reward, change = change})) return true @@ -319,6 +322,8 @@ function _M.expediteSellRpc( agent, data ) end role:checkTaskEnter("FoodSellQuick") + role:mylog("diner_action", {desc = "sellQ"}) + SendPacket(actionCodes.Diner_expediteSellRpc, MsgPack.pack({reward = reward, change = change, popular = popular})) return true end @@ -365,6 +370,7 @@ function _M.levelUpRpc( agent, data ) restaurant_up_effectbef = curLevel, --升级前加成 restaurant_up_effect = curLevel + 1, --升级后加成 }) + role:mylog("diner_action", {desc = "buildUp", int1 = index, int2 = curLevel + 1}) SendPacket(actionCodes.Diner_levelUpRpc, '') return true @@ -454,6 +460,8 @@ function _M.talentUpRpc( agent, data ) carriage_logistics_gear = cost[ItemId.Gold] or 0, -- 后勤室升级花费齿轮数量 carriage_logistics_coin = cost[ItemId.DinerCoin] or 0, -- 后勤室升级花费美食币数量 }) + role:mylog("diner_action", {desc = "talentUp", int1 = dish, int2 = dishLevel + 1}) + SendPacket(actionCodes.Diner_talentUpRpc, '') return true end @@ -487,6 +495,7 @@ function _M.skillUpRpc( agent, data ) role:costItems(cost, {log = {desc = "dinerSkillUp", int1 = skill, int2 = skillLevel + 1}}) role.dinerData:updateProperty({field = "skillTree", value = skillTree:setv(skill, skillLevel + 1)}) + role:mylog("diner_action", {desc = "skillUp", int1 = skill, int2 = skillLevel + 1}) SendPacket(actionCodes.Diner_skillUpRpc, '') return true @@ -514,6 +523,8 @@ function _M.lockTaskRpc( agent, data ) end role.dinerData:updateProperty({field = "order", value = json.encode(orders)}) + role:mylog("diner_action", {desc = "lockTask", int1 = order.id}) + SendPacket(actionCodes.Diner_lockTaskRpc, MsgPack.pack({lock = order.lock})) return true end @@ -550,7 +561,8 @@ function _M.updateTaskRpc( agent, data ) orders[index].status = 1 orders[index].lock = 1 - role:checkTaskEnter("GetOderTask", {rarity = taskSet.rarity}) + role:checkTaskEnter("GetOderTask", {rarity = taskData.rarity}) + role:mylog("diner_action", {desc = "getTask", int1 = order.id}) elseif cmd == 1 then if order.status ~= 1 then return 31 @@ -558,6 +570,8 @@ function _M.updateTaskRpc( agent, data ) orders[index].status = 0 orders[index].lock = 0 + role:mylog("diner_action", {desc = "deleteTask", int1 = order.id}) + elseif cmd == 2 then if order.status ~= 1 then return 32 @@ -565,10 +579,11 @@ function _M.updateTaskRpc( agent, data ) if order.n < taskData.value then return 6 end + role:mylog("diner_action", {desc = "finishTask", int1 = order.id}) reward, change = role:award(taskData.reward, {log = {desc = "dinerFinishTask", int1 = order.id}}) table.remove(orders,index) - role:checkTaskEnter("OverOderTask", {rarity = taskSet.rarity}) + role:checkTaskEnter("OverOderTask", {rarity = taskData.rarity}) else return 33 end @@ -577,8 +592,8 @@ function _M.updateTaskRpc( agent, data ) role:log("restaurant_order", { restaurant_order_id = order.id, -- 订单任务ID restaurant_order_status = cmd, -- 订单任务状态,接受:0, 拒绝:1, 完成:2 - restaurant_order_rwd = reward, -- 订单完成奖励,json格式记录,{"itemid1":123,"itemid2":12,……….} - restaurant_order_lv = taskSet.rarity, -- 订单品质等级,普通:0, 稀有:1, 顶级:2, 豪华:3 + restaurant_order_rwd = reward or {}, -- 订单完成奖励,json格式记录,{"itemid1":123,"itemid2":12,……….} + restaurant_order_lv = taskData.rarity, -- 订单品质等级,普通:0, 稀有:1, 顶级:2, 豪华:3 }) role.dinerData:updateProperty({field = "order", value = json.encode(orders)}) @@ -656,6 +671,8 @@ function _M.refreshTaskRpc( agent, data ) end role:finishGuide(41) + role:mylog("diner_action", {desc = "reTask"}) + role.dinerData:updateProperty({field = "order", value = json.encode(orders)}) SendPacket(actionCodes.Diner_refreshTaskRpc, '') @@ -696,6 +713,8 @@ function _M.addWantFoodRpc(agent , data) end role:finishGuide(36) + role:mylog("diner_action", {desc = "wantFood"}) + role.dinerData:updateProperty({field = "gfood", value = gfood}) SendPacket(actionCodes.Diner_addWantFoodRpc, '') @@ -742,6 +761,7 @@ function _M.getGreenhouseRpc( agent, data ) local reward, change = role:award(reward, {log = {desc = "greenHourse", int1 = level}}) role:checkTaskEnter("FoodMGet") + role:mylog("diner_action", {desc = "greenHourse"}) SendPacket(actionCodes.Diner_getGreenhouseRpc, MsgPack.pack({reward = reward, change = change})) return true @@ -880,6 +900,7 @@ function _M.entrustRpc(agent , data) role.dinerData:updateProperty({field = "entrust", value = entrust}) role:finishGuide(26) + role:mylog("diner_action", {desc = "entrus", short1 = ctype, int1 = entrustId}) SendPacket(actionCodes.Diner_entrustRpc, MsgPack.pack({reward = reward, change = change})) return true @@ -916,6 +937,7 @@ function _M.collectRpc(agent , data) restaurant_collect_rwd = reward, -- 订单完成奖励,json格式记录,{"itemid1":123,"itemid2":12,……….} restaurant_collect_plan = count, -- 收集进度,即解锁顾客,数字表示 }) + role:mylog("diner_action", {desc = "collect", int1 = id}) SendPacket(actionCodes.Diner_collectRpc, MsgPack.pack({reward = reward, change = change})) return true @@ -945,6 +967,8 @@ function _M.comboRewardRpc(agent , data) role.dinerData:updateProperty({field = "comboStatus", value = comboStatus}) -- 解锁了 + role:mylog("diner_action", {desc = "combo", int1 = id}) + SendPacket(actionCodes.Diner_comboRewardRpc, MsgPack.pack({reward = reward, change = change})) return true end diff --git a/src/actions/EmailAction.lua b/src/actions/EmailAction.lua index 5473787..2d037e2 100644 --- a/src/actions/EmailAction.lua +++ b/src/actions/EmailAction.lua @@ -53,6 +53,7 @@ function _M.listRpc(agent, data) content = email.content, attachments = email.attachments }) + role:mylog("mail_action", {desc = "get_global", key1 = email.title, key2 = email.attachments}) end end end @@ -98,6 +99,7 @@ function _M.drawAllAttachRpc(agent, data) for key, v in pairs(attachments:toNumMap()) do reward[key] = (reward[key] or 0) + v end + role:mylog("mail_action", {desc = "draw_attach", int1 = email:getProperty("emailId"), key1 = email:getProperty("title"), key2 = attachments}) end end reward, change = role:award(reward, {log = {desc = "draw_attach"}}) @@ -123,7 +125,7 @@ function _M.drawAttachRpc(agent, data) email:setProperty("status", 2) email:log(role, 2) SendPacket(actionCodes.Email_drawAttachRpc, MsgPack.pack({reward = reward, change = change})) - + role:mylog("mail_action", {desc = "draw_attach", int1 = id, key1 = email:getProperty("title"), key2 = attachments}) return true end @@ -140,6 +142,7 @@ function _M.checkRpc(agent, data) email:setProperty("status", 1) email:log(role, 1) + role:mylog("mail_action", {desc = "check_mail", int1 = id}) SendPacket(actionCodes.Email_checkRpc, '') return true @@ -175,6 +178,9 @@ function _M.delRpc(agent, data) end end end) + for delId, _ in ipairs(result) do + role:mylog("mail_action", {desc = "del_mail", int1 = delId}) + end SendPacket(actionCodes.Email_delRpc, MsgPack.pack({result = result})) return true end diff --git a/src/actions/FriendAction.lua b/src/actions/FriendAction.lua index 335ca92..9666706 100644 --- a/src/actions/FriendAction.lua +++ b/src/actions/FriendAction.lua @@ -111,6 +111,7 @@ function _M.searchRpc(agent, data) })) end + role:mylog("role_action", {desc = "searchFriend"}) SendPacket(actionCodes.Friend_searchRpc, MsgPack.pack({searchList = searchList})) return true end @@ -177,6 +178,8 @@ function _M.applyRpc(agent, data) myInfo.online = true myInfo.hadApply = true + role:mylog("role_action", {desc = "addFriend", int1 = 1}) + rpcRole(objectId, "SendPacket", actionCodes.Friend_updateProperty, MsgPack.pack({newApply = 1, info = {myInfo}})) -- 通知对方 end @@ -283,6 +286,8 @@ function _M.handleApplyRpc(agent, data) friend_roleid = objectId, -- 好友账户下的角色id friend_cnt = curCount + 1, -- 操作后好友数量 }) + role:mylog("role_action", {desc = "addFriend", int1 = 1}) + end elseif cmd == 0 then -- 不同意 @@ -347,6 +352,8 @@ function _M.handleApplyRpc(agent, data) rpcRole(objectId, "SendPacket", actionCodes.Friend_updateProperty, MsgPack.pack({newFriend = 1, info = {myInfo}})) -- 通知对方 end if next(needAdd) then + role:mylog("role_action", {desc = "addFriend", int1 = #needAdd}) + SendPacket(actionCodes.Friend_updateProperty, MsgPack.pack({newFriend = 1, info = needAddInfo})) else result = 1 @@ -553,6 +560,8 @@ function _M.pointRpc(agent, data) role.dailyData:updateProperty({field = "giveFP", value = giveP}) role:checkTaskEnter("GiveFriendP", {count = 1}) rpcRole(objId, "SendPacket", actionCodes.Friend_updateProperty, MsgPack.pack({newPoint = 1, roleId = roleId})) + + role:mylog("role_action", {desc = "giveFPoint", int1 = 1}) end elseif cmd == 2 then -- 领取 local objId = msg.roleId @@ -572,6 +581,7 @@ function _M.pointRpc(agent, data) role.dailyData:updateProperty({field = "getFP", value = getP}) role:checkTaskEnter("GetFriendP", {count = 1}) + role:mylog("role_action", {desc = "getFPoint", int1 = 1}) end elseif cmd == 3 then -- 一键赠送领取 -- 赠送 @@ -593,6 +603,8 @@ function _M.pointRpc(agent, data) role.dailyData:updateProperty({field = "giveFP", value = giveP}) role:checkTaskEnter("GiveFriendP", {count = change}) + role:mylog("role_action", {desc = "giveFPoint", int1 = change}) + else result = 1 end @@ -617,6 +629,7 @@ function _M.pointRpc(agent, data) reward = role:award({[ItemId.FriendPoint] = getCount}, {log = {desc = "friendPoint"}}) role.dailyData:updateProperty({field = "getFP", value = getP}) role:checkTaskEnter("GetFriendP", {count = getCount}) + role:mylog("role_action", {desc = "getFPoint", int1 = getCount}) else result = (result or 0) + 2 end diff --git a/src/actions/HeroAction.lua b/src/actions/HeroAction.lua index 10cf120..b05fc55 100644 --- a/src/actions/HeroAction.lua +++ b/src/actions/HeroAction.lua @@ -57,6 +57,7 @@ function _M.levelUpRpc( agent, data ) if hero:getProperty("type") == 103 then role:finishGuide(7) end + hero:mylog({desc = "levelUp", int1 = hero:getProperty("level")}) role:checkTaskEnter("HeroLevelUp", {level = hero:getProperty("level")}) SendPacket(actionCodes.Hero_levelUpRpc, '') @@ -84,6 +85,7 @@ function _M.breakRpc( agent, data ) hero_break_result = getChangeAttrJson(oldAttr, hero:getTotalAttrs()), -- 英雄突破效果,可记录效果ID,或json格式记录提升效果,{攻击:20,闪避:20,……..} hero_break_level = hero:getMaxLevel(), -- 英雄突破后等级上限 }) + hero:mylog({desc = "break", int1 = hero:getProperty("breakL")}) SendPacket(actionCodes.Hero_breakRpc, '') return true @@ -114,6 +116,7 @@ function _M.wakeRpc(agent, data) if curLevel == 4 then -- 解锁cg role:checkTaskEnter("WakeCG", {heroType = typ}) end + hero:mylog({desc = "wake", int1 = hero:getProperty("wakeL")}) role:log("hero_rise", { hero_id = typ, --英雄ID @@ -199,6 +202,7 @@ function _M.talentRpc(agent, data) hero_talent_levelbef = oldSkillLv, -- 英雄技能升级前等级 hero_talent_level = hero:getSkillLevel(1), -- 英雄技能升级后等级 }) + hero:mylog({desc = "talent", int1 = index, int2 = talent:getv(index, 0)}) SendPacket(actionCodes.Hero_talentRpc, '') return true @@ -691,6 +695,7 @@ function _M.getResetRewardRpc(agent, data) equip = "", rune = "", }) + hero:mylog({desc = "resetHero"}) for itemId, count in pairs(reward) do reward[itemId] = math.floor(count * globalCsv.unit_back_discount) @@ -949,6 +954,7 @@ function _M.repayHeroRpc(agent, data) role:award({[id] = 1}, {log = {desc = "heroRepay"}}) reward = {id = id, count = 1} end + role:mylog("hero_action", {desc = "heroRepay", int1=result}) SendPacket(actionCodes.Hero_repayHeroRpc, MsgPack.pack({reward = reward})) return true end @@ -980,7 +986,7 @@ function _M.unlockPoolRpc(agent, data) role.dailyData:updateProperty({field="unlockPool", value = unlockPool}) role.dailyData:updateProperty({field="curPool", value = type}) - --role:log("hero_action", {desc = "unlockPool", int1=type}) + role:mylog("hero_action", {desc = "unlockPool", int1=type}) SendPacket(actionCodes.Hero_unlockPoolRpc, MsgPack.pack({})) return true end diff --git a/src/actions/PvpAction.lua b/src/actions/PvpAction.lua index aa52fdb..f0d18c1 100644 --- a/src/actions/PvpAction.lua +++ b/src/actions/PvpAction.lua @@ -296,6 +296,9 @@ function _M.startBattleRpc(agent, data) _pvpStartBattleCacheC = {idx = idx, key = key, revenge = revenge} role:checkTaskEnter("PvpBattle") + + + role:mylog("pvp_action", {desc = "startBattle", short1 = 1, int1 = revenge and 1 or 0}) end SendPacket(actionCodes.Pvp_startBattleRpc, MsgPack.pack({matchInfo = matchInfo, key = key, result = result, wait = wait})) @@ -393,6 +396,7 @@ function _M.endBattleRpc(agent, data) reward = reward, rank = myRank, }) + role:mylog("pvp_action", {desc = "battleEnd", short1 = 1, int1 = isWin and 1 or 0, int2 = revenge and 1 or 0}) _pvpBattleInfoCacheC = {} --重新发阵容了 没毛病 _pvpRecordInfoCacheC = {} -- 记录刷新了 @@ -525,6 +529,8 @@ function _M.startBattleHRpc(agent, data) role:checkTaskEnter("PvpBattle") + role:mylog("pvp_action", {desc = "startBattle", short1 = 2, int1 = revenge and 1 or 0}) + end SendPacket(actionCodes.Pvp_startBattleHRpc, MsgPack.pack({ @@ -707,7 +713,8 @@ function _M.endBattleHRpc(agent, data) if isWin then role:checkTaskEnter("PvpWin", {score = myScore}) end - + role:mylog("pvp_action", {desc = "battleEnd", short1 = 2, int1 = isWin and 1 or 0, int2 = revenge and 1 or 0}) + SendPacket(actionCodes.Pvp_endBattleHRpc, MsgPack.pack({ reward = reward, change = change, @@ -855,6 +862,7 @@ function _M.highDivisionGiftRpc(agent, data) }) local reward, change = role:award(newReward, {log = {desc = "pvpDivisionH"}}) + role:mylog("pvp_action", {desc = "pvpDivisionH"}) SendPacket(actionCodes.Pvp_highDivisionGiftRpc, MsgPack.pack(role:packReward(reward, change))) return true @@ -889,6 +897,8 @@ function _M.shopBuyRpc(agent, data) end local reward, change = role:award(gift, {log = {desc = "pvpShop", int1 = id, int2 = count}}) + role:mylog("pvp_action", {desc = "pvpShop", int1 = id, int2 = count}) + SendPacket(actionCodes.Pvp_shopBuyRpc, MsgPack.pack(role:packReward(reward, change))) return true end @@ -980,6 +990,7 @@ function _M.crossBetRpc(agent, data) local result, code = role:setCrossServerPvpBet(msg.idx) if not result then return 10 + code end + role:mylog("pvp_action", {desc = "crossBet"}) SendPacket(actionCodes.Pvp_crossBetRpc, MsgPack.pack(result)) return true end diff --git a/src/actions/StoreAction.lua b/src/actions/StoreAction.lua index 5735484..4ef6ff2 100644 --- a/src/actions/StoreAction.lua +++ b/src/actions/StoreAction.lua @@ -260,6 +260,7 @@ function _M.shopBuyRpc(agent , data) shop_purchase_current = costCount or 0, -- 购买道具消耗的货币数量 shop_id = dataSet.shop, -- 商店ID }) + role:mylog("role_action", {desc = desc, int1 = id, int2 = count}) SendPacket(actionCodes.Store_shopBuyRpc, MsgPack.pack({reward = reward})) return true end diff --git a/src/actions/TowerAction.lua b/src/actions/TowerAction.lua index bda2777..dc9af17 100644 --- a/src/actions/TowerAction.lua +++ b/src/actions/TowerAction.lua @@ -75,7 +75,7 @@ function _M.startBattleRpc(agent, data) role:updateProperty({field = "towerInfo", value = towerInfo}) role:checkTaskEnter("TowerBattle", {level = towerInfo.l}) - + role:mylog("tower_action", {desc = "startBattle", int1 = id}) SendPacket(actionCodes.Tower_startBattleRpc, '') return true end @@ -128,6 +128,7 @@ function _M.endBattleRpc(agent, data) reward = reward, rank = rank, }) + role:mylog("tower_action", {desc = "endBattle", short1 = msg.starNum > 0 and 1 or 0, int1 = id}) SendPacket(actionCodes.Tower_endBattleRpc, MsgPack.pack({reward = reward, change = change})) return true @@ -151,7 +152,7 @@ function _M.bugCountRpc(agent, data) towerInfo.c = curCount towerInfo.t = nextTime role:updateProperty({field = "towerInfo", value = towerInfo}) - + role:mylog("tower_action", {desc = "bugCount"}) SendPacket(actionCodes.Tower_bugCountRpc, '') return true end diff --git a/src/adv/Adv.lua b/src/adv/Adv.lua index 09e7eb9..ffeeb2d 100644 --- a/src/adv/Adv.lua +++ b/src/adv/Adv.lua @@ -24,6 +24,17 @@ function Adv:ctor(owner) self:initByInfo(self.owner:getProperty("advInfo")) end +function Adv:mylog(contents) + contents = contents or {} + if contents["cint1"] or contents["cint2"] or contents["cint3"] then + print("advLog error log have cint1 or cint2 or cint3 ", debug.traceback()) + end + contents["cint1"] = self.chapterId + contents["cint2"] = self.level + + self.owner:mylog("adv_action", contents) +end + --初始化adv 信息 function Adv:initByInfo(advInfo) if not next(advInfo) then return end --还没有 开始新地图 @@ -498,18 +509,18 @@ function Adv:awardArtifact(id, params) self:checkAchievement(Adv.AchievType.GetMWeapon, 1, id) - -- if params.log then - -- local log = clone(params.log) - -- if log["cint1"] or log["cint2"] or log["cint3"] then - -- print("awardArtifact error log have cint1 or cint2 or cint3 ", debug.traceback()) - -- end - -- log["cint1"] = self.chapterId - -- log["cint2"] = self.level - -- log["cint3"] = id - -- self.owner:log("in_artifact", log) - -- else - -- print("awardArtifact no log ", debug.traceback()) - -- end + if params.log then + local log = clone(params.log) + if log["cint1"] or log["cint2"] or log["cint3"] then + print("awardArtifact error log have cint1 or cint2 or cint3 ", debug.traceback()) + end + log["cint1"] = self.chapterId + log["cint2"] = self.level + log["cint3"] = id + self.owner:mylog("in_artifact", log) + else + print("awardArtifact no log ", debug.traceback()) + end if not params.isChoose then self:pushBackEvent(AdvBackEventType.Artifact, {id = id}) end @@ -598,6 +609,7 @@ function Adv:wearArtifact(slot, id) else id = nil end + self:mylog({desc = "wearArtifact", int1 = id}) self.owner:changeUpdates({{type = "advAFWear", field = slot, value = id}}) return true @@ -656,6 +668,9 @@ function Adv:artifactLevelUp(id, level) end if newLv == advAFGet[id] then return end + self:mylog({desc = "artifactLevelUp", int1 = id, int2 = level}) + + local status = 0 if curWear[id] then -- 穿着呢 local oldData = csvdb["adv_artifactCsv"][id][advAFGet[id]] @@ -700,6 +715,8 @@ function Adv:chooseArtifact(index) if not self.waitArtifact or not self.waitArtifact[index] then return end self:award({[self.waitArtifact[index]] = 1}, {log = {desc = "chooseArtifact"}, isChoose = true}) + self:mylog({desc = "chooseArtifact", int1 = self.waitArtifact[index]}) + self.waitArtifact = nil -- 支援效果继续选择 @@ -796,6 +813,8 @@ function Adv:over(success, rewardRatio, overType) end self:clearAdvUnlockCache() + self:mylog({desc = "over", short1 = success and 1 or 0, int1 = overType}) + local chapterId = self.chapterId self:clear() self.owner:checkTaskEnter("AdvScore", {score = score}) @@ -902,24 +921,23 @@ function Adv:award(gift, params) if itemId == 16 and not self.owner:checkOverGuide(51,4) then self.owner:saveGuide(51,4) end - - -- if params.log then - -- local log = clone(params.log) - -- if log["cint1"] or log["cint2"] or log["cint3"] or log["long1"] then - -- print("addAdvItem error log have cint1 or cint2 or cint3 ", debug.traceback()) - -- end - -- log["cint1"] = itemId - -- log["cint2"] = math.abs(count) - -- log["cint3"] = self.chapterId - -- log["long1"] = self.level - -- if count >= 0 then - -- self.owner:log("in_adv", log) - -- else - -- self.owner:log("out_adv", log) - -- end - -- else - -- print("addAdvItem no log ", debug.traceback()) - -- end + if params.log then + local log = clone(params.log) + if log["cint1"] or log["cint2"] or log["cint3"] or log["long1"] then + print("addAdvItem error log have cint1 or cint2 or cint3 ", debug.traceback()) + end + log["cint1"] = itemId + log["cint2"] = math.abs(count) + log["cint3"] = self.chapterId + log["long1"] = self.level + if count >= 0 then + self.owner:mylog("in_adv", log) + else + self.owner:mylog("out_adv", log) + end + else + print("addAdvItem no log ", debug.traceback()) + end end end if items ~= oldItems then @@ -1013,6 +1031,7 @@ local function clickOut(self, room, block, params, isExit) isRelay = true, }) else + self:mylog({desc = "pass"}) self:initByChapter({ chapterId = self.chapterId, level = self.level + 1, diff --git a/src/adv/AdvTask.lua b/src/adv/AdvTask.lua index 422a656..2971436 100644 --- a/src/adv/AdvTask.lua +++ b/src/adv/AdvTask.lua @@ -376,6 +376,7 @@ function AdvTask.bind(Adv) else if (status or -1) >= data.value1 then status = -1 + self.owner:mylog("adv_action", {desc = "finishAchiev", short1 = 1, int1 = self.chapterId, int2 = taskId}) end if status and status ~= oldStatus then insertChange(self, self.chapterId, taskId, status) diff --git a/src/agent.lua b/src/agent.lua index 2796c90..2b37c5d 100644 --- a/src/agent.lua +++ b/src/agent.lua @@ -285,6 +285,7 @@ function CMD.close() local role = agentInfo.role if not role then return end role:log("onLogout", {logtime = skynet.timex()-role:getProperty("ltime")}) + role:mylog("logout", {int1 = skynet.timex()-role:getProperty("ltime")}) role:onOfflineEvent() end diff --git a/src/models/HeroPlugin.lua b/src/models/HeroPlugin.lua index bf55503..94c20f3 100644 --- a/src/models/HeroPlugin.lua +++ b/src/models/HeroPlugin.lua @@ -3,7 +3,7 @@ local HeroPlugin = {} function HeroPlugin.bind(Hero) - function Hero:log(contents) + function Hero:mylog(contents) contents = contents or {} if contents["cint1"] or contents["cint2"] or contents["cint3"] then print("heroLog error log have cint1 or cint2 or cint3 ", debug.traceback()) @@ -11,7 +11,7 @@ function HeroPlugin.bind(Hero) contents["cint1"] = self:getProperty("id") contents["cint2"] = self:getProperty("type") - self.owner:log("hero_action", contents) + self.owner:mylog("hero_action", contents) end function Hero:getMaxLevel() diff --git a/src/models/RoleLog.lua b/src/models/RoleLog.lua index 17c802b..a778de5 100644 --- a/src/models/RoleLog.lua +++ b/src/models/RoleLog.lua @@ -1,4 +1,5 @@ -local server_id = (skynet.getenv("serverType") or "localtest") .. "_" .. skynet.getenv("servId") +local serverId = skynet.getenv("servId") +local server_id = (skynet.getenv("serverType") or "localtest") .. "_" .. serverId --[[ 100 购买/兑换行为 @@ -198,10 +199,9 @@ local MethodType = { mission_strength = true, -- 消耗的体力或次数 mission_score = true, -- 本局分数,PVP玩法记录为对战后积分,无得分的填0 mission_cleartype = true, -- 1正常通关;2代理拾荒 - mission_rank = true, -- 对战后排名,适用于PVP玩法和电波塔,其他玩法留空 + mission_rank = "auto", -- 对战后排名,适用于PVP玩法和电波塔,其他玩法留空 misson_monsterkill = "json", -- 击杀怪物ID和数量,建议使用json格式记录。示例:{ "XX": "1", "XXX": "3"} misson_teamskill = "json", -- 编队支援技能和技能等级情况,json格式记录,{"teamskill1":1,"teamskill2":2,………..} - misson_teambond = "json", -- 编队羁绊和羁绊等级,json格式记录,{"bondid1":1,"bondid2":2,………..} }, residence_reward = { --玩家挂机或排名奖励 mission_threadid = true, --大关卡ID @@ -465,6 +465,178 @@ local function getBaseLog(self) end +-- logType +local LogType = { + create = "common", + login = "common", + logout = "common", + guide = "common", + + in_item = "common", + out_item = "common", + in_diamond = "common", + out_diamond = "common", + in_hero = "common", + out_hero = "common", + in_equip = "common", + out_equip = "common", + in_rune = "common", + out_rune = "common", + player_exp = "common", + func_open = "common", + in_adv = "common", + out_adv = "common", + in_artifact = "common", + + mail_action = "common", + role_action = "common", + hang_action = "common", + hero_action = "common", + adv_action = "common", + rune_action = "common", + pvp_action = "common", + diner_action = "common", + tower_action = "common", + gm_action = "common", + act_action = "common", +} + +-- 如要修改 要提前修改 _template mapping -- 对应 mapping 为 gamelog-* +local Mapping = { + -- 预留一些数据格式 担心integer 范围不够用 将 通用的int* 全部换为long + common = { + desc = "keyword",--索引的短字符串 + ucode = "keyword",--关联日志对应ucode + key1 = "keyword", --可索引的短字符串 + key2 = "keyword", --可索引的短字符串 + -- 几乎不用的长文本 + text1 = "text", --长字符串不索引的类型 + -- 五个不同类型的数字 基本上满足数量要求 尽量从低到高用 + short1 = "short", + int1 = "long", + int2 = "long", + long1 = "long", + float1 = "float", + + -- 底层使用的 一些参数 + cint1 = "long", + cint2 = "long", + cint3 = "long", + } +} + +-- 所有的日志都包括的部分 role 里面的信息 -- mapping 信息在 gamelog-role +local commonRoleField = { + name = "keyword", + id = "integer", + uid = "keyword", + sid = "short", + device = "keyword", + ctime = "integer", + ltime = "integer", + level = "short", + rmbC = "integer", +} + +local function checkType(logType, field, value, ctype) + local typecheckfunc = { + keyword = function() + --长度不超过256 + if type(value) ~= "string" then + value = tostring(value) + printError(string.format("LOG ERROR: logType [%s] field [%s] isn't [keyword], value : %s", logType, field, value)) + else + if #value > 256 then + printError(string.format("LOG ERROR: logType [%s] field [%s] [keyword] type to long. value : %s", logType, field, value)) + end + end + return value + end, + text = function() + if type(value) ~= "string" then + value = tostring(value) + printError(string.format("LOG ERROR: logType [%s] field [%s] isn't [text], value : %s", logType, field, value)) + end + return value + end, + integer = function() + if type(value) ~= "number" then + value = tonumber(value) + printError(string.format("LOG ERROR: logType [%s] field [%s] isn't [integer], value : %s", logType, field, value)) + end + if value then + if math.type(value) ~= "integer" then + local oldValue = value + value = math.floor(value) + if value ~= oldValue then + printError(string.format("LOG ERROR: logType [%s] field [%s] isn't [integer], is float, value : %s", logType, field, value)) + end + end + if -2147483648 > value or value > 2147483647 then + printError(string.format("LOG ERROR: logType [%s] field [%s] isn't [integer], too big, value : %s", logType, field, value)) + value = nil + end + end + return value + end, + short = function() + if type(value) ~= "number" then + value = tonumber(value) + printError(string.format("LOG ERROR: logType [%s] field [%s] isn't [short], value : %s", logType, field, value)) + end + if value then + if math.type(value) ~= "integer" then + local oldValue = value + value = math.floor(value) + if value ~= oldValue then + printError(string.format("LOG ERROR: logType [%s] field [%s] isn't [short], is float, value : %s", logType, field, value)) + end + end + + if -32768 > value or value > 32768 then + printError(string.format("LOG ERROR: logType [%s] field [%s] isn't [short], too big, value : %s", logType, field, value)) + value = nil + end + end + return value + end, + long = function() + if type(value) ~= "number" then + value = tonumber(value) + printError(string.format("LOG ERROR: logType [%s] field [%s] isn't [long], value : %s", logType, field, value)) + end + if value then + if math.type(value) ~= "integer" then + local oldValue = value + value = math.floor(value) + if type(value) ~= "integer" then + printError(string.format("LOG ERROR: logType [%s] field [%s] isn't [long], too big, value : %s", logType, field, value)) + value = nil + elseif value ~= oldValue then + printError(string.format("LOG ERROR: logType [%s] field [%s] isn't [long], is float, value : %s", logType, field, value)) + end + end + end + return value + end, + float = function() + if type(value) ~= "number" then + value = tonumber(value) + printError(string.format("LOG ERROR: logType [%s] field [%s] isn't [float], value : %s", logType, field, value)) + end + return value + end, + } + + if typecheckfunc[ctype] then + return typecheckfunc[ctype]() + else + printError(string.format("LOG ERROR: logType [%s] field [%s] have a new type [%s] need add check.", logType, field, ctype)) + return nil + end +end + + local RoleLog = {} function RoleLog.bind(Role) @@ -493,13 +665,14 @@ function RoleLog.bind(Role) if not contents[field] then if tag == "ucode" then contents[field] = self:getActionUcode() + elseif tag == "auto" then else printError(string.format("LOG ERROR: logType [%s] lose field [%s].", logType, field)) end end end if not logd then return end - pcall(skynet.send, logd, "lua", "log", doc) + pcall(skynet.send, logd, "lua", "log", doc, "bi") end function Role:logItems(itemId, before, after, log) @@ -530,6 +703,38 @@ function RoleLog.bind(Role) }) end + function Role:mylog(logType, contents) + contents = contents or {} + local _logType = LogType[logType] + if not _logType then + printError(string.format("LOG ERROR: new logType [%s] need Add Maping.", logType)) + return + end + local doc = {} + for field, ctype in pairs(commonRoleField) do + if contents[field] then + printError(string.format("LOG ERROR: logType [%s] had field [%s] overwrite default.", logType, field)) + end + doc[field] = checkType("commonRoleField", field, self:getProperty(field), ctype) + end + + local mapping = Mapping[_logType] + if mapping["ucode"] and not contents["ucode"] then + contents["ucode"] = self:getActionUcode() + end + for field, value in pairs(contents) do + local ftype = mapping[field] + if ftype then + doc[field] = checkType(logType, field, value, ftype) + else + printError(string.format("LOG ERROR: logType [%s] have new field [%s] no type in mapping.", logType, field)) + end + end + doc["@type"] = logType + if not logd then return end + pcall(skynet.send, logd, "lua", "log", doc, "log") + end + function Role:startActionUcode() if not self._uniqueCount then @@ -550,5 +755,6 @@ function RoleLog.bind(Role) end + end return RoleLog \ No newline at end of file diff --git a/src/models/RolePlugin.lua b/src/models/RolePlugin.lua index f166389..2f57280 100644 --- a/src/models/RolePlugin.lua +++ b/src/models/RolePlugin.lua @@ -235,7 +235,22 @@ function RolePlugin.bind(Role) else print("addPlayExp no log ", debug.traceback()) end + end + + if params.log then + local log = params.log + if log["cint1"] or log["cint2"] then + print("addPlayExp error log have cint1 or cint2 or cint3", debug.traceback()) + end + + log["cint1"] = addExp + log["cint2"] = newExp + log["cint3"] = level + + self:mylog("player_exp", log) + else + print("addPlayExp no log ", debug.traceback()) end self:updateProperties({level = level, exp = newExp}) @@ -259,6 +274,21 @@ function RolePlugin.bind(Role) end self:logItems(params.itemId, origin, nums, params.log) + if params.log then + local log = params.log + if log["cint1"] or log["cint2"] then + print("addItem error log have cint1 or cint2 ", debug.traceback()) + end + log["cint1"] = params.itemId + log["cint2"] = math.abs(params.count) + if params.count <= 0 then + self:mylog("out_item", log) + else + self:mylog("in_item", log) + end + else + print("addItem no log ", debug.traceback()) + end self:setProperty("items", items) if not params.notNotify then @@ -329,11 +359,22 @@ function RolePlugin.bind(Role) end self:logItems(ItemId.Diamond, origin, count, params.log) + if params.log then + local log = params.log + if log["cint1"] or log["cint2"] or log["cint3"] then + print("costDiamond error log have cint1 or cint2 or cint3 ", debug.traceback()) + end + log["cint1"] = origin + log["cint2"] = count + self:mylog("in_diamond", log) + else + print("gainDiamond no log ", debug.traceback()) + end + self:notifyUpdateProperty("diamond", self:getAllDiamond()) return true end - function Role:costDiamond(params) if not params or type(params) ~= "table" then return false end local count = tonum(params.count) @@ -368,6 +409,17 @@ function RolePlugin.bind(Role) self:logItems(ItemId.Diamond, origin, count, params.log) + if params.log then + local log = params.log + if log["cint1"] or log["cint2"] or log["cint3"] then + print("costDiamond error log have cint1 or cint2 or cint3 ", debug.traceback()) + end + log["cint1"] = origin + log["cint2"] = count + self:mylog("out_diamond", log) + else + print("costDiamond no log ", debug.traceback()) + end self:notifyUpdateProperty("diamond", self:getAllDiamond()) return true @@ -406,6 +458,17 @@ function RolePlugin.bind(Role) self:logItems(heroType + ItemStartId.Hero, 0, 1, params.log) + if params.log then + local log = params.log + if log["cint1"] or log["cint2"] or log["cint3"] then + print("addHero error log have cint1 or cint2 or cint3 ", debug.traceback()) + end + log["cint1"] = heroId + log["cint2"] = heroType + self:mylog("in_hero", log) + else + print("addHero no log ", debug.traceback()) + end return true, newHero end @@ -516,6 +579,22 @@ function RolePlugin.bind(Role) self:setProperty("equips", equips) self:logItems(equipCsv.id, oldCount, curCount, pms.log) + if pms.log then + local log = pms.log + if log["cint1"] or log["cint2"] or log["cint3"] then + print("addEquip error log have cint1 or cint2 or cint3 ", debug.traceback()) + end + log["cint1"] = equipType + log["cint2"] = equipLv + log["cint3"] = math.abs(count) + if count < 0 then + self:mylog("out_equip", log) + else + self:mylog("in_equip", log) + end + else + print("addEquip no log ", debug.traceback()) + end if not pms.notNotify then self:changeUpdates({{type = "equips", field = {equipType, equipLv}, value = curCount, isOnlyToC = true}}) -- 通知客户端 @@ -576,6 +655,20 @@ function RolePlugin.bind(Role) self:checkTaskEnter("AddRune", {id = params.id, type = params.type, rarity = data.rarity}, params.notNotify) self:logItems(params.id, 0, 1, params.log) + if params.log then + local log = params.log + if log["cint1"] or log["cint2"] or log["cint3"] then + print("addRune error log have cint1 or cint2 or cint3 ", debug.traceback()) + end + + log["cint1"] = runeUid + log["cint2"] = params.type + log["cint3"] = params.id + + self:mylog("in_rune", log) + else + print("addRune no log ", debug.traceback()) + end return 0, newRune else @@ -592,6 +685,20 @@ function RolePlugin.bind(Role) if rune and rune:getProperty("refer") == 0 then self:logItems(rune:getProperty("id"), 1, 0, params.log) + if params.log then + local log = params.log + if log["cint1"] or log["cint2"] or log["cint3"] then + print("delRunes error log have cint1 or cint2 or cint3 ", debug.traceback()) + end + + log["cint1"] = runeId + log["cint2"] = rune:getProperty("type") + log["cint3"] = rune:getProperty("id") + + self:mylog("out_rune", log) + else + print("delRunes no log ", debug.traceback()) + end self.runeBag[runeId] = nil table.insert(bDel, runeId) @@ -838,6 +945,19 @@ function RolePlugin.bind(Role) count = count or 1 self:logItems(func, 0, count, params.log) + if params.log then + local log = params.log + if log["cint1"] or log["cint2"] or log["cint3"] then + print("funcOpen error log have cint1 or cint2 or cint3 ", debug.traceback()) + end + + log["cint1"] = func + log["cint2"] = count + + self:mylog("func_open", log) + else + print("funcOpen no log ", debug.traceback()) + end if csvdb["itemCsv"][func] and csvdb["itemCsv"][func].type == ItemType.FuncOpen then local unlockData = csvdb["unlockCsv"][func] @@ -1393,7 +1513,10 @@ function RolePlugin.bind(Role) local order_type = self:getProperty("rmbC") > 0 and 0 or 1 local status, reward = self:recharge({ - id = rechargeId + id = rechargeId, + transactionId = params.transactionId, + pay_time = params.pay_time, + order = partnerOrderStr, }) orderObject:setProperty("finishTime", skynet.time()) orderObject:setProperty("status", "finish") @@ -1466,6 +1589,8 @@ function RolePlugin.bind(Role) -- 累充 local rmb = rechargeData.rmb self:updateProperty({field = "rmbC", delta = rmb}) + + self:mylog("role_action", {desc = "recharge", int1 = id, int2 = rmb, key1 = params.transactionId, key2 = params.order, long1 = params.pay_time}) return nil, reward end @@ -1513,6 +1638,7 @@ function RolePlugin.bind(Role) end self:updateProperty({field = "funcGuide", value = funcGuide}) self:log("onGuidePoint", {guild_type = 0, guild_id = master, guild_point = slave, guild_pass = 0}) + self:mylog("guide", {desc = "guide_new",int1 = master*1000+slave}) newerGuide = string.format("%d=%d",master,slave) self:updateProperty({field = "newerGuide", value = newerGuide}) diff --git a/src/models/Rune.lua b/src/models/Rune.lua index 98ccc16..fb39fe4 100644 --- a/src/models/Rune.lua +++ b/src/models/Rune.lua @@ -26,16 +26,16 @@ function Rune:notifyUpdateProperty(field, newValue, oldValue) self:notifyUpdateProperties(datas) end -function Rune:log(contents) - -- contents = contents or {} - -- if contents["cint1"] or contents["cint2"] or contents["cint3"] then - -- print("heroLog error log have cint1 or cint2 or cint3 ", debug.traceback()) - -- end - -- contents["cint1"] = self:getProperty("uid") - -- contents["cint2"] = self:getProperty("type") - -- contents["cint3"] = self:getProperty("id") +function Rune:mylog(contents) + contents = contents or {} + if contents["cint1"] or contents["cint2"] or contents["cint3"] then + print("heroLog error log have cint1 or cint2 or cint3 ", debug.traceback()) + end + contents["cint1"] = self:getProperty("uid") + contents["cint2"] = self:getProperty("type") + contents["cint3"] = self:getProperty("id") - -- self.owner:log("rune_action", contents) + self.owner:mylog("rune_action", contents) end function Rune:notifyUpdateProperties(params) diff --git a/src/services/agent_ctrl.lua b/src/services/agent_ctrl.lua index ec26a98..44a5ab2 100644 --- a/src/services/agent_ctrl.lua +++ b/src/services/agent_ctrl.lua @@ -128,7 +128,7 @@ function _M:check_agent_status() next_log_time = now + 60 local count = table_nums(self.u2f) datacenter.set("onlineCount", count) - -- pcall(skynet.send, logd, "lua", "log", "online", {count = count}, "online") + pcall(skynet.send, logd, "lua", "log", {["@type"] = "online", count = count}, "log") end end diff --git a/src/services/logd.lua b/src/services/logd.lua index 45ecb31..be95bbd 100644 --- a/src/services/logd.lua +++ b/src/services/logd.lua @@ -13,8 +13,37 @@ local pairs = pairs local ipairs = ipairs local string_format = string.format +local logId = 0 local CMD, cs = {} -local log_fd, connecting = nil , false + +local logHandle = { + bi = { + host = "127.0.0.1", + port = 13001, + }, + log = { + host = "127.0.0.1", + port = 13002, + handle = function(doc) + -- 注入字段 + local now = skynet.timex() + doc["time"] = now + doc["timestamp"] = now + doc["server"] = serverId + doc["game_name"] = "wasteland" + doc["env"] = "cb" + doc["game_name_type"] = "guaji" + doc["log_id"] = "wastelandC" .. logId .. "S" .. serverId .. "T" .. now + logId = (logId + 1) % 10000000 + end + }, +} + +local connect_relation = {} +local function getConInfo(fd) + return logHandle[connect_relation[fd] or ""] +end + local socket_message = {} @@ -27,20 +56,30 @@ end -- SKYNET_SOCKET_TYPE_CONNECT = 2 socket_message[2] = function(id, _ , addr) + local cur = getConInfo(id) skynet.error("LOG SOCKET: connect: ", addr) - connecting = false + cur.connected = true + cur.connecting = false end -- SKYNET_SOCKET_TYPE_CLOSE = 3 socket_message[3] = function(id) skynet.error("LOG SOCKET: closed") - connecting = false + local cur = getConInfo(id) + if not cur then return end + cur.connected = false + cur.connecting = false + connect_relation[id] = nil end -- SKYNET_SOCKET_TYPE_ERROR = 5 socket_message[5] = function(id, _, err) skynet.error("LOG SOCKET: error: ", err) - connecting = false + local cur = getConInfo(id) + if not cur then return end + cur.connected = false + cur.connecting = false + connect_relation[id] = nil end @@ -55,18 +94,33 @@ skynet.register_protocol { end } -function CMD.log(doc) - if not socketdriver.send(log_fd, json.encode(doc) .. "\n") then - if not connecting then - CMD.open() -- 连一下试试 - socketdriver.send(log_fd, json.encode(doc) .. "\n") +function CMD.log(doc, logTo) + logTo = logTo or "log" + local cur = logHandle[logTo] + if not cur then + print("error log to ", logTo) + end + if cur.handle then + cur.handle(doc) + end + if cur.connected and cur.fd then + socketdriver.send(cur.fd, json.encode(doc) .. "\n") + else + -- 断线会丢失一部分日志 + if not cur.connecting then + CMD.open() -- 连一下 end end end function CMD.open() - log_fd = socketdriver.connect("127.0.0.1", 13001) - connecting = true + for logTo, data in pairs(logHandle) do + if not data.connecting and not data.connected then + data.connecting = true + data.fd = socketdriver.connect(data.host, data.port) + connect_relation[data.fd] = logTo + end + end end local function __init__() @@ -75,8 +129,8 @@ local function __init__() if command == "open" then skynet.ret(skynet.pack(f(...))) else - local logType, doc, index_suffix = ... - cs(function() f(logType, doc, index_suffix) end) + local doc, logTo = ... + cs(function() f(doc, logTo) end) end end) cs = queue() -- libgit2 0.21.2