From e41e926bbbd0255acde8b4b62d5558a025b83a02 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 11 六月 2025 17:18:27 +0800
Subject: [PATCH] 10263 【越南】【BT】增加后台执行命令清除本服榜单某个玩家ID数据: ClearBillboardData
---
ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/MineArea.py | 74 +++++++++++++++++++++++++++---------
1 files changed, 55 insertions(+), 19 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/MineArea.py b/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/MineArea.py
index acb9ec2..8f60b30 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/MineArea.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/MineArea.py
@@ -19,6 +19,8 @@
import PyDataManager
import GameWorldMineArea
import IpyGameDataPY
+import ShareDefine
+import ChConfig
import time
@@ -31,17 +33,20 @@
def OnExec(curPlayer, msgList):
if not msgList:
GameWorld.DebugAnswer(curPlayer, "以下是GameServer命令")
- GameWorld.DebugAnswer(curPlayer, "随机重新刷新: MineArea item [是否超级 坐标 索引]")
- GameWorld.DebugAnswer(curPlayer, "刷新指定等级: MineArea lv 等级 [坐标 索引]")
- GameWorld.DebugAnswer(curPlayer, "刷新指定物品: MineArea id 矿物ID [坐标 索引]")
+ GameWorld.DebugAnswer(curPlayer, "随机重新刷新: MineArea item [是否超级 坐标 索引 福地玩家ID]")
+ GameWorld.DebugAnswer(curPlayer, "刷新指定等级: MineArea lv 等级 [坐标 索引 福地玩家ID]")
+ GameWorld.DebugAnswer(curPlayer, "刷新指定物品: MineArea id 矿物ID [坐标 索引 福地玩家ID]")
+ GameWorld.DebugAnswer(curPlayer, "设置敌对玩家: MineArea rv 敌对玩家ID 正负敌对值")
GameWorld.DebugAnswer(curPlayer, "派工人拉物品: MineArea pull 索引 人数 状态")
GameWorld.DebugAnswer(curPlayer, "[工人玩家ID 福地玩家ID]")
GameWorld.DebugAnswer(curPlayer, "输出在拉物品: MineArea pulling [玩家ID]")
GameWorld.DebugAnswer(curPlayer, "输出福地物品: MineArea area [福地玩家ID]")
GameWorld.DebugAnswer(curPlayer, "清除福地物品: MineArea clear [福地玩家ID,isPop]")
GameWorld.DebugAnswer(curPlayer, "输出功能数据: MineArea info")
- GameWorld.DebugAnswer(curPlayer, "坐标: 0~100; []内为可选参数")
- GameWorld.DebugAnswer(curPlayer, "玩家ID可以是假人ID: 1~%s" % GameWorldMineArea.Def_FakeAreaCount)
+ GameWorld.DebugAnswer(curPlayer, "[]内为可选参数; ")
+ GameWorld.DebugAnswer(curPlayer, "坐标: 0~100;-1时随机坐标 ")
+ GameWorld.DebugAnswer(curPlayer, "索引: 0~5; -1时为全部索引")
+ GameWorld.DebugAnswer(curPlayer, "玩家ID可以是假人ID: 1~%s, 没填则默认自己" % GameWorldMineArea.Def_FakeAreaCount)
return
playerID = curPlayer.GetPlayerID()
@@ -49,25 +54,53 @@
if value1 == "item":
isSuper = msgList[1] if len(msgList) > 1 else 0
position = msgList[2] if len(msgList) > 2 else None
- refreshIndexList = [msgList[3]] if len(msgList) > 3 else None
- refreshDict = GameWorldMineArea.__DoMineItemRefresh(playerID, curPlayer, isSuper=isSuper, refreshIndexList=refreshIndexList, setPosition=position)
+ if position == -1:
+ position = None
+ refreshIndex = msgList[3] if len(msgList) > 3 else -1
+ refreshIndexList = [refreshIndex] if refreshIndex >=0 else None
+ areaPlayerID = msgList[4] if len(msgList) > 4 else playerID
+ areaPlayer = curPlayer if areaPlayerID == playerID else GameWorld.GetPlayerManager().FindPlayerByID(areaPlayerID)
+ refreshDict = GameWorldMineArea.__DoMineItemRefresh(areaPlayerID, areaPlayer, isSuper=isSuper, refreshIndexList=refreshIndexList, setPosition=position)
__PrintRefreshDict(curPlayer, refreshDict, "超级" if isSuper else "普通")
# 刷新指定等级
elif value1 == "lv":
itemLV = msgList[1] if len(msgList) > 1 else 1
position = msgList[2] if len(msgList) > 2 else None
- refreshIndexList = [msgList[3]] if len(msgList) > 3 else None
- refreshDict = GameWorldMineArea.__DoMineItemRefresh(playerID, curPlayer, refreshIndexList=refreshIndexList, setPosition=position, setItemLV=itemLV)
+ if position == -1:
+ position = None
+ refreshIndex = msgList[3] if len(msgList) > 3 else -1
+ refreshIndexList = [refreshIndex] if refreshIndex >=0 else None
+ areaPlayerID = msgList[4] if len(msgList) > 4 else playerID
+ areaPlayer = curPlayer if areaPlayerID == playerID else GameWorld.GetPlayerManager().FindPlayerByID(areaPlayerID)
+ refreshDict = GameWorldMineArea.__DoMineItemRefresh(areaPlayerID, areaPlayer, refreshIndexList=refreshIndexList, setPosition=position, setItemLV=itemLV)
__PrintRefreshDict(curPlayer, refreshDict, "指定等级:%s" % itemLV)
# 刷新指定物品
elif value1 == "id":
mineID = msgList[1] if len(msgList) > 1 else 1
position = msgList[2] if len(msgList) > 2 else None
- refreshIndexList = [msgList[3]] if len(msgList) > 3 else None
- refreshDict = GameWorldMineArea.__DoMineItemRefresh(playerID, curPlayer, refreshIndexList=refreshIndexList, setPosition=position, setMineID=mineID)
+ if position == -1:
+ position = None
+ refreshIndex = msgList[3] if len(msgList) > 3 else -1
+ refreshIndexList = [refreshIndex] if refreshIndex >=0 else None
+ areaPlayerID = msgList[4] if len(msgList) > 4 else playerID
+ areaPlayer = curPlayer if areaPlayerID == playerID else GameWorld.GetPlayerManager().FindPlayerByID(areaPlayerID)
+ refreshDict = GameWorldMineArea.__DoMineItemRefresh(areaPlayerID, areaPlayer, refreshIndexList=refreshIndexList, setPosition=position, setMineID=mineID)
__PrintRefreshDict(curPlayer, refreshDict, "指定ID:%s" % mineID)
+
+ # 设置敌对玩家
+ elif value1 == "rv":
+ tagPlayerID = msgList[1] if len(msgList) > 1 else 0
+ addValue = msgList[2] if len(msgList) > 2 else 1
+ if not tagPlayerID or playerID == tagPlayerID:
+ GameWorld.DebugAnswer(curPlayer, "敌对ID为0或自己:%s" % tagPlayerID)
+ return
+ if addValue > 0:
+ robValue = GameWorldMineArea.AddRobValue(playerID, tagPlayerID, addValue)
+ else:
+ robValue = GameWorldMineArea.DecRobValue(playerID, tagPlayerID, -addValue)
+ GameWorld.DebugAnswer(curPlayer, "更新与对方敌对值:%s, ID:%s" % (robValue, tagPlayerID))
# 派工人拉物品
elif value1 == "pull":
@@ -165,8 +198,9 @@
GameWorld.DebugLog(" MoveSpeed=%s,remainSeconds=%s(%s),EndTime=%s"
% (MoveSpeed, remainSeconds, remainHms, endTimeStr), areaPlayerID)
- GameWorld.DebugAnswer(curPlayer, "%s,ID(%s-%s),拉(%s-%s-%s),抢(%s-%s-%s),%s"
- % (index, MineID, MineType, WorkerCount, WorkerState, areaPlayerID, RobWorkerCount, RobWorkerState, RobPlayerID, remainHms))
+ Position = int(float(Position)) if Position else 0
+ GameWorld.DebugAnswer(curPlayer, "%s,ID(%s-%s-%s),拉(%s-%s),抢(%s-%s-%s),%s"
+ % (index, MineID, Position, MineType, WorkerCount, WorkerState, RobWorkerCount, RobWorkerState, RobPlayerID, remainHms))
return
def __ClearAreaData(curPlayer, areaPlayerID, isPop):
@@ -208,12 +242,14 @@
for playerID, neighborIDList in mineItemMgr.neighborIDListDict.items():
GameWorld.DebugLog("周围福地列表: playerID=%s,neighborIDList=%s" % (playerID, neighborIDList))
GameWorld.DebugAnswer(curPlayer, "周围福地列表:%s,%s" % (playerID, neighborIDList), False)
- for playerID, socialIDList in mineItemMgr.socialIDListDict.items():
- GameWorld.DebugLog("道友福地列表: playerID=%s,socialIDList=%s" % (playerID, socialIDList))
- GameWorld.DebugAnswer(curPlayer, "道友福地列表:%s" % (playerID), False)
- GameWorld.DebugAnswer(curPlayer, " %s" % socialIDList[:len(socialIDList)/2], False)
- GameWorld.DebugAnswer(curPlayer, " %s" % socialIDList[len(socialIDList)/2:], False)
-
+ playerRecMgr = PyDataManager.GetDBPlayerRecDataManager()
+ recDataDict = playerRecMgr.GetPlayerRecDataDict(ShareDefine.Def_PlayerRecType_MineAreaRecord)
+ for playerID, recDataList in recDataDict.items():
+ for recData in recDataList:
+ robValueList = recData.GetUserDataByKey(ChConfig.Def_RecDataKey_RobValueList, {})
+ GameWorld.DebugLog("敌对福地列表: playerID=%s,robValueList=%s" % (playerID, robValueList))
+ GameWorld.DebugAnswer(curPlayer, "敌对福地列表:%s,%s" % (playerID, robValueList), False)
+
for areaPlayerID, viewPlayerIDList in mineItemMgr.viewAreaPlayerIDDict.items():
GameWorld.DebugLog("查看福地列表: areaPlayerID=%s,viewPlayerIDList=%s" % (areaPlayerID, viewPlayerIDList))
GameWorld.DebugAnswer(curPlayer, "查看福地列表:%s,%s" % (areaPlayerID, viewPlayerIDList), False)
--
Gitblit v1.8.0