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
v-9hc@s·ddlZddlTddlTddlZddlZddljZddlmZm    Z    ddl
m Z m Z ddl mZmZmZmZddlmZmZmZmZmZmZddlTddl mZddlmZed    ƒZddlZddl Tdd
l!m"Z"dd 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ÿÿÿÿN(t*(terrort DBController(tCommFunctmylog(tRecvPackProtocoltSendPackProtocoltMergeServerRecvProtocoltMergeServerSendProtocol(tgetADOExceptionCounttgetSIDErrorCnttaddADOExceptionCounttseqtfix_outgoingTexttfix_incomingText(t
MMORPGPack(t ServersConfigsConfig.DBConfig(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
UserCtrlDBcBsPeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„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(REtdb((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 WriteStringtlentpackSendBySessionIDR.t atWorldLogicRtstMapt stCenterGatet    GetBuffer(REtmapIDtbuft    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    poolIndexRt
srcSvrTypet
dstSvrType(REt
fromPacketR]((s*.\\ServersRoute\LogicProcess\UserCtrlDB.pyt
sendString{s3cCsd}tj|jƒ|ƒ\}}tjd|ƒ|tjkr{|jdƒ}|jƒ|j    ||ƒ|j
ƒt S|tj kr±|jdƒ}|jƒ|j
ƒt S|tj kråtjdƒtjƒtjƒt Stjd|jƒƒt S(Nisbegin process request type = %dR0s/taskkill /f /t  /FI "IMAGENAME eq EventServer*"s%s not processed!(RtReadBYTEt    getBufferRtdebugR.R0t GetFuncGradetStarttOnQueryServerInfotEndRR1R2tostsystemRtCallStoptCallExittwarningt 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(RERIRutsendPackt
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.tdgMergerChildToCenterR|tDataLentDataRRtatInnerRtstGameRURVR( RERIRuRYRZR[R\RXtrecvPackRvR…((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.tdgDBToMapServerR|tgmMergePlayerDatatSubTypeRRŽtPlayerIDRRRRtstRouteRURVR( RERIRuRYRZR[R\RXR‘RvR…((s*.\\ServersRoute\LogicProcess\UserCtrlDB.pytOnMergeChildToCenterPlayerDataÔs*            (
t__name__t
__module__R-RJR^RgRyRmR’Rš(((s*.\\ServersRoute\LogicProcess\UserCtrlDB.pyR+Ls                    !        cCsddl}|jdƒdS(Niÿÿÿÿtpause(RoRp(Ro((s*.\\ServersRoute\LogicProcess\UserCtrlDB.pyttestös t__main__(0RoRBtbinasciiR,RGtDBCommon.CommonDefineR.tDBCommonRRtCommonRRtProtocolRRRRt MangoDBCommonR    R
R R R RtServerClientShareDefineRtConfigRt
__import__R5t    tracebacktCollections.CollectionDefinetNetRtGMToolLogicProcessRtCmdShellRRR"R#R!t IsMergeServerR*R+RžR›(((s*.\\ServersRoute\LogicProcess\UserCtrlDB.pyt<module>s8 
 
  ".
 
    
    ª