hwj35
2025-06-23 aa0f971ae9a59f0fd98d57b6c1d1663a270be92c
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
=Egc@s–ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZedƒ\ZZdZdZd„Zd„Zd„Zd„Zd    „Zd
„Zd „Z d „Z!d „Z"d„Z#d„Z$d„Z%gd„Z&dS(iÿÿÿÿNiii cCsOt|ƒtjƒ}tjt|ƒd tjƒ}tj|tj    |ƒdS(Ni
(
tAddRecoverTimest    GameWorldtGetCurrentTimetChangeTimeStrToNumtstrtChConfigtTYPE_Time_Format_Dayt PlayerControltNomalDictSetPropertytDef_PDict_RecoverGainLastTime(t    curPlayertcurTimet
curTimeNum((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRecover.pyt RecoverOnDay4s
 
 cCst|ƒdS(N(t__NotifyRecoverNum(R
((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRecover.pytRecoverOnLogin?s
c2 CsP|jƒ}|dkrdSd}t|ƒ}td|dƒ}tjd|ƒg}tjƒ}tjƒ}xÏt|j    ƒƒD]»}|j
|ƒ}|j ƒ}    |    t kr¶qƒnt j|tj|    dƒ|jƒ}
tjd|
ƒ} | súqƒn| jƒ} | r%tj|| ƒ r%qƒn| jƒdkrö| jƒ} tj| ƒ}|s^qƒn|jƒ}|svqƒn|jtj| ƒ}| tjkr¨| r¨qƒntj|| ƒ\}}|\}}}}}}|\}}}}}}t|ƒdkr| rqƒn| tjkrUt ||d| ƒ}|s@qƒn||d|} n|||} |||}!|||}"|}#|}$|||}%t j|tj!|    |ƒ| tj"krtj#|tj$|dt%| gƒ}&t j|tj&|    |&ƒn|jtj'|    dƒ}'t(| |'||ƒ} t j|tj'|    | ƒ|jtj)|    dƒ}(t(|!|(||ƒ}!t j|tj)|    |!ƒ|jtj*|    dƒ})t(|"|)||ƒ}"t j|tj*|    |"ƒ|jtj+|    dƒ}*t(|#|*||ƒ}#t j|tj+|    |#ƒ|jtj,|    dƒ}+t(|$|+||ƒ}$t j|tj,|    |$ƒ|jtj-|    dƒ},t(|%|,||ƒ}%t j|tj-|    |%ƒtjd|    | |!|"|#|$|%fƒ|j.|    ƒqƒ| jƒdkrƒ| jƒ}-|}.t/j0||-ƒ\}/}0|-t1j2t1j3gkrbd}0|/r–|0}/q–n4|-t1j4kr–t5j6|dƒ\}1}0|0|1}/n|/|0kr¯|. r¯qƒn|0|/|.|0} | dkrÓqƒn|jtj'|    dƒ}'t j|tj'|    t(| |'|0|ƒƒ|j.|    ƒtjd|    | fƒqƒqƒWt7|ƒdS(Niiis"    Ôö¼Ó¿ÉÕһشÎÊý lostOnDayNum=%st
DailyQuestspÔö¼ÓÕһشÎÊýindex=%s,addCommonCnt=%s,addRegainCnt=%s,addExtraCnt=%s,addBuyCnt=%s,addItemAddCnt=%s,addnoBuyCnt=%ss$Ôö¼ÓÕһشÎÊýindex=%s,addCommonCnt=%s(8tGetLVt__GetLastRecoverPastDaytmaxRtDebugLogRt IpyGameDataPYtIPY_DatatxrangetGetResourcesBackCounttGetResourcesBackByIndextGetIDtDef_TJGRecoverIDRRRtDef_PDict_HaveRecovert GetRelatedIDtGetIpyGameDataNotLogtGetUnLockFuncIDt GameFuncCommt GetFuncCanUsetGetRelatedTypetFBCommont GetFBIpyDatat GetDayTimestNomalDictGetPropertyt Def_Player_Dict_FBHistoryMaxLinetDef_UnRecoverNoPassMaptGetFBDetailCntInfot
PyGameDatatFBEnterTimeLimiitMapIDt__GetLimitFBCnttDef_PDict_RecoverGainDatatDef_FBMapID_MunekadoTrialtGetDictValueByBitt"Def_Player_Dict_PlayerFBStar_MapIdtFalsetDef_PDict_RecoverGainDataExtDef_PDict_RecoverFBCommonCnttmintDef_PDict_RecoverFBRegainCnttDef_PDict_RecoverFBExtraCnttDef_PDict_RecoverFBBuyCnttDef_PDict_RecoverFBItemAddCnttDef_PDict_RecoverFBNoBuyCnttappendtPlayerActivitytGetDailyActionFinishCntt ShareDefinetDailyActionID_DicetDailyActionID_IceLodetDailyActionID_WorldBOSSt BossHurtMngtGetCanKillBossCntR(2R
tplayerLVt RecoverMaxDayt lostOnDayNumtrecoverNumListR t
ipyDataMgrtit recoverDatatindext    relatedIDtdailyQuestDatat unLockFuncIDt    dataMapIDt    fbIpyDatatmaxTimesthistoryMaxLinet
remainInfot    limitInfot
rCommonCntt rRegainFbCntt    rExtraCnttrBuyCntt rItemAddCnttnoBuyCnttrCommonCntlimittrRegainFbCntLimittrExtraCntlimitt rBuyCntlimittrItemAddCntlimitt noBuyCntlimitt    fbOpenCntt addCommonCntt addRegainCntt addExtraCntt    addBuyCntt addItemAddCntt addnoBuyCntt historyStart curCommonCntt curRegainCntt curExtraCntt    curBuyCntt curItemAddCntt curnoBuyCnttdailyIDt    lostOnDayt curDayTimest dayTimesLimitt
canKillCnt((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRecover.pyREsÆ           %             
cCsY|jtjdƒ}|sdStjtjƒƒ}td||ƒ}|dd}|S(Niii(R&RR    RRtGetCurrentDataTimeStrR(R
trecoverGainLastTimeR tpassTicktpastDay((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRecover.pyRÀscCs‰|s
dStjƒ}d}xft|ƒD]X}|tjd|dƒ}d|j|jf}tj||ƒswq)n|d7}q)W|S(Nitdaysis%02d%02d(    RRtrangetdatetimet    timedeltatmonthtdayR#tGetFBHasOpenToday(R
RvRNR R`tdiffDaysttimeDatatdayStr((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRecover.pyR,Ês c!    Cs¿tjƒj|ƒ}tjd|jƒƒ|j}|d krVtjd|ƒdS|jscdS|j}|j}i}i}g}    dddif\}
} } } xrt    |ƒD]d\}}|t
krÓd}n
||}t j d|ƒ}|sûq²nt ||||ƒ\}}|s"q²nx.|D]&\}}|j|dƒ|||<q)W|jƒr–|tkr–t|||ƒ}|r |    j|ƒq nvt||||ƒ\}}}}|
|7}
| |7} | |7} x4|jƒD]&\}}| j|dƒ|| |<qâW|||<q²W|s$dSi|tj6}x†|jƒD]x\}}tj|||ƒ}tjd|||fƒ|s†dSx0|D](\}}tj|||tj|ƒqWqAW|
dkrâtj|ƒj|
ƒntj}| dkrtj||| tjƒn| dkr;tj || t!t!dƒn| rút"j#|tj$ƒ}t%| ƒ|krµg| jƒD]\}}||dg^qu} tj&d|j'ƒg| ƒqúxB| jƒD]1\}}t(j)|||dtj$tj*gƒqÂWnt+|kr#t,j-|t.j/|t+ƒnt0j1||||
| | | ƒt2||ƒt3|ƒ|    rrt4j5||    ƒntjd    ||||
| | | fƒt(j6|| d|
d
i| |6ƒdS( Ns0==[PlayerRecover]== In->OnRecoverGain(), Name:%siis&OnRecoverGain() hasn't recover way(%s)t ResourcesBacks-    moneyType=%s,moneyCnt=%s,costMoneyList=%stRecoverts•==[PlayerRecover]== Out->OnRecoverGain() recoverWay=%s, costMoneyDict=%s, recoverCntDict=%s, totalExp=%s, totalMoney=%s, totalSP=%s, totalItemDict=%st    moneyInfo(ii(7RtGetPlayerManagertGetPlayerByIndexRt GetPlayerNametTypetCntt    IndexListtRecoverCntListt    enumerateRRtGetIpyGameDatat__GetRecoverCosttgettGetCanBackTimest RecoverWay1t__DoLogicBackTimesR:t__GetRecoverGaintitemsRtDef_Cost_Reason_SonKeyRt HaveMoneyExtPayMoneytDef_Cost_RecoverGaintAddExpt IPY_GameWorldtTYPE_Price_Silver_Moneyt    GiveMoneytDef_GiveMoney_RecovertPlayerAddZhenQitTruet
ItemCommontGetItemPackSpacetrptItemtlent SendMailByKeyt GetPlayerIDt ItemControlertGivePlayerItemt rptAnyWheretDef_QueenRelicst PlayerSuccesstDoAddSuccessProgressR=tSuccType_QueenRelicsExtDataRecordPacktDR_PlayerRecovert__SetRecoverNumRR#tSync_FBPlayerFBInfoDatatNotifyGiveAwardInfo(!RJt
clientDatattickR
t
recoverWaytrecoverIndexListtrecoverCntListt costMoneyDicttrecoverCntDictt    mapIDInfottotalExpttotalSPt
totalMoneyt totalItemDictRHt
recoverCnttipyDatat costMoneyListt    moneyTypetmoneyCntRNtexptsptmoneytitemDicttitemIDtitemCnttinfoDicttmTypetmCntt giveMoneyTypet
emptySpacet prizeItemList((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRecover.pyt OnRecoverGainäsŽ                      
!
 
 
$       .,  
&#cCs…|jƒ}tjd|ƒ}|s(dS|jƒdkr}|jƒ}|jtj|ƒ}tj|tj|||ƒndS|S(NRii(    RRRR"R&RtDef_Player_Dict_RecoverFbCntRR(R
RIR¾RKRLRNt recoverFbCnt((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRecover.pyR’As  !c Cs:|jƒ}|tkrCt||ƒ\}}t|||ƒ}n|jtjƒ}|tkrß|jƒ}|j    ƒ}    |tkr¢t
||t dƒƒ}
n(t||ƒ||    t d||ƒ}
t j|
gg} nQ|jƒ} |tkrt
| |t dƒƒ}
n
|| }
tj|
gg} | |fS(Nii(RRt__GetCanRecoverCntR4R&RtDef_PDict_TJGDeadPayTimeR‘tGetNormalCostJadetGetVipCostJadetinttfloatRR=tTYPE_Price_Gold_Paper_Moneyt GetCostCopperRšR›( R
R´R¾R¿RJt    commonCntt vipExtraCntt recoverSecondtnormalCostJadet vipCostJadet    costMoneyRÀt
costCopper((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRecover.pyRŽTs$      (  
cCs°|jtj|dƒ}|jtj|dƒ}|jtj|dƒ}|jtj|dƒ}|jtj|dƒ}|jtj|dƒ}||||||fS(Ni(R&RR3R5R6R7R8R9(R
RJRhRiRjRkRlRm((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRecover.pyRÒnsc    Csx|jƒD]
\}}|jtj|dƒ}|jtj|dƒ}|jtj|dƒ}|jtj|dƒ}|jtj|dƒ}|jtj|dƒ}    ||||||    g}
t    j
|
ƒ} d} xKt |
ƒD]=\} }| |7} t d| |ƒ| | <|| kréPqéqéW| \}}}}}}t j|tj||ƒt j|tj||ƒt j|tj||ƒt j|tj||ƒt j|tj||ƒt j|tj||ƒtjd||fƒtjd||||||    fƒtjd||||||fƒ|tkr |jtj|dƒ}|}| t|
ƒdkr©|dkr‘d}qú|dkrúd}qúnQt |||||ƒdkrô|dkrÜd}qú|dkrúd}qúnd}t j|tj||ƒq q WdS(Nis$×ÊÔ´ÕһشÎÊý: index=%s,recoverCnt=%ss_    curCommonCnt=%s,curBuyCnt=%s,curItemAddCnt=%s,curRegainCnt=%s,curExtraCnt=%s,curnoBuyCnt=%ss_    newCommonCnt=%s,newBuyCnt=%s,newItemAddCnt=%s,newRegainCnt=%s,newExtraCnt=%s,newnoBuyCnt=%siii(R”R&RR3R5R6R7R8R9tcopytdeepcopyRŒRRRRRRRR£(R
R¸RJR¾RhRiRjRkRlRmtcntListt
newCntListtsumCntRHtcntt newCommonCntt    newBuyCntt newItemAddCntt newRegainCntt newExtraCntt newnoBuyCntRItupdData((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRecover.pyR¯xsV
                        !cCs˜|jƒ}|jƒ}tj|ƒ}tj|tjƒ}|jtj|dƒ}|jtj    |dƒ}    |j
ƒ}
d} d} d} d}i}|t krÜ|jtj ƒ}|jtj ƒ}|tj|} n|tkrô|jƒn    |jƒ}|jddƒ}|rA|ttjd||f|ƒƒ} n|jddƒ}|r‚|ttjd||f|ƒƒ}n|jddƒ}|rÃ|ttjd||f|ƒƒ} n|jd    gƒ}|rˆ|jƒ}|jƒ}x’|D]‡}|jd
dƒ}|jd dƒ}|s0qún|ttjd |||f|ƒƒ}|seqúnt|||ƒ}|||<qúWn| | ||fS( NiRÃRƒsResourcesBackEXP%s_%sRÅsResourcesBackMoney%s_%sRÄsResourcesBacksp%s_%stitemtItemIDt    ItemCountsResourcesBackitem%s_%s_%s(RRRtGetPlayerReExptGetLimitExpRateRtExpRateLimitType_RecoverR&R-R2tGetOfficialRankRtDef_PDict_TJGDeadExptDef_PDict_TJGDeadExp1tDef_PerPointValueR‘t GetJadeRewardtGetCopperRewardRtevaltFormulaControltGetCompileFormulatGetJobtGetJobItemListt __GetJobItem(R
R´R¾R¿RJtreLVtreExptexpRatet    extraDatatdataExtrealmLVttjgExpRÃRÄRÅRÆtExptExp1t    awardDictt
expFormulat moneyFormulat    spFormulat itemInfoListtjobt jobItemListtitemInfoRÇtitemcntFormulatitemcnt((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRecover.pyR“¶sR    $)))   )cCs™x’|D]Š}t|ƒttgkr@tjd||fƒ|S||kr|dksj|t|ƒkr…tjd||fƒ|S||dSqW|S(Ns3×ÊÔ´ÕÒ»ØÖ°ÒµÎïÆ·×é¸ñʽ´íÎó!itemID=%s,jobItemList=%sis>×ÊÔ´ÕÒ»ØÖ°ÒµÎïÆ·ÅäÖôíÎó,ûÓиÃÖ°Òµ¶ÔÓ¦ÎïÆ·ID!itemID=%s,job=%si(ttypetlistttupleRtErrLogR£(RRÇRt jobItemIDList((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRecover.pyRÿås  c Csltjƒ}|jƒg|_tjƒ}xt|jƒƒD]}|j|ƒ}|j    ƒ}|rw||krwq>nt
||ƒ\}}|j t j |dƒ}    | rÀ| rÀ|     rÀq>ntjƒ}
|
jƒ||
_||
_||
_|    |
_|j t j|dƒ|
_|j t j|dƒ|
_|jj|
ƒq>Wt|jƒ|_tj||ƒdS(Ni(tChPyNetSendPackttagMCRecoverNumtCleartNumInfoRRRRRRRÒR&RRttagMCRecoverNumInfotIndext
RecoverCnttExtraCntt HaveRecoverR-t    ExtraDataR2t
ExtraData2R:R£tNumt NetPackCommont SendFakePack( R
RFtsendPackRGRHRIRJRÚRÛt haveRecovert numInfoPack((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRecover.pyR÷s2 
       
                ('RRûRRRR$RšR=R¦R­R RR#R t    PlayerTJGR;RªR*RARáRyRxR‘t RecoverWay2RR©R RRRR,RÏR’RŽRÒR¯R“RÿR(((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRecover.pyt<module>sH                                  {    
        ]            
    >    /