From 7954987ea071032dea5a72f05ad95d7ea8bbf7aa Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 23 五月 2022 17:00:31 +0800
Subject: [PATCH] 9415 【BT】【后端】古神战场(战场GM命令CrossBattle 增加可虚拟参与玩家数据)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/CrossBattle.py | 63 +++++++++++++++++++++++++++++++
1 files changed, 63 insertions(+), 0 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/CrossBattle.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/CrossBattle.py
index 294314a..b81d84a 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/CrossBattle.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/CrossBattle.py
@@ -20,6 +20,8 @@
import ShareDefine
import ChConfig
import FBCommon
+import operator
+import random
## 逻辑实现
@@ -36,6 +38,8 @@
GameWorld.DebugAnswer(curPlayer, "设置阵营积分: CrossBattle 4 总积分 [可选阵营ID]")
GameWorld.DebugAnswer(curPlayer, "重新随机大奖: CrossBattle 5")
GameWorld.DebugAnswer(curPlayer, "复活阵营守卫: CrossBattle 6")
+ GameWorld.DebugAnswer(curPlayer, "虚拟参与玩家: CrossBattle 7 阵营ID 人数 积分")
+ GameWorld.DebugAnswer(curPlayer, "输出阵营玩家: CrossBattle 8 阵营ID")
GameWorld.DebugAnswer(curPlayer, "可选玩家/阵营ID没填则默认自身")
return
@@ -104,4 +108,63 @@
GameWorld.DebugAnswer(curPlayer, "复活阵营守卫! %s" % rebornNPCIDList)
return
+ # 虚拟参与玩家
+ if value1 == 7:
+ faction = cmdList[1] if len(cmdList) > 1 else 1
+ playerCount = cmdList[2] if len(cmdList) > 2 else 0
+ score = cmdList[3] if len(cmdList) > 3 else 0
+
+ fakePlayerID = 1000 # 假玩家ID
+ for f in [1, 2]:
+ fObj = GameLogic_CrossBattlefield.GetBattleFactionObj(f)
+ for playerID in fObj.factionPlayerDict.keys():
+ if playerID >= 10000:
+ continue
+ if playerID > fakePlayerID:
+ fakePlayerID = playerID
+
+ factionObj = GameLogic_CrossBattlefield.GetBattleFactionObj(faction)
+
+ for _ in xrange(playerCount):
+ fakePlayerID += 1
+ battleObj = GameLogic_CrossBattlefield.GetBattlePlayerObj(fakePlayerID)
+ battleObj.job = random.randint(1, 2)
+ battleObj.accID = "fakeAccID%s@test@s86" % fakePlayerID
+ battleObj.name = "fakeName%s" % fakePlayerID
+ battleObj.realmLV = random.randint(10, 20)
+ battleObj.fightPower = random.randint(10000000, 20000000)
+
+ battleObj.faction = faction
+ battleObj.factionObj = factionObj
+ if fakePlayerID not in factionObj.factionPlayerDict:
+ factionObj.factionPlayerDict[fakePlayerID] = battleObj
+
+ battleObj.addPlayerScore(None, score)
+
+ GameWorld.DebugAnswer(curPlayer, "虚拟参与玩家阵营(%s),人数(%s),积分(%s)" % (faction, playerCount, score))
+ return
+
+ # 输出阵营玩家
+ if value1 == 8:
+ printFaction = cmdList[1] if len(cmdList) > 1 else 0
+ for faction in [1, 2]:
+ if printFaction and printFaction != faction:
+ continue
+ factionObj = GameLogic_CrossBattlefield.GetBattleFactionObj(faction)
+
+ factionObj.battlePlayerSortList = factionObj.factionPlayerDict.values()
+ factionObj.battlePlayerSortList.sort(key=operator.attrgetter("score", "scoreSortTime"), reverse=True)
+ GameWorld.DebugAnswer(curPlayer, "------ 阵营(%s),人数(%s) ------" % (faction, len(factionObj.battlePlayerSortList)))
+
+ for num, batObj in enumerate(factionObj.battlePlayerSortList, 1):
+ battleObj = GameLogic_CrossBattlefield.GetBattlePlayerObj(batObj.playerID)
+ playerID = battleObj.playerID
+ playerName = battleObj.name.decode(GameWorld.GetCharacterEncoding()).encode(ShareDefine.Def_Game_Character_Encoding)
+ score = battleObj.score
+ superItemContribution = battleObj.superItemContribution
+ GameWorld.DebugAnswer(curPlayer, " %s %s:%s,得分:%s,贡献:%s" % (num, playerName, playerID, score, superItemContribution))
+
+ return
+
+
return
--
Gitblit v1.8.0