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