From ba71a1935d5e96c54131173c1eccb5678efc9827 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期一, 08 四月 2019 10:19:08 +0800
Subject: [PATCH] 6341 【后端】【2.0】境界改版开发单(经验buff叠加问题)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py |   42 ++++++++++++++++++++++++++++++++++++------
 1 files changed, 36 insertions(+), 6 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 5e87340..9636f84 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py
@@ -37,8 +37,9 @@
 import GameMap
 import OpenServerCampaign
 import PlayerMagicWeapon
-import PassiveBuffEffMng
+import PlayerWeekParty
 import CalcNoLineEffect
+import CrossPlayerData
 import CalcLineEffect
 
 import random
@@ -105,7 +106,6 @@
     if not newPetItem:
         return
     
-    newPetItem.SetIsBind(True)
     newPetItem.SetUserAttr(ShareDefine.Def_IudetPet_NPCID, petNPCID)
     newPetItem.SetUserAttr(ShareDefine.Def_IudetPet_State, ShareDefine.Def_PetState_Null)
     
@@ -266,8 +266,39 @@
 #        petItem.SetUserAttr(ShareDefine.Def_IudetPet_State, tagState)
 #        GameWorld.DebugLog("切换宠物状态异常防范! curState=%s,tagState=%s" % (curState, tagState))
         
+    if not GameWorld.IsCrossServer():
+        dataList = [petNPCID, curClasslv, tagState]
+        CrossPlayerData.SendDataToCrossServer(curPlayer, CrossPlayerData.CrossData_PetState, dataList)
+        
     return
 
+def CrossServer_DoChangePetState(curPlayer, dataList):
+    ## 跨服处理 宠物战斗状态变更
+    petNPCID, curClasslv, tagState = dataList
+    petItem = GetPetDataItemByNPCID(curPlayer, petNPCID)
+    if not petItem:
+        newPetItem = GetNewPetDataItem(curPlayer, petNPCID)
+        if not newPetItem:
+            return
+        if not ItemControler.PlayerItemControler(curPlayer).PutInItem(ShareDefine.rptPet, newPetItem):
+            return
+        petItem = GetPetDataItemByNPCID(curPlayer, petNPCID)
+    if not petItem:
+        return
+    
+    curItemClasslv = petItem.GetUserAttr(ShareDefine.Def_IudetPet_ClassLV)
+    # 处理技能问题,暂不处理
+    if curClasslv > curItemClasslv:
+        pass
+    
+    curState = petItem.GetUserAttr(ShareDefine.Def_IudetPet_State) # 当前状态
+    if curState == ShareDefine.Def_PetState_Fight:
+        PetControl.ReCallFightPet(curPlayer)
+        
+    if tagState == ShareDefine.Def_PetState_Fight:
+        __DoPetGoOutToFight(curPlayer, petItem)
+        
+    return
 
 
 ## 执行宠物出战逻辑
@@ -320,7 +351,7 @@
     #---通知客户端---
     #rolePet.Sync_PetInfo()
     #刷新技能栏
-    rolePet.Sync_SkillList()
+    #rolePet.Sync_SkillList()
     
     #---收到"宠物出战"请求---
     #检查是否可出战
@@ -453,7 +484,6 @@
     if not ItemControler.PlayerItemControler(curPlayer).PutInItem(petPackIndex, newPetItem):
         return
     
-    PlayerMagicWeapon.SetMWPrivilegeData(curPlayer, ChConfig.MWPrivilege_Pet, len(GetActivePetID(curPlayer)))
     ItemCommon.ReduceItem(curPlayer, itemPack, itemList, needItemCnt, False, ChConfig.ItemDel_Pet)
         
     EventShell.EventRespons_OnActivatePet(curPlayer, petNPCID)
@@ -474,6 +504,7 @@
     
     # 开服活动数据
     OpenServerCampaign.UpdOpenServerCampaignRecordData(curPlayer, ShareDefine.Def_Campaign_Type_PetLV, GetTotalPetLV(curPlayer))
+    PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Pet, petNPCID, False)
     return True
 
 
@@ -507,7 +538,6 @@
     
     if not ItemControler.PlayerItemControler(curPlayer).PutInItem(petPackIndex, newPetItem):
         return
-    PlayerMagicWeapon.SetMWPrivilegeData(curPlayer, ChConfig.MWPrivilege_Pet, len(GetActivePetID(curPlayer)))
     SetPetSkillFightPower(curPlayer)    # 技能战力重算
     petItemIndex = GetPetDataItemIndexByNPCID(curPlayer, petNPCID)
     DoChangePetState(curPlayer, petItemIndex, ShareDefine.Def_PetState_Fight)
@@ -594,7 +624,7 @@
             for itemIndex in itemIndexList:
                 curItem = curItemPack.GetAt(itemIndex)
                 #检查物品
-                if not ItemCommon.CheckItemCanUse(curItem):
+                if not ItemCommon.CheckItemCanUse(curItem) or ItemControler.GetIsAuctionItem(curItem):
                     continue
                 itemCnt = curItem.GetCount()
                 nowCnt += itemCnt

--
Gitblit v1.8.0