From a0a1e6c3440172933aabec644b7cd279ea9f5263 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 06 六月 2019 13:48:59 +0800
Subject: [PATCH] 1 GM测试属性技能伤害加成计算默认减10000

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PetControl.py |   55 +++++++++++++++----------------------------------------
 1 files changed, 15 insertions(+), 40 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 5307f32..6b72837 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PetControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PetControl.py
@@ -28,7 +28,6 @@
 import IPY_GameWorld
 import ChConfig
 import GameWorld
-import ReadChConfig
 import BuffSkill
 import SkillShell
 import PlayerPet
@@ -47,6 +46,7 @@
 import BaseAttack
 import PassiveBuffEffMng
 import ChNetSendPack
+import IpyGameDataPY
 #---------------------------------------------------------------------
 
 DefPetRebornHPRate = 100  # 宠物死亡复活血量百分比
@@ -240,7 +240,7 @@
 # @return 返回值无意义
 # @remarks 初始化宠物属性
 def InitRolePet(rolePet, canSyncClient=True):
-    #---初始化时钟,致命一击倍率---
+    #---初始化时钟---
     NPCCommon.InitNPC(rolePet)
     
     #---初始化仇恨列表---
@@ -461,7 +461,7 @@
 # @return BOOL 是否可出战
 # @remarks 检查当前指定宠物是否可出战
 def CheckPetCanFight(curPlayer, curPetObj):
-    if not GameWorld.GetMap().GetMapCanOutPet():
+    if not GetMapCanOutPet(curPlayer):
         #Pet_liubo_314885 此地图禁止宠物
         PlayerControl.NotifyCode(curPlayer, "Pet_liubo_314885")
         return False
@@ -534,41 +534,6 @@
             __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
 #---------------------------------------------------------------------
@@ -582,7 +547,7 @@
     if not rolePet.GetIsBattle():
         return
     
-    if not GameWorld.GetMap().GetMapCanOutPet():
+    if not GetMapCanOutPet(curPlayer):
         #此地图禁止宠物
         return
     #召唤宠物出战
@@ -614,7 +579,7 @@
 # @remarks 
 def DoLogic_PetLoadMapOK(curPlayer):
     
-    if GameWorld.GetMap().GetMapCanOutPet():
+    if GetMapCanOutPet(curPlayer):
         #此地图宠物可以上
         PlayerPet.AutoSummonPet(curPlayer)
         return
@@ -627,6 +592,16 @@
     PlayerControl.NotifyCode(curPlayer, "Pet_liubo_314885")
     return
 
+def GetMapCanOutPet(curPlayer):
+    ## 检查本地图可否出战宠物,支持前端自定义场景
+    customMapID = PlayerControl.GetCustomMapID(curPlayer)
+    if customMapID:
+        ipyMapData = IpyGameDataPY.GetIpyGameData("ChinMap", customMapID)
+        canOutPet = True if ipyMapData and ipyMapData.GetCanOutPet() else False
+    else:
+        canOutPet = GameWorld.GetMap().GetMapCanOutPet()
+    return canOutPet
+
 #---------------------------------------------------------------------
 ## 刷新宠物信息并通知客户端
 #  @param rolePet 宠物实例

--
Gitblit v1.8.0