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
211
212
213
214
215
216
217
218
219
220
221
ÐQ©ic@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
PresetHerocBsheZdZdd„Zded„Zd„Zd„Zd„Zd„Z    d    „Z
d
„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 t|_dS(N(RR(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnSwitchUs    cCs ||jkS(N(R(RR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt IsHeroItemInYscCs|jj|ddtgƒS(Niÿÿÿÿ(RtgetR(RR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetHeroEffectiveCard[scCs|||g|j|<dS(N(R(RRt
cardAddPerRtinThis((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetHeroEffectiveCard\scCs|jS(N(R(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetEffectiveCardDictascCs ||_dS(N(R(RteffectiveCardDict((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetEffectiveCardDictbscCs2d}x%|jjƒD]}||d7}qW|S(Ni(Rtvalues(Rt effCardAddPerteffInfo((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetEffCardAddPercs( R R t__doc__RRRRRRR R!R#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.pyRls                                cCs|j S(N(R1(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytIsEmptyxscCs |jjƒS(N(R1tkeys(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetPosNumListzscCsRx9|jjƒD](}||jkr|jj|ƒqqWi|_d|_dS(Ni(R1R$R0tappendR
(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(R-R1R0tpopRR(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-R1R3R:RRR(RRR9R((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 RR2R4R7R:R;R<RR?R=(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR)is                          
     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(RHt    turnFightt    exitFight(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnClearÀscCs||_||jj_dS(N(RRHRI(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(RDR(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-tChConfigtExclusiveBatAttrMapIDListRER)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(RCR(Rt    calcIndextpresetIDtcalcKey((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetCalcSpecInfoëscCs+|r||fn|}|jj|iƒS(N(RBR(RRYRZR[((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetCalcAttrîscCsE|r||fn|}||j|<|dkrA||j|<ndS(N(RBR-RC(RRYtattrDictt specEffInfoRZR[((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(RRRRSR*RBRCRDREt doCalcAllAttrtdoReloadLineupt PlayerPresettGetBatPresetIDt ShareDefinetBatPreset_MainRX(RRtmainBatPresetID((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt ReCalcAllAttrús                    
  cCs |jjƒS(N(RDR3(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetHeroPresetIDList scCsCg}x6|jjƒD]%}t|tƒr|j|ƒqqW|S(N(RER3t
isinstancetintR5(Rt presetIDListtk((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetBatPresetIDLists
cCs|jS(N(RE(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(
RRRRSR*RER$R+RctGetFuncPresetIDR?(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(RRRSR*RXRR?(RR+Rs((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytRefreshBatPreset!s
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(RRRSR*RER$R,R<tDoRefreshRoleAttr(RR>t isAllLineupR,RV((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( RRcRdReRfRRER$R,R+R=R(RRwR,RR+t    isRefreshRV((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRv:s              cCs^|j}|j|ƒ}|j||||ƒ|jtj|ƒ|sZtj||ƒndS(sÙ±ä¸üÎ佫ԤÉèÕóÈÝʱ¸üÐÂ
        @param heroPresetID: Î佫ԤÉèID
        @param heroItemDict: Î佫±³°üË÷ÒýÐÅÏ¢  {itemIndex:posNum, ...}
        @param shapeType: ÕóÐÍ
        @param refreshForce: ÊÇ·ñÇ¿ÖÆË¢ÊôÐÔ
        N(RRORRtRetFuncPreset_Herot
PlayerHerotSync_HeroPreset(RRRRRRRN((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytUpdHeroItemPresetTs    cCsš|j}|jƒ}x~|jjƒD]m}|jƒ}t|||ƒ|jƒ}|j}tjd||||f|j    ƒ|j
t j |ƒq%WdS(sOij¸öÎ佫ÎïÆ·±ä»¯Ê±ÐèÒª´¦ÀíµÄÂß¼­
        @param heroItem: ±ä»¯Î佫ÎïÆ·
        sVÎ佫ÎïÆ·±ä»¯Ó°Ïì: itemIndex=%s,heroPresetID=%s,effCardAddPerBef=%s,effCardAddPerAft=%sN( RtGetItemPlaceIndexRDR$R'tcheckUpdEffHeroCardRRRRSR*RtReRz(RtheroItemRRRNteffCardAddPerBefteffCardAddPerAftR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnHeroItemUpateds               N(R R RRKRLRMRORRXR\R]R-R`RhRiRnRoRtRuRRxRvR}Rƒ(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRA¯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(R-t GetPlayerIDR…RARL(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†R8R-R…RARL(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…RLR-RkttimeR†(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,(RkRŠR†titemsR8R-R…RK(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„xs
                  
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 PlayerControltGetPlayerLVIpyDatatGetAtkRPt
AttrID_AtktGetDeft
AttrID_DeftGetMaxHPt AttrID_MaxHPRRRSRˆ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 GetItemTypeIDtgetHeroCardAddPerRtGetItemManagertGetPackRetrptHerotGetCounttGetAtR-R2RRRSRR trangeRtGetItemt AddUserAttrtDef_IudetHeroEffPresetIDt    Sync_Itemt DelUserAttr(RRNR€tisNotifyRRRt    curAddPert    effAddPert effItemIndexRtcurPackt
hisEffItemtindextpackItemt packCardPertitem((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRØsˆ       '                                  ' cCs[|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!ƒq6Wt"j#|ƒdS(
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«ReR¬RRRSR¯R­R®R2RtGetUserAttrCounttDef_IudetHeroLineuptGetUserAttrByIndexR{tGetLineupValueRR¨R©tGetHeroEffPresetIDListR5RtlenR#RŒtremoveR°R±R²R´R$R³tOpenServerActivitytUpdOSA_HeroTrainBillboard(RRNR*RthisEffCardIndexListtupdEffectiveCardDictR¹R»R€Rt lineupCounttlpIndext lineupValueRRthisEffPresetIDListR&t syncItemDictt cardPerTotalRR¾tsyncItem((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR'sn           
 #    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 GetUserAttrRetDef_IudetHeroLVtDef_IudetHeroStartDef_IudetHeroBreakLVR{tGetHeroStarMaxt GetInitAddPert GetLVAddPertmaxtGetBreakLVAddPert GetStarAddPertmin(
R€Rt heroIpyDatatqualitytqualityIpyDatatheroLVtstartbreakLVtstarMaxtaddPer((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR©rs"   !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ÓtGetIpyGameDataListReRzRÄRªR«R¬R¯R­R®R2R¿RÀRÁR{RÂRctGetFuncPresetIDStateRRRSR5t LineupObjMaxR$R°R´R³R‡RŒRR}RR|(RR.therpPresetIpyDataListt presetIDMaxRqt
presetDictt shapeTypeDictRÎR¹R»R€RÊt delValueListRËRÌRRRRR¾RÐ((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRbˆsZ      )     
3   cCs™tjd|jƒƒt|ƒtj|ƒtj|ƒtj    |ƒt
j |ƒt j |ƒtj|ƒtj|ƒtj|ƒtj|ƒdS(NsdoCalcAllAttr...(RRRSR‡R¦tChEquiptCalcRoleEquipAttrR{tCalcHeroAddAttrtPlayerPrestigeSystCalcOfficialRankAttrt PlayerGubaot CalcGubaoAttrt    PlayerHJGt CalcHJGAttrt PlayerHorset CalcHorseAttrt PlayerBeautytCalcBeautyAttrt PlayerMinggetCalcMinggeAttrtGameLogic_DingjungetCalcDingjungeAttr(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRaÂ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}i}|j ƒjtjƒ}xÂ|    jƒD]´\}}|dksù||jƒkr)qùn|j|ƒ}| sù|jƒrQqùn|jƒ}tjd|ƒ}|s{qùn|jƒ}tjd|ƒ}|s¥qùn|jtjƒ}|jtjƒ}|jtjƒ}|jtjƒ}d}|jƒ}|dks|t|ƒkr*|d}n|r=||}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|$ƒ<qW|#| |<d}&|jtj4ƒ}'|'dkso|'t|ƒkr||d}&n|r||'}&ni}(tj5d|&ƒ})|)rjt6j7||&ƒ}*|)j8ƒ}+|)j9ƒ},|)j:ƒ}-x„t;t<t|+ƒt|,ƒƒƒD]^}.|+|.}/t|-ƒ|.kr1|-|.nd}0|,|.|0|*}1|(j=|/dƒ|1|(|/<qWn|(| |<i}2tjd||ƒ}3|3r
|3j>ƒ}4|3j?ƒ}5xZt;t<t|4ƒt|5ƒƒƒD]4}6|4|6}/|5|6}1|2j=|/dƒ|1|2|/<qÏWn|2||<i}7tj@d|ƒ}8|8rxâ|8D]×}9|9jAƒ|krUPn|9j>ƒ}4|9j?ƒ}5xWt;t<t|4ƒt|5ƒƒƒD]4}6|4|6}/|5|6}1|7j=|/dƒ|1|7|/<qW|9jBƒ}:|9jCƒ};|:rø| j%jD|:ƒn|;r9| j%|;7_%q9q9Wn|7||<tjEd    d
ƒ}<i}=tjFd |ƒ}>|>r-xÙ|>D]Î}?|?jGƒ|krtPn|?jHƒ}@tI|<|@ƒ}<|?j>ƒ}4|?j?ƒ}5xWt;t<t|4ƒt|5ƒƒƒD]4}6|4|6}/|5|6}1|=j=|/dƒ|1|=|/<qÉW|?jBƒ}:|:rX| j%jD|:ƒqXqXWn|=||<i}A|jJtjKƒ}B|jJtjLƒ}Cxžt;t<|B|C|<ƒƒD]„}6|jMtjK|6ƒ}D|jMtjL|6ƒ}Etjd |Dƒ}F|FsÈqzn|FjNƒ}/|FjOƒ|E}1|Aj=|/dƒ|1|A|/<qzW|A||<xS|jPƒD]E}G|G| kr8g| |G<n| |G}H||Hkr|HjD|ƒqqW|jQƒ}I|I|
kr‡g|
|I<n|
|I}J||Jkrù|JjD|ƒqùqùWi}Kx#| jƒD]\}G}Htjd |Gƒ}L|LsîqÄn|LjRƒ}MtS}Nx$|MD]}O|O|Hkr    tT}NPq    q    W|Ns3    qÄn|Lj>ƒ}4|Lj?ƒ}5x‹t;t<t|4ƒt|5ƒƒƒD]h}6|4|6}/|5|6}1xK|MD]C}||Kkr­    i|K|<n|K|}P|Pj=|/dƒ|1|P|/<qŽ    Wqm    WqÄWi}Qxð|
jƒD]â\}I}Jtj@d|Iƒ}R|Rs
qð    ngg}4}5t|Jƒ}SxB|RD]:}T|TjUƒ}U|S|Ukr\
Pn|Tj>ƒ}4|Tj?ƒ}5q:
WxWt;t<t|4ƒt|5ƒƒƒD]4}6|4|6}/|5|6}1|Qj=|/dƒ|1|Q|/<qš
Wqð    WtjEdd
ƒ}VtjEddƒ}WtjEddƒ}XtjEddƒ}Y|jVt,jWƒ}Z|jVt,jXƒ}[|jVt,jYƒ}\|jVt,jZƒ}]|jVt,j[ƒ}^|jVt,j\ƒ}_|jVt,j]ƒ}`|jVt,j^ƒ}a|jVt,j_ƒ}b|jVt,j`|ƒ}c|jat,j`|ƒ}d|t,jbkr |jVt,jcƒni}et
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|K|ƒt
j d|Q|ƒt
j d|Z|ƒt
j d|[|ƒt
j d|\|ƒt
j d |]|ƒt
j d!|^|ƒt
j d"|_|ƒt
j d#|`|ƒt
j d$|a|ƒt
j d%|b|ƒt
j d&|c|d|f|ƒt
j d'|e|ƒ|jdƒ}f|fd(:}ft
j d)|f|ƒ|jeƒ}g|jfƒ}ht
j d*|g|hf|ƒd}ix|djƒD]‚\}j}ktgjh|j|kƒ}:tjd+|:ƒ}l|lsiq-ni|ljiƒd,6|gd-6|hd.6}mtjjkd/|Y|md0tSƒ}n|i|n7}iq-W|drÖt
j d1|i|df|ƒntjd2|hƒ}od}p|p|i7}px    | jƒD]    \}}#|jl|ƒ} | s,qni| _$d| _&| j=|iƒ}(|j=|iƒ}2|j=|iƒ}A|j=|iƒ}7|j=|iƒ}=|Kj=|iƒ}qi}ri}sxt,jmD]…}/t,jnj=|/dƒ}t|Zj=|/dƒ}u|[j=|/dƒ}vd}w|/t,jokr|f}wn|\j=|/dƒ}x|trK|\j=|tdƒd(nd}y|]j=|/dƒ}z|tr|]j=|tdƒd(nd}{|^j=|/dƒ}||tr³|^j=|tdƒd(nd}}|_j=|/dƒ}~|trç|_j=|tdƒd(nd}|`j=|/dƒ}€|tr|`j=|tdƒd(nd}|aj=|/dƒ}‚|trO|aj=|tdƒd(nd}ƒ|bj=|/dƒ}„|trƒ|bj=|tdƒd(nd}…|cj=|/dƒ}†|tr·|cj=|tdƒd(nd}‡|ej=|/dƒ}ˆ|trë|ej=|tdƒd(nd}‰|#j=|/dƒd}Š}‹d
}Œ|/t,jpkrKt,jp|/}|#j=|d3ƒ}Œ|Œd(:}Œn|Qj=|/dƒd}Ž}|qj=|/dƒd}}‘|(j=|/dƒd}’}“|2j=|/dƒd}”}•|Aj=|/dƒd}–}—|7j=|/dƒd}˜}™|=j=|/dƒd}š}›|tr³|#j=|tdƒd(}‹|Qj=|tdƒd(}|qj=|tdƒd(}‘|(j=|tdƒd(}“|2j=|tdƒd(}•|Aj=|tdƒd(}—|7j=|tdƒd(}™|=j=|tdƒd(}›ni&|ud46|vd56||d66|}d76|wd86|~d96|d:6|€d;6|d<6|‚d=6|ƒd>6|„d?6|…d@6|xdA6|ydB6|zdC6|{dD6|ˆdE6|‰dF6|†dG6|‡dH6|ŠdI6|‹dJ6|ŒdK6|”dL6|•dM6|’dN6|“dO6|ŽdP6|dQ6|dR6|‘dS6|–dT6|—dU6|˜dV6|™dW6|šdX6|›dY6}œ|/t,jokrötjjkdZ|V|œd0tTd[dƒ}1n!tjjkd\|W|œd0tTd[dƒ}1tqr—|1dkr—i}xI|œjƒD];\}$}%|% s<|$dKkrm|%d
krmq<n|%||$<q<Wt
jrd]||/|1|ƒntjd^|/ƒ}ž|žr»|žjsƒnd_|/}Ÿd`|Ÿ} d}¡|1rtt|oda| ƒrtu|oda| ƒƒ}¡n|1|s|Ÿ<|¡|s| <|1rÀ|1| j$|/<|1|rdb|/|Ÿf<qÀqÀWtjjkdc|X|sd0tSƒ}¢t
j dd||¢| j%f|ƒi}£x†| j%D]{}:tjd+|:ƒ}l|ls¸q”n|ljvƒ}j|j|£krÝ|l|£|j<q”|£|j}¤|¤jBƒ}¥|¥|:krq”n|l|£|j<q”Wd}¦g| _%xv|£jwƒD]h}l|ljBƒ}:| j%jD|:ƒi|ljiƒd,6|gd-6|hd.6}mtjjkd/|Y|md0tSƒ}n|¦|n7}¦q/Wt
j de|¦| j%f|ƒ|¢|¦}§|¦| _x|§| _&|p|§7}pt
j df||§|¢|¦|r| j%f|ƒqW|p|_&t
j dg||p|f|ƒ|sR|tjy|tjzƒkrVdhSt{j|||pƒt}j~|ƒ}¨|¨j}©|©r«|©j€ƒr«|jrÚtT|_t
j di|ƒ|©j‚t,jƒkr¨t}j„|tSƒq¨q»t
j dj|ƒt,j…d
}ª}«|©j†|ªƒj‡|«ƒ}¬tˆj‰ƒ}­xš|¬jŠƒjƒD]s\}}®|­j‹|®ƒ}¯|¯sXq1n|¯jŒƒt,jkrsq1n|j|ƒ} | j$r1|¯jŽ| j$| j%ƒq1q1Wnt
j dk|ƒdhS(ls° Ë¢ÐÂ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 HeroSkinAttrt HeroQualityLVt    HeroBreaktHeroStarTalentit    HeroAwaket
HeroTalentt
HeroFettertHeroLineupHalotHeroAttrFormulaiiis    ¹ú¼ÒÎ佫ͳ¼Æ=%ss    î¿°íÎ佫ͳ¼Æ=%ss    Î佫×ÔÉíÊôÐÔ=%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
fatesValuetfatesPert    skinValuetskinPertdingjungeValuet dingjungePert minggeValuet    minggePert heroSelfValuet heroSelfPert
inheritPert heroLVValuet    heroLVPert heroSkinValuet heroSkinPertlineupHaloValuet 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,RcRpReRztFuncPreset_MinggeRORRRRSR7RªR«R¬RŒR­R®R2R¨RÓRÔRÕRÖR×RÙtDef_IudetHeroAwakeLVtDef_IudetHeroSkint GetSkinIDListRÄR:RRRRRR    R
tGetNormalSkillIDtGetAngerSkillIDtextendtupdatetGetAtkInheritPerRPtAttrID_AtkInheritPertGetDefInheritPertAttrID_DefInheritPertGetHPInheritPertAttrID_HPInheritPertGetBatAttrDictRktDef_IudetHeroSkinAttrtGetIpyGameDataNotLogR{tGetHeroSkinStartGetWearAttrIDListtGetWearAttrValueListtGetWearAttrPerStarAddListR¯RàRt GetAttrIDListtGetAttrValueListRêt
GetBreakLVt
GetSkillIDtGetSkillIDExListR5t
GetFuncCfgtGetIpyGameDataListNotLogt
GetAwakeLVtGetUnlockTalentSlotRÝR¿tDef_IudetHeroTalentIDtDef_IudetHeroTalentIDLVRÁt    GetAttrIDt GetAttrValuetGetFetterIDListt
GetCountryt GetHeroIDListRRtGetNeedHeroCountR]R¢tDef_CalcAttr_MainEquiptDef_CalcAttr_HeroFatestDef_CalcAttr_HeroSkintDef_CalcAttr_RealmtDef_CalcAttr_GubaotDef_CalcAttr_HJGtDef_CalcAttr_HorsetDef_CalcAttr_BeautytDef_CalcAttr_MinggeR\tDef_FBMapID_DingjungetDef_CalcAttr_DingjungeR'R™tGetOfficialRankt SkillCommontGetSkillIDBySkillTypeIDt GetFightPowertFormulaControltEvalR;tCalcBattleAttrIDListt AttrPerDicttBaseAttrIDListtAttrInheritPerDictt g_calcDetailt
DebugLogExt GetParameterR§tgetattrtGetSkillTypeIDR$R RdRfRšt SetFightPowerRFtGetMainFightMgrRIt    isInFightRtmapIDtDef_FBMapID_Maint__doMainLevelWavet Def_FactionAt getBatFactiont getBatlineupt    BattleObjt GetBatObjMgrtgetPosObjIDDictt    getBatObjt GetBatObjTypetBatObjType_BatHerotUpdInitBatAttr(°RR.RsR*R+R,Rt
mgPresetIDRNRtcountryHeroInfotfetterHeroInfotheroSelfAttrInfotheroSkinAttrInfotheroLVAttrInfotheroStarTalentInfotheroBreakAttrInfotheroAwakeTalentInfoR¹RRR€RRáRâRãRäRætawakeLVt    skinIndexRt
skinIDListR9t normalSkillIDt angerSkillIDt selfAttrDictRmtvt
attrSkinIDt attrSkinIndextheroSkinAttrDictt skinIpyDatatskinStartwearAttrIDListtwearAttrValueListtwearAttrPerStarAddListtitattrIDtattrValuePerStart    attrValuetheroLVAttrDictt heroLVIpyDatat
attrIDListt attrValueListtaIndext breakAttrDicttbreakIpyDataListt breakIpyDatatskillIDt skillIDExListt maxUnlockSlottawakeTalentAttrDicttawakeIpyDataListt awakeIpyDatatunlockTalentSlottstarTalentAttrDicttidCounttlvCountttalentIDttalentLVt    stIpyDatatfetterIDtfetterHeroIDListtcountrytcountryHeroIDListtheroFetterAttrInfot fetterIpyDatatneedHeroIDListt    canFettert
needHeroIDtheroFetterAttrDicttlineupHaloAttrInfothaloIpyDataListtcountryHeroCntt haloIpyDatat needHeroCountR9R;R=RR¥t equipAttrDictt fatesAttrDictt skinAttrDictt realmAttrDictt gubaoAttrDictt hjgAttrDictt horseAttrDicttbeautyAttrDicttminggeAttrDictt mgSkillLVDicttdingjungeAttrDictR%RRtmgSkillFightPowert skillTypeIDtskillLVt    skillDatat    paramDictt sFightPowertfpRatioIpyDatatlineupFightPowertfetterAttrDictt logAttrDicttfightPowerParamDictt    attrPerIDRRRR R!R"R#RRRRRRRRRRR&R'R$R%R(R)R*tattrInheritPerIDR/R0R1R2R-R.R+R,R3R4R5R6R7R8t 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             
                                   
     (
"!
  (
 
!
   (
 
 
    (
 
 
 
 
 
      (
 
 
&      (
 
"' 
  !
            """""""""  &**#$!
 
 
     
       !
        
    $    !                  (((((()R‡RFR‘RpReRcRšRÓRsRõRRÆRÿRýRûR÷R{RùRRRPRòRŠRyRRR)RAR„R”RˆR•R–R—R¦RRRR©RbRaR@(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt<module>sN                      *FÉ7                             O    K        :