From 0312684d12e68285b0a0feecb5904c78ecba4731 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期二, 22 七月 2025 20:10:51 +0800 Subject: [PATCH] 121 【武将】武将系统-服务端(Hero命令支持一件上阵;一键满级;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHero.py | 28 +++++++++++++++++++--------- 1 files changed, 19 insertions(+), 9 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 6139b88..8165538 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHero.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHero.py @@ -419,7 +419,7 @@ starMax = InitStarUpper + addStarUpper return starMax -def DoHeroUpdStar(curPlayer, heroItem, updStar): +def DoHeroUpdStar(curPlayer, heroItem, updStar, isSync=True): ## 执行武将星级更新 curStar = heroItem.GetUserAttr(ShareDefine.Def_IudetHeroStar) addStar = updStar - curStar @@ -427,7 +427,8 @@ item.SetUserAttr(ShareDefine.Def_IudetHeroStar, updStar) if addStar > 0: __DoHeroStarTalentUp(item, addStar) - heroItem.Sync_Item() + if isSync: + heroItem.Sync_Item() itemIndex = heroItem.GetItemPlaceIndex() PlayerOnline.GetOnlinePlayer(curPlayer).OnHeroItemUpate([itemIndex]) @@ -575,9 +576,12 @@ PlayerOnline.GetOnlinePlayer(curPlayer).OnHeroItemUpate([itemIndex]) return -def SetHeroBreakLV(heroItem, breakLV): +def SetHeroBreakLV(heroItem, breakLV, isSync=True): ## 设置武将突破等级 - heroItem.SetUserAttr(ShareDefine.Def_IudetHeroBreakLV, breakLV) + item = heroItem.GetItem() + item.SetUserAttr(ShareDefine.Def_IudetHeroBreakLV, breakLV) + if isSync: + heroItem.Sync_Item() return #// B2 33 武将觉醒 #tagCSHeroAwake @@ -633,12 +637,13 @@ PlayerOnline.GetOnlinePlayer(curPlayer).OnHeroItemUpate([itemIndex]) return -def SetHeroAwakeLV(heroItem, awakeLV): +def SetHeroAwakeLV(heroItem, awakeLV, isSync=True): ## 设置武将觉醒等级 item = heroItem.GetItem() item.SetUserAttr(ShareDefine.Def_IudetHeroAwakeLV, awakeLV) unlockTalentSlotByAwake(item) - heroItem.Sync_Item() + if isSync: + heroItem.Sync_Item() return def unlockTalentSlotByAwake(singleItem): @@ -712,9 +717,13 @@ #}; def OnHeroAwakeSelectTalent(index, clientData, tick): curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) - playerID = curPlayer.GetPlayerID() itemIndex = clientData.ItemIndex selectIndex = clientData.SelectIndex + doSelectAwakeTalent(curPlayer, itemIndex, selectIndex) + return + +def doSelectAwakeTalent(curPlayer, itemIndex, selectIndex, isSync=True): + playerID = curPlayer.GetPlayerID() heroItem = GetHeroItem(curPlayer, itemIndex) if not heroItem: return @@ -757,10 +766,11 @@ for index, talentID in enumerate(idList): singleItem.AddUserAttr(ShareDefine.Def_IudetHeroTalentID, talentID) singleItem.AddUserAttr(ShareDefine.Def_IudetHeroTalentIDLV, lvList[index]) - + unlockTalentSlotByAwake(singleItem) - heroItem.Sync_Item() + if isSync: + heroItem.Sync_Item() PlayerOnline.GetOnlinePlayer(curPlayer).OnHeroItemUpate([itemIndex]) return -- Gitblit v1.8.0