hch
2025-05-16 5f8f590c4b577b1a81bbfff7aa69b8b01e7ff804
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
Pphc@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&d dddddgZ'dZ(dZ)dZ*ej+Z+d„Z,dejfd„ƒYZ-d„Z.e/dkr­e.ƒndS(iÿÿÿÿ(t*N(terrort DBController(tCommFunctmylog(tRecvPackProtocoltSendPackProtocoltMergeServerRecvProtocoltMergeServerSendProtocol(tgetADOExceptionCounttgetSIDErrorCnttaddADOExceptionCounttseqtfix_outgoingTexttfix_incomingText(t
MMORPGPack(t ServersConfigsConfig.DBConfig(t EventProcesst EventReport(t MongoDBServer(tProjSpecialProcesstweekdaytyeartmonthtdaythourtminuteiicCsÃ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|ƒtjtjtjf|jdd<|jtj    tj
ƒ|j tj tj tjƒtjr‰tjƒ|_ntjtjƒ|_d|_tƒ|_tƒ|_dS(NR,ii(tCtrlDBt__init__t CommonDefinetgstMergerChildToCentertgstQueryServerIDInfotgstRefreshRouteServerStatetpriorityQueueListt    setServertDBConfigt
USER_DB_IPt USER_DB_PORTt setDataBaset USER_DB_NAMEt userdb_usert
userdb_pwdtbase64RtBase64StringManipulatort
translatortEncodeStringManipulatortencodingt    loginHeapttimetloginStartTimetlastCleanMergePlayerTime(tselft    ctrlDBMgr((s*.\\ServersRoute\LogicProcess\UserCtrlDB.pyR.Ls          cCstjstt_ndS(N(t
PyGameDatatg_UserCtrlDBFirstInitR(REtdb((s*.\\ServersRoute\LogicProcess\UserCtrlDB.pyt onConnectedOKas     cCstjƒ}|jddƒ}d}d}d}tj||ƒ}tj|t|ƒ|ƒ}|j|||tj    t
j t
j |j ƒƒdS(Nt RouteServeriiÿÿÿÿt(Rt getServerMgrtgetClientSessionIDByNameRt
WriteDWORDt WriteStringtlentpackSendBySessionIDR/t atWorldLogicRtstMapt stCenterGatet    GetBuffer(REtmapIDtbuft    ServerMgrtsendViaSessionIDt    SessionIDt    PoolIndextpackBuf((s*.\\ServersRoute\LogicProcess\UserCtrlDB.pyt sendMapStringis  cCsV|j|jƒ|jƒj|jƒj|jƒj|jƒj|jƒj|ƒdS(N(tpackSendt getSessionIDt getPackHeadt    sessionIDt    poolIndexR t
srcSvrTypet
dstSvrType(REt
fromPacketR]((s*.\\ServersRoute\LogicProcess\UserCtrlDB.pyt
sendStringys3cCsÌd}tj|jƒ|ƒ\}}tjd|ƒ|tjkr{|jdƒ}|jƒ|j    ||ƒ|j
ƒt S|tj kr±|jdƒ}|jƒ|j
ƒt Stj d|jƒƒt S(Nisbegin process request type = %dR1s%s not processed!(RtReadBYTEt    getBufferRtdebugR/R1t GetFuncGradetStarttOnQueryServerInfotEndRR2twarningt outputString(RERItpacktpost 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(RRjRttagDRServerIDToMapIDR/tdgServerIDToMapIDtTypeRtGetServerDictByTheGroupIDRQtCountt
ServerInfot tagSeverInfotServerIDtMapIDtappendt OutputStringRgRV(RERIRqtsendPackt
serverDicttkeyt    severInfo((s*.\\ServersRoute\LogicProcess\UserCtrlDB.pyRm˜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 inRKiiÿÿÿÿs0OnMergerChildToCenter sendString toGameServer %s(RRjRRMRNRiRttagLPStringDatatReadDataRt tagDGMergerChildToGameStringDataR/tdgMergerChildToCenterRxtDataLentDataRRtatInnerRtstGameRURVR( RERIRqRYRZR[R\RXtrecvPackRrR((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 inRKiiÿÿÿÿs8OnMergeChildToCenterPlayerData sendString toMapServer %s(RRjRRMRNRiRttagLPPlayerDataR†RttagDMMergePlayerDataR/tdgDBToMapServerRxtgmMergePlayerDatatSubTypeR‰RŠtPlayerIDRRR‹RtstRouteRURVR( RERIRqRYRZR[R\RXRRrR((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(RERIRqtmsg((s*.\\ServersRoute\LogicProcess\UserCtrlDB.pyR—és" ( t__name__t
__module__R.RJR^RgRuRmRŽR–R—(((s*.\\ServersRoute\LogicProcess\UserCtrlDB.pyR,Ks                                cCsddl}|jdƒdS(Niÿÿÿÿtpause(tostsystem(R¡((s*.\\ServersRoute\LogicProcess\UserCtrlDB.pyttestõs t__main__(0RBtbinasciiR-RGtDBCommon.CommonDefineR/tDBCommonRRtCommonRRtProtocolRRRRt MangoDBCommonR    R
R R R RtServerClientShareDefineRtConfigRt
__import__R5Ršt
EventShellRRtCollections.CollectionDefinetNetRtGMToolLogicProcessRRR#R$R"t IsMergeServerR+R,R£Rž(((s*.\\ServersRoute\LogicProcess\UserCtrlDB.pyt<module>s6
 
  ".
 
    
    ª