From 2411e93a5f03e488c2358957e99b074d0209b64c Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期三, 13 三月 2019 16:40:02 +0800
Subject: [PATCH] 6291 【后端】【2.0】限时仙盟boss(失败通知)
---
ServerPython/CoreServerGroup/GameServer/Script/PyGameDataStruct.py | 150 +++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 136 insertions(+), 14 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/PyGameDataStruct.py b/ServerPython/CoreServerGroup/GameServer/Script/PyGameDataStruct.py
index 5141fb0..b28d109 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/PyGameDataStruct.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/PyGameDataStruct.py
@@ -15,15 +15,78 @@
from ctypes import (Structure, memset, memmove, sizeof, addressof, create_string_buffer, string_at)
import CommFunc
+# 拍卖关注表 #tagDBAuctionAttention
+class tagDBAuctionAttention(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ('PlayerID', ctypes.c_ulong),
+ ('AttentionLen', ctypes.c_ubyte),
+ ('AttentionInfo', ctypes.c_char_p),
+ ('ADOResult', ctypes.c_ulong),
+ ]
+
+ def __init__(self):
+ Structure.__init__(self)
+ self.clear()
+
+ def clear(self):
+ self.PlayerID = 0
+ self.AttentionLen = 0
+ self.AttentionInfo = ''
+
+ def readData(self, buf, pos = 0, length = 0):
+ if not pos <= length:
+ return -1
+ if len(buf) < pos + self.getLength():
+ return -1
+ self.clear()
+ self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos)
+ self.AttentionLen, pos = CommFunc.ReadBYTE(buf, pos)
+ tmp, pos = CommFunc.ReadString(buf, pos, self.AttentionLen)
+ self.AttentionInfo = ctypes.c_char_p(tmp)
+ return self.getLength()
+
+ def getBuffer(self):
+ buf = ''
+ buf = CommFunc.WriteDWORD(buf, self.PlayerID)
+ buf = CommFunc.WriteBYTE(buf, self.AttentionLen)
+ buf = CommFunc.WriteString(buf, self.AttentionLen, self.AttentionInfo)
+ return buf
+
+ def getLength(self):
+ length = 0
+ length += sizeof(ctypes.c_ulong)
+ length += sizeof(ctypes.c_ubyte)
+ length += self.AttentionLen
+ return length
+
+ def outputString(self):
+ output = '''// 拍卖关注表 #tagDBAuctionAttention:
+ PlayerID = %s,
+ AttentionLen = %s,
+ AttentionInfo = %s,
+ ADOResult = %s,
+ '''%(
+ self.PlayerID,
+ self.AttentionLen,
+ self.AttentionInfo,
+ self.ADOResult,
+ )
+ return output
+
+
# 拍卖记录表 #tagDBAuctionRecord
class tagDBAuctionRecord(Structure):
_pack_ = 1
_fields_ = [
+ ('ItemGUID', ctypes.c_char * 40),
('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),
@@ -36,11 +99,14 @@
self.clear()
def clear(self):
+ self.ItemGUID = ''
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
@@ -52,11 +118,14 @@
if len(buf) < pos + self.getLength():
return -1
self.clear()
+ self.ItemGUID, pos = CommFunc.ReadString(buf, pos, 40)
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)
@@ -66,11 +135,14 @@
def getBuffer(self):
buf = ''
+ buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 40, self.ItemGUID)
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)
@@ -79,11 +151,14 @@
def getLength(self):
length = 0
+ length += sizeof(ctypes.c_char) * 40
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)
@@ -92,22 +167,28 @@
def outputString(self):
output = '''// 拍卖记录表 #tagDBAuctionRecord:
+ ItemGUID = %s,
PlayerID = %s,
FamilyID = %s,
RecordType = %s,
+ RecordResult = %s,
RecordTime = %s,
- RecordPrice = %s,
+ BidderPrice = %s,
+ BidderName = %s,
ItemID = %s,
Count = %s,
UserDataLen = %s,
UserData = %s,
ADOResult = %s,
'''%(
+ self.ItemGUID,
self.PlayerID,
self.FamilyID,
self.RecordType,
+ self.RecordResult,
self.RecordTime,
- self.RecordPrice,
+ self.BidderPrice,
+ self.BidderName,
self.ItemID,
self.Count,
self.UserDataLen,
@@ -117,11 +198,23 @@
return output
#Char数组类型Set接口,使用该接口对此类型数据赋值,防止赋值的数据过长报错
+ def SetItemGUID(self,Str):
+ if len(Str)<=40:
+ self.ItemGUID = Str
+ else:
+ self.ItemGUID = Str[:40]
+
def SetRecordTime(self,Str):
if len(Str)<=19:
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
@@ -133,17 +226,21 @@
('FamilyID', ctypes.c_ulong),
('ItemID', ctypes.c_ulong),
('Count', ctypes.c_ushort),
+ ('AuctionType', ctypes.c_ubyte),
('AddTime', ctypes.c_char * 19),
('BiddingTime', ctypes.c_char * 19),
('BidderID', ctypes.c_ulong),
('BidderName', ctypes.c_char * 33),
('BidderPrice', ctypes.c_ulong),
- ('ItemType', ctypes.c_ulong),
- ('ItemJobLimit', ctypes.c_ulong),
+ ('ItemType', ctypes.c_ubyte),
+ ('ItemJobLimit', ctypes.c_ubyte),
+ ('ItemClassLV', ctypes.c_ubyte),
('UserDataLen', ctypes.c_ushort),
('UserData', ctypes.c_char_p),
('FamilyPlayerIDLen', ctypes.c_ushort),
('FamilyPlayerIDInfo', ctypes.c_char_p),
+ ('BidderIDLen', ctypes.c_ubyte),
+ ('BidderIDInfo', ctypes.c_char_p),
('ADOResult', ctypes.c_ulong),
]
@@ -157,6 +254,7 @@
self.FamilyID = 0
self.ItemID = 0
self.Count = 0
+ self.AuctionType = 0
self.AddTime = ''
self.BiddingTime = ''
self.BidderID = 0
@@ -164,10 +262,13 @@
self.BidderPrice = 0
self.ItemType = 0
self.ItemJobLimit = 0
+ self.ItemClassLV = 0
self.UserDataLen = 0
self.UserData = ''
self.FamilyPlayerIDLen = 0
self.FamilyPlayerIDInfo = ''
+ self.BidderIDLen = 0
+ self.BidderIDInfo = ''
def readData(self, buf, pos = 0, length = 0):
if not pos <= length:
@@ -180,19 +281,24 @@
self.FamilyID, pos = CommFunc.ReadDWORD(buf, pos)
self.ItemID, pos = CommFunc.ReadDWORD(buf, pos)
self.Count, pos = CommFunc.ReadWORD(buf, pos)
+ self.AuctionType, pos = CommFunc.ReadBYTE(buf, pos)
self.AddTime, pos = CommFunc.ReadString(buf, pos, 19)
self.BiddingTime, pos = CommFunc.ReadString(buf, pos, 19)
self.BidderID, pos = CommFunc.ReadDWORD(buf, pos)
self.BidderName, pos = CommFunc.ReadString(buf, pos, 33)
self.BidderPrice, pos = CommFunc.ReadDWORD(buf, pos)
- self.ItemType, pos = CommFunc.ReadDWORD(buf, pos)
- self.ItemJobLimit, pos = CommFunc.ReadDWORD(buf, pos)
+ self.ItemType, pos = CommFunc.ReadBYTE(buf, pos)
+ self.ItemJobLimit, pos = CommFunc.ReadBYTE(buf, pos)
+ self.ItemClassLV, pos = CommFunc.ReadBYTE(buf, pos)
self.UserDataLen, pos = CommFunc.ReadWORD(buf, pos)
tmp, pos = CommFunc.ReadString(buf, pos, self.UserDataLen)
self.UserData = ctypes.c_char_p(tmp)
self.FamilyPlayerIDLen, pos = CommFunc.ReadWORD(buf, pos)
tmp, pos = CommFunc.ReadString(buf, pos, self.FamilyPlayerIDLen)
self.FamilyPlayerIDInfo = ctypes.c_char_p(tmp)
+ self.BidderIDLen, pos = CommFunc.ReadBYTE(buf, pos)
+ tmp, pos = CommFunc.ReadString(buf, pos, self.BidderIDLen)
+ self.BidderIDInfo = ctypes.c_char_p(tmp)
return self.getLength()
def getBuffer(self):
@@ -202,17 +308,21 @@
buf = CommFunc.WriteDWORD(buf, self.FamilyID)
buf = CommFunc.WriteDWORD(buf, self.ItemID)
buf = CommFunc.WriteWORD(buf, self.Count)
+ buf = CommFunc.WriteBYTE(buf, self.AuctionType)
buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 19, self.AddTime)
buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 19, self.BiddingTime)
buf = CommFunc.WriteDWORD(buf, self.BidderID)
buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 33, self.BidderName)
buf = CommFunc.WriteDWORD(buf, self.BidderPrice)
- buf = CommFunc.WriteDWORD(buf, self.ItemType)
- buf = CommFunc.WriteDWORD(buf, self.ItemJobLimit)
+ buf = CommFunc.WriteBYTE(buf, self.ItemType)
+ buf = CommFunc.WriteBYTE(buf, self.ItemJobLimit)
+ buf = CommFunc.WriteBYTE(buf, self.ItemClassLV)
buf = CommFunc.WriteWORD(buf, self.UserDataLen)
buf = CommFunc.WriteString(buf, self.UserDataLen, self.UserData)
buf = CommFunc.WriteWORD(buf, self.FamilyPlayerIDLen)
buf = CommFunc.WriteString(buf, self.FamilyPlayerIDLen, self.FamilyPlayerIDInfo)
+ buf = CommFunc.WriteBYTE(buf, self.BidderIDLen)
+ buf = CommFunc.WriteString(buf, self.BidderIDLen, self.BidderIDInfo)
return buf
def getLength(self):
@@ -222,17 +332,21 @@
length += sizeof(ctypes.c_ulong)
length += sizeof(ctypes.c_ulong)
length += sizeof(ctypes.c_ushort)
+ length += sizeof(ctypes.c_ubyte)
length += sizeof(ctypes.c_char) * 19
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_ulong)
- length += sizeof(ctypes.c_ulong)
+ length += sizeof(ctypes.c_ubyte)
+ length += sizeof(ctypes.c_ubyte)
+ length += sizeof(ctypes.c_ubyte)
length += sizeof(ctypes.c_ushort)
length += self.UserDataLen
length += sizeof(ctypes.c_ushort)
length += self.FamilyPlayerIDLen
+ length += sizeof(ctypes.c_ubyte)
+ length += self.BidderIDLen
return length
def outputString(self):
@@ -242,6 +356,7 @@
FamilyID = %s,
ItemID = %s,
Count = %s,
+ AuctionType = %s,
AddTime = %s,
BiddingTime = %s,
BidderID = %s,
@@ -249,10 +364,13 @@
BidderPrice = %s,
ItemType = %s,
ItemJobLimit = %s,
+ ItemClassLV = %s,
UserDataLen = %s,
UserData = %s,
FamilyPlayerIDLen = %s,
FamilyPlayerIDInfo = %s,
+ BidderIDLen = %s,
+ BidderIDInfo = %s,
ADOResult = %s,
'''%(
self.ItemGUID,
@@ -260,6 +378,7 @@
self.FamilyID,
self.ItemID,
self.Count,
+ self.AuctionType,
self.AddTime,
self.BiddingTime,
self.BidderID,
@@ -267,10 +386,13 @@
self.BidderPrice,
self.ItemType,
self.ItemJobLimit,
+ self.ItemClassLV,
self.UserDataLen,
self.UserData,
self.FamilyPlayerIDLen,
self.FamilyPlayerIDInfo,
+ self.BidderIDLen,
+ self.BidderIDInfo,
self.ADOResult,
)
return output
--
Gitblit v1.8.0