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
X¬Ægc@s=ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    dZ
ej ƒZ d„Z ddd„ƒYZd„Zd„Zd„Zdd    „Zd
„Zd d d „Zd„Zd„Zd„Zd„Zd„Zdd„Zd„Zd„Zd„ZdS(iÿÿÿÿNidcCs-tjƒ|r)tjtj|ƒƒntS(N(t TempDBPlayertcleartreadDatatbase64t    b64decode(tpackData((sYE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerPackData.pytGetDBPlayerByPackData0s
tDBPlayerPackDataManagercBs>eZd„Zd„Zd„Zd„Zd„Zd„ZRS(cCs|jƒdS(N(tClear(tself((sYE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerPackData.pyt__init__:s
cCsi|_g|_dS(N(t&_DBPlayerPackDataManager__packDataDcitt._DBPlayerPackDataManager__packDataPlayerIDList(R    ((sYE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerPackData.pyR>s        cCs ||jkS(N(R (R    tplayerID((sYE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerPackData.pyt
IsPlayerInCscCs t|jƒS(N(tlenR (R    ((sYE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerPackData.pytGetCountFscCss||jkrdS||jkr5|jj|ƒn|jj|ƒtjdt|jƒ|jfƒ|j|S(Nts»ñÈ¡´ò°üÊý¾Ý»º´æÊý¸üÐÂ: %s,%s(R R tremovetappendt    GameWorldtDebugLogR(R    R ((sYE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerPackData.pytGetPlayerPackdataHs#cCs·|s
dS||j|<||jkr³|jj|ƒt|jƒtkr|jjdƒ}||jkry|j|=ntjd|ƒntjdt|jƒ|jfƒndS(Nis É¾³ý´ò°üÊý¾Ý»º´æ: delPlayerID=%ssÌí¼Ó´ò°üÊý¾Ý»º´æÊý¸üÐÂ: %s,%s(R R RRtDef_CahceCountMaxtpopRR(R    R Rt delPlayerID((sYE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerPackData.pytUpdPlayerPackDataRs  &(t__name__t
__module__R
RRRRR(((sYE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerPackData.pyR7s                     
cCstjƒj|ƒS(N(t PyDataManagertGetDBPlayerPackDataManagerR(R ((sYE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerPackData.pytIsPackDataPlayerascCsE|jƒ}tjƒ}|j|ƒrAt|didd6ƒndS(NtPackDataSyncStateitPackData(t GetPlayerIDRRRtQueryPlayerResult_PlayerMirror(t    curPlayerR t packDataMgr((sYE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerPackData.pyt OnPlayerLoginds
  cCsg|s
dSg}tjƒ}x0|D](}|j|ƒr>q#n|j|ƒq#W|sYdSt|ƒdS(N(RRRRtOnPullPlayerPackData(t playerIDListtpullPlayerIDListR%R ((sYE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerPackData.pytSetNeedPackDatals  
cCs|dkri}ntjd||fƒtjƒrytj|ƒd|d<i|d6|d6}tjtj    |ƒnƒtj
ƒ|d<g}x:|D]2}t j |ƒr»t ||ƒq–|j|ƒq–W|rüi|d6|d6}tjtj|ƒndS(sÇëÇóÀ­È¡Íæ¼ÒÊý¾Ý£¬¸Ãº¯Êý½öÔÚ´ò°üÊý¾Ý±íÖв»´æÔÚÍæ¼ÒÊý¾Ýʱ²ÅÐèÒªµ÷Ó㬿ç·þ±¾·þͨÓÃ
    1. ¿ç·þÀ­×Ó·þÍæ¼ÒÊý¾Ý: Ö±½ÓÍÆË͸ø×Ó·þÀ­¶ÔÓ¦Íæ¼ÒÊý¾Ý£¬À­È¡µ½Êý¾Ýºóͬʱ´æÈë´ò°üÊý¾Ý±íÖÐ
    2. ×Ó·þÀ­ÆäËû×Ó·þÍæ¼ÒÊý¾Ý£ºÖ±½ÓÍÆË͸ø¿ç·þ·þÎñÆ÷À­È¡
    3. ×Ó·þÀ­±¾·þÍæ¼ÒÊý¾Ý
        a.Èç¹ûÊÇ¿ç·þ·þÎñÆ÷ÇëÇóµÄ£¬ÓÅÏÈÈ¡´ò°üÊý¾Ý±íÖÐÊý¾Ý£¬ÓÐÔò·µ»Ø£¬Ã»ÓÐÔò¼ÌÐøÍùÏÂ×ß
        b.Íæ¼ÒÔÚÏßʱ´ÓµØÍ¼À­È¡£¬À­È¡µ½Êý¾Ýºóͬʱ´æÈë´ò°üÊý¾Ý±íÖÐ
        c.Íæ¼ÒÀëÏßʱ´ÓdbÀ­È¡£¬À­È¡µ½Êý¾Ýºóͬʱ´æÈë´ò°üÊý¾Ý±íÖÐ
    @param msgInfo: ¹¦ÄÜÀ­È¡Íæ¼ÒÊý¾Ýʱ×Ô¶¨ÒåµÄ¹¦ÄÜÐÅÏ¢£¬Í¸´«²ÎÊý
    sÀ­È¡Íæ¼Ò´ò°üÊý¾Ý: %s, %sitpullFromR)tmsgInfoN(tNoneRRt IsCrossServertPlayerViewCachetSetNeedViewCachet CrossRealmMsgtSendMsgToClientServert ShareDefinet!CrossServerMsg_PullPlayerPackDatatGetServerGroupIDt PlayerControltGetDBPlayerAccIDByIDtDoPullPlayerPackDataRtSendMsgToCrossServert'ClientServerMsg_PullOtherPlayerPackData(R)R,tdataMsgtotherServerPlayerIDListR ((sYE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerPackData.pyR'~s$
      
 cCsŸtj|ƒsdStjƒj|ƒ}|swtjd||ƒt|ƒ}tjƒjt    j
||t |ƒƒdStjd||ƒt |d|ƒdS(Ns'Íæ¼Ò²»ÔÚÏߵĵ÷Óôò°üdbÊý¾Ý! playerID=%ss'Íæ¼ÒÔÚÏߵķ¢¸øµØÍ¼´ò°üÊý¾Ý! playerID=%stPullPlayerPackData( R6R7RtGetPlayerManagertFindPlayerByIDRtstrt GetGameWorldt SendDBLogictChConfigtgstDBLogic_PlayerPackDataReqRR#(R R,R$tdata((sYE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerPackData.pyR8¤s %iRc    Csè|jdƒ}|tjkr<tjd|||fƒdStj|}|jdiƒ}|jdiƒ}|jdƒ|jdƒkrdS|d}|rË||kr¯dS||krË|||<qËnxA|D]9}||krÒtjd||||jƒfƒdSqÒWtjd    |||fƒtjj|dƒ|jd
ƒ}    |    d krä|jd d ƒ}
|jdd ƒ} d} t||gƒ} tjd|
t    | ƒf| ƒtj
ƒj d d | |
d| t    | ƒ| ƒndS(sqÇëÇóÍæ¼Ò´ò°üÊý¾Ý»ã×Ü£¬ÈçͬʱÇëÇó¶à¸öµÄ»°»áÖðÒ»½øÐлã×ÜÕûºÏ£¬Ö±µ½ËùÓÐÇëÇóµÄÍæ¼ÒÊý¾Ý¾ùÓкóÔÙͳһִÐÐÖ®ºóµÄÂß¼­
    t    requestIDs;²»´æÔÚ¸Ã[Íæ¼Ò´ò°üÊý¾Ý]ÇëÇó! requestID=%s,packMirrorID=%s,%sNR,t packDataDictt requestTimet mirrorIDListsX»¹ÓÐÄ¿±êÍæ¼ÒûÓÐÊý¾Ý£¬ÉԵȺó´¦Àí! requestID=%s,mirrorID=%s,mirrorIDList=%s,packIDList=%ss6»ã×ÜÍæ¼Ò´ò°üÊý¾ÝÍê±Ï: requestID=%s,packMirrorID=%s, %stmsgTypet MirrorBattlet
sceneMapIDiR iÿÿÿÿs*MapServer_QueryPlayer sceneMapID=%s,len=%st PlayerMirror( tgett
PyGameDatatg_requestPlayerPackDataInfoRRtkeysRR-R@RR>tMapServer_QueryPlayer(R,t packMirrorIDRRFtrecInfot
recMsgInfoRGRItmirrorIDRJRLR t
routeIndextsendMsg((sYE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerPackData.pytReuestPlayerPackDataRetµs> 
           1cCsÁ|d}|d}tjƒj||ƒ|jdiƒ}|sFdS|jdƒ}|dkrtt|||ƒnI|dkr½|}i|d6|d6|d6}tjtj||gƒndS(NR RR,R+i(    RRRRNRYR1R2R3t!CrossServerMsg_PushPlayerPackData(t serverGroupIDtmsgDataR RR,R+ttagServerGroupIDR;((sYE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerPackData.pytClientServerMsg_PlayerPackDatañs
 
  c
Cs|d}|d}|jdgƒ}g}tjƒ}x„|D]|}|j|ƒ}|sf||kr®tjd|ƒi|d6|d6|d6}    tjtj    |    |gƒq?|j
|ƒq?W|rüt j |ƒi|d6|d6}    tjtj |    ƒndS(NR,R)tdbPackDataIDLists?¿ç·þGameServer»òdbÓлº´æÍæ¼Ò´ò°üÊý¾Ý£¬Ö±½ÓÍÆ¸ø×Ó·þ! playerID=%sR R(RNRRRRRR1R2R3RZRR/R0R4(
R[R\R,R)R_R<R%R RR;((sYE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerPackData.pyR:s"
 
   cCs=|d}tjƒj|ƒ}|s)dSt|d|ƒdS(NR R (RR>R?R#(R\R R$((sYE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerPackData.pyt"CrossServerMsg_PlayerPackDataState%s 
cCs™|d}|d}tjƒ}xr|D]j}|j|ƒ}|r„tjd|ƒi|d6|d6|d6}tjtj|ƒq't    ||ƒq'WdS(NR,R)s1±¾·þÓлº´æÍæ¼Ò´ò°üÊý¾Ý£¬Ö±½ÓÍÆ¸ø¿ç·þ! playerID=%sR R(
RRRRRR1R9R3R^R8(R\R,R)R%R RR;((sYE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerPackData.pyR4.s
 
  cCs2|d}|d}|d}t|||ƒdS(NR RR,(RY(R\R RR,((sYE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerPackData.pyRZ@s
 
 
 
cCs5t||gƒ}|jddd|t|ƒƒdS(NiRM(R@tMapServer_QueryPlayerResultR(R$RJR\tsysMsg((sYE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerPackData.pyR#HscCs)tjƒrdS|j}|j}|j}| s9| r=dS|tddƒ@sc|tddƒ@r¡tjƒj||ƒtj    ƒj
t j ||t |ƒƒn|tddƒ@råi|d6|d6|d6}tjtj|ƒn|jdƒ}|dkr%|tjƒkr%t|||ƒndS(NiiiR RR,R+(RR.tPlayerIDR R!tpowRRRRARBRCtgstDBLogic_PlayerPackDataUpdRR1R9R3R^RNR5RY(R$t curPackDataR,R tpackDataSyncStateRR;R+((sYE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerPackData.pytOnMGUpdatePlayerPackDataMs"             &(cCs¬tjd||fƒ|jdƒ}|dksP|dkr‚|tjƒkr‚i|d6|d6|d6}tjtj|ƒdStj    ƒj
||ƒt |||ƒdS(Ns'ÊÕµ½db´ò°üÍæ¼ÒÊý¾Ý»Øµ÷: playerID=%s, %sR+iR RR,( RRRNR5R1R9R3R^RRRRY(R RR,R+R;((sYE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerPackData.pytOnDBPlayerPackDatahs*cCs¯i}g}tjƒ}|d}|d}x@|D]8}|j|ƒ}|r^|||<q3n|j|ƒq3Wi|d6|d6tj|<|r¡t||ƒdSt|ƒdS(NRFRIR,RG(RRRRRORPR'RY(R,RGR)R%RFRIRVR((sYE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerPackData.pytOnMGReuestPlayerPackDataxs" 
 
 
 
((RRR/tPyGameDataStructR1R6R3RORCRRt tagDBPlayerRRRRR&R*R-R'R8RYR^R:R`R4RZR#RhRiRj(((sYE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerPackData.pyt<module>!s8               *             &    <