From 0c27822ef5e6c67782ed143a4ff03ecfbdfda1fb Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期一, 23 五月 2022 16:52:58 +0800 Subject: [PATCH] 9415 【BT】【后端】古神战场(副本内功能完整版本) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py | 24 ++++++++++++++++-------- 1 files changed, 16 insertions(+), 8 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py index c4534d3..e027e7a 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py @@ -527,15 +527,18 @@ return True -def DoPetActivate(curPlayer, index, classlv): +def DoPetActivate(curPlayer, index, classlv=None, refresh=True): ##直接激活 外部调用GM测试用 ipyDataMgr = IpyGameDataPY.IPY_Data() petInfoCount = ipyDataMgr.GetPetInfoCount() if petInfoCount <= 0 or index > petInfoCount: GameWorld.ErrLog("激活宠物超过宠物表数据数: index=%s,petInfoCount=%s" % (index, petInfoCount)) return - petNPCID = ipyDataMgr.GetPetInfoByIndex(index - 1).GetID() - quality = ipyDataMgr.GetPetInfoByIndex(index - 1).GetQuality() + petIpyData = ipyDataMgr.GetPetInfoByIndex(index - 1) + petNPCID = petIpyData.GetID() + quality = petIpyData.GetQuality() + maxClassLV = petIpyData.GetMaxRank() + petPackIndex = ShareDefine.rptPet petPack = curPlayer.GetItemManager().GetPack(petPackIndex) for i in range(petPack.GetCount()): @@ -544,12 +547,15 @@ continue petItemNPCID = packItem.GetUserAttr(ShareDefine.Def_IudetPet_NPCID) if petItemNPCID == petNPCID: - packItem.SetUserAttr(ShareDefine.Def_IudetPet_ClassLV, max(0, classlv - 1)) + if classlv: + packItem.SetUserAttr(ShareDefine.Def_IudetPet_ClassLV, max(0, min(classlv, maxClassLV) - 1)) packItem.SetUserAttr(ShareDefine.Def_IudetPet_QualityLV, quality) # 宠物品质 GameWorld.DebugLog("已经拥有该宠物! i=%s,petItemNPCID=%s,petNPCID=%s" % (i, petItemNPCID, petNPCID)) - return - - + return True + + if classlv == None: + classlv = 1 + classlv = min(classlv, maxClassLV) newPetItem = GetNewPetDataItem(curPlayer, petNPCID, classlv) if not newPetItem: return @@ -557,10 +563,12 @@ if not ItemControler.PlayerItemControler(curPlayer).PutInItem(petPackIndex, newPetItem): return + if not refresh: + return True petItemIndex = GetPetDataItemIndexByNPCID(curPlayer, petNPCID) DoChangePetState(curPlayer, petItemIndex, ShareDefine.Def_PetState_Fight) RefreshPetItemAddAttr(curPlayer, True) - return + return True #=============================================================================== -- Gitblit v1.8.0