From 2e4837aa365ec5136341773855ec105e98de1863 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期四, 08 十一月 2018 21:21:16 +0800
Subject: [PATCH] 2683 子 天赋技能和新增双职业各两个技能 / 【后端】天赋技能 - 对象错误

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py |   36 ++++++++++++++++++++----------------
 1 files changed, 20 insertions(+), 16 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 6308b40..0c8873c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py
@@ -235,15 +235,16 @@
     
     # 当前状态处理
     if curState == ShareDefine.Def_PetState_Fight:
-        curPet = curPlayer.GetPetMgr().GetFightPet()
-        if curPet:
-            #已是出战状态, C++召唤坐标和人重叠
-            resultPos = GameMap.GetEmptyPlaceInArea(curPlayer.GetPosX(), curPlayer.GetPosY(), ChConfig.Def_SummonAppearDist)
-            curPet.ResetPos(resultPos.GetPosX(), resultPos.GetPosY())
-            PassiveBuffEffMng.GetPassiveEffManager().RegistPassiveEff(curPet)
-            PassiveBuffEffMng.GetPassiveEffManager().RegistPassiveBuff(curPet)
-        return
-        #PetControl.ReCallFightPet(curPlayer)
+#        curPet = curPlayer.GetPetMgr().GetFightPet()
+#        if curPet:
+#            #已是出战状态, C++召唤坐标和人重叠
+#            resultPos = GameMap.GetEmptyPlaceInArea(curPlayer.GetPosX(), curPlayer.GetPosY(), ChConfig.Def_SummonAppearDist)
+#            curPet.ResetPos(resultPos.GetPosX(), resultPos.GetPosY())
+#            PassiveBuffEffMng.GetPassiveEffManager().RegistPassiveEff(curPet)
+#            PassiveBuffEffMng.GetPassiveEffManager().RegistPassiveBuff(curPet)
+#        return
+        #18/10/15 因为某种未知原因宠物物品的状态是出战(实际场景中未出战),导致该宠物无法出战,故再次发包出战时,此处不拦!
+        PetControl.ReCallFightPet(curPlayer)
    
     else:
         pass
@@ -303,20 +304,20 @@
     PetControl.DoLogic_PlayerPetLearnSkillList(rolePet, learnSkillList)
     
     #---刷新属性(不通知)---
-    #GameWorld.DebugLog("刷前: petID=%s,playerID=%s,npcID=%s,BindType=%s,AIMode=%s,PetIndex=%s,petFinalHurtPer=%s,grade=%s,qualLV=%s," 
+    #GameWorld.DebugLog("刷前: petID=%s,playerID=%s,npcID=%s,BindType=%s,AIMode=%s,PetIndex=%s,grade=%s,qualLV=%s," 
     #                   % (petStruct.PetID, petStruct.PlayerID, petStruct.NPCID, petStruct.BindType, petStruct.AIMode, petStruct.PetIndex,
-    #                      rolePet.GetBattleValEx5(), rolePet.GetGrade(), rolePet.GetQualityLV()))
+    #                      rolePet.GetGrade(), rolePet.GetQualityLV()))
     petControl = NPCCommon.NPCControl(rolePet)
     petControl.RefreshNPCState(canSyncClient=False)
-    #GameWorld.DebugLog("刷后: petID=%s,playerID=%s,npcID=%s,BindType=%s,AIMode=%s,PetIndex=%s,petFinalHurtPer=%s,grade=%s,qualLV=%s," 
+    #GameWorld.DebugLog("刷后: petID=%s,playerID=%s,npcID=%s,BindType=%s,AIMode=%s,PetIndex=%s,grade=%s,qualLV=%s," 
     #                   % (petStruct.PetID, petStruct.PlayerID, petStruct.NPCID, petStruct.BindType, petStruct.AIMode, petStruct.PetIndex,
-    #                      rolePet.GetBattleValEx5(), rolePet.GetGrade(), rolePet.GetQualityLV()))
+    #                      rolePet.GetGrade(), rolePet.GetQualityLV()))
     
     #当前血量(不通知)
     PetControl.SetPetHP(rolePet, rolePet.GetMaxHP(), False)
     
     #---通知客户端---
-    rolePet.Sync_PetInfo()
+    #rolePet.Sync_PetInfo()
     #刷新技能栏
     rolePet.Sync_SkillList()
     
@@ -455,7 +456,8 @@
     ItemCommon.ReduceItem(curPlayer, itemPack, itemList, needItemCnt, False, ChConfig.ItemDel_Pet)
         
     EventShell.EventRespons_OnActivatePet(curPlayer, petNPCID)
-    PlayerControl.WorldNotify(0, 'GetPet', [curPlayer.GetName(), petNPCID])
+    sysMark = ipyData.GetUnlockSys() or 'GetPet'
+    PlayerControl.WorldNotify(0, sysMark, [curPlayer.GetName(), petNPCID])
     rolePet = curPlayer.GetPetMgr().GetFightPet()
     if not rolePet:
         petItemIndex = GetPetDataItemIndexByNPCID(curPlayer, petNPCID)
@@ -653,6 +655,7 @@
         petIpyData = GetPetIpydata(petNPCID)
         petSkillList = petIpyData.GetSkillID()
         petSkillUnLockList = petIpyData.GetSkillUnLock()
+        sysMarkList = petIpyData.GetSkillUnLockSys()
         learnSkillList = []
         for i, skillid in enumerate(petSkillList):
             limitPetClassLV = petSkillUnLockList[i] # 学习此技能所需宠物阶级
@@ -668,7 +671,8 @@
                 #被动技能不学
                 learnSkillList.append(skillid)
             #广播
-            PlayerControl.WorldNotify(0, 'PetUpLv', [playerName, petNPCID, limitPetClassLV, skillid])
+            sysMark = sysMarkList[i] if i < len(sysMarkList) else 'PetUpLv'
+            PlayerControl.WorldNotify(0, sysMark, [playerName, petNPCID, limitPetClassLV, skillid])
 
         if not learnSkillList and updClassLV + 1 == maxClassLV:
             PlayerControl.WorldNotify(0, 'PetUpLvMax', [playerName, petNPCID])

--
Gitblit v1.8.0