|  |  |  | 
|---|
|  |  |  | ('NPCID', ctypes.c_ulong), | 
|---|
|  |  |  | ('ExDataLen', ctypes.c_ushort), | 
|---|
|  |  |  | ('ExData', ctypes.c_char_p), | 
|---|
|  |  |  | ('DailyDateStr', ctypes.c_char * 10), | 
|---|
|  |  |  | ('TimeStr', ctypes.c_char * 19), | 
|---|
|  |  |  | ('ThanksState', ctypes.c_ubyte), | 
|---|
|  |  |  | ('AssistPlayerLen', ctypes.c_ushort), | 
|---|
|  |  |  | 
|---|
|  |  |  | self.NPCID = 0 | 
|---|
|  |  |  | self.ExDataLen = 0 | 
|---|
|  |  |  | self.ExData = '' | 
|---|
|  |  |  | self.DailyDateStr = '' | 
|---|
|  |  |  | self.TimeStr = '' | 
|---|
|  |  |  | self.ThanksState = 0 | 
|---|
|  |  |  | self.AssistPlayerLen = 0 | 
|---|
|  |  |  | 
|---|
|  |  |  | self.ExDataLen, pos = CommFunc.ReadWORD(buf, pos) | 
|---|
|  |  |  | tmp, pos = CommFunc.ReadString(buf, pos, self.ExDataLen) | 
|---|
|  |  |  | self.ExData = ctypes.c_char_p(tmp) | 
|---|
|  |  |  | self.DailyDateStr, pos = CommFunc.ReadString(buf, pos, 10) | 
|---|
|  |  |  | self.TimeStr, pos = CommFunc.ReadString(buf, pos, 19) | 
|---|
|  |  |  | self.ThanksState, pos = CommFunc.ReadBYTE(buf, pos) | 
|---|
|  |  |  | self.AssistPlayerLen, pos = CommFunc.ReadWORD(buf, pos) | 
|---|
|  |  |  | 
|---|
|  |  |  | buf = CommFunc.WriteDWORD(buf, self.NPCID) | 
|---|
|  |  |  | buf = CommFunc.WriteWORD(buf, self.ExDataLen) | 
|---|
|  |  |  | buf = CommFunc.WriteString(buf, self.ExDataLen, self.ExData) | 
|---|
|  |  |  | buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 10, self.DailyDateStr) | 
|---|
|  |  |  | buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 19, self.TimeStr) | 
|---|
|  |  |  | buf = CommFunc.WriteBYTE(buf, self.ThanksState) | 
|---|
|  |  |  | buf = CommFunc.WriteWORD(buf, self.AssistPlayerLen) | 
|---|
|  |  |  | 
|---|
|  |  |  | length += sizeof(ctypes.c_ulong) | 
|---|
|  |  |  | length += sizeof(ctypes.c_ushort) | 
|---|
|  |  |  | length += self.ExDataLen | 
|---|
|  |  |  | length += sizeof(ctypes.c_char) * 10 | 
|---|
|  |  |  | length += sizeof(ctypes.c_char) * 19 | 
|---|
|  |  |  | length += sizeof(ctypes.c_ubyte) | 
|---|
|  |  |  | length += sizeof(ctypes.c_ushort) | 
|---|
|  |  |  | 
|---|
|  |  |  | NPCID = %s, | 
|---|
|  |  |  | ExDataLen = %s, | 
|---|
|  |  |  | ExData = %s, | 
|---|
|  |  |  | DailyDateStr = %s, | 
|---|
|  |  |  | TimeStr = %s, | 
|---|
|  |  |  | ThanksState = %s, | 
|---|
|  |  |  | AssistPlayerLen = %s, | 
|---|
|  |  |  | 
|---|
|  |  |  | self.NPCID, | 
|---|
|  |  |  | self.ExDataLen, | 
|---|
|  |  |  | self.ExData, | 
|---|
|  |  |  | self.DailyDateStr, | 
|---|
|  |  |  | self.TimeStr, | 
|---|
|  |  |  | self.ThanksState, | 
|---|
|  |  |  | self.AssistPlayerLen, | 
|---|
|  |  |  | 
|---|
|  |  |  | else: | 
|---|
|  |  |  | self.PlayerName = Str[:33] | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def SetDailyDateStr(self,Str): | 
|---|
|  |  |  | if len(Str)<=10: | 
|---|
|  |  |  | self.DailyDateStr = Str | 
|---|
|  |  |  | else: | 
|---|
|  |  |  | self.DailyDateStr = Str[:10] | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def SetTimeStr(self,Str): | 
|---|
|  |  |  | if len(Str)<=19: | 
|---|
|  |  |  | self.TimeStr = Str | 
|---|
|  |  |  | 
|---|
|  |  |  | ('Job', ctypes.c_ubyte), | 
|---|
|  |  |  | ('LV', ctypes.c_ushort), | 
|---|
|  |  |  | ('RealmLV', ctypes.c_ubyte), | 
|---|
|  |  |  | ('AssistType', ctypes.c_ubyte), | 
|---|
|  |  |  | ('MapID', ctypes.c_ulong), | 
|---|
|  |  |  | ('LineID', ctypes.c_ulong), | 
|---|
|  |  |  | ('NPCID', ctypes.c_ulong), | 
|---|
|  |  |  | 
|---|
|  |  |  | self.Job = 0 | 
|---|
|  |  |  | self.LV = 0 | 
|---|
|  |  |  | self.RealmLV = 0 | 
|---|
|  |  |  | self.AssistType = 0 | 
|---|
|  |  |  | self.MapID = 0 | 
|---|
|  |  |  | self.LineID = 0 | 
|---|
|  |  |  | self.NPCID = 0 | 
|---|
|  |  |  | 
|---|
|  |  |  | self.Job, pos = CommFunc.ReadBYTE(buf, pos) | 
|---|
|  |  |  | self.LV, pos = CommFunc.ReadWORD(buf, pos) | 
|---|
|  |  |  | self.RealmLV, pos = CommFunc.ReadBYTE(buf, pos) | 
|---|
|  |  |  | self.AssistType, pos = CommFunc.ReadBYTE(buf, pos) | 
|---|
|  |  |  | self.MapID, pos = CommFunc.ReadDWORD(buf, pos) | 
|---|
|  |  |  | self.LineID, pos = CommFunc.ReadDWORD(buf, pos) | 
|---|
|  |  |  | self.NPCID, pos = CommFunc.ReadDWORD(buf, pos) | 
|---|
|  |  |  | 
|---|
|  |  |  | buf = CommFunc.WriteBYTE(buf, self.Job) | 
|---|
|  |  |  | buf = CommFunc.WriteWORD(buf, self.LV) | 
|---|
|  |  |  | buf = CommFunc.WriteBYTE(buf, self.RealmLV) | 
|---|
|  |  |  | buf = CommFunc.WriteBYTE(buf, self.AssistType) | 
|---|
|  |  |  | buf = CommFunc.WriteDWORD(buf, self.MapID) | 
|---|
|  |  |  | buf = CommFunc.WriteDWORD(buf, self.LineID) | 
|---|
|  |  |  | buf = CommFunc.WriteDWORD(buf, self.NPCID) | 
|---|
|  |  |  | 
|---|
|  |  |  | length += sizeof(ctypes.c_char) * 33 | 
|---|
|  |  |  | length += sizeof(ctypes.c_ubyte) | 
|---|
|  |  |  | length += sizeof(ctypes.c_ushort) | 
|---|
|  |  |  | length += sizeof(ctypes.c_ubyte) | 
|---|
|  |  |  | length += sizeof(ctypes.c_ubyte) | 
|---|
|  |  |  | length += sizeof(ctypes.c_ulong) | 
|---|
|  |  |  | length += sizeof(ctypes.c_ulong) | 
|---|
|  |  |  | 
|---|
|  |  |  | Job = %s, | 
|---|
|  |  |  | LV = %s, | 
|---|
|  |  |  | RealmLV = %s, | 
|---|
|  |  |  | AssistType = %s, | 
|---|
|  |  |  | MapID = %s, | 
|---|
|  |  |  | LineID = %s, | 
|---|
|  |  |  | NPCID = %s, | 
|---|
|  |  |  | 
|---|
|  |  |  | self.Job, | 
|---|
|  |  |  | self.LV, | 
|---|
|  |  |  | self.RealmLV, | 
|---|
|  |  |  | self.AssistType, | 
|---|
|  |  |  | self.MapID, | 
|---|
|  |  |  | self.LineID, | 
|---|
|  |  |  | self.NPCID, | 
|---|