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
xí=jc@sìddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZdZddd„ƒYZddd„ƒYZddd„ƒYZd    dd
„ƒYZd dd „ƒYZd „Zd„Zd„Zd„Z d„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__1s
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.pyR5s                                (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.pyRFs                     icCs5||_||_|s$t|_nt||ƒdS(N(RRtTrueRtreloadEffHeroCard(Rt    curPlayerRRtisReload((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetHeroItemPresetNs           cCs t|_dS(N(RR(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnSwitchVs    cCs ||jkS(N(R(RR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt IsHeroItemInZscCs|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.pytGetEffectiveCardDictbscCs ||_dS(N(R(RteffectiveCardDict((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetEffectiveCardDictcscCs2d}x%|jjƒD]}||d7}qW|S(Ni(Rtvalues(Rt effCardAddPerteffInfo((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetEffCardAddPerds( 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.pyRms                                cCs|j S(N(R1(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytIsEmptyyscCs |jjƒS(N(R1tkeys(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetPosNumList{scCsRx9|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)js                          
     t OnlinePlayercBsøeZd„Zd„Zd„Zd„Zd„Zd„Zd„Ze    dd„Z
dd    „Z dd
„Z dd „Z ddd „Zd „Zd„Zd„Zd„Zd„Zd„Zeedd„Zedd„Zded„Zd„ZRS(cCsU||_d|_i|_i|_i|_i|_i|_tj    |ƒ|_
dS(N( R*R-Rt _calcAttrDictt_calcSpecEffDictt_heroPresetDictt_presetLineupDictt_OnlinePlayer__roleBatAttrDictt
TurnAttackt    MainFightt    mainFight(RR*((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR³s                            cCs|jjjƒdS(N(RIt    turnFightt    exitFight(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnClearÂscCs||_||jj_dS(N(RRIRJ(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|jS(N(RF(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetRoleBatAttrDictÏscCs ||_dS(N(RF(RtroleBatAttrDict((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetRoleBatAttrDictÐ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|}||j|<dS(N(RC(RR_t specEffInfoR^((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetCalcSpecInfoós cCs+|r||fn|}|jj|iƒS(N(RBR(RR]R^R_((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetCalcAttrøscCsE|r||fn|}||j|<|dkrA||j|<ndS(N(RBR-RC(RR]tattrDictRaR^R_((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(RRVRWR*RBRCRDREt doCalcAllAttrtdoReloadLineupt PlayerPresettGetBatPresetIDt ShareDefinetBatPreset_MainR\(RRtmainBatPresetID((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt ReCalcAllAttrs                    
  cCs |jjƒS(N(RDR3(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetHeroPresetIDListscCsCg}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(
RRVRWR*RER$R+RhtGetFuncPresetIDR?(RtfuncPresetTypet funcPresetIDRt presetLineupR+((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytRefreshByFuncPreset s        !cCs7tjd||jƒ|j|tƒ}|jƒdS(Ns&ÇëÇóˢȫ¾ÖÔ¤Éè·½°¸ÊôÐÔ: batPresetID=%s(RVRWR*R\RR?(RR+Rx((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(RVRWR*RER$R,R<tDoRefreshRoleAttr(RR>t isAllLineupR,RZ((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytRefreshRoleAttr2scCs¢|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( RRhRiRjRkRRER$R,R+R=R(RR|R,RR+t    isRefreshRZ((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR{Ds              cCs^|j}|j|ƒ}|j||||ƒ|jtj|ƒ|sZtj||ƒndS(sÙ±ä¸üÎ佫ԤÉèÕóÈÝʱ¸üÐÂ
        @param heroPresetID: Î佫ԤÉèID
        @param heroItemDict: Î佫±³°üË÷ÒýÐÅÏ¢  {itemIndex:posNum, ...}
        @param shapeType: ÕóÐÍ
        @param refreshForce: ÊÇ·ñÇ¿ÖÆË¢ÊôÐÔ
        N(RRSRRyRjtFuncPreset_Herot
PlayerHerotSync_HeroPreset(RRRRRRRR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytUpdHeroItemPreset^s    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'tcheckUpdEffHeroCardRRVRWR*RyRjR(RtheroItemRRRRteffCardAddPerBefteffCardAddPerAftR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnHeroItemUpatens               N(R R RRLRMRNRORQRSRR\R`RbRcR-ReRmRnRsRtRyRzRR}R{R‚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ŠRARM(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ŠRARM(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ŠRMR-RpttimeR‹(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,(RpRR‹titemsR8R-RŠRL(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‰‚s
                  
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 PlayerControltGetPlayerLVIpyDatatGetAtkRTt
AttrID_AtktGetDeft
AttrID_DeftGetMaxHPt AttrID_MaxHPRVRWRRetDef_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 GetItemTypeIDtgetHeroCardAddPerRtGetItemManagertGetPackRjtrptHerotGetCounttGetAtR-R2RVRWRR trangeR„tGetItemt AddUserAttrtDef_IudetHeroEffPresetIDt    Sync_Itemt DelUserAttr(RRRR…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°RjR±RVRWR´R²R³R2RtGetUserAttrCounttDef_IudetHeroLineuptGetUserAttrByIndexR€tGetLineupValueRR­R®tGetHeroEffPresetIDListR5RtlenR#R‘tremoveRµR¶R·R¹R$R¸tOpenServerActivitytUpdOSA_HeroTrainBillboard(RRRR*RthisEffCardIndexListtupdEffectiveCardDictR¾RÀR…Rt lineupCounttlpIndext lineupValueRRthisEffPresetIDListR&t syncItemDictt cardPerTotalRRÃtsyncItem((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR1sn           
 #    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 GetUserAttrRjtDef_IudetHeroLVtDef_IudetHeroStartDef_IudetHeroBreakLVR€tGetHeroStarMaxt GetInitAddPert GetLVAddPertmaxtGetBreakLVAddPert GetStarAddPertmin(
R…Rt heroIpyDatatqualitytqualityIpyDatatheroLVtstartbreakLVtstarMaxtaddPer((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR®|s"   !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ØtGetIpyGameDataListRjRRÉR¯R°R±R´R²R³R2RÄRÅRÆR€RÇRhtGetFuncPresetIDStateRVRWR5t LineupObjMaxR$RµR¹R¸RŒR‘RR‚RR(RR.therpPresetIpyDataListt presetIDMaxRvt
presetDictt shapeTypeDictRÓR¾RÀR…RÏt delValueListRÐRÑRRRRRÃRÕ((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRg’sZ      )     
3   cCs¦tjd|jƒƒt|ƒtj|ƒtj|ƒtj    |ƒt
j |ƒt j |ƒtj|ƒtj|ƒtj|ƒtj|ƒtj|ƒdS(NsdoCalcAllAttr...(RVRWRŒR«tChEquiptCalcRoleEquipAttrR€tCalcHeroAddAttrtPlayerPrestigeSystCalcOfficialRankAttrt PlayerGubaot CalcGubaoAttrt    PlayerHJGt CalcHJGAttrt PlayerHorset CalcHorseAttrt PlayerBeautytCalcBeautyAttrt PlayerMinggetCalcMinggeAttrt PlayerBeastt CalcBeastAttrtGameLogic_DingjungetCalcDingjungeAttr(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRfÌs
          cÇ Cs1|jƒ}|j}|j}tj||tjƒ}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ƒkrAqn|j|ƒ}| s|jƒriqn|jƒ}tjd|ƒ}|s“qn|jƒ}tjd|ƒ}|s½qn|jtjƒ}|jtjƒ}|jtjƒ}|jtjƒ}|jtjƒ}d} |jƒ}!|dksG|t |!ƒkrT|!d} n|!rg|!|} n|j!|ƒ}"||"_"||"_#||"_$| |"_%i|"_&g|"_'d|"_(|j)ƒ}#|j*ƒ}$|"j'j+|#|$gƒi}%|%j,i|j-ƒ||j.ƒt/j06|j1ƒ||j2ƒt/j36|j4ƒ||j5ƒt/j66ƒx0|j7ƒjƒD]\}&}'|'|%t8|&ƒ<qcW|%| |<d}(|jtj9ƒ})|)dksÃ|)t |!ƒkrÐ|!d}(n|!rã|!|)}(ni}*tj:d|(ƒ}+|+r¾t;j<||(ƒ},|+j=ƒ}-|+j>ƒ}.|+j?ƒ}/x„t@tAt |-ƒt |.ƒƒƒD]^}0|-|0}1t |/ƒ|0kr…|/|0nd}2|.|0|2|,}3|*jB|1dƒ|3|*|1<qYWn|*||<i}4tjd||ƒ}5|5r^|5jCƒ}6|5jDƒ}7xZt@tAt |6ƒt |7ƒƒƒD]4}8|6|8}1|7|8}3|4jB|1dƒ|3|4|1<q#Wn|4||<i}9tjEd|ƒ}:|:rkxâ|:D]×};|;jFƒ|kr©Pn|;jCƒ}6|;jDƒ}7xWt@tAt |6ƒt |7ƒƒƒD]4}8|6|8}1|7|8}3|9jB|1dƒ|3|9|1<qãW|;jGƒ}<|;jHƒ}=|<rL|"j'jI|<ƒn|=r|"j'|=7_'qqWn|9||<tjJd    d
ƒ}>i}?tjKd |ƒ}@|@rxÙ|@D]Î}A|AjLƒ|krÈPn|AjMƒ}BtN|>|Bƒ}>|AjCƒ}6|AjDƒ}7xWt@tAt |6ƒt |7ƒƒƒD]4}8|6|8}1|7|8}3|?jB|1dƒ|3|?|1<qW|AjGƒ}<|<r¬|"j'jI|<ƒq¬q¬Wn|?||<i}C|jOtjPƒ}D|jOtjQƒ}Exžt@tA|D|E|>ƒƒD]„}8|jRtjP|8ƒ}F|jRtjQ|8ƒ}Gtjd |Fƒ}H|HsqÎn|HjSƒ}1|HjTƒ|G}3|CjB|1dƒ|3|C|1<qÎW|C||<xS|jUƒD]E}I|I| krŒg| |I<n| |I}J||Jkrm|JjI|ƒqmqmW|jVƒ}K|K| krÛg| |K<n| |K}L||Lkr|LjI|ƒqqWi}Mx#| jƒD]\}I}Jtjd |Iƒ}N|NsB    q    n|NjWƒ}OtX}Px$|OD]}Q|Q|Jkr[    tY}PPq[    q[    W|Ps‡    q    n|NjCƒ}6|NjDƒ}7x‹t@tAt |6ƒt |7ƒƒƒD]h}8|6|8}1|7|8}3xK|OD]C}||Mkr
i|M|<n|M|}R|RjB|1dƒ|3|R|1<qâ    WqÁ    Wq    Wi}Sxð| jƒD]â\}K}LtjEd|Kƒ}T|Tsn
qD
ngg}6}7t |Lƒ}UxB|TD]:}V|VjZƒ}W|U|Wkr°
Pn|VjCƒ}6|VjDƒ}7qŽ
WxWt@tAt |6ƒt |7ƒƒƒD]4}8|6|8}1|7|8}3|SjB|1dƒ|3|S|1<qî
WqD
Wtj[ƒ}Xx t@|Xj\ƒƒD]ù}Y|Xj]|Yƒ}V|Vj^ƒ}Z|Zsv qI nd}[|VjZƒ}Wx3| j_ƒD]%}Lt |Lƒ|Wkr• |[d
7}[q• q• W|[|ZkrÐ qI n|VjCƒ}6|VjDƒ}7xWt@tAt |6ƒt |7ƒƒƒD]4}8|6|8}1|7|8}3|SjB|1dƒ|3|S|1<q
WqI WtjJdd
ƒ}\tjJddƒ}]tjJddƒ}^tjJddƒ}_|j`t/jaƒ}`|j`t/jbƒ}a|j`t/jcƒ}b|j`t/jdƒ}c|j`t/jeƒ}d|j`t/jfƒ}e|j`t/jgƒ}f|j`t/jhƒ}g|j`t/jiƒ}h|j`t/jj|ƒ}i|jkt/jj|ƒ}j|j`t/jl|ƒ}k|jkt/jl|ƒ}l|t/jmkr¥ |j`t/jnƒni}mt 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|M|ƒt j d|S|ƒt j d|`|ƒt j d|a|ƒt j d|b|ƒt j d |c|ƒt j d!|d|ƒt j d"|e|ƒt j d#|f|ƒt j d$|g|ƒt j d%|h|ƒt j d&|k|lf|ƒt j d'|i|j|f|ƒt j d(|m|ƒ|    joƒ}n|nd):}nt j d*|n|ƒ|ljBd+dƒ}o|od):}ot j d,|o|ƒ|jpƒ}p|jqƒ}qt j d-|p|qf|ƒtjd.|qƒ}rg}sxB|jjƒD]4\}t}utrjs|t|uƒ}<|<r#|sjI|<ƒq#q#W|ljBd/iƒ}vx<|vj_ƒD].}w|wjBd0dƒ}<|<rz|sjI|<ƒqzqzWd}xxr|sD]j}<tjd1|<ƒ}y|ysÝq¹ni|yjtƒd26|pd36|qd46}ztujvd5|_|zd6tXƒ}{|x|{7}xq¹Wt j d7|x|sf|ƒd}||||x7}|i| d<x | jƒD] \}}%i}}|r°|jw|ƒ}"|"s›qhni|"_&d|"_(n|jB|iƒ}*|jB|iƒ}4|jB|iƒ}C|jB|iƒ}9|jB|iƒ}?|MjB|iƒ}~i}i}€x»t/jxD]°}1t/jyjB|1dƒ}|`jB|1dƒ}‚|ajB|1dƒ}ƒd}„|1t/jzkr“|n|o}„n|bjB|1dƒ}…|rÁ|bjB|dƒd)nd}†|cjB|1dƒ}‡|rõ|cjB|dƒd)nd}ˆ|djB|1dƒ}‰|r)|djB|dƒd)nd}Š|ejB|1dƒ}‹|r]|ejB|dƒd)nd}Œ|fjB|1dƒ}|r‘|fjB|dƒd)nd}Ž|gjB|1dƒ}|rÅ|gjB|dƒd)nd}|hjB|1dƒ}‘|rù|hjB|dƒd)nd}’|kjB|1dƒ}“|r-|kjB|dƒd)nd}”|ijB|1dƒ}•|ra|ijB|dƒd)nd}–|mjB|1dƒ}—|r•|mjB|dƒd)nd}˜|%jB|1dƒd}™}šd
}›|1t/j{krõt/j{|1}œ|%jB|œd8ƒ}›|›d):}›n|SjB|1dƒd}}ž|~jB|1dƒd}Ÿ} |*jB|1dƒd}¡}¢|4jB|1dƒd}£}¤|CjB|1dƒd}¥}¦|9jB|1dƒd}§}¨|?jB|1dƒd}©}ª|r]|%jB|dƒd)}š|SjB|dƒd)}ž|~jB|dƒd)} |*jB|dƒd)}¢|4jB|dƒd)}¤|CjB|dƒd)}¦|9jB|dƒd)}¨|?jB|dƒd)}ªni(|‚d96|ƒd:6|‰d;6|Šd<6|„d=6|‹d>6|Œd?6|d@6|ŽdA6|dB6|dC6|‘dD6|’dE6|…dF6|†dG6|‡dH6|ˆdI6|—dJ6|˜dK6|•dL6|–dM6|™dN6|šdO6|›dP6|£dQ6|¤dR6|¡dS6|¢dT6|“dU6|”dV6|dW6|ždX6|ŸdY6| dZ6|¥d[6|¦d\6|§d]6|¨d^6|©d_6|ªd`6}«|1t/jzkr®tujvda|\|«d6tYdbdƒ}3n!tujvdc|]|«d6tYdbdƒ}3t|rO|3dkrOi}¬xI|«jƒD];\}&}'|' sô|&dPkr%|'d
kr%qôn|'|¬|&<qôWt j}dd||1|3|¬ƒn|1t/j~krÆxt/jD]W}­|}jB|­dƒ}®|®|3}¯|¯|}|­<t|rh|3dkrht j}de|­|®|¯ƒqhqhWq2|1t/j€kr>x
t/jD]X}°|}jB|°dƒ}±|±|3}²|²
|}|°<t|rß|3dkrßt j}df|°|±|²ƒqßqßWq2|}jB|1dƒ|3|}|1<tjdg|1ƒ}³|³r||³j‚ƒndh|1}´di|´}µd}¶|3rÈtƒ|rdj|µƒrÈt„|rdj|µƒƒ}¶n|´||1<|µ|¶g|€|1<q2Wg}·i}¸xŠ|}jƒD]|\}1}3|1|krqÿn||1}´|3s=|}j…|1ƒn|·jIdk|1|´|3fƒ|€|1\}µ}¶|3|¸|´<|¶|¸|µ<qÿW|dkr²t j dl|·|ƒ|j†|}ƒqhn|}|"_&tujvdm|^|¸d6tXƒ}¹t j dn||¹|"j'f|ƒi}ºx†|"j'D]{}<tjd1|<ƒ}y|ys*qn|yj‡ƒ}t|t|ºkrO|y|º|t<q|º|t}»|»jGƒ}¼|¼|<krwqn|y|º|t<qWd}½g|"_'xv|ºj_ƒD]h}y|yjGƒ}<|"j'jI|<ƒi|yjtƒd26|pd36|qd46}ztujvd5|_|zd6tXƒ}{|½|{7}½q¡Wt j do|½|"j'f|ƒ|¹|½}¾|½|"_ˆ|¾|"_(|||¾7}|t j dp||¾|¹|½|·|"j'f|ƒqhW|||_(t j dq||||f|ƒ|sÄ|tj‰|tjŠƒkrÈdrSt‹jŒ|||ƒtjŽ|ƒ}¿|¿j}À|Àr|Àjƒr|    j‘rLtY|    _‘t j ds|ƒ|Àj’t/j“krtj”|tXƒqq-t j dt|ƒt/j•d
}Á}Â|Àj–|Áƒj—|ƒ}Ãt˜j™ƒ}Äxš|ÃjšƒjƒD]s\}}Å|Äj›|Ń}Æ|ÆsÊq£n|Æjœƒt/jkråq£n|j!|ƒ}"|"j&r£|Æjž|"j&|"j'ƒq£q£Wnt j du|ƒdrS(vs° Ë¢ÐÂ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,%ss)    Ö÷¹«Ãü¸ñÊôÐÔ=%s,¼¼ÄÜ:%s,mgPresetID=%ss    ¶¨¾üרÊôÊôÐÔ=%sgˆÃ@s    Ö÷¹«¿¨ÅƼӳÉ=%st AddPerTotals    Ö÷¹«ÉñÊÞ¼Ó³É=%ss    PlayerLV=%s,OfficialLV=%stFightPowerRatiotBeasttSkillIDtSkillt
SkillPowertPlayerLVt
OfficialLVtskillFPFormulattoInts$    ·ÇÎ佫¼¼ÄÜÕ½Á¦=%s,skillIDList=%si'tlvValuet
equipValuet
realmValuetrealmPertcardPert
gubaoValuetgubaoPerthjgValuethjgPert
horseValuethorsePert beautyValuet    beautyPert
fatesValuetfatesPert    skinValuetskinPertdingjungeValuet dingjungePert minggeValuet    minggePert heroSelfValuet heroSelfPert
inheritPert heroLVValuet    heroLVPert heroSkinValuet heroSkinPert
beastValuetbeastPertlineupHaloValuet lineupHaloPert fetterValuet    fetterPertstarTalentValuet starTalentPert breakLVValuet
breakLVPertawakeTalentValuetawakeTalentPertbaseAttrFormulatndigitstotherAttrFormulas'    heroID=%s,attrID=%s,attrValue=%s,%ssG        Õ½¶·ÊôÐÔ¸½¼Óµ½: batAttrID=%s,batAttrValue=%s,updBatAttrValue=%ssP        Õ½¶·¿¹ÐÔ¸½¼Óµ½: batDefAttrID=%s,batDefAttrValue=%s,updBatDefAttrValue=%st
PlayerAttrs%ss%sRatiosGet%ss    %s(%s)=%ss    Ö÷¹«ÊôÐÔ=%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,RhRuRjRtFuncPreset_MinggetFuncPreset_BeastRSRRVRWR7R¯R°R±R‘R²R³R2R­RØRÙRÚRÛRÜRÝRÞtDef_IudetHeroAwakeLVtDef_IudetHeroSkint GetSkinIDListRÉR:RRRRRR    R
tGetNormalSkillIDtGetAngerSkillIDtextendtupdatetGetAtkInheritPertGetAtkInheritPerStarRTtAttrID_AtkInheritPertGetDefInheritPertGetDefInheritPerStartAttrID_DefInheritPertGetHPInheritPertGetHPInheritPerStartAttrID_HPInheritPertGetBatAttrDictRptDef_IudetHeroSkinAttrtGetIpyGameDataNotLogR€tGetHeroSkinStartGetWearAttrIDListtGetWearAttrValueListtGetWearAttrPerStarAddListR´RåRt GetAttrIDListtGetAttrValueListRït
GetBreakLVt
GetSkillIDtGetSkillIDExListR5t
GetFuncCfgtGetIpyGameDataListNotLogt
GetAwakeLVtGetUnlockTalentSlotRâRÄtDef_IudetHeroTalentIDtDef_IudetHeroTalentIDLVRÆt    GetAttrIDt GetAttrValuetGetFetterIDListt
GetCountryt GetHeroIDListRRtGetNeedHeroCounttIPY_DatatGetHeroLineupHaloCounttGetHeroLineupHaloByIndext GetCountrysR$RcR§tDef_CalcAttr_MainEquiptDef_CalcAttr_HeroFatestDef_CalcAttr_HeroSkintDef_CalcAttr_RealmtDef_CalcAttr_GubaotDef_CalcAttr_HJGtDef_CalcAttr_HorsetDef_CalcAttr_BeautytDef_CalcAttr_MinggeR`tDef_CalcAttr_BeasttDef_FBMapID_DingjungetDef_CalcAttr_DingjungeR'RžtGetOfficialRankt SkillCommontGetSkillIDBySkillTypeIDt GetFightPowertFormulaControltEvalR;tCalcBattleAttrIDListt AttrPerDicttBaseAttrIDListtAttrInheritPerDictt g_calcDetailt
DebugLogExtAttrID_BatRatet BatAttrIDListtAttrID_BatRateDeftBatDefAttrIDListt GetParameterR¬tgetattrR8RQtGetSkillTypeIDR RiRkRŸt SetFightPowerRGtGetMainFightMgrRJt    isInFightRtmapIDtDef_FBMapID_Maint__doMainLevelWavet Def_FactionAt getBatFactiont getBatlineupt    BattleObjt GetBatObjMgrtgetPosObjIDDictt    getBatObjt GetBatObjTypetBatObjType_BatHerotUpdInitBatAttr(ÇRR.RxR*R+R,Rt
mgPresetIDt beastPresetIDRRRtcountryHeroInfotfetterHeroInfotheroSelfAttrInfotheroSkinAttrInfotheroLVAttrInfotheroStarTalentInfotheroBreakAttrInfotheroAwakeTalentInfoR¾RRR…RRæRçRèRéRêRëtawakeLVt    skinIndexRt
skinIDListR9t normalSkillIDt angerSkillIDt selfAttrDictRrtvt
attrSkinIDt attrSkinIndextheroSkinAttrDictt skinIpyDatatskinStartwearAttrIDListtwearAttrValueListtwearAttrPerStarAddListtitattrIDtattrValuePerStart    attrValuetheroLVAttrDictt heroLVIpyDatat
attrIDListt attrValueListtaIndext breakAttrDicttbreakIpyDataListt breakIpyDatatskillIDt skillIDExListt maxUnlockSlottawakeTalentAttrDicttawakeIpyDataListt awakeIpyDatatunlockTalentSlottstarTalentAttrDicttidCounttlvCountttalentIDttalentLVt    stIpyDatatfetterIDtfetterHeroIDListtcountrytcountryHeroIDListtheroFetterAttrInfot fetterIpyDatatneedHeroIDListt    canFettert
needHeroIDtheroFetterAttrDicttlineupHaloAttrInfothaloIpyDataListtcountryHeroCntt haloIpyDatat needHeroCountt
ipyDataMgrRÀt needCountryst
countryCntRERGRIRRªt equipAttrDictt fatesAttrDictt skinAttrDictt realmAttrDictt gubaoAttrDictt hjgAttrDictt horseAttrDicttbeautyAttrDicttminggeAttrDictt mgSkillLVDictt beastAttrDictt beastInfoDicttdingjungeAttrDictR%t beastAddPerRRtfpRatioIpyDatat skillIDListt skillTypeIDtskillLVt    beastDictt    beastInfotfuncSkillFightPowert    skillDatat    paramDictt sFightPowertlineupFightPowerRtfetterAttrDictt attrNameDictt attrRatioDictt    attrPerIDRRR!R*R+R,R-RR R"R#R$R%R&R'R(R)R9R:R0R1R.R/R2R3R4tattrInheritPerIDR;R<R=R>R7R8R5R6R?R@RARBRCRDt attrParamDictt calcParamDictt    batAttrIDt batAttrValuetupdBatAttrValuet batDefAttrIDtbatDefAttrValuetupdBatDefAttrValuet attrIpyDatatattrNamet attrRatioNamet
ratioValuet logAttrListtfightPowerParamDictR
tskillTypeIDDictt befSkillDatat
befSkillIDR tfightPowerTotalt mainFightMgrt mainTurnFighttfactiontnumt    batLineupt    batObjMgrtobjIDtbatObj((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR@Üs¨             
                                   '"
     (
"!
  (
 
!
   (
 
 
    (
 
 
 
 
 
      (
 
 
&      (
 
"      (
 
"' 
 
   !
 
      """"""""""  &**#$!
 
 
  
 
 
 
          
       !
        
    $    !                  ((((((*R RGR–R…RjRhRŸRØRˆRúRRËRRRRüRR€RþRVRTR÷RRŽRRR)RAR‰R™RRšR›RœR«RR„RR®RgRfR@(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt<module>sP                       *FÒ7                             O    K        :