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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
@sic@sàddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZdZddd„ƒYZddd„ƒYZddd„ƒYZd    dd
„ƒYZd dd „ƒYZd „Zd„Zd„Zd„Zd„Z d„Z!e"d„Z#d„Z$d„Z%d„Z&d„Z'd„Z(dS(iÿÿÿÿNit
LineupHerocBseZd„Zd„ZRS(cCs|jƒdS(N(tClear(tself((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt__init__0s
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.pyR4s                                (t__name__t
__module__RR(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR-s    t
PresetHerocBsVeZdZdd„Zded„Zd„Zd„Zd„Zd„Z    d    „Z
RS(
sçÎ佫ÕóÈÝÔ¤Éè·½°¸£¬¿ÉÓÃÓÚÈκÎÒ»¸öÈ«¾ÖÕ½¶·Ô¤Éè·½°¸
    ËäÈ»ÊÇͬ¸öÎ佫ÎïÆ·ÕóÈÝÔ¤É裬µ«ÊÇÔÚ²»Í¬µÄÕ½¶·Ô¤Éè·½°¸ÖÐ×îÖÕµÄÎ佫ÊôÐÔ¿ÉÄܲ»Ò»Ñù
    ¹Ê¸ÃÀàÎÞ¹ØÈκÎÎ佫սÁ¦¡¢ÊôÐԵȣ¬Ö»»ã×Üij¸öÎ佫ÕóÈÝÔ¤ÉèÏà¹Ø¹«¹²Êý¾Ý£¬ÈçÎ佫վλ¡¢ÉúЧ¿¨ÅƵÈ
    icCs1||_d|_i|_i|_t|_dS(Ni(t heroPresetIDt    shapeTypet heroItemDictt_effectiveCardDicttFalset isHeroChange(RR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyREs                     icCs5||_||_|s$t|_nt||ƒdS(N(RRtTrueRtreloadEffHeroCard(Rt    curPlayerRRtisReload((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetHeroItemPresetMs           cCs ||jkS(N(R(RR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt IsHeroItemInUscCs|jj|ddtgƒS(Niÿÿÿÿ(RtgetR(RR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetHeroEffectiveCardWscCs|||g|j|<dS(N(R(RRt
cardAddPerRtinThis((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetHeroEffectiveCardXscCs ||_dS(N(R(RteffectiveCardDict((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetEffectiveCardDict]scCs2d}x%|jjƒD]}||d7}qW|S(Ni(Rtvalues(Rt effCardAddPerteffInfo((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetEffCardAddPer^s( R R t__doc__RRRRRRR!R%(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR?s                 t PresetLineupcBs_eZdd„Zd„Zd„Zd„Zd„Zd„Zd„Ze    d„Z
d    „Z RS(
icCsL||_||_||_d|_d|_d|_g|_i|_dS(Nii(    tplayerIDt batPresetIDtexclusiveMapIDtNonetolPlayert_PresetLineup__refreshStateR
t!_PresetLineup__freeLineupHeroObjst_PresetLineup__lineupHeroDict(RR(R)R*((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRgs                                cCs|j S(N(R/(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytIsEmptysscCs |jjƒS(N(R/tkeys(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetPosNumListuscCsRx9|jjƒD](}||jkr|jj|ƒqqWi|_d|_dS(Ni(R/R"R.tappendR
(RtfreeObj((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytFreeLineupHerows         cCstd}||jkr%|j|}nK|jrZ|jjdƒ}|jƒ||j|<ntƒ}||j|<|S(Ni(R+R/R.tpopRR(RRt
lineupHero((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetLineupHero€s    
     cCsXd}x9|jjƒD](}|j|ƒ}|j|kr|SqWtrTtƒ}n|S(N(R+R/R1R8RRR(RRR7R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetLineupHeroByIDs 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(R-tCheckRefreshLineupAttr(Rt refreshForce((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytRefreshLineupAttrœs     cCs3|js tSd|_t|jj|j|ƒtS(Ni(R-RtdoRefreshLineupAttrR,RR(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR;¢s
        ( R R RR0R2R5R8R9R:RR=R;(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR'ds                          
     t OnlinePlayercBsÚeZd„Zd„Zd„Zd„Zd„Zedd„Zdd„Z    dd„Z
ddd    „Z d
„Z d „Zd „Zd „Zd„Zd„Zeedd„Zedd„Zded„Zd„ZRS(cCsL||_d|_i|_i|_i|_i|_tj|ƒ|_    dS(N(
R(R+Rt _calcAttrDictt_calcSpecEffDictt_heroPresetDictt_presetLineupDictt
TurnAttackt    MainFightt    mainFight(RR(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR­s                        cCs|jjjƒdS(N(RFt    turnFightt    exitFight(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnClear»scCs||_||jj_dS(N(RRFRG(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ÄscCs<||jkr|j|}nt|ƒ}||j|<|S(N(RBR(RRt
heroPreset((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetHeroPresetÈs
  icCs±d}|}|r9|tjkr0||f}q9d}n||jkrX|j|}n9t|j||ƒ}||j|<tjdt|ƒƒ||_    |r­|j
ƒn|S(Nis´´½¨Õ½¶··½°¸: %s( R+tChConfigtExclusiveBatAttrMapIDListRCR'R(t    GameWorldtDebugLogtstrR,R;(RR)t    checkAttrR*tlineuptlineKey((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetPresetLineupÑs          cCs+|r||fn|}|jj|iƒS(N(RAR(Rt    calcIndextpresetIDtcalcKey((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetCalcSpecInfoæscCs+|r||fn|}|jj|iƒS(N(R@R(RRWRXRY((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetCalcAttréscCsE|r||fn|}||j|<|dkrA||j|<ndS(N(R@R+RA(RRWtattrDictt specEffInfoRXRY((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt SetCalcAttrìs
  cCs—|j}tjd|jƒi|_i|_i|_i|_t|ƒt    ||ƒt
j |jt j ƒ}tjd||jƒ|j|ƒdS(NsReCalcAllAttr...smainBatPresetID=%s(RRPRQR(R@RARBRCt doCalcAllAttrtdoReloadLineupt PlayerPresettGetBatPresetIDt ShareDefinetBatPreset_MainRV(RRtmainBatPresetID((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt ReCalcAllAttrõs                    
  cCs |jjƒS(N(RBR1(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetHeroPresetIDListscCsCg}x6|jjƒD]%}t|tƒr|j|ƒqqW|S(N(RCR1t
isinstancetintR3(Rt presetIDListtk((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetBatPresetIDList    s
cCs|jS(N(RC(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetPresetLineupDictscCs~|j}tjd||f|jƒxQ|jjƒD]@}|j}|rl|tj|||ƒkrlq6n|j    ƒq6WdS(Ns9ÇëÇóË¢¹¦ÄÜÔ¤ÉèÊôÐÔ±ä¸ü: funcPresetType=%s,funcPresetID=%s(
RRPRQR(RCR"R)RatGetFuncPresetIDR=(RtfuncPresetTypet funcPresetIDRt presetLineupR)((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytRefreshByFuncPresets        !cCs7tjd||jƒ|j|tƒ}|jƒdS(Ns&ÇëÇóˢȫ¾ÖÔ¤Éè·½°¸ÊôÐÔ: batPresetID=%s(RPRQR(RVRR=(RR)Rq((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytRefreshBatPresets
cCsytjd||f|jƒx<|jjƒD]+}|rN|j|krNq-n|jƒq-W|ru|j||ƒndS(sÉË¢ÐÂÖ÷¹«ÊôÐÔ£¬Ó°ÏìÖ÷¹«ÊôÐԵŦÄܵãÊôÐԱ仯ʱͳһµ÷Óô˺¯Êý
        @param refreshForce: ÊÇ·ñÇ¿ÖÆÁ¢ÂíË¢ÐÂ
        @param isAllLineup: ÊÇ·ñֻͬ²½Ë¢ËùÓÐÕóÈÝÊôÐÔ£¬Èç¹ûÉèÖÃFalseÔòĬÈϽöË¢Ö÷ÕóÈÝÊôÐÔ
        s1ÇëÇóË¢Ö÷¹«ÊôÐÔ: refreshForce=%s,exclusiveMapID=%sN(RPRQR(RCR"R*R:tDoRefreshRoleAttr(RR<t isAllLineupR*RT((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytRefreshRoleAttr#scCs¢|j}tj|tjƒ}t}xw|jjƒD]f}|s…|r^|j|kr‚q4q‚q…|j    |ks4|jdkr…q4q…n|j
ƒr4t }q4q4W|S(sÍÖ´ÐÐË¢ÊôÐÔ£¬Ä¬ÈÏֻˢµ±Ç°Ô¤Éè·½°¸ÕóÈÝ£¬ÆäËûÕóÈÝ¿ÉÒÔÓõ½µÄʱºòÔÙË¢ÐÂ
        @param isAllLineup: ÊÇ·ñË¢ËùÓÐÕóÈÝ£¬Èç¹ûÉèÖÃFalseÔòĬÈϽöË¢µ±Ç°Ô¤Éè·½°¸ÕóÈÝÊôÐÔ
        @return: ÊÇ·ñÓÐË¢ÊôÐÔ£¬0-ÎÞ£»1-ÓÐ
        i( RRaRbRcRdRRCR"R*R)R;R(RRuR*RR)t    isRefreshRT((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRt5s              cCs^|j}|j|ƒ}|j||||ƒ|jtj|ƒ|sZtj||ƒndS(sÙ±ä¸üÎ佫ԤÉèÕóÈÝʱ¸üÐÂ
        @param heroPresetID: Î佫ԤÉèID
        @param heroItemDict: Î佫±³°üË÷ÒýÐÅÏ¢  {itemIndex:posNum, ...}
        @param shapeType: ÕóÐÍ
        @param refreshForce: ÊÇ·ñÇ¿ÖÆË¢ÊôÐÔ
        N(RRMRRrRctFuncPreset_Herot
PlayerHerotSync_HeroPreset(RRRRRRRL((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytUpdHeroItemPresetOs    cCs¬|j}|jƒ}x|jjƒD]}|jƒ}t|||ƒ|jƒ}||kreq%n|j}tjd||||f|j    ƒ|j
t j |ƒq%WdS(sOij¸öÎ佫ÎïÆ·±ä»¯Ê±ÐèÒª´¦ÀíµÄÂß¼­
        @param heroItem: ±ä»¯Î佫ÎïÆ·
        sVÎ佫ÎïÆ·±ä»¯Ó°Ïì: itemIndex=%s,heroPresetID=%s,effCardAddPerBef=%s,effCardAddPerAft=%sN( RtGetItemPlaceIndexRBR"R%tcheckUpdEffHeroCardRRPRQR(RrRcRx(RtheroItemRRRLteffCardAddPerBefteffCardAddPerAftR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnHeroItemUpate_s                N(R R RRIRJRKRMRRVRZR[R+R^RfRgRlRmRrRsRRvRtR{R(((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.pyRxs        cCs[d}|jƒ}||jkr1|j|}nt|ƒ}||j|<|j|ƒ|S(N(R+t GetPlayerIDRƒR?RJ(RRR,R(((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(R…R„R6R+RƒR?RJ(RRR(R,((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetPlayerOnlineˆs    cCsV|jƒ}||jkrdS|j|}|jdƒttjƒƒ|j|<dS(N(R…RƒRJR+RittimeR„(RRR(R,((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,(RiRˆR„titemsR6R+RƒRI(RtcurTimet offlineTimesR(t offlineTimeR,((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytProcessOfflinežs(R R RR†R‡R‰RŽ(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR‚us
                  
cCs1d}tjrtj}ntƒ}|t_|S(N(R+t
PyGameDatat g_onlineMgrR‚(tmgr((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetOnlineMgr¬s              cCstƒj|ƒS(N(R’R†(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR†µscCstƒj|ƒdS(N(R’R‡(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt OnPlayerLogin·scCstƒj|ƒdS(N(R’R‰(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.pytOnMinuteÁs cCs|jƒ}|jƒ}tj|ƒ}i}|rli|jƒtj6|jƒtj6|j    ƒtj
6}nt j d||ƒt |ƒjtj|ƒdS(Ns½ÇÉ«µÈ¼¶ÊôÐÔ: %s(tGetIDtGetLVt PlayerControltGetPlayerLVIpyDatatGetAtkRNt
AttrID_AtktGetDeft
AttrID_DeftGetMaxHPt AttrID_MaxHPRPRQR†R^tDef_CalcAttr_LV(RR(tplayerLVt    lvIpyDatat
lvAttrDict((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt CalcRoleBaseÅs  c
Cst|dƒsdS|sdS|j}|jƒ}|jƒ}t|ƒ}|j|ƒ\}}    }
|jƒjtj    ƒ} | j
ƒ|    kr›| j |    ƒnd} | s´| j ƒrètjd|||    |
fƒddt}}    }
n||    krº||kr'tjd||||
||fƒdS|j||||
ƒ||krptjd||||
||fƒdS|
rtjd||||
||fƒdStjd||||
||fƒ|jƒjtj    ƒ} x¾t| j
ƒƒD]ª} | |krqën| j | ƒ}| së|j ƒr+qën||jƒkrCqënt|ƒ}||kraqëntjd||| ||fƒt||||ƒdSWtjd    ||||fƒdS|
rátjd
|||    |fƒdS||krtjd ||||||    fƒdStjd ||||||    fƒ|j||||
ƒ|jƒ}|jtj|ƒ|o{|jƒ|    d kr|jƒjtj    ƒ} | j
ƒ|    krÁ| j |    ƒnd} | r| j ƒ r| jƒ}|jtj|ƒ|o| jƒqndS(NR|sXÀúÊ·ÉúЧµÄÎïÆ·²»ÔÚÁË£¬Ç¿ÖÆÉèÖÿÕ! heroPresetID=%s,effAddPer=%s,effItemIndex=%s,inThis=%siÿÿÿÿspÉúЧµÄ¿¨ÅƲ»±äÇÒ¼Ó³ÉÒ²²»±ä£¬²»Óô¦Àí! heroPresetID=%s,heroID=%s,itemIndex=%s,inThis=%s,effAddPer=%s,curAddPer=%ssfÉúЧµÄ¿¨ÅƲ»±äÇÒ¼Ó³ÉÌáÉýÁË! heroPresetID=%s,heroID=%s,itemIndex=%s,inThis=%s,effAddPer=%s,curAddPer=%ss~ÉúЧµÄ¿¨ÅÆÐ§¹û¼Ó³É½µµÍÁË£¬µ«ÔÚÖ÷ÕóÈÝÖÐÒÀ¾É±£³ÖÉúЧ! heroPresetID=%s,heroID=%s,itemIndex=%s,inThis=%s,effAddPer=%s,curAddPer=%ssŠÉúЧµÄ¿¨ÅÆÐ§¹û¼Ó³É½µµÍÁË£¬Î´ÔÚÖ÷ÕóÈÝÖÐÖØÐ¼ìË÷ÊÇ·ñÓмӳɸü¸ßµÄ! heroPresetID=%s,heroID=%s,itemIndex=%s,inThis=%s,effAddPer=%s,curAddPer=%ssVÓиü¸ß¼Ó³ÉµÄͬÃûÎ佫! heroPresetID=%s,heroID=%s,index=%s,packCardPer=%s > curAddPer=%ssYûÓиü¸ß¼Ó³ÉµÄͬÃûÎ佫£¬±£Áô±¾¿¨ÉúЧ! heroPresetID=%s,heroID=%s,itemIndex=%s,curAddPer=%ssfûÓÐÔÚÖ÷ÕóÈÝÖÐÇÒµ±Ç°ÉúЧµÄ¿¨ÅÆÔÚÖ÷ÕóÈÝÖв»´¦Àí! heroPresetID=%s,heroID=%s,effItemIndex=%s,itemIndex=%ssy¶¼Ã»ÓÐÔÚÖ÷ÕóÈÝÖÐÇÒ²»¸ßÓÚµ±Ç°ÉúЧ¿¨ÅƼӳɲ»´¦Àí! heroPresetID=%s,heroID=%s,itemIndex=%s,curAddPer=%s <= %s,effItemIndex=%ss|¶¼Ã»ÓÐÔÚÖ÷ÕóÈÝÖÐÇÒ¸ßÓÚµ±Ç°ÉúЧ¿¨ÅƼӳÉÌæ»»ÉúЧ¿¨ÅÆ! heroPresetID=%s,heroID=%s,itemIndex=%s,curAddPer=%s > %s,effItemIndex=%si(thasattrRR|t GetItemTypeIDtgetHeroCardAddPerRtGetItemManagertGetPackRctrptHerotGetCounttGetAtR+R0RPRQRRtrangeR}tGetItemt AddUserAttrtDef_IudetHeroEffPresetIDt    Sync_Itemt DelUserAttr(RRLR~tisNotifyRRRt    curAddPert    effAddPert effItemIndexRtcurPackt
hisEffItemtindextpackItemt packCardPertitem((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR}Õsˆ       '                                  ' cCsN|jƒ}|j}g}i}|jƒjtjƒ}tjd||ƒx\t|j    ƒƒD]H}|j
|ƒ}| s`|j ƒrŽq`nt }    |j tjƒ}
xLt|
ƒD]>} |jtj| ƒ} tj| ƒd|kr³t}    Pq³q³W|jƒ} t|ƒ}tj|ƒ}||kr8|j|ƒn|    rT|||    g|| <q`|j| ddt gƒ}|dtkr‚q`||dkr`|||    g|| <q`q`Wi}tjdt|ƒ|f|ƒtjdt|ƒ|f|ƒd}|j|ƒxª|jƒD]œ\} }|\}}}    ||7}||krS|j|ƒqtjd| ||    ||f|ƒ|j
|ƒ}|jƒ}|jtj|ƒ|||<qWtjd||ƒxF|D]>}|j
|ƒ}|jƒ}|jtj|ƒ|||<qÍWtjd    ||f|ƒx|j ƒD]}|j!ƒq6WdS(
Ns'ÖØÐ¼ì²éÔØÈëÉúЧµÄ¿¨ÅÆ: heroPresetID=%siiÿÿÿÿis    ÀúÊ·ÉúЧµÄ¿¨ÅÆË÷Òý: %s,%ss    ×îÐÂÉúЧµÄ¿¨ÅÆÐÅÏ¢: %s,%ssT    ÉúЧµÄ¿¨ÅƱ仯µÄ: heroID=%s,itemIndex=%s,inThis=%s,cardAddPer=%s,cardPerTotal=%ss    ÒƳýʧЧµÄ¿¨ÅÆË÷Òý: %ss(    ×îÖÕÉúЧ¿¨ÅƼӳÉ: %s,heroPresetID=%s("R…RR¨R©RcRªRPRQR­R«R¬R0RtGetUserAttrCounttDef_IudetHeroLineuptGetUserAttrByIndexRytGetLineupValueRR¦R§tGetHeroEffPresetIDListR3RtlenR!RŠtremoveR®R¯R°R²R"R±(RRLR(RthisEffCardIndexListtupdEffectiveCardDictR·R¹R~Rt lineupCounttlpIndext lineupValueRRthisEffPresetIDListR$t syncItemDictt cardPerTotalRR¼tsyncItem((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR$sl           
 #   c
Cs÷|jƒ}tjd|ƒ}|s(dS|jƒ}tjd|ƒ}|sPdS|jtjƒ}|jtjƒ}|jtjƒ}t    j
|ƒ}|j ƒ}    |    |j ƒt d|dƒ7}    |    |jƒ|7}    |    |jƒt||ƒ7}    |    S(NtHeroit HeroQualityi(R¦t IpyGameDataPYtGetIpyGameDatat
GetQualityt GetUserAttrRctDef_IudetHeroLVtDef_IudetHeroStartDef_IudetHeroBreakLVRytGetHeroStarMaxt GetInitAddPert GetLVAddPertmaxtGetBreakLVAddPert GetStarAddPertmin(
R~Rt heroIpyDatatqualitytqualityIpyDatatheroLVtstartbreakLVtstarMaxtaddPer((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR§ns"   !c
CsÎtjdtjƒ}|sdSt|ƒ}tj}i}i}i}|jƒjtjƒ}xÙt|j    ƒƒD]Å}    |j
|    ƒ}
|
sq|
j ƒrŸqqn|
j tj ƒ} | s½qqng} x-t| ƒddd…D]} |
jtj | ƒ}tj|ƒ\}}}| s9||ks9tj|||ƒ rftjd|    ||fƒ| j|ƒqÝn||kr|||<n||kr˜i||<n||}t|ƒtjksÕ||jƒksÕ|    |krå| j|ƒqÝ|||    <qÝW| rq|
jƒ}x!| D]}|jtj |ƒq W|
||    <qqqqWx|jƒD]}|jƒqGWtjd||jƒƒxE|jƒD]7\}}|j|dƒ}|j|||dtƒq‚Wtj |ƒdS(Nt PresetUnlockiÿÿÿÿsEÒì³£»ò²»¿ÉÓõÄÎ佫ԤÉè·½°¸ID: index=%s,heroPresetID=%s,lineupValue=%ssÖØÔØÎ佫ԤÉèÕóÈÝ: %siR(!RÏtGetIpyGameDataListRcRxRÂR¨R©RªR­R«R¬R0R½R¾R¿RyRÀRatGetFuncPresetIDStateRPRQR3t LineupObjMaxR"R®R²R±R…RŠRR{RRz(RR,therpPresetIpyDataListt presetIDMaxRot
presetDictt shapeTypeDictRÊR·R¹R~RÆt delValueListRÇRÈRRRRR¼RÌ((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR`„sZ      )     
3   cCs™tjd|jƒƒt|ƒtj|ƒtj|ƒtj    |ƒt
j |ƒt j |ƒtj|ƒtj|ƒtj|ƒtj|ƒdS(NsdoCalcAllAttr...(RPRQR…R¤tChEquiptCalcRoleEquipAttrRytCalcHeroAddAttrtPlayerPrestigeSystCalcOfficialRankAttrt PlayerGubaot CalcGubaoAttrt    PlayerHJGt CalcHJGAttrt PlayerHorset CalcHorseAttrt PlayerBeautytCalcBeautyAttrt PlayerMinggetCalcMinggeAttrtGameLogic_DingjungetCalcDingjungeAttr(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR_¾s
         c 
CsÀ|jƒ}|j}|j}tj||tjƒ}tj||tjƒ}|j|ƒ}|j    }    t
j d||f|ƒt
j d||    f|ƒ|j ƒi}
i} i} i} i}i}i}|j ƒjtjƒ}x‡|    jƒD]y\}}|dksó||jƒkr#qón|j|ƒ}| só|jƒrKqón|jƒ}tjd|ƒ}|suqón|jƒ}tjd|ƒ}|sŸqón|jtjƒ}|jtjƒ}|jtjƒ}|jtjƒ}d}|jƒ}|dks|t|ƒkr$||}n|r7|d}n|j|ƒ}||_ ||_!||_"||_#i|_$g|_%d|_&|j'ƒ} |j(ƒ}!|j%j)| |!gƒi}"|"j*i|j+ƒt,j-6|j.ƒt,j/6|j0ƒt,j16ƒx0|j2ƒjƒD]\}#}$|$|"t3|#ƒ<q    W|"| |<i}%tjd||ƒ}&|&rÉ|&j4ƒ}'|&j5ƒ}(xZt6t7t|'ƒt|(ƒƒƒD]4})|'|)}*|(|)}+|%j8|*dƒ|+|%|*<qŽWn|%| |<i},tj9d|ƒ}-|-rÖxâ|-D]×}.|.j:ƒ|krPn|.j4ƒ}'|.j5ƒ}(xWt6t7t|'ƒt|(ƒƒƒD]4})|'|)}*|(|)}+|,j8|*dƒ|+|,|*<qNW|.j;ƒ}/|.j<ƒ}0|/r·|j%j=|/ƒn|0rø|j%|07_%qøqøWn|,||<tj>dd    ƒ}1i}2tj?d
|ƒ}3|3rìxÙ|3D]Î}4|4j@ƒ|kr3Pn|4jAƒ}5tB|1|5ƒ}1|4j4ƒ}'|4j5ƒ}(xWt6t7t|'ƒt|(ƒƒƒD]4})|'|)}*|(|)}+|2j8|*dƒ|+|2|*<qˆW|4j;ƒ}/|/r|j%j=|/ƒqqWn|2||<i}6|jCtjDƒ}7|jCtjEƒ}8xžt6t7|7|8|1ƒƒD]„})|jFtjD|)ƒ}9|jFtjE|)ƒ}:tjd |9ƒ};|;s‡q9n|;jGƒ}*|;jHƒ|:}+|6j8|*dƒ|+|6|*<q9W|6||<xS|jIƒD]E}<|<| kr÷g| |<<n| |<}=||=krØ|=j=|ƒqØqØW|jJƒ}>|>|
krFg|
|><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|Aj4ƒ}'|Aj5ƒ}(x‹t6t7t|'ƒt|(ƒƒƒD]h})|'|)}*|(|)}+xK|BD]C}||@krli|@|<n|@|}E|Ej8|*dƒ|+|E|*<qMWq,WqƒWi}Fxð|
jƒD]â\}>}?tj9d |>ƒ}G|GsÙq¯ngg}'}(t|?ƒ}HxB|GD]:}I|IjNƒ}J|H|Jkr    Pn|Ij4ƒ}'|Ij5ƒ}(qùWxWt6t7t|'ƒt|(ƒƒƒD]4})|'|)}*|(|)}+|Fj8|*dƒ|+|F|*<qY    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ƒ}V|jOt,jX|ƒ}W|jYt,jX|ƒ}X|t,jZkr¸
|jOt,j[ƒni}Yt
j d|
|ƒt
j d| |ƒt
j d| |ƒt
j d| |ƒt
j d||ƒt
j d||ƒt
j d||ƒt
j d|@|ƒt
j d|F|ƒt
j d|O|ƒt
j d|P|ƒt
j d|Q|ƒt
j d|R|ƒt
j d|S|ƒt
j d |T|ƒt
j d!|U|ƒt
j d"|V|ƒt
j d#|W|X|f|ƒt
j d$|Y|ƒ|j\ƒ}Z|Zd%:}Zt
j d&|Z|ƒ|j]ƒ}[|j^ƒ}\t
j d'|[|\f|ƒd}]x|XjƒD]‚\}^}_t_j`|^|_ƒ}/tjd(|/ƒ}`|`sî q² ni|`jaƒd)6|[d*6|\d+6}atbjcd,|N|ad-tLƒ}b|]|b7}]q² W|Xr[ t
j d.|]|Xf|ƒntjd/|\ƒ}cd}d|d|]7}dx| jƒD]q\}}"|jd|ƒ}|s± qŠ ni|_$d|_&| j8|iƒ}%|j8|iƒ}6|j8|iƒ},|j8|iƒ}2|@j8|iƒ}ei}fi}gxt,jeD]}*t,jfj8|*dƒ}h|Oj8|*dƒ}i|Pj8|*dƒ}jd}k|*t,jgkr|Z}kn|Qj8|*dƒ}l|hr¾|Qj8|hdƒd%nd}m|Rj8|*dƒ}n|hrò|Rj8|hdƒd%nd}o|Sj8|*dƒ}p|hr&|Sj8|hdƒd%nd}q|Tj8|*dƒ}r|hrZ|Tj8|hdƒd%nd}s|Uj8|*dƒ}t|hrŽ|Uj8|hdƒd%nd}u|Vj8|*dƒ}v|hrÂ|Vj8|hdƒd%nd}w|Wj8|*dƒ}x|hrö|Wj8|hdƒd%nd}y|Yj8|*dƒ}z|hr*|Yj8|hdƒd%nd}{|"j8|*dƒd}|}}d    }~|*t,jhkrŠt,jh|*}|"j8|d0ƒ}~|~d%:}~n|Fj8|*dƒd}€}|ej8|*dƒd}‚}ƒ|%j8|*dƒd}„}…|6j8|*dƒd}†}‡|,j8|*dƒd}ˆ}‰|2j8|*dƒd}Š}‹|hrÃ|"j8|hdƒd%}}|Fj8|hdƒd%}|ej8|hdƒd%}ƒ|%j8|hdƒd%}…|6j8|hdƒd%}‡|,j8|hdƒd%}‰|2j8|hdƒd%}‹ni"|id16|jd26|nd36|od46|kd56|pd66|qd76|rd86|sd96|td:6|ud;6|vd<6|wd=6|ld>6|md?6|zd@6|{dA6|xdB6|ydC6||dD6|}dE6|~dF6|„dG6|…dH6|€dI6|dJ6|‚dK6|ƒdL6|†dM6|‡dN6|ˆdO6|‰dP6|ŠdQ6|‹dR6}Œ|*t,jgkrêtbjcdS|K|Œd-tMdTdƒ}+n!tbjcdU|L|Œd-tMdTdƒ}+tir‹|+dkr‹i}xI|ŒjƒD];\}#}$|$ s0|#dFkra|$d    kraq0n|$||#<q0Wt
jjdV||*|+|ƒntjdW|*ƒ}Ž|Žr¯|ŽjkƒndX|*}dY|}d}‘|+rûtl|cdZ|ƒrûtm|cdZ|ƒƒ}‘n|+|g|<|‘|g|<|+r3|+|j$|*<|+|fd[|*|f<q3q3Wtbjcd\|M|gd-tLƒ}’t
j d]||’|j%f|ƒi}“x†|j%D]{}/tjd(|/ƒ}`|`s¬qˆn|`jnƒ}^|^|“krÑ|`|“|^<qˆ|“|^}”|”j;ƒ}•|•|/krùqˆn|`|“|^<qˆWd}–g|_%xv|“joƒD]h}`|`j;ƒ}/|j%j=|/ƒi|`jaƒd)6|[d*6|\d+6}atbjcd,|N|ad-tLƒ}b|–|b7}–q#Wt
j d^|–|j%f|ƒ|’|–}—|–|_p|—|_&|d|—7}dt
j d_||—|’|–|f|j%f|ƒqŠ W|d|_&t
j d`||d|f|ƒ|sF|tjq|tjrƒkrJdaStsjt||dƒtujv|ƒ}˜|˜jw}™|™rŸ|™jxƒrŸ|jyrÎtM|_yt
j db|ƒ|™jzt,j{krœtuj||tLƒqœq¯t
j dc|ƒt,j}d    }š}›|™j~|šƒj|›ƒ}œt€jƒ}xš|œj‚ƒjƒD]s\}}ž|jƒ|žƒ}Ÿ|ŸsLq%n|Ÿj„ƒt,j…krgq%n|j|ƒ}|j$r%|Ÿj†|j$|j%ƒq%q%Wnt
j dd|ƒt‡jˆ|ƒdaS(es° Ë¢ÐÂij¸öÕóÈÝÊôÐÔ
        »ù´¡ÊôÐÔ-Ãæ°åÏÔʾ£º
        1.È«Ìå»ù´¡¹Ì¶¨Öµ=ËùÓд©´÷×°±¸¡¾×°±¸»ù´¡¹Ì¶¨Öµ¡¿+¡¾·¨±¦»ù´¡¹Ì¶¨Öµ¡¿+¡¾ºìÑÕ»ù´¡¹Ì¶¨Öµ¡¿+¡¾ÆäËüÄ£¿éµÄ¹Ì¶¨Öµ¡¿
        2.È«Ìå°Ù·Ö±È¼Ó³É=ͼ¼ø¼Ó³É+¡¾ÁéÊÞÄ£¿é¡¿+¡¾ºìÑÕÄ£¿é¡¿+¡¾ÆäËüÄ£¿é¡¿+ËùÓÐÉÏÕó¿¨ÅÆ¡¾³õʼ¼Ó³É+Éý¼¶¼Ó³É+Í»ÆÆ¼Ó³É+ÍÌÊɼӳɡ¿
        3.¿¨ÅƼ̳бÈÀý=¿¨ÅÆÆ·Öʼ°Ö°Òµ¼Ì³Ð±ÈÀý²»Í¬
        4.¿¨ÅÆ×ÔÉíÅàÑø¼Ó³É=¡¾î¿°í¼Ó³É%+Í»ÆÆ´ÊÌõ¼Ó³É%+Ì츳¼Ó³É%¡¿
        ×îÖÕÃæ°åÉúÃü=¡¾EÈ«Ìå»ù´¡¹Ì¶¨Öµ¡¿*¡¾1+EÈ«Ìå°Ù·Ö±È¼Ó³É¡¿*¡¾¿¨ÅÆ×ÔÉí¼Ì³Ð±ÈÀý+ ¿¨ÅÆ×ÔÉíÅàÑø%¼Ó³É¡¿+¡¾¿¨ÅÆ×ÔÉí¹Ì¶¨Öµ¡¿
 
        Õ½¶·ÊôÐÔ/Õ½¶·¿¹ÐÔ/ÌØÊâÊôÐÔ-Ãæ°åÏÔʾ£º
        1.È«ÌåÕ½¶·ÊôÐÔÖµ=ËùÓд©´÷×°±¸¡¾×°±¸Õ½¶·ÊôÐÔÖµ¡¿+¡¾·¨±¦Õ½¶·ÊôÐÔÖµ¡¿+¡¾ºìÑÕÕ½¶·ÊôÐÔÖµ¡¿+¡¾ÆäËüÄ£¿éµÄÕ½¶·ÊôÐÔ¡¿
        2.¿¨ÅƼ̳бÈÀý=ĬÈÏ100%
        3.¿¨ÅÆ×ÔÉíÅàÑøÕ½¶·ÊôÐÔ=¡¾¿¨ÅƳõʼս¶·ÊôÐÔ+Í»ÆÆ´ÊÌõÕ½¶·ÊôÐÔ+Ì츳ս¶·ÊôÐÔ+¾õÐÑÕ½¶·ÊôÐÔ¡¿+¡¾·¨ÔòÏ´Á¶¡¿+¡¾ÃØÄÜ×°±¸¡¿+¡¾ÆäËüÄ£¿é¡¿
        ×îÖÕÃæ°åÕ½¶·ÊôÐÔ=¡¾EÈ«ÌåÕ½¶·ÊôÐÔÖµ¡¿*¡¾¿¨ÅƼ̳бÈÀý¡¿+¡¾¿¨ÅÆ×ÔÉíÅàÑøÕ½¶·ÊôÐÔ¡¿
    s6Ë¢ÐÂÕ½¶·Ô¤Éè·½°¸ÊôÐÔ: batPresetID=%s,exclusiveMapID=%ss)    heroPresetID=%s,itemIndex-posNum : %siRÍRÎt HeroQualityLVt    HeroBreaktHeroStarTalentit    HeroAwaket
HeroTalentt
HeroFettertHeroLineupHalotHeroAttrFormulaiiis    ¹ú¼ÒÎ佫ͳ¼Æ=%ss    î¿°íÎ佫ͳ¼Æ=%ss    Î佫×ÔÉíÊôÐÔ=%ss    Î佫µÈ¼¶ÊôÐÔ=%ss    Î佫ÍÌÊÉÊôÐÔ=%ss    Îä½«Í»ÆÆÇ±ÄÜ=%ss    Î佫¾õÐÑÌ츳=%ss    Î佫íÊôÐÔ=%ss    ÕóÈݹ⻷ÊôÐÔ=%ss    Ö÷¹«µÈ¼¶ÊôÐÔ=%ss    Ö÷¹«×°±¸ÊôÐÔ=%ss    Ö÷¹«ËÞÔµÊôÐÔ=%ss    Ö÷¹«¹ÙÖ°ÊôÐÔ=%ss    Ö÷¹«¹Å±¦ÊôÐÔ=%ss    Ö÷»Ã¾³¸óÊôÐÔ=%ss    Ö÷¹«×øÆïÊôÐÔ=%ss    Ö÷¹«ºìÑÕÊôÐÔ=%ss)    Ö÷¹«Ãü¸ñÊôÐÔ=%s,¼¼ÄÜ:%s,mgPresetID=%ss    ¶¨¾üרÊôÊôÐÔ=%sgˆÃ@s    Ö÷¹«¿¨ÅƼӳÉ=%ss    PlayerLV=%s,OfficialLV=%stSkillt
SkillPowertPlayerLVt
OfficialLVtskillFPFormulattoInts$    Ãü¸ñ¼¼ÄÜÕ½Á¦=%s,mgSkillLVDict=%stFightPowerRatioi'tlvValuet
equipValuet
realmValuetrealmPertcardPert
gubaoValuetgubaoPerthjgValuethjgPert
horseValuethorsePert beautyValuet    beautyPert
fatesValuetfatesPertdingjungeValuet dingjungePert minggeValuet    minggePert heroSelfValuet heroSelfPert
inheritPert heroLVValuet    heroLVPertlineupHaloValuet lineupHaloPert fetterValuet    fetterPertstarTalentValuet starTalentPert breakLVValuet
breakLVPertawakeTalentValuetawakeTalentPertbaseAttrFormulatndigitstotherAttrFormulas'    heroID=%s,attrID=%s,attrValue=%s,%st
PlayerAttrs%ss%sRatiosGet%ss%s-%stfightPowerFormulas.    heroID=%s,fightPower=%s,heroSkillIDList=%ss)    skillFightPower=%s,heroSkillIDList=%ssB    Î佫×îÖÕÕ½Á¦: heroID=%s,fightPower=%s(%s+%s),%s,skillIDList=%ssF    ÕóÈÝ×îÖÕÕ½Á¦: batPresetID=%s,lineupFightPower=%s,exclusiveMapID=%sNsÖ÷ÏßÕóÈݱ仯£¬ÖØÐ¿ªÊ¼Õ½¶·s&Ö÷ÏßÕóÈÝ¿¨ÅÆÊôÐÔ±ä¸ü£¬¸üÐÂÕ½¶·Î佫ÊôÐÔs Ö÷ÏßÕóÈÝûÓÐÔÚÕ½¶·ÖУ¬²»ÐèÒª´¦Àí(‰R…R)R*RaRnRcRxtFuncPreset_MinggeRMRRPRQR5R¨R©RªRŠR«R¬R0R¦RÏRÐRÑRÒRÓRÕtDef_IudetHeroAwakeLVtDef_IudetHeroSkint GetSkinIDListRÂR8RRRRRR    R
tGetNormalSkillIDtGetAngerSkillIDtextendtupdatetGetAtkInheritPerRNtAttrID_AtkInheritPertGetDefInheritPertAttrID_DefInheritPertGetHPInheritPertAttrID_HPInheritPertGetBatAttrDictRit GetAttrIDListtGetAttrValueListR­RÜRRæt
GetBreakLVt
GetSkillIDtGetSkillIDExListR3t
GetFuncCfgtGetIpyGameDataListNotLogt
GetAwakeLVtGetUnlockTalentSlotRÙR½tDef_IudetHeroTalentIDtDef_IudetHeroTalentIDLVR¿t    GetAttrIDt GetAttrValuetGetFetterIDListt
GetCountryt GetHeroIDListRRtGetNeedHeroCountR[R tDef_CalcAttr_MainEquiptDef_CalcAttr_HeroFatestDef_CalcAttr_RealmtDef_CalcAttr_GubaotDef_CalcAttr_HJGtDef_CalcAttr_HorsetDef_CalcAttr_BeautytDef_CalcAttr_MinggeRZtDef_FBMapID_DingjungetDef_CalcAttr_DingjungeR%R—tGetOfficialRankt SkillCommontGetSkillIDBySkillTypeIDt GetFightPowertFormulaControltEvalR9tCalcBattleAttrIDListt AttrPerDicttBaseAttrIDListtAttrInheritPerDictt g_calcDetailt
DebugLogExt GetParameterR¥tgetattrtGetSkillTypeIDR"R RbRdR˜t SetFightPowerRDtGetMainFightMgrRGt    isInFightRtmapIDtDef_FBMapID_Maint__doMainLevelWavet Def_FactionAt getBatFactiont getBatlineupt    BattleObjt GetBatObjMgrtgetPosObjIDDictt    getBatObjt GetBatObjTypetBatObjType_BatHerotUpdInitBatAttrt PlayerFamilytRefreshFamilyMember( RR,RqR(R)R*Rt
mgPresetIDRLRtcountryHeroInfotfetterHeroInfotheroSelfAttrInfotheroLVAttrInfotheroStarTalentInfotheroBreakAttrInfotheroAwakeTalentInfoR·RRR~RRÝRÞRßRàRâtawakeLVt    skinIndexRt
skinIDListR7t normalSkillIDt angerSkillIDt selfAttrDictRktvtheroLVAttrDictt heroLVIpyDatat
attrIDListt attrValueListtaIndextattrIDt    attrValuet breakAttrDicttbreakIpyDataListt breakIpyDatatskillIDt skillIDExListt maxUnlockSlottawakeTalentAttrDicttawakeIpyDataListt awakeIpyDatatunlockTalentSlottstarTalentAttrDicttidCounttlvCountttalentIDttalentLVt    stIpyDatatfetterIDtfetterHeroIDListtcountrytcountryHeroIDListtheroFetterAttrInfot fetterIpyDatatneedHeroIDListt    canFettert
needHeroIDtheroFetterAttrDicttlineupHaloAttrInfothaloIpyDataListtcountryHeroCntt haloIpyDatat needHeroCountR0R2R4R R£t equipAttrDictt fatesAttrDictt realmAttrDictt gubaoAttrDictt hjgAttrDictt horseAttrDicttbeautyAttrDicttminggeAttrDictt mgSkillLVDicttdingjungeAttrDictR#R    R
tmgSkillFightPowert skillTypeIDtskillLVt    skillDatat    paramDictt sFightPowertfpRatioIpyDatatlineupFightPowertfetterAttrDictt logAttrDicttfightPowerParamDictt    attrPerIDRRRRRRRRRRRRRRRRR RRR!R"R#tattrInheritPerIDR&R'R(R)R$R%R*R+R,R-R.R/t attrParamDictt calcParamDictt attrIpyDatatattrNamet attrRatioNamet
ratioValueR
tskillTypeIDDictt befSkillDatat
befSkillIDR tfightPowerTotalt mainFightMgrt mainTurnFighttfactiontnumt    batLineupt    batObjMgrtobjIDtbatObj((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR>Ísæ             
                                   
  (
 
!
   (
 
 
    (
 
 
 
 
 
      (
 
 
&      (
 
"' 
  !
            """"""""  &*#$!
 
 
     
       !
        
    $    !                   (((((()RwRDRR`RcRaR˜RÏRcRñRýRûRùR~R÷RóRyRõRPRNRîRˆRiRRR'R?R‚R’R†R“R”R•R¤RR}RR§R`R_R>(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt<module>sN                      %FË7                             O    J        :