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
ù£i[c@svddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    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.d„Z/d„Z0d„Z1d„Z2d„Z3d„Z4d„Z5d    „Z6dd
„Z8d „Z9d „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$„ZRdS(%iÿÿÿÿNcCstjtƒ||ƒdS(N(t    GameWorldt GetPsycoFunct__Func_PlayerLogin(tindexttick((sR.\ProjectSServer\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyt PlayerLoginLscCs™tjƒj|ƒ}t||ƒt||ƒtj||ƒtj||ƒt    j
||ƒt j |ƒt j|ƒs‹tj||ƒtj|ƒtj|ƒtj|ƒtj|ƒt||ƒtj|ƒtj|ƒtj|ƒtj|ƒtj|ƒtj|ƒt j|ƒt!j"|ƒt#j|ƒt$j"|ƒt%j&|ƒt'j(|j)ƒƒt*j|ƒt+j|ƒn|j,ƒdS(N(-RtGetPlayerManagertGetPlayerByIndextInitPlayerOnLineTimetInitPlayerOnLineReplytGameDataRecordtPlayerLoginRecordt PlayerFamilytPlayerLoginRefreshFamilyt
PlayerTeamtOnPlayerLoginRefreshTeamtPlayerCompensationtNotifyPlayerCompensationt PlayerControltGetIsTJGt PlayerFriendt OnPlayerLogintPlayerEventCountertSync_OpenServerDaytGMCommontSendBroadCastToClientt PlayerTrucktSyncPlayerTruckStartTimet PlayerBourset__CheckWorldNotifyOnLogintPlayerFamilyRedPackettPlayerFamilyStoretPlayerFamilyPartytPlayerSealDemont
PlayerXMZZt OnXMZZOnLogint PlayerLVAwardt GameWorldBosstPlayerFamilyBosstOnLogint PlayerDuJietPlayerFamilySWRHt
PlayerTalkt LoginChatMit PlayerGeTuitCleanNewGuyCallBackGeTuitGetIDtGameWorldActionControltGMT_CTGtMapServer_InitOK(RRt    curPlayer((sR.\ProjectSServer\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyRVs<                    
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(Rt IsMergeServert IpyGameDataPYt
GetFuncCfgtGetLVtGetPlayerLeaveServerSecondtGetFuncEvalCfgt
isinstancetintt ShareDefinetBillboardTypeListtDef_BT_HighLaddert GetBillboardt FindBillboardtGetCounttmaxtrangetAtR.Rt WorldNotifytGetName(R2RtlimitLVtnotifyCDt
LogoffTimetnotifyCheckListtmsgMarkt    checkMarkt
notifyDictt    billboardt billboardCnttmaxOrderRtordert objBillboard((sR.\ProjectSServer\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyR§sH    
 
 cCsp|jƒ}|dks$|dkr(dStj|ƒ}tjtjƒƒ}||}|jddd|jS(NR4t0iii<(t GetLogoffTimeRtGetDateTimeByStrtGetCurrentDataTimeStrtdaystseconds(R2t logoffTimeStrt
logoffTimet    loginTimet    diff_Time((sR.\ProjectSServer\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyR9æs 
cCs„tjƒ}|jdƒ}|jdƒ}|s4dStjƒ}t|ƒ|_||_||_t    j
ƒ|_
t j ||ƒdS(Nt MergeServerIPtMergeServerPort( t
GameConfigt    GetConfigtgettChPyNetSendPackttagMergeServerInfotlent ServerIPLentServerIPtPortRR5t NetPackCommont SendFakePack(R2t    mapConfigt mergeServerIPtmergeServerPorttmergeServerInfo((sR.\ProjectSServer\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pytSendMergeWarOpen÷s          cCsdS(N((R2((sR.\ProjectSServer\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyt MSGetReward    scCsdS(N((R2((sR.\ProjectSServer\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pytSync_InitOpenServerTimescCs7tj|ƒ}|sdSt||ƒt||ƒdS(N(Rt GetUserDatatActivateAccountAwardtSyncOPPlayerLoginInfo(R2tcurPlayerUserData((sR.\ProjectSServer\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(RrtevalRtErrLogR;tdictRb(R2tkeytdefaulttplayerUserDataStrRu((sR.\ProjectSServer\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(!NtagentR4txunleitisvipit    XunLeiVIPtviplevelt    isgoldvipt    goldlevelt
clienttypet channel_codetpidRTtpftplatformtqidtypetqzonetpengyoutqplust    is_yellowtis_year_yellowtis_high_yellowt yellow_leveltqqgamet3366tis_bluet is_year_bluet is_high_bluet
blue_levelt    LoginData(R‹RŒR(R’R“( RbR<tSetDictRtToIntDeftChConfigtDef_PlayerKey_PlayerFromPIDtextendtstrtMapServer_QueryPlayerResultRe(R2tuserDictR€tresultR‡R‰t account_type((sR.\ProjectSServer\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyRtKs,03* 04 04 cCsF|jdƒsdSt|dƒ}|jddd|t|ƒƒdS(Nt activateTypeit ActivateAward(thas_keyRžRŸRe(R2R tmsg((sR.\ProjectSServer\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyRsrscCs!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( RrRwRtLogttypeR<t BaseExceptionRxRVttimetmktimetstrptime(R2R|Rut curPlayerAgetendTime((sR.\ProjectSServer\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pytNotifyGameWallowInfo~s2    $    c    CsÛ|jƒ}|sdS|jƒ}|j|ƒ}|sLtjd|ƒdStj|ƒ}|svtjd|ƒdSd}|jƒtjkršd}nd}tj    ƒj
|t j ||||t |ƒ|jƒƒdS(Ns'ˢмÒ×åÊôÐÔʧ°Ü, ¼Ò×å³ÉÔ±²éÕÒÒì³£ = %ss0ˢмÒ×åÊôÐÔʧ°Ü, ¼Ò×å³ÉÔ±²éÕÒÒì³£ tagMapID = %sRTt1tRefresh_Family_Info(t    GetFamilyt GetPlayerIDt
FindMemberRRxtGetQueryPlayerMapIDt GetFamilyLVtIPY_GameServert    fmlLeaderRtMapServer_QueryPlayerR›t queryType_sqtRefresh_Family_InfoRetGetRouteServerIndex(R2t    curFamilytplayerIDt    curMemberttagMapIDtsendCMDt queryCallName((sR.\ProjectSServer\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyt__RefreshFamilyToMapServer²s&      "cCs|j|ƒdS(N(t SetLoginTick(R2R((sR.\ProjectSServer\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyRØs cCs|jdƒ|jdƒdS(Ni(tSetOnlineReplyErrorCounttSetOnlineReplyTick(R2R((sR.\ProjectSServer\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyR    ás  cCstjtƒ||ƒdS(N(RRt__Func_PlayerDisconnect(RR((sR.\ProjectSServer\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pytPlayerDisconnectëscCsmtjƒj|ƒ}tj||ƒtj||ƒtj||ƒt    j
||ƒt |ƒ|j ƒdS(N( RRRRtDoPlayerLogOffTeamLogicR tPlayerLogoffRefreshFamilyRtOnPlayerDisconnectR,tNewGuyCallBackGeTuitSetPlayerOfflineTimet DoDisconnect(RRR2((sR.\ProjectSServer\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyRÉôs
 
cCs‹tj|ƒrdS|jƒ}|jƒ}|s5dS|j|ƒ}tjƒ}tj|t    j
ƒ}t tj |ƒƒ}|j |ƒdS(N(RRR¶RµR·RRWR­R¯R›tTYPE_Time_FormatR<R®t
SetExattr2(R2t curPlayerIDR¿RÁt
curTimeStrt curTimeTuplet
curTimeNum((sR.\ProjectSServer\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyRÏs   cCsdS(N((R2R((sR.\ProjectSServer\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pytTruckPlayerDisconnectProcess#s    cCs8tjƒj|ƒ}tjƒ}|j|jƒƒdS(N(RRRRºtIPY_GRefreshPlayerNametSetNameRG(RRR2tplayerNamePack((sR.\ProjectSServer\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyt RefreshName3s cCsòtjƒ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)t j||ƒdS|tjkrLtj||ƒdS|tjkr~|j|ƒtj|||ƒnJ|tjkr|j |ƒn+|tj!kr¿t j"||ƒn    |tj#krÞ|j$|ƒnê|tj%kr
|j&|ƒt'||ƒn¾|tj(kr)|j)|ƒnŸ|tj*krH|j+|ƒn€|tj,krjt j-||ƒn^|tj.kr‰|j/|ƒn?|tj0krÈ|j1|ƒtj|||ƒt2j3|ƒntj4||||ƒtj5||ƒdS(Ns'RefreshState, index = %d, player = None(6RRRtNoneRªRºtIPY_GRefreshPlayerPropertytGetValuetGetTypeR=tCDBPlayerRefresh_ForbidenTalkRtSetGMForbidenTalktCDBPlayerRefresh_StatetSetIsTJGtCDBPlayerRefresh_HappyPointt
SetTJGTimet"CDBPlayerRefresh_FamilyActiveValueR tReFreshPlayerFamilyActiveValuetCDBPlayerRefresh_FightPowert SetFightPowertCDBPlayerRefresh_ExAttr10tSetMergeWarRanktCDBPlayerRefresh_ExAttr2RtSetTeamCheckStatetCDBPlayerRefresh_LVtSetLVt PlayerSocialtUpdateSocialInfotCDBPlayerRefresh_JobtSetJobtCDBPlayerRefresh_ExAttr1t
SetJobRanktCDBPlayerRefresh_MapIDtSetMapIDtCDBPlayerRefresh_RealMapIDt SetRealMapIDtOnPlayerChangeRealMaptCDBPlayerRefresh_FBIDtSetFBIDtCDBPlayerRefresh_VIPLvtSetVIPLvtCDBPlayerRefresh_ExAttr9tSetVIPExpireTimetCDBPlayerRefresh_OperateInfotSetOperateInfotCDBPlayerRefresh_OfficialRanktSetOfficialRanktPlayerBillboardtUpdateBillboardRealmtPlayerTeamMemberRefresht PlayerRefresh(RRR2tplayerStatePackt    packValuetpackType((sR.\ProjectSServer\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyt RefreshState>sn        cCsf|jƒsdStjd|jƒ|jƒ|jƒf|jƒƒtj||ƒt    j|ƒdS(NsÍæ¼Ò : %s,%s,FBID=%s Çл»µØÍ¼(
t    GetInitOKRRªRGt GetRealMapIDtGetFBIDR¶RtOnPlayerChangeMapR%(R2R((sR.\ProjectSServer\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyR¡s  5 cCst||ƒdS(N(R(R2R((sR.\ProjectSServer\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyRú±s cCstS(N(tTrue(RR((sR.\ProjectSServer\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pytPlayerOnlineReplyÁscCsftjd|jƒ|jƒ|jƒ|jƒf|jƒƒtj|ƒ|j    t
ƒt |ƒdS(Ns(%s µÇ¼, accID = %s, IP = %s, MapID = %s( RRªRGtGetAccIDtGetIPRR¶RtUpdatePlayerLoginTimet    SetInitOKRRÅ(R2R((sR.\ProjectSServer\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 SetIsLoadMapRR RtUpdatePlayerNamet$PlayerLoadMapRedressUpdatePlayerNamet GetIsLoadMaptMapServer_GameServerRefreshOKtFalseRtDoLogic_GMForbidIPRªR¶(RRR2tpack((sR.\ProjectSServer\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_GWorldNotifyCodeRtNotifyCodeListtClearRDt GetParCounttGetParstGetLentAddIntt    GetMsgInttAddStrtGetMsgt GetFamilyIDRRtFamilyNotifyCodet    GetLineIDtCountryNotifyCodet
GetCountrytLineNotifyCodet GetRouteIndex(RRR!tnotifyCodeListtit    notifyMsgtfamilyID((sR.\ProjectSServer\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyRF8s"     
  %%c        Cs‰tjƒj|ƒ}|j}|j}|j}tjƒ}t|||gƒ}|j|jƒdd|d|t    |ƒ|j
ƒƒdS(NitFBLinePlayerCnt( RRRtMapIDtFBLineIDt    IsAllLineRžR¼R¶ReR¾(    Rt
clientDataRR2t
queryMapIDtfbLineIDt    isAllLinet playerManagerRÃ((sR.\ProjectSServer\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pytClinetQueryFBLinePlayerCntks             cCsÏ|s
dS|sdSt|ƒdkr*dS|\}}tjƒ}||_g|_xR|jƒD]D\}}tjƒ}|jƒ||_||_    |jj
|ƒqaWt|jƒ|_ t j ||ƒdS(Ni(ReRcttagGCFBLinePlayerCntR9tFBLineInfoListtitemsttagGCFBLineInfoR%R:t    PlayerCnttappendtCountRiRj(R2t
resultInfoRÂtfbLinePlayerCntDictt
fblinePacktlineIDt    playerCntt mapLineState((sR.\ProjectSServer\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pytQueryFBLinePlayerCntResultws&           
        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("RRRR9R6R:t GetGameWorldtGetMapServerStateManagertGetZoneServerCnttxrangetGetZoneServerByIndext GetMapCounttGetMapServerStateByIndextGetMapIDt GetLineCounttminRbtGetLineByIndextGetCurPlayerCnttGetMaxPlayerCntRGRcttagGCPyServerMapStateR%t MapStateListRDttagGCPyServerMapLineStatetLineCurPlayerCntListtLineMaxPlayerCntListRetLineCnttMapCountRiRj(RR<RR2R=t mapLineDictt mapPlayerDicttmapServerStateManagerRSt    zoneIndextZoneServerStatetmapCntR5tMapServerStatetmapIDtlineCnttcurPlayerCntListtmaxPlayerCntListt    lineIndextMapServerLineStatet curPlayerCntt maxPlayerCntt mapStatePackt playerCntListRN((sR.\ProjectSServer\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pytClientQueryLineState”sR               
     
      cCsdS(N((RR((sR.\ProjectSServer\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pytMapServer_GetLineStateËs)cCsStjƒj|ƒ}||jdƒtjkr5dS|jƒ|jd|ƒdS(Nt ShowFbEvent(RRRt GetDictByKeyR›tDef_Show_Fb_Event_TicktSync_GameFbEventR™(RRR2((sR.\ProjectSServer\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyRxû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(RRRRQt GetTickByTypeR›tTYPE_ImpeachTicktTYPE_Tick_TimeRt
NotifyCodet SetTickByTypeRºt IPY_CImpeachtFindPlayerByIDR¶t ImpeachPlayerRžtGetTalk(RRR@R2t    gameWorldR!t    tagPlayer((sR.\ProjectSServer\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pytImpeachs  & cCs&tjƒj|ƒ}t||ƒdS(N(RRRtSync_PyServerDataTimeToClient(RR<RR2((sR.\ProjectSServer\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pytClientRequestServerTime:s cCs°tj|tj|ƒsdStjƒ}|s2dStjƒ}|jƒ|j|_    |j
|_ |j |_ |j|_|j|_|j|_|j|_tj||ƒdS(N(RtRefurbishPlayerTickR›tTYPE_Player_Tick_SyncClientTickt GetServerTimeRcttagServerDateTimeR%tyeartYeartmonthtMonthtdaytDaythourtHourtminutetMinutetsecondtSecondt microsecondt    MicSecondRiRj(R2Rt
serverTimetserverDateTime((sR.\ProjectSServer\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyR‹Ds   
       (SRRºRR›RR RRRR=tPlayerDataCollectR­RcRiR
R`t ReadChConfigRR%R&RtGameWorldActionTeHuiR"tGameWorldMergePKtGameWorldShopItemt MergeChildMsgRtPlayerMergeEventt
HighLaddert EventReportt MergePlayerRRRt PyDataManagerRðR R!RR$R(R)R6R*R,R/R0RRRR9RoRpRqRvRÜR}RtRsR²RÅRR    RÊRÉRÏR×RÛR RRúRRR"RFRARORvRwRxRŠRŒR‹(((sR.\ProjectSServer\ServerPython\CoreServerGroup\GameServer\Script\Player\ChPlayer.pyt<module>s¢                                                       
    Q    ?                          '         4    &            
                             c            .        *    3             7    0