From ba4793de5a2e04779b093265d89eeabf5984450c Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 11 十二月 2024 14:11:05 +0800
Subject: [PATCH] 10318 【英文】【越南】【BT】【砍树】统一增加奖励获得封包(商店事件DataEx增加同步商店类型)
---
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py | 212 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 212 insertions(+), 0 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index c0fdcb6..d937fc0 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -33073,6 +33073,218 @@
#------------------------------------------------------
+# A8 01 获得奖励信息 #tagMCGiveAwardInfo
+
+class tagMCGiveAwardMoney(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("MoneyType", c_ubyte),
+ ("MoneyValue", c_int),
+ ]
+
+ def __init__(self):
+ self.Clear()
+ 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.MoneyType = 0
+ self.MoneyValue = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagMCGiveAwardMoney)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A8 01 获得奖励信息 //tagMCGiveAwardInfo:
+ MoneyType:%d,
+ MoneyValue:%d
+ '''\
+ %(
+ self.MoneyType,
+ self.MoneyValue
+ )
+ return DumpString
+
+
+class tagMCGiveAwardItem(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("ItemID", c_int),
+ ("Count", c_int),
+ ("IsBind", c_ubyte),
+ ]
+
+ def __init__(self):
+ self.Clear()
+ 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.ItemID = 0
+ self.Count = 0
+ self.IsBind = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagMCGiveAwardItem)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A8 01 获得奖励信息 //tagMCGiveAwardInfo:
+ ItemID:%d,
+ Count:%d,
+ IsBind:%d
+ '''\
+ %(
+ self.ItemID,
+ self.Count,
+ self.IsBind
+ )
+ return DumpString
+
+
+class tagMCGiveAwardInfo(Structure):
+ Head = tagHead()
+ EventLen = 0 #(BYTE EventLen)
+ EventName = "" #(String EventName)
+ Exp = 0 #(DWORD Exp)// 奖励经验,求余亿部分
+ ExpPoint = 0 #(DWORD ExpPoint)// 奖励经验,整除亿部分
+ MoneyLen = 0 #(BYTE MoneyLen)
+ MoneyList = list() #(vector<tagMCGiveAwardMoney> MoneyList)// 奖励货币
+ ItemLen = 0 #(BYTE ItemLen)
+ ItemList = list() #(vector<tagMCGiveAwardItem> ItemList)// 奖励物品
+ DataLen = 0 #(WORD DataLen)
+ DataEx = "" #(String DataEx)// 扩展信息,可由不同的Event自定义信息内容
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xA8
+ self.Head.SubCmd = 0x01
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.EventLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.EventName,_pos = CommFunc.ReadString(_lpData, _pos,self.EventLen)
+ self.Exp,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.ExpPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.MoneyLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.MoneyLen):
+ temMoneyList = tagMCGiveAwardMoney()
+ _pos = temMoneyList.ReadData(_lpData, _pos)
+ self.MoneyList.append(temMoneyList)
+ self.ItemLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.ItemLen):
+ temItemList = tagMCGiveAwardItem()
+ _pos = temItemList.ReadData(_lpData, _pos)
+ self.ItemList.append(temItemList)
+ self.DataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.DataEx,_pos = CommFunc.ReadString(_lpData, _pos,self.DataLen)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xA8
+ self.Head.SubCmd = 0x01
+ self.EventLen = 0
+ self.EventName = ""
+ self.Exp = 0
+ self.ExpPoint = 0
+ self.MoneyLen = 0
+ self.MoneyList = list()
+ self.ItemLen = 0
+ self.ItemList = list()
+ self.DataLen = 0
+ self.DataEx = ""
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 1
+ length += len(self.EventName)
+ length += 4
+ length += 4
+ length += 1
+ for i in range(self.MoneyLen):
+ length += self.MoneyList[i].GetLength()
+ length += 1
+ for i in range(self.ItemLen):
+ length += self.ItemList[i].GetLength()
+ length += 2
+ length += len(self.DataEx)
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.EventLen)
+ data = CommFunc.WriteString(data, self.EventLen, self.EventName)
+ data = CommFunc.WriteDWORD(data, self.Exp)
+ data = CommFunc.WriteDWORD(data, self.ExpPoint)
+ data = CommFunc.WriteBYTE(data, self.MoneyLen)
+ for i in range(self.MoneyLen):
+ data = CommFunc.WriteString(data, self.MoneyList[i].GetLength(), self.MoneyList[i].GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.ItemLen)
+ for i in range(self.ItemLen):
+ data = CommFunc.WriteString(data, self.ItemList[i].GetLength(), self.ItemList[i].GetBuffer())
+ data = CommFunc.WriteWORD(data, self.DataLen)
+ data = CommFunc.WriteString(data, self.DataLen, self.DataEx)
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ EventLen:%d,
+ EventName:%s,
+ Exp:%d,
+ ExpPoint:%d,
+ MoneyLen:%d,
+ MoneyList:%s,
+ ItemLen:%d,
+ ItemList:%s,
+ DataLen:%d,
+ DataEx:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.EventLen,
+ self.EventName,
+ self.Exp,
+ self.ExpPoint,
+ self.MoneyLen,
+ "...",
+ self.ItemLen,
+ "...",
+ self.DataLen,
+ self.DataEx
+ )
+ return DumpString
+
+
+m_NAtagMCGiveAwardInfo=tagMCGiveAwardInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCGiveAwardInfo.Head.Cmd,m_NAtagMCGiveAwardInfo.Head.SubCmd))] = m_NAtagMCGiveAwardInfo
+
+
+#------------------------------------------------------
# A8 12 守护成功拾取物品 #tagMCGuradPickupItemSucc
class tagMCGuradPickupItemSucc(Structure):
--
Gitblit v1.8.0