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