hxp
2025-05-16 273fbbf3ec69623f4501583614174c7d604a06b5
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
GÏ%hc@s‡ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z d„Zd„Zd„Zd„Zd„Zgdd„Zddd    d
„Zddd    d    d    d    d „Zd „Zd „Zd„Zd„Zed„Zd„Zd„Zd„Zdd„Z d„Z!d„Z"d„Z#dS(iÿÿÿÿNcCst|ƒt|ƒdS(N(tSync_PlayerServerMailtSync_PersonalMail(t    curPlayer((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMail.pyt OnPlayerLogin"s
 
cCs*ttjƒƒ}t|ƒt|ƒdS(N(tintttimetDelTimeoutServerMailtDelTimeoutPersonalMail(tcurTime((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMail.pytOnDayEx's
 
cCs•tjƒ}|jƒ}xv|D]n}|j|ƒ}|s@qntj|jƒƒ}||jƒddd}||krƒqnt|ƒqWdS(Niii(    t    DBDataMgrt
GetMailMgrtGetServerMailGuidst GetServerMailt    GameWorldtChangeTimeStrToNumt GetCreateTimet GetLimitDayst DelServerMail(RtmailMgrtserverMailGuidstguidtmailObjt
createTimet    limitTime((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMail.pyR-s    cCs¥tjƒ}|j|ƒ}|s%dStjƒ}titj|6ƒ}xW|jƒD]I\}}|tjkruqTn|j    |ƒ}|rTt
j ||ƒqTqTWdS(N( R
R RRtGetPlayerManagert__packMailStateChanget ShareDefinet MailState_DeltitemstFindPlayerByIDt NetPackCommont SendFakePack(RRtplayerStateDictt    playerMgrt
clientPacktplayerIDt    mailStateR((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMail.pyR?s  c Cs<tjƒ}|jƒ}x|jƒD]\}}i}xÃ|jƒD]µ\}}tj|jƒƒ}||jƒddd}    ||    kr“qDn|jƒ}
|j    |ƒ} | rÉ|
t
j krÉqDn|j ||ƒt j||dƒt
j||<qDW|s    q%ntjƒj|ƒ} | r%t| |ƒq%q%WdS(NiiitTimeout(R
R tGetAllPersonalMailDictRRRRRt GetMailStatetGetMailItemCountRt MailState_GottDelPersonalMailtDataRecordPackt
DR_MailDelRRRtSync_PlayerMailState( RRtpersonalMailDictR$tmailDicttnotifyGUIDStateRRRRR%t mailItemCountR((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMail.pyRNs,    icCsO|stj}nd|}dtj|dtƒ}t|||||ƒdS(Ns    <T>%s</T>s%st ensure_ascii(RtDefaultLackSpaceMailTypetjsontdumpstFalsetSendMail(t mailTypeKeyR$titemListt    paramListt    limitDaysttitlettext((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMail.pyt SendMailByKeyms  
ic
Css|dkrg}ntjƒ}tjddƒ}|j|ƒ}||kr¼|j|ƒ}    |    jdd„ƒtd|dƒ}
t    } d} i} xí| |
kr„|    r„| r„|    j
dƒ}|sÌq˜n|j ƒ}|j ƒ}|t jks|t jkr*|j|ƒr*t} | dkr*Pq*n| d7} tjd|||| fƒ|j||ƒtj||dƒt j| |<q˜W| r¼tjƒj|ƒ}|r¹t|| ƒq¹q¼n|j||||||ƒ}|jƒ}|j ƒ}i|d    6|d
6|d 6|d 6|d 6t|ƒd6}tj|||ƒtjƒj|ƒ}|rot||j ƒgƒndS(Nt PersonalMailitkeycSs|jƒ |jƒfS(N(R(R(tm((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMail.pyt<lambda>€si
is<ϵͳ×Ô¶¯É¾³ýÓʼþ: playerID=%s,guid=%s,mailState=%s,isStop=%stMaxCountLimiitt
CreateTimetTitletTextt    LimitDaystItemListt ItemListLen( tNoneR
R t IpyGameDataPYt
GetFuncCfgtGetPersonalMailCounttGetPersonalMailstsorttmaxR7tpoptGetGUIDR(RtMailState_UnReadtMailState_ReadR)tTrueRtDebugLogR+R,R-RRRR.tAddPersonalMailRtlent DR_MailSendR(R$R=R>R:R<tmailTypeRtmailMaxtmailCnttmailListt    oneDelCnttisStoptdelCntR1RRR%RREtGUIDtaddDict((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMail.pyR8vsR         - 
  c     Csntjƒ}    |    j||||||ƒ}
|
j|ƒ|
j|ƒ|
j|ƒ|sjt|
jƒƒndS(s·¢ËÍÈ«·þÓʼþ
    @param limitLV: ÏÞÖÆ¿ÉÁìµÄ×îµÍµÈ¼¶
    @param limitLVType: µÈ¼¶´ïµ½ºóÊÇ·ñ¿ÉÁ죬ĬÈϲ»¿É
    @param checkState: ÊÇ·ñÐèÒªÉóºË£¬Ä¬Èϲ»ÐèÒª
    N(R
R t AddServerMailt
SetLimitLVtSetLimitLVTypet SetCheckStatetSync_ServerMailRS( RR=R>R:R<R[tlimitLVt limitLVTypet
checkStateRR((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMail.pyt SendSeverMail¬s    cCsJtjƒ}|j|ƒ}|s%dS|s/dS|jdƒt|ƒdS(Ni(R
R R RgRh(RtisOKRR((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMail.pytCheckServerMailResult»s  
cCsptjƒj|ƒ}|j}|j}|dkrCt||ƒn)|dkr_t||ƒn t||ƒdS(Nii(RRtGetPlayerByIndexRbtReqTypet    doMailDeltdoMailGetAwardt
doMailRead(tindext curPackDatattickRRtreqType((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMail.pyt OnRequestMailÐs           cCsv|s
dS|jƒ}tjƒ}|j||ƒ}|tjkr^|j||tjƒ}nt|i||6ƒdS(N(    t GetPlayerIDR
R tGetPlayerMailStateRRTtSetPlayerMailStateRUR.(RRR$RR%((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMail.pyRsÞs  cCsæ|jƒ}tjƒ}|s0|j|ƒ}n    |g}g}i}t}i}xø|D]ð}|j||ƒ}    |    tjksŽ|    tjkr®t    j
d|    |f|ƒqXn|j |ƒ}
|
sÝt    j
d||ƒqXni} x$t |
ƒD]} |j || ƒ} | jƒ}| jƒ}| jƒ}| jƒ}t    jƒj|ƒ}|sYqðntj|ƒ}|r|j||||gƒd}n\||f}||krÂd||<|j|ƒn|||||<tj||||ƒ}| j|dƒ|| |<qðWt    j
d|| fƒxU| jƒD]G\}}|tj|||ƒkr.tj|d|gƒt}Pq.q.W|sƒPn|j ||tjƒ||<x–t |
ƒD]ˆ} |j || ƒ} | jƒ}| jƒ}| jƒ}| jƒ}tj!||||t"j#gdtj$ti|d6gƒs¬q¬q¬q¬Wt%j&||ƒqXWg}xd|D]\}t'|ƒd    kr¨|\}}|j|dƒ}|j|||gƒqY|j|ƒqYW|rÕtj(||d
ƒnt)||ƒdS( Ns)Óʼþ״̬ÒÑÁìÈ¡»ò²»ÄÜÁìÈ¡! mailState=%s,%ssÓʼþûÓÐÎïÆ·¿ÉÁìÈ¡! %siis     guid=%s,needPackSpaceDict=%stGeRen_chenxin_676165teventtMailGUIDitMail(*RyR
R tGetPersonalMailGuidsRVRzRtMailState_UnknownR*RRWR)tranget GetMailItemAtt    GetItemIDtGetCountt    GetIsBindt GetUserDatat GetGameDatatGetItemByTypeIDtChConfigtGetItemPackTypetappendt ItemControlertGetItemNeedPackCounttgetRt
ItemCommontGetItemPackSpacet PlayerControlt
NotifyCodeR7R{tGivePlayerItemt IPY_GameWorldtrptItemt ItemGive_MailR,tDR_MailGiveSuccessRYtNotifyGiveAwardInfoR.(RRR$RtguidListt statItemListt statItemDicttisPackSpaceEnoughR1R%R2tneedPackSpaceDictRttmailItemtitemIDt    itemCounttisBindtuserDatat curItemDatatpackTypet    needSpaceRAt giveItemInfotstatItem((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMail.pyRrêsŠ                 
 
   c    Cs7|jƒ}tjƒ}|s0|j|ƒ}n    |g}i}xä|D]Ü}|j||ƒ}|tjkrsqFn|sê|j|ƒ}|r·|tjkr·t    j
d||ƒqFn| rê|tj krêt    j
d||ƒqFqên|j ||tjƒ||<|rFt j||dƒqFqFWt||ƒdS(NsÓÐÎïÆ·ÓʼþδÁìÈ¡²»ÄÜɾ³ý! %ssÎÞÎïÆ·Óʼþδ¶Á²»ÄÜɾ³ý! %stGMDel(RyR
R R€RzRRR)R*RRWRUR{R,R-R.(    RRtisGMR$RRšR1R%R2((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMail.pyRqGs.            c    Cstjƒ}|j|ƒ}|s%dSt|ƒ}tjƒ}d|_|g|_t|jƒ|_    t
j ƒ}xŠt |j ƒƒD]v}|j|ƒ}t
j|ƒs­qƒnt||ƒ}|tjksƒ|tjkràqƒn||_tj||ƒqƒWdS(Ni(R
R R t __packMailObjtChPyNetSendPackt tagMCMailListt IsServerMailtMailListRYtCountRRR‚t OnlineCounttOnlineAttIsNormalPlayertCheckPlayerServerMailStateRRRt    MailStateRR (    RRt
serverMailtpackMailR#t playerManagertiRR%((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMail.pyRhjs(             c    Csîtjƒ}|jƒ}|s"dSg}x~|D]v}|j|ƒ}|sPq/nt||ƒ}|tjks/|tjkrƒq/nt|ƒ}||_    |j
|ƒq/W|s³dSt j ƒ}||_ t|j ƒ|_tj||ƒdS(N(R
R R R R´RRRR«RµRŒR¬R­R¯RYR°RR (    RRRšR^RRR%tmailR#((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMail.pyR†s,             c    CsÕ| s|jƒrtjS|jƒ}|jƒ}tjƒ}|j||ƒ}|tjkrc|Stj}|jƒ}|j    ƒ}|j
ƒ}||kr¿|s¸|j ||tj ƒStjS|j ||tj ƒS(N(t GetCheckStateRRRyRSR
R Rzt
GetLimitLVtGetLimitLVTypetGetLVR{tMailState_LimitRT(    RR¶R$RRR%RiRjtplayerLV((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMail.pyR´¤s"           cCsÏ|jƒ}tjƒ}|s0|j|ƒ}n|s:dStjƒ}g|_xW|D]O}|j||ƒ}|szqVnt|ƒ}|j    ƒ|_
|jj |ƒqVWt |jƒ|_ tj||ƒdS(N(RyR
R R€R¬R­R¯tGetPersonalMailR«R(RµRŒRYR°RR (RRšR$RR#RRRº((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMail.pyR¾s$         cCs`|jƒ}tjƒ}||_|jƒ|_|jƒ|_|jƒ|_    |j
ƒ|_ t |j ƒ|_ |jƒ|_t |jƒ|_tjƒ}|j|ƒ}xœt|ƒD]Ž}|j||ƒ}|sÜq¸ntjƒ}|jƒ|_|jƒ|_|jƒ|_|jƒ|_t |jƒ|_|j j!|ƒq¸Wt |j ƒ|_|S(N("RSR¬t    tagMCMailRbtGetTypetTypeRRERRHtGetTitleRFRYtTitleLentGetTextRGtTextLenR
R R)R‚Rƒt tagMCMailItemR„tItemIDR…R°R†tIsBindR‡tUserDatat UserDataLentItemsRŒ(RRRºRR2RtRŸtitem((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMail.pyR«Ös2        cCsvtjƒ}g|_xH|jƒD]:\}}tjƒ}||_||_|jj|ƒq"Wt|jƒ|_    |S(N(
R¬ttagMCMailStateChangeR¯RttagMCMailStateRbRµRŒRYR°(R1R#RR%Rº((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMail.pyRós              cCs$|s
dStj|t|ƒƒdS(N(RR R(RR1((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMail.pyR.þs($RRR’R•R,R¬RLRRRR
RŠR5RRR    RRRR?RKR8RlRnRxRsRrR7RqRhRR´RR«RR.(((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMail.pyt<module>sB                                      6                 ] #