From 46f1b3554ca7c3eeea118aaf80fe756bebdfde93 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 09 二月 2026 13:46:54 +0800
Subject: [PATCH] 121 【武将】武将系统-服务端(修复武将修改皮肤战斗时不生效bug;Hero命令增加切换皮肤;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHero.py | 27 ++++++++++++++++++++-------
1 files changed, 20 insertions(+), 7 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHero.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHero.py
index 844e7e7..aa0880c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHero.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHero.py
@@ -1019,6 +1019,10 @@
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
itemIndex = clientData.ItemIndex
skinIndex = clientData.SkinIndex
+ DoHeroWearSkin(curPlayer, itemIndex, skinIndex)
+ return
+
+def DoHeroWearSkin(curPlayer, itemIndex, skinIndex):
heroItem = GetHeroItem(curPlayer, itemIndex)
if not heroItem:
return
@@ -1038,7 +1042,7 @@
heroItem.SetUserAttr(ShareDefine.Def_IudetHeroSkin, skinIndex)
PlayerOnline.GetOnlinePlayer(curPlayer).OnHeroItemUpate(heroItem) # 切换皮肤
- return
+ return True
def ActiveHeroSkin(curPlayer, heroID, skinIndex, isActive=True):
skinState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HeroSkin % heroID)
@@ -1418,21 +1422,30 @@
shapeType = 0#clientData.ShapeType
heroPosList = clientData.HeroPosList
- heroPosDict = {}
- indexList = []
+ itemIndexPosDict = {}
for posInfo in heroPosList:
posNum = posInfo.PosNum
itemIndex = posInfo.ItemIndex
+ itemIndexPosDict[itemIndex] = posNum
+
+ DoSaveHeroPreset(curPlayer, presetID, itemIndexPosDict, shapeType)
+ return
+
+def DoSaveHeroPreset(curPlayer, presetID, itemIndexPosDict, shapeType=0):
+
+ if not PlayerPreset.GetFuncPresetIDState(curPlayer, presetID, ShareDefine.FuncPreset_Hero):
+ GameWorld.DebugLog("该武将阵容预设不可用! presetID=%s" % presetID)
+ return
+
+ heroPosDict = {}
+ indexList = []
+ for itemIndex, posNum in itemIndexPosDict.items():
if itemIndex in indexList:
# 单武将只能一个位置,一个位置只能对应唯一武将单位
continue
indexList.append(itemIndex)
heroPosDict[posNum] = itemIndex
- if not PlayerPreset.GetFuncPresetIDState(curPlayer, presetID, ShareDefine.FuncPreset_Hero):
- GameWorld.DebugLog("该武将阵容预设不可用! presetID=%s" % presetID)
- return
-
GameWorld.DebugLog("保存武将预设阵容: presetID=%s, %s" % (presetID, heroPosDict), curPlayer.GetPlayerID())
curPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptHero)
# 直接重置旧阵型
--
Gitblit v1.8.0