hxp
2025-06-04 75e9958b460bee27afb900975a4e35c4cc02b94f
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
§º?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((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt__init__scCs
|jjS(N(RtGUID(R((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytGetGUIDscCs
|jjS(N(RtItemID(R((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt    GetItemIDscCs
|jjS(N(RtCount(R((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytGetCount scCs
|jjS(N(RtIsBind(R((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt    GetIsBind!scCs
|jjS(N(RtUserData(R((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt GetUserData"scCs |jjƒS(N(Rt    getBuffer(R((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt    GetBuffer#sN(
t__name__t
__module__tNoneRRR
R RRR(((slD:\SG_ServerCode\ServerPython\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((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyR(scCs
|jjS(N(RR(R((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyR,scCs
|jjS(N(RtType(R((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytGetType-scCs
|jjS(N(Rt
CreateTime(R((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt GetCreateTime.scCs
|jjS(N(Rt    LimitDays(R((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt GetLimitDays/scCs
|jjS(N(RtTitle(R((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytGetTitle0scCs
|jjS(N(RtText(R((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytGetText1scCs
|jjS(N(RtLimitLV(R((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt
GetLimitLV2scCs||j_dS(N(RR#(RtlimitLV((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt
SetLimitLV3scCs
|jjS(N(Rt LimitLVType(R((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytGetLimitLVType4scCs||j_dS(N(RR'(Rt limitLVType((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytSetLimitLVType5scCs
|jjS(N(Rt
CheckState(R((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt GetCheckState6scCs||j_dS(N(RR+(Rt
checkState((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt SetCheckState7scCs |jjƒS(N(RR(R((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyR8sN(RRRRRRRRR R"R$R&R(R*R,R.R(((slD:\SG_ServerCode\ServerPython\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((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyR=scCs
|jjS(N(R1tPlayerID(R((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt GetPlayerIDAscCs
|jjS(N(R1R(R((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyRBscCs
|jjS(N(R1R(R((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyRCscCs
|jjS(N(R1R(R((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyRDscCs
|jjS(N(R1R(R((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyREscCs
|jjS(N(R1R(R((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyR FscCs
|jjS(N(R1R!(R((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyR"GscCs
|jjS(N(R1t    MailState(R((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt GetMailStateHscCs||j_dS(N(R1R4(Rt    mailState((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt SetMailStateIscCs |jjƒS(N(R1R(R((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyRJsN(RRRRR3RRRRR R"R5R7R(((slD:\SG_ServerCode\ServerPython\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„Zd„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((slD:\SG_ServerCode\ServerPython\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((slD:\SG_ServerCode\ServerPython\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((slD:\SG_ServerCode\ServerPython\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((slD:\SG_ServerCode\ServerPython\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||
|||
<q0Wg} xr|D]j}t|ƒd kr |\}}}}    n$d}    |\}}|j|dƒ}| j||||    gƒqóWd } t| ƒ| kr¢t
jd d|t| ƒ|| fƒnxr| D]j\}}}}    tjƒ} || _|| _|| _|| _|    | _t| jƒ| _|j| ƒq©WdS(sâÌí¼ÓÓʼþÎïÆ·£¬È«·þ¡¢¸öÈËÓʼþͨÓã¬ÓʼþÎïÆ·Ö»¹ØÁªguid£¬¹¦ÄÜʹÓò㼶µ¥·âÓʼþÎïÆ·ÉÏÏÞ²»ÏÞ£¬µ«ÊÇÓʼþϵͳµ¥·âÓÐÄÚÖÃÉÏÏÞ
        @param itemList: ÔªËØÖ§³Ö×Öµä{k:v, ...} »òÁбí [itemID, itemCount, ¿ÉÑ¡ÊÇ·ñÅÄÆ·, ÎïÆ·UserData]
        NR    iR R RtiiiiitMailItemMultiErrors %s|%s|%s|%s(R:tpopRt
isinstancetdicttgettlistttupletlentmint    GameWorldtToIntDeft ShareDefinetDef_UpperLimit_DWordRCtSendGameErrorExRRRR    R R Rt UserDataLent_MailMgr__InitMailItemInstance(RRAtitemListt itemRankListtitemDicttitemInfotitemIDt    itemCounttisBindtuserDatatkeyt giveItemListt Max_MailItemR((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt __AddMailItemysb 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=((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytAddPersonalMailºs                           cCs|jS(N(R9(R((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytGetAllPersonalMailDictÎscCs$||jkrdSt|j|ƒS(Ni(R9RO(RR>((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytGetPersonalMailCountÐscCs*||jkrgS|j|}|jƒS(N(R9tkeys(RR>R?((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytGetPersonalMailGuidsÖs cCs*||jkrgS|j|}|jƒS(N(R9tvalues(RR>R?((slD:\SG_ServerCode\ServerPython\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?((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytGetPersonalMailäs    cCs$||jkrdSt|j|ƒS(Ni(R:RO(RRA((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytGetMailItemCountðscCsqd}||jkrT|j|}d|ko?t|ƒknrT||}qTn| rmtrmtƒ}n|S(Ni(RR:RORuR(RRAtindextitemObjt itemObjList((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt GetMailItemAtös "  c    Cs—||jkrgSg}xw|j|D]h}|jƒ}|jƒ}|jƒ}|jƒ}|||g}|r‚|j|ƒn|j|ƒq'W|S(N(R:R
R RRRC(    RRARXRDR\R]R^R_R[((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytGetMailItemLists    c    Cs½d}|stjƒ}n||jkr.|Stjƒ}||_||_tjƒ|_    ||_
||_ t |j ƒ|_ ||_t |jƒ|_|j||ƒ|j|ƒ}|S(s¶Ìí¼Ó¸öÈËÓʼþ
        @param guid: Ö¸¶¨µÄÓʼþguid£¬Îª¿Õʱ×Ô¶¯Éú³ÉÐÂguid
        @param itemList: ÔªËØÖ§³Ö×Öµä{k:v, ...} »òÁбí [itemID, itemCount, ¿ÉÑ¡ÊÇ·ñÅÄÆ·, ÎïÆ·UserData]
        N(RRQRR;RRRRRdRRRROReR!RfRht _MailMgr__InitServerMailInstance(    RRARjRkRXRlRmR=R((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt AddServerMails"                     cCs;d}||jkr%|j|}ntr7tƒ}n|S(N(RR;RuR(RRAR=((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt GetServerMail(s  cCs |jjƒS(N(R;Rq(R((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytGetServerMailGuids1scCs`|j||ƒ}|r"|jƒS||jkr8tjS|j|}||krXtjS||S(N(RvR5R<RStMailState_Unknown(RRAR>t personalMailtplayerStateDict((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytGetPlayerMailState5s
  cCs‰|j||ƒ}|rO|tjkr>|j||ƒtjS|j|ƒ|S||jkrni|j|<n|j|}|||<|S(N(RvRSt MailState_DeltDelPersonalMailR7R<(RRAR>R6R‚Rƒ((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytSetPlayerMailStateAs  
cCsF|jj|dƒ||jkrB|j|}|j|dƒndS(N(R:RIRR9(RR>RAR?((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyR†Qs
 cCs?|jj|dƒ|jj|dƒ|jj|iƒ}|S(N(R:RIRR;R<(RRARƒ((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt DelServerMailYscCs(i|_i|_i|_i|_dS(N(R9R:R;R<(R((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt
DelAllMail`s
                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;RsRtCommFunct
WriteDWORDRQtLogRORttagDBMailPlayerRecR<titemstclearRR2R4RR9R:(RtsaveDatat serverMailCnttserverMailSavaDataR=RtplayerStateCnttplayerStateSaveDataRARƒR>R6tpersonalMailCnttpersonalMailSavaDataR?t mailItemCnttmailItemSavaDataRXRy((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt GetSaveDatahsD 
 
            
 
 
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R‡RR2R4R0RiRRW(Rtdatastpostdataslentcntt_R((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pytLoadPyGameData–s8   
   (RRRRiR}RWRhRnRoRpRrRtRvRwR{R|R~RR€R„R‡R†RˆR‰R™R¢(((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyR8Ls0             
         A                                                                       .(((((RRŠRSRQRRR/R8(((slD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBMail.pyt<module>s