From 4862c17c741052562d70cac808c37d2872ea26b5 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 21 九月 2018 17:54:03 +0800
Subject: [PATCH] 3771 【后端】新增装备传奇属性规则(根据阶颜色确定属性数值)
---
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py | 166 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 166 insertions(+), 0 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
index 246d65a..8213deb 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
@@ -2644,6 +2644,62 @@
#------------------------------------------------------
+# B9 0A 按条件邀请玩家加入队伍 #tagCGInvitePlayerJoinTeamByLV
+
+class tagCGInvitePlayerJoinTeamByLV(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("LVLimit", c_ushort), # 目标玩家大于等于此等级
+ ("InviteCnt", c_ubyte), # 邀请玩家个数
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xB9
+ self.SubCmd = 0x0A
+ 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 = 0xB9
+ self.SubCmd = 0x0A
+ self.LVLimit = 0
+ self.InviteCnt = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCGInvitePlayerJoinTeamByLV)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// B9 0A 按条件邀请玩家加入队伍 //tagCGInvitePlayerJoinTeamByLV:
+ Cmd:%s,
+ SubCmd:%s,
+ LVLimit:%d,
+ InviteCnt:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.LVLimit,
+ self.InviteCnt
+ )
+ return DumpString
+
+
+m_NAtagCGInvitePlayerJoinTeamByLV=tagCGInvitePlayerJoinTeamByLV()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGInvitePlayerJoinTeamByLV.Cmd,m_NAtagCGInvitePlayerJoinTeamByLV.SubCmd))] = m_NAtagCGInvitePlayerJoinTeamByLV
+
+
+#------------------------------------------------------
# B9 05 查询推荐组队的附近玩家 #tagCGQueryRecommendNearbyPlayer
class tagCGQueryRecommendNearbyPlayer(Structure):
@@ -8214,6 +8270,7 @@
EquipIndex = 0 #(BYTE EquipIndex)//神兽装备背包中索引
IndexCount = 0 #(BYTE IndexCount)//材料所在神兽物品背包索引的数量
IndexList = list() #(vector<BYTE> IndexList)//材料所在神兽物品背包索引列表
+ IndexUseCountList = list() #(vector<DWORD> IndexUseCountList)//材料所在神兽物品背包索引对应使用个数列表
IsDouble = 0 #(BYTE IsDouble)//是否双倍强化
data = None
@@ -8231,6 +8288,9 @@
for i in range(self.IndexCount):
value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
self.IndexList.append(value)
+ for i in range(self.IndexCount):
+ value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
+ self.IndexUseCountList.append(value)
self.IsDouble,_pos = CommFunc.ReadBYTE(_lpData, _pos)
return _pos
@@ -8242,6 +8302,7 @@
self.EquipIndex = 0
self.IndexCount = 0
self.IndexList = list()
+ self.IndexUseCountList = list()
self.IsDouble = 0
return
@@ -8251,6 +8312,7 @@
length += 1
length += 1
length += 1 * self.IndexCount
+ length += 4 * self.IndexCount
length += 1
return length
@@ -8262,6 +8324,8 @@
data = CommFunc.WriteBYTE(data, self.IndexCount)
for i in range(self.IndexCount):
data = CommFunc.WriteBYTE(data, self.IndexList[i])
+ for i in range(self.IndexCount):
+ data = CommFunc.WriteDWORD(data, self.IndexUseCountList[i])
data = CommFunc.WriteBYTE(data, self.IsDouble)
return data
@@ -8271,12 +8335,14 @@
EquipIndex:%d,
IndexCount:%d,
IndexList:%s,
+ IndexUseCountList:%s,
IsDouble:%d
'''\
%(
self.Head.OutputString(),
self.EquipIndex,
self.IndexCount,
+ "...",
"...",
self.IsDouble
)
@@ -9338,6 +9404,54 @@
#------------------------------------------------------
+# A5 14 祈福丹药 #tagCMPrayElixir
+
+class tagCMPrayElixir(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xA5
+ self.SubCmd = 0x14
+ 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 = 0xA5
+ self.SubCmd = 0x14
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMPrayElixir)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A5 14 祈福丹药 //tagCMPrayElixir:
+ Cmd:%s,
+ SubCmd:%s
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd
+ )
+ return DumpString
+
+
+m_NAtagCMPrayElixir=tagCMPrayElixir()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMPrayElixir.Cmd,m_NAtagCMPrayElixir.SubCmd))] = m_NAtagCMPrayElixir
+
+
+#------------------------------------------------------
#A5 34 查询天梯竞技场状态#tagCMQueryHighLadderState
class tagCMQueryHighLadderState(Structure):
@@ -10243,6 +10357,58 @@
#------------------------------------------------------
+# A5 13 解锁符印孔 #tagCMUnlockRuneHole
+
+class tagCMUnlockRuneHole(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("HoleIndex", c_ubyte), # 孔索引
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xA5
+ self.SubCmd = 0x13
+ 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 = 0xA5
+ self.SubCmd = 0x13
+ self.HoleIndex = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMUnlockRuneHole)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A5 13 解锁符印孔 //tagCMUnlockRuneHole:
+ Cmd:%s,
+ SubCmd:%s,
+ HoleIndex:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.HoleIndex
+ )
+ return DumpString
+
+
+m_NAtagCMUnlockRuneHole=tagCMUnlockRuneHole()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMUnlockRuneHole.Cmd,m_NAtagCMUnlockRuneHole.SubCmd))] = m_NAtagCMUnlockRuneHole
+
+
+#------------------------------------------------------
#A5 10 使用新手卡 #tagUseNewGuyCard
class tagUseNewGuyCard(Structure):
--
Gitblit v1.8.0