From a53ebf8a767a99aee01b8ae39af45634766d0bb3 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 13 七月 2022 17:34:51 +0800
Subject: [PATCH] 9663 【越南】【BT7】【主干】防范NPC获取刷新点坐标报错

---
 ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerControl.py |   33 +++++++++++++++++++++++++++++++++
 1 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerControl.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerControl.py
index afba519..47443a1 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerControl.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerControl.py
@@ -29,9 +29,11 @@
 import GameWorld
 import PlayerDBOper
 import IPY_GameServer
+import PlayerDBGSEvent
 import IpyGameDataPY
 import CrossRealmMsg
 import ShareDefine
+import PyGameData
 import ChConfig
 import types
 #---------------------------------------------------------------------
@@ -53,8 +55,17 @@
     return
 
 def CrossNotifyCode(serverGroupID, playerID, msgMark, msgParamList=[]):
+    NotifyCodeCross(serverGroupID, playerID, msgMark, msgParamList)
+    return
+
+def NotifyCodeCross(serverGroupID, playerID, msgMark, msgParamList=[]):
     crossNotifyList = [{"Type":ShareDefine.CrossNotify_Player, "Params":[playerID, msgMark, msgParamList]}]
     CrossNotify([serverGroupID], crossNotifyList)
+    return
+
+def WorldNotifyCross(serverGroupIDList, country, msgMark, msgParamList=[]):
+    crossNotifyList = [GetCrossWorldNotifyInfo(country, msgMark, msgParamList)]
+    CrossNotify(serverGroupIDList, crossNotifyList)
     return
 
 def GetCrossWorldNotifyInfo(country, msgMark, msgParamList=[]):
@@ -94,6 +105,13 @@
         
         if notifyType == ShareDefine.CrossNotify_World:
             country, msgMark, msgParamList = params
+            openServerDayLimit = IpyGameDataPY.GetFuncCfg("CrossRealmCfg", 1)
+            if msgMark.startswith("CrossBattlefield"):
+                openServerDayLimit = IpyGameDataPY.GetFuncCfg("CrossRealmCfg", 2)
+            openServerDay = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_ServerDay) + 1
+            if openServerDay < openServerDayLimit:
+                GameWorld.DebugLog("开服天不足,不处理该跨服广播! openServerDay=%s < %s" % (openServerDay, openServerDayLimit))
+                continue
             WorldNotify(country, msgMark, msgParamList)
         elif notifyType == ShareDefine.CrossNotify_CrossAct:
             country, msgMark, msgParamList = params
@@ -187,7 +205,22 @@
 
     return NotifyCodeList
 
+#------------------------------------------------------------------------------ 
+def LoadDBPlayer():
+    if GameWorld.IsCrossServer():
+        return
+    PlayerDBOper.FindDBOper(PlayerDBOper.Table_DBPlayer, {}, {"PlayerID":1, "AccID":1, "_id":0}, LoadDBPlayerRet)
+    return
 
+def LoadDBPlayerRet(resultSetList, extendValueList):
+    for resultDict in resultSetList:
+        PyGameData.g_dbPlayerIDMap[resultDict["PlayerID"]] = resultDict["AccID"]
+    GameWorld.Log("启动服务器加载DBPlayer玩家账号ID对应关系! %s, %s" % (len(PyGameData.g_dbPlayerIDMap), PyGameData.g_dbPlayerIDMap))
+    return
+
+def GetDBPlayerAccIDByID(playerID):
+    ## 获取玩家表账号ID - 根据玩家ID, 可用于判断是否本服玩家
+    return PyGameData.g_dbPlayerIDMap.get(playerID, "")
 
 #waring:以下使用的扩展属性字段记录的属性类型必须和MapServer一致
 #------------------------------------------------------------------------------ 

--
Gitblit v1.8.0