From 6aeee7efd261fc1f553a4f3a748402f6dbb3cd79 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 27 二月 2026 16:07:54 +0800
Subject: [PATCH] 501 【武将】武将时装-服务端(武将时装激活、升级、穿戴、属性;武将战斗预览;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerOnline.py | 36 ++++++++++++++++++++++++++++++------
1 files changed, 30 insertions(+), 6 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerOnline.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerOnline.py
index bd832cd..ae38c35 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerOnline.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerOnline.py
@@ -365,8 +365,6 @@
effCardAddPerAft = heroPreset.GetEffCardAddPer()
- if effCardAddPerBef == effCardAddPerAft:
- continue
heroPresetID = heroPreset.heroPresetID
GameWorld.DebugLog("武将物品变化影响: itemIndex=%s,heroPresetID=%s,effCardAddPerBef=%s,effCardAddPerAft=%s"
% (itemIndex, heroPresetID, effCardAddPerBef, effCardAddPerAft), self.playerID)
@@ -752,6 +750,7 @@
countryHeroInfo = {} # 国家武将统计 {country:[heroID, ...], ...}
fetterHeroInfo = {} # 阵容羁绊武将统计信息 {fetterID:[heroID, ...], ...}
heroSelfAttrInfo = {} # 武将自身属性 {heroID:{attrID:value, ...}, ...}
+ heroSkinAttrInfo = {} # 武将时装属性 {heroID:{attrID:value, ...}, ...}
heroLVAttrInfo = {} # 武将等级属性 {heroID:{attrID:value, ...}, ...}
heroStarTalentInfo = {} # 武将星级天赋属性 {heroID:{attrID:value, ...}, ...}
heroBreakAttrInfo = {} # 武将突破潜能属性 {heroID:{attrID:value, ...}, ...}
@@ -782,9 +781,9 @@
skinID = 0
skinIDList = heroIpyData.GetSkinIDList()
if skinIndex < 0 or skinIndex >= len(skinIDList):
- skinID = skinIDList[skinIndex]
- elif skinIDList:
skinID = skinIDList[0]
+ elif skinIDList:
+ skinID = skinIDList[skinIndex]
lineupHero = presetLineup.GetLineupHero(posNum)
#if False:
@@ -810,6 +809,21 @@
for k, v in heroIpyData.GetBatAttrDict().items():
selfAttrDict[int(k)] = v
heroSelfAttrInfo[heroID] = selfAttrDict
+
+ # 时装属性
+ heroSkinAttrDict = {}
+ skinIpyData = IpyGameDataPY.GetIpyGameDataNotLog("HeroSkinAttr", skinID)
+ if skinIpyData:
+ skinStar = PlayerHero.GetHeroSkinStar(curPlayer, skinID)
+ wearAttrIDList = skinIpyData.GetWearAttrIDList()
+ wearAttrValueList = skinIpyData.GetWearAttrValueList()
+ wearAttrPerStarAddList = skinIpyData.GetWearAttrPerStarAddList()
+ for i in range(min(len(wearAttrIDList), len(wearAttrValueList))):
+ attrID = wearAttrIDList[i]
+ attrValuePerStar = wearAttrPerStarAddList[i] if len(wearAttrPerStarAddList) > i else 0
+ attrValue = wearAttrValueList[i] + attrValuePerStar * skinStar
+ heroSkinAttrDict[attrID] = heroSkinAttrDict.get(attrID, 0) + attrValue
+ heroSkinAttrInfo[heroID] = heroSkinAttrDict
# 等级属性
heroLVAttrDict = {}
@@ -952,6 +966,7 @@
lvAttrDict = olPlayer.GetCalcAttr(ChConfig.Def_CalcAttr_LV)
equipAttrDict = olPlayer.GetCalcAttr(ChConfig.Def_CalcAttr_MainEquip)
fatesAttrDict = olPlayer.GetCalcAttr(ChConfig.Def_CalcAttr_HeroFates)
+ skinAttrDict = olPlayer.GetCalcAttr(ChConfig.Def_CalcAttr_HeroSkin)
realmAttrDict = olPlayer.GetCalcAttr(ChConfig.Def_CalcAttr_Realm)
gubaoAttrDict = olPlayer.GetCalcAttr(ChConfig.Def_CalcAttr_Gubao)
hjgAttrDict = olPlayer.GetCalcAttr(ChConfig.Def_CalcAttr_HJG)
@@ -964,6 +979,7 @@
GameWorld.DebugLog(" 国家武将统计=%s" % countryHeroInfo, playerID)
GameWorld.DebugLog(" 羁绊武将统计=%s" % fetterHeroInfo, playerID)
GameWorld.DebugLog(" 武将自身属性=%s" % heroSelfAttrInfo, playerID)
+ GameWorld.DebugLog(" 穿戴时装属性=%s" % heroSkinAttrInfo, playerID)
GameWorld.DebugLog(" 武将等级属性=%s" % heroLVAttrInfo, playerID)
GameWorld.DebugLog(" 武将吞噬属性=%s" % heroStarTalentInfo, playerID)
GameWorld.DebugLog(" 武将突破潜能=%s" % heroBreakAttrInfo, playerID)
@@ -974,6 +990,7 @@
GameWorld.DebugLog(" 主公等级属性=%s" % lvAttrDict, playerID)
GameWorld.DebugLog(" 主公装备属性=%s" % equipAttrDict, playerID)
GameWorld.DebugLog(" 主公宿缘属性=%s" % fatesAttrDict, playerID)
+ GameWorld.DebugLog(" 主公全体时装=%s" % skinAttrDict, playerID)
GameWorld.DebugLog(" 主公官职属性=%s" % realmAttrDict, playerID)
GameWorld.DebugLog(" 主公古宝属性=%s" % gubaoAttrDict, playerID)
GameWorld.DebugLog(" 主幻境阁属性=%s" % hjgAttrDict, playerID)
@@ -1013,6 +1030,7 @@
lineupHero.heroBatAttrDict = {}
lineupHero.fightPower = 0
+ heroSkinAttrDict = heroSkinAttrInfo.get(heroID, {})
heroLVAttrDict = heroLVAttrInfo.get(heroID, {})
starTalentAttrDict = heroStarTalentInfo.get(heroID, {})
breakAttrDict = heroBreakAttrInfo.get(heroID, {})
@@ -1033,6 +1051,9 @@
fatesValue = fatesAttrDict.get(attrID, 0)
fatesPer = fatesAttrDict.get(attrPerID, 0) / 10000.0 if attrPerID else 0
+
+ skinValue = skinAttrDict.get(attrID, 0)
+ skinPer = skinAttrDict.get(attrPerID, 0) / 10000.0 if attrPerID else 0
realmValue = realmAttrDict.get(attrID, 0)
realmPer = realmAttrDict.get(attrPerID, 0) / 10000.0 if attrPerID else 0
@@ -1064,6 +1085,7 @@
lineupHaloValue, lineupHaloPer = lineupHaloAttrInfo.get(attrID, 0), 0
fetterValue, fetterPer = fetterAttrDict.get(attrID, 0), 0
+ heroSkinValue, heroSkinPer = heroSkinAttrDict.get(attrID, 0), 0
heroLVValue, heroLVPer = heroLVAttrDict.get(attrID, 0), 0
starTalentValue, starTalentPer = starTalentAttrDict.get(attrID, 0), 0
breakLVValue, breakLVPer = breakAttrDict.get(attrID, 0), 0
@@ -1072,6 +1094,7 @@
heroSelfPer = selfAttrDict.get(attrPerID, 0) / 10000.0
lineupHaloPer = lineupHaloAttrInfo.get(attrPerID, 0) / 10000.0
fetterPer = fetterAttrDict.get(attrPerID, 0) / 10000.0
+ heroSkinPer = heroSkinAttrDict.get(attrPerID, 0) / 10000.0
heroLVPer = heroLVAttrDict.get(attrPerID, 0) / 10000.0
starTalentPer = starTalentAttrDict.get(attrPerID, 0) / 10000.0
breakLVPer = breakAttrDict.get(attrPerID, 0) / 10000.0
@@ -1080,9 +1103,10 @@
# 计算
attrParamDict = {"lvValue":lvValue, "equipValue":equipValue, "realmValue":realmValue, "realmPer":realmPer, "cardPer":cardPer,
"gubaoValue":gubaoValue, "gubaoPer":gubaoPer, "hjgValue":hjgValue, "hjgPer":hjgPer, "horseValue":horseValue, "horsePer":horsePer,
- "beautyValue":beautyValue, "beautyPer":beautyPer, "fatesValue":fatesValue, "fatesPer":fatesPer,
+ "beautyValue":beautyValue, "beautyPer":beautyPer, "fatesValue":fatesValue, "fatesPer":fatesPer, "skinValue":skinValue, "skinPer":skinPer,
"dingjungeValue":dingjungeValue, "dingjungePer":dingjungePer, "minggeValue":minggeValue, "minggePer":minggePer,
- "heroSelfValue":heroSelfValue, "heroSelfPer":heroSelfPer, "inheritPer":inheritPer, "heroLVValue":heroLVValue, "heroLVPer":heroLVPer,
+ "heroSelfValue":heroSelfValue, "heroSelfPer":heroSelfPer, "inheritPer":inheritPer, "heroLVValue":heroLVValue, "heroLVPer":heroLVPer,
+ "heroSkinValue":heroSkinValue, "heroSkinPer":heroSkinPer,
"lineupHaloValue":lineupHaloValue, "lineupHaloPer":lineupHaloPer, "fetterValue":fetterValue, "fetterPer":fetterPer,
"starTalentValue":starTalentValue, "starTalentPer":starTalentPer, "breakLVValue":breakLVValue, "breakLVPer":breakLVPer,
"awakeTalentValue":awakeTalentValue, "awakeTalentPer":awakeTalentPer,
--
Gitblit v1.8.0