From 7c12351394b2f17bcc5b25ca58455f143119ca93 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 10 十一月 2025 11:34:03 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(主线战斗额外功能逻辑提到B425标记外处理并同步;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_Arena.py | 46 ++++++++++++++++++++++++++++++----------------
1 files changed, 30 insertions(+), 16 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_Arena.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_Arena.py
index f17bec4..fb0c287 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_Arena.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_Arena.py
@@ -67,7 +67,7 @@
if not PlayerControl.HaveMoney(curPlayer, ShareDefine.TYPE_Price_ArenaTicket, 1):
return
- return True
+ return True, funcLineID
def GetFBPlayerLineupID(curPlayer, mapID, funcLineID):
## 获取玩家使用的攻防阵容ID
@@ -124,26 +124,12 @@
atkAddScore, defDecScore = winScoreInfo
GameWorld.DebugLog("scoreIndex=%s,winScoreInfo=%s" % (scoreIndex, winScoreInfo), playerID)
- if not PlayerControl.PayMoney(curPlayer, ShareDefine.TYPE_Price_ArenaTicket, 1):
- return
-
# 无论胜负,只要挑战都给固定奖励
awardItemList = IpyGameDataPY.GetFuncEvalCfg("ArenaSet", 4)
- ItemControler.GivePlayerItemOrMail(curPlayer, awardItemList, event=["Arena", False, {}], isNotifyAward=False)
-
- __updArenaBatRecord(curPlayer, turnFight, tagPlayerID, isWin, atkAddScore, defDecScore)
-
overMsg.update({"tagPlayerID":tagPlayerID, "atkAddScore":atkAddScore, "defDecScore":defDecScore,
FBCommon.Over_itemInfo:FBCommon.GetJsonItemList(awardItemList)})
- PlayerArena.Sync_ArenaInfo(curPlayer)
-
- # 战斗结束系统强制刷新匹配
- PlayerArena.DoArenaMatchRefresh(curPlayer, True, isSys=True)
-
- PlayerZhanling.AddZhanlingValue(curPlayer, PlayerZhanling.ZhanlingType_ArenaCnt, 1)
- PlayerGubao.AddGubaoSpecEffLayer(curPlayer, PlayerGubao.GubaoEffType_Arena, 1)
- PlayerActivity.AddDailyTaskValue(curPlayer, ChConfig.DailyTask_Arena, 1)
+ turnFight.awardData = [tagPlayerID, isWin, atkAddScore, defDecScore, awardItemList]
return
def __updArenaBatRecord(curPlayer, turnFight, tagPlayerID, isWin, atkAddScore, defDecScore):
@@ -212,3 +198,31 @@
if defDecScore: # 防守方仅变更时更新
PlayerBillboard.UpdateBillboardByID(tagPlayerID, ShareDefine.Def_BT_Arena, updScore)
return
+
+def OnTurnFightAward(curPlayer, turnFight, mapID, funcLineID, awardData):
+ ## 回合战斗结算奖励
+ if not curPlayer:
+ return
+
+ if not awardData:
+ return
+
+ tagPlayerID, isWin, atkAddScore, defDecScore, awardItemList = awardData
+
+ if not PlayerControl.PayMoney(curPlayer, ShareDefine.TYPE_Price_ArenaTicket, 1):
+ return
+
+ # 无论胜负,只要挑战都给固定奖励
+ ItemControler.GivePlayerItemOrMail(curPlayer, awardItemList, event=["Arena", False, {}], isNotifyAward=False)
+
+ __updArenaBatRecord(curPlayer, turnFight, tagPlayerID, isWin, atkAddScore, defDecScore)
+
+ PlayerArena.Sync_ArenaInfo(curPlayer)
+
+ # 战斗结束系统强制刷新匹配
+ PlayerArena.DoArenaMatchRefresh(curPlayer, True, isSys=True)
+
+ PlayerZhanling.AddZhanlingValue(curPlayer, PlayerZhanling.ZhanlingType_ArenaCnt, 1)
+ PlayerGubao.AddGubaoSpecEffLayer(curPlayer, PlayerGubao.GubaoEffType_Arena, 1)
+ PlayerActivity.AddDailyTaskValue(curPlayer, ChConfig.DailyTask_Arena, 1)
+ return
--
Gitblit v1.8.0