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
RžXjc@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„Zdd„Zd„Zd„Zd„Zd„Z    d    „Z
e dd
„Z dd „Z dd „Zdd „Zddd„Zd„Zd„Zd„Zd„Zd„Zd„Zeedd„Zedd„Zded„Zd„ZRS(cCs^||_d|_i|_i|_i|_i|_i|_i|_t    j
|ƒ|_ dS(N( R*R-Rt_kvDictt _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(RJt    turnFightt    exitFight(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnClearÅscCs||_||jj_dS(N(RRJRK(RR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt    SetPlayerÉs    icCs|jj||ƒS(N(RBR(Rtkeyt defaultValue((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetKeyValueÎscCs||j|<dS(N(RB(RROtvalue((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt SetKeyValueÏscCs |jdkS(N(RR-(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt IsRealOnlineÑscCs|jS(N(RG(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetRoleBatAttrDictÕscCs ||_dS(N(RG(RtroleBatAttrDict((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetRoleBatAttrDictÖscCs<||jkr|j|}nt|ƒ}||j|<|S(N(RER(RRt
heroPreset((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetHeroPresetØs
  cCs±d}|}|r9|tjkr0||f}q9d}n||jkrX|j|}n9t|j||ƒ}||j|<tjdt|ƒƒ||_    |r­|j
ƒn|S(Nis´´½¨Õ½¶··½°¸: %s( R-tChConfigtExclusiveBatAttrMapIDListRFR)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(RDR(Rt    calcIndextpresetIDtcalcKey((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetCalcSpecInfoöscCs)|r||fn|}||j|<dS(N(RD(RRet specEffInfoRd((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetCalcSpecInfoùs cCs+|r||fn|}|jj|iƒS(N(RCR(RRcRdRe((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetCalcAttrþscCsE|r||fn|}||j|<|dkrA||j|<ndS(N(RCR-RD(RRctattrDictRgRdRe((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt SetCalcAttrs
  cCs—|j}tjd|jƒi|_i|_i|_i|_t|ƒt    ||ƒt
j |jt j ƒ}tjd||jƒ|j|ƒdS(NsReCalcAllAttr...smainBatPresetID=%s(RR\R]R*RCRDRERFt doCalcAllAttrtdoReloadLineupt PlayerPresettGetBatPresetIDt ShareDefinetBatPreset_MainRb(RRtmainBatPresetID((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt ReCalcAllAttr
s                    
  cCs |jjƒS(N(RER3(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetHeroPresetIDListscCsCg}x6|jjƒD]%}t|tƒr|j|ƒqqW|S(N(RFR3t
isinstancetintR5(Rt presetIDListtk((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetBatPresetIDLists
cCs|jS(N(RF(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetPresetLineupDict$scCs~|j}tjd||f|jƒxQ|jjƒD]@}|j}|rl|tj|||ƒkrlq6n|j    ƒq6WdS(Ns9ÇëÇóË¢¹¦ÄÜÔ¤ÉèÊôÐÔ±ä¸ü: funcPresetType=%s,funcPresetID=%s(
RR\R]R*RFR$R+RntGetFuncPresetIDR?(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(R\R]R*RbRR?(RR+R~((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytRefreshBatPreset1s
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(R\R]R*RFR$R,R<tDoRefreshRoleAttr(RR>t isAllLineupR,R`((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytRefreshRoleAttr8scCs¢|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( RRnRoRpRqRRFR$R,R+R=R(RR‚R,RR+t    isRefreshR`((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRJs              cCs^|j}|j|ƒ}|j||||ƒ|jtj|ƒ|sZtj||ƒndS(sÙ±ä¸üÎ佫ԤÉèÕóÈÝʱ¸üÐÂ
        @param heroPresetID: Î佫ԤÉèID
        @param heroItemDict: Î佫±³°üË÷ÒýÐÅÏ¢  {itemIndex:posNum, ...}
        @param shapeType: ÕóÐÍ
        @param refreshForce: ÊÇ·ñÇ¿ÖÆË¢ÊôÐÔ
        N(RRYRRRptFuncPreset_Herot
PlayerHerotSync_HeroPreset(RRRRRRRX((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytUpdHeroItemPresetds    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( RtGetItemPlaceIndexRER$R'tcheckUpdEffHeroCardRR\R]R*RRpR…(RtheroItemRRRXteffCardAddPerBefteffCardAddPerAftR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnHeroItemUpatets               N(R R RRMRNRQRSRTRURWRYRRbRfRhRiR-RkRsRtRyRzRR€RRƒRRˆRŽ(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRA±s0                                                                     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RARN(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RARN(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RNR-RvttimeR‘(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,(RvR•R‘titemsR8R-RRM(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 PlayerControltGetPlayerLVIpyDatatGetAtkRZt
AttrID_AtktGetDeft
AttrID_DeftGetMaxHPt AttrID_MaxHPR\R]R“RktDef_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 GetItemTypeIDtgetHeroCardAddPerRtGetItemManagertGetPackRptrptHerotGetCounttGetAtR-R2R\R]RR trangeRŠtGetItemt AddUserAttrtDef_IudetHeroEffPresetIDt    Sync_Itemt DelUserAttr(RRXR‹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¶RpR·R\R]RºR¸R¹R2RtGetUserAttrCounttDef_IudetHeroLineuptGetUserAttrByIndexR†tGetLineupValueRR³R´tGetHeroEffPresetIDListR5RtlenR#R—tremoveR»R¼R½R¿R$R¾tOpenServerActivitytUpdOSA_HeroTrainBillboard(RRXR*RthisEffCardIndexListtupdEffectiveCardDictRÄRÆR‹Rt lineupCounttlpIndext lineupValueRRthisEffPresetIDListR&t syncItemDictt cardPerTotalRRÉtsyncItem((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR7sn           
 #    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 GetUserAttrRptDef_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ÞtGetIpyGameDataListRpR…RÏRµR¶R·RºR¸R¹R2RÊRËRÌR†RÍRntGetFuncPresetIDStateR\R]R5t LineupObjMaxR$R»R¿R¾R’R—RRˆRR‡(RR.therpPresetIpyDataListt presetIDMaxR|t
presetDictt shapeTypeDictRÙRÄRÆR‹RÕt delValueListRÖR×RRRRRÉRÛ((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRm˜sZ      )     
3   cCs³tjd|jƒƒt|ƒtj|ƒtj|ƒtj    |ƒt
j |ƒt j |ƒtj|ƒtj|ƒtj|ƒtj|ƒtj|ƒtj|ƒdS(NsdoCalcAllAttr...(R\R]R’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.pyRlÒ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,RnR{RpR…tFuncPreset_MinggetFuncPreset_BeastRYRR\R]R7RµR¶R·R—R¸R¹R2R³RÞRßRàRáRâRãRätDef_IudetHeroAwakeLVtDef_IudetHeroSkint GetSkinIDListRÏR:RRRRRR    R
tGetNormalSkillIDtGetAngerSkillIDtextendtupdatetGetAtkInheritPertGetAtkInheritPerStarRZtAttrID_AtkInheritPertGetDefInheritPertGetDefInheritPerStartAttrID_DefInheritPertGetHPInheritPertGetHPInheritPerStartAttrID_HPInheritPertGetBatAttrDictRvtDef_IudetHeroSkinAttrtGetIpyGameDataNotLogR†tGetHeroSkinStartGetWearAttrIDListtGetWearAttrValueListtGetWearAttrPerStarAddListRºRëRt GetAttrIDListtGetAttrValueListRõt
GetBreakLVt
GetSkillIDtGetSkillIDExListR5t
GetFuncCfgtGetIpyGameDataListNotLogt
GetAwakeLVtGetUnlockTalentSlotRèRÊtDef_IudetHeroTalentIDtDef_IudetHeroTalentIDLVRÌt    GetAttrIDt GetAttrValuetGetFetterIDListt
GetCountryt GetHeroIDListRRtGetNeedHeroCounttIPY_DatatGetHeroLineupHaloCounttGetHeroLineupHaloByIndext GetCountrysR$RiR­tDef_CalcAttr_MainEquiptDef_CalcAttr_HeroFatestDef_CalcAttr_HeroSkintDef_CalcAttr_RealmtDef_CalcAttr_GubaotDef_CalcAttr_HJGtDef_CalcAttr_HorsetDef_CalcAttr_BeautytDef_CalcAttr_SoultDef_CalcAttr_MinggeRftDef_CalcAttr_BeasttDef_FBMapID_DingjungetDef_CalcAttr_DingjungeR'R¤tGetOfficialRankt SkillCommontGetSkillIDBySkillTypeIDt GetFightPowertFormulaControltEvalR;tCalcBattleAttrIDListt AttrPerDicttBaseAttrIDListtAttrInheritPerDictt g_calcDetailt
DebugLogExtAttrID_BatRatet BatAttrIDListtAttrID_BatRateDeftBatDefAttrIDListt GetParameterR²tgetattrR8RWtGetSkillTypeIDR RoRqR¥t SetFightPowerRHtGetMainFightMgrRKt    isInFightRtmapIDtDef_FBMapID_Maint__doMainLevelWavet Def_FactionAt getBatFactiont getBatlineupt    BattleObjt GetBatObjMgrtgetPosObjIDDictt    getBatObjt GetBatObjTypetBatObjType_BatHerotUpdInitBatAttr(ÊRR.R~R*R+R,Rt
mgPresetIDt beastPresetIDRXRtcountryHeroInfotfetterHeroInfotheroSelfAttrInfotheroSkinAttrInfotheroLVAttrInfotheroStarTalentInfotheroBreakAttrInfotheroAwakeTalentInfoRÄRRR‹RRìRíRîRïRðRñtawakeLVt    skinIndexRt
skinIDListR9t normalSkillIDt angerSkillIDt selfAttrDictRxtvt
attrSkinIDt attrSkinIndextheroSkinAttrDictt skinIpyDatatskinStartwearAttrIDListtwearAttrValueListtwearAttrPerStarAddListtitattrIDtattrValuePerStart    attrValuetheroLVAttrDictt heroLVIpyDatat
attrIDListt attrValueListtaIndext breakAttrDicttbreakIpyDataListt breakIpyDatatskillIDt skillIDExListt maxUnlockSlottawakeTalentAttrDicttawakeIpyDataListt awakeIpyDatatunlockTalentSlottstarTalentAttrDicttidCounttlvCountttalentIDttalentLVt    stIpyDatatfetterIDtfetterHeroIDListtcountrytcountryHeroIDListtheroFetterAttrInfot fetterIpyDatatneedHeroIDListt    canFettert
needHeroIDtheroFetterAttrDicttlineupHaloAttrInfothaloIpyDataListtcountryHeroCntt haloIpyDatat needHeroCountt
ipyDataMgrRÆt needCountryst
countryCntRNRPRRR"R°t equipAttrDictt fatesAttrDictt skinAttrDictt realmAttrDictt gubaoAttrDictt hjgAttrDictt horseAttrDicttbeautyAttrDictt soulAttrDicttminggeAttrDictt mgSkillLVDictt beastAttrDictt beastInfoDicttdingjungeAttrDictR%t beastAddPerR R!tfpRatioIpyDatat skillIDListt skillTypeIDtskillLVt    beastDictt    beastInfotfuncSkillFightPowert    skillDatat    paramDictt sFightPowertlineupFightPowerRtfetterAttrDictt attrNameDictt attrRatioDictt    attrPerIDR$R%R(R1R2R3R4R&R'R)R*R+R,R-R.R/R0R@RARBRCR7R8R5R6R9R:R;tattrInheritPerIDRDRERFRGR>R?R<R=RHRIRJRKRLRMt 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ªRHRœRRpRnR¥RÞR’RRRÑR
RRRR R†RRR\RZRýR•R˜RRR)RARRŸR“R R¡R¢R±RRŠRR´RmRlR@(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt<module>sR                        *F×7                             O    K        :