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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
`ïhc@saddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddd„ƒYZddd„ƒYZddd„ƒYZddd    „ƒYZd
„Zd „Zd „Zd „Zd„Zd„Zd„Zd„Zd„ZdS(iÿÿÿÿNt
LineupHerocBseZd„Zd„ZRS(cCs|jƒdS(N(tClear(tself((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt__init__(s
cCsLd|_d|_d|_d|_i|_g|_d|_d|_dS(Ni(t    itemIndextheroIDtskinIDtposNumtheroBatAttrDicttheroSkillIDListt
fightPowertskillFightPower(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR,s                                (t__name__t
__module__RR(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR%s    tLineupcBsneZd„Zdeed„Zd„Zd„Zd„Zd„Zd„Z    ed„Z
d    „Z d
„Z RS( cCs^||_||_d|_d|_i|_t|_d|_g|_    i|_
d|_ dS(Ni( tplayerIDtlineupIDtNonetolPlayert    shapeTypet heroItemDicttFalset lineupChanget_Lineup__refreshStatet_Lineup__freeLineupHeroObjstlineupHeroDictR
(RRR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR:s                                        icCs„|st|_n||_||_tjd|j|f|jƒ|j|ƒ| r€|j    j
r€t j |j    j
|jƒndS(s©±ä¸üÕóÈÝʱ¸üÐÂ
        @param heroItemDict: Î佫±³°üË÷ÒýÐÅÏ¢  {itemIndex:posNum, ...}
        @param shapeType: ÕóÐÍ
        @param refreshForce: ÊÇ·ñÇ¿ÖÆË¢ÊôÐÔ
        s¸üÐÂÕóÈÝ: lineupID=%s,%sN( tTrueRRRt    GameWorldtDebugLogRRtRefreshLineupAttrRt    curPlayert
PlayerHerot Sync_Lineup(RRRt refreshForcetisReload((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt    UpdLineupHs           cCsRx9|jjƒD](}||jkr|jj|ƒqqWi|_d|_dS(Ni(RtvaluesRtappendR
(RtfreeObj((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytFreeLineupHeroXs         cCstd}||jkr%|j|}nK|jrZ|jjdƒ}|jƒ||j|<ntƒ}||j|<|S(Ni(RRRtpopRR(RRt
lineupHero((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetLineupHeroas    
     cCsXd}x9|jjƒD](}|j|ƒ}|j|kr|SqWtrTtƒ}n|S(N(RRtkeysR*RRR(RRR)R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetLineupHeroByIDns cCs|jƒdS(N(tDoRefreshLineupAttr(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetLineupInfoxs
cCs d|_dS(Ni(R(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetNeedRefreshState}s    cCs d|_|r|jƒndS(Ni(RR-(RR!((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR‚s     cCs<|js tSt|jj|j|ƒt|_d|_tS(Ni(RRtdoRefreshLineupAttrRRRR(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR-ˆs             cCs!||jkrdS|jƒtS(N(RRR(RR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytCheckHeroItemUpdates
( R R RRR#R'R*R,R.R/RR-R1(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR7s                     
             t OnlinePlayercBs†eZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z    e
e
d„Z e
d    „Z d
„Z d „Zd „ZRS( cCsC||_d|_i|_i|_tj|ƒ|_g|_dS(N(    RRRt calcAttrDictt
lineupDictt
TurnAttackt    MainFightt    mainFightt_lastBatBufferInfo(RR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR™s                    cCs|jjjƒdS(N(R7t    turnFightt    exitFight(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnClear§scCs||_||jj_dS(N(RR7R9(RR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt    SetPlayer«s    cCs |jdkS(N(RR(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt IsRealOnline°scCsQd}||jkr%|j|}nt|j|ƒ}||j|<||_|S(N(RR4RRR(RRtlineup((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt    GetLineup´s     cCs|jj|iƒS(N(R3tget(Rt    calcIndex((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetCalcAttr¾scCs||j|<dS(N(R3(RRAtattrDict((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt SetCalcAttr¿s cCsS|j}tjd|jƒi|_i|_t|ƒt||ƒ|jƒdS(NsReCalcAllAttr...(    RRRRR3R4t doCalcAllAttrtdoReloadLineuptRefreshRoleAttr(RR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt ReCalcAllAttrÄs            
 
cCsUtjd||jƒx!|jjƒD]}|jƒq'W|rQ|j|ƒndS(sÉË¢ÐÂÖ÷¹«ÊôÐÔ£¬Ó°ÏìÖ÷¹«ÊôÐԵŦÄܵãÊôÐԱ仯ʱͳһµ÷Óô˺¯Êý
        @param refreshForce: ÊÇ·ñÇ¿ÖÆÁ¢ÂíË¢ÐÂ
        @param isAllLineup: ÊÇ·ñֻͬ²½Ë¢ËùÓÐÕóÈÝÊôÐÔ£¬Èç¹ûÉèÖÃFalseÔòĬÈϽöË¢Ö÷ÕóÈÝÊôÐÔ
        sÇëÇóË¢ÊôÐÔ: refreshForce=%sN(RRRR4R$R/tDoRefreshRoleAttr(RR!t isAllLineupR>((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRGÒs cCs[t}xN|jjƒD]=\}}| r>|tjkr>qn|jƒrt}qqW|S(s»Ö´ÐÐË¢ÊôÐÔ£¬Ä¬È϶îÍâË¢Ö÷ÕóÈÝ£¬ÆäËûÕóÈÝ¿ÉÒÔÓõ½µÄʱºòÔÙË¢ÐÂ
        @param isAllLineup: ÊÇ·ñË¢ËùÓÐÕóÈÝ£¬Èç¹ûÉèÖÃFalseÔòĬÈϽöË¢Ö÷ÕóÈÝÊôÐÔ
        @return: ÊÇ·ñÓÐË¢ÊôÐÔ£¬0-ÎÞ£»1-ÓÐ
        (RR4titemst ShareDefinet Lineup_MainR-R(RRJt    isRefreshRR>((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRIàs  cCs†g}x\|jjƒD]K\}}x<|D]4}|j|ƒr)||kr]|j|ƒq]q)q)WqWtjd||f|jƒ|S(s„Î佫ÎïÆ·Ñø³É¸üÐÂ
        @param itemIndexList: ±ä»¯Î佫ÎïÆ·ËùÔÚÎ佫±³°ü¸ñ×ÓË÷ÒýÁбí
        @param return: Ó°ÏìµÄÕóÈÝIDÁбí
        s%Î佫ÎïÆ·Ñø³É¸üÐÂË÷Òý: %s, Ó°ÏìÕóÈÝ:%s(R4RKR1R%RRR(Rt itemIndexListteffLineupIDListRR>R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnHeroItemUpateðs  cCs|jS(N(R8(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetLastBatBufferscCs||g|_dS(N(R8(Rtguidt    batBuffer((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetLastBatBuffers(R R RR;R<R=R?RBRDRHRRGRIRQRRRU(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR2–s                    
                     t    OnlineMgrcBs5eZd„Zd„Zd„Zd„Zd„ZRS(cCsi|_i|_dS(N(t_OnlineMgr__onlinePlayerDictt!_OnlineMgr__offlinePlayerTimeDict(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRs        cCs[d}|jƒ}||jkr1|j|}nt|ƒ}||j|<|j|ƒ|S(N(Rt GetPlayerIDRWR2R<(RRRR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetOnlinePlayer s    cCsh|jƒ}|jj|dƒ||jkrJt|ƒ}||j|<n |j|}|j|ƒdS(N(RYRXR(RRWR2R<(RRRR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetPlayerOnlines    cCsV|jƒ}||jkrdS|j|}|jdƒttjƒƒ|j|<dS(N(RYRWR<RtintttimeRX(RRRR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetPlayerOffline$s   cCs™ttjƒƒ}d}xz|jjƒD]i\}}|||krJq(n|jj|dƒ||jkrrq(n|jj|dƒ}|jƒq(WdS(Nii<i,(R\R]RXRKR(RRWR;(RtcurTimet offlineTimesRt offlineTimeR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytProcessOffline.s(R R RRZR[R^Rb(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRVs
                  
cCs1d}tjrtj}ntƒ}|t_|S(N(Rt
PyGameDatat g_onlineMgrRV(tmgr((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetOnlineMgr<s              cCstƒj|ƒS(N(RfRZ(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRZEscCstƒj|ƒdS(N(RfR[(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt OnPlayerLoginGscCstƒj|ƒdS(N(RfR^(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnPlayerLogoffLscCstƒjƒdS(N(RfRb(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnMinuteQs cCs|jƒ}|jƒ}tj|ƒ}i}|rli|jƒtj6|jƒtj6|j    ƒtj
6}nt j d||ƒt |ƒjtj|ƒdS(Ns½ÇÉ«µÈ¼¶ÊôÐÔ: %s(tGetIDtGetLVt PlayerControltGetPlayerLVIpyDatatGetAtktChConfigt
AttrID_AtktGetDeft
AttrID_DeftGetMaxHPt AttrID_MaxHPRRRZRDtDef_CalcAttr_LV(RRtplayerLVt    lvIpyDatat
lvAttrDict((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt CalcRoleBaseUs  cCsktj}i}i}i}|jƒjtjƒ}x•t|jƒƒD]}|j|ƒ}| sF|jƒrtqFn|j    tj
ƒ}    |    s’qFng}
xét|    ƒddd…D]Î} |j tj
| ƒ} t j | ƒ\} }}| |kr÷q²n| |kr||| <n| |kr)i|| <n|| }t|ƒtjksf||jƒksf||krv|
j| ƒq²|||<q²W|
rF|jƒ}x!|
D]} |jtj
| ƒqW|||<qFqFWx|jƒD]}|jƒqØWtjd||jƒƒxQ|jƒD]C\} }|j| ƒ}|j| dƒ}|j||dtƒqWt j|ƒdS(Niÿÿÿÿs ÖØÔØÕóÈÝ: %siR"(RLt
LineupListtGetItemManagertGetPacktrptHerotrangetGetCounttGetAttIsEmptytGetUserAttrCounttDef_IudetHeroLineuptGetUserAttrByIndexRtGetLineupValuetlent LineupObjMaxR$R%tGetItemt DelUserAttrt    Sync_ItemRRRYRKR?R@R#RR (RRtloadLineupIDListR4tlineShapeTypeDictt syncItemDicttcurPacktindextheroItemt lineupCountt delValueListtlpIndext lineupValueRRRRtitemtsyncItemR>((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRFesP          
3   cCsetjd|jƒƒt|ƒtj|ƒtj|ƒtj    |ƒt
j |ƒt j |ƒdS(NsdoCalcAllAttr...(RRRYRytChEquiptCalcRoleEquipAttrRtCalcHeroAddAttrtPlayerPrestigeSystCalcOfficialRankAttrt PlayerGubaot CalcGubaoAttrt    PlayerHJGt CalcHJGAttr(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRE›s
     c
CsÖ|jƒ}|j}tjd||ƒtjd|j|ƒ|jƒi}i}i}i}i}    i}
dV\} } } }|jƒjtj    ƒ}xI|jj
ƒD]8\}}|dks¨||j ƒkrØq¨n|j |ƒ}| s¨|j ƒrq¨n|jƒ}tjd|ƒ}|s*q¨n|jƒ}tjd|ƒ}|sTq¨n|jtjƒ}|jtjƒ}|jtjƒ}|jtjƒ}|jtjƒ}d}|jƒ}|dksÞ|t|ƒkrë||}n|rþ|d}ntj|ƒ}| |jƒ7} | |jƒtd|dƒ7} | |jƒ|7} ||j ƒt!||ƒ7}|j"|ƒ}||_#||_$||_%||_&i|_'g|_(d|_)|j*ƒ} |j+ƒ}!|j(j,| |!gƒi}"|"j-i|j.ƒt/j06|j1ƒt/j26|j3ƒt/j46ƒx0|j5ƒj
ƒD]\}#}$|$|"t6|#ƒ<qAW|"||<i}%tj7d|ƒ}&|&rJx¾|&D]³}'|'j8ƒ|kr¬Pn|'j9ƒ}(|'j:ƒ})xWt;t!t|(ƒt|)ƒƒƒD]4}*|(|*}+|)|*},|%j<|+dƒ|,|%|+<qæW|'j=ƒ}-|-r|j(j>|-ƒqqWn|%|    |<tj?ddƒ}.i}/tj@d    |ƒ}0|0r`xÙ|0D]Î}1|1jAƒ|kr§Pn|1jBƒ}2t|.|2ƒ}.|1j9ƒ}(|1j:ƒ})xWt;t!t|(ƒt|)ƒƒƒD]4}*|(|*}+|)|*},|/j<|+dƒ|,|/|+<qüW|1j=ƒ}-|-r‹|j(j>|-ƒq‹q‹Wn|/|
|<i}3|jCtjDƒ}4|jCtjEƒ}5xžt;t!|4|5|.ƒƒD]„}*|jFtjD|*ƒ}6|jFtjE|*ƒ}7tjd
|6ƒ}8|8sûq­n|8jGƒ}+|8jHƒ|7},|3j<|+dƒ|,|3|+<q­W|3||<xS|jIƒD]E}9|9|krkg||9<n||9}:||:krL|:j>|ƒqLqLW|jJƒ};|;|krºg||;<n||;}<||<kr¨|<j>|ƒq¨q¨Wi}=x#|j
ƒD]\}9}:tjd |9ƒ}>|>s!q÷n|>jKƒ}?tL}@x$|?D]}A|A|:kr:tM}@Pq:q:W|@sfq÷n|>j9ƒ}(|>j:ƒ})x‹t;t!t|(ƒt|)ƒƒƒD]h}*|(|*}+|)|*},xK|?D]C}||=krài|=|<n|=|}B|Bj<|+dƒ|,|B|+<qÁWq Wq÷Wi}Cxð|j
ƒD]â\};}<tj7d |;ƒ}D|DsMq#ngg}(})t|<ƒ}ExB|DD]:}F|FjNƒ}G|E|GkrPn|Fj9ƒ}(|Fj:ƒ})qmWxWt;t!t|(ƒt|)ƒƒƒD]4}*|(|*}+|)|*},|Cj<|+dƒ|,|C|+<qÍWq#Wtj?d dƒ}Htj?d dƒ}Itj?d dƒ}Jtj?d dƒ}K|jOt/jPƒ}L|jOt/jQƒ}M|jOt/jRƒ}N|jOt/jSƒ}O|jOt/jTƒ}P|jOt/jUƒ}Qtjd||ƒtjd||ƒtjd||ƒtjd||ƒtjd|    |ƒtjd|
|ƒtjd|=|ƒtjd|C|ƒtjd| | | |f|ƒtjd|L|ƒtjd|M|ƒtjd|N|ƒtjd|O|ƒtjd|P|ƒtjd|Q|ƒ|jVƒ}R|jWƒ}Stjd |R|Sf|ƒtjd!|Sƒ}Td}U| d"| d"| d"|d"f\} } } }xá|j
ƒD]Ó\}}"|jX|ƒ}|s¡ qz ni|_'d|_)|j<|iƒ}3|    j<|iƒ}%|
j<|iƒ}/|=j<|iƒ}Vi}Wi}Xx…t/jYD]z}+t/jZj<|+dƒ}Y|Lj<|+dƒ}Z|Mj<|+dƒ}[|Nj<|+dƒ}\|Yr~ |Nj<|Ydƒd"nd}]|Oj<|+dƒ}^|Yr² |Oj<|Ydƒd"nd}_|Pj<|+dƒ}`|Yræ |Pj<|Ydƒd"nd}a|Qj<|+dƒ}b|Yr |Qj<|Ydƒd"nd}cdW\}d}e}f}g|+t/j[krb | | | |f\}d}e}f}gn|"j<|+dƒd}h}id}j|+t/j\kr¼ t/j\|+}k|"j<|kd#ƒ}j|jd":}jn|Cj<|+dƒd}l}m|Vj<|+dƒd}n}o|3j<|+dƒd}p}q|%j<|+dƒd}r}s|/j<|+dƒd}t}u|YrÆ|"j<|Ydƒd"}i|Cj<|Ydƒd"}m|Vj<|Ydƒd"}o|3j<|Ydƒd"}q|%j<|Ydƒd"}s|/j<|Ydƒd"}uni|Zd$6|[d%6|\d&6|]d'6|^d(6|_d)6|`d*6|ad+6|bd,6|cd-6|dd.6|ed/6|fd06|gd16|hd26|id36|jd46|ld56|md66|nd76|od86|pd96|qd:6|rd;6|sd<6|td=6|ud>6}v|+t/j[kr¼t]j^d?|H|vd@tMdAdƒ},n!t]j^dB|I|vd@tMdAdƒ},tjdC|+ƒ}w|wr|wj_ƒndD|+}xdE|x}yd}z|,rMt`|TdF|yƒrMta|TdF|yƒƒ}zn|,|X|x<|z|X|y<|,r |,|j'|+<|,|WdG|+|xf<q q Wt]j^dH|J|Xd@tLƒ}{tjdI||{|j(f|ƒi}|x†|j(D]{}-tjdJ|-ƒ}}|}sþqÚn|}jbƒ}~|~||kr#|}|||~<qÚ|||~}|j=ƒ}€|€|-krKqÚn|}|||~<qÚWd}g|_(xv||jcƒD]h}}|}j=ƒ}-|j(j>|-ƒi|}jdƒdK6|RdL6|SdM6}‚t]j^dN|K|‚d@tLƒ}ƒ||ƒ7}quWtjdO||j(f|ƒ|{|}„||_e|„|_)|U|„7}UtjdP||„|{||W|j(f|ƒqz W|U|_)tjdQ||Uf|ƒ|tjfkr‡dRStgjh||Uƒtijj|ƒ}…|…jk}†|†rµ|†jlƒrµ|jmrtjdS|ƒ|†jnt/jokr²tijp|tLƒq²qÅtjdT|ƒt/jqd}‡}ˆ|†jr|‡ƒjs|ˆƒ}‰ttjuƒ}Šx||‰jvj
ƒD]X\}}‹|Šjw|‹ƒ}Œ|Œs}qVn|j"|ƒ}|j'rV|Œjx|j'|j(ƒqVqVWntjdU|ƒtyjz|ƒdRS(Xs° Ë¢ÐÂij¸öÕóÈÝÊôÐÔ
        »ù´¡ÊôÐÔ-Ãæ°åÏÔʾ£º
        1.È«Ìå»ù´¡¹Ì¶¨Öµ=ËùÓд©´÷×°±¸¡¾×°±¸»ù´¡¹Ì¶¨Öµ¡¿+¡¾·¨±¦»ù´¡¹Ì¶¨Öµ¡¿+¡¾ºìÑÕ»ù´¡¹Ì¶¨Öµ¡¿+¡¾ÆäËüÄ£¿éµÄ¹Ì¶¨Öµ¡¿
        2.È«Ìå°Ù·Ö±È¼Ó³É=ͼ¼ø¼Ó³É+¡¾ÁéÊÞÄ£¿é¡¿+¡¾ºìÑÕÄ£¿é¡¿+¡¾ÆäËüÄ£¿é¡¿+ËùÓÐÉÏÕó¿¨ÅÆ¡¾³õʼ¼Ó³É+Éý¼¶¼Ó³É+Í»ÆÆ¼Ó³É+ÍÌÊɼӳɡ¿
        3.¿¨ÅƼ̳бÈÀý=¿¨ÅÆÆ·Öʼ°Ö°Òµ¼Ì³Ð±ÈÀý²»Í¬
        4.¿¨ÅÆ×ÔÉíÅàÑø¼Ó³É=¡¾î¿°í¼Ó³É%+Í»ÆÆ´ÊÌõ¼Ó³É%+Ì츳¼Ó³É%¡¿
        ×îÖÕÃæ°åÉúÃü=¡¾EÈ«Ìå»ù´¡¹Ì¶¨Öµ¡¿*¡¾1+EÈ«Ìå°Ù·Ö±È¼Ó³É¡¿*¡¾¿¨ÅÆ×ÔÉí¼Ì³Ð±ÈÀý+ ¿¨ÅÆ×ÔÉíÅàÑø%¼Ó³É¡¿+¡¾¿¨ÅÆ×ÔÉí¹Ì¶¨Öµ¡¿
 
        Õ½¶·ÊôÐÔ/Õ½¶·¿¹ÐÔ/ÌØÊâÊôÐÔ-Ãæ°åÏÔʾ£º
        1.È«ÌåÕ½¶·ÊôÐÔÖµ=ËùÓд©´÷×°±¸¡¾×°±¸Õ½¶·ÊôÐÔÖµ¡¿+¡¾·¨±¦Õ½¶·ÊôÐÔÖµ¡¿+¡¾ºìÑÕÕ½¶·ÊôÐÔÖµ¡¿+¡¾ÆäËüÄ£¿éµÄÕ½¶·ÊôÐÔ¡¿
        2.¿¨ÅƼ̳бÈÀý=ĬÈÏ100%
        3.¿¨ÅÆ×ÔÉíÅàÑøÕ½¶·ÊôÐÔ=¡¾¿¨ÅƳõʼս¶·ÊôÐÔ+Í»ÆÆ´ÊÌõÕ½¶·ÊôÐÔ+Ì츳ս¶·ÊôÐÔ+¾õÐÑÕ½¶·ÊôÐÔ¡¿+¡¾·¨ÔòÏ´Á¶¡¿+¡¾ÃØÄÜ×°±¸¡¿+¡¾ÆäËüÄ£¿é¡¿
        ×îÖÕÃæ°åÕ½¶·ÊôÐÔ=¡¾EÈ«ÌåÕ½¶·ÊôÐÔÖµ¡¿*¡¾¿¨ÅƼ̳бÈÀý¡¿+¡¾¿¨ÅÆ×ÔÉíÅàÑøÕ½¶·ÊôÐÔ¡¿
    sË¢ÐÂÕóÈÝÊôÐÔ: lineupID=%ss    itemIndex-posNum : %sitHerot HeroQualityit    HeroBreaktHeroStarTalentt    HeroAwaket
HeroTalentt
HeroFettertHeroLineupHalotHeroAttrFormulaiiis    ¹ú¼ÒÎ佫ͳ¼Æ=%ss    î¿°íÎ佫ͳ¼Æ=%ss    Î佫×ÔÉíÊôÐÔ=%ss    Î佫ÍÌÊÉÊôÐÔ=%ss    Îä½«Í»ÆÆÇ±ÄÜ=%ss    Î佫¾õÐÑÌ츳=%ss    Î佫íÊôÐÔ=%ss    ÕóÈݹ⻷ÊôÐÔ=%ssI    ÕóÈÝÉÏÕó¼Ó³É=InitAddPer=%s,LVAddPer=%s,BreakLVAddPer=%s,StarAddPer=%ss    Ö÷¹«µÈ¼¶ÊôÐÔ=%ss    Ö÷¹«×°±¸ÊôÐÔ=%ss    Ö÷¹«Í¼¼øÊôÐÔ=%ss    Ö÷¹«¹ÙÖ°ÊôÐÔ=%ss    Ö÷¹«¹Å±¦ÊôÐÔ=%ss    Ö÷»Ã¾³¸óÊôÐÔ=%ss    PlayerLV=%s,OfficialLV=%stFightPowerRatiogˆÃ@i'tlvValuet
equipValuet    bookValuetbookPert
realmValuetrealmPert
gubaoValuetgubaoPerthjgValuethjgPertlineupInitAddPertlineupLVAddPertlineupBreakLVAddPertlineupStarAddPert heroSelfValuet heroSelfPert
inheritPertlineupHaloValuet lineupHaloPert fetterValuet    fetterPertstarTalentValuet starTalentPert breakLVValuet
breakLVPertawakeTalentValuetawakeTalentPertbaseAttrFormulattoInttndigitstotherAttrFormulat
PlayerAttrs%ss%sRatiosGet%ss%s-%stfightPowerFormulas.    heroID=%s,fightPower=%s,heroSkillIDList=%stSkillt
SkillPowertPlayerLVt
OfficialLVtskillFPFormulas)    skillFightPower=%s,heroSkillIDList=%ssB    Î佫×îÖÕÕ½Á¦: heroID=%s,fightPower=%s(%s+%s),%s,skillIDList=%ss1    ÕóÈÝ×îÖÕÕ½Á¦: lineupID=%s,lineupFightPower=%sNsÖ÷ÕóÈݱ仯£¬ÖØÐ¿ªÊ¼Õ½¶·s$Ö÷ÕóÈÝ¿¨ÅÆÊôÐÔ±ä¸ü£¬¸üÐÂÕ½¶·Î佫ÊôÐÔsÖ÷ÕóÈÝûÓÐÔÚÕ½¶·ÖУ¬²»ÐèÒª´¦Àí(iiii(iiii({RYRRRRR'R{R|RLR}RKRR€Rt GetItemTypeIDt IpyGameDataPYtGetIpyGameDatat
GetQualityt GetUserAttrtDef_IudetHeroLVtDef_IudetHeroStartDef_IudetHeroBreakLVtDef_IudetHeroAwakeLVtDef_IudetHeroSkint GetSkinIDListR†RtGetHeroStarMaxt GetInitAddPert GetLVAddPertmaxtGetBreakLVAddPert GetStarAddPertminR*RRRRRR    R
tGetNormalSkillIDtGetAngerSkillIDtextendtupdatetGetAtkInheritPerRotAttrID_AtkInheritPertGetDefInheritPertAttrID_DefInheritPertGetHPInheritPertAttrID_HPInheritPertGetBatAttrDictR\tGetIpyGameDataListt
GetBreakLVt GetAttrIDListtGetAttrValueListR~R@t
GetSkillIDR%t
GetFuncCfgtGetIpyGameDataListNotLogt
GetAwakeLVtGetUnlockTalentSlotR‚tDef_IudetHeroTalentIDtDef_IudetHeroTalentIDLVR„t    GetAttrIDt GetAttrValuetGetFetterIDListt
GetCountryt GetHeroIDListRRtGetNeedHeroCountRBRutDef_CalcAttr_MainEquiptDef_CalcAttr_HeroBooktDef_CalcAttr_RealmtDef_CalcAttr_GubaotDef_CalcAttr_HJGRktGetOfficialRankR,tCalcBattleAttrIDListt AttrPerDicttBaseAttrIDListtAttrInheritPerDicttFormulaControltEvalt GetParameterthasattrtgetattrtGetSkillTypeIDR$t GetFightPowerR RMRlt SetFightPowerR5tGetMainFightMgrR9t    isInFightRtmapIDtDef_FBMapID_Maint__doMainLevelWavet Def_FactionAt getBatFactiont getBatlineupt    BattleObjt GetBatObjMgrt posObjIDDictt    getBatObjtUpdInitBatAttrt PlayerFamilytRefreshFamilyMember(RRR>RRtcountryHeroInfotfetterHeroInfotheroSelfAttrInfotheroStarTalentInfotheroBreakAttrInfotheroAwakeTalentInfot
InitAddPertLVAddPert BreakLVAddPert
StarAddPerRŽRRRRt heroIpyDatatqualitytqualityIpyDatatheroLVtstartbreakLVtawakeLVt    skinIndexRt
skinIDListtstarMaxR)t normalSkillIDt angerSkillIDt selfAttrDicttktvt breakAttrDicttbreakIpyDataListt breakIpyDatat
attrIDListt attrValueListtaIndextattrIDt    attrValuetskillIDt maxUnlockSlottawakeTalentAttrDicttawakeIpyDataListt awakeIpyDatatunlockTalentSlottstarTalentAttrDicttidCounttlvCountttalentIDttalentLVt    stIpyDatatfetterIDtfetterHeroIDListtcountrytcountryHeroIDListtheroFetterAttrInfot fetterIpyDatatneedHeroIDListt    canFettert
needHeroIDtheroFetterAttrDicttlineupHaloAttrInfothaloIpyDataListtcountryHeroCntt haloIpyDatat needHeroCountRÅRÈRÊRÏRxt equipAttrDictt bookAttrDictt realmAttrDictt gubaoAttrDictt hjgAttrDictRÍRÎtfpRatioIpyDatatlineupFightPowertfetterAttrDictt logAttrDicttfightPowerParamDictt    attrPerIDRªR«R¬R­R®R¯R°R±R²R³R´RµR¶R·R¸R¹RºtattrInheritPerIDR»R¼R½R¾R¿RÀRÁRÂRÃRÄt attrParamDictt attrIpyDatatattrNamet attrRatioNamet
ratioValueR
tskillTypeIDDictt    skillDatat skillTypeIDt befSkillDatat
befSkillIDR t    paramDictt sFightPowertfightPowerTotalt mainFightMgrt mainTurnFighttfactiontnumt    batLineupt    batObjMgrtobjIDtbatObj((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR0¦st     
     !                              
   (
 
 
    (
 
 
 
 
 
      (
 
 
&      (
 
"   .        """"!  -$!
 
 
     
       !
        
    $                   (((((RR5RcRLRlRÑRRšRRœRRžRRoR—R]RRR2RVRfRZRgRhRiRyRFRER0(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt<module>s8                _o7                                6