From 545986a8fdde345b28cf3004be84c6cfe79a3dc1 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 19 四月 2019 11:29:12 +0800 Subject: [PATCH] 6459 【后端】【2.0】缥缈仙域开发单(跨服分区逻辑优化,支持跨服妖王分区状态同步) --- ServerPython/CoreServerGroup/GameServer/Script/PyGameDataStruct.py | 88 ++++++++++++++++++++++++++++++-------------- 1 files changed, 60 insertions(+), 28 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/PyGameDataStruct.py b/ServerPython/CoreServerGroup/GameServer/Script/PyGameDataStruct.py index 8e1aa6e..3b6241c 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/PyGameDataStruct.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/PyGameDataStruct.py @@ -83,8 +83,10 @@ ('PlayerID', ctypes.c_ulong), ('FamilyID', ctypes.c_ulong), ('RecordType', ctypes.c_ubyte), + ('RecordResult', ctypes.c_ubyte), ('RecordTime', ctypes.c_char * 19), - ('RecordPrice', ctypes.c_ulong), + ('BidderPrice', ctypes.c_ulong), + ('BidderName', ctypes.c_char * 33), ('ItemID', ctypes.c_ulong), ('Count', ctypes.c_ushort), ('UserDataLen', ctypes.c_ushort), @@ -101,8 +103,10 @@ self.PlayerID = 0 self.FamilyID = 0 self.RecordType = 0 + self.RecordResult = 0 self.RecordTime = '' - self.RecordPrice = 0 + self.BidderPrice = 0 + self.BidderName = '' self.ItemID = 0 self.Count = 0 self.UserDataLen = 0 @@ -118,8 +122,10 @@ self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos) self.FamilyID, pos = CommFunc.ReadDWORD(buf, pos) self.RecordType, pos = CommFunc.ReadBYTE(buf, pos) + self.RecordResult, pos = CommFunc.ReadBYTE(buf, pos) self.RecordTime, pos = CommFunc.ReadString(buf, pos, 19) - self.RecordPrice, pos = CommFunc.ReadDWORD(buf, pos) + self.BidderPrice, pos = CommFunc.ReadDWORD(buf, pos) + self.BidderName, pos = CommFunc.ReadString(buf, pos, 33) self.ItemID, pos = CommFunc.ReadDWORD(buf, pos) self.Count, pos = CommFunc.ReadWORD(buf, pos) self.UserDataLen, pos = CommFunc.ReadWORD(buf, pos) @@ -133,8 +139,10 @@ buf = CommFunc.WriteDWORD(buf, self.PlayerID) buf = CommFunc.WriteDWORD(buf, self.FamilyID) buf = CommFunc.WriteBYTE(buf, self.RecordType) + buf = CommFunc.WriteBYTE(buf, self.RecordResult) buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 19, self.RecordTime) - buf = CommFunc.WriteDWORD(buf, self.RecordPrice) + buf = CommFunc.WriteDWORD(buf, self.BidderPrice) + buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 33, self.BidderName) buf = CommFunc.WriteDWORD(buf, self.ItemID) buf = CommFunc.WriteWORD(buf, self.Count) buf = CommFunc.WriteWORD(buf, self.UserDataLen) @@ -147,8 +155,10 @@ length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ubyte) + length += sizeof(ctypes.c_ubyte) length += sizeof(ctypes.c_char) * 19 length += sizeof(ctypes.c_ulong) + length += sizeof(ctypes.c_char) * 33 length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ushort) length += sizeof(ctypes.c_ushort) @@ -161,8 +171,10 @@ PlayerID = %s, FamilyID = %s, RecordType = %s, + RecordResult = %s, RecordTime = %s, - RecordPrice = %s, + BidderPrice = %s, + BidderName = %s, ItemID = %s, Count = %s, UserDataLen = %s, @@ -173,8 +185,10 @@ self.PlayerID, self.FamilyID, self.RecordType, + self.RecordResult, self.RecordTime, - self.RecordPrice, + self.BidderPrice, + self.BidderName, self.ItemID, self.Count, self.UserDataLen, @@ -195,6 +209,12 @@ self.RecordTime = Str else: self.RecordTime = Str[:19] + + def SetBidderName(self,Str): + if len(Str)<=33: + self.BidderName = Str + else: + self.BidderName = Str[:33] # 拍卖物品表 #tagDBAuctionItem @@ -585,14 +605,22 @@ def clear(self): memset(addressof(self), 0, self.getLength()) - def readData(self, buf, pos = 0, length = 0): if not pos <= length: return -1 if len(buf) < pos + self.getLength(): return -1 self.clear() - memmove(addressof(self), buf[pos:], self.getLength()) + self.ZoneID, pos = CommFunc.ReadBYTE(buf, pos) + self.SeasonID, pos = CommFunc.ReadBYTE(buf, pos) + self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos) + self.PlayerName, pos = CommFunc.ReadString(buf, pos, 33) + self.Job, pos = CommFunc.ReadBYTE(buf, pos) + self.FightPower, pos = CommFunc.ReadDWORD(buf, pos) + self.RealmLV, pos = CommFunc.ReadWORD(buf, pos) + self.PKScore, pos = CommFunc.ReadDWORD(buf, pos) + self.DanLV, pos = CommFunc.ReadBYTE(buf, pos) + self.Time, pos = CommFunc.ReadDWORD(buf, pos) return self.getLength() @@ -638,7 +666,7 @@ self.PlayerName = Str else: self.PlayerName = Str[:33] - + #仙魔之争记录表#tagDBPyXMZZ class tagDBPyXMZZ(Structure): @@ -775,14 +803,15 @@ def clear(self): memset(addressof(self), 0, self.getLength()) - def readData(self, buf, pos = 0, length = 0): if not pos <= length: return -1 if len(buf) < pos + self.getLength(): return -1 self.clear() - memmove(addressof(self), buf[pos:], self.getLength()) + self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos) + self.LineID, pos = CommFunc.ReadBYTE(buf, pos) + self.Rank, pos = CommFunc.ReadWORD(buf, pos) return self.getLength() @@ -807,7 +836,6 @@ self.ADOResult, ) return output - #Boss关注记录表#tagDBPyBossAttention @@ -870,7 +898,6 @@ return output - #交易所物品最近成交单价表#tagDBPyBourseItemLastPrice class tagDBPyBourseItemLastPrice(Structure): _pack_ = 1 @@ -888,14 +915,14 @@ def clear(self): memset(addressof(self), 0, self.getLength()) - def readData(self, buf, pos = 0, length = 0): if not pos <= length: return -1 if len(buf) < pos + self.getLength(): return -1 self.clear() - memmove(addressof(self), buf[pos:], self.getLength()) + self.ItemID, pos = CommFunc.ReadDWORD(buf, pos) + self.LastPrice, pos = CommFunc.ReadDWORD(buf, pos) return self.getLength() @@ -1081,7 +1108,6 @@ ) return output - #玩家黑名单 #tagDBPyPlayerBlack class tagDBPyPlayerBlack(Structure): _pack_ = 1 @@ -1099,14 +1125,14 @@ def clear(self): memset(addressof(self), 0, self.getLength()) - def readData(self, buf, pos = 0, length = 0): if not pos <= length: return -1 if len(buf) < pos + self.getLength(): return -1 self.clear() - memmove(addressof(self), buf[pos:], self.getLength()) + self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos) + self.TagID, pos = CommFunc.ReadDWORD(buf, pos) return self.getLength() @@ -1148,14 +1174,15 @@ def clear(self): memset(addressof(self), 0, self.getLength()) - def readData(self, buf, pos = 0, length = 0): if not pos <= length: return -1 if len(buf) < pos + self.getLength(): return -1 self.clear() - memmove(addressof(self), buf[pos:], self.getLength()) + self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos) + self.TagID, pos = CommFunc.ReadDWORD(buf, pos) + self.Timestamp, pos = CommFunc.ReadDWORD(buf, pos) return self.getLength() @@ -1198,14 +1225,14 @@ def clear(self): memset(addressof(self), 0, self.getLength()) - def readData(self, buf, pos = 0, length = 0): if not pos <= length: return -1 if len(buf) < pos + self.getLength(): return -1 self.clear() - memmove(addressof(self), buf[pos:], self.getLength()) + self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos) + self.TagID, pos = CommFunc.ReadDWORD(buf, pos) return self.getLength() @@ -1229,6 +1256,7 @@ ) return output + #玩家仇人表#tagPlayerEnemy class tagPlayerEnemy(Structure): _pack_ = 1 @@ -1247,14 +1275,15 @@ def clear(self): memset(addressof(self), 0, self.getLength()) - def readData(self, buf, pos = 0, length = 0): if not pos <= length: return -1 if len(buf) < pos + self.getLength(): return -1 self.clear() - memmove(addressof(self), buf[pos:], self.getLength()) + self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos) + self.TagID, pos = CommFunc.ReadDWORD(buf, pos) + self.Timestamp, pos = CommFunc.ReadDWORD(buf, pos) return self.getLength() @@ -1281,7 +1310,6 @@ return output - #个人社交总表 #tagPersonalSocial class tagPersonalSocial(Structure): _pack_ = 1 @@ -1304,14 +1332,19 @@ def clear(self): memset(addressof(self), 0, self.getLength()) - def readData(self, buf, pos = 0, length = 0): if not pos <= length: return -1 if len(buf) < pos + self.getLength(): return -1 self.clear() - memmove(addressof(self), buf[pos:], self.getLength()) + self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos) + self.PlayerName, pos = CommFunc.ReadString(buf, pos, 33) + self.Job, pos = CommFunc.ReadBYTE(buf, pos) + self.LV, pos = CommFunc.ReadWORD(buf, pos) + self.RealmLV, pos = CommFunc.ReadWORD(buf, pos) + self.OnlineType, pos = CommFunc.ReadBYTE(buf, pos) + self.RefCount, pos = CommFunc.ReadDWORD(buf, pos) return self.getLength() @@ -1352,5 +1385,4 @@ else: self.PlayerName = Str[:33] - -- Gitblit v1.8.0