1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
”€ic@sãdZddlZddd„ƒYZdZdZdZdZdZd    Zd
Z    dZ
dZ dZ dZ d Zd dd „ƒYZddd„ƒYZddd„ƒYZddd„ƒYZddd„ƒYZddd„ƒYZdS(s)
ÍøÂçЭÒ鶨ÒåÄ£¿é
¶¨ÒåÊý¾Ý°ü½á¹¹ºÍЭÒéÍ·
iÿÿÿÿNt ProtocolHeadcBsGeZdZdd„Zd„Zd„Zd„Zd„Zd„Z    RS(s
ЭÒéÍ·½á¹¹cCs,d|_d|_|r(|j|ƒndS(Ni(tcmdtsub_cmdt
from_bytes(tselftdata((s.\\EventServerPY\protocol.pyt__init__s        cCs?t|ƒdkr;t|dƒ|_t|dƒ|_ndS(s´Ó×Ö½ÚÊý¾Ý½âÎöiiiN(tlentordRR(RR((s.\\EventServerPY\protocol.pyRscCstjd|j|jƒS(sת»»Îª×Ö½ÚÊý¾ÝtBB(tstructtpackRR(R((s.\\EventServerPY\protocol.pytto_bytesscCsd|j|jfS(Ns!Head: (Cmd:0x%02X, SubCmd:0x%02X)(RR(R((s.\\EventServerPY\protocol.pyt__str__scCs"|j|jko!|j|jkS(N(RR(Rtother((s.\\EventServerPY\protocol.pyt__eq__"scCst|j|jfƒS(N(thashRR(R((s.\\EventServerPY\protocol.pyt__hash__%sN(
t__name__t
__module__t__doc__tNoneRRR R RR(((s.\\EventServerPY\protocol.pyR s                 iiiiii
i!†4t PacketParsercBsYeZdZed„ƒZed„ƒZed„ƒZed„ƒZed„ƒZRS(s Êý¾Ý°ü½âÎöÆ÷cCs9|t|ƒkr!tdƒ‚nt||ƒ|dfS(s¶ÁÈ¡×Ö½Úsread_byte: pos out of rangei(Rt    ExceptionR(Rtpos((s.\\EventServerPY\protocol.pyt    read_byte=scCsT|dt|ƒkr%tdƒ‚ntjd|||d!ƒd}||dfS(s¶ÁÈ¡32λÎÞ·ûºÅÕûÊýisread_uint32: pos out of ranges<Ii(RRR
tunpack(RRtvalue((s.\\EventServerPY\protocol.pyt read_uint32Ds!cCsT|dt|ƒkr%tdƒ‚ntjd|||d!ƒd}||dfS(s ¶ÁÈ¡64λÕûÊýisread_int64: pos out of ranges<qi(RRR
R(RRR((s.\\EventServerPY\protocol.pyt
read_int64Ls!cCs>||t|ƒkr%tdƒ‚n||||!||fS(s
¶ÁÈ¡×Ö·û´®sread_string: pos out of range(RR(RRtlength((s.\\EventServerPY\protocol.pyt read_stringTscCs+tj||ƒ\}}tj|||ƒS(s¶ÁÈ¡±ä³¤×Ö·û´® (³¤¶Èǰ׺)(RRR(RRR((s.\\EventServerPY\protocol.pytread_var_string[s(    RRRt staticmethodRRRRR (((s.\\EventServerPY\protocol.pyR:s t LoginPacketcBs#eZdZdd„Zd„ZRS(s
µÇ¼Êý¾Ý°ücCsAtƒ|_d|_d|_d|_|r=|j|ƒndS(Ni(Rtheadtgroup_idt    server_idt
magic_codeR(RR((s.\\EventServerPY\protocol.pyRes              cCsd}t|||d!ƒ|_|d7}tj||ƒ\|_}tj||ƒ\|_}tj||ƒ\|_}dS(Nii(RR#RRR$R%R&(RRR((s.\\EventServerPY\protocol.pyRns 
N(RRRRRR(((s.\\EventServerPY\protocol.pyR"bs     t LogoutPacketcBs#eZdZdd„Zd„ZRS(s
µÇ³öÊý¾Ý°ücCs/tƒ|_d|_|r+|j|ƒndS(Ni(RR#treserveR(RR((s.\\EventServerPY\protocol.pyR{s     cCsId}t|||d!ƒ|_|d7}tj||ƒ\|_}dS(Nii(RR#RRR((RRR((s.\\EventServerPY\protocol.pyR‚s
N(RRRRRR(((s.\\EventServerPY\protocol.pyR'xs tEventSendPacketcBs#eZdZdd„Zd„ZRS(sʼþ·¢ËÍÊý¾Ý°ücCsStƒ|_d|_d|_d|_d|_d|_|rO|j|ƒndS(Nit(RR#tevent_idtdata_lentsz_datattimeRR(RR((s.\\EventServerPY\protocol.pyRs                     cCs­d}t|||d!ƒ|_|d7}tj||ƒ\|_}tj||ƒ\|_}tj|||jƒ\|_}tj||ƒ\|_    }|||_
dS(Nii( RR#RRR+R,RR-RR.R(RRR((s.\\EventServerPY\protocol.pyR˜s
!N(RRRRRR(((s.\\EventServerPY\protocol.pyR)Šs tEventStrSendPacketcBs#eZdZdd„Zd„ZRS(s×Ö·û´®Ê¼þ·¢ËÍÊý¾Ý°ücCsetƒ|_d|_d|_d|_d|_d|_g|_d|_|ra|j    |ƒndS(NiR*(
RR#tevent_id_string_lentsz_event_id_stringR,R-text_lentextRR(RR((s.\\EventServerPY\protocol.pyR§s                             cCsd}t|||d!ƒ|_|d7}tj||ƒ\|_}tj|||jƒ\|_}tj||ƒ\|_}tj|||jƒ\|_    }tj||ƒ\|_
}g|_ x?t |j
ƒD].}tj||ƒ\}}|j j |ƒqÖW|||_dS(Nii(RR#RRR0RR1RR,R-R2R3trangetappendR(RRRtit    ext_value((s.\\EventServerPY\protocol.pyR´s
!!    N(RRRRRR(((s.\\EventServerPY\protocol.pyR/¤s tHeartBeatPacketcBs#eZdZdd„Zd„ZRS(s
ÐÄÌøÊý¾Ý°ücCs/tƒ|_d|_|r+|j|ƒndS(Ni(RR#R.R(RR((s.\\EventServerPY\protocol.pyRÊs     cCsId}t|||d!ƒ|_|d7}tj||ƒ\|_}dS(Nii(RR#RRR.(RRR((s.\\EventServerPY\protocol.pyRÑs
N(RRRRRR(((s.\\EventServerPY\protocol.pyR8Çs ((((((((RR
Rt CMD_INTERFACEt SUB_CMD_LOGINtSUB_CMD_LOGOUTtSUB_CMD_EVENT_SENDtSUB_CMD_HEARTBEATtSUB_CMD_EVENT_STRt CMD_MONITORtSUB_CMD_OTHER_DAY_LOGINtSUB_CMD_PLAYER_LOGINtSUB_CMD_LOGIN_VALIDtSUB_CMD_FIRST_LOGINtLOGIN_MAGIC_CODERR"R'R)R/R8(((s.\\EventServerPY\protocol.pyt<module>s( (#