cehua-HWJ35
2019-03-07 cd6fbfa9dce9c101fe7a819c811036cfbbefab8d
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
»‚|\c@s¬ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl!Z!ddl"Z"ddl#Z#ddl$Z$ddl%Z%ddl&Z&ddl'Z'ddl(Z(ddl)Z)ddl*Z*ddl+Z+ddl,Z,ddl-Z-ddl.Z.ddl/Z/ddl0Z0ddl1Z1d„Z2d„Z3d„Z4d„Z5d„Z6d„Z7d„Z8dd    „Z:d
„Z;d „Z<d „Z=d „Z>d„Z?d„Z@d„ZAd„ZBd„ZCd„ZDd„ZEd„ZFd„ZGd„ZHd„ZId„ZJd„ZKd„ZLd„ZMd„ZNd„ZOd„ZPd „ZQd!„ZRd"„ZSd#„ZTd$„ZUd%„ZVd&„ZWdS('iÿÿÿÿNcCs&|jƒ}|r"tj|ƒndS(N(tGetTeamt
PlayerTeamtSync_TeamMemberInfo(t    curPlayertcurTeam((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pytDoRefreshMainServerRoleKs cCs’tjƒj|ƒ}yt||ƒWne|jtjƒddl}tjd|j    ƒƒtj
ƒj ƒrŽt d|j    ƒƒ‚qŽnXdS(NiÿÿÿÿsÍæ¼ÒÉÏÏßÂß¼­´íÎó~~~~~
%ssÍæ¼ÒÉÏÏßÂß¼­´íÎó~~~~
%s( t    GameWorldtGetPlayerManagertGetPlayerByIndext__Func_PlayerLogintKicktIPY_PlayerDefinetdisWaitForPlayerLoinErrort    tracebacktErrLogt
format_exct GetGameWorldt GetDebugLevelt    Exception(tindexttickRR ((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyt PlayerLoginXs cCs~tjd|jƒ|jƒƒ|jtj|jƒƒt||ƒt||ƒt    j
||ƒt ||ƒ|j ƒdS(Ns__Func_PlayerLogin mapID=%s( RtLogtGetMapIDt GetPlayerIDtSetDicttChConfigtDef_PDict_LoginMapIDtInitPlayerOnLineTimetInitPlayerOnLineReplytGameDataRecordtPlayerLoginRecordt__DoPlayerLoginServertMapServer_InitOK(RR((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyR    js    
cCsºtjƒrtj|ƒdStj||ƒtj||ƒtj    |ƒt
j |ƒs¶t j ||ƒtj|ƒtj|ƒtj |ƒtj |ƒt||ƒtj |ƒtj |ƒtj |ƒtj |ƒtj|ƒtj |ƒtj |ƒtj |ƒtj|ƒt j |ƒt!j|ƒt"j#|ƒt$j%|j&ƒƒt'j |ƒ|j(ƒt)j*|j&ƒ<t+j,|ƒtj |ƒt-j |ƒt.j |ƒndS(s2 Íæ¼ÒµÇ¼ÐèÒª´¦ÀíµÄÄÚÈÝ£¬±¾·þ¼°¿ç·þ·þÎñÆ÷·Ö¿ª
    N(/Rt IsCrossServert CrossRealmPKtOnPlayerLoginCrossServert PlayerFamilytPlayerLoginRefreshFamilyRtOnPlayerLoginRefreshTeamtPlayerCompensationtNotifyPlayerCompensationt PlayerControltGetIsTJGt PlayerFriendt OnPlayerLogintGMCommontSendBroadCastToClientt PlayerTrucktSyncPlayerTruckStartTimet PlayerBourset AuctionHouset__CheckWorldNotifyOnLogintPlayerFamilyRedPackettPlayerFamilyStoretPlayerFamilyPartytPlayerSealDemont
PlayerXMZZt OnXMZZOnLogint PlayerLVAwardt PlayerStoret GameWorldBosstPlayerFamilyBosstOnLogint PlayerDuJietPlayerFamilySWRHt
PlayerTalkt LoginChatMit PlayerGeTuitCleanNewGuyCallBackGeTuitGetIDtGameWorldActionControltGetLVt
PyGameDatatg_todayPlayerLVDicttPlayerFBHelpBattletOnHelpPlayerLogintPlayerZhuXianBosstGMT_CTG(RR((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyR zsB                        cCsÃtjƒrdStjddƒ}|jƒ|kr8dStjddƒ}t|ƒ}|rl||krldStjdƒ}d}x;|D]3\}}t|tƒr•|t    j
kr¸qˆn|t    j gkrÐqˆntj ƒj |ƒ}    |    sñqˆn|    jƒ}
t|ƒ} x‰td| ƒD]u} | dks| |
kr=qn| d} | |krYqn|    j| ƒ}|jƒ|jƒkr|| }PqqWn|rˆtjd||jƒgƒPqˆqˆWdS(NtBillBoardPlayerLoginNotifyiitii(RR"t IpyGameDataPYt
GetFuncCfgRHtGetPlayerLeaveServerSecondtGetFuncEvalCfgt
isinstancetintt ShareDefinetBillboardTypeListtDef_BT_HighLaddert GetBillboardt FindBillboardtGetCounttmaxtrangetAtRFR*t WorldNotifytGetName(RRtlimitLVtnotifyCDt
LogoffTimetnotifyCheckListtmsgMarkt    checkMarkt
notifyDictt    billboardt billboardCnttmaxOrderRtordert objBillboard((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyR4ÈsH    
 
 cCsp|jƒ}|dks$|dkr(dStj|ƒ}tjtjƒƒ}||}|jddd|jS(NRPt0iii<(t GetLogoffTimeRtGetDateTimeByStrtGetCurrentDataTimeStrtdaystseconds(Rt logoffTimeStrt
logoffTimet    loginTimet    diff_Time((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyRSs 
cCs7tj|ƒ}|sdSt||ƒt||ƒdS(N(Rt GetUserDatatActivateAccountAwardtSyncOPPlayerLoginInfo(RtcurPlayerUserData((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pytDoLogic_LoginUserDatas   cCsv|jƒ}|s|Syt|ƒ}Wntjd|ƒ|SXt|tƒsftjd|ƒ|S|j||ƒS(Nsdata error UserData = %sstype error UserData = %s(RxtevalRRRUtdicttget(RtkeytdefaulttplayerUserDataStrR{((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pytGetUserDataByKey*s c    Csh|jddƒdkr£t|jddƒƒ}|jd|ƒd|t|jddƒƒt|jddƒƒt|jd    dƒƒt|jd
dƒƒg}n*t|jd
dƒƒ|jd dƒg}tj|jd d ƒƒ}|jtj|ƒ|jddƒ}|s(|jddƒ}ntj|jdd ƒƒ}|j|||gƒ|dkrÉ|jt|jddƒƒt|jddƒƒt|jddƒƒt|jddƒƒgƒnp|d kr9|jt|jddƒƒt|jddƒƒt|jddƒƒt|jddƒƒgƒnt|ƒ}|j    ddd|t
|ƒƒdS(!NtagentRPtxunleitisvipit    XunLeiVIPtviplevelt    isgoldvipt    goldlevelt
clienttypet channel_codetpidRntpftplatformtqidtypetqzonetpengyoutqplust    is_yellowtis_year_yellowtis_high_yellowt yellow_leveltqqgamet3366tis_bluet is_year_bluet is_high_bluet
blue_levelt    LoginData(R‘R’R“(R˜R™( RRVRRtToIntDefRtDef_PlayerKey_PlayerFromPIDtextendtstrtMapServer_QueryPlayerResulttlen(RtuserDictR†tresultRRt account_type((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyRzFs,03* 04 04 cCsF|jdƒsdSt|dƒ}|jddd|t|ƒƒdS(Nt activateTypeit ActivateAward(thas_keyR¢R£R¤(RR¥tmsg((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyRymscCs!dS|jƒ}|sdSt|ƒ}tjdt|ƒ|fƒ|s^tjd|ƒdSy.t|dddƒ}|ddd}Wntk
r­tjdƒdSX|sÉtjd|ƒdS|rtj|ƒsótjd    |ƒdStt    j
t    j |d
ƒƒƒ}nd }dS( Nstype=%s, curPlayerUserData=%ssnot curPlayerUserData=%stdataR¦tagetendtimes curPlayerAge or endTime ##Error!scurPlayerAge:%s not ##Error!sendTime:%s Format ##Error!s%Y-%m-%d %H:%M:%Si( RxR}RRttypeRVt BaseExceptionRRpttimetmktimetstrptime(RR‚R{t curPlayerAgetendTime((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pytNotifyGameWallowInfoys2    $    c    CsÛ|jƒ}|sdS|jƒ}|j|ƒ}|sLtjd|ƒdStj|ƒ}|svtjd|ƒdSd}|jƒtjkršd}nd}tj    ƒj
|t j ||||t |ƒ|jƒƒdS(Ns'ˢмÒ×åÊôÐÔʧ°Ü, ¼Ò×å³ÉÔ±²éÕÒÒì³£ = %ss0ˢмÒ×åÊôÐÔʧ°Ü, ¼Ò×å³ÉÔ±²éÕÒÒì³£ tagMapID = %sRnt1tRefresh_Family_Info(t    GetFamilyRt
FindMemberRRtGetQueryPlayerMapIDt GetFamilyLVtIPY_GameServert    fmlLeaderRtMapServer_QueryPlayerRt queryType_sqtRefresh_Family_InfoR¤tGetRouteServerIndex(Rt    curFamilytplayerIDt    curMemberttagMapIDtsendCMDt queryCallName((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyt__RefreshFamilyToMapServer­s&      "cCs|j|ƒdS(N(t SetLoginTick(RR((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyRÓs cCs|jdƒ|jdƒdS(Ni(tSetOnlineReplyErrorCounttSetOnlineReplyTick(RR((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyRÜs  cCsŒtjƒj|ƒ}yt||ƒWnUddl}tjd|jƒƒtjƒjƒr~t    d|jƒƒ‚q~nX|j
ƒdS(NiÿÿÿÿsÍæ¼ÒÏÂÏßÂß¼­´íÎó~~~~~
%ssÍæ¼ÒÏÂÏßÂß¼­´íÎó~~~~
%s( RRRt__Func_PlayerDisconnectR RRRRRt DoDisconnect(RRRR ((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pytPlayerDisconnectæs 
cCshtj|ƒtj||ƒtj||ƒtj||ƒtj    ||ƒt
|ƒt j |ƒdS(N( R#t OnLeaveServerRtDoPlayerLogOffTeamLogicR%tPlayerLogoffRefreshFamilyR,tOnPlayerDisconnectRDtNewGuyCallBackGeTuitSetPlayerOfflineTimeR3tOnPlayerLeaveServer(RR((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyRÌøs 
 cCs‹tj|ƒrdS|jƒ}|jƒ}|s5dS|j|ƒ}tjƒ}tj|t    j
ƒ}t tj |ƒƒ}|j |ƒdS(N(R*R+RR¹RºRRqR±R³RtTYPE_Time_FormatRVR²t
SetExattr2(Rt curPlayerIDRÂRÄt
curTimeStrt curTimeTuplet
curTimeNum((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyRÔs   cCsdS(N((RR((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pytTruckPlayerDisconnectProcess$s    cCs8tjƒj|ƒ}tjƒ}|j|jƒƒdS(N(RRRR½tIPY_GRefreshPlayerNametSetNameRa(RRRtplayerNamePack((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyt RefreshName4s cCsQtjƒj|ƒ}|dkr6tjd|ƒdStjƒ}|jƒ}|jƒ}|t    j
kr}t j ||ƒdS|tj kr t j||ƒdS|tjkrÃt j||ƒdS|tjkrætj||ƒdS|tjkr|j|ƒdS|tjkr)tj||ƒdS|tjkr†|j|ƒtj|||ƒ|jƒ}|tjkr|tj|<qnŽ|tj kr¥|j!|ƒno|tj"krÇt j#||ƒnM|tj$kræ|j%|ƒn.|tj&kr|j'|ƒt(||ƒn|tj)kr1|j*|ƒnã|tj+krP|j,|ƒnÄ|tj-krrt j.||ƒn¢|tj/kr”t j0||ƒn€|tj1kr¶t j2||ƒn^|tj3krÕ|j4|ƒn?|tj5kr|j6|ƒtj|||ƒt7j8|ƒntj9||||ƒtj:||ƒt;j<|||ƒdS(Ns'RefreshState, index = %d, player = None(=RRRtNoneRR½tIPY_GRefreshPlayerPropertytGetValuetGetTypeRWtCDBPlayerRefresh_ForbidenTalkR*tSetGMForbidenTalktCDBPlayerRefresh_StatetSetIsTJGtCDBPlayerRefresh_HappyPointt
SetTJGTimet"CDBPlayerRefresh_FamilyActiveValueR%tReFreshPlayerFamilyActiveValuetCDBPlayerRefresh_FightPowert SetFightPowertCDBPlayerRefresh_ExAttr2RtSetTeamCheckStatetCDBPlayerRefresh_LVtSetLVt PlayerSocialtUpdateSocialInfoRFRIRJtCDBPlayerRefresh_JobtSetJobtCDBPlayerRefresh_ExAttr1t
SetJobRanktCDBPlayerRefresh_MapIDtSetMapIDtCDBPlayerRefresh_RealMapIDt SetRealMapIDtOnPlayerChangeRealMaptCDBPlayerRefresh_FBIDtSetFBIDtCDBPlayerRefresh_VIPLvtSetVIPLvtCDBPlayerRefresh_ExAttr9tSetVIPExpireTimetCDBPlayerRefresh_ExAttr10tSetChatBubbleBoxtCDBPlayerRefresh_ExAttr11tSetTodayXianyuanCointCDBPlayerRefresh_OperateInfotSetOperateInfotCDBPlayerRefresh_OfficialRanktSetOfficialRanktPlayerBillboardtUpdateBillboardRealmtPlayerTeamMemberRefresht PlayerRefreshRKt UpdateCheckInPlayerInfoByRefresh(RRRtplayerStatePackt    packValuetpackTypeRÃ((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyt RefreshState?sx         cCs†|jƒsdStjd|jƒ|jƒ|jƒf|jƒƒtj||ƒt    j|ƒt
j||ƒt j||ƒdS(NsÍæ¼Ò : %s,%s,FBID=%s Çл»µØÍ¼( t    GetInitOKRRRat GetRealMapIDtGetFBIDRRtOnPlayerChangeMapR=R%R7(RR((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyR¨s 5 cCst||ƒdS(N(R(RR((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyRýºs cCstS(N(tTrue(RR((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pytPlayerOnlineReplyÊscCsƒtjd|jƒ|jƒ|jƒ|jƒf|jƒƒtj||ƒt    j
|ƒ|j t ƒt j|ƒt|ƒdS(Ns(%s µÇ¼, accID = %s, IP = %s, MapID = %s(RRRatGetAccIDtGetIPRRRtOnPlayerReadMapOKtPlayerEventCountertUpdatePlayerLoginTimet    SetInitOKRtGMShellR-RÈ(RR((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pytPlayerLoginLoadMapOKøs>       
cCsÀtjƒj|ƒ}tjƒ}|jƒdkrD|jtƒdS|jƒspt    ||ƒt
j ||ƒn|j ƒr‰|j ƒn|jtƒtj||ƒtjd|jƒƒdS(NisÍæ¼Ò¿ªÊ¼µØÍ¼³õʼ»¯¶¯×÷(RRRR½tIPY_GPlayerLoadMapt GetLoadStatet SetIsLoadMapRRR"tUpdatePlayerNamet$PlayerLoadMapRedressUpdatePlayerNamet GetIsLoadMaptMapServer_GameServerRefreshOKtFalseR.tDoLogic_GMForbidIPRR(RRRtpack((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pytPlayerLoadMapStates       cCs%tjƒ}tj}|jƒxdt|jƒƒD]P}|j|ƒ}|jƒdkro|j    |j
ƒƒq2|j |j ƒƒq2W|j ƒ}|dkrÁtjƒj||j ƒ|ƒdS|jƒdkrütjƒj|jƒ|j ƒ|ƒdStjƒj|jƒ|j ƒ|ƒdS(Ni(R½tIPY_GWorldNotifyCodeR*tNotifyCodeListtClearR^t GetParCounttGetParstGetLentAddIntt    GetMsgInttAddStrtGetMsgt GetFamilyIDRRtFamilyNotifyCodet    GetLineIDtCountryNotifyCodet
GetCountrytLineNotifyCodet GetRouteIndex(RRR,tnotifyCodeListtit    notifyMsgtfamilyID((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyR`As"     
  %%c        Cs‰tjƒj|ƒ}|j}|j}|j}tjƒ}t|||gƒ}|j|jƒdd|d|t    |ƒ|j
ƒƒdS(NitFBLinePlayerCnt( RRRtMapIDtFBLineIDt    IsAllLineR¢R¿RR¤RÁ(    Rt
clientDataRRt
queryMapIDtfbLineIDt    isAllLinet playerManagerRÆ((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pytClinetQueryFBLinePlayerCntts             cCs|s
dS|sdSt|ƒdkr*dS|\}}tjƒ}||_g|_x™|jƒD]‹\}}tjƒ}|jƒ||_|rœ|dnd|_    t|ƒdkrÁ|dnd|_
t|j
ƒ|_ |jj |ƒqaWt|jƒ|_ tj||ƒdS(NiiiRP(R¤tChPyNetSendPackttagGCFBLinePlayerCntRDtFBLineInfoListtitemsttagGCFBLineInfoR0REt    PlayerCnttExtraStrt ExtraStrLentappendtCountt NetPackCommont SendFakePack(Rt
resultInfoRÅtfbLinePlayerCntDictt
fblinePacktlineIDtinfoListt mapLineState((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pytQueryFBLinePlayerCntResult€s*           
    %cCsWtjƒj|ƒ}|j}tjddƒ}i}tjƒjƒ}|jƒ}xCt    |ƒD]5}    |j
|    ƒ}
|
j ƒ} xt    | ƒD]} |
j | ƒ} | j ƒ}|dkrÎ||krÎqn| jƒ}||krüt|||ƒ}n|j|gggƒ\}}xUt    |ƒD]G}| j|ƒ}|jƒ}|jƒ}|j|ƒ|j|ƒq'W||g||<|dkrPqqWqaWtjƒ}|jƒg|_xu|jƒD]g\}}tjƒ}|jƒ||_|d|_|d|_t|jƒ|_|jj|ƒqÆWt|jƒ|_t j!||ƒdS(NtMapLineii("RRRRDRQRTRtGetMapServerStateManagertGetZoneServerCnttxrangetGetZoneServerByIndext GetMapCounttGetMapServerStateByIndexRt GetLineCounttminRtGetLineByIndextGetCurPlayerCnttGetMaxPlayerCntRURMttagGCPyServerMapStateR0t MapStateListRPttagGCPyServerMapLineStatetLineCurPlayerCntListtLineMaxPlayerCntListR¤tLineCnttMapCountRWRX(RRGRRRHt mapLineDictt mapPlayerDicttmapServerStateManagerRbt    zoneIndextZoneServerStatetmapCntR@tMapServerStatetmapIDtlineCnttcurPlayerCntListtmaxPlayerCntListt    lineIndextMapServerLineStatet curPlayerCntt maxPlayerCntt mapStatePackt playerCntListR^((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pytClientQueryLineStateŸsR               
     
      cCsdS(N((RR((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pytMapServer_GetLineStateÖs)cCsStjƒj|ƒ}||jdƒtjkr5dS|jƒ|jd|ƒdS(Nt ShowFbEvent(RRRt GetDictByKeyRtDef_Show_Fb_Event_TicktSync_GameFbEventR(RRR((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyR†s
 
cCsßtjƒ}|j|ƒ}tjƒ}||jtjƒtjtjkratj    |dƒdS|j
tj|ƒt j ƒ}|j |jƒƒ}|s¯tj    |dƒdS|j|t|jƒƒƒtj    |dƒdS(NtSpeech_Lost_FrequentlytSpeech_Lost_NoLinetSpeech_Success(RRRRt GetTickByTypeRtTYPE_ImpeachTicktTYPE_Tick_TimeR*t
NotifyCodet SetTickByTypeR½t IPY_CImpeachtFindPlayerByIDRt ImpeachPlayerR¢tGetTalk(RRRKRt    gameWorldR,t    tagPlayer((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pytImpeach&s  & cCs&tjƒj|ƒ}t||ƒdS(N(RRRtSync_PyServerDataTimeToClient(RRGRR((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pytClientRequestServerTimeEs cCs°tj|tj|ƒsdStjƒ}|s2dStjƒ}|jƒ|j|_    |j
|_ |j |_ |j|_|j|_|j|_|j|_tj||ƒdS(N(RtRefurbishPlayerTickRtTYPE_Player_Tick_SyncClientTickt GetServerTimeRMttagServerDateTimeR0tyeartYeartmonthtMonthtdaytDaythourtHourtminutetMinutetsecondtSecondt microsecondt    MicSecondRWRX(RRt
serverTimetserverDateTime((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyR™Os   
       cCsžtjt_it_tjƒ}xvt|jƒƒD]b}|j|ƒ}|dks4|j    ƒ rhq4nt
j |ƒr}q4n|j ƒtj|j ƒ<q4WdS(N(RIRJtg_yesterdayPlayerLVDictRRRctGetActivePlayerCounttGetActivePlayerAtRáRR*R+RHRF(RKR@R((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pytUpdataPlayerLVInfohs      cCsçtjƒ}|jtjƒ}|jƒ}x<t|ƒD].}|j|ƒ}|jƒt    j
|j ƒ<q7W|jtj ƒ}|jƒ}x<t|ƒD].}|j|ƒ}|jƒt    j |j ƒ<q”Wtjdt    j
t    j fƒdS(NsV    ·þÎñÆ÷¿ªÆôʱ¼ÓÔØ»îÔ¾Íæ¼ÒµÈ¼¶ÐÅÏ¢g_todayPlayerLVDict=%s, g_yesterdayPlayerLVDict=%s(RtGetUniversalRecMgrt GetTypeListRWt*Def_UniversalGameRecType_TodayPlayerLVInfoRVRcR_t    GetValue2RIRJt    GetValue1t.Def_UniversalGameRecType_YesterdayPlayerLVInfoR¯tDebugLog(tuniversalRecMgrt recDataListtallCntRtrecData((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pytLoadPlayerLVDatavs   cCsìtjƒjtjƒtjƒjtjƒtjƒ}|jtjƒ}xCtjj    ƒD]2\}}|j
ƒ}|j |ƒ|j |ƒqZW|jtjƒ}xCtj j    ƒD]2\}}|j
ƒ}|j |ƒ|j |ƒq²WdS(N(RR³tDeleteRWRµR¸R´RIRJRPtAddRect    SetValue1t    SetValue2R¯(RºR»RÃtlvR½((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pytSavePlayerLVDataˆs     (XRR½RRR*R%RR,R.RWtPlayerDataCollectR±RMRWRt
GameConfigt ReadChConfigR&R=R>R2RMR9tGameWorldShopItemR0t
HighLaddert EventReportR(R5R6t PyDataManagerRóR7R8R R;R@RARQRBRDR<RGRKRNRIR!R R#R3RRR    R R4RSR|RáRƒRzRyR¶RÈRRRÎRÌRÔRÜRàRRRýRR"R-R`RLR_R„R…R†R˜RšR™R²R¾RÄ(((sSE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyt<module>s¬                                                                   N    ?             '         4    &            
                         i            .        *    3             7    0