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/PetControl.py | 35 +++++++++++++++++++++++++++++++++++ 1 files changed, 35 insertions(+), 0 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PetControl.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PetControl.py index 023be02..bb71268 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PetControl.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PetControl.py @@ -524,6 +524,41 @@ __RefreshAndSyncPetInfo(rolePet) #自动出战宠物 __AutoSummonPet_OnLogin(curPlayer, rolePet) + + if not GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_VersionFix, ChConfig.Def_VerFix_Pet): + GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_VersionFix, ChConfig.Def_VerFix_Pet, 1) + #等级不能超上限,技能删了重新学 + + petPackIndex = ShareDefine.rptPet + petPack = curPlayer.GetItemManager().GetPack(petPackIndex) + for i in range(petPack.GetCount()): + petItem = petPack.GetAt(i) + if petItem.IsEmpty(): + continue + petItemNPCID = petItem.GetUserAttr(ShareDefine.Def_IudetPet_NPCID) + curClassLV = petItem.GetUserAttr(ShareDefine.Def_IudetPet_ClassLV) + 1 + petIpyData = PlayerPet.GetPetIpydata(petItemNPCID) + if not petIpyData: + continue + maxLV = petIpyData.GetMaxRank() + if curClassLV > maxLV: + petItem.SetUserAttr(ShareDefine.Def_IudetPet_ClassLV, max(0, maxLV - 1)) + petItem.SetUserAttr(ShareDefine.Def_IudetPet_Exp, 0) + GameWorld.Log(' 老号宠物等级超过上限,宠物ID=%s,原LV=%s,重置为=%s'%(petItemNPCID, curClassLV, maxLV)) + curClassLV = maxLV + petItem.ClearUserAttr(ShareDefine.Def_IudetPet_Skill) + petSkillList = petIpyData.GetSkillID() + petSkillUnLockList = petIpyData.GetSkillUnLock() + for i, skillid in enumerate(petSkillList): + limitPetClassLV = petSkillUnLockList[i] # 学习此技能所需宠物阶级 + if curClassLV < limitPetClassLV: + continue + petItem.AddUserAttr(ShareDefine.Def_IudetPet_Skill, skillid) + if ReCallFightPet(curPlayer): + PlayerPet.AutoSummonPet(curPlayer) + # 重刷战力 + PlayerPet.SetPetSkillFightPower(curPlayer) # 技能战力重算 + PlayerPet.RefreshPetItemAddAttr(curPlayer, True) return #--------------------------------------------------------------------- -- Gitblit v1.8.0