From 41ad793ca9cf294333dd215fee303397ca44aac2 Mon Sep 17 00:00:00 2001 From: xdh <xiefantasy@qq.com> Date: 星期五, 14 十二月 2018 14:50:04 +0800 Subject: [PATCH] 5461 【后端】【1.3】【1.3.100】坐骑和灵宠老号处理 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 46 insertions(+), 0 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py index 2b1367b..30205b2 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py @@ -737,6 +737,52 @@ # @param curPlayer 玩家 # @return None def PlayerHorseLogin(curPlayer): + if not GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_VersionFix, ChConfig.Def_VerFix_Horse): + GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_VersionFix, ChConfig.Def_VerFix_Horse, 1) + #等级不能超上限,技能删了重新学 + skillManager = curPlayer.GetSkillManager() + delCnt = 0 + for i in xrange(skillManager.GetSkillCount()): + dataIndex = i-delCnt + skill = skillManager.GetSkillByIndex(dataIndex) + if skill == None: + continue + if skill.GetFuncType() != ChConfig.Def_SkillFuncType_HorseSkill: + continue + skillTypeID = skill.GetSkillTypeID() + skillManager.DeleteSkillBySkillTypeID(skillTypeID) + delCnt += 1 + + tick = GameWorld.GetGameWorld().GetTick() + ipyDataMgr = IpyGameDataPY.IPY_Data() + for i in xrange(ipyDataMgr.GetHorseCount()): + ipyData = ipyDataMgr.GetHorseByIndex(i) + horseID = ipyData.GetHorseID() + curlv = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_Horser_LV % horseID, 0, ChConfig.Def_PDictType_Horse) + if not curlv: + continue + maxLV = ipyData.GetMaxLV() + if curlv > maxLV: + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_Horser_LV % horseID, maxLV, ChConfig.Def_PDictType_Horse) + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_Horser_Exp % horseID, 0, ChConfig.Def_PDictType_Horse) + GameWorld.Log(' 老号坐骑等级超过上限,坐骑ID=%s,原LV=%s,重置为=%s'%(horseID, curlv, maxLV)) + curlv = maxLV + + for lv in xrange(1, curlv + 1): + upIpyData = IpyGameDataPY.GetIpyGameData("HorseUp", horseID, lv) + if not upIpyData: + break + skillIDList = upIpyData.GetSkillID() + if not skillIDList: + continue + for skillID in skillIDList: + __GiveSkill(curPlayer, skillID, tick) + # 重刷战力 + curControl = PlayerControl.PlayerControl(curPlayer) + curControl.RefreshAllSkill() + RefreshHorseAttr(curPlayer) + + Sync_HorseClassData(curPlayer) return -- Gitblit v1.8.0