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
C!wic@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
PresetHerocBs_eZdZdd„Zded„Zd„Zd„Zd„Zd„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 ||_dS(N(R(RteffectiveCardDict((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetEffectiveCardDictascCs2d}x%|jjƒD]}||d7}qW|S(Ni(Rtvalues(Rt effCardAddPerteffInfo((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetEffCardAddPerbs( R R t__doc__RRRRRRR 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.pyRks                                cCs|j S(N(R0(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytIsEmptywscCs |jjƒS(N(R0tkeys(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetPosNumListyscCsRx9|jjƒD](}||jkr|jj|ƒqqWi|_d|_dS(Ni(R0R#R/tappendR
(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,R0R/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,R0R2R9RRR(RRR8R((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 RR1R3R6R9R:R;RR>R<(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR(hs                          
     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(RGt    turnFightt    exitFight(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnClear¿scCs||_||jj_dS(N(RRGRH(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(RCR(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,tChConfigtExclusiveBatAttrMapIDListRDR(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(RBR(Rt    calcIndextpresetIDtcalcKey((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetCalcSpecInfoêscCs+|r||fn|}|jj|iƒS(N(RAR(RRXRYRZ((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetCalcAttríscCsE|r||fn|}||j|<|dkrA||j|<ndS(N(RAR,RB(RRXtattrDictt specEffInfoRYRZ((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(RRQRRR)RARBRCRDt doCalcAllAttrtdoReloadLineupt PlayerPresettGetBatPresetIDt ShareDefinetBatPreset_MainRW(RRtmainBatPresetID((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt ReCalcAllAttrùs                    
  cCs |jjƒS(N(RCR2(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(RDR2t
isinstancetintR4(Rt presetIDListtk((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetBatPresetIDList s
cCs|jS(N(RD(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(
RRQRRR)RDR#R*RbtGetFuncPresetIDR>(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(RQRRR)RWRR>(RR*Rr((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(RQRRR)RDR#R+R;tDoRefreshRoleAttr(RR=t isAllLineupR+RU((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( RRbRcRdReRRDR#R+R*R<R(RRvR+RR*t    isRefreshRU((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRu9s              cCs^|j}|j|ƒ}|j||||ƒ|jtj|ƒ|sZtj||ƒndS(sÙ±ä¸üÎ佫ԤÉèÕóÈÝʱ¸üÐÂ
        @param heroPresetID: Î佫ԤÉèID
        @param heroItemDict: Î佫±³°üË÷ÒýÐÅÏ¢  {itemIndex:posNum, ...}
        @param shapeType: ÕóÐÍ
        @param refreshForce: ÊÇ·ñÇ¿ÖÆË¢ÊôÐÔ
        N(RRNRRsRdtFuncPreset_Herot
PlayerHerotSync_HeroPreset(RRRRRRRM((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytUpdHeroItemPresetSs    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( RtGetItemPlaceIndexRCR#R&tcheckUpdEffHeroCardRRQRRR)RsRdRy(RtheroItemRRRMteffCardAddPerBefteffCardAddPerAftR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnHeroItemUpatecs                N(R R RRJRKRLRNRRWR[R\R,R_RgRhRmRnRsRtRRwRuR|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.pyR|s        cCs[d}|jƒ}||jkr1|j|}nt|ƒ}||j|<|j|ƒ|S(N(R,t GetPlayerIDR„R@RK(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…R7R,R„R@RK(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„RKR,RjttimeR…(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,(RjR‰R…titemsR7R,R„RJ(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ƒys
                  
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 PlayerControltGetPlayerLVIpyDatatGetAtkROt
AttrID_AtktGetDeft
AttrID_DeftGetMaxHPt AttrID_MaxHPRQRRR‡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 GetItemTypeIDtgetHeroCardAddPerRtGetItemManagertGetPackRdtrptHerotGetCounttGetAtR,R1RQRRRR trangeR~tGetItemt AddUserAttrtDef_IudetHeroEffPresetIDt    Sync_Itemt DelUserAttr(RRMRtisNotifyRRRt    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ªRdR«RQRRR®R¬R­R1RtGetUserAttrCounttDef_IudetHeroLineuptGetUserAttrByIndexRztGetLineupValueRR§R¨tGetHeroEffPresetIDListR4RtlenR"R‹tremoveR¯R°R±R³R#R²(RRMR)RthisEffCardIndexListtupdEffectiveCardDictR¸RºRRt 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 GetUserAttrRdtDef_IudetHeroLVtDef_IudetHeroStartDef_IudetHeroBreakLVRztGetHeroStarMaxt GetInitAddPert GetLVAddPertmaxtGetBreakLVAddPert GetStarAddPertmin(
RRt 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ÐtGetIpyGameDataListRdRyRÃR©RªR«R®R¬R­R1R¾R¿RÀRzRÁRbtGetFuncPresetIDStateRQRRR4t LineupObjMaxR#R¯R³R²R†R‹RR|RR{(RR-therpPresetIpyDataListt presetIDMaxRpt
presetDictt shapeTypeDictRËR¸RºRRÇt delValueListRÈRÉRRRRR½RÍ((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRaˆsZ      )     
3   cCs™tjd|jƒƒt|ƒtj|ƒtj|ƒtj    |ƒt
j |ƒt j |ƒtj|ƒtj|ƒtj|ƒtj|ƒdS(NsdoCalcAllAttr...(RQRRR†R¥tChEquiptCalcRoleEquipAttrRztCalcHeroAddAttrtPlayerPrestigeSystCalcOfficialRankAttrt 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+RbRoRdRytFuncPreset_MinggeRNRRQRRR6R©RªR«R‹R¬R­R1R§RÐRÑRÒRÓRÔRÖtDef_IudetHeroAwakeLVtDef_IudetHeroSkint GetSkinIDListRÃR9RRRRRR    R
tGetNormalSkillIDtGetAngerSkillIDtextendtupdatetGetAtkInheritPerROtAttrID_AtkInheritPertGetDefInheritPertAttrID_DefInheritPertGetHPInheritPertAttrID_HPInheritPertGetBatAttrDictRjt GetAttrIDListtGetAttrValueListR®RÝRRçt
GetBreakLVt
GetSkillIDtGetSkillIDExListR4t
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_MinggeR[tDef_FBMapID_DingjungetDef_CalcAttr_DingjungeR&R˜tGetOfficialRankt SkillCommontGetSkillIDBySkillTypeIDt GetFightPowertFormulaControltEvalR:tCalcBattleAttrIDListt AttrPerDicttBaseAttrIDListtAttrInheritPerDictt g_calcDetailt
DebugLogExt GetParameterR¦tgetattrtGetSkillTypeIDR#R RcReR™t SetFightPowerREtGetMainFightMgrRHt    isInFightRtmapIDtDef_FBMapID_Maint__doMainLevelWavet Def_FactionAt getBatFactiont getBatlineupt    BattleObjt GetBatObjMgrtgetPosObjIDDictt    getBatObjt GetBatObjTypetBatObjType_BatHerotUpdInitBatAttrt PlayerFamilytRefreshFamilyMember( RR-RrR)R*R+Rt
mgPresetIDRMRtcountryHeroInfotfetterHeroInfotheroSelfAttrInfotheroLVAttrInfotheroStarTalentInfotheroBreakAttrInfotheroAwakeTalentInfoR¸RRRRRÞRßRàRáRãtawakeLVt    skinIndexRt
skinIDListR8t normalSkillIDt angerSkillIDt selfAttrDictRltvtheroLVAttrDictt heroLVIpyDatat
attrIDListt attrValueListtaIndextattrIDt    attrValuet breakAttrDicttbreakIpyDataListt breakIpyDatatskillIDt skillIDExListt maxUnlockSlottawakeTalentAttrDicttawakeIpyDataListt awakeIpyDatatunlockTalentSlottstarTalentAttrDicttidCounttlvCountttalentIDttalentLVt    stIpyDatatfetterIDtfetterHeroIDListtcountrytcountryHeroIDListtheroFetterAttrInfot fetterIpyDatatneedHeroIDListt    canFettert
needHeroIDtheroFetterAttrDicttlineupHaloAttrInfothaloIpyDataListtcountryHeroCntt haloIpyDatat needHeroCountR1R3R5R R¤t equipAttrDictt fatesAttrDictt realmAttrDictt gubaoAttrDictt hjgAttrDictt horseAttrDicttbeautyAttrDicttminggeAttrDictt mgSkillLVDicttdingjungeAttrDictR$R
R tmgSkillFightPowert skillTypeIDtskillLVt    skillDatat    paramDictt sFightPowertfpRatioIpyDatatlineupFightPowertfetterAttrDictt logAttrDicttfightPowerParamDictt    attrPerIDRRRRRRRRRRRRRRRR R!RRR"R#R$tattrInheritPerIDR'R(R)R*R%R&R+R,R-R.R/R0t 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æ             
                                   
  (
 
!
   (
 
 
    (
 
 
 
 
 
      (
 
 
&      (
 
"' 
  !
            """"""""  &*#$!
 
 
     
       !
        
    $    !                   (((((()RxRERRaRdRbR™RÐRdRòRþRüRúRRøRôRzRöRQRORïR‰RjRRR(R@RƒR“R‡R”R•R–R¥RR~RR¨RaR`R?(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt<module>sN                      )FË7                             O    J        :