From f8afdf2b5358829706746834fc6540eb137cb44c Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期三, 11 三月 2020 18:42:20 +0800 Subject: [PATCH] 8399 每日灵石礼包修改(增加每日礼包表、每日礼包模板表) --- ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py | 386 ++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 298 insertions(+), 88 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py index 50f31f9..a65ae36 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py @@ -5782,6 +5782,7 @@ class tagGCAssistInfo(Structure): AssistGUID = "" #(char AssistGUID[40])//协助GUID + PlayerID = 0 #(DWORD PlayerID) PlayerName = "" #(char PlayerName[33]) Job = 0 #(BYTE Job) LV = 0 #(WORD LV)//等级 @@ -5800,6 +5801,7 @@ def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.AssistGUID,_pos = CommFunc.ReadString(_lpData, _pos,40) + self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33) self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) @@ -5813,6 +5815,7 @@ def Clear(self): self.AssistGUID = "" + self.PlayerID = 0 self.PlayerName = "" self.Job = 0 self.LV = 0 @@ -5827,6 +5830,7 @@ def GetLength(self): length = 0 length += 40 + length += 4 length += 33 length += 1 length += 2 @@ -5842,6 +5846,7 @@ def GetBuffer(self): data = '' data = CommFunc.WriteString(data, 40, self.AssistGUID) + data = CommFunc.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteString(data, 33, self.PlayerName) data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteWORD(data, self.LV) @@ -5856,6 +5861,7 @@ def OutputString(self): DumpString = ''' AssistGUID:%s, + PlayerID:%d, PlayerName:%s, Job:%d, LV:%d, @@ -5868,6 +5874,7 @@ '''\ %( self.AssistGUID, + self.PlayerID, self.PlayerName, self.Job, self.LV, @@ -6002,6 +6009,84 @@ m_NAtagGCAssistingInfo=tagGCAssistingInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAssistingInfo.Head.Cmd,m_NAtagGCAssistingInfo.Head.SubCmd))] = m_NAtagGCAssistingInfo + + +#------------------------------------------------------ +# B0 08 协助结束 #tagGCAssistOver + +class tagGCAssistOver(Structure): + Head = tagHead() + IsTagPlayerReason = 0 #(BYTE IsTagPlayerReason)//是否发布方原因 + ReasonLen = 0 #(BYTE ReasonLen) + Reason = "" #(String Reason)//原因 + AssistGUID = "" #(char AssistGUID[40])//协助GUID + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xB0 + self.Head.SubCmd = 0x08 + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.IsTagPlayerReason,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.ReasonLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.Reason,_pos = CommFunc.ReadString(_lpData, _pos,self.ReasonLen) + self.AssistGUID,_pos = CommFunc.ReadString(_lpData, _pos,40) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xB0 + self.Head.SubCmd = 0x08 + self.IsTagPlayerReason = 0 + self.ReasonLen = 0 + self.Reason = "" + self.AssistGUID = "" + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 1 + length += 1 + length += len(self.Reason) + length += 40 + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteBYTE(data, self.IsTagPlayerReason) + data = CommFunc.WriteBYTE(data, self.ReasonLen) + data = CommFunc.WriteString(data, self.ReasonLen, self.Reason) + data = CommFunc.WriteString(data, 40, self.AssistGUID) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + IsTagPlayerReason:%d, + ReasonLen:%d, + Reason:%s, + AssistGUID:%s + '''\ + %( + self.Head.OutputString(), + self.IsTagPlayerReason, + self.ReasonLen, + self.Reason, + self.AssistGUID + ) + return DumpString + + +m_NAtagGCAssistOver=tagGCAssistOver() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAssistOver.Head.Cmd,m_NAtagGCAssistOver.Head.SubCmd))] = m_NAtagGCAssistOver #------------------------------------------------------ @@ -19143,16 +19228,20 @@ #------------------------------------------------------ #A3 01 坐骑培养信息 #tagTrainHorseData -class tagMCHorseInfo(Structure): +class tagTrainHorseData(Structure): _pack_ = 1 _fields_ = [ - ("HorseID", c_int), #ID - ("LV", c_ubyte), #等级 - ("Exp", c_int), #经验 + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("LV", c_ubyte), #等阶 + ("EatItemCount", c_ushort), #当前阶已吃丹个数 + ("SkinPlusState", c_int), #幻化激活状态,按位存储是否激活,幻化编号ID对应位 ] def __init__(self): self.Clear() + self.Cmd = 0xA3 + self.SubCmd = 0x01 return def ReadData(self, stringData, _pos=0, _len=0): @@ -19161,102 +19250,39 @@ return _pos + self.GetLength() def Clear(self): - self.HorseID = 0 + self.Cmd = 0xA3 + self.SubCmd = 0x01 self.LV = 0 - self.Exp = 0 + self.EatItemCount = 0 + self.SkinPlusState = 0 return def GetLength(self): - return sizeof(tagMCHorseInfo) + return sizeof(tagTrainHorseData) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A3 01 坐骑培养信息 //tagTrainHorseData: - HorseID:%d, + Cmd:%s, + SubCmd:%s, LV:%d, - Exp:%d + EatItemCount:%d, + SkinPlusState:%d '''\ %( - self.HorseID, + self.Cmd, + self.SubCmd, self.LV, - self.Exp - ) - return DumpString - - -class tagTrainHorseData(Structure): - Head = tagHead() - Multiple = 0 #(BYTE Multiple)//下次暴击倍数 - Num = 0 #(BYTE Num)//个数 - InfoList = list() #(vector<tagMCHorseInfo> InfoList)// 坐骑数据列表 - data = None - - def __init__(self): - self.Clear() - self.Head.Cmd = 0xA3 - self.Head.SubCmd = 0x01 - return - - def ReadData(self, _lpData, _pos=0, _Len=0): - self.Clear() - _pos = self.Head.ReadData(_lpData, _pos) - self.Multiple,_pos = CommFunc.ReadBYTE(_lpData, _pos) - self.Num,_pos = CommFunc.ReadBYTE(_lpData, _pos) - for i in range(self.Num): - temInfoList = tagMCHorseInfo() - _pos = temInfoList.ReadData(_lpData, _pos) - self.InfoList.append(temInfoList) - return _pos - - def Clear(self): - self.Head = tagHead() - self.Head.Clear() - self.Head.Cmd = 0xA3 - self.Head.SubCmd = 0x01 - self.Multiple = 0 - self.Num = 0 - self.InfoList = list() - return - - def GetLength(self): - length = 0 - length += self.Head.GetLength() - length += 1 - length += 1 - for i in range(self.Num): - length += self.InfoList[i].GetLength() - - return length - - def GetBuffer(self): - data = '' - data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) - data = CommFunc.WriteBYTE(data, self.Multiple) - data = CommFunc.WriteBYTE(data, self.Num) - for i in range(self.Num): - data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer()) - return data - - def OutputString(self): - DumpString = ''' - Head:%s, - Multiple:%d, - Num:%d, - InfoList:%s - '''\ - %( - self.Head.OutputString(), - self.Multiple, - self.Num, - "..." + self.EatItemCount, + self.SkinPlusState ) return DumpString m_NAtagTrainHorseData=tagTrainHorseData() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTrainHorseData.Head.Cmd,m_NAtagTrainHorseData.Head.SubCmd))] = m_NAtagTrainHorseData +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTrainHorseData.Cmd,m_NAtagTrainHorseData.SubCmd))] = m_NAtagTrainHorseData #------------------------------------------------------ @@ -25542,8 +25568,9 @@ _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), - ("FirstGoldRewardState", c_ubyte), #首充奖励是否已领奖 + ("FirstGoldRewardState", c_ubyte), #首充奖励领奖记录,按位记录首充第X天是否已领取,第1天为第0索引位 ("FirstGoldTry", c_ubyte), #首充试用状态0-不可试用 1-可试用 2-已试用 + ("FirstGoldServerDay", c_ushort), #首充时是开服第几天,从1开始,0代表未记录充值 ] def __init__(self): @@ -25562,6 +25589,7 @@ self.SubCmd = 0x02 self.FirstGoldRewardState = 0 self.FirstGoldTry = 0 + self.FirstGoldServerDay = 0 return def GetLength(self): @@ -25575,13 +25603,15 @@ Cmd:%s, SubCmd:%s, FirstGoldRewardState:%d, - FirstGoldTry:%d + FirstGoldTry:%d, + FirstGoldServerDay:%d '''\ %( self.Cmd, self.SubCmd, self.FirstGoldRewardState, - self.FirstGoldTry + self.FirstGoldTry, + self.FirstGoldServerDay ) return DumpString @@ -29256,6 +29286,119 @@ #------------------------------------------------------ +# B0 27 活跃放置信息 #tagMCActivityPlaceInfo + +class tagMCActivityPlaceInfo(Structure): + Head = tagHead() + StartTime = 0 #(DWORD StartTime)// 开始探索time时间戳,完成一次探索会自动下一次探索并更新该时间 + PlaceCount = 0 #(BYTE PlaceCount)// 剩余未完成探索次数 + RewardCount = 0 #(BYTE RewardCount)// 累计未领取探索奖励次数 + RewardLen = 0 #(BYTE RewardLen) + RewardInfo = "" #(String RewardInfo)//累计未领取探索奖励 [[itemID, count], ...] + TodayExp = 0 #(DWORD TodayExp) + TodayExpPoint = 0 #(DWORD TodayExpPoint) + YestordayExp = 0 #(DWORD YestordayExp) + YestordayExpPoint = 0 #(DWORD YestordayExpPoint) + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xB0 + self.Head.SubCmd = 0x27 + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.StartTime,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.PlaceCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.RewardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.RewardLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.RewardInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.RewardLen) + self.TodayExp,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.TodayExpPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.YestordayExp,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.YestordayExpPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xB0 + self.Head.SubCmd = 0x27 + self.StartTime = 0 + self.PlaceCount = 0 + self.RewardCount = 0 + self.RewardLen = 0 + self.RewardInfo = "" + self.TodayExp = 0 + self.TodayExpPoint = 0 + self.YestordayExp = 0 + self.YestordayExpPoint = 0 + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 4 + length += 1 + length += 1 + length += 1 + length += len(self.RewardInfo) + length += 4 + length += 4 + length += 4 + length += 4 + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteDWORD(data, self.StartTime) + data = CommFunc.WriteBYTE(data, self.PlaceCount) + data = CommFunc.WriteBYTE(data, self.RewardCount) + data = CommFunc.WriteBYTE(data, self.RewardLen) + data = CommFunc.WriteString(data, self.RewardLen, self.RewardInfo) + data = CommFunc.WriteDWORD(data, self.TodayExp) + data = CommFunc.WriteDWORD(data, self.TodayExpPoint) + data = CommFunc.WriteDWORD(data, self.YestordayExp) + data = CommFunc.WriteDWORD(data, self.YestordayExpPoint) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + StartTime:%d, + PlaceCount:%d, + RewardCount:%d, + RewardLen:%d, + RewardInfo:%s, + TodayExp:%d, + TodayExpPoint:%d, + YestordayExp:%d, + YestordayExpPoint:%d + '''\ + %( + self.Head.OutputString(), + self.StartTime, + self.PlaceCount, + self.RewardCount, + self.RewardLen, + self.RewardInfo, + self.TodayExp, + self.TodayExpPoint, + self.YestordayExp, + self.YestordayExpPoint + ) + return DumpString + + +m_NAtagMCActivityPlaceInfo=tagMCActivityPlaceInfo() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActivityPlaceInfo.Head.Cmd,m_NAtagMCActivityPlaceInfo.Head.SubCmd))] = m_NAtagMCActivityPlaceInfo + + +#------------------------------------------------------ #B0 25 家族悬赏任务奖励领取情况 #tagFamilyArrestAwardReceiveState class tagFamilyArrestAwardReceiveState(Structure): @@ -29353,6 +29496,62 @@ m_NAtagMCFishResult=tagMCFishResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFishResult.Cmd,m_NAtagMCFishResult.SubCmd))] = m_NAtagMCFishResult + + +#------------------------------------------------------ +# B0 07 今日协助活跃令信息 #tagMCTodayAssistMoneyInfo + +class tagMCTodayAssistMoneyInfo(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("TodayAssistMoney", c_ushort), #今日已获得活跃令,不含社交加成 + ("SocialMoney", c_ushort), #社交额外加成 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xB0 + self.SubCmd = 0x07 + 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 = 0xB0 + self.SubCmd = 0x07 + self.TodayAssistMoney = 0 + self.SocialMoney = 0 + return + + def GetLength(self): + return sizeof(tagMCTodayAssistMoneyInfo) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B0 07 今日协助活跃令信息 //tagMCTodayAssistMoneyInfo: + Cmd:%s, + SubCmd:%s, + TodayAssistMoney:%d, + SocialMoney:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.TodayAssistMoney, + self.SocialMoney + ) + return DumpString + + +m_NAtagMCTodayAssistMoneyInfo=tagMCTodayAssistMoneyInfo() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCTodayAssistMoneyInfo.Cmd,m_NAtagMCTodayAssistMoneyInfo.SubCmd))] = m_NAtagMCTodayAssistMoneyInfo #------------------------------------------------------ @@ -31201,6 +31400,7 @@ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Floor", c_int), # 已通关层 + ("ServerRewardRecord", c_int), #全服挑战层领奖记录,按奖励记录二进制位存储是否已领取 ] def __init__(self): @@ -31218,6 +31418,7 @@ self.Cmd = 0xB2 self.SubCmd = 0x13 self.Floor = 0 + self.ServerRewardRecord = 0 return def GetLength(self): @@ -31230,12 +31431,14 @@ DumpString = '''// B2 13 天星塔通关层数 //tagMCSkyTowerInfo: Cmd:%s, SubCmd:%s, - Floor:%d + Floor:%d, + ServerRewardRecord:%d '''\ %( self.Cmd, self.SubCmd, - self.Floor + self.Floor, + self.ServerRewardRecord ) return DumpString @@ -32626,6 +32829,7 @@ PosY = 0 #(WORD PosY) HurtCount = 0 #(WORD HurtCount)//伤害数目 HurtList = list() #(vector<tagSkillPosHurtObj> HurtList)//size = HurtCount + SkillElementID = 0 #(WORD SkillElementID)//专精技能ID data = None def __init__(self): @@ -32647,6 +32851,7 @@ temHurtList = tagSkillPosHurtObj() _pos = temHurtList.ReadData(_lpData, _pos) self.HurtList.append(temHurtList) + self.SkillElementID,_pos = CommFunc.ReadWORD(_lpData, _pos) return _pos def Clear(self): @@ -32661,6 +32866,7 @@ self.PosY = 0 self.HurtCount = 0 self.HurtList = list() + self.SkillElementID = 0 return def GetLength(self): @@ -32674,6 +32880,7 @@ length += 2 for i in range(self.HurtCount): length += self.HurtList[i].GetLength() + length += 2 return length @@ -32688,6 +32895,7 @@ data = CommFunc.WriteWORD(data, self.HurtCount) for i in range(self.HurtCount): data = CommFunc.WriteString(data, self.HurtList[i].GetLength(), self.HurtList[i].GetBuffer()) + data = CommFunc.WriteWORD(data, self.SkillElementID) return data def OutputString(self): @@ -32699,7 +32907,8 @@ PosX:%d, PosY:%d, HurtCount:%d, - HurtList:%s + HurtList:%s, + SkillElementID:%d '''\ %( self.Head.OutputString(), @@ -32709,7 +32918,8 @@ self.PosX, self.PosY, self.HurtCount, - "..." + "...", + self.SkillElementID ) return DumpString -- Gitblit v1.8.0