From d8a8aa5c0df74e9c2b9a485695543d293cf9eb5a Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期二, 21 五月 2019 11:36:14 +0800
Subject: [PATCH] 6844 【2.0】【后端】缥缈仙域优化(奇遇掉落)
---
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py | 244 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 244 insertions(+), 0 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index 3afc13f..673212c 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -3371,6 +3371,190 @@
#------------------------------------------------------
+# A9 05 通知广播装备详细信息 #tagGCNotifyEquipDetailInfo
+
+class tagGCNotifyEquipClassEquip(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("ItemID", c_int),
+ ("Star", 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.Star = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagGCNotifyEquipClassEquip)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A9 05 通知广播装备详细信息 //tagGCNotifyEquipDetailInfo:
+ ItemID:%d,
+ Star:%d
+ '''\
+ %(
+ self.ItemID,
+ self.Star
+ )
+ return DumpString
+
+
+class tagGCNotifyEquipDetailInfo(Structure):
+ Head = tagHead()
+ ItemGUID = "" #(char ItemGUID[40])
+ ItemID = 0 #(DWORD ItemID)
+ Star = 0 #(BYTE Star)//星级
+ PlusLV = 0 #(WORD PlusLV)//强化等级
+ EvolveLV = 0 #(BYTE EvolveLV)//进化等级
+ WashLV = 0 #(BYTE WashLV)//洗练等级
+ WashValueCount = 0 #(BYTE WashValueCount)
+ WashValueList = list() #(vector<WORD> WashValueList)//洗练值
+ StoneIDCount = 0 #(BYTE StoneIDCount)
+ StoneIDList = list() #(vector<DWORD> StoneIDList)//宝石
+ ClassEquipCount = 0 #(BYTE ClassEquipCount)
+ ClassEquipList = list() #(vector<tagGCNotifyEquipClassEquip> ClassEquipList)//本境界穿戴的装备
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xA9
+ self.Head.SubCmd = 0x05
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
+ self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.Star,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.PlusLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.EvolveLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.WashLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.WashValueCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.WashValueCount):
+ value,_pos=CommFunc.ReadWORD(_lpData,_pos)
+ self.WashValueList.append(value)
+ self.StoneIDCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.StoneIDCount):
+ value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
+ self.StoneIDList.append(value)
+ self.ClassEquipCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.ClassEquipCount):
+ temClassEquipList = tagGCNotifyEquipClassEquip()
+ _pos = temClassEquipList.ReadData(_lpData, _pos)
+ self.ClassEquipList.append(temClassEquipList)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xA9
+ self.Head.SubCmd = 0x05
+ self.ItemGUID = ""
+ self.ItemID = 0
+ self.Star = 0
+ self.PlusLV = 0
+ self.EvolveLV = 0
+ self.WashLV = 0
+ self.WashValueCount = 0
+ self.WashValueList = list()
+ self.StoneIDCount = 0
+ self.StoneIDList = list()
+ self.ClassEquipCount = 0
+ self.ClassEquipList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 40
+ length += 4
+ length += 1
+ length += 2
+ length += 1
+ length += 1
+ length += 1
+ length += 2 * self.WashValueCount
+ length += 1
+ length += 4 * self.StoneIDCount
+ length += 1
+ for i in range(self.ClassEquipCount):
+ length += self.ClassEquipList[i].GetLength()
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteString(data, 40, self.ItemGUID)
+ data = CommFunc.WriteDWORD(data, self.ItemID)
+ data = CommFunc.WriteBYTE(data, self.Star)
+ data = CommFunc.WriteWORD(data, self.PlusLV)
+ data = CommFunc.WriteBYTE(data, self.EvolveLV)
+ data = CommFunc.WriteBYTE(data, self.WashLV)
+ data = CommFunc.WriteBYTE(data, self.WashValueCount)
+ for i in range(self.WashValueCount):
+ data = CommFunc.WriteWORD(data, self.WashValueList[i])
+ data = CommFunc.WriteBYTE(data, self.StoneIDCount)
+ for i in range(self.StoneIDCount):
+ data = CommFunc.WriteDWORD(data, self.StoneIDList[i])
+ data = CommFunc.WriteBYTE(data, self.ClassEquipCount)
+ for i in range(self.ClassEquipCount):
+ data = CommFunc.WriteString(data, self.ClassEquipList[i].GetLength(), self.ClassEquipList[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ ItemGUID:%s,
+ ItemID:%d,
+ Star:%d,
+ PlusLV:%d,
+ EvolveLV:%d,
+ WashLV:%d,
+ WashValueCount:%d,
+ WashValueList:%s,
+ StoneIDCount:%d,
+ StoneIDList:%s,
+ ClassEquipCount:%d,
+ ClassEquipList:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.ItemGUID,
+ self.ItemID,
+ self.Star,
+ self.PlusLV,
+ self.EvolveLV,
+ self.WashLV,
+ self.WashValueCount,
+ "...",
+ self.StoneIDCount,
+ "...",
+ self.ClassEquipCount,
+ "..."
+ )
+ return DumpString
+
+
+m_NAtagGCNotifyEquipDetailInfo=tagGCNotifyEquipDetailInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCNotifyEquipDetailInfo.Head.Cmd,m_NAtagGCNotifyEquipDetailInfo.Head.SubCmd))] = m_NAtagGCNotifyEquipDetailInfo
+
+
+#------------------------------------------------------
#A9 03 开服活动奖励数量刷新#tagGCOpenServerCampaignAwardCount
class tagGCOpenServerCampaignAwardCount(Structure):
@@ -29625,6 +29809,66 @@
#------------------------------------------------------
+# B2 16 开始自定义场景结果 #tagMCStartCustomSceneResult
+
+class tagMCStartCustomSceneResult(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("MapID", c_int),
+ ("FuncLineID", c_ushort),
+ ("Result", c_ubyte), #是否允许
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xB2
+ self.SubCmd = 0x16
+ 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 = 0xB2
+ self.SubCmd = 0x16
+ self.MapID = 0
+ self.FuncLineID = 0
+ self.Result = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagMCStartCustomSceneResult)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// B2 16 开始自定义场景结果 //tagMCStartCustomSceneResult:
+ Cmd:%s,
+ SubCmd:%s,
+ MapID:%d,
+ FuncLineID:%d,
+ Result:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.MapID,
+ self.FuncLineID,
+ self.Result
+ )
+ return DumpString
+
+
+m_NAtagMCStartCustomSceneResult=tagMCStartCustomSceneResult()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCStartCustomSceneResult.Cmd,m_NAtagMCStartCustomSceneResult.SubCmd))] = m_NAtagMCStartCustomSceneResult
+
+
+#------------------------------------------------------
#B2 02 推送提醒设置通知 #tagMCPushNotificationsSetting
class tagMCPushNotificationsSetting(Structure):
--
Gitblit v1.8.0