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
X(“hc@s%ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddd„ƒYZ ddd„ƒYZ ddd„ƒYZ ddd    „ƒ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„Z    d„Z
ed„Z d    „Z d
„Z RS( cCsU||_||_d|_d|_i|_d|_g|_i|_d|_    dS(Ni(
tplayerIDtlineupIDtNonetolPlayert    shapeTypet heroItemDictt_Lineup__refreshStatet_Lineup__freeLineupHeroObjstlineupHeroDictR
(RRR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR5s                                    icCsq||_||_tjd|j|f|jƒ|j|ƒ|rm|jjrmt    j
|jj|jƒndS(s©±ä¸üÕóÈÝʱ¸üÐÂ
        @param heroItemDict: Î佫±³°üË÷ÒýÐÅÏ¢  {itemIndex:posNum, ...}
        @param shapeType: ÕóÐÍ
        @param refreshForce: ÊÇ·ñÇ¿ÖÆË¢ÊôÐÔ
        s¸üÐÂÕóÈÝ: lineupID=%s,%sN( RRt    GameWorldtDebugLogRRtRefreshLineupAttrRt    curPlayert
PlayerHerot Sync_Lineup(RRRt refreshForcet
syncLineup((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt    UpdLineupBs          cCsRx9|jjƒD](}||jkr|jj|ƒqqWi|_d|_dS(Ni(RtvaluesRtappendR
(RtfreeObj((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytFreeLineupHeroPs         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 GetLineupHeroYs    
     cCsXd}x9|jjƒD](}|j|ƒ}|j|kr|SqWtrTtƒ}n|S(N(RRtkeysR'RtFalseR(RRR&R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetLineupHeroByIDfs cCs|jƒdS(N(tDoRefreshLineupAttr(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetLineupInfops
cCs d|_dS(Ni(R(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetNeedRefreshStateus    cCs d|_|r|jƒndS(Ni(RR+(RR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRzs     cCs3|js tSt|jj|j|ƒd|_tS(Ni(RR)tdoRefreshLineupAttrRRtTrue(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 RR)R/R R$R'R*R,R-RR+R0(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR2s                      
             t OnlinePlayercBsteZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z    e
e
d„Z e
d    „Z d
„Z RS( cCs:||_d|_i|_i|_tj|ƒ|_dS(N(RRRt calcAttrDictt
lineupDictt
TurnAttackt    MainFightt    mainFight(RR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRs                 cCs|jjjƒdS(N(R6t    turnFightt
clearFight(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnClearœscCs||_||jj_dS(N(RR6R7(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(RR3RRR(RRtlineup((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt    GetLineup©s     cCs|jj|iƒS(N(R2tget(Rt    calcIndex((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetCalcAttr³scCs||j|<dS(N(R2(RR?tattrDict((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...(    RRRRR2R3t 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(RRRR3R!R-tDoRefreshRoleAttr(RRt isAllLineupR<((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyREÇs cCs[t}xN|jjƒD]=\}}| r>|tjkr>qn|jƒrt}qqW|S(s»Ö´ÐÐË¢ÊôÐÔ£¬Ä¬È϶îÍâË¢Ö÷ÕóÈÝ£¬ÆäËûÕóÈÝ¿ÉÒÔÓõ½µÄʱºòÔÙË¢ÐÂ
        @param isAllLineup: ÊÇ·ñË¢ËùÓÐÕóÈÝ£¬Èç¹ûÉèÖÃFalseÔòĬÈϽöË¢Ö÷ÕóÈÝÊôÐÔ
        @return: ÊÇ·ñÓÐË¢ÊôÐÔ£¬0-ÎÞ£»1-ÓÐ
        (R)R3titemst ShareDefinet Lineup_MainR+R/(RRHt    isRefreshRR<((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRGÕ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(R3RIR0R"RRR(Rt itemIndexListteffLineupIDListRR<R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnHeroItemUpateås  (R R RR9R:R;R=R@RBRFR)RERGRO(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR1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.pyRøs        cCs[d}|jƒ}||jkr1|j|}nt|ƒ}||j|<|j|ƒ|S(N(Rt GetPlayerIDRQR1R:(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(RSRRR%RRQR1R:(RRRR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetPlayerOnlines    cCsV|jƒ}||jkrdS|j|}|jdƒttjƒƒ|j|<dS(N(RSRQR:RtintttimeRR(RRRR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetPlayerOfflines   cCs™ttjƒƒ}d}xz|jjƒD]i\}}|||krJq(n|jj|dƒ||jkrrq(n|jj|dƒ}|jƒq(WdS(Nii<i,(RVRWRRRIR%RRQR9(RtcurTimet offlineTimesRt offlineTimeR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytProcessOfflines(R R RRTRURXR\(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRPõs
                  
cCs1d}tjrtj}ntƒ}|t_|S(N(Rt
PyGameDatat g_onlineMgrRP(tmgr((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetOnlineMgr,s              cCstƒj|ƒS(N(R`RT(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRT5scCstƒj|ƒdS(N(R`RU(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt OnPlayerLogin7scCstƒj|ƒdS(N(R`RX(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnPlayerLogoff<scCstƒjƒdS(N(R`R\(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnMinuteAs 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_MaxHPRRRTRBtDef_CalcAttr_LV(RRtplayerLVt    lvIpyDatat
lvAttrDict((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt CalcRoleBaseEs  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(RJt
LineupListtGetItemManagertGetPacktrptHerotrangetGetCounttGetAttIsEmptytGetUserAttrCounttDef_IudetHeroLineuptGetUserAttrByIndexRtGetLineupValuetlent LineupObjMaxR!R"tGetItemt DelUserAttrt    Sync_ItemRRRSRIR=R>R R)R(RRtloadLineupIDListR3tlineShapeTypeDictt syncItemDicttcurPacktindextheroItemt lineupCountt delValueListtlpIndext lineupValueRRRRtitemtsyncItemR<((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRDUsP          
3   cCs>tjd|jƒƒt|ƒtj|ƒtj|ƒdS(NsdoCalcAllAttr...(RRRSRstChEquiptCalcRoleEquipAttrRtCalcHeroAddAttr(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRC‹s
 
  cp
Cs|jƒ}|j}tjd||ƒtjd|j|ƒ|jƒi}i}i}i}i}    i}
d?\} } } }|jƒjtj    ƒ}xô|jj
ƒD]ã\}}|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}n| |jƒ7} | |jƒ|7} | |jƒ|7} ||jƒ|7}|j|ƒ}||_||_ ||_!||_"i|_#g|_$d|_%|j&ƒ}|j'ƒ} |j$j(|| gƒi}!|!j)i|j*ƒt+j,6|j-ƒt+j.6|j/ƒt+j06ƒx0|j1ƒj
ƒD]\}"}#|#|!t2|"ƒ<qW|!||<i}$|j3tj4ƒ}%|j3tj5ƒ}&x›t6t7|%|&ƒƒD]„}'|j8tj4|'ƒ}(|j8tj5|'ƒ})tjd|(ƒ}*|*sÔq†n|*j9ƒ}+|*j:ƒ|)},|$j;|+dƒ|,|$|+<q†W|$||<i}-tj<d|ƒ}.|.r÷x¾|.D]³}/|/j=ƒ|krYPn|/j>ƒ}0|/j?ƒ}1xWt6t7t|0ƒt|1ƒƒƒD]4}'|0|'}+|1|'},|-j;|+dƒ|,|-|+<q“W|/j@ƒ}2|2r=|j$jA|2ƒq=q=Wn|-|    |<i}3tj<d|ƒ}.|.ràx¾|.D]³}4|4jBƒ|krBPn|4j>ƒ}0|4j?ƒ}1xWt6t7t|0ƒt|1ƒƒƒD]4}'|0|'}+|1|'},|3j;|+dƒ|,|3|+<q|W|4j@ƒ}2|2r&|j$jA|2ƒq&q&Wn|3|
|<xS|jCƒD]E}5|5|krg||5<n||5}6||6kr÷|6jA|ƒq÷q÷W|jDƒ}7|7|kreg||7<n||7}8||8kr¨|8jA|ƒq¨q¨Wi}9x#|j
ƒD]\}5}6tjd    |5ƒ}:|:sÌq¢n|:jEƒ};tF}<x$|;D]}=|=|6kråtG}<PqåqåW|<sq¢n|:j>ƒ}0|:j?ƒ}1x‹t6t7t|0ƒt|1ƒƒƒD]h}'|0|'}+|1|'},xK|;D]C}||9kr‹i|9|<n|9|}>|>j;|+dƒ|,|>|+<qlWqKWq¢Wi}?xð|j
ƒD]â\}7}8tj<d
|7ƒ}@|@søqÎngg}0}1t|8ƒ}AxB|@D]:}B|BjHƒ}C|A|Ckr:Pn|Bj>ƒ}0|Bj?ƒ}1qWxWt6t7t|0ƒt|1ƒƒƒD]4}'|0|'}+|1|'},|?j;|+dƒ|,|?|+<qxWqÎWtjId d ƒ}DtjId d ƒ}EtjId dƒ}F|jJt+jKƒ}G|jJt+jLƒ}H|jJt+jMƒ}Itjd||ƒtjd||ƒtjd||ƒtjd||ƒtjd|    |ƒtjd|
|ƒtjd|9|ƒtjd|?|ƒtjd| | | |f|ƒtjd|G|ƒtjd|H|ƒtjd|I|ƒd}J| d| d| d|df\} } } }xr|j
ƒD]d\}}!|jN|ƒ}|s„
q]
ni|_#d|_%|j;|iƒ}$|    j;|iƒ}-|
j;|iƒ}3|9j;|iƒ}Ki}Li}Mx[t+jOD]P}+t+jPj;|+dƒ}N|Gj;|+dƒ}O|Hj;|+dƒ}P|Ij;|+dƒ}Q|Nra |Ij;|Ndƒdnd}Rd@\}S}T}U}V|+t+jQkr© | | | |f\}S}T}U}Vn|!j;|+dƒd}W}Xd }Y|+t+jRkr t+jR|+}Z|!j;|Zdƒ}Y|Yd:}Yn|?j;|+dƒd}[}\|Kj;|+dƒd}]}^|$j;|+dƒd}_}`|-j;|+dƒd}a}b|3j;|+dƒd}c}d|Nr |!j;|Ndƒd}X|?j;|Ndƒd}\|Kj;|Ndƒd}^|$j;|Ndƒd}`|-j;|Ndƒd}b|3j;|Ndƒd}dni|Od6|Pd6|Qd 6|Rd!6|Sd"6|Td#6|Ud$6|Vd%6|Wd&6|Xd'6|Yd(6|[d)6|\d*6|]d+6|^d,6|_d-6|`d.6|ad/6|bd06|cd16|dd26}e|+t+jQkrÍ tSjTd3|D|eƒ},ntSjTd4|E|eƒ},tjd5|+ƒ}f|fr|fjUƒnd6|+}g|,|M|g<|,rô
|,|j#|+<|,|Ld7|+|gf<qô
WtSjTd8|F|Mƒ}htjd9|h|j$fƒi}ix†|j$D]{}2tjd:|2ƒ}j|js«q‡n|jjVƒ}k|k|ikrÐ|j|i|k<q‡|i|k}l|lj@ƒ}m|m|2krøq‡n|j|i|k<q‡Wd}ng|_$x@|ijWƒD]2}j|jj@ƒ}2|j$jA|2ƒ|n|jjXƒ7}nq"Wtjd;|n|j$fƒ|h|n}o|n|_Y|o|_%|J|o7}Jtjd<||o|h|n|L|j$f|ƒq]
W|J|_%tjd=||Jf|ƒ|tjZkrûd>St[j\||Jƒd>S(As° Ë¢ÐÂij¸öÕóÈÝÊôÐÔ
        »ù´¡ÊôÐÔ-Ãæ°åÏÔʾ£º
        1.È«Ìå»ù´¡¹Ì¶¨Öµ=ËùÓд©´÷×°±¸¡¾×°±¸»ù´¡¹Ì¶¨Öµ¡¿+¡¾·¨±¦»ù´¡¹Ì¶¨Öµ¡¿+¡¾ºìÑÕ»ù´¡¹Ì¶¨Öµ¡¿+¡¾ÆäËüÄ£¿éµÄ¹Ì¶¨Öµ¡¿
        2.È«Ìå°Ù·Ö±È¼Ó³É=ͼ¼ø¼Ó³É+¡¾ÁéÊÞÄ£¿é¡¿+¡¾ºìÑÕÄ£¿é¡¿+¡¾ÆäËüÄ£¿é¡¿+ËùÓÐÉÏÕó¿¨ÅÆ¡¾³õʼ¼Ó³É+Éý¼¶¼Ó³É+Í»ÆÆ¼Ó³É+ÍÌÊɼӳɡ¿
        3.¿¨ÅƼ̳бÈÀý=¿¨ÅÆÆ·Öʼ°Ö°Òµ¼Ì³Ð±ÈÀý²»Í¬
        4.¿¨ÅÆ×ÔÉíÅàÑø¼Ó³É=¡¾î¿°í¼Ó³É%+Í»ÆÆ´ÊÌõ¼Ó³É%+Ì츳¼Ó³É%¡¿
        ×îÖÕÃæ°åÉúÃü=¡¾EÈ«Ìå»ù´¡¹Ì¶¨Öµ¡¿*¡¾1+EÈ«Ìå°Ù·Ö±È¼Ó³É¡¿*¡¾¿¨ÅÆ×ÔÉí¼Ì³Ð±ÈÀý+ ¿¨ÅÆ×ÔÉíÅàÑø%¼Ó³É¡¿+¡¾¿¨ÅÆ×ÔÉí¹Ì¶¨Öµ¡¿
 
        Õ½¶·ÊôÐÔ/Õ½¶·¿¹ÐÔ/ÌØÊâÊôÐÔ-Ãæ°åÏÔʾ£º
        1.È«ÌåÕ½¶·ÊôÐÔÖµ=ËùÓд©´÷×°±¸¡¾×°±¸Õ½¶·ÊôÐÔÖµ¡¿+¡¾·¨±¦Õ½¶·ÊôÐÔÖµ¡¿+¡¾ºìÑÕÕ½¶·ÊôÐÔÖµ¡¿+¡¾ÆäËüÄ£¿éµÄÕ½¶·ÊôÐÔ¡¿
        2.¿¨ÅƼ̳бÈÀý=ĬÈÏ100%
        3.¿¨ÅÆ×ÔÉíÅàÑøÕ½¶·ÊôÐÔ=¡¾¿¨ÅƳõʼս¶·ÊôÐÔ+Í»ÆÆ´ÊÌõÕ½¶·ÊôÐÔ+Ì츳ս¶·ÊôÐÔ+¾õÐÑÕ½¶·ÊôÐÔ¡¿+¡¾·¨ÔòÏ´Á¶¡¿+¡¾ÃØÄÜ×°±¸¡¿+¡¾ÆäËüÄ£¿é¡¿
        ×îÖÕÃæ°åÕ½¶·ÊôÐÔ=¡¾EÈ«ÌåÕ½¶·ÊôÐÔÖµ¡¿*¡¾¿¨ÅƼ̳бÈÀý¡¿+¡¾¿¨ÅÆ×ÔÉíÅàÑøÕ½¶·ÊôÐÔ¡¿
    sË¢ÐÂÕóÈÝÊôÐÔ: lineupID=%ss    itemIndex-posNum : %sitHerot HeroQualityt
HeroTalentt    HeroBreakt    HeroAwaket
HeroFettertHeroLineupHalotHeroAttrFormulaiiis    ¹ú¼ÒÎ佫ͳ¼Æ=%ss    î¿°íÎ佫ͳ¼Æ=%ss    Î佫×ÔÉíÊôÐÔ=%ss    Î佫ÍÌÊÉÊôÐÔ=%ss    Îä½«Í»ÆÆÇ±ÄÜ=%ss    Î佫¾õÐÑÌ츳=%ss    Î佫íÊôÐÔ=%ss    ÕóÈݹ⻷ÊôÐÔ=%ssI    ÕóÈÝÉÏÕó¼Ó³É=InitAddPer=%s,LVAddPer=%s,BreakLVAddPer=%s,StarAddPer=%ss    Ö÷¹«µÈ¼¶ÊôÐÔ=%ss    Ö÷¹«×°±¸ÊôÐÔ=%ss    Ö÷¹«Í¼¼øÊôÐÔ=%sgˆÃ@idgY@tlvValuet
equipValuet    bookValuetbookPertlineupInitAddPertlineupLVAddPertlineupBreakLVAddPertlineupStarAddPert heroSelfValuet heroSelfPert
inheritPertlineupHaloValuet lineupHaloPert fetterValuet    fetterPertstarTalentValuet starTalentPert breakLVValuet
breakLVPertawakeTalentValuetawakeTalentPertbaseAttrFormulatotherAttrFormulat
PlayerAttrs%ss%s-%stfightPowerFormulas$    fightPower=%s,heroSkillIDList=%stSkills)    skillFightPower=%s,heroSkillIDList=%ssB    Î佫×îÖÕÕ½Á¦: heroID=%s,fightPower=%s(%s+%s),%s,skillIDList=%ss1    ÕóÈÝ×îÖÕÕ½Á¦: lineupID=%s,lineupFightPower=%sN(iiii(iiii(]RSRRRRR$RuRvRJRwRIRyRzR{t GetItemTypeIDt IpyGameDataPYtGetIpyGameDatat
GetQualityt GetUserAttrtDef_IudetHeroLVtDef_IudetHeroStartDef_IudetHeroBreakLVtDef_IudetHeroAwakeLVtDef_IudetHeroSkint GetSkinIDListR€t GetInitAddPert GetLVAddPertGetBreakLVAddPert GetStarAddPerR'RRRRRR    R
tGetNormalSkillIDtGetAngerSkillIDtextendtupdatetGetAtkInheritPerRitAttrID_AtkInheritPertGetDefInheritPertAttrID_DefInheritPertGetHPInheritPertAttrID_HPInheritPertGetBatAttrDictRVR|tDef_IudetHeroTalentIDtDef_IudetHeroTalentIDLVRxtminR~t    GetAttrIDt GetAttrValueR>tGetIpyGameDataListt
GetBreakLVt GetAttrIDListtGetAttrValueListt
GetSkillIDR"t
GetAwakeLVtGetFetterIDListt
GetCountryt GetHeroIDListR/R)tGetNeedHeroCountt
GetFuncCfgR@RotDef_CalcAttr_MainEquiptDef_CalcAttr_HeroBookR*tCalcBattleAttrIDListt AttrPerDicttBaseAttrIDListtAttrInheritPerDicttFormulaControltEvalt GetParametertGetSkillTypeIDR!t GetFightPowerR RKRft SetFightPower(pRRR<RRtcountryHeroInfotfetterHeroInfotheroSelfAttrInfotheroStarTalentInfotheroBreakAttrInfotheroAwakeTalentInfot
InitAddPertLVAddPert BreakLVAddPert
StarAddPerRˆRRRŠRt heroIpyDatatqualitytqualityIpyDatatheroLVtstartbreakLVtawakeLVt    skinIndexRt
skinIDListR&t normalSkillIDt angerSkillIDt selfAttrDicttktvtstarTalentAttrDicttidCounttlvCounttaIndexttalentIDttalentLVt    stIpyDatatattrIDt    attrValuet breakAttrDicttawakeIpyDataListt breakIpyDatat
attrIDListt attrValueListtskillIDtawakeTalentAttrDictt awakeIpyDatatfetterIDtfetterHeroIDListtcountrytcountryHeroIDListtheroFetterAttrInfot fetterIpyDatatneedHeroIDListt    canFettert
needHeroIDtheroFetterAttrDicttlineupHaloAttrInfothaloIpyDataListtcountryHeroCntt haloIpyDatat needHeroCountR±R²R´Rrt equipAttrDictt bookAttrDicttlineupFightPowertfetterAttrDictt logAttrDicttfightPowerParamDictt    attrPerIDRœRRžRŸR R¡R¢R£R¤R¥R¦tattrInheritPerIDR§R¨R©RªR«R¬R­R®R¯R°t attrParamDictt attrIpyDatatattrNameR
tskillTypeIDDictt    skillDatat skillTypeIDt befSkillDatat
befSkillIDR tfightPowerTotal((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR.“s     
                                   
 
   (
 
 
   (
 
 
 
 
      (
 
 
&      (
 
" .        "!  
 
       
        
    $    (((((R4R]RJRfR·RæRRRiR‘RWRRR1RPR`RTRaRbRcRsRDRCR.(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt<module>s.           [h7                                6