hch
2025-05-26 2f901c3e907b62639b2df416785a0b047b41a77c
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
¨t0hc@sÁddlTddlTddlZddlZddljZddlmZmZddl    m
Z
m Z ddl m Z mZmZmZddlmZmZmZmZmZmZddlTddl mZddlmZed    ƒZddlZdd
lm Z m!Z!ddl"Tdd l#m$Z$dd l%m&Z&dd l'm(Z(ddddddgZ)dZ*dZ+dZ,ej-Z-d„Z.dejfd„ƒYZ/d„Z0e1dkr½e0ƒndS(iÿÿÿÿ(t*N(terrort DBController(tCommFunctmylog(tRecvPackProtocoltSendPackProtocoltMergeServerRecvProtocoltMergeServerSendProtocol(tgetADOExceptionCounttgetSIDErrorCnttaddADOExceptionCounttseqtfix_outgoingTexttfix_incomingText(t
MMORPGPack(t ServersConfigsConfig.DBConfig(t EventProcesst EventReport(t MongoDBServer(tProjSpecialProcess(tCommandstweekdaytyeartmonthtdaythourtminuteiicCsÃx¼ttƒD]®\}}||dkr/q nt||ƒtkrHdSt||ƒ}t|ƒtkr|ƒd}|||kr dSq n|||kr¦q n|||krºtStSWt    S(Ns-i(
t    enumeratetATTR_CALL_TIMEthasattrtTruetgetattrttypetinttDef_Cmp_Greatert Def_Cmp_Lowert Def_Cmp_Equ(tcurTimettimeInfotindextcallObjt
curCallObjtwday((s*.\\ServersRoute\LogicProcess\UserCtrlDB.pytCompareActTime.s" t
UserCtrlDBcBsYeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z    d„Z
RS(    cCsÉtjj|dd|ƒtjtjtjtjf|jdd<|jt    j
t    j ƒ|j t    j t    jt    jƒt    jrtjƒ|_ntjt    jƒ|_d|_tƒ|_tƒ|_dS(NR-ii(tCtrlDBt__init__t CommonDefinetgstMergerChildToCentertgstQueryServerIDInfotgstRefreshRouteServerStatetgstNotifyCloseServertpriorityQueueListt    setServertDBConfigt
USER_DB_IPt USER_DB_PORTt setDataBaset USER_DB_NAMEt userdb_usert
userdb_pwdtbase64RtBase64StringManipulatort
translatortEncodeStringManipulatortencodingt    loginHeapttimetloginStartTimetlastCleanMergePlayerTime(tselft    ctrlDBMgr((s*.\\ServersRoute\LogicProcess\UserCtrlDB.pyR/Ms          cCstjstt_ndS(N(t
PyGameDatatg_UserCtrlDBFirstInitR(RGtdb((s*.\\ServersRoute\LogicProcess\UserCtrlDB.pyt onConnectedOKcs     cCstjƒ}|jddƒ}d}d}d}tj||ƒ}tj|t|ƒ|ƒ}|j|||tj    t
j t
j |j ƒƒdS(Nt RouteServeriiÿÿÿÿt(Rt getServerMgrtgetClientSessionIDByNameRt
WriteDWORDt WriteStringtlentpackSendBySessionIDR0t atWorldLogicRtstMapt stCenterGatet    GetBuffer(RGtmapIDtbuft    ServerMgrtsendViaSessionIDt    SessionIDt    PoolIndextpackBuf((s*.\\ServersRoute\LogicProcess\UserCtrlDB.pyt sendMapStringks  cCsV|j|jƒ|jƒj|jƒj|jƒj|jƒj|jƒj|ƒdS(N(tpackSendt getSessionIDt getPackHeadt    sessionIDt    poolIndexR!t
srcSvrTypet
dstSvrType(RGt
fromPacketR_((s*.\\ServersRoute\LogicProcess\UserCtrlDB.pyt
sendString{s3cCsód}tj|jƒ|ƒ\}}tjd|ƒ|tjkr{|jdƒ}|jƒ|j    ||ƒ|j
ƒt S|tj kr±|jdƒ}|jƒ|j
ƒt S|tj krØtjƒtjƒt Stjd|jƒƒt S(Nisbegin process request type = %dR2s%s not processed!(RtReadBYTEt    getBufferRtdebugR0R2t GetFuncGradetStarttOnQueryServerInfotEndRR3R4RtCallStoptCallExittwarningt outputString(RGRKtpacktpost requestTypet
oFuncGrade((s*.\\ServersRoute\LogicProcess\UserCtrlDB.pytrequestLogicProcess€s(
 
 
 
 
 
cCs×tjdƒtjƒ}tj|_tjƒ}t    |ƒ|_
g|_ xZ|D]R}tj ƒ}||_ |||_tjd||jfƒ|j j|ƒqPWtjd|jƒƒ|j||jƒƒdS(NsOnQueryServerInfo insOnQueryServerInfo in %s %ss-OnQueryServerInfo sendString toRouteServer %s(RRlRttagDRServerIDToMapIDR0tdgServerIDToMapIDtTypeRtGetServerDictByTheGroupIDRStCountt
ServerInfot tagSeverInfotServerIDtMapIDtappendt OutputStringRiRX(RGRKRutsendPackt
serverDicttkeyt    severInfo((s*.\\ServersRoute\LogicProcess\UserCtrlDB.pyRo s               c CsÛtjdƒtjƒ}|jddƒ}d}d}|jƒ}tjƒ}d}    |j||    ƒt    j
ƒ}
t j |
_ |j|
_|j|
_|j|||t jtjtj|
jƒƒtjd|jƒtS(NsOnMergerChildToCenter inRMiiÿÿÿÿs0OnMergerChildToCenter sendString toGameServer %s(RRlRRORPRkRttagLPStringDatatReadDataRt tagDGMergerChildToGameStringDataR0tdgMergerChildToCenterR|tDataLentDataRTtatInnerRtstGameRWRXR( RGRKRuR[R\R]R^RZtrecvPackRvR…((s*.\\ServersRoute\LogicProcess\UserCtrlDB.pytOnMergerChildToCenterµs&          c Csütjdƒtjƒ}|jddƒ}d}d}|jƒ}tjƒ}d}    |j||    ƒt    j
ƒ}
t j |
_ t j|
_|j|
_|j|
_|j|
_|j|||t jtjtj|
jƒƒtjd|j|
jgƒtS(Ns!OnMergeChildToCenterPlayerData inRMiiÿÿÿÿs8OnMergeChildToCenterPlayerData sendString toMapServer %s(RRlRRORPRkRttagLPPlayerDataRŠRttagDMMergePlayerDataR0tdgDBToMapServerR|tgmMergePlayerDatatSubTypeRRŽtPlayerIDRTRRtstRouteRWRXR( RGRKRuR[R\R]R^RZR‘RvR…((s*.\\ServersRoute\LogicProcess\UserCtrlDB.pytOnMergeChildToCenterPlayerDataÓs*            cCsRytj||ƒWn7tjdtjdtjƒƒ}tj|ƒtSXt    S(NRsBOnGMToolCmdUserDBRequest Catch a unexpetcted exception, error = %s(
RtOnGMToolCmdUserDBRequestRt    formatMsgt ERROR_NO_172t    tracebackt
format_excRtFalseR(RGRKRutmsg((s*.\\ServersRoute\LogicProcess\UserCtrlDB.pyRݖs" ( t__name__t
__module__R/RLR`RiRyRoR’RšR›(((s*.\\ServersRoute\LogicProcess\UserCtrlDB.pyR-Ls                                 cCsddl}|jdƒdS(Niÿÿÿÿtpause(tostsystem(R¥((s*.\\ServersRoute\LogicProcess\UserCtrlDB.pyttestýs t__main__(2RDtbinasciiR.RItDBCommon.CommonDefineR0tDBCommonRRtCommonRRtProtocolRRRRt MangoDBCommonR    R
R R R RtServerClientShareDefineRtConfigRt
__import__R7Ržt
EventShellRRtCollections.CollectionDefinetNetRtGMToolLogicProcessRtCmdShellRRR$R%R#t IsMergeServerR,R-R§R¢(((s*.\\ServersRoute\LogicProcess\UserCtrlDB.pyt<module>s8
 
  ".
 
    
    ±