xdh
2019-01-18 3263321139142100027239fe5d06447021655d8c
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
¢ŸA\c@s5ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z eddƒ\ZZZZZZZedƒ\ZZZZieeegd„ge6egd„ge6egd„ge6Zd„d    „gd
„d „gd „d „gd„d„gd„d„gd„d„gd„d„ggZd„Zd„Zd„Zd„Zd„Z d„Z!d„Z"d„Z#d„Z$d„Z%d „Z&d!„Z'd"„Z(d#„Z)d$„Z*d%„Z+d&„Z,dS('iÿÿÿÿNiiicCstj||ƒS(N(t    PlayerPettCrossServer_DoChangePetState(tcurObjt    valueList((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyt<lambda>3scCstj||ƒS(N(t PlayerHorsetCrossServer_ChangeHorse(RR((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR4scCstj||ƒS(N(RtCrossServer_RideHorse(RR((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR5scCs
|jƒS(N(t
GetBaseSTR(R((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR:scCs |j|ƒS(N(t
SetBaseSTR(Rtvalue((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR:scCs
|jƒS(N(t
GetBasePNE(R((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR;scCs |j|ƒS(N(t
SetBasePNE(RR
((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR;scCs
|jƒS(N(t
GetBasePHY(R((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR<scCs |j|ƒS(N(t
SetBasePHY(RR
((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR<scCs
|jƒS(N(t
GetBaseCON(R((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR=scCs |j|ƒS(N(t
SetBaseCON(RR
((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR=scCs
|jƒS(N(tGetLV(R((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR>scCs |j|ƒS(N(tSetLV(RR
((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR>scCs
|jƒS(N(tGetOfficialRank(R((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR?scCs |j|ƒS(N(tSetOfficialRank(RR
((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR?scCs
|jƒS(N(tGetVIPLv(R((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR@scCs |j|ƒS(N(tSetVIPLv(RR
((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR@scCsÝ|tjtjgkrdS|jƒtjkr5dStjƒrEdStj    |ƒsXdSd}t
j |t ƒ}t
j ||ƒ}t
j |t|ƒƒ}x |D]}t
j ||ƒ}q¡Wtj|ƒ}|j|ƒdS(Nt(tChConfigtDef_SkillID_LimitSuperBufftDef_SkillID_TJGSuperBufftGetGameObjTypet IPY_GameWorldt    gotPlayert    GameWorldt IsCrossServert PlayerControlt GetCrossMapIDtCommFunct    WriteBYTEtMergeData_Bufft
WriteDWORDtlentbase64t    b64encodetSendMergePlayerData(t    curPlayertbuffIDt plusValueListtdataR
((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pytSendMergeData_BuffDs$       cCsÇtjƒsdSyRtjƒj|ƒ}tj|jƒƒ}d}tj||ƒ\}}|t    kr#tj
||ƒ\}}tj ƒj |ƒ}|sždSg}tj||ƒ\}    }x9t |    ƒD]+}
tj
||ƒ\} }|j| ƒqÉWtj|ƒ} tj|| |||ƒn>|tkrHt||jƒ|ƒnt|||jƒ|ƒWn^tk
rÂttjƒƒ} tjd| |jƒƒtjƒjƒrÃt| ƒ‚qÃnXdS(Nis½ÓÊÕ¿ç·þ±ä¸üÍæ¼ÒÊý¾Ý´íÎó - > %s(RRtGetPlayerManagertGetPlayerByIndexR't    b64decodetGetMergePlayerDataR"tReadBYTER$t    ReadDWORDt GetGameDatatGetSkillBySkillIDtrangetappendt SkillCommont GetBuffTypet    BuffSkilltAddBuffNoRefreshStatetMergeData_Playert__ReadMainServerSyncPlayerDatat__ReadCrossDatat BaseExceptiontstrt    tracebackt
format_exctErrLogt GetPlayerIDt GetGameWorldt GetDebugLevelt    Exception(tindexttickR*tpdatatpostdataTypeR+tcurSkillR,tcnttiR
tbuffTypeterrorMsg((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pytOnMergePlayerDatacs8    c    Csn|tkrdSt|ƒs dSt|d}t|ƒt|ƒkrJdSd}tj||ƒ}xÉt|ƒD]»\}}||}|tkr¦tj||ƒ}qo|tkrÇtj||ƒ}qo|t    krètj
||ƒ}qo|t krot|ƒ}tj||ƒ}tj |||ƒ}qoqoWt j|ƒ}|j|ƒtjd||f|jƒƒdS(NiRs-·¢ËÍÊý¾Ýµ½¿ç·þ·þÎñÆ÷: dataType=%s,dataList=%s(t CrossDataInfotIsNeedProcessCrossPlayerR&R"R#t    enumeratetWDT_BYTEtWDT_WORDt    WriteWORDt    WDT_DWORDR%t
WDT_Stringt WriteStringR'R(R)RtDebugLogRE(    R*RMtdataListtdataInfoR-RPtwDTypeR
tsLen((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pytSendDataToCrossServerŽs2  
       c
CsH|tkrdSt|\}}|s*dSg}tj|ƒ}xÕ|D]Í}|tkrstj||ƒ\}}n“|tkrštj||ƒ\}}nl|tkrÁtj    ||ƒ\}}nE|t
krFtj||ƒ\}    }tj |||    ƒ\}}nqF|j |ƒqFWt jd||f|jƒƒ|||ƒdS(Ns%ÊÕµ½Ö÷·þÊý¾Ý: dataType=%s,dataList=%s(RTR'R1RWR"R3RXtReadWORDRZR4R[t
ReadStringR8RR]RE(
R*RMRKRLR_tcallFuncR^R`R
Ra((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR?¯s,        cCs„tjƒrdS|jtjƒ}|s:tj|ƒ}n| sP|tjkrTdS|tjgkrjdSt    j
ddƒs€dSt S(NtCrossSyncPlayerDatai( RRtNomalDictGetPropertyRtDef_PlayerKey_CrossRegisterMapR R!tDef_CrossMapIDListtDef_FBMapID_CrossRealmPKt IpyGameDataPYt
GetFuncCfgtTrue(R*t
crossMapID((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyRUÌs cCsl|jƒ}tjj|dƒtjj|dƒtjj|dƒtjj|dƒtj    d|ƒdS(NsÇå³ýͬ²½¿ç·þÊý¾ÝµÄÁÙʱ»º´æ(
REt
PyGameDatatg_crossRegPlayerAttrDicttpoptNonetg_crossSyncTickDicttg_crossPlayerDictChangeInfot!g_crossPlayerDienstgradChangeInfoRR](R*tplayerID((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pytClearCrossSyncDataCacheàs cCset|ƒsdSt|ƒg}x%tD]}|j|d|ƒƒq'W|jƒ}|tj|<dS(Ni(RURwtCrossFightPowerAttrListR8RERoRp(R*tattrListtattrInfoRv((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pytOnPlayerCrossRegês 
   cCsLt|ƒsdS|jƒ}tjj|iƒ}|||<|tj|<dS(N(RURERoRutget(R*t dienstgradIDtstateRvtdienstgradStateDict((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pytOnDienstgradChangeøs  
 cCsRt|ƒsdS|jƒ}|tjkr/dStjƒjƒ}|tj|<dS(N(RURERoRsRRFtGetTick(R*RvRJ((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pytOnPlayerFightPowerChanges   cCsJt|ƒsdS|jƒ}|tjkr/dStj|}||tjddƒdkr`dStjj|ƒtjd|ƒyed}t    j
|t ƒ}t ||ƒ}t ||ƒ}t||ƒ}tj|ƒ}|j|ƒWn^tk
rEttjƒƒ}tjd||jƒƒtjƒjƒrFt|ƒ‚qFnXdS(NRfiiès¿ªÊ¼Í¬²½±¾·þ±ä¸üµÄÊôÐÔ...Rs´ò°ü¿ç·þ±ä¸üÍæ¼ÒÊý¾Ý´íÎó - > %s(RURERoRsRkRlRqRR]R"R#R=t__WriteSyncPlayerAttrDatat__WriteSyncPlayerDictDatat__WriteSyncPlayerDienstgradDataR'R(R)R@RARBRCRDRFRGRH(R*RJRvtsetTickR-RR((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pytProcessCrossPlayers0     cCsctjd|jƒƒt|||ƒ}t|||ƒ}t|||ƒ}tj|ƒjƒdS(NsÊÕµ½×Ó·þͬ²½µÄÍæ¼Ò±ä¸üÊý¾Ý:(RR]REt__ReadSyncPlayerAttrDatat__ReadSyncPlayerDictDatat__ReadSyncPlayerDienstgradDataR tReCalcAllState(R*RKRL((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR>2s c Csg|jƒ}|tjkr+tj|dƒStj|}t|ƒttƒkr`tj|dƒSg}xcttƒD]U\}}||}|d|ƒ}||kr«qsn|j||gƒ|||<qsW|sâtj|dƒSt|ƒ}    t    j
d|    ƒtj||    ƒ}xO|D]G\}
}tj||
ƒ}tj ||ƒ}t    j
d|
|fƒqW|S(Nis±ä¸üµÄÍæ¼ÒÊôÐÔ¸öÊý: %ss    index=%s,value=%s( RERoRpR"R#R&RxRVR8RR]R%( R*R-RvRytchangeAttrListRPRztbefValuetcurValuetcountRI((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyRƒBs0  
  cCs¯tj|ƒ}tj||ƒ\}}tjd|ƒxpt|ƒD]b}tj||ƒ\}}tj||ƒ\}}t|d||ƒtjd||fƒqEW|S(Ns±ä¸üµÄÍæ¼ÒÊôÐÔ¸öÊý: %sis    index=%s,value=%s(    R'R1R"R3RR]R7R4Rx(R*RKRLRt_RIR
((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyRˆcsc
Cs
|jƒ}|tjkr+tj|dƒStjj|ƒ}t|ƒ}tjd|ƒtj||ƒ}x—|j    ƒD]‰\}}|\}}t|ƒ}    tj
||    ƒ}tj ||    |ƒ}tj ||ƒ}tj
||ƒ}tjd|||fƒqyW|S(Nis±ä¸üµÄÍæ¼Ò×Öµä¸öÊý: %ss    key=%s, value=%s, dType=%s( RERoRtR"RYRqR&RR]titemsR#R\R%(
R*R-Rvt
changeDictRtkeyInfoR
tkeytdTypetkeyLen((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR„ps     c    Csætj|ƒ}tj||ƒ\}}tjd|ƒx§t|ƒD]™}tj||ƒ\}}tj|||ƒ\}}tj    ||ƒ\}}tj||ƒ\}}t
j ||||ƒtjd|||fƒqEW|S(Ns±ä¸üµÄÍæ¼Ò×Öµä¸öÊý: %ss    key=%s, value=%s, dType=%s( R'R1R"RcRR]txrangeR3RdR4R tNomalDictSetProperty(    R*RKRLRRR–R”R
R•((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR‰…scCsÈ|jƒ}|tjkr+tj|dƒStjj|ƒ}t|ƒ}tjd|ƒtj||ƒ}xU|j    ƒD]G\}}tj
||ƒ}tj||ƒ}tjd||fƒqyW|S(Nis±ä¸üµÄÍæ¼Ò³ÆºÅ¸öÊý: %ss    dienstgradID=%s, state=%s( RERoRuR"R#RqR&RR]R‘R%(R*R-RvtchangeDienstgradDictRR}R~((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR…”s  cCsÌtj|ƒ}tj||ƒ\}}tjd|ƒxt|ƒD]}tj||ƒ\}}tj||ƒ\}}tjd||fƒ|r±tj    ||dt
ƒqEtj ||t
ƒqEW|S(Ns±ä¸üµÄÍæ¼Ò³ÆºÅ¸öÊý: %ss    dienstgradID=%s, state=%st isRefreshAttr( R'R1R"R3RR]R—R4tPlayerDienstgradtPlayerAddDienstgradtFalsetPlayerDelDienstgrad(R*RKRLRRR}R~((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyRŠ¥s(-RR"R RR;R9R'RRoR›RkRRRBR7R=tMergeData_ItemtMergeData_SkillR$tCrossData_PetStatetCrossData_HorseChangetCrossData_RideHorseRWRXRZR[RTRxR.RSRbR?RURwR{R€R‚R‡R>RƒRˆR„R‰R…RŠ(((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyt<module>sV              $        +    !            
        
         $        !