From 2e3bfd7836c318ee39e4cdafd33ca2c50d6a7c1d Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期三, 19 十二月 2018 13:37:19 +0800
Subject: [PATCH] 5512 子 【开发】【1.4】跨服竞技场 / 【后端】【1.4】跨服竞技场开发 - 跨服接口和新增跨服竞技副本

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IPY_PlayerDefine.py     |    1 
 ServerPython/CoreServerGroup/GameServer/Script/IPY_ServerDefine.py                          |    1 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/Cross.py    |   46 +++++++++++++++++++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IPY_ServerDefine.py     |    1 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IPY_GameObj.py          |    1 
 ServerPython/CoreServerGroup/GameServer/Script/IPY_PlayerDefine.py                          |    1 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py      |   11 +++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py |    2 
 ServerPython/CoreServerGroup/GameServer/Script/IPY_GameServer1.py                           |    1 
 9 files changed, 64 insertions(+), 1 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/IPY_GameServer1.py b/ServerPython/CoreServerGroup/GameServer/Script/IPY_GameServer1.py
index f6a475f..f2138ba 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/IPY_GameServer1.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/IPY_GameServer1.py
@@ -994,6 +994,7 @@
     def SendToDBGMCommandResult(self, *args): return _IPY_GameServer1.IPY_GameWorld_SendToDBGMCommandResult(self, *args)
     def SendDBOper(self, *args): return _IPY_GameServer1.IPY_GameWorld_SendDBOper(self, *args)
     def SendBroadcastMergeClient(self, *args): return _IPY_GameServer1.IPY_GameWorld_SendBroadcastMergeClient(self, *args)
+    def SendMergeMsgToClientByGroupID(self, *args): return _IPY_GameServer1.IPY_GameWorld_SendMergeMsgToClientByGroupID(self, *args)
     def SendProxyDBOper(self, *args): return _IPY_GameServer1.IPY_GameWorld_SendProxyDBOper(self, *args)
     def SendMergerChildToCenterStringData(self, *args): return _IPY_GameServer1.IPY_GameWorld_SendMergerChildToCenterStringData(self, *args)
 IPY_GameWorld_swigregister = _IPY_GameServer1.IPY_GameWorld_swigregister
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/IPY_PlayerDefine.py b/ServerPython/CoreServerGroup/GameServer/Script/IPY_PlayerDefine.py
index d738ed7..0c369c0 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/IPY_PlayerDefine.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/IPY_PlayerDefine.py
@@ -969,6 +969,7 @@
 fbtAllByCountry = _IPY_PlayerDefine.fbtAllByCountry
 fbtAll = _IPY_PlayerDefine.fbtAll
 fbtVsRoom = _IPY_PlayerDefine.fbtVsRoom
+fbtCrossVSRoom = _IPY_PlayerDefine.fbtCrossVSRoom
 vftNull = _IPY_PlayerDefine.vftNull
 vftViewAll = _IPY_PlayerDefine.vftViewAll
 vftFamilyWar = _IPY_PlayerDefine.vftFamilyWar
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/IPY_ServerDefine.py b/ServerPython/CoreServerGroup/GameServer/Script/IPY_ServerDefine.py
index 82e3515..031ef7d 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/IPY_ServerDefine.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/IPY_ServerDefine.py
@@ -506,6 +506,7 @@
 gstMergerChildToCenter = _IPY_ServerDefine.gstMergerChildToCenter
 gstQueryRecharge = _IPY_ServerDefine.gstQueryRecharge
 gstFinishRecharge = _IPY_ServerDefine.gstFinishRecharge
+gstSendDBMergeClientMsg = _IPY_ServerDefine.gstSendDBMergeClientMsg
 gstMax = _IPY_ServerDefine.gstMax
 btgServerSupport = _IPY_ServerDefine.btgServerSupport
 btgLineID = _IPY_ServerDefine.btgLineID
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/Cross.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/Cross.py
new file mode 100644
index 0000000..400ee8f
--- /dev/null
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/Cross.py
@@ -0,0 +1,46 @@
+#!/usr/bin/python
+# -*- coding: GBK -*-
+#
+##@package
+#
+# @todo: 跨服
+#
+# @author: Alee
+# @date 2018-12-14 下午03:45:18
+# @version 1.0
+#
+# @note: 
+#
+#---------------------------------------------------------------------
+import ShareDefine
+import GameWorld
+import OpenFunc
+import PlayerHorse
+
+
+#---------------------------------------------------------------------
+#逻辑实现
+
+## GM命令执行入口
+#  @param curPlayer 当前玩家
+#  @param msgList 参数列表
+#  @return None
+#  @remarks 函数详细说明.
+def OnExec(curPlayer, msgList):
+    if not msgList:
+        GameWorld.DebugAnswer(curPlayer, "跨服地图ID 线路 坐标X 坐标Y")
+        return
+    
+    if len(msgList) != 4:
+        return
+    mapID = msgList[0]
+    dataMapID = msgList[0]
+    copyMapID = msgList[1]
+    posX = msgList[2]
+    posY = msgList[3]
+    
+    curPlayer.SendMergeRegisterPlayer(mapID, dataMapID, copyMapID, posX, posY)
+    curPlayer.SetExAttr5(1)
+    return
+
+
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IPY_GameObj.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IPY_GameObj.py
index b2765ee..9a01b11 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IPY_GameObj.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IPY_GameObj.py
@@ -1637,6 +1637,7 @@
     def GetGMOperManager(self): return _IPY_GameObj.IPY_Player_GetGMOperManager(self)
     def GetIsConfronting(self): return _IPY_GameObj.IPY_Player_GetIsConfronting(self)
     def SetIsConfronting(self, *args): return _IPY_GameObj.IPY_Player_SetIsConfronting(self, *args)
+    def SetForbiddenSyncClientState(self, *args): return _IPY_GameObj.IPY_Player_SetForbiddenSyncClientState(self, *args)
     def GetGMForbidenFight(self): return _IPY_GameObj.IPY_Player_GetGMForbidenFight(self)
     def SetGMForbidenFight(self, *args): return _IPY_GameObj.IPY_Player_SetGMForbidenFight(self, *args)
     def GetGMForbidenTalk(self): return _IPY_GameObj.IPY_Player_GetGMForbidenTalk(self)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IPY_PlayerDefine.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IPY_PlayerDefine.py
index 26fb8e1..92be6d6 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IPY_PlayerDefine.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IPY_PlayerDefine.py
@@ -970,6 +970,7 @@
 fbtAllByCountry = _IPY_PlayerDefine.fbtAllByCountry
 fbtAll = _IPY_PlayerDefine.fbtAll
 fbtVsRoom = _IPY_PlayerDefine.fbtVsRoom
+fbtCrossVSRoom = _IPY_PlayerDefine.fbtCrossVSRoom
 vftNull = _IPY_PlayerDefine.vftNull
 vftViewAll = _IPY_PlayerDefine.vftViewAll
 vftFamilyWar = _IPY_PlayerDefine.vftFamilyWar
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IPY_ServerDefine.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IPY_ServerDefine.py
index 8a8307e..40e9af0 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IPY_ServerDefine.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IPY_ServerDefine.py
@@ -507,6 +507,7 @@
 gstMergerChildToCenter = _IPY_ServerDefine.gstMergerChildToCenter
 gstQueryRecharge = _IPY_ServerDefine.gstQueryRecharge
 gstFinishRecharge = _IPY_ServerDefine.gstFinishRecharge
+gstSendDBMergeClientMsg = _IPY_ServerDefine.gstSendDBMergeClientMsg
 gstMax = _IPY_ServerDefine.gstMax
 btgServerSupport = _IPY_ServerDefine.btgServerSupport
 btgLineID = _IPY_ServerDefine.btgLineID
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
index cd781a7..ad65c9f 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -247,6 +247,11 @@
     #同步GameServer自己的地图ID
     curPlayer.Sync_GameServer_MapID()
     
+    # 屏蔽跨服下关闭和子服重复的数据的发送 pushsend接口, notifyall正常发送
+    # !!!必要发送的数据要注意位置
+    if GameWorld.IsMergeServer():
+        curPlayer.SetForbiddenSyncClientState(True)
+    
     SyncGuideState(curPlayer)
     
     #初始化玩家背包
@@ -569,6 +574,12 @@
     # 如果被禁言的,上线同步前端
     if curPlayer.GetGMForbidenTalk():
         curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_ForbidenTalk, curPlayer.GetGMForbidenTalk(), False)
+        
+    # 屏蔽跨服下关闭和子服重复的数据的发送 pushsend接口, notifyall正常发送
+    # !!!必要发送的数据要注意位置
+    if GameWorld.IsMergeServer():
+        curPlayer.SetForbiddenSyncClientState(False)
+        
     return
 
 
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
index 94d7f83..1cf419a 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -162,7 +162,7 @@
 # notifyCnt 代表广播周围玩家的数量,0为全部广播 -1为指定列表随机, 其他数字为指定指
 def PyNotifyAll(curPlayer, sendPack, notifySelf=True, notifyCnt=0):
     if notifyCnt == -1:
-        notifyCnt = random.choice((6, 6, 10, 10, 20))
+        notifyCnt = 8
     #GameWorld.DebugLog("PyNotifyAll %s"%notifyCnt)
 
     curPlayer.NotifyAll(sendPack.GetBuffer(), sendPack.GetLength(), notifySelf, notifyCnt)

--
Gitblit v1.8.0