| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915 |
- local ProtocalDataNormal = {}
- local SkillData = require('SkillData')
- --- 协议数据格式化成lua自己的格式(角色用于表现的数据,头发,眼睛,头发颜色,时装)
- function ProtocalDataNormal.FashionDataToViewData(serverFashionData)
- if serverFashionData == nil then return nil end
- local viewData = {}
- viewData.eye = serverFashionData.eye
- viewData.hairColor = serverFashionData.hair
- viewData.hair = serverFashionData.hair_avatar
- viewData.fashionData = ProtocalDataNormal.FashionUpDataToData(serverFashionData.fashion_up_list)
- return viewData
- end
- --- 更新表现数据 把newViewData赋值给oldViewData
- function ProtocalDataNormal.UpdateViewData(oldViewData, newViewData)
- if newViewData.eye then oldViewData.eye = newViewData.eye end
- if newViewData.hairColor then oldViewData.hairColor = newViewData.hairColor end
- if newViewData.hair then oldViewData.hair = newViewData.hair end
- if newViewData.fashionData then oldViewData.fashionData = newViewData.fashionData end
- end
- --- 协议数据格式化成lua自己的格式(角色身上装备的时装数据)
- function ProtocalDataNormal.FashionUpDataToData(fashionUpData)
- local fashionData = {}
- for _, value in pairs(fashionUpData) do
- local fashionCfg = ManagerContainer.CfgMgr:GetFashionById(value)
- if fashionCfg then
- fashionData[fashionCfg.FashionLocation] = value
- end
- end
- return fashionData
- end
- function ProtocalDataNormal.ParseFightPowerData(message)
- local data = {}
- data.totalFightpower = message.total_fightpower
- data.slotFightpower = {}
- for _,v in pairs(message.slot_fightpower) do
- data.slotFightpower[v.key] = v.value
- end
- return data
- end
- function ProtocalDataNormal.ParseBattleBoxData(message)
- local data = {}
- data.id = message.id
- data.boxId = message.box_id
- data.coolTime = message.cool_time
- data.heroCoolList = message.hero_cool_list
- data.state = message.state
- return data
- end
- --TASK_REWARD_STATE_NONE = 0 //未完成
- --TASK_REWARD_STATE_COMPLETED = 1 //任务完成未领取奖励
- --TASK_REWARD_STATE_REWARD = 2 //已经领取奖励
- --
- --TASK_CONDITION_NONE = 4
- --TASK_CONDITION_CHANGE = 5
- --TASK_CONDITION_OK = 6
- function ProtocalDataNormal.ParseTaskData(message)
- local data = {}
- data.taskId = message.task_id
- data.progress = message.progress
- data.state = message.state
- data.begin_time = message.beginTime
- return data
- end
- function ProtocalDataNormal.ParseTaskDataList(message)
- local list = nil
- for k,v in pairs(message) do
- if list == nil then
- list = {}
- end
- local data = ProtocalDataNormal.ParseTaskData(v)
- list[v.task_id] = data
- end
- return list
- end
- function ProtocalDataNormal.ParseRoleTaskData(message)
- if message == nil then return nil end
- local list = {}
- list.condition = {}
- for k,v in pairs(message.condition) do
- local taskList = ProtocalDataNormal.ParseTaskDataList(v.task_list)
- list.condition[v.hero_id] = taskList
- end
- return list
- end
- function ProtocalDataNormal.ParseHeroData(heroData, userData, isMainRole, isRole)
- local baseAttr = SInt.Convert(GlobalConfig.Instance:GetConfigIntValue(GlobalConfig.c_base_attr_id))
- local data = {}
- data.id = heroData.id
- data.configId = heroData.config_id
- data.avatar = heroData.avatar
- data.isBattle = heroData.is_battle
- data.headFrame = heroData.headFrame
- data.baseLevel = heroData.base_level
- data.fightPower = heroData.fight_power
- data.skillData = SkillData:new()
- data.skillData:InitData(heroData.skill)
- data.slot = heroData.slot
- data.advanceLevel = heroData.advance_level or 0
- data.strengthLevel = heroData.strength_level or 0
- data.titleId = heroData.head_id
- data.owned = true --查看别人的信息需要用到的字段,服务器发过来的队友都是获得的
- data.attrs = {[Enum.HeroAttrType.STR] = baseAttr, [Enum.HeroAttrType.AGI] = baseAttr, [Enum.HeroAttrType.INT] = baseAttr,
- [Enum.HeroAttrType.DEX] = baseAttr, [Enum.HeroAttrType.VIT] = baseAttr, [Enum.HeroAttrType.LUK] = baseAttr}
- if userData ~= nil then
- userData.roleCfgId = CommonUtil.JobIdToRoleId(data.configId, userData.gender)
- else
- data.post = ManagerContainer.CfgMgr:GetPartnerDataById(data.configId).PostId
- end
- data.buffs = {}
- if heroData.slot ~= nil and #heroData.slot.slot_list > 0 then
- for k,v in pairs(heroData.slot.slot_list) do
- if #v.card_id_list > 0 then
- for _,v1 in pairs(v.card_id_list) do
- if v1 > 0 then
- local cardData = ManagerContainer.CfgMgr:GetCardDataById(v1)
- if cardData.BUFF and #cardData.BUFF > 0 then
- data.buffs[#data.buffs + 1] = cardData.BUFF
- end
- end
- end
- end
- end
- end
- data.attrList = clone(heroData.attr_list)
- for _,v in pairs(data.attrList) do
- v.value = SInt.Convert(v.value)
- end
- data.attrPoint = SInt.Convert(heroData.attr_point)
- data.isMainRole = isMainRole
- data.isRole = isRole
- data.battlePetId = heroData.battle_pet_id
- data.petFightPower = heroData.pet_fight_power or 0
- data.battle_attr_list = heroData.battle_attr_list
- data.skillEquipSlot = ProtocalDataNormal.ParseSkillEquipSlotData(data.skillEquipSlot, heroData.skill_equip_slot)
- data.petQiyueData = ProtocalDataNormal.ParsePetQiyueData(data.petQiyueData, heroData.pet_qiyue_data)
- return data
- end
- function ProtocalDataNormal.ParsePlayerBriefInfo(briefInfoMessage, userData)
- if userData == nil then userData = {} end
- if briefInfoMessage then
- userData.uid = briefInfoMessage.uid
- userData.nickName = CommonUtil.GetVaildNickName(briefInfoMessage.nick_name)
- userData.headPortraitId = briefInfoMessage.img_id
- userData.gender = briefInfoMessage.gender == 0 and 1 or briefInfoMessage.gender
- userData.level = briefInfoMessage.level
- userData.configId = briefInfoMessage.config_id
- userData.fightPower = briefInfoMessage.fight_power
- userData.onlineState = briefInfoMessage.online_state
- userData.onlineTime = briefInfoMessage.online_time
- userData.towerLevel = briefInfoMessage.tower_level
- userData.towerTime = briefInfoMessage.tower_time
- userData.headFrame = briefInfoMessage.head_frame_id
- userData.vipLv = briefInfoMessage.vip_level
- userData.headPortraitName = CommonUtil.GetPlayerHeadIcon(briefInfoMessage)
- userData.hundredDojoSlogan = briefInfoMessage.daochang100_tips
- userData.roleCfgId = CommonUtil.JobIdToRoleId(userData.configId, userData.gender)
- userData.selectZone = briefInfoMessage.select_zone
- userData.titleId = briefInfoMessage.head_id
- end
- return userData
- end
- function ProtocalDataNormal.ParseRobotHeroData(id, configId, robotCfgData, isMainRole, isRole)
- local baseAttr = SInt.Convert(GlobalConfig.Instance:GetConfigIntValue(GlobalConfig.c_base_attr_id))
- local data = {}
- data.id = id
- data.configId = configId
- data.avatar = robotCfgData.RobotAvatar
- data.isBattle = true
- data.baseLevel = id == 1 and robotCfgData.RobotLevel or robotCfgData.PartnerLevel[id - 1]
- data.attrs = {[Enum.HeroAttrType.STR] = baseAttr, [Enum.HeroAttrType.AGI] = baseAttr, [Enum.HeroAttrType.INT] = baseAttr,
- [Enum.HeroAttrType.DEX] = baseAttr, [Enum.HeroAttrType.VIT] = baseAttr, [Enum.HeroAttrType.LUK] = baseAttr}
- data.strengthLevel = 0
- if id > 1 then
- data.advanceLevel = 0
- end
- data.skills = {}
- -- 和真实玩家一样,对齐技能格式
- local unlockSkillList = {}
- local skillList = {}
- local skill = {job_skill_list = {{unlock_skill_list = unlockSkillList}}, skill_list = skillList}
- if id == 1 then
- for k,v in pairs(robotCfgData.RobotSkill) do
- local skillId = GetMathInteger(v,1000)
- local skillLv = GetMathRemainder(v,1000)
- skillList[#skillList + 1] = {skill_id = skillId, unlock = 1}
- unlockSkillList[#unlockSkillList + 1] = {key = skillId, value = skillLv}
- end
- else
- for k,v in pairs(robotCfgData.PartnerSkill[id - 1]) do
- local skillId = GetMathInteger(v,1000)
- local skillLv = GetMathRemainder(v,1000)
- skillList[#skillList + 1] = {skill_id = skillId, unlock = 1}
- unlockSkillList[#unlockSkillList + 1] = {key = skillId, value = skillLv}
- end
- end
- data.skillData = SkillData:new()
- data.skillData:InitData(skill)
- data.slot = {}
- data.slot.hero_id = id
- data.slot.slot_list = {}
- if id == 1 then
- for i = 1,6 do
- local data1 = {}
- data1.level = 0
- data1.equip_id = robotCfgData.RobotEquip[i]
- data1.card_id_list = {}
- data.slot.slot_list[i] = data1
- end
- else
- for k,v in pairs(robotCfgData.PartnerEquip[id - 1]) do
- local data1 = {}
- data1.level = 0
- data1.equip_id = v
- data1.card_id_list = {}
- data.slot.slot_list[k] = data1
- end
- end
- data.buffs = {}
- data.isMainRole = isMainRole or false
- data.isRole = isRole or false
- data.battlePetId = 0
- data.skillEquipSlot = nil
- return data
- end
- function ProtocalDataNormal.ParseMailContentData(message)
- local data = {}
- data.id = message.id
- data.configId = message.config_id
- data.type = message.type
- data.rewardList = message.reward_list
- data.beginTime = message.begin_time
- data.expireTime = message.expire_time
- data.state = message.state
- data.paramList = message.param_list
- data.title = message.title
- data.content = message.content
-
- return data
- end
- function ProtocalDataNormal.ParseWorldBossContentInfoData(message)
- if not message then return nil end
- local data = {}
- data.cfgId = message.cfg_id
- data.bossId = message.boss_id
- data.bossSummonIdx = message.boss_summon_idx
- data.boss_summon_type = message.boss_summon_type
- data.brief = ProtocalDataNormal.ParsePlayerBriefInfo(message.brief)
- data.fighterNum = message.fighter_num
- data.expireTime = message.expire_time
- data.nextTime = message.next_refresh_time
- data.totalHp = message.total_hp
- data.curHp = message.cur_hp
- data.isFight = message.is_fight
- return data
- end
- function ProtocalDataNormal.ParseWorldBossRandPointInfoData(message)
- if not message then return nil end
- local data = {}
- data.rewardList = message.reward_list
- data.bossId = message.boss_id
- data.bossSummonIdx = message.boss_summon_idx
- return data
- end
- -- 赛季解析
- function ProtocalDataNormal.ParseCompetitionRewardInfo(message)
- if not message then return end
- local data = {}
- data.rewardIdx = message.reward_idx
- data.rewardEndTme = message.reward_end_tme
- data.paramList = message.param_list
- return data
- end
- function ProtocalDataNormal.ParseCompetitionData(message)
- if not message then return nil end
- local data = {}
- data.competitionId = message.competition_id
- data.curEndTime = message.cur_end_time
- data.comParam = message.com_param
- data.nextComScore = message.next_com_score
- data.lastComScore = message.last_com_score
- data.comParamAddTime = message.com_param_add_time
- data.selfRank = message.self_rank
- data.totalRank = message.total_rank
- data.rewardInfoList = {}
- for _,v in pairs(message.reward_info_list) do
- local data1 = ProtocalDataNormal.ParseCompetitionRewardInfo(v)
- data.rewardInfoList[data1.rewardIdx] = data1
- end
-
- if data.rewardInfoList[3] and not data.rewardInfoList[1] then
- local data1 = clone(data.rewardInfoList[3])
- data1.rewardIdx = 1
- data1.rewardEndTme = data1.rewardEndTme - 2 * ManagerContainer.LuaTimerMgr:GetOneDaySeconds()*2000
- data.rewardInfoList[1] = data1
- end
- if data.rewardInfoList[1] and not data.rewardInfoList[2] then
- local data1 = clone(data.rewardInfoList[1])
- data1.rewardIdx = 2
- data1.rewardEndTme = data1.rewardEndTme + ManagerContainer.LuaTimerMgr:GetOneDaySeconds()*2000
- data.rewardInfoList[2] = data1
- end
- if data.rewardInfoList[2] and not data.rewardInfoList[3] then
- local data1 = clone(data.rewardInfoList[2])
- data1.rewardIdx = 3
- data1.rewardEndTme = data1.rewardEndTme + ManagerContainer.LuaTimerMgr:GetOneDaySeconds()*2000
- data.rewardInfoList[3] = data1
- end
- if data.rewardInfoList[3] and not data.rewardInfoList[1] then
- local data1 = clone(data.rewardInfoList[3])
- data1.rewardIdx = 1
- data1.rewardEndTme = data1.rewardEndTme - 2 * ManagerContainer.LuaTimerMgr:GetOneDaySeconds()*2000
- data.rewardInfoList[1] = data1
- end
- return data
- end
- function ProtocalDataNormal.ParseArenaRankInfo(message)
- local data = {}
- data.rank = message.rank
- data.briefInfo = ProtocalDataNormal.ParsePlayerBriefInfo(message.brief_info)
- data.score = message.score
- return data
- end
- function ProtocalDataNormal.ParseSeasonData(message)
- local data = {}
- data.competitionData = ProtocalDataNormal.ParseCompetitionData(message.competition_data)
- data.rankList = {}
- for _,v in pairs(message.rank_list) do
- data.rankList[#data.rankList + 1] = ProtocalDataNormal.ParseArenaRankInfo(v)
- end
- data.nextCompetitionTime = message.next_competition_time
- return data
- end
- function ProtocalDataNormal.ParseChatMessageInfo(message)
- if message == nil then return end
- local data = {}
- data.message = message.message
- local time = message.send_time/1000
- data.sendTime = time
- data.sendTime64 = message.send_time
- data.subType = message.sub_type
- data.used = false
- return data
- end
- function ProtocalDataNormal.ParseChatPlayerBriefInfo(message)
- local data = {}
- data.uid = tostring(message.uid)
- data.nickname = message.nick_name
- data.imgId = CommonUtil.GetPlayerHeadIcon(message)
- data.jobId = message.config_id
- data.level = message.level
- data.headFrameId = message.head_frame_id
- data.sex = message.gender
- data.vipLv = message.vip_level
- data.titleId = message.head_id
- return data
- end
- function ProtocalDataNormal.ParseChatData(message)
- if message == nil then return end
- local data = {}
- data.type = message.type
- data.message = ProtocalDataNormal.ParseChatMessageInfo(message.message)
- data.targetId = tostring(message.target_id)
- data.fromData = ProtocalDataNormal.ParseChatPlayerBriefInfo(message.from_id)
- return data
- end
- function ProtocalDataNormal.ParseSystemMessageData(message)
- if message == nil then return end
- local data = {}
- data.type = message.type
- data.nickname = message.nick_name
- data.paramIds = message.param_id
- local time = message.send_time/1000
- if IsNewLuadll then
- data.sendTime = time
- else
- data.sendTime = #time
- end
-
- data.sendTime64 = message.send_time
- return data
- end
- function ProtocalDataNormal.ParseGMNoticeData(message)
- if message == nil then return end
- local data = {}
- data.content = message.notice_color;
- data.speed = message.notice_speed;
- data.count = message.notice_count;
- data.interval = message.notice_interval;
- return data
- end
- function ProtocalDataNormal.ParseCardHandBook(message)
- if message == nil then return end
- local data = {}
- data.cardId = message.card_id;
- data.cardLevel = message.card_level;
- data.rewardRec = message.reward_rec;
- return data
- end
- function ProtocalDataNormal.ParsePetSkillData(message)
- if message == nil then return end
- local data = {}
- data.cfgId = message.config_id;
- data.level = message.level;
- data.rate = message.rate;
- return data
- end
- function ProtocalDataNormal.ParsePetData(message, data)
- if message == nil then return end
- if not data then
- data = {}
- end
- data.id = message.id;
- data.cfgId = message.config_id;
- data.level = message.level;
- data.advanceLevel = message.advance_level;
- data.heroId = message.hero_id;
- data.isBattle = data.heroId > 0
- data.isRelevant = false
- data.isSupport = false
- data.totalFightPower = 0
- data.pet_svrfight_power = message.pet_fight_power
- data.battle_attr_list = message.battle_attr_list
- data.skillList = {}
- data.totalSkillUpCount = 0
- for _,v in pairs(message.skill_list) do
- local skillData = ProtocalDataNormal.ParsePetSkillData(v)
- data.skillList[#data.skillList + 1] = skillData
- data.totalSkillUpCount = data.totalSkillUpCount + (skillData.level - 1)
- end
- local cfgData = ManagerContainer.CfgMgr:GetPetDataById(data.cfgId)
- data.quality = cfgData.Quality
- data.natureType = cfgData.NatureType
- data.slots = {}
- if message.slot_equip_list then
- for i = 1, #message.slot_equip_list do
- local slotData = message.slot_equip_list[i]
- data.slots[slotData.idx] = {idx = slotData.idx, stampId = slotData.equip_id, stoneIdList = slotData.stone_id_list}
- end
- end
- data.qiyueHeroId = message.qiyue_hero_id
- return data
- end
- function ProtocalDataNormal.ParsePetBondPosData(message)
- if message == nil then return end
- local data = {}
- data.uid = message.owner_uid;
- data.petId = message.pet_id;
- data.cfgId = message.pet_cfg_id;
- data.advanceLevel = message.advance_level
- return data
- end
- function ProtocalDataNormal.ParsePetBondData(message)
- if message == nil then return end
- local data = {}
- data.cfgId = message.bond_cfg_id;
- data.relationPets = {}
- for _,v in pairs(message.bond_list) do
- data.relationPets[#data.relationPets + 1] = ProtocalDataNormal.ParsePetBondPosData(v)
- end
- return data
- end
- function ProtocalDataNormal.ParseAssistData(message)
- if message == nil then return end
- local data = {}
- data.uid = message.owner_uid;
- data.nickname = message.owner_nick_name
- data.supportPets = {}
- for _,v in pairs(message.pet_info_list) do
- data.supportPets[#data.supportPets + 1] = ProtocalDataNormal.ParsePetData(v)
- end
- return data
- end
- function ProtocalDataNormal.ParseCurRoundSign(message)
- if message == nil then return end
- local data = {}
- data.lastSign = message.last_sign;
- return data
- end
- function ProtocalDataNormal.ParseSignUp(message)
- if message == nil then return end
- local data = {}
- data.curDay = message.cur_day;
- data.curSignInfo = ProtocalDataNormal.ParseCurRoundSign(message.cur_sign_info);
- return data
- end
- function ProtocalDataNormal.ParseSignInfo(message)
- if message == nil then return end
- local data = {}
- data.signUp = ProtocalDataNormal.ParseSignUp(message.sign_info);
- data.curSignDay = message.cur_sign_day;
- data.nextSignTime = message.next_sign_time;
- return data
- end
- function ProtocalDataNormal.ParseInvitationTaskData(message)
- if message == nil then return end
- local data = {}
- data.taskId = message.task_id;
- data.progress = message.progress;
- data.rewardedCount = message.rewarded_count;
- data.rewardCount = message.reward_count ;
- data.completeMaxCount = message.complete_max_count
- data.state = Enum.InvitationTaskStateType.NoCompeleted
- if data.rewardedCount == data.rewardCount and data.rewardCount < data.completeMaxCount then
- elseif data.rewardedCount < data.rewardCount then
- data.state = Enum.InvitationTaskStateType.CompletedAndNoReceive
- elseif data.rewardedCount == data.rewardCount and data.rewardCount == data.completeMaxCount then
- data.state = Enum.InvitationTaskStateType.Received
- end
- return data
- end
- function ProtocalDataNormal.ParseInvitationLogData(message)
- if message == nil then return end
- local data = {}
- data.memberNickName = message.member_nick_name;
- data.processTime = message.process_time;
- data.resVal = message.res_val;
- return data
- end
- function ProtocalDataNormal.ParseInvitationMemberValData(message)
- if message == nil then return end
- local data = {}
- data.uid = message.uid;
- data.resVal = message.res_val;
- return data
- end
- function ProtocalDataNormal.ParseRoleInvitation(message)
- if message == nil then return end
- local data = {}
- data.clickNum = message.click_num;
- data.selfInvitationNumber = message.self_invitation_number;
- data.masterUid = message.master_uid;
- data.masterEndTime = message.master_end_time ;
- data.clickMemberList = message.click_member_list
- data.taskList = {}
- if message.task_list then
- for i = 1, #message.task_list do
- local task = ProtocalDataNormal.ParseInvitationTaskData(message.task_list[i])
- --table.insert(data.taskList, task)
- data.taskList[task.taskId] = task
- end
- end
- data.memberUidList = {}
- if message.member_uid_list then
- for i = 1, #message.member_uid_list do
- local data1 = ProtocalDataNormal.ParseInvitationMemberValData(message.member_uid_list[i])
- table.insert(data.memberUidList, data1)
- --data.memberUidList[data1.uid] = data1
- end
- end
- data.logList = {}
- if message.log_list then
- for i = 1, #message.log_list do
- local log = ProtocalDataNormal.ParseInvitationLogData(message.log_list[i])
- table.insert(data.logList, log)
- end
- end
- data.clickReplayMasterList = message.click_replay_master_list
- return data
- end
- function ProtocalDataNormal.ParseCommonPlayerBriefInfo(message)
- if not message then return end
- local data = {}
- data.uid = message.uid
- data.nickName = CommonUtil.GetVaildNickName(message.nick_name)
- data.headPortraitId = message.img_id
- data.gender = message.gender
- data.level = message.level
- data.configId = message.config_id
- data.fightPower = message.fight_power
- data.onlineState = message.online_state
- data.onlineTime = message.online_time
- data.towerLevel = message.tower_level
- data.towerTime = message.tower_time
- data.mapLevelId = message.map_level_id
- data.battleRecordId = message.battle_record_id
- data.headFrame = message.head_frame_id
- data.playerHead = CommonUtil.GetPlayerHeadIcon(message)
- data.vipLv = message.vip_level
- data.selectZone = message.select_zone
- return data
- end
- function ProtocalDataNormal.RushActivityData(message)
- if not message then return end
- local data = {}
- data.rushType = message.rush_type
- data.inRush = message.in_rush
- data.nextRush = message.next_rush
- data.stage = message.stage
- data.stageEnd = message.stage_end
- data.rushCount = message.rush_count
- return data
- end
- function ProtocalDataNormal.ParseTowerActivityData(message)
- if not message then return end
- local data = {}
- data.fightCount = message.fight_count
- data.selfRank = message.self_rank
- data.selfLevel = message.self_level
- data.endTime = message.end_time
- data.challengReward = message.challeng_reward
- data.rankReward = message.rank_reward
- data.rushLevel = message.rush_level
- data.topData = {}
- if message.top_data then
- table.sort(message.top_data, function (a,b)
- return a.rank < b.rank
- end)
- for i = 1,#message.top_data do
- local data1 = {}
- data1.name = message.top_data[i].name
- data1.data = message.top_data[i].data
- data1.rank = message.top_data[i].rank
- data.topData[#data.topData + 1] = data1
- end
- end
- return data
- end
- function ProtocalDataNormal.ParseArenaActivityData(message)
- if not message then return end
- local data = {}
- data.fightCount = message.fight_count
- data.selfRank = message.self_rank
- data.selfLevel = message.self_level
- data.endTime = message.end_time
- data.challengReward = message.challeng_reward
- data.rankReward = message.rank_reward
- data.topData = {}
- if message.top_data then
- table.sort(message.top_data, function (a,b)
- return a.rank < b.rank
- end)
- for i = 1,#message.top_data do
- local data1 = {}
- data1.name = message.top_data[i].name
- data1.data = message.top_data[i].data
- data1.rank = message.top_data[i].rank
- data.topData[#data.topData + 1] = data1
- end
- end
- return data
- end
- function ProtocalDataNormal.ParseRushPetInfoData(message)
- if not message then return end
- local data = {}
- if message then
- for i = 1,#message do
- local data1 = {}
- data1.petCfgId = message[i].pet_config_id
- data1.petScore = message[i].pet_score
- data1.petLevel = message[i].pet_level
- data1.totalSkillLevel = message[i].total_skill_level
- data1.qualityScore = message[i].quality_score
- data1.levelScore = message[i].level_score
- data1.skillScore = message[i].skill_score
- data[#data + 1] = data1
- end
- end
- return data
- end
- function ProtocalDataNormal.ParsePetActivityData(message)
- if not message then return end
- local data = {}
- data.selfScore = message.self_score
- data.selfRank = message.self_rank
- data.endTime = message.end_time
- data.challengReward = message.challeng_reward
- data.rankReward = message.rank_reward
- data.topData = {}
- local defaultData = {
- name = "NoneRank",
- totalScore = 0,
- info = {},
- rank = 1,
- }
- for i = 1, 51 do
- local data1 = clone(defaultData)
- data1.rank = i
- data.topData[i] = data1
- end
- if message.top_data then
- table.sort(message.top_data, function (a,b)
- return a.rank < b.rank
- end)
- for i = 1,#message.top_data do
- local data1 = {}
- data1.name = message.top_data[i].name
- data1.totalScore = message.top_data[i].total_score
- if message.top_data[i].pet_info then
- data1.info = ProtocalDataNormal.ParseRushPetInfoData(message.top_data[i].pet_info.info)
- else
- data1.info = {}
- end
- data1.rank = message.top_data[i].rank
- data.topData[data1.rank] = data1
- end
- end
- return data
- end
- function ProtocalDataNormal.ParseSkillActivityData(message)
- if not message then return end
- local data = {}
- data.fightCount = message.self_level
- data.selfLevel = message.self_level
- data.selfRank = message.self_rank
- data.endTime = message.end_time
- data.challengReward = message.challeng_reward
- data.rankReward = message.rank_reward
- data.topData = {}
- local defaultData = {
- name = "NoneRank",
- data = 0,
- rank = 1,
- }
- for i = 1, 51 do
- local data1 = clone(defaultData)
- data1.rank = i
- data.topData[i] = data1
- end
- if message.top_data then
- table.sort(message.top_data, function (a,b)
- return a.rank < b.rank
- end)
- for i = 1,#message.top_data do
- local data1 = {}
- data1.name = message.top_data[i].name
- data1.data = message.top_data[i].data
- data1.rank = message.top_data[i].rank
- data.topData[data1.rank] = data1
- end
- end
- return data
- end
- function ProtocalDataNormal.ParseKeepSakeData(message)
- if not message then return end
- local data = {}
- if message then
- for i = 1,#message do
- local data1 = {}
- data1.keepSakeId = message[i].keep_sake_id
- data1.keepSakeLevel = message[i].keep_sake_level
- data[#data + 1] = data1
- end
- end
- return data
- end
- function ProtocalDataNormal.ParseSkillEquipData(message)
- local data = {}
- data.id = message.id
- data.cfgId = message.config_id
- data.starLv = message.star_level
- local cfgData = ManagerContainer.CfgMgr:GetArtifactCfgDataByCfgId(data.cfgId)
- data.maxStarLv = cfgData.ArtifactMaxLevel
- data.quality = cfgData.Quality
- data.jobType = cfgData.JobType
- data.jobBranch = cfgData.JobBranch
- data.jobStage = cfgData.JobStage
- data.reforgeSelected = false
- return data
- end
- function ProtocalDataNormal.ParseSkillEquipSlotData(skillEquipSlot, message)
- if not skillEquipSlot then
- skillEquipSlot = {}
- end
- skillEquipSlot.heroId = message and message.hero_id or 0
- if not skillEquipSlot.slotList then
- skillEquipSlot.slotList = {}
- end
- if not message then
- return skillEquipSlot
- end
-
- for i = 1 , #message.slot_list do
- local v = message.slot_list[i]
- local data1 = skillEquipSlot.slotList[i]
- if not data1 then
- data1 = {}
- skillEquipSlot.slotList[i] = data1
- end
- data1.id = v.skill_equip_id
- data1.cfgId = v.skill_equip_config_id
- data1.starLv = v.skill_equip_star_level
- data1.slotLv = v.slot_level
- data1.slotAttrs = {}
- for _,v1 in pairs(v.slot_attrs) do
- data1.slotAttrs[v1.key] = v1.value
- end
- local cfgData = ManagerContainer.CfgMgr:GetArtifactCfgDataByCfgId(data1.cfgId)
- data1.maxStarLv = cfgData and cfgData.ArtifactMaxLevel or 0
- data1.quality = cfgData and cfgData.Quality or 0
- data1.jobType = cfgData and cfgData.JobType or 0
- end
- return skillEquipSlot
- end
- function ProtocalDataNormal.ParsePetQiyueData(petQiyueData, message)
- if not petQiyueData then
- petQiyueData = {}
- end
- petQiyueData.petId = message and message.pet_id or 0
- if not petQiyueData.slotList then
- petQiyueData.slotList = {}
- end
- if not message then
- return petQiyueData
- end
-
- for i = 1 , #message.qiyue_slot_list do
- local v = message.qiyue_slot_list[i]
- local data1 = petQiyueData.slotList[i]
- if not data1 then
- data1 = {}
- petQiyueData.slotList[i] = data1
- end
- data1.slotIdx = v.slot_idx
- data1.petId = v.pet_id
- data1.petCfgId = v.pet_cfg_id
- end
- return petQiyueData
- end
- return ProtocalDataNormal
|