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
/¯½fc@s÷ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    d„Z
d„Z d„Z d„Z d„Zd„Zd„Zd    „Zd
„Zed „Zd „Zdd „Zd„ZdS(iÿÿÿÿNcCst|ƒrt|ƒndS(N(t Sync_SoulInfotSync_SoulHoleInfo(t    curPlayer((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerGatherTheSoul.pyt OnPlayerLogins  cCs›tjƒj|ƒ}|j}|j}|dkrCt||ƒnT|dkr_t||ƒn8|dkr{t||ƒn|dkr—t||ƒndS(Niiii(    t    GameWorldtGetPlayerManagertGetPlayerByIndextOpTypetSoulIDtOnGatherTheSoulUptOnGatherTheSoulPutontOnGatherTheSoulTakeofftOnGatherTheSoulReset(tindext
clientDatattickRRtsoulID((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerGatherTheSoul.pytOnGatherTheSoulOP+s            c
Cs¯|sNg}tjƒ}xHt|jƒƒD]}|j|j|ƒƒq+Wntjd|ƒg}t}g}|jƒ}x|D]}|s”q‚n|j    ƒ}    |j
t j |    ƒ}
|
d} tj d|    | ƒ} | s|
r‚tjd|    |
f|ƒq‚q‚n|jƒ} |jƒ}| jƒ}| jƒ}tj|| ƒ}||kr{tjd|    | | ||f|ƒq‚n|rÀtj|tj|tƒ rÀtjd|    | |f|ƒq‚ntjd|    | | f|ƒtj|| ||ƒ|r'tj|tj|di|    d    6| d
6ƒntj|t j |    | ƒ| dkrPn|j|    ƒ|    |j
t j|ƒkr‚t}q‚q‚W|s tjd |ƒdSi}d }tjƒ}x‡t|jƒƒD]s}|j|ƒ}|j    ƒ}    |j
t j |    ƒ}
|
sqËn||
7}|jƒ}|j |d ƒd||<qËWx6|j!ƒD](\}}t"j#|tj$||gƒqOWt"j#|tj%|ƒt&||ƒt'||ƒdS( Nt GatherTheSoulitGatherTheSoulLVs¾Û»êÒÑÂú¼¶! soulID=%s,soulLV=%ssS¾Û»êË鯬²»×㣬ÎÞ·¨Éý¼¶! soulID=%s,nextLV=%s,pieceItemID=%s,playerPieceCount=%s < %ss<¾Û»ê¾«»ª²»×㣬ÎÞ·¨Éý¼¶! soulID=%s,nextLV=%s,needSoulValue=%ss,¾Û»êÉý¼¶: soulID=%s,nextLV=%s,pieceItemID=%stGatherTheSoulUpRtnextLVsûÓпÉÉý¼¶µÄ¾Û»ê!i((t IpyGameDataPYtIPY_DatatrangetGetGatherTheSoulCounttappendtGetGatherTheSoulByIndextGetIpyGameDatatFalset GetPlayerIDt    GetSoulIDtNomalDictGetPropertytChConfigtDef_PDict_GatherTheSoulLVtGetIpyGameDataNotLogRtDebugLogtGetPieceItemIDt
GetHoleNumt GetNeedPiecetGetNeedSoulValuet ItemControlertGetItemCountByIDt PlayerControlt    HaveMoneyt ShareDefinetTYPE_Price_GatherSoultSetItemCountByIDtPayMoneytNomalDictSetPropertytDef_PDict_GatherTheSoulHoleIDtTruet GetSoulColortgettitemst PlayerSuccesstUptateSuccessProgresstSuccType_GatherTheSoulColortSuccType_GatherTheSoulLVRtRefreshGatherTheSoulAttr(RtupSoulIDtsoulIpyDataListt
ipyDataMgrR tholeSoulChanget updSoulIDListtplayerIDtipyDataRtsoulLVRt nextLVIpyDatat pieceItemIDtholeNumtneedPieceCountt needSoulValuetplayerPieceCounttcolorCountDictt totalSoulLVt    soulColort    soulCount((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerGatherTheSoul.pyR    9s~    
         "-     
    cCsà|jƒ}|jtj|ƒ}|s@tjd||ƒdStjd|ƒ}|s\dS|jƒ}|jtj    |ƒ}tjd|||f|ƒ||kr«dSt
j |tj    ||ƒt |ƒt |tƒdS(Nsδ¼¤»îÎÞ·¨´©´÷! soulID=%sRs0¾Û»ê´©´÷Ìæ»»! soulID=%s,holeNum=%s,holeSoulID=%s(RR R!R"RR$RRR&R2R+R1RR;R3(RRRARCRBRFt
holeSoulID((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerGatherTheSoul.pyR
‰s"   
 cCsÆ|jƒ}tjd|ƒ}|s(dS|jƒ}|jtj|ƒ}||krwtjd|||f|ƒdStjd||f|ƒt    j
|tj|dƒt |ƒt |t ƒdS(NRs@¸Ã¿×ûÓд©´÷¸Ã¾Û»ê£¬ÎÞ·¨Ð¶ÏÂ! soulID=%s,holeNum=%s,holeSoulID=%ss¾Û»êжÏÂ! soulID=%s,holeNum=%si(RRRR&R R!R2RR$R+R1RR;R3(RRRARBRFRN((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerGatherTheSoul.pyR s   
 c Csrtjd|ƒ}|sdS|jƒ}|jƒ}|s>dS|jtj|ƒ}|dkr{tjd||fƒdSd \}}tj    ddƒ}|rÙt
|ƒdkrÙ|\}}t j |||ƒsÙdSn|}    d}
d} xt dd|ƒddd…D]]} tjd|| ƒ} | s3q n| }    | jƒ}|sOPn|
| jƒ7}
| |7} q W|    |kr}dStjd    |||    |
| fƒt j|tj||    ƒ|ræ|ræt j|||d
i|d 6ƒntj|||
td d
ti|d 6gƒt j|tj| d
i|d 6ƒ||jtj|ƒk}t||gƒt||ƒdS(NRis)¸Ã¾Û»êµÈ¼¶²»ÐèÒªÖØÖÃ! soulID=%s,soulLV=%sitGatherTheSoulHoleiiÿÿÿÿRsHÖØÖþۻê: soulID=%s,soulLV=%s,resetLV=%s,pieceTotal=%s,soulValueTotal=%stGatherTheSoulResetRtevent(ii(RRR&R%R R!R"RR$tGetFuncEvalCfgtlenR+R,RR(R'R1R0R)tGivePlayerItemRt    GiveMoneyR-R.R2RR;(RRRBRFRERCt costMoneyTypetcostMoneyValuet costMoneyInfotresetLVt
pieceTotaltsoulValueTotaltsLVt resetIpyDatat    soulValueR?((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerGatherTheSoul.pyR ®sT     '    #,# cCszd}tjƒ}xat|jƒƒD]M}|j|ƒ}|jƒ}|jtj|ƒ}|shq%n||7}q%W|S(Ni(    RRRRRRR R!R"(RRKR>R RBRRC((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerGatherTheSoul.pytGetGatherTheSoulTotalLVás  cCs·d}xªtddtjddƒƒD]‰}|jtj|ƒ}|sNq&ntjd|ƒ}|slq&n|r|jƒ|kr¥q&q¥n|jƒ|kr¥q&n|d7}q&W|S(NiiROR(RRt
GetFuncCfgR R!R2RR4(RRLt
isDownwardt
colorCountRFRRB((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerGatherTheSoul.pytGetHoleSoulColorCountís&    cCsÆ|jƒ}i}xÛtddtjddƒƒD]º}|jtj|ƒ}|sZq2n|jtj|ƒ}tjd|ƒ}|sŽq2n|j    ƒ}|s¦q2n|j
ƒ}x7t |dƒD]&\}    }
||
krç|    ||<qÂPqÂWq2Wt } t j |ƒ} |jƒ} tjƒ}x†t|jƒƒD]r}|j|ƒ}|jƒ}|j    ƒ}|siq0nd}||kr¸| j|ƒ}|rÇ|jƒ||kr0|}qµq0qÇn| j|ƒ}|rt} |jƒ}tjd||f|ƒ| j|ƒ| j|t ƒn||kr0||}    tjƒj||    ƒ}|sSq0nt} |jƒ}tjd||f|ƒ| j|ƒ| j|dt ƒq0q0W| rÂt j!ƒj"|ƒndS(NiRORs#ɾ³ý¾Û»ê¼¼ÄÜ: holeNum=%s,skillID=%ss#¸üоۻ꼼ÄÜ: holeNum=%s,skillID=%si(#RRRR`R R!R2R"RtGetSoulSkillTypeIDtGetSoulSkillLVListt    enumerateRR+tGetSkillManagerRRRR&tNonetFindSkillBySkillTypeIDt
GetSkillLVR3t
GetSkillIDRR$tDeleteSkillBySkillIDtRefreshSkillFightPowerByDelt GetGameDatatFindSkillByTypetLearnSkillByIDtRefreshSkillFightPowerExtPassiveBuffEffMngtGetPassiveEffManagertRegistPassiveEff(RRAtsoulSkillLVDictRFRRCRBt skillTypeIDt skillLVListtskillLVt
needSoulLVt skillChanget    playerCtlt skillManagerR>R tdelSkilltcurSkilltskillIDt    skillData((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerGatherTheSoul.pytRefreshGatherTheSoulSkillsn &                        
  cCs4|rt|ƒnt|ƒtj|ƒjƒdS(N(Rt CalcSoulAttrR+tRefreshPlayerAttrState(Rt refreshSkill((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerGatherTheSoul.pyR;Is
 
cCsgtdƒD] }i^q }tjƒ}xÊt|jƒƒD]¶}|j|ƒ}|jƒ}|jtj|ƒ}|sq>ntj    d||ƒ}|s¢q>n|j
ƒ}    |j ƒ}
x7t |    ƒD])\} } |
| } t j| | |ƒqÇWq>Wt j|tj|ƒdS(NiR(RRRRRRR R!R"RtGetLVAttrTypeListtGetLVAttrValueListRfR+tCalcAttrDict_TypetSetCalcAttrListValuetDef_CalcAttrFunc_GatherTheSoul(Rt_tallAttrListSoulR>R RBRRCt    lvIpyDatatLVAttrTypeListtLVAttrValueListtitattrIDt    attrValue((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerGatherTheSoul.pyR‚Ps$    
c Cs|s`t}g}tjƒ}xEt|jƒƒD](}|j|ƒ}|j|jƒƒq1Wnt}g}xc|D][}|j    t
j |ƒ}| r£| r£qsnt j ƒ}    ||    _||    _|j|    ƒqsW|sÜdSt jƒ}
||
_t|
jƒ|
_tj||
ƒtS(N(RRRRRRRRR3R R!R"tChPyNetSendPackttagMCGatherTheSoulRtLVttagMCGatherTheSoulInfotSoulListRStCountt NetPackCommont SendFakePack( Rt
soulIDListtisForceR>R RBtsoulListRRCtsoulInfot
clientPack((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerGatherTheSoul.pyRhs0                cCsŽg}xJtddtjddƒƒD])}|jtj|ƒ}|j|ƒq&Wtjƒ}||_    t
|j    ƒ|_ t j ||ƒdS(NiRO(RRR`R R!R2RR’ttagMCGatherTheSoulHoleInfot HoleSoulListRSR—R˜R™(Rt holeSoulListRFRRž((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerGatherTheSoul.pyR†s&     (RR-RR)R’RrR7R+R˜R!RRR    R
R R R_RcRRR;R‚RhRR(((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerGatherTheSoul.pyt<module>s,                       P            3             G