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