hwj35
2025-06-23 aa0f971ae9a59f0fd98d57b6c1d1663a270be92c
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
’‹b`c@sžddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZeddƒ\ZZZZZZZedƒ\ZZZZieeegd„ge6egd„ge6egd„ge6Zd„d    „gd
„d „gd „d „gd„d„gd„d„gd„d„gd„d„ggZd„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,d%„Z-d&„Z.d'„Z/d(„Z0d)„Z1d*„Z2d+„Z3d,„Z4d-„Z5d.„Z6d/„Z7dS(0iÿÿÿÿNiiicCstj||ƒS(N(t    PlayerPettCrossServer_DoChangePetState(tcurObjt    valueList((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyt<lambda>4scCstj||ƒS(N(t PlayerHorsetCrossServer_ChangeHorse(RR((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR5scCstj||ƒS(N(RtCrossServer_RideHorse(RR((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR6scCs
|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.pyRAscCs |j|ƒS(N(tSetVIPLv(RR
((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyRAscCsÝ|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_BuffEs$       cCs°tjƒsdSy\tjƒj|ƒ}tj|jƒƒ}|sGdSd}tj||ƒ\}}|t    kr-tj
||ƒ\}}tj ƒj |ƒ}|s¨dSg}tj||ƒ\}    }x9t |    ƒD]+}
tj
||ƒ\} }|j| ƒqÓWtj|ƒ} tj|| |||ƒn>|tkrRt||jƒ|ƒnt|||jƒ|ƒWn=tk
r«ttjƒƒ} tjd| |jƒƒnXdS(Nis½ÓÊÕ¿ç·þ±ä¸üÍæ¼ÒÊý¾Ý´íÎó 
%s(RRtGetPlayerManagertGetPlayerByIndexR't    b64decodetGetMergePlayerDataR"tReadBYTER$t    ReadDWORDt GetGameDatatGetSkillBySkillIDtrangetappendt SkillCommont GetBuffTypet    BuffSkilltAddBuffNoRefreshStatetMergeData_Playert__ReadMainServerSyncPlayerDatat__ReadCrossDatat BaseExceptiontstrt    tracebackt
format_exctRaiseExceptiont GetPlayerID(tindexttickR*tpdatatpostdataTypeR+tcurSkillR,tcnttiR
tbuffTypeterrorMsg((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pytOnMergePlayerDatads8    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*RJtdataListtdataInfoR-RMtwDTypeR
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(RQR'R1RTR"R3RUtReadWORDRWR4RXt
ReadStringR8RRZRE(
R*RJRHRIR\tcallFuncR[R]R
R^((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.pyRRËs cCs’|jƒ}tjj|dƒtjj|dƒtjj|dƒtjj|dƒtjj|dƒtj    j|dƒt
j d|ƒdS(NsÇå³ýͬ²½¿ç·þÊý¾ÝµÄÁÙʱ»º´æ( REt
PyGameDatatg_crossRegPlayerAttrDicttpoptNonetg_crossSyncTickDicttg_crossPlayerDictChangeInfot!g_crossPlayerDienstgradChangeInfotg_crossPlayerItemsChangeInfotg_crossPlayerSkillsChangeInfoRRZ(R*tplayerID((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pytClearCrossSyncDataCacheßs cCsyt|ƒsdSt|ƒg}x%tD]}|j|d|ƒƒq'W|jƒ}|tj|<t|ƒt|ƒdS(Ni(    RRRvtCrossFightPowerAttrListR8RERlRmtOnPlayerCrossRegItemstOnPlayerCrossRegSkills(R*tattrListtattrInfoRu((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pytOnPlayerCrossRegës 
 
 
cCst|ƒtj|jƒ<dS(N(tGetPlayerCrossRegItemsRlRsRE(R*((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyRxýscCsÄi}tjtjtjg}xŸ|D]—}|jƒj|ƒ}xyt|jƒƒD]e}|j    |ƒ}| sS|j
ƒrqSn|j ƒ|j ƒf}t j |jƒƒjƒ||<qSWq%W|S(N(RtrptEquipt ShareDefinetrptPett rptDogzEquiptGetItemManagertGetPackR7tGetCounttGetAttIsEmptytGetItemPlaceTypetGetItemPlaceIndextmd5tGetB64ItemDatat    hexdigest(R*t    itemsDicttpackListt    packIndextcurPackRMtcurItemtitemMark((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR}s 'cCst|ƒtj|jƒ<dS(N(tGetPlayerCrossRegSkillsRlRtRE(R*((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyRyscCsXg}|jƒ}x?td|jƒƒD](}|j|ƒ}|j|jƒƒq(W|S(Ni(tGetSkillManagerR7t GetSkillCounttGetSkillByIndexR8t
GetSkillID(R*tskillst skillManagerRMRK((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR’s  cCsLt|ƒsdS|jƒ}tjj|iƒ}|||<|tj|<dS(N(RRRERlRrtget(R*t dienstgradIDtstateRutdienstgradStateDict((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pytOnDienstgradChange-s  
 cCsRt|ƒsdS|jƒ}|tjkr/dStjƒjƒ}|tj|<dS(N(RRRERlRpRt GetGameWorldtGetTick(R*RuRG((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pytOnPlayerFightPowerChange7s   cCstjdƒt|dƒdS(NtSendMergePlayerDataNowi(RRZtProcessCrossPlayer(R*((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR¡Cs  cCstt|ƒsdS|jƒ}|ri|tjkr5dStj|}||tjddƒdkridSntjj|dƒtj    d|ƒyƒd}t
j |t ƒ}t ||ƒ}t||ƒ}t||ƒ}t||ƒ}t||ƒ}tj|ƒ}|j|ƒWn^tk
rottjƒƒ}tjd||jƒƒtjƒjƒrpt|ƒ‚qpnXdS(NRciiès¿ªÊ¼Í¬²½±¾·þ±ä¸üµÄÊôÐÔ...Rs´ò°ü¿ç·þ±ä¸üÍæ¼ÒÊý¾Ý´íÎó - > %s(RRRERlRpRhRiRnRoRRZR"R#R=t__WriteSyncPlayerAttrDatat__WriteSyncPlayerDictDatat__WriteSyncPlayerDienstgradDatat__WriteSyncPlayerItemst__WriteSyncPlayerSkillsR'R(R)R@RARBRCtErrLogRžt GetDebugLevelt    Exception(R*RGRutsetTickR-RO((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR¢Is6     cCs‡tjd|jƒƒt|||ƒ}t|||ƒ}t|||ƒ}t|||ƒ}t|||ƒ}tj|ƒj    ƒdS(NsÊÕµ½×Ó·þͬ²½µÄÍæ¼Ò±ä¸üÊý¾Ý:(
RRZREt__ReadSyncPlayerAttrDatat__ReadSyncPlayerDictDatat__ReadSyncPlayerDienstgradDatat__ReadSyncPlayerItemst__ReadSyncPlayerSkillsR tReCalcAllState(R*RHRI((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR>psc 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( RERlRmR"R#R&RwRSR8RRZR%( R*R-RuRztchangeAttrListRMR{tbefValuetcurValuetcountRF((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR£s0  
  cCsÅtj|ƒ}tj||ƒ\}}tjd|ƒx†t|ƒD]x}tj||ƒ\}}tj||ƒ\}}|tt    ƒkr‘Pnt    |d||ƒtjd||fƒqEW|S(Ns±ä¸üµÄÍæ¼ÒÊôÐÔ¸öÊý: %sis    index=%s,value=%s(
R'R1R"R3RRZR7R4R&Rw(R*RHRIRµt_RFR
((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR¬ sc
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( RERlRqR"RVRnR&RRZtitemsR#RYR%(
R*R-Rut
changeDictRµtkeyInfoR
tkeytdTypetkeyLen((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR¤¯s     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"R`RRZtxrangeR3RaR4R tNomalDictSetProperty(    R*RHRIRµ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( RERlRrR"R#RnR&RRZR·R%(R*R-RutchangeDienstgradDictRµ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"R3RRZR½R4tPlayerDienstgradtPlayerAddDienstgradtFalsetPlayerDelDienstgrad(R*RHRIRµR¶RšR›((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR®äsc Cs|jƒ}|tjkrCtj|dƒ}tj|dƒ}|Stj|}t|ƒ}g}g}x*|D]"}||kro|j|ƒqoqoWtj|t|ƒƒ}x:|D]2}tj||dƒ}tj||dƒ}q´WxN|D]F}||kr|j|ƒqñ||||krñ|j|ƒqñqñWd}d}    x¥|D]}|jƒj    |dƒ}
|
j
|dƒ} | sN| j ƒr™qNnt j | jƒƒ} tj|t| ƒƒ}tj|t| ƒ| ƒ}|    d7}    qNWtj||    ƒ}||7}|tj|<|S(NiiR(RERlRsR"R#R}R8R&R‚RƒR…R†R'R1RŠRVRY( R*R-Rut    lastItemstnowItemstdelItemstaddItemstindexsttmpDataRLRRtitemData((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR¦ôsH         
 c Cs·tj|ƒ}tj||ƒ\}}tjd|ƒx‹t|ƒD]}}tj||ƒ\}}tj||ƒ\}}|jƒj|ƒ}|j    |ƒ}| sE|j
ƒr¸qEn|j ƒqEWtj||ƒ\}}tjd|ƒxÁt|ƒD]³}tj ||ƒ\}    }tj |||    ƒ\}
}tjƒjtj|
ƒƒ} | sü| jƒdkrrqün|jƒj| jƒƒ}|j    | jƒƒ}|j| ƒqüW|S(Nsɾ³ýµÄÍæ¼ÒÎïÆ·¸öÊý: %ssÔö¸ÄµÄÍæ¼ÒÎïÆ·¸öÊý: %si(R'R1R"R3RRZR½R‚RƒR…R†tClearR`RatGetItemFactorytAddItemR(t GetItemTypeIDR‡Rˆt
AssignItem( R*RHRIRµR¶tpackTypet    itemIndexRRt itemDataLenRËt curSingleItem((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR¯%s.cCsI|jƒ}|tjkrCtj|dƒ}tj|dƒ}|Stj|}t|ƒ}g}x*|D]"}||kri|j|ƒqiqiWtj|t|ƒƒ}x |D]}tj||ƒ}q®Wg}x*|D]"}||kr×|j|ƒq×q×Wtj|t|ƒƒ}x |D]}tj||ƒ}qW|tj|<|S(Ni(    RERlRtR"R#R’R8R&R%(R*R-Rut
lastSkillst    nowSkillst    delSkillstskillIDt    addSkills((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR§Is.          cCsï|jƒ}tj|ƒ}tj||ƒ\}}tjd|ƒx<t|ƒD].}tj||ƒ\}}|j    |t
ƒqQWtj||ƒ\}}tjd|ƒx<t|ƒD].}tj||ƒ\}}|j |t
ƒq¹W|S(Nsɾ³ýµÄÍæ¼Ò¼¼ÄܸöÊý: %ssÔö¼ÓµÄÍæ¼Ò¼¼ÄܸöÊý: %s( R“R'R1R"R3RRZR½R4tDeleteSkillBySkillIDRÃtLearnSkillByID(R*RHRIR˜RµR¶RØ((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR°ns (8RR"R RR;R9R'RRlRÁRhRRRBRR‰R7R=tMergeData_ItemtMergeData_SkillR$tCrossData_PetStatetCrossData_HorseChangetCrossData_RideHorseRTRURWRXRQRwR.RPR_R?RRRvR|RxR}RyR’RR R¡R¢R>R£R¬R¤R­R¥R®R¦R¯R§R°(((soE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyt<module>sl                $        )    !                                     
             '        !                        1    $    %