hxp
2025-06-12 a59a408cfa838cddcec4fc9fa47d3f6c66b75f9f
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
<Ü3hc@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((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyt<lambda>4scCstj||ƒS(N(t PlayerHorsetCrossServer_ChangeHorse(RR((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR5scCstj||ƒS(N(RtCrossServer_RideHorse(RR((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR6scCs
|jƒS(N(t
GetBaseSTR(R((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR;scCs |j|ƒS(N(t
SetBaseSTR(Rtvalue((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR;scCs
|jƒS(N(t
GetBasePNE(R((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR<scCs |j|ƒS(N(t
SetBasePNE(RR
((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR<scCs
|jƒS(N(t
GetBasePHY(R((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR=scCs |j|ƒS(N(t
SetBasePHY(RR
((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR=scCs
|jƒS(N(t
GetBaseCON(R((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR>scCs |j|ƒS(N(t
SetBaseCON(RR
((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR>scCs
|jƒS(N(tGetLV(R((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR?scCs |j|ƒS(N(tSetLV(RR
((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR?scCs
|jƒS(N(tGetOfficialRank(R((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR@scCs |j|ƒS(N(tSetOfficialRank(RR
((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR@scCs
|jƒS(N(tGetVIPLv(R((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyRAscCs |j|ƒS(N(tSetVIPLv(RR
((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyRAscCs×|tjgkrdS|jƒtjkr/dStjƒr?dStj|ƒsRdSd}t    j
|t ƒ}t    j ||ƒ}t    j
|t |ƒƒ}x |D]}t    j ||ƒ}q›Wtj|ƒ}|j|ƒdS(Nt(tChConfigtDef_SkillID_LimitSuperBufftGetGameObjTypet IPY_GameWorldt    gotPlayert    GameWorldt IsCrossServert PlayerControlt GetCrossMapIDtCommFunct    WriteBYTEtMergeData_Bufft
WriteDWORDtlentbase64t    b64encodetSendMergePlayerData(t    curPlayertbuffIDt plusValueListtdataR
((snD:\SG_ServerCode\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((snD:\SG_ServerCode\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(RtDebugLogRD(    R)RItdataListtdataInfoR,RLtwDTypeR
tsLen((snD:\SG_ServerCode\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(RPR&R0RSR!R2RTtReadWORDRVR3RWt
ReadStringR7RRYRD(
R)RIRGRHR[tcallFuncRZR\R
R]((snD:\SG_ServerCode\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_CrossRegisterMapRR tDef_CrossMapIDListtDef_FBMapID_CrossRealmPKt IpyGameDataPYt
GetFuncCfgtTrue(R)t
crossMapID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyRQÊs cCs’|jƒ}tjj|dƒtjj|dƒtjj|dƒtjj|dƒtjj|dƒtj    j|dƒt
j d|ƒdS(NsÇå³ýͬ²½¿ç·þÊý¾ÝµÄÁÙʱ»º´æ( RDt
PyGameDatatg_crossRegPlayerAttrDicttpoptNonetg_crossSyncTickDicttg_crossPlayerDictChangeInfot!g_crossPlayerDienstgradChangeInfotg_crossPlayerItemsChangeInfotg_crossPlayerSkillsChangeInfoRRY(R)tplayerID((snD:\SG_ServerCode\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(    RQRutCrossFightPowerAttrListR7RDRkRltOnPlayerCrossRegItemstOnPlayerCrossRegSkills(R)tattrListtattrInfoRt((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pytOnPlayerCrossRegês 
 
 
cCst|ƒtj|jƒ<dS(N(tGetPlayerCrossRegItemsRkRrRD(R)((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyRwü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 rptDogzEquiptGetItemManagertGetPackR6tGetCounttGetAttIsEmptytGetItemPlaceTypetGetItemPlaceIndextmd5tGetB64ItemDatat    hexdigest(R)t    itemsDicttpackListt    packIndextcurPackRLtcurItemtitemMark((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR|s 'cCst|ƒtj|jƒ<dS(N(tGetPlayerCrossRegSkillsRkRsRD(R)((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyRxscCsXg}|jƒ}x?td|jƒƒD](}|j|ƒ}|j|jƒƒq(W|S(Ni(tGetSkillManagerR6t GetSkillCounttGetSkillByIndexR7t
GetSkillID(R)tskillst skillManagerRLRJ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR‘s  cCsLt|ƒsdS|jƒ}tjj|iƒ}|||<|tj|<dS(N(RQRDRkRqtget(R)t dienstgradIDtstateRttdienstgradStateDict((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pytOnDienstgradChange,s  
 cCsRt|ƒsdS|jƒ}|tjkr/dStjƒjƒ}|tj|<dS(N(RQRDRkRoRt GetGameWorldtGetTick(R)RtRF((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pytOnPlayerFightPowerChange6s   cCstjdƒt|dƒdS(NtSendMergePlayerDataNowi(RRYtProcessCrossPlayer(R)((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR Bs  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(NRbiiès¿ªÊ¼Í¬²½±¾·þ±ä¸üµÄÊôÐÔ...Rs´ò°ü¿ç·þ±ä¸üÍæ¼ÒÊý¾Ý´íÎó - > %s(RQRDRkRoRgRhRmRnRRYR!R"R<t__WriteSyncPlayerAttrDatat__WriteSyncPlayerDictDatat__WriteSyncPlayerDienstgradDatat__WriteSyncPlayerItemst__WriteSyncPlayerSkillsR&R'R(R?R@RARBtErrLogRt GetDebugLevelt    Exception(R)RFRttsetTickR,RN((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR¡Hs6     cCs‡tjd|jƒƒt|||ƒ}t|||ƒ}t|||ƒ}t|||ƒ}t|||ƒ}tj|ƒj    ƒdS(NsÊÕµ½×Ó·þͬ²½µÄÍæ¼Ò±ä¸üÊý¾Ý:(
RRYRDt__ReadSyncPlayerAttrDatat__ReadSyncPlayerDictDatat__ReadSyncPlayerDienstgradDatat__ReadSyncPlayerItemst__ReadSyncPlayerSkillsRtReCalcAllState(R)RGRH((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR=osc 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( RDRkRlR!R"R%RvRRR7RRYR$( R)R,RtRytchangeAttrListRLRztbefValuetcurValuetcountRE((snD:\SG_ServerCode\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&R0R!R2RRYR6R3R%Rv(R)RGRHR´t_RER
((snD:\SG_ServerCode\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( RDRkRpR!RURmR%RRYtitemsR"RXR$(
R)R,Rtt
changeDictR´tkeyInfoR
tkeytdTypetkeyLen((snD:\SG_ServerCode\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&R0R!R_RRYtxrangeR2R`R3RtNomalDictSetProperty(    R)RGRHR´RµR»R¹R
Rº((snD:\SG_ServerCode\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( RDRkRqR!R"RmR%RRYR¶R$(R)R,RttchangeDienstgradDictR´R™Rš((snD:\SG_ServerCode\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&R0R!R2RRYR¼R3tPlayerDienstgradtPlayerAddDienstgradtFalsetPlayerDelDienstgrad(R)RGRHR´RµR™Rš((snD:\SG_ServerCode\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(RDRkRrR!R"R|R7R%RR‚R„R…R&R0R‰RURX( R)R,Rtt    lastItemstnowItemstdelItemstaddItemstindexsttmpDataRKRŽRtitemData((snD:\SG_ServerCode\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&R0R!R2RRYR¼RR‚R„R…tClearR_R`tGetItemFactorytAddItemR't GetItemTypeIDR†R‡t
AssignItem( R)RGRHR´RµtpackTypet    itemIndexRŽRt itemDataLenRÊt curSingleItem((snD:\SG_ServerCode\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(    RDRkRsR!R"R‘R7R%R$(R)R,Rtt
lastSkillst    nowSkillst    delSkillstskillIDt    addSkills((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR¦Hs.          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&R0R!R2RRYR¼R3tDeleteSkillBySkillIDRÂtLearnSkillByID(R)RGRHR—R´RµR×((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyR¯ms (8RR!RRR:R8R&RRkRÀRgRRRAR~RˆR6R<tMergeData_ItemtMergeData_SkillR#tCrossData_PetStatetCrossData_HorseChangetCrossData_RideHorseRSRTRVRWRPRvR-ROR^R>RQRuR{RwR|RxR‘RœRŸR R¡R=R¢R«R£R¬R¤R­R¥R®R¦R¯(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayerData.pyt<module>sl                $        )    !                                     
             '        !                        1    $    %