From cbd1bd8a2a5670f4aa1f32fc894006966676ae2c Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期二, 16 七月 2019 11:22:50 +0800
Subject: [PATCH] 7940 骑宠觉醒属性刷新

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py            |   10 +++++++++-
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/PrintFightPower.py |    2 ++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py          |   15 ++++++++++++++-
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py                    |   12 +++++++-----
 4 files changed, 32 insertions(+), 7 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index 432c5a3..d2d7f15 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -3750,8 +3750,8 @@
 Def_PDict_Horser_Exp = "Horser_Exp_%d"  # 坐骑经验
 Def_PDict_Horser_Multiple = "Horser_Multiple"  # 坐骑下次升阶暴击倍数
 #骑宠觉醒
-Def_PDict_HorsePetSkinData = "HorsePetSkinData%d_%s"  #觉醒等级*100+外观索引  参数(类型,关联ID)
-Def_PDict_HorsePetSkinExp = "HorsePetSkinExp%d_%s"  #经验  参数(类型,关联ID)
+Def_PDict_HorsePetSkinData = "HorsePetSkinData%d_%s"  #觉醒等级*100+外观索引  参数(类型,关联ID) 1-坐骑 2-灵宠
+Def_PDict_HorsePetSkinExp = "HorsePetSkinExp%d_%s"  #经验  参数(类型,关联ID) 1-坐骑 2-灵宠
 # 符印
 Def_PDict_Rune_HoleOpenState = "Rune_HoleOpenState"  # 符印解锁状态
 Def_PDict_Rune_Data = "Rune_Data_%s"  # 符印镶嵌数据, 参数(第几孔)
@@ -4363,7 +4363,9 @@
 Def_CalcAttrFunc_Coat, # 时装 36
 Def_CalcAttrFunc_LingQi, # 灵器 37
 Def_CalcAttrFunc_LingQiAttr, # 灵器属性 38
-) = range(39)
+Def_CalcAttrFunc_HorseSkin, # 坐骑觉醒 39
+Def_CalcAttrFunc_PetSkin, # 灵宠觉醒 40
+) = range(41)
 
 # 技能功能点列表  - 默认不算战力,不享受百分比加成,技能功能点暂时配置,之后优化技能属性逻辑后可去掉
 CalcAttrFuncSkillList = [Def_CalcAttrFunc_HorseSkill, Def_CalcAttrFunc_PetSkill, Def_CalcAttrFunc_DogzBattleSkill]
@@ -4380,9 +4382,9 @@
                             ShareDefine.Def_MFPType_Stone:[Def_CalcAttrFunc_Stone],
                             ShareDefine.Def_MFPType_LingQi:[Def_CalcAttrFunc_LingQi, Def_CalcAttrFunc_LingQiAttr],
                             ShareDefine.Def_MFPType_Wash:[Def_CalcAttrFunc_Wash],
-                            ShareDefine.Def_MFPType_Pet:[Def_CalcAttrFunc_Pet, Def_CalcAttrFunc_PetSign, Def_CalcAttrFunc_PetSkill],
+                            ShareDefine.Def_MFPType_Pet:[Def_CalcAttrFunc_Pet, Def_CalcAttrFunc_PetSign, Def_CalcAttrFunc_PetSkill, Def_CalcAttrFunc_PetSkin],
                             ShareDefine.Def_MFPType_PetSoul:[Def_CalcAttrFunc_PetSoul],
-                            ShareDefine.Def_MFPType_Horse:[Def_CalcAttrFunc_Horse, Def_CalcAttrFunc_HorseSkill],
+                            ShareDefine.Def_MFPType_Horse:[Def_CalcAttrFunc_Horse, Def_CalcAttrFunc_HorseSkill, Def_CalcAttrFunc_HorseSkin],
                             ShareDefine.Def_MFPType_HorseSoul:[Def_CalcAttrFunc_HorseSoul],
                             ShareDefine.Def_MFPType_Prestige:[Def_CalcAttrFunc_Prestige],
                             ShareDefine.Def_MFPType_GodWeapon:[Def_CalcAttrFunc_GodWeapon],
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/PrintFightPower.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/PrintFightPower.py
index 4e37a44..e0064ba 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/PrintFightPower.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/PrintFightPower.py
@@ -90,6 +90,8 @@
                      ChConfig.Def_CalcAttrFunc_MagicWeapon2:"魔族法宝属性", 
                      ChConfig.Def_CalcAttrFunc_MagicWeapon3:"仙族法宝属性", 
                      ChConfig.Def_CalcAttrFunc_MagicWeapon4:"王者法宝属性", 
+                     ChConfig.Def_CalcAttrFunc_HorseSkin:"坐骑觉醒", 
+                     ChConfig.Def_CalcAttrFunc_PetSkin:"灵宠觉醒", 
                      }
     
     GameWorld.DebugAnswer(curPlayer, "PrintFightPower 模块类型(可选)")
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py
index 30f8c24..dee4a1b 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py
@@ -501,6 +501,7 @@
     allAttrList = [{} for _ in range(4)]
     allAttrListHorseSoul = [{} for _ in range(4)]
     skillAttrList = [{} for _ in range(4)]
+    allAttrListSkin = [{} for _ in range(4)]
     # 判断玩家是否可以升级马匹
     if isCheckOpen and not GameFuncComm.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_Horse):
         #对应的任务限制未完成
@@ -528,6 +529,11 @@
                 maxSpeed = max(maxSpeed, attrValueList[i])
                 continue
             PlayerControl.CalcAttrDict_Type(attrID, attrValueList[i], allAttrList)
+        skinData = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HorsePetSkinData % (1, horseID), 0)
+        skinIpyData = IpyGameDataPY.GetIpyGameDataNotLog('HorsePetSkin', 1, horseID, skinData/100)
+        if skinIpyData:
+            for attrID, attrValue in skinIpyData.GetAttrInfo().items():
+                PlayerControl.CalcAttrDict_Type(attrID, attrValue, allAttrListSkin)
     
     curPlayer.SetDict(ChConfig.Def_PlayerKey_MFPEx % ShareDefine.Def_MFPType_Horse, skillFPEx+initFPAdd)
     PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_HorseSkill, skillAttrList)
@@ -545,6 +551,8 @@
     # 保存计算值
     PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_Horse, allAttrList)
     PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_HorseSoul, allAttrListHorseSoul)
+    PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_HorseSkin, allAttrListSkin)
+    
     return
 
 def __CalcHorseSkillAttr(curPlayer, allAttrList):
@@ -1089,7 +1097,12 @@
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HorsePetSkinExp % (skintype, horsePetID), updExp)
     if curSkinIndex != updSkinIndex:
         __DoHorsePetSkinChange(curPlayer, skintype, horsePetID, updSkinIndex)
-    
+    if updSkinLV != curSkinLV:
+        if skintype == 1:
+            RefreshHorseAttr(curPlayer)
+        else:
+            PlayerPet.RefreshPetItemAddAttr(curPlayer, True)
+        
     SyncHorsePetSkinData(curPlayer, [[skintype, horsePetID]])
     return
 
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 36b6952..3a8299e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py
@@ -821,7 +821,7 @@
     allAttrListPetSign = [{} for _ in range(4)] # 属性含 特殊的技能属性(因为签到技能属性成长,战力也是成长的,所以不能放技能中算战力,暂时放魂石中)
     allAttrListPetSoul = [{} for _ in range(4)]
     skillAttrList = [{} for _ in range(4)]
-    
+    allAttrListPetSkin = [{} for _ in range(4)]
     totalMinAtk, totalMaxAtk = GetPetAtkValue(curPlayer)
     PlayerControl.CalcAttrDict_Type(ShareDefine.Def_Effect_PetMinAtk, totalMinAtk, allAttrListPet)
     PlayerControl.CalcAttrDict_Type(ShareDefine.Def_Effect_PetMaxAtk, totalMaxAtk, allAttrListPet)
@@ -853,6 +853,7 @@
                 continue
             SkillShell.CalcBuffEffAttr(curPlayer, curEffect, skillAttrList)
     
+    
     PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_Pet, allAttrListPet)
     PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_PetSoul, allAttrListPetSoul)
     PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_PetSign, allAttrListPetSign)
@@ -872,6 +873,13 @@
         if not petIpyData:
             continue
         initFPAdd += petIpyData.GetInitFightPower()
+        #觉醒战力
+        skinData = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HorsePetSkinData % (2, petItemNPCID), 0)
+        skinIpyData = IpyGameDataPY.GetIpyGameDataNotLog('HorsePetSkin', 2, petItemNPCID, skinData/100)
+        if skinIpyData:
+            for attrID, attrValue in skinIpyData.GetAttrInfo().items():
+                PlayerControl.CalcAttrDict_Type(attrID, attrValue, allAttrListPetSkin)
+    PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_PetSkin, allAttrListPetSkin)
     curPlayer.SetDict(ChConfig.Def_PlayerKey_MFPEx % ShareDefine.Def_MFPType_Pet, initFPAdd)
 #    GameWorld.DebugLog("宠物榜NPCID: %s, petDict=%s" % (billPetNPCID, str(billPetDict)))
     return

--
Gitblit v1.8.0