From 69871482099a1c7022cad6c8d8cd90d3b163f0f2 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期二, 25 十二月 2018 21:11:32 +0800 Subject: [PATCH] 5424 【后端】【1.4】跨服竞技场开发(增加赛季时间管理、赛区赛季榜单、玩家各种PK数据、各种奖励领取及邮件补发、王者法宝等级) --- ServerPython/CoreServerGroup/GameServer/Script/PyGameDataStruct.py | 80 ++++++++++++++++++++++++++++++++++++++++ 1 files changed, 80 insertions(+), 0 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/PyGameDataStruct.py b/ServerPython/CoreServerGroup/GameServer/Script/PyGameDataStruct.py index 8be9ddc..aa2cd6e 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/PyGameDataStruct.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/PyGameDataStruct.py @@ -15,6 +15,86 @@ from ctypes import (Structure, memset, memmove, sizeof, addressof, create_string_buffer, string_at) import CommFunc +# 跨服竞技场PK排行榜 #tagDBCrossPKBillboard +class tagDBCrossPKBillboard(Structure): + _pack_ = 1 + _fields_ = [ + ('ZoneID', ctypes.c_ubyte), + ('SeasonID', ctypes.c_ubyte), + ('PlayerID', ctypes.c_ulong), + ('PlayerName', ctypes.c_char * 33), + ('Job', ctypes.c_ubyte), + ('FightPower', ctypes.c_ulong), + ('RealmLV', ctypes.c_ushort), + ('PKScore', ctypes.c_ulong), + ('DanLV', ctypes.c_ubyte), + ('Time', ctypes.c_ulong), + ('ADOResult', ctypes.c_ulong), + ] + + def __init__(self): + Structure.__init__(self) + self.clear() + + + 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()) + return self.getLength() + + + def getBuffer(self): + buf = create_string_buffer(self.getLength()) + memmove(addressof(buf), addressof(self), self.getLength()) + return string_at(addressof(buf), self.getLength()) + + def getLength(self): + return sizeof(tagDBCrossPKBillboard) + + def outputString(self): + output = '''// 跨服竞技场PK排行榜 #tagDBCrossPKBillboard: + ZoneID = %s, + SeasonID = %s, + PlayerID = %s, + PlayerName = %s, + Job = %s, + FightPower = %s, + RealmLV = %s, + PKScore = %s, + DanLV = %s, + Time = %s, + ADOResult = %s, + '''%( + self.ZoneID, + self.SeasonID, + self.PlayerID, + self.PlayerName, + self.Job, + self.FightPower, + self.RealmLV, + self.PKScore, + self.DanLV, + self.Time, + self.ADOResult, + ) + return output + + #Char数组类型Set接口,使用该接口对此类型数据赋值,防止赋值的数据过长报错 + def SetPlayerName(self,Str): + if len(Str)<=33: + self.PlayerName = Str + else: + self.PlayerName = Str[:33] + + #仙魔之争记录表#tagDBPyXMZZ class tagDBPyXMZZ(Structure): _pack_ = 1 -- Gitblit v1.8.0