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
a±}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
cCsCd|_d|_d|_i|_g|_d|_d|_dS(Ni(t    itemIndextheroIDtposNumtheroBatAttrDicttheroSkillIDListt
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    tLineupcBskeZd„Zded„Zd„Zd„Zd„Zd„Zd„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.pyR4s                                    icCsC||_||_tjd|j|f|jƒ|j|ƒdS(s©±ä¸üÕóÈÝʱ¸üÐÂ
        @param heroItemDict: Î佫±³°üË÷ÒýÐÅÏ¢  {itemIndex:posNum, ...}
        @param shapeType: ÕóÐÍ
        @param refreshForce: ÊÇ·ñÇ¿ÖÆË¢ÊôÐÔ
        s¸üÐÂÕóÈÝ: lineupID=%s,%sN(RRt    GameWorldtDebugLogRRtRefreshLineupAttr(RRRt refreshForce((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt    UpdLineupAs
          cCsRx9|jjƒD](}||jkr|jj|ƒqqWi|_d|_dS(Ni(RtvaluesRtappendR    (RtfreeObj((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytFreeLineupHeroMs         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 GetLineupHeroVs    
     cCs@x9|jjƒD](}|j|ƒ}|j|kr|SqWdS(N(RtkeysR"R(RRRtlineup((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetLineupHeroByIDcs
cCs|jƒdS(N(tDoRefreshLineupAttr(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetLineupInfojs
cCs d|_dS(Ni(R(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetNeedRefreshStateos    cCs d|_|r|jƒndS(Ni(RR&(RR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRts     cCs3|js tSt|jj|j|ƒd|_tS(Ni(RtFalsetdoRefreshLineupAttrRt    curPlayertTrue(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR&zs
        cCs!||jkrdS|jƒtS(N(RRR,(RR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytCheckHeroItemUpdates
( R R RR)RRR"R%R'R(RR&R-(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR 1s                                    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(RRR+t calcAttrDictt
lineupDictt
TurnAttackt    MainFightt    mainFight(RR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRŠs                 cCs|jjƒdS(N(R3tclear(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnClear–s cCs||_||jj_dS(N(R+R3t    turnFight(RR+((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt    SetPlayeršs    cCs |jdkS(N(R+R(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt IsRealOnlineŸscCsQd}||jkr%|j|}nt|j|ƒ}||j|<||_|S(N(RR0R RR(RRR$((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt    GetLineup£s     cCs|jj|iƒS(N(R/tget(Rt    calcIndex((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetCalcAttr­scCs||j|<dS(N(R/(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...(    R+RRRR/R0t 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(RRRR0RR(tDoRefreshRoleAttr(RRt isAllLineupR$((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRAÁs cCs[t}xN|jjƒD]=\}}| r>|tjkr>qn|jƒrt}qqW|S(s»Ö´ÐÐË¢ÊôÐÔ£¬Ä¬È϶îÍâË¢Ö÷ÕóÈÝ£¬ÆäËûÕóÈÝ¿ÉÒÔÓõ½µÄʱºòÔÙË¢ÐÂ
        @param isAllLineup: ÊÇ·ñË¢ËùÓÐÕóÈÝ£¬Èç¹ûÉèÖÃFalseÔòĬÈϽöË¢Ö÷ÕóÈÝÊôÐÔ
        @return: ÊÇ·ñÓÐË¢ÊôÐÔ£¬0-ÎÞ£»1-ÓÐ
        (R)R0titemst ShareDefinet Lineup_MainR&R,(RRDt    isRefreshRR$((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRCÏ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(R0RER-RRRR(Rt itemIndexListteffLineupIDListRR$R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnHeroItemUpateßs  (R R RR5R7R8R9R<R>RBR)RARCRK(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR.‡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 GetPlayerIDRMR.R7(RR+RR((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(RORNR RRMR.R7(RR+RR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetPlayerOnlines    cCsV|jƒ}||jkrdS|j|}|jdƒttjƒƒ|j|<dS(N(RORMR7RtintttimeRN(RR+RR((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,(RRRSRNRER RRMR5(RtcurTimet offlineTimesRt offlineTimeR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytProcessOfflines(R R RRPRQRTRX(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRLïs
                  
cCs1d}tjrtj}ntƒ}|t_|S(N(Rt
PyGameDatat g_onlineMgrRL(tmgr((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetOnlineMgr&s              cCstƒj|ƒS(N(R\RP(R+((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRP/scCstƒj|ƒdS(N(R\RQ(R+((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt OnPlayerLogin1scCstƒj|ƒdS(N(R\RT(R+((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnPlayerLogoff6scCstƒjƒdS(N(R\RX(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnMinute;s 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_MaxHPRRRPR>tDef_CalcAttr_LV(R+RtplayerLVt    lvIpyDatat
lvAttrDict((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt CalcRoleBase?s  cCsXtj}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ƒƒxK|jƒD]=\} }|j| ƒ}|j| dƒ}|j||ƒqWdS(Niÿÿÿÿs ÖØÔØÕóÈÝ: %si(RFt
LineupListtGetItemManagertGetPacktrptHerotrangetGetCounttGetAttIsEmptytGetUserAttrCounttDef_IudetHeroLineuptGetUserAttrByIndext
PlayerHerotGetLineupValuetlent LineupObjMaxRRtGetItemt DelUserAttrt    Sync_ItemRRRORER9R:R(R+RtloadLineupIDListR0tlineShapeTypeDictt syncItemDicttcurPacktindextheroItemt lineupCountt delValueListtlpIndext lineupValueRRRRtitemtsyncItemR$((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR@OsN          
3  cCs>tjd|jƒƒt|ƒtj|ƒtj|ƒdS(NsdoCalcAllAttr...(RRRORotChEquiptCalcRoleEquipAttrR{tCalcHeroAddAttr(R+((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR?„s
 
  cm    Cs§|jƒ}|j}tjd||ƒtjd|j|ƒ|jƒi}i}i}i}i}    i}
d>\} } } }|jƒjtj    ƒ}x‰|jj
ƒD]x\}}|dks¨||j ƒkrØq¨n|j |ƒ}| s¨|j ƒrq¨n|jƒ}tjd|ƒ}|s*q¨n|jƒ}tjd|ƒ}|sTq¨n|jtjƒ}|jtjƒ}|jtjƒ}|jtjƒ}| |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'j,6ƒx0|j-ƒj
ƒD]\}} | |t.|ƒ<q±W|||<i}!|j/tj0ƒ}"|j/tj1ƒ}#x›t2t3|"|#ƒƒD]„}$|j4tj0|$ƒ}%|j4tj1|$ƒ}&tjd|%ƒ}'|'siqn|'j5ƒ}(|'j6ƒ|&})|!j7|(dƒ|)|!|(<qW|!||<i}*tj8d|ƒ}+|+rŒx¾|+D]³},|,j9ƒ|krîPn|,j:ƒ}-|,j;ƒ}.xWt2t3t<|-ƒt<|.ƒƒƒD]4}$|-|$}(|.|$})|*j7|(dƒ|)|*|(<q(W|,j=ƒ}/|/rÒ|j j>|/ƒqÒqÒWn|*|    |<i}0tj8d|ƒ}+|+rux¾|+D]³}1|1j?ƒ|kr×Pn|1j:ƒ}-|1j;ƒ}.xWt2t3t<|-ƒt<|.ƒƒƒD]4}$|-|$}(|.|$})|0j7|(dƒ|)|0|(<qW|1j=ƒ}/|/r»|j j>|/ƒq»q»Wn|0|
|<xS|j@ƒD]E}2|2|kr«g||2<n||2}3||3krŒ|3j>|ƒqŒqŒW|jAƒ}4|4|krúg||4<n||4}5||5kr¨|5j>|ƒq¨q¨Wi}6x#|j
ƒD]\}2}3tjd    |2ƒ}7|7saq7n|7jBƒ}8tC}9x$|8D]}:|:|3krztD}9PqzqzW|9s¦q7n|7j:ƒ}-|7j;ƒ}.x‹t2t3t<|-ƒt<|.ƒƒƒD]h}$|-|$}(|.|$})xK|8D]C}||6kr i|6|<n|6|};|;j7|(dƒ|)|;|(<qWqàWq7Wi}<xð|j
ƒD]â\}4}5tj8d
|4ƒ}=|=sqcngg}-}.t<|5ƒ}>xB|=D]:}?|?jEƒ}@|>|@krÏPn|?j:ƒ}-|?j;ƒ}.q­WxWt2t3t<|-ƒt<|.ƒƒƒD]4}$|-|$}(|.|$})|<j7|(dƒ|)|<|(<q WqcWtjFd d ƒ}AtjFd d ƒ}BtjFd dƒ}C|jGt'jHƒ}D|jGt'jIƒ}E|jGt'jJƒ}Ftjd||ƒtjd||ƒtjd||ƒtjd||ƒtjd|    |ƒtjd|
|ƒtjd|6|ƒtjd|<|ƒtjd| | | |f|ƒtjd|D|ƒtjd|E|ƒtjd|F|ƒd}G| d| d| d|df\} } } }xu|j
ƒD]g\}}|jK|ƒ}|s
qò    ni|_d|_!|j7|iƒ}!|    j7|iƒ}*|
j7|iƒ}0|6j7|iƒ}Hi}Ii}Jx[t'jLD]P}(t'jMj7|(dƒ}K|Dj7|(dƒ}L|Ej7|(dƒ}M|Fj7|(dƒ}N|Krö
|Fj7|Kdƒdnd}Od?\}P}Q}R}S|(t'jNkr> | | | |f\}P}Q}R}Sn|j7|(dƒd}T}Ud }V|(t'jOkr˜ t'jO|(}W|j7|Wdƒ}V|Vd:}Vn|<j7|(dƒd}X}Y|Hj7|(dƒd}Z}[|!j7|(dƒd}\}]|*j7|(dƒd}^}_|0j7|(dƒd}`}a|Kr¢ |j7|Kdƒd}U|<j7|Kdƒd}Y|Hj7|Kdƒd}[|!j7|Kdƒd}]|*j7|Kdƒd}_|0j7|Kdƒd}ani|Ld6|Md6|Nd 6|Od!6|Pd"6|Qd#6|Rd$6|Sd%6|Td&6|Ud'6|Vd(6|Xd)6|Yd*6|Zd+6|[d,6|\d-6|]d.6|^d/6|_d06|`d16|ad26}b|(t'jNkrb tPjQd3|A|bƒ})ntPjQd4|B|bƒ})tjd5|(ƒ}c|cr› |cjRƒnd6|(}d|)|J|d<|)r‰
|)|j|(<|)|Id7|(|df<q‰
WtPjQd8|C|Jƒ}etjd9|e|j fƒi}fx‰|j D]~}/tjSƒjT|/ƒ}g|gsCqn|gjUƒ}h|h|fkrh|g|f|h<q|f|h}i|ij=ƒ}j|j|/krqn|g|f|h<qWd}kg|_ x@|fjVƒD]2}g|gj=ƒ}/|j j>|/ƒ|k|gjWƒ7}kqºWtjd:|k|j fƒ|e|k}l|k|_X|l|_!|G|l7}Gtjd;||l|e|k|I|j f|ƒqò    W|G|_!tjd<||Gf|ƒ|tjYkr“d=StZj[||Gƒd=S(@s° Ë¢ÐÂ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=%ss)    skillFightPower=%s,heroSkillIDList=%ssB    Î佫×îÖÕÕ½Á¦: heroID=%s,fightPower=%s(%s+%s),%s,skillIDList=%ss1    ÕóÈÝ×îÖÕÕ½Á¦: lineupID=%s,lineupFightPower=%sN(iiii(iiii(\RORRRRRRqRrRFRsRERuRvRwt GetItemTypeIDt IpyGameDataPYtGetIpyGameDatat
GetQualityt GetUserAttrtDef_IudetHeroLVtDef_IudetHeroStartDef_IudetHeroBreakLVtDef_IudetHeroAwakeLVt GetInitAddPert GetLVAddPertGetBreakLVAddPert GetStarAddPerR"RRRRRR    tGetNormalSkillIDtGetAngerSkillIDtextendtupdatetGetAtkInheritPerRetAttrID_AtkInheritPertGetDefInheritPertAttrID_DefInheritPertGetHPInheritPertAttrID_HPInheritPertGetBatAttrDictRRRxtDef_IudetHeroTalentIDtDef_IudetHeroTalentIDLVRttminRzt    GetAttrIDt GetAttrValueR:tGetIpyGameDataListt
GetBreakLVt GetAttrIDListtGetAttrValueListR}t
GetSkillIDRt
GetAwakeLVtGetFetterIDListt
GetCountryt GetHeroIDListR,R)tGetNeedHeroCountt
GetFuncCfgR<RktDef_CalcAttr_MainEquiptDef_CalcAttr_HeroBookR%tCalcBattleAttrIDListt AttrPerDicttBaseAttrIDListtAttrInheritPerDicttFormulaControltEvalt GetParametert GetGameDatatGetSkillBySkillIDtGetSkillTypeIDRt GetFightPowerR
RGRbt SetFightPower(mR+RR$RRtcountryHeroInfotfetterHeroInfotheroSelfAttrInfotheroStarTalentInfotheroBreakAttrInfotheroAwakeTalentInfot
InitAddPertLVAddPert BreakLVAddPert
StarAddPerR…RRR‡Rt heroIpyDatatqualitytqualityIpyDatatheroLVtstartbreakLVtawakeLVR!t normalSkillIDt angerSkillIDt selfAttrDicttktvtstarTalentAttrDicttidCounttlvCounttaIndexttalentIDttalentLVt    stIpyDatatattrIDt    attrValuet breakAttrDicttawakeIpyDataListt breakIpyDatat
attrIDListt attrValueListtskillIDtawakeTalentAttrDictt awakeIpyDatatfetterIDtfetterHeroIDListtcountrytcountryHeroIDListtheroFetterAttrInfot fetterIpyDatatneedHeroIDListt    canFettert
needHeroIDtheroFetterAttrDicttlineupHaloAttrInfothaloIpyDataListtcountryHeroCntt haloIpyDatat needHeroCountR®R¯R±Rnt 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     
                            
 
   (
 
 
   (
 
 
 
 
      (
 
 
&      (
 
" .        "!  
 
       
        
    $    (((((R1RYRFRbR³RàR{RReRŽRSRR R.RLR\RPR]R^R_RoR@R?R*(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt<module>s.           Vh7                                5