hch
2025-05-16 5f8f590c4b577b1a81bbfff7aa69b8b01e7ff804
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
GÏ%hc@s€ddlZddlZddlZddlZdd
d„ƒYZdd d„ƒYZdd d„ƒYZdd d    „ƒYZdS(iÿÿÿÿNtMailItemcBsJeZdd„Zd„Zd„Zd„Zd„Zd„Zd„Z    RS(cCs|stjƒn||_dS(N(tDBStructt tagDBMailItemt_MailItem__dbData(tselftdbData((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt__init__scCs
|jjS(N(RtGUID(R((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytGetGUIDscCs
|jjS(N(RtItemID(R((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt    GetItemIDscCs
|jjS(N(RtCount(R((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytGetCount scCs
|jjS(N(RtIsBind(R((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt    GetIsBind!scCs
|jjS(N(RtUserData(R((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt GetUserData"scCs |jjƒS(N(Rt    getBuffer(R((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt    GetBuffer#sN(
t__name__t
__module__tNoneRRR
R RRR(((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyRs                     t
ServerMailcBs‰eZdd„Zd„Zd„Zd„Zd„Zd„Zd„Z    d„Z
d„Z d    „Z d
„Z d „Zd „Zd „ZRS(cCs|stjƒn||_dS(N(RttagDBMailServert_ServerMail__dbData(RR((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyR(scCs
|jjS(N(RR(R((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyR,scCs
|jjS(N(RtType(R((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytGetType-scCs
|jjS(N(Rt
CreateTime(R((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt GetCreateTime.scCs
|jjS(N(Rt    LimitDays(R((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt GetLimitDays/scCs
|jjS(N(RtTitle(R((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytGetTitle0scCs
|jjS(N(RtText(R((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytGetText1scCs
|jjS(N(RtLimitLV(R((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt
GetLimitLV2scCs||j_dS(N(RR#(RtlimitLV((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt
SetLimitLV3scCs
|jjS(N(Rt LimitLVType(R((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytGetLimitLVType4scCs||j_dS(N(RR'(Rt limitLVType((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytSetLimitLVType5scCs
|jjS(N(Rt
CheckState(R((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt GetCheckState6scCs||j_dS(N(RR+(Rt
checkState((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt SetCheckState7scCs |jjƒS(N(RR(R((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyR8sN(RRRRRRRRR R"R$R&R(R*R,R.R(((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyR%s                                                 t PersonalMailcBsneZd d„Zd„Zd„Zd„Zd„Zd„Zd„Z    d„Z
d„Z d    „Z d
„Z RS( cCs|stjƒn||_dS(N(RttagDBMailPersonalt_PersonalMail__dbData(RR((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyR=scCs
|jjS(N(R1tPlayerID(R((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt GetPlayerIDAscCs
|jjS(N(R1R(R((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyRBscCs
|jjS(N(R1R(R((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyRCscCs
|jjS(N(R1R(R((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyRDscCs
|jjS(N(R1R(R((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyREscCs
|jjS(N(R1R(R((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyR FscCs
|jjS(N(R1R!(R((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyR"GscCs
|jjS(N(R1t    MailState(R((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt GetMailStateHscCs||j_dS(N(R1R4(Rt    mailState((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt SetMailStateIscCs |jjƒS(N(R1R(R((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyRJsN(RRRRR3RRRRR R"R5R7R(((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyR/:s                                     tMailMgrcBsãeZd„Zd„Zd„Zd„Zd„Zddd„Zd„Zd    „Z    d
„Z
d „Z d „Z d „Z d„Zddd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(cCs(i|_i|_i|_i|_dS(N(t_MailMgr__personalMailDictt_MailMgr__mailItemDictt_MailMgr__serverMailDictt#_MailMgr__serverMailPlayerStateDict(R((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyRNs
                cCsXt|ƒ}|jƒ}||jkr7i|j|<n|j|}|||jƒ<|S(s³õʼ»¯¹¦ÄÜÊý¾ÝʵÀý£¬´´½¨»ò¼ÓÔØÊý¾ÝʱͨÓ㬹¦ÄÜÒ»°ã²»µ÷ÓÃ
        @param dbData: ÊµÀý¶ÔÓ¦°ó¶¨µÄdbData
        @return: ³É¹¦·µ»ØÊµÀý¶ÔÏó£¬Ê§°Ü·µ»ØNone
        (R/R3R9R(RRtmailObjtplayerIDtmailDict((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt__InitPersonalMailInstanceUs   cCs)t|ƒ}|jƒ}||j|<|S(s³õʼ»¯¹¦ÄÜÊý¾ÝʵÀý£¬´´½¨»ò¼ÓÔØÊý¾ÝʱͨÓ㬹¦ÄÜÒ»°ã²»µ÷ÓÃ
        @param dbData: ÊµÀý¶ÔÓ¦°ó¶¨µÄdbData
        @return: ³É¹¦·µ»ØÊµÀý¶ÔÏó£¬Ê§°Ü·µ»ØNone
        (RRR;(RRR=tguid((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt__InitServerMailInstancebs   cCsUt|ƒ}|jƒ}||jkr7g|j|<n|j|}|j|ƒ|S(s³õʼ»¯¹¦ÄÜÊý¾ÝʵÀý£¬´´½¨»ò¼ÓÔØÊý¾ÝʱͨÓ㬹¦ÄÜÒ»°ã²»µ÷ÓÃ
        @param dbData: ÊµÀý¶ÔÓ¦°ó¶¨µÄdbData
        @return: ³É¹¦·µ»ØÊµÀý¶ÔÏó£¬Ê§°Ü·µ»ØNone
        (RRR:tappend(RRtmailItemRAt mailItemList((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt__InitMailItemInstancels    c     CsØ|s
dS|jj|dƒg}i}xº|D]²}t|tƒr|jddƒ}|jddƒ}|jddƒ}|jddƒ}    nŠt|tƒs®t|tƒr0t|ƒdkr0|d \}}t|ƒdkrì|dnd}t|ƒd    kr|d    nd}    nq0t    t
j |dƒt j ƒ}t    t
j |dƒt j ƒ}|rbd
nd}| s0| r|q0n|    rž|j||||    gƒq0||f}
|
|krÐd||
<|j|
ƒn||
|||
<q0Wd} xå|D]Ý}t|ƒd kr |\}}}}    n$d}    |\}}|j|dƒ}tjƒ} || _|| _|| _|| _|    | _t| jƒ| _|j| ƒ| d
7} | d krót
jd d||fƒPqóqóWdS(sâÌí¼ÓÓʼþÎïÆ·£¬È«·þ¡¢¸öÈËÓʼþͨÓã¬ÓʼþÎïÆ·Ö»¹ØÁªguid£¬¹¦ÄÜʹÓò㼶µ¥·âÓʼþÎïÆ·ÉÏÏÞ²»ÏÞ£¬µ«ÊÇÓʼþϵͳµ¥·âÓÐÄÚÖÃÉÏÏÞ
        @param itemList: ÔªËØÖ§³Ö×Öµä{k:v, ...} »òÁбí [itemID, itemCount, ¿ÉÑ¡ÊÇ·ñÅÄÆ·, ÎïÆ·UserData]
        NR    iR R RtiiiiitMailItemMultiErrors%s|%s(R:tpopRt
isinstancetdicttgettlistttupletlentmint    GameWorldtToIntDeft ShareDefinetDef_UpperLimit_DWordRCRRRR    R R Rt UserDataLent_MailMgr__InitMailItemInstancetSendGameErrorEx( RRAtitemListt itemRankListtitemDicttitemInfotitemIDt    itemCounttisBindtuserDatatkeyt mailItemCountR((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt __AddMailItemys` 0"%  
                        
 iic
Cs°tjƒ}tjƒ}||_||_||_tjƒ|_||_    ||_
t |j
ƒ|_ ||_ t |j ƒ|_tj|_|j||ƒ|j|ƒ}    |    S(s|Ìí¼Ó¸öÈËÓʼþ
        @param itemList: ÔªËØÖ§³Ö×Öµä{k:v, ...} »òÁбí [itemID, itemCount, ¿ÉÑ¡ÊÇ·ñÅÄÆ·, ÎïÆ·UserData]
        (RQRRR0R2RRtGetCurrentDataTimeStrRRRROtTitleLenR!tTextLenRStMailState_UnReadR4t_MailMgr__AddMailItemt"_MailMgr__InitPersonalMailInstance(
RR>ttitlettextRXt    limitDaystmailTypeRARR=((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytAddPersonalMail¹s                           cCs|jS(N(R9(R((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytGetAllPersonalMailDictÍscCs$||jkrdSt|j|ƒS(Ni(R9RO(RR>((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytGetPersonalMailCountÏscCs*||jkrgS|j|}|jƒS(N(R9tkeys(RR>R?((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytGetPersonalMailGuidsÕs cCs*||jkrgS|j|}|jƒS(N(R9tvalues(RR>R?((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytGetPersonalMailsÜs cCsad}||jkr%i|j|<n|j|}||krK||}ntr]tƒ}n|S(N(RR9tFalseR/(RR>RAR=R?((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytGetPersonalMailãs    cCs$||jkrdSt|j|ƒS(Ni(R:RO(RRA((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytGetMailItemCountïscCsqd}||jkrT|j|}d|ko?t|ƒknrT||}qTn| rmtrmtƒ}n|S(Ni(RR:RORtR(RRAtindextitemObjt itemObjList((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt GetMailItemAtõs "  c    Cs¤|stjƒ}ntjƒ}||_||_tjƒ|_||_||_    t
|j    ƒ|_ ||_ t
|j ƒ|_ |j||ƒ|j|ƒ}|S(s¶Ìí¼Ó¸öÈËÓʼþ
        @param guid: Ö¸¶¨µÄÓʼþguid£¬Îª¿Õʱ×Ô¶¯Éú³ÉÐÂguid
        @param itemList: ÔªËØÖ§³Ö×Öµä{k:v, ...} »òÁбí [itemID, itemCount, ¿ÉÑ¡ÊÇ·ñÅÄÆ·, ÎïÆ·UserData]
        (RQRRRRRRcRRRRORdR!ReRgt _MailMgr__InitServerMailInstance(    RRARiRjRXRkRlRR=((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt AddServerMails                     cCs;d}||jkr%|j|}ntr7tƒ}n|S(N(RR;RtR(RRAR=((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt GetServerMails  cCs |jjƒS(N(R;Rp(R((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytGetServerMailGuidsscCs`|j||ƒ}|r"|jƒS||jkr8tjS|j|}||krXtjS||S(N(RuR5R<RStMailState_Unknown(RRAR>t personalMailtplayerStateDict((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytGetPlayerMailState!s
  cCs‰|j||ƒ}|rO|tjkr>|j||ƒtjS|j|ƒ|S||jkrni|j|<n|j|}|||<|S(N(RuRSt MailState_DeltDelPersonalMailR7R<(RRAR>R6R€R((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytSetPlayerMailState-s  
cCsF|jj|dƒ||jkrB|j|}|j|dƒndS(N(R:RIRR9(RR>RAR?((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyR„=s
 cCs?|jj|dƒ|jj|dƒ|jj|iƒ}|S(N(R:RIRR;R<(RRAR((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt DelServerMailEscCs(i|_i|_i|_i|_dS(N(R9R:R;R<(R((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt
DelAllMailLs
                cCsbd}d\}}x1|jjƒD] }|d7}||jƒ7}q"W|tjd|ƒ|7}tjd|t|ƒfƒtj    ƒ}d    \}}xy|j
j ƒD]h\}}    xY|    j ƒD]K\}
} |j ƒ||_ |
|_| |_|d7}||jƒ7}q¾Wq¥W|tjd|ƒ|7}tjd|t|ƒfƒd
\} } xH|jjƒD]7}x.|jƒD] }| d7} | |jƒ7} qwWqdW|tjd| ƒ| 7}tjd| t| ƒfƒd \}}xB|jjƒD]1}x(|D] }|d7}||jƒ7}qÿWqòW|tjd|ƒ|7}tjd|t|ƒfƒ|S( NRGiis"Save DBMailServer count :%s len=%ss%Save DBMailPlayerRec count :%s len=%ss$Save DBMailPersonal count :%s len=%ss Save DBMailItem count :%s len=%s(is(is(is(is(R;RrRtCommFunct
WriteDWORDRQtLogRORttagDBMailPlayerRecR<titemstclearRR2R4RR9R:(RtsaveDatat serverMailCnttserverMailSavaDataR=RtplayerStateCnttplayerStateSaveDataRARR>R6tpersonalMailCnttpersonalMailSavaDataR?t mailItemCnttmailItemSavaDataRXRx((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt GetSaveDataTsD 
 
            
 
 
cCsõ||krdStj||ƒ\}}tjd|ƒxFt|ƒD]8}tjƒ}||j|||ƒ7}|j|ƒqFWtj||ƒ\}}tjd|ƒtj    ƒ}xSt|ƒD]E}|j
ƒ||j|||ƒ7}|j |j |j |jƒqÄWtj||ƒ\}}tjd|ƒxFt|ƒD]8}tjƒ}||j|||ƒ7}|j|ƒqCWtj||ƒ\}}tjd|ƒxFt|ƒD]8}tjƒ}||j|||ƒ7}|j|ƒqµW|S(NsLoad DBMailServer count :%ssLoad DBMailPlayerRec count :%ssLoad DBMailPersonal count :%ssLoad DBMailItem count :%s(Rˆt    ReadDWORDRQRŠtxrangeRRtreadDataR{R‹RtSetServerMailPlayerStateRR2R4R0RhRRV(Rtdatastpostdataslentcntt_R((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytLoadPyGameData‚s8   
   (RRRRhR{RVRgRmRnRoRqRsRuRvRzR|R}R~R‚R…R„R†R‡R—R¡(((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyR8Ls.             
         @                                                                   .(((((RRˆRSRQRRR/R8(((sQ.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt<module>s