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
,cjc@sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZdZddd„ƒYZddd„ƒYZddd„ƒYZd    dd
„ƒYZd dd „ƒYZd „Zd„Z d„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__3s
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.pyR7s                                (t__name__t
__module__RR(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR0s    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.pyRHs                     icCs5||_||_|s$t|_nt||ƒdS(N(RRtTrueRtreloadEffHeroCard(Rt    curPlayerRRtisReload((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetHeroItemPresetPs           cCs t|_dS(N(RR(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnSwitchXs    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.pytGetEffectiveCardDictdscCs ||_dS(N(R(RteffectiveCardDict((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetEffectiveCardDictescCs2d}x%|jjƒD]}||d7}qW|S(Ni(Rtvalues(Rt effCardAddPerteffInfo((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetEffCardAddPerfs( R R t__doc__RRRRRRR R!R#R'(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRBs                         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.pyRos                                cCs|j S(N(R1(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytIsEmpty{scCs |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.pytFreeLineupHeros         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)ls                          
     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.pytRefreshBatPreset2s
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.pytRefreshRoleAttr9scCs¢|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Ks              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.pytUpdHeroItemPresetes    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.pytOnHeroItemUpateus               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.pyR8sn           
 #    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}i}|jƒjtjƒ}x|
jƒD]\}}|dks||jƒkrGqn|j|ƒ}| s|jƒroqn|jƒ}tjd|ƒ}|s™qn|jƒ}tjd|ƒ}|sÃqn|jtjƒ}|jtjƒ}|jtjƒ}|jtjƒ}|jtjƒ} d}!|jƒ}"| dksM| t |"ƒkrZ|"d}!n|"rm|"| }!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|'ƒ<qiW|&| |<d})|jtj9ƒ}*|*dksÉ|*t |"ƒkrÖ|"d})n|"ré|"|*})ni}+tj:d|)ƒ},|,rÄt;j<||)ƒ}-|,j=ƒ}.|,j>ƒ}/|,j?ƒ}0x„t@tAt |.ƒt |/ƒƒƒD]^}1|.|1}2t |0ƒ|1kr‹|0|1nd}3|/|1|3|-}4|+jB|2dƒ|4|+|2<q_Wn|+||<i}5tjd||ƒ}6|6rd|6jCƒ}7|6jDƒ}8xZt@tAt |7ƒt |8ƒƒƒD]4}9|7|9}2|8|9}4|5jB|2dƒ|4|5|2<q)Wn|5||<i}:tjEd|ƒ};|;rqxâ|;D]×}<|<jFƒ|kr¯Pn|<jCƒ}7|<jDƒ}8xWt@tAt |7ƒt |8ƒƒƒD]4}9|7|9}2|8|9}4|:jB|2dƒ|4|:|2<qéW|<jGƒ}=|<jHƒ}>|=rR|#j'jI|=ƒn|>r“|#j'|>7_'q“q“Wn|:||<tjJd    d
ƒ}?i}@tjKd |ƒ}A|Ar‡xÙ|AD]Î}B|BjLƒ|krÎPn|BjMƒ}CtN|?|Cƒ}?|BjCƒ}7|BjDƒ}8xWt@tAt |7ƒt |8ƒƒƒD]4}9|7|9}2|8|9}4|@jB|2dƒ|4|@|2<q#W|BjGƒ}=|=r²|#j'jI|=ƒq²q²Wn|@||<i}D|jOtjPƒ}E|jOtjQƒ}Fxžt@tA|E|F|?ƒƒD]„}9|jRtjP|9ƒ}G|jRtjQ|9ƒ}Htjd |Gƒ}I|Is"qÔn|IjSƒ}2|IjTƒ|H}4|DjB|2dƒ|4|D|2<qÔW|D||<xS|jUƒD]E}J|J| kr’g| |J<n| |J}K||Kkrs|KjI|ƒqsqsW|jVƒ}L|L| krág| |L<n| |L}M||Mkr    |MjI|ƒntWjX||ƒ||<qWi}Nx#| jƒD]\}J}Ktjd |Jƒ}O|Os^    q4    n|OjYƒ}PtZ}Qx$|PD]}R|R|Kkrw    t[}QPqw    qw    W|Qs£    q4    n|OjCƒ}7|OjDƒ}8x‹t@tAt |7ƒt |8ƒƒƒD]h}9|7|9}2|8|9}4xK|PD]C}||Nkr
i|N|<n|N|}S|SjB|2dƒ|4|S|2<qþ    WqÝ    Wq4    Wi}Txð| jƒD]â\}L}MtjEd|Lƒ}U|UsŠ
q`
ngg}7}8t |Mƒ}VxB|UD]:}W|Wj\ƒ}X|V|XkrÌ
Pn|WjCƒ}7|WjDƒ}8qª
WxWt@tAt |7ƒt |8ƒƒƒD]4}9|7|9}2|8|9}4|TjB|2dƒ|4|T|2<q
Wq`
Wtj]ƒ}Yx t@|Yj^ƒƒD]ù}Z|Yj_|Zƒ}W|Wj`ƒ}[|[s’ qe nd}\|Wj\ƒ}Xx3| jaƒD]%}Mt |Mƒ|Xkr± |\d
7}\q± q± W|\|[krì qe n|WjCƒ}7|WjDƒ}8xWt@tAt |7ƒt |8ƒƒƒD]4}9|7|9}2|8|9}4|TjB|2dƒ|4|T|2<q& Wqe WtjJdd
ƒ}]tjJddƒ}^tjJddƒ}_tjJddƒ}`|jbt/jcƒ}a|jbt/jdƒ}b|jbt/jeƒ}c|jbt/jfƒ}d|jbt/jgƒ}e|jbt/jhƒ}f|jbt/jiƒ}g|jbt/jjƒ}h|jbt/jkƒ}i|jbt/jlƒ}j|jbt/jm|ƒ}k|jnt/jm|ƒ}l|jbt/jo|ƒ}m|jnt/jo|ƒ}n|t/jpkrÓ |jbt/jqƒni}ot 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||ƒt j d|N|ƒt j d|T|ƒ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'|j|ƒt j d(|m|nf|ƒt j d)|k|l|f|ƒt j d*|o|ƒ|    jrƒ}p|pd+:}pt j d,|p|ƒ|njBd-dƒ}q|qd+:}qt j d.|q|ƒ|jsƒ}r|jtƒ}st j d/|r|sf|ƒtjd0|sƒ}tg}uxB|ljƒD]4\}v}wtujv|v|wƒ}=|=ry|ujI|=ƒqyqyW|njBd1iƒ}xx*|xjaƒD]}y|u|yjBd2gƒ7}uqÐWd}zxr|uD]j}=tjd2|=ƒ}{|{s!qýni|{jwƒd36|rd46|sd56}|txjyd6|`||d7tZƒ}}|z|}7}zqýWt j d8|z|uf|ƒd}~|~|z7}~i| d<x° | jƒD]¢ \}}&i}|rô|jz|ƒ}#|#sßq¬ni|#_&d|#_(n|jB|iƒ}+|jB|iƒ}5|jB|iƒ}D|jB|iƒ}:|jB|iƒ}@|jB|iƒ}€|NjB|iƒ}i}‚i}ƒx:t/j{D]/}2t/j|jB|2dƒ}„|ajB|2dƒ}…|bjB|2dƒ}†d}‡|2t/j}kré|p|q}‡n|cjB|2dƒ}ˆ|„r|cjB|„dƒd+nd}‰|djB|2dƒ}Š|„rK|djB|„dƒd+nd}‹|ejB|2dƒ}Œ|„r|ejB|„dƒd+nd}|fjB|2dƒ}Ž|„r³|fjB|„dƒd+nd}|gjB|2dƒ}|„rç|gjB|„dƒd+nd}‘|hjB|2dƒ}’|„r|hjB|„dƒd+nd}“|ijB|2dƒ}”|„rO|ijB|„dƒd+nd}•|jjB|2dƒ}–|„rƒ|jjB|„dƒd+nd}—|mjB|2dƒ}˜|„r·|mjB|„dƒd+nd}™|kjB|2dƒ}š|„rë|kjB|„dƒd+nd}›|ojB|2dƒ}œ|„r|ojB|„dƒd+nd}|&jB|2dƒd}ž}Ÿd
} |2t/j~krt/j~|2}¡|&jB|¡d9ƒ} | d+:} n|TjB|2dƒd}¢}£|jB|2dƒd}¤}¥|+jB|2dƒd}¦}§|5jB|2dƒd}¨}©|DjB|2dƒd}ª}«|:jB|2dƒd}¬}­|@jB|2dƒd}®}¯|€jB|2dƒd}°}±|„r|&jB|„dƒd+}Ÿ|TjB|„dƒd+}£|jB|„dƒd+}¥|+jB|„dƒd+}§|5jB|„dƒd+}©|DjB|„dƒd+}«|:jB|„dƒd+}­|@jB|„dƒd+}¯|€jB|„dƒd+}±ni,|…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|¯dc6|°dd6|±de6}²|2t/j}krƒtxjydf|]|²d7t[dgdƒ}4n!txjydh|^|²d7t[dgdƒ}4tr$|4dkr$i}³xI|²jƒD];\}'}(|( sÉ|'dQkrú|(d
krúqÉn|(|³|'<qÉWt j€di||2|4|³ƒn|2t/jkr›xt/j‚D]W}´|jB|´dƒ}µ|µ|4}¶|¶||´<tr=|4dkr=t j€dj|´|µ|¶ƒq=q=Wqˆ|2t/jƒkrx
t/j„D]X}·|jB|·dƒ}¸|¸|4}¹|¹
||·<tr´|4dkr´t j€dk|·|¸|¹ƒq´q´Wqˆ|jB|2dƒ|4||2<tjdl|2ƒ}º|ºrQ|ºj…ƒndm|2}»dn|»}¼d}½|4rt†|tdo|¼ƒrt‡|tdo|¼ƒƒ}½n|»|‚|2<|¼|½g|ƒ|2<qˆWg}¾i}¿xŠ|jƒD]|\}2}4|2|‚kròqÔn|‚|2}»|4s|jˆ|2ƒn|¾jIdp|2|»|4fƒ|ƒ|2\}¼}½|4|¿|»<|½|¿|¼<qÔW|dkr‡t j dq|¾|ƒ|j‰|ƒq¬n||#_&txjydr|_|¿d7tZƒ}Àt j ds||À|#j'f|ƒi}Áx†|#j'D]{}=tjd2|=ƒ}{|{sÿqÛn|{jŠƒ}v|v|Ákr$|{|Á|v<qÛ|Á|v}Â|ÂjGƒ}Ã|Ã|=krLqÛn|{|Á|v<qÛWd}Äg|#_'xv|ÁjaƒD]h}{|{jGƒ}=|#j'jI|=ƒi|{jwƒd36|rd46|sd56}|txjyd6|`||d7tZƒ}}|Ä|}7}ÄqvWt j dt|Ä|#j'f|ƒ|À|Ä}Å|Ä|#_‹|Å|#_(|~|Å7}~t j du||Å|À|Ä|¾|#j'f|ƒq¬W|~|_(t j dv||~|f|ƒ|s™|tjŒ|tjƒkrdwStŽj||~ƒtj‘|ƒ}Æ|Æj’}Ç|Çrò|Çj“ƒrò|    j”r!t[|    _”t j dx|ƒ|Çj•t/j–krïtj—|tZƒqïqt j dy|ƒt/j˜d
}È}É|Çj™|ȃjš|Ƀ}Êt›jœƒ}Ëxš|ÊjƒjƒD]s\}}Ì|Ëjž|̃}Í|ÍsŸqxn|ÍjŸƒt/j krºqxn|j!|ƒ}#|#j&rx|Íj¡|#j&|#j'ƒqxqxWnt j dz|ƒdwS({s° Ë¢ÐÂ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    Ö÷¹«Õ½»êÊôÐÔ=%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
breakLVPertawakeTalentValuetawakeTalentPert minengValuet    minengPertbaseAttrFormulatndigitstotherAttrFormulas'    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 PlayerMinengtCalcHeroMinengAttrt 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 beastPresetIDRXRtcountryHeroInfotfetterHeroInfotheroSelfAttrInfotheroSkinAttrInfotheroLVAttrInfotheroStarTalentInfotheroBreakAttrInfotheroAwakeTalentInfotheroMinengInfoRÄ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
countryCntRPRRRTR"R°t equipAttrDictt fatesAttrDictt skinAttrDictt realmAttrDictt gubaoAttrDictt hjgAttrDictt horseAttrDicttbeautyAttrDictt soulAttrDicttminggeAttrDictt mgSkillLVDictt beastAttrDictt beastInfoDicttdingjungeAttrDictR%t beastAddPerR R!tfpRatioIpyDatat skillIDListt skillTypeIDtskillLVt    beastDictt    beastInfotfuncSkillFightPowert    skillDatat    paramDictt sFightPowertlineupFightPowerRtminengAttrDicttfetterAttrDictt attrNameDictt attrRatioDictt    attrPerIDR$R%R(R1R2R3R4R&R'R)R*R+R,R-R.R/R0R@RARBRCR7R8R5R6R9R:R;tattrInheritPerIDRDRERFRGR>R?R<R=RHRIRJRKRLRMRNROt 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}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>sT                         *F×7                             O    K        :