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
135
e%ic@syddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddd„ƒ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    tLineupcBsweZd„Zdeed„Zd„Zd„Zd„Zd„Zd„Z    d„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__freeLineupHeroObjst_Lineup__lineupHeroDictR
(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    UpdLineupJs           cCs|j p|j S(N(RR(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytIsEmptyZscCs |jjƒS(N(Rtkeys(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetPosNumList\scCsRx9|jjƒD](}||jkr|jj|ƒqqWi|_d|_dS(Ni(RtvaluesRtappendR
(RtfreeObj((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytFreeLineupHero^s         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 GetLineupHerogs    
     cCsXd}x9|jjƒD](}|j|ƒ}|j|kr|SqWtrTtƒ}n|S(N(RRR%R-RRR(RRR,R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetLineupHeroByIDts 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(RtCheckRefreshLineupAttr(RR!((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRƒs     cCs<|js tSd|_t|jj|j|ƒt|_tS(Ni(RRtdoRefreshLineupAttrRRRR(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR0‰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.R/RR0R2(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR9s                             
             t OnlinePlayercBs‰eZd„Zd„Zd„Zd„Zed„Zd„Zd„Z    d„Z
e e d„Z e d    „Z d
„Zd „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(R8t    turnFightt    exitFight(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnClear©scCs||_||jj_dS(N(RR8R:(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²scCsdd}||jkr%|j|}nt|j|ƒ}||j|<||_|r`|jƒn|S(N(RR5RRRR0(RRt    checkAttrtlineup((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt    GetLineup¶s      cCs|jj|iƒS(N(R4tget(Rt    calcIndex((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetCalcAttrÃscCs||j|<dS(N(R4(RRCtattrDict((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...(    RRRRR4R5t 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(RRRR5R'R/tDoRefreshRoleAttr(RR!t isAllLineupR@((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRI×s cCs[t}xN|jjƒD]=\}}| r>|tjkr>qn|jƒrt}qqW|S(s»Ö´ÐÐË¢ÊôÐÔ£¬Ä¬È϶îÍâË¢Ö÷ÕóÈÝ£¬ÆäËûÕóÈÝ¿ÉÒÔÓõ½µÄʱºòÔÙË¢ÐÂ
        @param isAllLineup: ÊÇ·ñË¢ËùÓÐÕóÈÝ£¬Èç¹ûÉèÖÃFalseÔòĬÈϽöË¢Ö÷ÕóÈÝÊôÐÔ
        @return: ÊÇ·ñÓÐË¢ÊôÐÔ£¬0-ÎÞ£»1-ÓÐ
        (RR5titemst ShareDefinet Lineup_MainR0R(RRLt    isRefreshRR@((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRKå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(R5RMR2R(RRR(Rt itemIndexListteffLineupIDListRR@R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnHeroItemUpateõs  cCs|jS(N(R9(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetLastBatBufferscCs||g|_dS(N(R9(Rtguidt    batBuffer((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetLastBatBuffers(R R RR<R=R>RRARDRFRJRRIRKRSRTRW(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR3˜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 GetPlayerIDRYR3R=(RRRR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetOnlinePlayers    cCsh|jƒ}|jj|dƒ||jkrJt|ƒ}||j|<n |j|}|j|ƒdS(N(R[RZR+RRYR3R=(RRRR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetPlayerOnlines    cCsV|jƒ}||jkrdS|j|}|jdƒttjƒƒ|j|<dS(N(R[RYR=RtintttimeRZ(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_RZRMR+RRYR<(RtcurTimet offlineTimesRt offlineTimeR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytProcessOffline3s(R R RR\R]R`Rd(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRX
s
                  
cCs1d}tjrtj}ntƒ}|t_|S(N(Rt
PyGameDatat g_onlineMgrRX(tmgr((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetOnlineMgrAs              cCstƒj|ƒS(N(RhR\(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR\JscCstƒj|ƒdS(N(RhR](R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt OnPlayerLoginLscCstƒj|ƒdS(N(RhR`(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnPlayerLogoffQscCstƒjƒdS(N(RhRd(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnMinuteVs 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_MaxHPRRR\RFtDef_CalcAttr_LV(RRtplayerLVt    lvIpyDatat
lvAttrDict((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt CalcRoleBaseZs  cCsntj}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ƒƒxT|jƒD]F\} }|j| tƒ}|j| dƒ}|j||dtƒqWt j|ƒdS(Niÿÿÿÿs ÖØÔØÕóÈÝ: %siR"(RNt
LineupListtGetItemManagertGetPacktrptHerotrangetGetCounttGetAtR$tGetUserAttrCounttDef_IudetHeroLineuptGetUserAttrByIndexRtGetLineupValuetlent LineupObjMaxR'R(tGetItemt DelUserAttrt    Sync_ItemRRR[RMRARRBR#RR (RRtloadLineupIDListR5tlineShapeTypeDictt syncItemDicttcurPacktindextheroItemt lineupCountt delValueListtlpIndext lineupValueRRRRtitemtsyncItemR@((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRHjsP          
3   cCstjd|jƒƒt|ƒtj|ƒtj|ƒtj    |ƒt
j |ƒt j |ƒtj|ƒtj|ƒdS(NsdoCalcAllAttr...(RRR[R{tChEquiptCalcRoleEquipAttrRtCalcHeroAddAttrtPlayerPrestigeSystCalcOfficialRankAttrt PlayerGubaot CalcGubaoAttrt    PlayerHJGt CalcHJGAttrt PlayerHorset CalcHorseAttrt PlayerBeautytCalcBeautyAttr(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRG s
       c˜
Cs¯|jƒ}|j}tjd||ƒtjd|j|ƒ|jƒi}i}i}i}i}    i}
i} d`\} } }}|jƒjtj    ƒ}xé|jj
ƒD]Ø\}}|dks®||j ƒkrÞq®n|j |ƒ}| s®|j ƒrq®n|jƒ}tjd|ƒ}|s0q®n|jƒ}tjd|ƒ}|sZq®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|$ƒ<qGW|#||<i}&tjd||ƒ}'|'r|'j7ƒ}(|'j8ƒ})xZt9t!t|(ƒt|)ƒƒƒD]4}*|(|*}+|)|*},|&j:|+dƒ|,|&|+<qÌWn|&||<i}-tj;d|ƒ}.|.rðx¾|.D]³}/|/j<ƒ|krRPn|/j7ƒ}(|/j8ƒ})xWt9t!t|(ƒt|)ƒƒƒD]4}*|(|*}+|)|*},|-j:|+dƒ|,|-|+<qŒW|/j=ƒ}0|0r6| j(j>|0ƒq6q6Wn|-|
|<tj?d    dƒ}1i}2tj@d
|ƒ}3|3rxÙ|3D]Î}4|4jAƒ|krMPn|4jBƒ}5t|1|5ƒ}1|4j7ƒ}(|4j8ƒ})xWt9t!t|(ƒt|)ƒƒƒD]4}*|(|*}+|)|*},|2j:|+dƒ|,|2|+<q¢W|4j=ƒ}0|0r1| j(j>|0ƒq1q1Wn|2| |<i}6|jCtjDƒ}7|jCtjEƒ}8xžt9t!|7|8|1ƒƒD]„}*|jFtjD|*ƒ}9|jFtjE|*ƒ}:tjd |9ƒ};|;s¡qSn|;jGƒ}+|;jHƒ|:},|6j:|+dƒ|,|6|+<qSW|6|    |<xS|jIƒD]E}<|<|krg||<<n||<}=||=krò|=j>|ƒqòqòW|jJƒ}>|>|kr`g||><n||>}?||?kr®|?j>|ƒq®q®Wi}@x#|j
ƒD]\}<}=tjd |<ƒ}A|AsÇqn|AjKƒ}BtL}Cx$|BD]}D|D|=kràtM}CPqàqàW|Cs qn|Aj7ƒ}(|Aj8ƒ})x‹t9t!t|(ƒt|)ƒƒƒD]h}*|(|*}+|)|*},xK|BD]C}||@kr†i|@|<n|@|}E|Ej:|+dƒ|,|E|+<qgWqFWqWi}Fxð|j
ƒD]â\}>}?tj;d |>ƒ}G|GsóqÉngg}(})t|?ƒ}HxB|GD]:}I|IjNƒ}J|H|Jkr5    Pn|Ij7ƒ}(|Ij8ƒ})q    WxWt9t!t|(ƒt|)ƒƒƒD]4}*|(|*}+|)|*},|Fj:|+dƒ|,|F|+<qs    WqÉWtj?ddƒ}Ktj?ddƒ}Ltj?ddƒ}Mtj?ddƒ}N|jOt/jPƒ}O|jOt/jQƒ}P|jOt/jRƒ}Q|jOt/jSƒ}R|jOt/jTƒ}S|jOt/jUƒ}T|jOt/jVƒ}U|jOt/jWƒ}Vtjd||ƒtjd||ƒtjd||ƒtjd||ƒtjd|    |ƒtjd|
|ƒtjd| |ƒtjd|@|ƒtjd|F|ƒtjd| | ||f|ƒtjd|O|ƒtjd|P|ƒtjd|Q|ƒtjd|R|ƒtjd |S|ƒtjd!|T|ƒtjd"|U|ƒtjd#|V|ƒ|jXƒ}W|jYƒ}Xtjd$|W|Xf|ƒtjd%|Xƒ}Yd}Z| d&| d&|d&|d&f\} } }}x´|j
ƒD]¦\}}#|jZ|ƒ} | s§ q€ ni| _'d| _)|j:|iƒ}&|    j:|iƒ}6|
j:|iƒ}-| j:|iƒ}2|@j:|iƒ}[i}\i}]xFt/j[D];}+t/j\j:|+dƒ}^|Oj:|+dƒ}_|Pj:|+dƒ}`|Qj:|+dƒ}a|^r– |Qj:|^dƒd&nd}b|Rj:|+dƒ}c|^rÊ |Rj:|^dƒd&nd}d|Sj:|+dƒ}e|^rþ |Sj:|^dƒd&nd}f|Tj:|+dƒ}g|^r2|Tj:|^dƒd&nd}h|Uj:|+dƒ}i|^rf|Uj:|^dƒd&nd}j|Vj:|+dƒ}k|^rš|Vj:|^dƒd&nd}lda\}m}n}o}p|+t/j]krâ| | ||f\}m}n}o}pn|#j:|+dƒd}q}rd}s|+t/j^kr<t/j^|+}t|#j:|td'ƒ}s|sd&:}sn|Fj:|+dƒd}u}v|[j:|+dƒd}w}x|&j:|+dƒd}y}z|6j:|+dƒd}{}||-j:|+dƒd}}}~|2j:|+dƒd}}€|^ru|#j:|^dƒd&}r|Fj:|^dƒd&}v|[j:|^dƒd&}x|&j:|^dƒd&}z|6j:|^dƒd&}||-j:|^dƒd&}~|2j:|^dƒd&}€ni!|_d(6|`d)6|ad*6|bd+6|cd,6|dd-6|ed.6|fd/6|gd06|hd16|id26|jd36|kd46|ld56|md66|nd76|od86|pd96|qd:6|rd;6|sd<6|yd=6|zd>6|ud?6|vd@6|wdA6|xdB6|{dC6||dD6|}dE6|~dF6|dG6|€dH6}|+t/j]kr•t_j`dI|K|dJtMdKdƒ},n!t_j`dL|L|dJtMdKdƒ},tjdM|+ƒ}‚|‚rÚ|‚jaƒndN|+}ƒdO|ƒ}„d}…|,r&tb|YdP|„ƒr&tc|YdP|„ƒƒ}…n|,|]|ƒ<|…|]|„<|,r) |,| j'|+<|,|\dQ|+|ƒf<q) q) Wt_j`dR|M|]dJtLƒ}†tjdS||†| j(f|ƒi}‡x†| j(D]{}0tjdT|0ƒ}ˆ|ˆs×q³n|ˆjdƒ}‰|‰|‡krü|ˆ|‡|‰<q³|‡|‰}Š|Šj=ƒ}‹|‹|0kr$q³n|ˆ|‡|‰<q³Wd}Œg| _(xv|‡jeƒD]h}ˆ|ˆj=ƒ}0| j(j>|0ƒi|ˆjfƒdU6|WdV6|XdW6}t_j`dX|N|dJtLƒ}Ž|Œ|Ž7}ŒqNWtjdY|Œ| j(f|ƒ|†|Œ}|Œ| _g|| _)|Z|7}ZtjdZ|||†|Œ|\| j(f|ƒq€ W|Z|_)tjd[||Zf|ƒ|tjhkr`d\Stijj||Zƒtkjl|ƒ}|jm}‘|‘rŽ|‘jnƒrŽ|jorÛtjd]|ƒ|‘jpt/jqkr‹tkjr|tLƒq‹qžtjd^|ƒt/jsd}’}“|‘jt|’ƒju|“ƒ}”tvjwƒ}•x||”jxj
ƒD]X\}}–|•jy|–ƒ}—|—sVq/n|j"|ƒ} | j'r/|—jz| j'| j(ƒq/q/Wntjd_|ƒt{j||ƒd\S(bs° Ë¢ÐÂij¸öÕóÈÝÊôÐÔ
        »ù´¡ÊôÐÔ-Ãæ°åÏÔʾ£º
        1.È«Ìå»ù´¡¹Ì¶¨Öµ=ËùÓд©´÷×°±¸¡¾×°±¸»ù´¡¹Ì¶¨Öµ¡¿+¡¾·¨±¦»ù´¡¹Ì¶¨Öµ¡¿+¡¾ºìÑÕ»ù´¡¹Ì¶¨Öµ¡¿+¡¾ÆäËüÄ£¿éµÄ¹Ì¶¨Öµ¡¿
        2.È«Ìå°Ù·Ö±È¼Ó³É=ͼ¼ø¼Ó³É+¡¾ÁéÊÞÄ£¿é¡¿+¡¾ºìÑÕÄ£¿é¡¿+¡¾ÆäËüÄ£¿é¡¿+ËùÓÐÉÏÕó¿¨ÅÆ¡¾³õʼ¼Ó³É+Éý¼¶¼Ó³É+Í»ÆÆ¼Ó³É+ÍÌÊɼӳɡ¿
        3.¿¨ÅƼ̳бÈÀý=¿¨ÅÆÆ·Öʼ°Ö°Òµ¼Ì³Ð±ÈÀý²»Í¬
        4.¿¨ÅÆ×ÔÉíÅàÑø¼Ó³É=¡¾î¿°í¼Ó³É%+Í»ÆÆ´ÊÌõ¼Ó³É%+Ì츳¼Ó³É%¡¿
        ×îÖÕÃæ°åÉúÃü=¡¾EÈ«Ìå»ù´¡¹Ì¶¨Öµ¡¿*¡¾1+EÈ«Ìå°Ù·Ö±È¼Ó³É¡¿*¡¾¿¨ÅÆ×ÔÉí¼Ì³Ð±ÈÀý+ ¿¨ÅÆ×ÔÉíÅàÑø%¼Ó³É¡¿+¡¾¿¨ÅÆ×ÔÉí¹Ì¶¨Öµ¡¿
 
        Õ½¶·ÊôÐÔ/Õ½¶·¿¹ÐÔ/ÌØÊâÊôÐÔ-Ãæ°åÏÔʾ£º
        1.È«ÌåÕ½¶·ÊôÐÔÖµ=ËùÓд©´÷×°±¸¡¾×°±¸Õ½¶·ÊôÐÔÖµ¡¿+¡¾·¨±¦Õ½¶·ÊôÐÔÖµ¡¿+¡¾ºìÑÕÕ½¶·ÊôÐÔÖµ¡¿+¡¾ÆäËüÄ£¿éµÄÕ½¶·ÊôÐÔ¡¿
        2.¿¨ÅƼ̳бÈÀý=ĬÈÏ100%
        3.¿¨ÅÆ×ÔÉíÅàÑøÕ½¶·ÊôÐÔ=¡¾¿¨ÅƳõʼս¶·ÊôÐÔ+Í»ÆÆ´ÊÌõÕ½¶·ÊôÐÔ+Ì츳ս¶·ÊôÐÔ+¾õÐÑÕ½¶·ÊôÐÔ¡¿+¡¾·¨ÔòÏ´Á¶¡¿+¡¾ÃØÄÜ×°±¸¡¿+¡¾ÆäËüÄ£¿é¡¿
        ×îÖÕÃæ°åÕ½¶·ÊôÐÔ=¡¾EÈ«ÌåÕ½¶·ÊôÐÔÖµ¡¿*¡¾¿¨ÅƼ̳бÈÀý¡¿+¡¾¿¨ÅÆ×ÔÉíÅàÑøÕ½¶·ÊôÐÔ¡¿
    sË¢ÐÂÕóÈÝÊôÐÔ: lineupID=%ss    itemIndex-posNum : %sitHerot HeroQualityit HeroQualityLVt    HeroBreaktHeroStarTalentt    HeroAwaket
HeroTalentt
HeroFettertHeroLineupHalotHeroAttrFormulaiiis    ¹ú¼ÒÎ佫ͳ¼Æ=%ss    î¿°íÎ佫ͳ¼Æ=%ss    Î佫×ÔÉíÊôÐÔ=%ss    Î佫µÈ¼¶ÊôÐÔ=%ss    Î佫ÍÌÊÉÊôÐÔ=%ss    Îä½«Í»ÆÆÇ±ÄÜ=%ss    Î佫¾õÐÑÌ츳=%ss    Î佫íÊôÐÔ=%ss    ÕóÈݹ⻷ÊôÐÔ=%ssI    ÕóÈÝÉÏÕó¼Ó³É=InitAddPer=%s,LVAddPer=%s,BreakLVAddPer=%s,StarAddPer=%ss    Ö÷¹«µÈ¼¶ÊôÐÔ=%ss    Ö÷¹«×°±¸ÊôÐÔ=%ss    Ö÷¹«Í¼¼øÊôÐÔ=%ss    Ö÷¹«¹ÙÖ°ÊôÐÔ=%ss    Ö÷¹«¹Å±¦ÊôÐÔ=%ss    Ö÷»Ã¾³¸óÊôÐÔ=%ss    Ö÷¹«×øÆïÊôÐÔ=%ss    Ö÷¹«ºìÑÕÊôÐÔ=%ss    PlayerLV=%s,OfficialLV=%stFightPowerRatiogˆÃ@i'tlvValuet
equipValuet    bookValuetbookPert
realmValuetrealmPert
gubaoValuetgubaoPerthjgValuethjgPert
horseValuethorsePert beautyValuet    beautyPertlineupInitAddPertlineupLVAddPertlineupBreakLVAddPertlineupStarAddPert heroSelfValuet heroSelfPert
inheritPert heroLVValuet    heroLVPertlineupHaloValuet 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(}R[RRRRR*R}R~RNRRMRR‚R$t GetItemTypeIDt IpyGameDataPYtGetIpyGameDatat
GetQualityt GetUserAttrtDef_IudetHeroLVtDef_IudetHeroStartDef_IudetHeroBreakLVtDef_IudetHeroAwakeLVtDef_IudetHeroSkint GetSkinIDListR‡RtGetHeroStarMaxt GetInitAddPert GetLVAddPertmaxtGetBreakLVAddPert GetStarAddPertminR-RRRRRR    R
tGetNormalSkillIDtGetAngerSkillIDtextendtupdatetGetAtkInheritPerRqtAttrID_AtkInheritPertGetDefInheritPertAttrID_DefInheritPertGetHPInheritPertAttrID_HPInheritPertGetBatAttrDictR^t GetAttrIDListtGetAttrValueListR€RBtGetIpyGameDataListt
GetBreakLVt
GetSkillIDR(t
GetFuncCfgtGetIpyGameDataListNotLogt
GetAwakeLVtGetUnlockTalentSlotRƒtDef_IudetHeroTalentIDtDef_IudetHeroTalentIDLVR…t    GetAttrIDt GetAttrValuetGetFetterIDListt
GetCountryt GetHeroIDListRRtGetNeedHeroCountRDRwtDef_CalcAttr_MainEquiptDef_CalcAttr_HeroBooktDef_CalcAttr_RealmtDef_CalcAttr_GubaotDef_CalcAttr_HJGtDef_CalcAttr_HorsetDef_CalcAttr_BeautyRmtGetOfficialRankR.tCalcBattleAttrIDListt AttrPerDicttBaseAttrIDListtAttrInheritPerDicttFormulaControltEvalt GetParameterthasattrtgetattrtGetSkillTypeIDR't GetFightPowerR RORnt SetFightPowerR6tGetMainFightMgrR:t    isInFightRtmapIDtDef_FBMapID_Maint__doMainLevelWavet Def_FactionAt getBatFactiont getBatlineupt    BattleObjt GetBatObjMgrt posObjIDDictt    getBatObjtUpdInitBatAttrt PlayerFamilytRefreshFamilyMember(˜RRR@RRtcountryHeroInfotfetterHeroInfotheroSelfAttrInfotheroLVAttrInfotheroStarTalentInfotheroBreakAttrInfotheroAwakeTalentInfot
InitAddPertLVAddPert BreakLVAddPert
StarAddPerRRRR‘Rt heroIpyDatatqualitytqualityIpyDatatheroLVtstartbreakLVtawakeLVt    skinIndexRt
skinIDListtstarMaxR,t normalSkillIDt angerSkillIDt selfAttrDicttktvtheroLVAttrDictt heroLVIpyDatat
attrIDListt attrValueListtaIndextattrIDt    attrValuet breakAttrDicttbreakIpyDataListt breakIpyDatatskillIDt maxUnlockSlottawakeTalentAttrDicttawakeIpyDataListt awakeIpyDatatunlockTalentSlottstarTalentAttrDicttidCounttlvCountttalentIDttalentLVt    stIpyDatatfetterIDtfetterHeroIDListtcountrytcountryHeroIDListtheroFetterAttrInfot fetterIpyDatatneedHeroIDListt    canFettert
needHeroIDtheroFetterAttrDicttlineupHaloAttrInfothaloIpyDataListtcountryHeroCntt haloIpyDatat needHeroCountRÑRÔRÖRÛRzt equipAttrDictt bookAttrDictt realmAttrDictt gubaoAttrDictt hjgAttrDictt horseAttrDicttbeautyAttrDictRÙRÚtfpRatioIpyDatatlineupFightPowertfetterAttrDictt logAttrDicttfightPowerParamDictt    attrPerIDR°R±R²R³R´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Î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.pyR1­s¤     
     !                              
  (
 
!
   (
 
 
    (
 
 
 
 
 
      (
 
 
&      (
 
"   .        """"""!  -*#$!
 
 
     
       !
        
    $                   (((((R&R6ReRNRnRÝRR›R£R+R¡RRRŸRRqR˜R_RRR3RXRhR\RiRjRkR{RHRGR1(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt<module>s<                  _r7                                6