9415 【BT】【后端】古神战场(召集队伍可设置是否仅召集本服玩家)
# Conflicts:
# ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmMsg.py
| | |
| | | Writer = hxp
|
| | | Releaser = hxp
|
| | | RegType = 0
|
| | | RegisterPackCount = 2
|
| | | RegisterPackCount = 3
|
| | |
|
| | | PacketCMD_1=0xC0
|
| | | PacketSubCMD_1=0x07
|
| | |
| | | PacketSubCMD_2=0x08
|
| | | PacketCallFunc_2=OnCrossBattlefieldCallKick
|
| | |
|
| | | PacketCMD_3=0xC0
|
| | | PacketSubCMD_3=0x03
|
| | | PacketCallFunc_3=OnCrossBattlefieldCallChange
|
| | |
|
| | | [CrossRealmPK]
|
| | | ScriptName = GameWorldLogic\CrossRealmPK.py
|
| | | Writer = hxp
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # C0 09 跨服战场召集场次修改 #tagCGCrossBattlefieldCallChange
|
| | |
|
| | | class tagCGCrossBattlefieldCallChange(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("Hour", c_ubyte), #战场开启时
|
| | | ("Minute", c_ubyte), #战场开启分
|
| | | ("ServerOnly", c_ubyte), #是否仅本服玩家可加入,0-否,1-是
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xC0
|
| | | self.SubCmd = 0x09
|
| | | return
|
| | |
|
| | | def ReadData(self, stringData, _pos=0, _len=0):
|
| | | self.Clear()
|
| | | memmove(addressof(self), stringData[_pos:], self.GetLength())
|
| | | return _pos + self.GetLength()
|
| | |
|
| | | def Clear(self):
|
| | | self.Cmd = 0xC0
|
| | | self.SubCmd = 0x09
|
| | | self.Hour = 0
|
| | | self.Minute = 0
|
| | | self.ServerOnly = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCGCrossBattlefieldCallChange)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// C0 09 跨服战场召集场次修改 //tagCGCrossBattlefieldCallChange:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | Hour:%d,
|
| | | Minute:%d,
|
| | | ServerOnly:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.Hour,
|
| | | self.Minute,
|
| | | self.ServerOnly
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCGCrossBattlefieldCallChange=tagCGCrossBattlefieldCallChange()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGCrossBattlefieldCallChange.Cmd,m_NAtagCGCrossBattlefieldCallChange.SubCmd))] = m_NAtagCGCrossBattlefieldCallChange
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # C0 08 跨服战场召集场次踢人 #tagCGCrossBattlefieldCallKick
|
| | |
|
| | | class tagCGCrossBattlefieldCallKick(Structure):
|
| | |
| | | ("Hour", c_ubyte), #战场开启时
|
| | | ("Minute", c_ubyte), #战场开启分
|
| | | ("Faction", c_ubyte), #阵营 1-红;2-蓝
|
| | | ("ServerOnly", c_ubyte), #是否仅本服玩家可加入,0-否,1-是
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | |
| | | self.Hour = 0
|
| | | self.Minute = 0
|
| | | self.Faction = 0
|
| | | self.ServerOnly = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | |
| | | SubCmd:%s,
|
| | | Hour:%d,
|
| | | Minute:%d,
|
| | | Faction:%d
|
| | | Faction:%d,
|
| | | ServerOnly:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.Hour,
|
| | | self.Minute,
|
| | | self.Faction
|
| | | self.Faction,
|
| | | self.ServerOnly
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
| | | class tagGCCrossBattlefieldBuyPlayer(Structure):
|
| | | BuyPlayerID = 0 #(DWORD BuyPlayerID)//购买的玩家ID,即召集人
|
| | | Faction = 0 #(BYTE Faction)//阵营 1-红;2-蓝
|
| | | ServerOnly = 0 #(BYTE ServerOnly)//是否仅本服玩家可加入,0-否,1-是
|
| | | FactionPlayerCount = 0 #(BYTE FactionPlayerCount)
|
| | | FactionPlayerList = list() #(vector<tagGCCrossBattlefieldPlayer> FactionPlayerList)//阵营所有玩家列表,包含召集人
|
| | | data = None
|
| | |
| | | self.Clear()
|
| | | self.BuyPlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.Faction,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.ServerOnly,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.FactionPlayerCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.FactionPlayerCount):
|
| | | temFactionPlayerList = tagGCCrossBattlefieldPlayer()
|
| | |
| | | def Clear(self):
|
| | | self.BuyPlayerID = 0
|
| | | self.Faction = 0
|
| | | self.ServerOnly = 0
|
| | | self.FactionPlayerCount = 0
|
| | | self.FactionPlayerList = list()
|
| | | return
|
| | |
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 4
|
| | | length += 1
|
| | | length += 1
|
| | | length += 1
|
| | | for i in range(self.FactionPlayerCount):
|
| | |
| | | data = ''
|
| | | data = CommFunc.WriteDWORD(data, self.BuyPlayerID)
|
| | | data = CommFunc.WriteBYTE(data, self.Faction)
|
| | | data = CommFunc.WriteBYTE(data, self.ServerOnly)
|
| | | data = CommFunc.WriteBYTE(data, self.FactionPlayerCount)
|
| | | for i in range(self.FactionPlayerCount):
|
| | | data = CommFunc.WriteString(data, self.FactionPlayerList[i].GetLength(), self.FactionPlayerList[i].GetBuffer())
|
| | |
| | | DumpString = '''
|
| | | BuyPlayerID:%d,
|
| | | Faction:%d,
|
| | | ServerOnly:%d,
|
| | | FactionPlayerCount:%d,
|
| | | FactionPlayerList:%s
|
| | | '''\
|
| | | %(
|
| | | self.BuyPlayerID,
|
| | | self.Faction,
|
| | | self.ServerOnly,
|
| | | self.FactionPlayerCount,
|
| | | "..."
|
| | | )
|
| | |
| | | value2:hmNum 时分场次编号
|
| | | value3:playerID 购买的玩家ID
|
| | | value4:factionID 所选择的阵营ID
|
| | | value5:serverOnly 是否仅本服玩家可加入,0-否,1-是
|
| | |
|
| | | StrValue3:[callPlayerID,...] 召集来的玩家ID,包含自己
|
| | | '''
|
| | |
| | | self.zoneID = 0
|
| | | self.playerID = 0
|
| | | self.factionID = 0
|
| | | self.serverOnly = 0
|
| | | self.callPlayerIDList = []
|
| | |
|
| | | # 子服用,跨服服务器同步数据时负值; 不存库,玩家属性缓存信息,本服玩家取自己服务器最新缓存
|
| | |
| | | "RealmLV":cacheDict["RealmLV"], "FightPower":cacheDict["FightPower"]}
|
| | |
|
| | | return {"buyTime":self.buyTime, "hmNum":self.hmNum, "zoneID":self.zoneID, "playerID":self.playerID, "factionID":self.factionID,
|
| | | "callPlayerIDList":self.callPlayerIDList, "callPlayerDict":self.callPlayerDict}
|
| | | "serverOnly":self.serverOnly, "callPlayerIDList":self.callPlayerIDList, "callPlayerDict":self.callPlayerDict}
|
| | |
|
| | | def SetAttr(self, attrDict):
|
| | | for k, v in attrDict.items():
|
| | |
| | | hmNum = recData.GetValue2()
|
| | | playerID = recData.GetValue3()
|
| | | factionID = recData.GetValue4()
|
| | | serverOnly = recData.GetValue5()
|
| | |
|
| | | strValue3 = recData.GetStrValue3()
|
| | |
|
| | |
| | | buyRec.hmNum = hmNum
|
| | | buyRec.playerID = playerID
|
| | | buyRec.factionID = factionID
|
| | | buyRec.serverOnly = serverOnly
|
| | | buyRec.callPlayerIDList = eval(strValue3) if strValue3 else []
|
| | |
|
| | | buyPlayerInfo = GetBuyPlayerInfo(zoneID, hmNum)
|
| | |
| | | recData.SetValue2(buyRec.hmNum)
|
| | | recData.SetValue3(buyRec.playerID)
|
| | | recData.SetValue4(buyRec.factionID)
|
| | | recData.SetValue5(buyRec.serverOnly)
|
| | |
|
| | | recData.SetStrValue3(str(buyRec.callPlayerIDList).replace(" ", ""))
|
| | |
|
| | |
| | | openHour = msgData["openHour"]
|
| | | openMinute = msgData["openMinute"]
|
| | | faction = msgData["faction"]
|
| | | serverOnly = msgData.get("serverOnly", 0)
|
| | |
|
| | | hmNum = GetHMNum(openHour, openMinute)
|
| | |
|
| | |
| | | buyRec.playerID = playerID
|
| | | buyRec.factionID = faction
|
| | | buyRec.callPlayerIDList = [playerID]
|
| | | buyRec.serverOnly = serverOnly
|
| | | buyPlayerInfo[playerID] = buyRec
|
| | |
|
| | | GameWorld.DebugLog("玩家购买开启召集场次! zoneID=%s,openHour=%s,openMinute=%s" % (zoneID, openHour, openMinute), playerID)
|
| | | GameWorld.DebugLog("玩家购买开启召集场次! zoneID=%s,openHour=%s,openMinute=%s,faction=%s,serverOnly=%s" |
| | | % (zoneID, openHour, openMinute, faction, serverOnly), playerID)
|
| | |
|
| | | # 上榜
|
| | | billboardCallCountLimit = IpyGameDataPY.GetFuncCfg("CrossBattlefieldBillboard", 1) # 周召集榜上榜至少次数
|
| | |
| | |
|
| | | serverGroupIDList = zoneIpyData.GetServerGroupIDList()
|
| | | msgData.update({"opType":"CallKick"})
|
| | | Send_CrossServerMsg_BattlefieldBuy(zoneID, serverGroupIDList, msgData)
|
| | | return
|
| | |
|
| | | def ClientServerMsg_BattlefieldCallChange(serverGroupID, msgData):
|
| | | |
| | | openHour = msgData["openHour"]
|
| | | openMinute = msgData["openMinute"]
|
| | | serverOnly = msgData["serverOnly"]
|
| | | playerID = msgData["playerID"]
|
| | | |
| | | zoneIpyData = CrossRealmPK.GetCrossPKServerGroupZone(serverGroupID)
|
| | | if not zoneIpyData:
|
| | | return
|
| | | zoneID = zoneIpyData.GetZoneID()
|
| | | |
| | | hmNum = GetHMNum(openHour, openMinute)
|
| | | buyPlayerInfo = GetBuyPlayerInfo(zoneID, hmNum)
|
| | | if playerID not in buyPlayerInfo:
|
| | | GameWorld.ErrLog("跨服战场不存在该玩家的召集队伍! hmNum=%s,playerID=%s" % (hmNum, playerID), playerID)
|
| | | return
|
| | | buyRec = buyPlayerInfo[playerID]
|
| | | buyRec.serverOnly = 1 if serverOnly else 0
|
| | | |
| | | GameWorld.DebugLog("玩家召集队伍修改! zoneID=%s,openHour=%s,openMinute=%s,serverOnly=%s" |
| | | % (zoneID, openHour, openMinute, serverOnly), playerID)
|
| | | |
| | | #SyncMapServerCrossBattlefieldBuyInfo()
|
| | | |
| | | serverGroupIDList = zoneIpyData.GetServerGroupIDList()
|
| | | msgData.update({"opType":"CallChange"})
|
| | | Send_CrossServerMsg_BattlefieldBuy(zoneID, serverGroupIDList, msgData)
|
| | | return
|
| | |
|
| | |
| | | elif opType == "CallKick":
|
| | | pass
|
| | |
|
| | | elif opType == "CallChange":
|
| | | pass
|
| | | |
| | | return
|
| | |
|
| | | def SyncCrossBattlefieldBuyInfo(curPlayer, zoneID, hmNum=None):
|
| | |
| | | buyPlayerPack = ChPyNetSendPack.tagGCCrossBattlefieldBuyPlayer()
|
| | | buyPlayerPack.BuyPlayerID = buyPlayerID
|
| | | buyPlayerPack.Faction = buyRec.factionID
|
| | | buyPlayerPack.ServerOnly = buyRec.serverOnly
|
| | | buyPlayerPack.FactionPlayerList = []
|
| | |
|
| | | for callPlayerID in buyRec.callPlayerIDList:
|
| | |
| | | GameWorld.DebugLog("召集人数已满! hmNum=%s,buyPlayerID=%s,callPlayerIDList=%s" % (hmNum, buyPlayerID, buyRec.callPlayerIDList), playerID)
|
| | | return
|
| | |
|
| | | if buyRec.serverOnly and not PlayerControl.GetDBPlayerAccIDByID(buyPlayerID):
|
| | | PlayerControl.NotifyCode(curPlayer, "CrossBattlefieldCallServerOnly")
|
| | | #GameWorld.DebugLog("非本服玩家,无法加入其购买的召集队伍! hmNum=%s,buyPlayerID=%s,serverOnly=%s" % (hmNum, buyPlayerID, buyRec.serverOnly), playerID)
|
| | | return
|
| | | |
| | | # 请求查询跨服服务器
|
| | | dataMsg = {"openHour":openHour, "openMinute":openMinute, "buyPlayerID":buyPlayerID, "tagPlayerID":tagPlayerID, "playerID":playerID}
|
| | | CrossRealmMsg.SendMsgToCrossServer(ShareDefine.ClientServerMsg_BattlefieldCallJoin, dataMsg)
|
| | |
| | | CrossRealmMsg.SendMsgToCrossServer(ShareDefine.ClientServerMsg_BattlefieldCallKick, dataMsg)
|
| | | return
|
| | |
|
| | | #// C0 09 跨服战场召集场次修改 #tagCGCrossBattlefieldCallChange
|
| | | #
|
| | | #struct tagCGCrossBattlefieldCallChange
|
| | | #{
|
| | | # tagHead Head;
|
| | | # BYTE Hour; //战场开启时
|
| | | # BYTE Minute; //战场开启分
|
| | | # BYTE ServerOnly; //是否仅本服玩家可加入,0-否,1-是
|
| | | #};
|
| | | def OnCrossBattlefieldCallChange(index, clientData, tick):
|
| | | if GameWorld.IsCrossServer():
|
| | | return
|
| | | |
| | | curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
| | | playerID = curPlayer.GetPlayerID()
|
| | | openHour = clientData.Hour
|
| | | openMinute = clientData.Minute
|
| | | serverOnly = clientData.ServerOnly
|
| | | |
| | | # 请求查询跨服服务器
|
| | | dataMsg = {"openHour":openHour, "openMinute":openMinute, "serverOnly":serverOnly, "playerID":playerID}
|
| | | CrossRealmMsg.SendMsgToCrossServer(ShareDefine.ClientServerMsg_BattlefieldCallChange, dataMsg)
|
| | | return
|
| | |
| | | ClientServerMsg_AddBuff = "AddBuff" # 添加BUFF
|
| | | ClientServerMsg_LuckyCloudBuy = "LuckyCloudBuy" # 幸运云购
|
| | | ClientServerMsg_BattlefieldBuyOpen = "BattlefieldBuyOpen" # 跨服战场购买召集
|
| | | ClientServerMsg_BattlefieldCallChange = "BattlefieldCallChange" # 跨服战场召集 - 修改
|
| | | ClientServerMsg_BattlefieldCallJoin = "BattlefieldCallJoin" # 跨服战场召集 - 加入
|
| | | ClientServerMsg_BattlefieldCallKick = "BattlefieldCallKick" # 跨服战场召集 - 踢出
|
| | |
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # C0 09 跨服战场召集场次修改 #tagCGCrossBattlefieldCallChange
|
| | |
|
| | | class tagCGCrossBattlefieldCallChange(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("Hour", c_ubyte), #战场开启时
|
| | | ("Minute", c_ubyte), #战场开启分
|
| | | ("ServerOnly", c_ubyte), #是否仅本服玩家可加入,0-否,1-是
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xC0
|
| | | self.SubCmd = 0x09
|
| | | return
|
| | |
|
| | | def ReadData(self, stringData, _pos=0, _len=0):
|
| | | self.Clear()
|
| | | memmove(addressof(self), stringData[_pos:], self.GetLength())
|
| | | return _pos + self.GetLength()
|
| | |
|
| | | def Clear(self):
|
| | | self.Cmd = 0xC0
|
| | | self.SubCmd = 0x09
|
| | | self.Hour = 0
|
| | | self.Minute = 0
|
| | | self.ServerOnly = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCGCrossBattlefieldCallChange)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// C0 09 跨服战场召集场次修改 //tagCGCrossBattlefieldCallChange:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | Hour:%d,
|
| | | Minute:%d,
|
| | | ServerOnly:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.Hour,
|
| | | self.Minute,
|
| | | self.ServerOnly
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCGCrossBattlefieldCallChange=tagCGCrossBattlefieldCallChange()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGCrossBattlefieldCallChange.Cmd,m_NAtagCGCrossBattlefieldCallChange.SubCmd))] = m_NAtagCGCrossBattlefieldCallChange
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # C0 08 跨服战场召集场次踢人 #tagCGCrossBattlefieldCallKick
|
| | |
|
| | | class tagCGCrossBattlefieldCallKick(Structure):
|
| | |
| | | ("Hour", c_ubyte), #战场开启时
|
| | | ("Minute", c_ubyte), #战场开启分
|
| | | ("Faction", c_ubyte), #阵营 1-红;2-蓝
|
| | | ("ServerOnly", c_ubyte), #是否仅本服玩家可加入,0-否,1-是
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | |
| | | self.Hour = 0
|
| | | self.Minute = 0
|
| | | self.Faction = 0
|
| | | self.ServerOnly = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | |
| | | SubCmd:%s,
|
| | | Hour:%d,
|
| | | Minute:%d,
|
| | | Faction:%d
|
| | | Faction:%d,
|
| | | ServerOnly:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.Hour,
|
| | | self.Minute,
|
| | | self.Faction
|
| | | self.Faction,
|
| | | self.ServerOnly
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
| | | class tagGCCrossBattlefieldBuyPlayer(Structure):
|
| | | BuyPlayerID = 0 #(DWORD BuyPlayerID)//购买的玩家ID,即召集人
|
| | | Faction = 0 #(BYTE Faction)//阵营 1-红;2-蓝
|
| | | ServerOnly = 0 #(BYTE ServerOnly)//是否仅本服玩家可加入,0-否,1-是
|
| | | FactionPlayerCount = 0 #(BYTE FactionPlayerCount)
|
| | | FactionPlayerList = list() #(vector<tagGCCrossBattlefieldPlayer> FactionPlayerList)//阵营所有玩家列表,包含召集人
|
| | | data = None
|
| | |
| | | self.Clear()
|
| | | self.BuyPlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.Faction,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.ServerOnly,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.FactionPlayerCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.FactionPlayerCount):
|
| | | temFactionPlayerList = tagGCCrossBattlefieldPlayer()
|
| | |
| | | def Clear(self):
|
| | | self.BuyPlayerID = 0
|
| | | self.Faction = 0
|
| | | self.ServerOnly = 0
|
| | | self.FactionPlayerCount = 0
|
| | | self.FactionPlayerList = list()
|
| | | return
|
| | |
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 4
|
| | | length += 1
|
| | | length += 1
|
| | | length += 1
|
| | | for i in range(self.FactionPlayerCount):
|
| | |
| | | data = ''
|
| | | data = CommFunc.WriteDWORD(data, self.BuyPlayerID)
|
| | | data = CommFunc.WriteBYTE(data, self.Faction)
|
| | | data = CommFunc.WriteBYTE(data, self.ServerOnly)
|
| | | data = CommFunc.WriteBYTE(data, self.FactionPlayerCount)
|
| | | for i in range(self.FactionPlayerCount):
|
| | | data = CommFunc.WriteString(data, self.FactionPlayerList[i].GetLength(), self.FactionPlayerList[i].GetBuffer())
|
| | |
| | | DumpString = '''
|
| | | BuyPlayerID:%d,
|
| | | Faction:%d,
|
| | | ServerOnly:%d,
|
| | | FactionPlayerCount:%d,
|
| | | FactionPlayerList:%s
|
| | | '''\
|
| | | %(
|
| | | self.BuyPlayerID,
|
| | | self.Faction,
|
| | | self.ServerOnly,
|
| | | self.FactionPlayerCount,
|
| | | "..."
|
| | | )
|
| | |
| | | # BYTE Hour; //战场开启时
|
| | | # BYTE Minute; //战场开启分
|
| | | # BYTE Faction; //阵营 1-红;2-蓝
|
| | | # BYTE ServerOnly; //是否仅本服玩家可加入,0-否,1-是
|
| | | #};
|
| | | def OnCrossBattlefieldBuyOpen(index, clientData, tick):
|
| | | curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
| | |
| | | hour = clientData.Hour
|
| | | minute = clientData.Minute
|
| | | faction = clientData.Faction
|
| | | serverOnly = clientData.ServerOnly
|
| | |
|
| | | if GameWorld.IsCrossServer():
|
| | | GameWorld.DebugLog("跨服服务器无法发起匹配!", playerID)
|
| | |
| | | return
|
| | |
|
| | | dataMsg = {"openHour":hour, "openMinute":minute, "faction":faction, "todayBuyOpenCount":todayBuyOpenCount,
|
| | | "serverOnly":serverOnly,
|
| | | "accID":curPlayer.GetAccID(),
|
| | | "playerID":playerID,
|
| | | "playerName":CrossRealmPlayer.GetCrossPlayerName(curPlayer),
|
| | |
| | | ClientServerMsg_AddBuff = "AddBuff" # 添加BUFF
|
| | | ClientServerMsg_LuckyCloudBuy = "LuckyCloudBuy" # 幸运云购
|
| | | ClientServerMsg_BattlefieldBuyOpen = "BattlefieldBuyOpen" # 跨服战场购买召集
|
| | | ClientServerMsg_BattlefieldCallChange = "BattlefieldCallChange" # 跨服战场召集 - 修改
|
| | | ClientServerMsg_BattlefieldCallJoin = "BattlefieldCallJoin" # 跨服战场召集 - 加入
|
| | | ClientServerMsg_BattlefieldCallKick = "BattlefieldCallKick" # 跨服战场召集 - 踢出
|
| | |
|