hwj35
1 天以前 3681fb5f0cab3a8b6f3c79d1bad43ee4e46c9a6d
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
ƁCjc@søddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZdZddd„ƒYZddd„ƒYZddd„ƒYZd    dd
„ƒYZd dd „ƒYZd „Zd„Zd„Z d„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__2s
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.pyR6s                                (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.pyRGs                     icCs5||_||_|s$t|_nt||ƒdS(N(RRtTrueRtreloadEffHeroCard(Rt    curPlayerRRtisReload((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetHeroItemPresetOs           cCs t|_dS(N(RR(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnSwitchWs    cCs ||jkS(N(R(RR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt IsHeroItemIn[scCs|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.pytGetEffectiveCardDictcscCs ||_dS(N(R(RteffectiveCardDict((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetEffectiveCardDictdscCs2d}x%|jjƒD]}||d7}qW|S(Ni(Rtvalues(Rt effCardAddPerteffInfo((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetEffCardAddPeres( R R t__doc__RRRRRRR R!R#R'(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRAs                         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.pyRns                                cCs|j S(N(R1(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytIsEmptyzscCs |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)ks                          
     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.pytRefreshRoleAttr3scCs¢|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{Es              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.pytOnHeroItemUpateos               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.pyR2sn           
 #    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|ƒtj|ƒdS(NsdoCalcAllAttr...(RVRWRŒR«tChEquiptCalcRoleEquipAttrR€tCalcHeroAddAttrtPlayerPrestigeSystCalcOfficialRankAttrt PlayerGubaot CalcGubaoAttrt    PlayerHJGt CalcHJGAttrt PlayerHorset CalcHorseAttrt PlayerBeautytCalcBeautyAttrt PlayerMinggetCalcMinggeAttrt PlayerBeastt CalcBeastAttrt
PlayerSoult CalcSoulAttrtGameLogic_DingjungetCalcDingjungeAttr(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRfÍs
           cÊ Cs‡|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|j`t/jk|ƒ}j|jlt/jk|ƒ}k|j`t/jm|ƒ}l|jlt/jm|ƒ}m|t/jnkr· |j`t/joƒni}nt 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&|i|ƒt j d'|l|mf|ƒt j d(|j|k|f|ƒt j d)|n|ƒ|    jpƒ}o|od*:}ot j d+|o|ƒ|mjBd,dƒ}p|pd*:}pt j d-|p|ƒ|jqƒ}q|jrƒ}rt j d.|q|rf|ƒtjd/|rƒ}sg}txB|kjƒD]4\}u}vtsjt|u|vƒ}<|<rI|tjI|<ƒqIqIW|mjBd0iƒ}wx*|wj_ƒD]}x|t|xjBd1gƒ7}tq Wd}yxr|tD]j}<tjd1|<ƒ}z|zsñqÍni|zjuƒd26|qd36|rd46}{tvjwd5|_|{d6tXƒ}||y||7}yqÍWt j d7|y|tf|ƒd}}|}|y7}}i| d<xa | jƒD]S \}}%i}~|rÄ|jx|ƒ}"|"s¯q|ni|"_&d|"_(n|jB|iƒ}*|jB|iƒ}4|jB|iƒ}C|jB|iƒ}9|jB|iƒ}?|MjB|iƒ}i}€i}xýt/jyD]ò}1t/jzjB|1dƒ}‚|`jB|1dƒ}ƒ|ajB|1dƒ}„d}…|1t/j{kr§|o|p}…n|bjB|1dƒ}†|‚rÕ|bjB|‚dƒd*nd}‡|cjB|1dƒ}ˆ|‚r    |cjB|‚dƒd*nd}‰|djB|1dƒ}Š|‚r=|djB|‚dƒd*nd}‹|ejB|1dƒ}Œ|‚rq|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}“|ijB|1dƒ}”|‚rA|ijB|‚dƒd*nd}•|ljB|1dƒ}–|‚ru|ljB|‚dƒd*nd}—|jjB|1dƒ}˜|‚r©|jjB|‚dƒd*nd}™|njB|1dƒ}š|‚rÝ|njB|‚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|¬da6|­db6}®|1t/j{krtvjwdc|\|®d6tYdddƒ}3n!tvjwde|]|®d6tYdddƒ}3t}r¥|3dkr¥i}¯xI|®jƒD];\}&}'|' sJ|&dPkr{|'d
kr{qJn|'|¯|&<qJWt j~df||1|3|¯ƒn|1t/jkrxt/j€D]W}°|~jB|°dƒ}±|±|3}²|²|~|°<t}r¾|3dkr¾t j~dg|°|±|²ƒq¾q¾WqF|1t/jkr”x
t/j‚D]X}³|~jB|³dƒ}´|´|3}µ|µ
|~|³<t}r5|3dkr5t j~dh|³|´|µƒq5q5WqF|~jB|1dƒ|3|~|1<tjdi|1ƒ}¶|¶rÒ|¶jƒƒndj|1}·dk|·}¸d}¹|3rt„|sdl|¸ƒrt…|sdl|¸ƒƒ}¹n|·|€|1<|¸|¹g||1<qFWg}ºi}»xŠ|~jƒD]|\}1}3|1|€krsqUn|€|1}·|3s“|~j†|1ƒn|ºjIdm|1|·|3fƒ||1\}¸}¹|3|»|·<|¹|»|¸<qUW|dkrt j dn|º|ƒ|j‡|~ƒq|n|~|"_&tvjwdo|^|»d6tXƒ}¼t j dp||¼|"j'f|ƒi}½x†|"j'D]{}<tjd1|<ƒ}z|zs€q\n|zjˆƒ}u|u|½kr¥|z|½|u<q\|½|u}¾|¾jGƒ}¿|¿|<krÍq\n|z|½|u<q\Wd}Àg|"_'xv|½j_ƒD]h}z|zjGƒ}<|"j'jI|<ƒi|zjuƒd26|qd36|rd46}{tvjwd5|_|{d6tXƒ}||À||7}Àq÷Wt j dq|À|"j'f|ƒ|¼|À}Á|À|"_‰|Á|"_(|}|Á7}}t j dr||Á|¼|À|º|"j'f|ƒq|W|}|_(t j ds||}|f|ƒ|s|tjŠ|tj‹ƒkrdtStŒj||}ƒtŽj|ƒ}Â|Âj}Ã|Ãrs|Ãj‘ƒrs|    j’r¢tY|    _’t j du|ƒ|Ãj“t/j”krptŽj•|tXƒqpqƒt j dv|ƒ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 dw|ƒdtS(xs° Ë¢ÐÂ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    Ö÷¹«Õ½»êÊôÐÔ=%ss    Ö÷¹«ÉñÊÞÊôÐÔ=%s,%ss)    Ö÷¹«Ãü¸ñÊôÐÔ=%s,¼¼ÄÜ:%s,mgPresetID=%ss    ¶¨¾üרÊôÊôÐÔ=%sgˆÃ@s    Ö÷¹«¿¨ÅƼӳÉ=%st AddPerTotals    Ö÷¹«ÉñÊÞ¼Ó³É=%ss    PlayerLV=%s,OfficialLV=%stFightPowerRatiotBeasttSkillt
SkillPowertPlayerLVt
OfficialLVtskillFPFormulattoInts$    ·ÇÎ佫¼¼ÄÜÕ½Á¦=%s,skillIDList=%si'tlvValuet
equipValuet
realmValuetrealmPertcardPert
gubaoValuetgubaoPerthjgValuethjgPert
horseValuethorsePert beautyValuet    beautyPert
fatesValuetfatesPert    skinValuetskinPertdingjungeValuet dingjungePert minggeValuet    minggePert heroSelfValuet heroSelfPert
inheritPert heroLVValuet    heroLVPert heroSkinValuet heroSkinPert    soulValuetsoulPert
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_SoultDef_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
countryCntRHRJRLRRªt equipAttrDictt fatesAttrDictt skinAttrDictt realmAttrDictt gubaoAttrDictt hjgAttrDictt horseAttrDicttbeautyAttrDictt soulAttrDicttminggeAttrDictt mgSkillLVDictt beastAttrDictt beastInfoDicttdingjungeAttrDictR%t beastAddPerRRtfpRatioIpyDatat skillIDListt skillTypeIDtskillLVt    beastDictt    beastInfotfuncSkillFightPowert    skillDatat    paramDictt sFightPowertlineupFightPowerRtfetterAttrDictt attrNameDictt attrRatioDictt    attrPerIDRRR"R+R,R-R.R R!R#R$R%R&R'R(R)R*R:R;R<R=R1R2R/R0R3R4R5tattrInheritPerIDR>R?R@RAR8R9R6R7RBRCRDRERFRGt 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úR
RËRRRRüRR€RRþ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>sR                        *FÒ7                             O    K        :