hzr
2018-08-09 3346f8aae7f8abbd4b27c4564cbb802e7e717cc9
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
JN[c@sYddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZedƒ\ZZZZedƒ\ZZedƒ\ZZZdZd„Zdddejd„Zd    „Zgdddd
„Zdddejd „Z ejd „Z!dddd „Z"dddd„Z#dddejd„Z$d„Z%iddd„Z&d„Z'd„Z(d„Z)d„Z*d„Z+d„Z,d„Z-e.d„Z/d„Z0d„Z1d„Z2d„Z3d„Z4d„Z5d „Z6d!„Z7dS("iÿÿÿÿNiiitCompensationRequestStatecCsTtjƒ}|d|_|d|_|jddƒ|_|jddƒ|_|S(NtItemIDtCounttIsBinditUserDatat(tIPY_GameServertIpyCompensationItemRRtgetRR(t curItemDictt curItemData((sM.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerCompensation.pytMakeCompensationItemBs    ic    
 
CsJttj|ƒƒ}    |    jdƒd}    t|||    ||||||ƒ    S(Ns.i(tstrt    GameWorldtGetDatetimeByDiffDaystsplittSendPersonalItemMail(
ttitletcontenttgetDayst playerIDListt addItemListtgoldt    goldPapertsilvert
sourceTypet    limitTime((sM.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerCompensation.pytSendPersonalItemMailExOsc
Csy|\}}}}}}}t|ƒ}t|ƒ}    t|ƒ}
t|ƒ} t|ƒ} t|ƒ} d}d}ttj|ƒƒ}|jdƒd}xÛt|ƒD]Í\}}|    |krÆ||ng}|
|krâ||ng}| |krþ||nd}| |kr||nd}| |kr6||nd}d|t|ƒf}t||||||||ƒq¤WdS(NRis.is!<MailTemplate>%s</MailTemplate>%s(tlenR R RRt    enumerateR(tbatchMailInfoListt mailTypeKeytbatchPlayerIDListtbatchAddItemListtbatchParamListt    batchGoldtbatchGoldPapert batchSilvert lenPlayerIDtlenItemtlenParamtlenGoldt lenGoldPapert    lenSilverRRRtiRRt    paramListRRRR((sM.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerCompensation.pytSendPersonalItemMailBatchVs(      #c        Csjtjd|||||||fƒd}d|tj|dtƒf}t||d|||||ƒS(NsaSendMailByKey %s, playerIDList=%s, addItemList=%s, paramList=%s, gold=%s, goldPaper=%s, silver=%sRs!<MailTemplate>%s</MailTemplate>%st ensure_asciii(R tDebugLogtjsontdumpstFalseR(    RRRR-RRRRR((sM.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerCompensation.pyt SendMailByKeyqs
    c     Cs}|s
dStjƒ}    |     s)|    |kr>tjd|ƒdSg}
xˆ|D]€} t| tƒrs|
j| ƒqKnt| ƒdkrK| \} } }nqKi}| |d<| |d<||d<|
j|ƒqKWtjdƒ}t    dt
t j t|
ƒt |ƒƒƒƒ}xjt|ƒD]\}||}ttjƒƒ}t||
|||!||d    tj||f|||ƒqW|S(
NRsC¹¦ÄÜ·¢·ÅÎïÆ·²¹³¥/½±ÀøÓʼþ£¬Áìȡʱ¼äÒѳ¬Ê±£¬Ä¬Èϲ»Ìí¼Ó£¡LimitTime=%siRRRtMailMaxItemCntis%s<$_$>%s<$_$>%s(R tGetCurrentDataTimeStrR0t
isinstancetdicttappendRt IpyGameDataPYt
GetFuncCfgtmaxtinttmathtceiltfloattxrangeR tuuidtuuid1tAddPersonalItemtChConfigtDef_Mail_SenderSys(RRRRRRRRRt curServerTimetaddItemDictListtitemInfotitemIDtitemCnttisBindt addItemDicttperMailItemCnttmailCntR,t
startIndextGUID((sM.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerCompensation.pyR}s8   
 
 
.
c    CsUtjƒrdSttjƒƒ}t||tjƒ|dtj||f|ƒdS(Ns%s<$_$>%s<$_$>%s(    R t IsMergeServerR RBRCtPyAddPersonalCompensationR6RERF(tPlayerIDRRRRRQ((sM.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerCompensation.pytSendPersonalAsTextMail«s  c    
CstjƒrdSx0|D](}    t|    ƒ}
tjƒj||
ƒqWtjƒ} tjƒj|| |||||||ƒ    tjƒ} xt| j    ƒƒD]‰} | j
| ƒ}|dks™|j ƒ rÍq™nt ||tƒ\}}}}}|tkrq™nt|||| |||fgƒq™Wi|d6|d6|d6|d6|d6|d6|d6t|ƒd6}tj|||ƒt||||d||ƒdS(    Nt    LimitTimetPlayerLVt    PlayerJobtTexttGoldt    GoldPapertSilvert ItemListLen(R RRR tGetCompensationMgrtAddCompensationItemR6tAddEntireCompensationItemtGetPlayerManagerRAtGetActivePlayerCounttGetActivePlayerAttNonet    GetInitOKtCheckRequestCompensationR3tUnknow_CompensationTypetSyncQueryCompensationResultRtDataRecordPacktDR_AddEntireCompensationt__WriteSendMailOKEvent(RQRHRVRWRXRYRRRRMR
t
createTimet playerManagerR,tplayertcompensationTypetaddDict((sM.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerCompensation.pyt AddEntireItem·s,     ! &%c    
Cs1tjƒj|ƒ}    tjƒj||ƒ}
itjdƒtj6tjdƒtj    6} |
| |d} | dkrg} xHt
| ƒD]:}tjƒj |||ƒ}|s·qŠn| j |ƒqŠWx7| D],}t ||ƒ|    rÏt|    |dƒqÏqÏWntjƒj|||||||||ƒ    dS(NtMailDefaultCounttMailMarketCountii(R RatFindPlayerByIDR^t"GetPersonalCompensationCountByTypeR:R;REtMail_Type_DefaulttMail_Type_MarketRAtAtGUIDInPersonalTypesByTypeR9tClearPersonalCompensationtNotifyCompensationResulttAddPersonalCompensation(RQRTt
CreateTimeRVRYRRRRt    curPlayertcntttmpDicttdelcnttdelGUIDsR,ttmpGuidtguid((sM.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerCompensation.pyRSÜs&   c     CsQtjƒrdStjd||fƒx0|D](}    t|    ƒ}
tjƒj||
ƒq.Wi} tjƒ} x’|D]Š} t|| | ||||||ƒ    tjƒj    | ƒ}|rst
|||| |||fgƒ|j ƒ|j ƒg| |j ƒ<qsqsWi|d6|d6|d6|d6|d6t|ƒd6}tj||||ƒdS(Ns5Compensation### AddPersonalItem GUID:%s ItemDict:
%s RVRYRZR[R\R](R RRR0R R^R_R6RSRaRtRhtGetNametGetLVtGetAccIDRRitDR_AddPersonalCompensation(RQRHt PlayerIDListRVRYRRRRRMR
tonlinePlayerInfoRlRTR}Rp((sM.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerCompensation.pyRDs&     ")&cCs†|s
dSi}|\}}}}tjd|t|ƒfƒx*|D]"}|d|dg||d<qFWt|||||ƒdS(NsÓʼþÀëÏßÍæ¼ÒDBÐÅÏ¢: GUID=%s, %st
PlayerNametLVtAccID(R tLogR Rk(t resultSetListtextendValueListtplayerInfoDictRQRHRVRYt
resultDict((sM.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerCompensation.pytFindDBResult_SendMail,s  cCsdS(N((RQRHRVRYRtplayerLVt    playerJob((sM.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerCompensation.pyRk:s5cCs#tjƒj|ƒ}t|ƒdS(N(R RatGetPlayerByIndextNotifyPlayerCompensation(tindext
clientDatattickR}((sM.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerCompensation.pytOnQueryPlayerCompensationuscCst|ƒ}t||ƒdS(N(tSeekPlayerCompensationRh(R}t
notifyList((sM.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerCompensation.pyR–{s  cCsatjƒj||ƒtjƒj||ƒtjƒj|ƒdkr]tjƒj|ƒndS(Ni(R R^tDeletePersonalCompensationtDeletePlayerCompensationRectGetPersonalCountByGUIDtDeleteCompensationItem(t curPlayerIDtcurGUID((sM.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerCompensation.pyRys
cCs+|d|}tjƒj|||ƒdS(Ni
(R R^t AddPlayerRec(R¡RQt
prizeStatet    readStatetstate((sM.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerCompensation.pyt SetPrizeState‹sc    CsQ|jƒ}tjjƒ}g}tjƒj|ƒ}x]t|ƒD]O}tjƒj||ƒ}|j|j    |j
|j |j |j |jfƒqCWtjƒjƒ}|jƒ}|jƒ}    xŠt|dddƒD]r}tjƒj|ƒ}
tjƒj||
j    ƒ} | d} | d} | ttfkr9q×ntjj|
jtjƒ}||krˆ| tkrˆt||
j    t| ƒq×n|
j|    krq×n|
jdkró|jƒ}|
jtd|ƒ@dkrót||
j    t| ƒq×qónt| krt||
j    t| ƒn|j|
j    |
j
|
j |
j |
j |
jfƒq×W|S(Niiÿÿÿÿi
iii(iÿÿÿÿi( tGetIDtdatetimettodayR R^tGetPersonalCompensationCountRAtPersonalCompensationAtR9RQRYR|RZR[R\tGetEntireCompensationCounttGetJobR…tAtEntireCompensationtFindPlayerRecStatet Disable_Statet    Yet_StatetstrptimeRVREtTYPE_Time_Formatt Unknown_StateR§RWRXtpowt Enable_State(R}R¡tcurTimetallListtcurPersonalCountR,tcurIpyPersonalDatatcurEntireCounttcurJobtcurLVt
curRequiretstatesR¥tcurStateR((sM.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerCompensation.pyR›’sD   
 
      cCs™tjƒ}|jƒxZ|D]R\}}}}}}tjƒj|ƒ}    tjƒ}
||
_||
_||
_    t
|ƒ|
_ ||
_ ||
_ ||
_tjƒj|jƒ|ƒd|
_xŠt|    ƒD]|} tjƒj|| ƒ} tjƒ} | j| _| j| _| j| _| j| _t
| jƒ| _|
jj| ƒqÍWt
|
jƒ|
_|jj|
ƒqWt
|jƒ|_tj||ƒdS(Ni
(tChPyNetSendPackttagGCQueryCompensationResulttClearR R^t FindItemCountttagGCCompensationPackRQR|RYRtTextLenRZR[R\R°t GetPlayerIDtIsReadRAt
FindItemAtttagGCCompensationItemRRRRt UserDataLentItemsR9tPackListt NetPackCommont SendFakePack(R}RœtsendPackRQRYR|RRRtcurGUIDItemCounttsubPackR—tcurItemt subPackItem((sM.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerCompensation.pyRhËs6 
                         %     c
Cstjdƒ|j}tjƒj|ƒ}|s5dS|jtƒrUtjdƒdS|jtdƒ|j}tjd||fƒt    ||ƒ\}}}    }
} |t
krÐ|jtdƒtjdƒdSt |||||||    |
| ƒ    tjdƒdS(Ns*Compensation### OnMGRequestCompensation insCompensation### already requestis=Compensation### OnMGRequestCompensation myPlayerID %s GUID %sis0Compensation### OnMGRequestCompensation no founds+Compensation### OnMGRequestCompensation out( R R0RTRaRtt GetDictByKeytDef_RequestStatetSetDictRQRfRgtSendGMRequestCompensationResult( t
routeIndextmapIDt curPackDataR™t
myPlayerIDR}RQRoRYRRR((sM.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerCompensation.pytOnMGRequestCompensationës$            
"c CsL|jƒ}|r[tjƒj||ƒ}|j|kr[t|j|j|j|j    fSntjƒj
||ƒ}|d}|d}|t t fkr¬t ddddfStjƒj|ƒ}|j|krùtjƒj||ƒt ddddfStjj|jtjƒ}    tjjƒ}
|    |
krat|krat||t |ƒt ddddfSt|krŒt|j|j|j|j    fS|jƒ} |j| krºt ddddfS|jƒ} |jdkr|jtd| ƒ@dkrt||t |ƒt ddddfSnt||t|ƒt|j|j|j|j    fS(Ni
Riiÿÿÿÿii(iÿÿÿÿi( R¨R R^tFindPersonalCompensationRTtPersonal_CompensationTypeRYRZR[R\R°R±R²RgtFindEntireCompensationRQRžR©R³RVRER´RªRµR§R·tEntire_CompensationTypeR…RWR®RXR¶( R}RQt isPersonnalR¡tcurPersonalCompensationRÀR¥RÁtcurEntireRequireRR¸R¾R½((sM.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerCompensation.pyRfsD 
 
   c    Cs+tjƒ}    |jƒ|    _||    _||    _||    _t|ƒ|    _||    _    ||    _
||    _ t j ƒj|ƒ}
xŠt|
ƒD]|} t j ƒj|| ƒ} tjƒ} | j| _| j| _| j| _| j| _t| jƒ| _|    jj| ƒq‚Wt|    jƒ|    _tj|||    ƒdS(N(tChGameToMapPyPackttagGMRequestCompensationResultR¨RTtCompensationTypeRQRYRRÇRZR[R\R R^RÅRARÊttagGMCompensationItemRRRRRÌRÍR9RÏtSendPyPackToMapServer(RÚRÛR}RQRoRYRRRRÑRÒR,RÔRÕ((sM.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerCompensation.pyRÙKs,                              cCsj|j}tjƒj|ƒ}|s(dS|j}|j}|jtdƒ|jrft    |||ƒndS(Ni(
RTR RaRtRQRèRØR×tResulttGiveCompensationSuccess(RÚRÛRÜR™RÝR}RQRè((sM.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerCompensation.pytOnMGGiveCompensationResultis                cCsz|jƒ}t||dƒtj||ƒ|tkrYtjƒj||dtƒdS|t    krvt
||ƒdSdS(Nii
( R¨RzRitDR_GiveCompensationSuccessRâR R^R£R²RàRy(R}RQRèR¡((sM.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerCompensation.pyRì{s    cCsëtjjƒ}g}tjƒjƒ}xst|ƒD]e}tjƒj|ƒ}tjj|jt    j
ƒtj ddƒ}||kr4|j |j ƒq4q4WxG|D]?}tjƒj|ƒtjƒj|ƒtjƒj|ƒq¤WdS(Ntdaysi(R©RªR R^R­RAR¯R³RVRER´t    timedeltaR9RQtDeleteEntireCompensationR tDeleteRecByGUID(R¸tneedClearGUIDListt    entireCntR,RåRRQ((sM.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerCompensation.pytClearUpEntireCompensations+  cCs tƒdS(N(Rõ(((sM.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerCompensation.pytClearUpTimeOutCompensation©sc    Cs×tjƒj|ƒ}|j}|jƒ}tjƒj||ƒ}|j|kr|tjƒj|ƒ}|j|kr|dSntjƒj    ||ƒ}|dt
kr¨dSt
d|d}tjƒj |||ƒdS(Ni
( R RaR•RQR¨R^RßRTRáR°tRead_State_YesR£(    R—R˜R™R}RQR¡RäRåRÁ((sM.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerCompensation.pytOnReadCompensation¹s     cCstjƒj|ƒ}|j}|jƒ}tjƒj||ƒ}|j|krrt||ƒt    ||dƒdStjƒj
|ƒ}|j|krªt    ||dƒdStjƒj
|ƒ}|j|kr t ||t tjƒj ||ƒdƒt    ||dƒdSt    ||dƒdS(Niii
(R RaR•RQR¨R^RßRTRyRzRáR§R±R°(R—R˜R™R}RQR¡RäRå((sM.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerCompensation.pytOnDelCompensationÚs$      )cCs2tjƒ}||_||_tj||ƒdS(N(RÂttagGCDelCompensationResultRQRëRÏRÐ(R}RQtresultt
sendMCPack((sM.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerCompensation.pyRzùs         (8R RERRæRÏtCommFuncRÂRit ReadChConfigt PlayerDBOpert EventReportR:R©RBR>R1trangeRµR±R·R²t Read_State_NoR÷RâRàRgR×R RvRR.R4RRURqRSRDR’RkRšR–RyR§R›RhRÞtTrueRfRÙRíRìRõRöRøRùRz(((sM.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerCompensation.pyt<module>s\                         - %'(    ;            
        9         % ;                        !