hxp
2025-08-12 597936df821ad2e12c53b5f25826faeb9849d3e4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
ÿšhc@s¸ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZdZdZedƒ\ZZZZZZdd,d„ƒYZdd-d„ƒYZ dd.d    „ƒYZ!d
d/d „ƒYZ"d „Z#d d0d„ƒYZ$d„Z%d„Z&d„Z'd„Z(d„Z)dd„Z*d„Z+d„Z,d„Z-e.d„Z/d„Z0d„Z1d„Z2d„Z3d„Z4d„Z5dd „Z6de.d!„Z8d"„Z9ej:dd#„Z;d$„Z<d%„Z=ddd&„Z>d'„Z?d(„Z@d)„ZAd*„ZBd+„ZCdS(1iÿÿÿÿNi
it    BatLineupcBs5eZd„Zd„Zd„Zd„Zd„ZRS(cCsL||_||_||_d|_d|_d|_i|_t|_dS(Ni(    t    turnFighttfactiontnumtownerIDt    shapeTypet
fightPowert posObjIDDicttActionNumStartt    actionNum(tselfRRR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt__init__>s                                cCs
|jjS(N(RtplayerID(R
((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt getPlayerIDIscCs|j S(N(R(R
((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytisEmptyKscCso|jƒ|jddƒ|_|jddƒ|_|jddƒ|_t||j|j||jƒƒdS(NtPlayerIDit    ShapeTypet
FightPower(    t clearLineuptgetRRRtSummonLineupObjsRRR (R
t
lineupInfo((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt    setLineupMs 
"cCsV|js dStjƒ}x$|jjƒD]}|j|ƒq)Wi|_d|_dS(Ni(Rt    BattleObjt GetBatObjMgrtvaluest    delBatObjR(R
t    batObjMgrtobjID((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRWs             (t__name__t
__module__R R RRR(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR;s
                 
t
BatFactioncBs&eZd„Zdd„Zd„ZRS(cCs||_||_i|_dS(N(RRt
lineupDict(R
RR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR es            icCsNd}||jkr%|j|}n%t|j||jƒ}||j|<|S(N(tNoneR RRR(R
Rtlineup((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt getBatlineupks  cCs(x!|jjƒD]}|jƒqWdS(N(R RR(R
R"((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt clearLineupsus(RRR R#R$(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRbs    
t    TurnFightcBs§eZdZddded„Zeid„Zd„Zd„Zd„Ze    j
d„Z d„Z d    „Z d
„Zd „Zd „Zid „Zd„Zd„ZRS(sÙij³¡»ØºÏÕ½¶·£¬Ö§³Ö¶àV¶à£¬ËùÓÐÕ½¶·Í¨Óã¬Ö÷Ïß¡¢ÅÀËþ¡¢PVPµÈ
    ¿ÉÄÜΪϵͳºǫ́·¢ÆðµÄ£¬Ôò¹¥»÷·½¡¢·ÀÊØ·½ÕóÈÝÒÔÍæ¼ÒËù±£´æµÄÕóÈݾµÏñ½øÐÐÕ½¶·
    Èç¹ûÍæ¼Ò·¢ÆðµÄ£¬Ôò¹¥»÷·½Îª·¢Æð·½Íæ¼Ò£¬Ä¿±êΪ·ÀÊØ·½£¬Ö§³Ö¶àV¶à£¬Èç×é¶ÓPK
    ¶àV¶àµÄÇé¿öÒ²ÊÇij¸ö¶ÓÔ±¸÷×Ô·¢ÆðÕ½¶·£¬Ö»ÊÇÓõ½¶ÓÓѵľµÏñÕóÈÝÒ»ÆðÕ½¶·£¬¶ÓÓÑÎÞ¸ÐÖª
    
    ¶àV¶à¿ÉʹÓÃÁ½ÖÖģʽ£º
    1. ¶à¸öÕóÈÝÒ»Æð³ö³¡£¬ÔÚÒ»³¡Õ½¶·ÖÐÍê³É
    2. ÒÔµ¥ÕóÈÝ·½Ê½ÂÖÁ÷³ö³¡Õ½¶·£¬¸Ã·½Ê½Í¬Ñù¿ÉÒÔʹÓ÷½Ê½1µÄÂß¼­ÊµÏÖ£¬¹ÌÓÅÏÈʹÓ÷½Ê½1Õ½¶·Âß¼­£¬·½±ãÀ©Õ¹
    icCsÙtjƒ|_||_|r3tjƒj|ƒnd|_||_||_    d|_
d|_ d|_ t |_d|_d|_d|_d|_||_i|_i|_g|_d|_d|_d|_dS(Niÿÿÿÿiiit(t    GameWorldtGetGUIDtguidR tGetPlayerManagertFindPlayerByIDR!t    curPlayertmapIDt
funcLineIDtstatetturnNumtturnMaxtFalset
enterLogict    turnStarttturnEndt
winFactiont    batBuffert isNeedReporttmsgDictt factionDicttactionSortListt actionIndext    startTimetcostTime(R
R-R.R R8((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR †s*    $                                                                    cCs>||_||_||_||_i|_|j|ƒdS(N(R-R.R1R8R9t    resetTurn(R
R-R.R1R8R9((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytsetTurnŸs                     cCsbd|_t|_d|_d|_d|_d|_|jj|ƒt    j    ƒ|_
d|_ dS(NiiR&( R0R2R3R4R5R6R7R9tupdatettimeR=R>(R
R9((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR?©s                            cCsb|j|ƒ}|jƒxB|jƒD]4\}}|s>q&n|j|ƒ}|j|ƒq&WdS(N(t getBatFactionR$titemsR#R(R
RR t
batFactionRRt    batLineup((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytsetFactionLineup¶s
c    Csøg}xq|jjƒD]`}|j}xN|jjƒD]=\}}|j}|d| }|j||||gƒq5WqW|jdtƒd|_    g|_
x0|D](\}}}}|j
j||gƒq£Wt j d|ƒt j d|j
ƒdS(Ni
treverseis!ÕóÈÝÕ½Á¦ÅÅÐò[fp, sortV, f, n]: %ssÕóÈÝÐж¯Ë³Ðò[f, n]: %s( R:RRR RDRtappendtsorttTrueR<R;R'tDebugLog(    R
tsortListRERRRFRt    sortValuet_((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytsortActionQueueÂs        !        cCsEd}||jkr%|j|}nt||ƒ}||j|<|S(N(R!R:R(R
RRE((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRCÖs  c    Cs|jr|jStjƒ}xî|jjƒD]Ý\}}t}xŠ|jjƒD]y}|s^Pnxf|jjƒD]U\}}|dkrŒqnn|j    |ƒ}|s§qnn|j
ƒdkrnt }PqnqnWqNW|r,|t j krét jnt j|_t|jƒ|jSq,WdS(Ni(R6RRR:RDRKR RRt    getBatObjtGetHPR2tChConfigt Def_FactionBt Def_FactionAtDoTurnFightOverR)(    R
RRREt    allKilledRFtposNumRtbatObj((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytcheckOverByKilledàs,       $  cCs>|jtƒx!|jjƒD]}|jƒqWd|_dS(Niÿÿÿÿ(t    syncStatetFightState_OverR:RR$R/(R
RE((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt    exitFightÿs
     cCst|_|jƒdS(N(tFightState_StartR/tsyncInit(R
((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt
startFights    
cCs |jdkS(Niÿÿÿÿ(R/(R
((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt    isInFight scCs©tj|jdtƒ}|jddƒ}tjƒ}|j|_|j    |_
|j |_ ||_ t|j ƒ|_g|_tjƒ}xù|jjƒD]è}|j|ƒ}tjƒ}||_g|_x|jjƒD]}|j|ƒ}tjƒ}    ||    _|j|    _|j|    _ g|    _!x|j"j#ƒD]þ\}
} |j$| ƒ} | s_q8ntj%ƒ} | j&ƒ| _'| j(ƒ| _)| j*ƒ| _+| j,ƒ| _-| j.ƒt/j0| _1| j.ƒt/j0| _2| j3ƒt/j0| _4| j3ƒt/j0| _5| j6ƒ| _7|
| _8| j9ƒ| _:|    j!j;| ƒq8Wt|    j!ƒ|    _<|jj;|    ƒqÝWt|jƒ|_=|jj;|ƒqšWt|jƒ|_>|j?|ƒdS(Nt ensure_asciis R&(@tjsontdumpsR9R2treplacetChPyNetSendPackttagSCTurnFightInitR-tMapIDR.t
FuncLineIDR1tTurnMaxtMsgtlentLent FactionListRRR:tkeysRCttagSCTurnFightFactiontFactiont
LineupListR R#ttagSCTurnFightLineuptNumRtOwnerIDRRtObjListRRDRQttagSCTurnFightObjtGetIDtObjIDtGetNPCIDtNPCIDt    GetHeroIDtHeroIDt    GetSkinIDtSkinIDRRRStDef_PerPointValuetHPtHPExtGetMaxHPtMaxHPtMaxHPExtGetLVtLVtPosNumtGetXPtAngreXPRItObjCntt    LineupCntt
FactionCntt
addBatPack(R
tmsgt
clientPackRRREt    tfFactionRRFttfLineupRXRRYttfObj((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR_s\                                       cCsŸ||_tj|dtƒ}|jddƒ}tjƒ}|jƒ|j|_    |j
|_ ||_ |j |_||_t|jƒ|_|j|ƒdS(NRbs R&(R/RcRdR2ReRfttagMCTurnFightStatetClearR-RhR.RitStateR0tTurnNumRkRlRmRŽ(R
R/R9RR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR[As     
            cCs9tjƒ}|jƒ||_||_|j|ƒdS(N(RfttagMCTurnFightObjActionR•R—RyRŽ(R
R0RR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt syncObjActionPs  
         cCs»t|dƒr.d|jj|jjf}nd|j|jf}tjd||j|jfƒ|jr…|j|j    ƒ7_n|j
r¤t j |j
|ƒnt jƒj|ƒdS(NtHeads%02x%02xs(»ØºÏÕ½¶·¹ý³Ì·â°ü: %s, isNeedReport=%s,%s(thasattrRštCmdtSubCmdR'RLR8R)R7t    GetBufferR,t NetPackCommont SendFakePacktObjPoolt
GetPoolMgrtrelease(R
RtheadStr((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRŽXs         (RRt__doc__R2R R@R?RGRPRSRURCRZR]R`RaR_R[R™RŽ(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR%{s    
              
                    2     t TurnFightMgrcBs2eZd„Zddd„Zd„Zd„ZRS(cCs i|_dS(N(t turnFightDict(R
((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR ls    icCs)t|||tƒ}||j|j<|S(N(R%R2R§R)(R
R-R.R ttf((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt addTurnFightpscCs:|j|ƒ}|sdS|jƒ|jj|dƒdS(N(t getTurnFightR]R§tpopR!(R
R)R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt delTurnFightus 
cCs;d}||jkr%|j|}ntr7tƒ}n|S(N(R!R§R2R%(R
R)R¨((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRª}s  (RRR R©R¬Rª(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR¦is        cCs1d}tjrtj}ntƒ}|t_|S(N(R!t
PyGameDatatg_turnFightMgrR¦(ttfMgr((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytGetTurnFightMgr…s              t    MainFightcBseZd„Zd„ZRS(cCss||_d|_d|_d|_d|_d|_d|_t|_g|_    t
ƒj t j d|ƒ|_dS(Niii(R t    chapterIDtlevelNumtwaveMaxtwavetteamNumtteamMaxR2tnextTeamtwaveLineupListR°R©RStDef_FBMapID_MainR(R
R ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR ‘s                                    cCs|jjtjkS(N(RR-RStDef_FBMapID_MainBoss(R
((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt isLevelBossžs(RRR R¼(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR±Žs     cCstjƒj|ƒ}|jS(N(t PlayerOnlinet GetOnlineMgrtGetOnlinePlayert    mainFight(R,tolPlayer((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytGetMainFightMgr¢scCs«tj|ƒ\}}}tj|ƒ\}}}||kr§tjd|ƒr§tjd||ƒr§tj|||dƒ}tjd||||f|jƒƒq§ndS(Nt MainChaptert    MainLevelis•µ±Ç°Ö÷Ï߹ؿ¨Õ½ÚÓë¹ý¹ØÕ½ڲ»Ò»ÖÂʱ£¬ÇÒ¹ý¹Ø½ø¶ÈÕ½ÚÒѾ­´æÔÚ£¬Ç¿ÖÆÐÞÕýµ±Ç°Ë¢¹Ö½ø¶ÈΪ¹ý¹ØÕ½ڽø¶È! passChapterID-LV=%s-%s,nowChapterID=%s,fixNowValue=%s(    t PlayerControltGetMainLevelPassInfotGetMainLevelNowInfot IpyGameDataPYtGetIpyGameDataNotLogtSetMainLevelNowInfoR'tLogt GetPlayerID(R,R²R³ROt nowChapterIDt fixNowValue((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt OnPlayerLogin§s '    #cCs
i}|S(N((R tlineupIDR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytGetPlayerLineupInfoByCache±scCs“|jƒ}tj|ƒj|ƒ}i|d6|jd6|jd6}i}|jƒjtj    ƒ}x|j
j ƒD]}|j |ƒ}|j }    |j}
d} d} |
dkr
|
|jƒkr
|j|
ƒ} | r
| jƒ r
| jƒ} | jtjƒ} q
ng}||j7}i|    d6|jd6| d    6| d
6|jd6d „|jjƒDƒd 6|d 6|t|ƒ<qsW|ji|d6ƒ|S(NRRRR&iiR}RR‡tDatacSs1i|]'\}}|dkr|t|ƒ“qS(i(tstr(t.0tktv((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pys
<dictcomp>Õs    tAttrDictt SkillIDListtHero(RÌR½R¿t    GetLineupRRtGetItemManagertGetPackt ShareDefinetrptHerotlineupHeroDictRot GetLineupHerotheroIDt    itemIndextGetCounttGetAttIsEmptyt GetUserDatat GetUserAttrtDef_IudetHeroLVtheroSkillIDListtskinIDtheroBatAttrDictRDRÓRA(R,RÐR R"RtheroDicttcurPackRXtheroRáRâtuserDatatheroLVtheroItemt skillIDlist((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytGetPlayerLineupInfo¶s8 !          
 
c    Cstjd|ƒ}|siSi}xÙtdd ƒD]È}t|d|ƒsOPnt|d|ƒƒ}|sqq2ntj|ƒ}|sŒq2ni|jƒtj    6|j
ƒtj 6|j ƒtj 6|jƒtj6|jƒtj6|jƒtj6|jƒtj6|jƒtj6|jƒtj6|jƒtj6|jƒtj6|jƒtj6|j ƒtj!6|j"ƒtj#6|j$ƒtj%6|j&ƒtj'6|j(ƒtj)6}|j*|j+ƒƒg|j,ƒ}i|d6d„|j-ƒDƒd6|d6|t.|ƒ<q2Wi|d    6|d
6}|S( Nt    NPCLineupii
s GetPosNPCID%sR{cSs1i|]'\}}|dkr|t|ƒ“qS(i(RÓ(RÔRÕRÖ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pys
<dictcomp>ús    R×RØt NPCLineupIDRÙi (/RÈtGetIpyGameDatatrangeR›tgetattrt    NPCCommont GetNPCDataPytGetAtkRSt
AttrID_AtktGetDeft
AttrID_DefRƒt AttrID_MaxHPtGetFinalDamPertAttrID_FinalDamPertGetFinalDamPerDeftAttrID_FinalDamPerDeft GetMissRatetAttrID_MissRatetGetMissRateDeftAttrID_MissRateDeftGetSuperHitRatetAttrID_SuperHitRatetGetSuperHitRateDeftAttrID_SuperHitRateDeft GetStunRatetAttrID_StunRatetGetStunRateDeftAttrID_StunRateDeft GetComboRatetAttrID_ComboRatetGetComboRateDeftAttrID_ComboRateDeft GetParryRatetAttrID_ParryRatetGetParryRateDeftAttrID_ParryRateDeft GetSuckHPPertAttrID_SuckHPPertGetSuckHPPerDeftAttrID_SuckHPPerDefRAtGetSpecAttrInfotGetSkillIDListRDRÓ(    RÐtipyDataRìRXtnpcIDtnpcDatat batAttrDictt skillIDListR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytGetNPCLineupInfoÜs83      #
icCsªtjd|||f|ƒ|rEtjƒj|ƒ}|sEdSn|jj}|jddƒ}|jdiƒ}tjƒ}    t    j
ddƒ}
t    j dd    ƒ} xþ|j ƒD]ð\} } t | ƒ}d\}}}d}d}g}i}|| jd
gƒ7}|j| jd iƒƒd }|r­| jd dƒ}| jddƒ}| jddƒ}| jddƒ}t    jd|ƒ}|s’q²n|jƒ}|jƒ}nQ| jddƒ}tj|ƒ}|sÚq²n|jƒ}|jƒ}|jƒ}|    jƒ}|sPn|jƒ}|j|ƒ|j|ƒ|j|ƒ|j||ƒ|j|ƒ|j|ƒ|r‡|j|ƒn|r£|j|||ƒn|t j!kr×t"| ƒdkrÎ| dnd}n4|t j#kr t"| ƒdkr| dnd}n|r!|j$|ƒn|j%ƒ}|j&ƒx|D]}|j'|ƒq>W||j(|<tjd|||||fƒ|j)d„|j ƒDƒ|
ƒq²WdS(sÛÕÙ»½ÕóÈÝÕ½¶·ÊµÀý
    @param faction: ËùÊôÕóÓª£¬Ä¿Ç°Ö§³ÖÁ½¸öÕóÓª£¬1»ò2
    @param num: Õ½¶·ÕóÈÝÔÚ¸ÃÕóÓªÉϵıàºÅ£¬1V1ʱĬÈÏ1£¬¶à¶Ô¶àʱ1~n
    @param lineupInfo: ÕóÈÝÐÅÏ¢
    @param playerID: ·¢ÆðµÄÍæ¼ÒID£¬ÏµÍ³³¡´ÎΪ0
    s0SummonLineupObjs faction:%s,num:%s,lineupInfo=%sNRiRÙtAngerXPitParryCfgiRØR×R&R}RR‡RR{s4AddBatObj ID:%s,faction:%s,num=%s,posNum=%s,skill=%scSs%i|]\}}|t|ƒ“qS((tint(RÔRÕRÖ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pys
<dictcomp>Os    (iii(*R'RLR*R+RR)RRRRÈt
GetFuncCfgtGetFuncEvalCfgRDR&RARötGetAtkDistTypetGetNameRùRút
GetNPCNameR†t    addBatObjRxt    SetTFGUIDtSetNamet
SetFactiont SetLineupPost SetFightPowertSetLVtSetNPCIDt SetOwnerHeroRStAtkDistType_ShortRltAtkDistType_LongRItGetSkillManagert
SkillResettLearnSkillByIDRt InitBatAttr(RFRRRR R,ttfGUIDtlineupPlayerIDRìRtinitXPtatkBackSkillIDListt    posNumKeytheroInfoRXRRáRêtatkBackSkillIDRR"tattrDicttobjNametlvt heroIpyDatat atkDistTypet    npcDataExRYRt skillManagertskillID((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRs„              %% 
   $cCsñtjƒj|ƒ}|j}|j}|dkrAt|ƒdS|dkr^t||ƒdStjƒ}d|_    t
j ||ƒ|dkrŸt |t ƒn5|dkr¸t|ƒn|dkrÔt||ƒnd|_    t
j ||ƒdS(Niiiii(R'R*tGetPlayerByIndextReqTypetReqValuet__doExitMainFightt__doSetFightPointRfttagSCTurnFightReportSigntSignRŸR t__doMainLevelWaveRKt__doMainBossStartt __doMainFight(tindext
clientDatattickR,treqTypetreqValueR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytOnMainFightReq[s*         
               cCs,t|ƒ}|j}|r(|jƒndS(N(RÂRR](R,t mainFightMgrR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRMys
      cCsStjd|ƒ|dkr n"|dkr/n|dkr>ndS|j|ƒdS(NsÉèÖÃÕ½´¸ÏûºÄ±¶Öµ: %siii(R'RLt SetFightPoint(R,t
fightPoint((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRNs    c CsS|jƒ}tj|ƒ\}}}| rc| rctj|dddƒtj|ƒ\}}}ntjd||||f|ƒt|jƒdƒ}tj|t    j
|ƒsÁtjdƒdSt j d|ƒ}|sÝdSt j d||ƒ}|s7x<|dkr3|d8}t j d||ƒ}|rûPqûqûWn|sAdSd}    xE|    dkrŽt|d|    ƒ st|d|    ƒƒ rŽ|    d8}    qJW|    dkrŸdS||    kr´|    }nt|d|ƒƒ}
|
sÔdSt|
ƒ} d} |
| d} t|t    jƒ}|s tjd|ƒdSt|ƒ}t|_||_||_|    |_||_|
|_| |_| |_t jd    d
ƒ}tjtj |||ƒ}}tjd ||||    | ||| f|ƒ|j!}|j"|||ti| d 6| d 6ƒ|j#tj$i|d6ƒ|j#tj%it&| ƒd6ƒ|j'ƒ|j(ƒdS(Nis?ÇëÇó¹Ø¿¨²¨Õ½¶·: chapterID=%s,levelNum=%s,wave=%s,isRestStart=%ssÕ½´¸²»×㣬ÎÞ·¨¿ªÊ¼!RÃRÄisGetWaveLineupIDList%ssûÓÐÉèÖÃÖ÷ÕóÈÝ!tMainlineisPÉèÖÃÆðʼ¹Ø¿¨²¨: ¹Ø¿¨%s-%s,²¨=%s/%s,teamMax=%s,mapID=%s,funcLineID=%s,lineupID=%sR¶R·()RÌRÅRÇRÊR'RLtmaxt GetFightPointt    HaveMoneyRÝtTYPE_Price_XiantaoRÈRöRÉR›RøRlRót Lineup_MainRÂR2R¸R²R³R´RµR¹R¶R·R'RSRºtComMainLevelValueRR@RGRURTR#RPR`(R,t isRestStartR R²R³RµR\tchapterIpyDatat levelIpyDataR´R¹R·R¶RÐtlineupMainInfoRZR1R-R.R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRQ‘sv   
 :                                            #    ' 
 
c Cs|jƒ}tj|ƒ\}}}|s3d}n|sBd}ntjd|||f|ƒtjd|ƒ}|s{dStjd||ƒ}|sšdStj|ƒ\}}}    ||ksÊ||krîtjd||||f|ƒdSd}
xE|
dkr;t    |d|
ƒ s.t
|d|
ƒƒ r;|
d8}
q÷W||
krctjd||
fƒdS|j ƒ} | sydSt | ƒ} d} | | d}d}}
t |tjƒ}|sÏtjd    |ƒdSt|ƒ}t|_||_||_|
|_||_| |_| |_| |_tjd
d ƒ}tjtj|||ƒ}}tjd ||||
| |||f|ƒ|j}|j|||ti| d 6| d6ƒ|j tj!i|d6ƒ|j tj"it#|ƒd6ƒ|j$ƒ|j%ƒt&|j'ƒdS(Nis<ÇëÇóÌôÕ½¹Ø¿¨Boss! passInfo: chapterID=%s,levelNum=%s,wave=%sRÃRÄsmµ±Ç°Ë¢¹ÖÕ½ڹؿ¨ÓëÌôÕ½µÄbossÕ½ڹؿ¨²»Ò»Ö£¬ÎÞ·¨ÌôÕ½! chapterID=%s,levelNum=%s,nowChapterID=%s,nowLevelNum=%sisGetWaveLineupIDList%ss2×îºóÒ»²¨Î´Í¨¹ý£¬ÎÞ·¨ÌôÕ½±¾¹Øboss! passWave=%s < %ssûÓÐÉèÖÃÖ÷ÕóÈÝ!R]isNÉèÖùؿ¨boss: ¹Ø¿¨%s-%s,²¨=%s/%s,teamMax=%s,mapID=%s,funcLineID=%s,lineupID=%sR¶R·((RÌRÅRÆR'RLRÈRöRÇtErrLogR›RøtGetBossLineupIDListRlRóRÝRbRÂR2R¸R²R³R´RµR¹R¶R·R'RSR»RcRR@RGRURTR#RPR`t__processTurnFightR)(R,R R²R³RµReRfRÍt nowLevelNumROR´R¹R·R¶RÐRgRZR1R-R.R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRR×sp             :   
                                     #    ' 
 
 c    CsÒd}|j|ƒ}|r<||dkr<tjdƒdS|j||ƒt|ƒ}|j}|jƒ}|j}|ry|jrh|j    d}|_    tjd|ƒ|dksË|t
|j ƒkrÏdS|j |d}    tjd||    fƒt |_|j i|d6ƒ|jtjit|    ƒd6ƒ|jƒ|jƒ|jƒrut|jƒdSn t|t ƒdS|rƒdSt|ƒt|jƒdƒ}
d} td    t
|jƒ} g} tjƒ}|j}tjd
|| |j|jfƒx¡| | kr t
| ƒt
|jƒkr | d7} |j}|j |kr"tjd |jƒ|j!t"ƒt#j$|t%j&|
ƒs“tjd ƒdS||_ d|_xz|jD]l\}}|j'|ƒ}|j(|ƒ}t)|_*x6|j+j,ƒD]%}|j-|ƒ}t.|||ƒqòWq¯Wn|jt
|jƒkrFd|_nt }|j|j\}}|j'|ƒ}|j(|ƒ}|j*t|j+ƒkrÕ||f| krÀ| j/||fƒn|jd7_qn|tj0krt#j$|t%j&|
ƒstjd ƒdSntjd|j|||j*fƒ|j*dkrEn­|j*dkrWn›|j*dkròx‰t1|j*tdƒD]n}||_*||j+kr¡q}n|j+|}|j-|ƒ}t2||ƒsÒq}n|tj0krêt3}nPq}Wn|jd7_|j*d7_*|j*t|j+ƒkrvtjd|j|||j*fƒ||f| krv| j/||fƒqvn|j4ƒr†Pn|rtjdƒPqqW|jr®dStjd|| | fƒt
| ƒt
|jƒkrÎtjd|jƒ|j5|krt#j$|t%j&|
ƒs/tjdƒdS||_5xO|jD]D\}}|j'|ƒ}|j(|ƒ}x|j+j,ƒD]}q|WqBW|j4ƒrdSn||j6kr¾|jd7_qÎt7|jƒndS(NtMainFightReqTickièsÖ÷ÏßÕ½¶·ÇëÇóCDÖÐis¿ªÊ¼½øÈëÏÂһС¶Ó: teamNum=%ssteamNum=%s,lineupID=%sR¶iis%turnNum=%s,doMax=%s,actionIndex=%s,%ssÖ´ÐÐÐж¯: turnNum=%s, »ØºÏ¿ªÊ¼s»ØºÏ¿ªÊ¼Ê±Õ½´¸²»×ã!s    Õ½´¸²»×ã!s3Ö´ÐÐÐж¯: turnNum=%s,faction=%s,num=%s,actionNum=%siÿÿÿÿsG¸ÃÕóÈݱ¾»ØºÏÒѾ­È«²¿Ðж¯ÍêÁË: turnNum=%s,faction=%s,num=%s,actionNum=%ssÍæ¼ÒÎ佫ÓÐÐж¯ÔòÍ£Ö¹£¡s%turnNum=%s,doCnt=%s,overLineupList=%ssÖ´ÐÐÐж¯: turnNum=%s, »ØºÏ½áÊøs»ØºÏ½áÊøÊ±Õ½´¸²»×ã!(8t GetDictByKeyR'RLtSetDictRÂRR¼R6R¸R¶RlR¹R2R?RGRSRTR#RPR`RjR)RQt
EntryLogicR^R_t    PosNumMaxR;RRR0R<R4R[tFightState_FightingRÅR`RÝRaRCR#RR    RRRQtTurnFightObjPerTurnStartRIRUR÷t OnObjActionRKRZR5R1t OnTurnAllOver(R,RVtkeytlastTickRZRR¼R6R¶RÐR\tdoCnttdoMaxtoverLineupListRR0RRRERFRRYt playerHeroAtkRX((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRS$sð               !     
 
 
     #*
                    #         #            cCs—tƒj|ƒ}|j}|j}t|ƒtjƒ}x=td|dƒD](}||_t    j
d|ƒ|r„|j t ƒnx‘|j D]†\}}t    j
d|||fƒ|j|ƒ}|j|ƒ}    d|    _x6|    jjƒD]%}
|j|
ƒ} t|| |ƒqëWqŽWxO|j D]D\}}t    j
d|||fƒ|j|ƒ}|j|ƒ}    q"WxO|j D]D\}}t    j
d|||fƒ|j|ƒ}|j|ƒ}    qtW|jƒrÌPntt|j ƒ} d} x| | krù|jt|j ƒkrù| d7} |j |j\}}|j|ƒ}|j|ƒ}    xrt|    jtdƒD]Z}|d|    _||    jkr‰qan|    j|}
|j|
ƒ} t|| ƒsºqanPqaW|jt|j ƒdkrçd|_qè|jd7_qèWxi|j D]^\}}t    j
d|||fƒ|j|ƒ}|j|ƒ}    x|    jjƒD]}
qXWqW|jƒrNPqNqNW|js“t|jƒndS(Nis"¡¾----- »ØºÏÖÆÕ½¶·ÂÖ´Î: %s -----¡¿s+»ØºÏ¿ªÊ¼Âß¼­: turnNum=%s,faction=%s, num=%ss'Ö÷¹«Âß¼­: turnNum=%s,faction=%s, num=%ss'ºìÑÕÂß¼­: turnNum=%s,faction=%s, num=%sis+»ØºÏ½áÊøÂß¼­: turnNum=%s,faction=%s, num=%s(R°RªR,R1RoRRR÷R0R'RLR[RqR;RCR#R    RRRQRrRZRpRlR<RsR6RtR)(R)RR,R1RR0RRRERFRRYRxRwRX((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRjËst        
          '
        cCs€|j}|j}|j}|j}|s6|j}ntj|jƒƒ}d|tj    krcdnd|||j
ƒ||fS(Ns%s%s-%s [%s-%s] %stAtB( Rt    lineupNumRXRáRR't    CodeToGbkR*RSRURx(RYRRRXRáRC((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt
GetObjNames                 cCs'|jr dStjdƒt|_dS(NsÖ´Ðнø³¡Âß¼­...(R3R'RLRK(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRo"s
         c Cs(|s
dS|jƒdkr dS|jƒ}|jƒ}tjd||jƒfƒxÌt|jƒƒddd…D]«}|j|ƒ}|jƒ}|s¢qun|j    ƒ}|j
ƒ}    |d}
tjd||    |
fƒ|
dkr |j |
ƒt j |||ƒqut j|||ƒquWdS(Nis¸üÐÂbuff: curID=%s,buffCount=%siÿÿÿÿis=    ¸üÐÂbuffÊ£Óà»ØºÏÊý: buffID=%s,skillID=%s,updRemainTime=%s(RRRxtGetBuffManagerR'RLt GetBuffCountR÷tGetBuffByIndext GetRemainTimet    GetBuffIDt
GetSkillIDt SetRemainTimetTurnBufftSyncBuffRefresht    DoBuffDel( RRYR0tcurIDtbuffMgrRTtbufft curRemainTimetbuffIDRIt updRemainTime((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRr+s*  &   
  #cCsX|s
dS|jƒ}|jƒ}|j|ƒ}tjd||||||fƒdS(NsT        Í³¼ÆÖÎÁÆ: curID=%s,srcID=%s,skillID=%s,addValue=%s,cureHP=%s,updStatValue=%s(Rxt StatCureValueR'RL(tcurObjtsrcObjtaddValuetcureHPRIRŠtsrcIDt updStatValue((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytAddTurnObjCureHPis      c
 
Csñ|jƒ}|jƒ}|r*|jƒnd}||krÄ|j|ƒ}    tjd||||||    |jƒ|fƒ|rí|j|ƒ}    tjd||||||    |jƒ|fƒqín)tjd||||||jƒfƒdS(Nisj        Í³¼ÆÉËѪ: curID=%s,tagID=%s,skillID=%s,hurtValue=%s,lostHP=%s,updStatValue=%s,tagHP=%s,isBounce=%ssj        Í³¼Æ³ÐÉË: curID=%s,tagID=%s,skillID=%s,hurtValue=%s,lostHP=%s,updStatValue=%s,curHP=%s,isBounce=%ssJ        ×Ô²Ð: curID=%s,tagID=%s,skillID=%s,hurtValue=%s,lostHP=%s,curHP=%s(RxR…t StatHurtValueR'RLRRt StatDefValue(
t    curBatObjt    tagBatObjt    hurtValuetlostHPtcurSkilltisBounceRŠttagIDRIR–((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytAddTurnObjHurtValueys       &    ,     cCs|s
dS|jƒ}|jƒ}|dkr2dS|j}t|ƒ}t}|sntjd||fƒdS|jƒ}|jƒ}tjd|||||j    ƒ|fƒ|j
||ƒt j ddƒ}    |j ƒ}
g} xØtd|
jƒƒD]Á} |
j| ƒ} | sqùn| jƒtjgkr8qùntj| ƒrMqùn| jƒr_qùn| jƒ}tj| ƒr•||    krŒqùnd}n|j|ƒ}| j||| gƒqùW| jƒx1| D])}|d} tj||| ƒrÏtSqÏWdS(Nis¡ï»ØºÏ%s %s µ±Ç°×´Ì¬²»¿ÉÐж¯!s.¡ï»ØºÏ%s %s Ðж¯ : atk=%s,curHP=%s/%s,curXP=%sR$iiÿÿÿÿ(RRRxR0RRKR'RLRûR‰RƒR™RÈR'R7R÷t GetSkillCounttGetSkillByIndext GetFuncTypeRStDef_SkillFuncType_AtkbackSkillt SkillCommontisPassiveSkillRƒR…t isAngerSkilltGetSkillUseCntRIRJt    TurnSkillt
OnUseSkill(RRštcurHPRR0RCt    canActiontatktcurXPtxpMaxRHt useSkillListRTtuseSkillRItuseCnttuseInfo((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRssT          )        
 
cCstS(N(RK(RšR›RVtturnBattleTypeR²((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytDoAttackÍsbc
Cs¯|jtjƒd}|dkrCtjd|jƒ|fƒtStj|ƒ}|tj    kr‘t
j ddƒs‘tjd|jƒƒtSnt j |ƒ}|jtjƒ}|dkrÂtS|dkrt
jdd    ƒ}t|ƒ|kr||d
nd}t||d ƒ}nt j|ƒ}td||ƒ}    |    dks[tj|    ƒ r…tjd |jƒ||    ||fƒtStjd |jƒ||    ||fƒtS(Nidis>            ±»·ÇÖ÷Õ½µ¥Î»¹¥»÷ʱÎÞ·¨´¥·¢·´»÷: atkID=%s,posNum=%sR%is&            Ô¶³Ìµ¥Î»²»¿É·´»÷: defID=%si
R%iigY@sf            ÎÞ·¨·´»÷: defID=%s,atkBackNum=%s,atkBackRate=%s=(defAtkBackRate=%s - atkAtkBackDefRate=%s)sf            ¿ÉÒÔ·´»÷: defID=%s,atkBackNum=%s,atkBackRate=%s=(defAtkBackRate=%s - atkAtkBackDefRate=%s)(RmRStDef_Obj_Dict_TurnFightPosInfoR'RLRxR2t AttackCommonR)R6RÈR'tGameObjtGetAtkBackRatetDef_Obj_Dict_TurnAtkBackNumR(RlR&tGetAtkBackDefRateR^t    CanHappenRK(
tatkObjtdefObjRXRFtdefAtkBackRatet
atkBackNumt validPerListtvaildPertatkAtkBackDefRatet atkBackRate((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt
CanAtkBack1s4   &        cCstj|ƒ}|jtjƒ}|dkr1tS|dkrŒtjddƒ}t|ƒ|kro||dnd}t    ||dƒ}ntj
|ƒ}t d||ƒ}|dksÊt j |ƒ rôt jd|jƒ||||fƒtSt jd|jƒ||||fƒtS(    Ni
iR%iigY@s]            ÎÞ·¨Á¬»÷: atkID=%s,comboNum=%s,comboRate=%s=(atkComboRate=%s - defComboReduce=%s)s]            ¿ÉÒÔÁ¬»÷: atkID=%s,comboNum=%s,comboRate=%s=(atkComboRate=%s - defComboReduce=%s)(R¹RRmRStDef_Obj_Dict_TurnComboNumR2RÈR(RlR&tGetComboDefRateR^R'R½RLRxRK(R¾R¿t atkComboRatetcomboNumRÂRÃtdefComboReducet    comboRate((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytCanComboPs"  &        cCsª|jƒ}tjdt|ƒ|fƒ|jdƒ|rH|jƒnd}|r`|jƒnd}tjƒjt    j
ƒ}||_ ||_ ||_ |j|ƒtS(Ns'        %s »ØºÏÕ½¶·Ö÷Ìå±»»÷ɱ: curID=%si(RxR'RLRtSetHPR…R¡R¢tacquireRfttagMCTurnFightObjDeadRyt KillerObjIDtSkillIDRŽRK(RtgameObjtkillerR²Rt killerObjIDRIR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt SetObjKilledŽs               cCsztjdƒtƒj|ƒ}|s)dS|jr6dS|jrNtj|_ntj    tj
tjgƒ|_t |ƒdS(Ns ËùÓлغϽáÊø( R'RLR°RªR6R RSRTtrandomtchoiceRURV(R)R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRtœs         
cCsýtƒ}|j|ƒ}|s"dStjƒ|j|_|j}tjd|||jfƒtj    ƒ}i}x¼|j
j ƒD]«}t |ƒ|kr«i|t |ƒ<n|t |ƒ}|j |ƒ}x^|jj ƒD]M}    t |    ƒ|kri|t |    ƒ<n|t |    ƒ}
|j|    ƒ} tjd||    fƒxé| jjƒD]Ø\} } |j| ƒ}|srqKn|jƒ} |jƒ}|jƒ}|j}|j}|j}tjd| | |||jƒ|jƒ|||f    ƒi| d6|d6|d6|d6|d6|d    6|
t | ƒ<qKWqÚWq€Wg}|j}|r©|j}|tjk}|jtj krt!|||ƒq©|jtj"kr©t#|||ƒq©ni|d
6|d 6t$j%|ƒt$j&6}|j't(|ƒ|jsù|j)|ƒndS( Ns4--- Õ½¶·½áÊø´¦Àí --- %s, winFaction=%s, costTime=%sssÕóÈÝÃ÷ϸ: faction=%s,num=%ss9    Pos:%s ID=%s-%s-%s,,HP=%s/%s, Êä³ö=%s,³ÐÉË=%s,ÖÎÁÆ=%sRyR}R{tAtkHurttDefHurttCureHPR6tstatInfo(*R°RªRBR=R>R6R'RLRRR:RoRÓRCR R#RRDRQRxRzR|thurtStattdefStattcureStatRRRƒR R,RSRUR-RºtOnOver_MainLevelR»tOnOver_MainLevelBosstFBCommontGetJsonItemListt Over_itemInfoR[tFightState_AwardR¬(R)R¯RR6RRÜRt facStatInfoRERtlineupStatInfoRFRXRRYRRátatkHurttdefHurtR”t awardItemListR R,tisWintoverMsg((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRV°s`                            /F        '    c CsÞ|s
dS|jƒ}t|ƒ}t|_tj|ƒ\}}}|s›td|dƒ}tj||||ƒ}    tj    d|||||    f|ƒdS|j
|j krãt |_tj    d||||j
|j f|ƒdS||j krFt|j |dƒ}tj||||ƒ}    tj    d|||||    f|ƒntj    d|||f|ƒtj|ƒ}
tj|||ƒ} | |
krÀtj    d| |
f|ƒtj|| ƒntj    d| |
f|ƒdS(NisRÖ÷ÏßС¹ÖÕ½¶·Ê§°Ü£¬½µÒ»²¨! chapterID=%s,levelNum=%s,wave=%s,nextWave=%s,nowValue=%ssJÖ÷ÏßС¹ÖÕ½¶·Ê¤Àû£¬ÏÂһС¶Ó! chapterID=%s,levelNum=%s,wave=%s,teamNum=%s/%ssTÖ÷ÏßС¹Ö²¨Õ½¶·Ê¤Àû£¬ÏÂÒ»²¨! chapterID=%s,levelNum=%s,wave=%s,nextWave=%s,nowValue=%ssDÖ÷ÏßС¹Ö²¨Õ½¶·Ê¤Àû£¬×îºóÒ»²¨Ñ­»·Ë¢! chapterID=%s,levelNum=%s,wave=%ss1¸üе±Ç°¹ý¹Ø½ø¶È! curPassValue=%s,hisPassValue=%ss>䳬¹ýµ±Ç°¹ý¹Ø½ø¶È£¬²»¸üÐÂ! curPassValue=%s <= hisPassValue=%s(RÌRÂR2R¸RÅRÇR^RÊR'RLR¶R·RKR´tmintGetMainLevelPassValueRctSetMainLevelPassValue( R,RëRêR RZR²R³RµtnextWavetnowValuet hisPassValuet curPassValue((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRàís<                        cCsŽ|s
dS|jƒ}t|ƒ}t|_tj|ƒ\}}}|sptj|ƒ}tjd||ƒdS|j    |j
krµt |_tjd|||j    |j
f|ƒdSt}    t j d||dƒr||d}
} tjd||| f|ƒn„t j d|ddƒrR|dd}
} tjd|||
| f|ƒn7|dd}
} tjd|||
| f|ƒt }    tj||
| dƒ} |    rÍtj|ƒ} tjd    | |ƒn,tj||
| dƒ} tjd
| |ƒtjd | | f|ƒt jd||ƒ}|s2dS|jƒ}tjd |||f|ƒtj||d dtigdtƒ||7}dS(Ns5Ö÷ÏßbossÕ½¶·Ê§°Ü£¡±£³Öµ±Ç°Ë¢¹Ö²¨½ø¶È²»±ä! nowValue=%ssFÖ÷ÏßbossС¶ÓÕ½¶·Ê¤Àû£¬ÏÂһС¶Ó! chapterID=%s,levelNum=%s,teamNum=%s/%sRÄisDÖ÷Ïßboss²¨Õ½¶·Ê¤Àû£¡ÏÂÒ»¹Ø! chapterID=%s,levelNum=%s,nextLevelNum=%ssUÖ÷Ïßboss²¨Õ½¶·Ê¤Àû£¡ÏÂÒ»ÕÂ! chapterID=%s,levelNum=%s,nextChapterID=%s,nextLevelNum=%ssUÖ÷Ïßboss²¨Õ½¶·Ê¤Àû£¡ÒÑͨ¹Ø! chapterID=%s,levelNum=%s,nextChapterID=%s,nextLevelNum=%sis(ÒÑͨ¹ØµÄË¢¹Ö½ø¶È±£³Ö²»±ä: updNowValue=%ss3Ϊͨ¹ØµÄË¢¹Ö½ø¶ÈÉèÖÃΪÏÂÒ»¹ØµÄµÚ1²¨: updNowValue=%ssupdPassValue=%s,updNowValue=%ss.¹ý¹Ø½±Àø: chapterID=%s,levelNum=%s,itemList=%steventt MainLevelBosst isNotifyAward(RÌRÂR2R¸RÅRÆtGetMainLevelNowValueR'RLR¶R·RKRÈRÉtSetMainLevelPassInfoRÊRötGetAwardItemListt ItemControlertGivePlayerItemOrMail(R,RëRêR RZR²R³RORñt    isAllPasst nextChapterIDt nextLevelNumt updPassValuet updNowValueRftitemList((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRásV                           %
cCsdS(N((RTRURV((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytOnTurnFightReportViewYs((((((DRSRfRŸRÅR'R¹RâRÈR½RùRÝR­RúR¦R¸RRªR‡R¡R×RBRcRpRR÷R^tFightState_PrepareOKRqtFightState_FightEndRåR\RRR%R¦R°R±RÂRÏRÑRóR#RRYRMRNR2RQRRRSRjRRoRrR—R!R¡RstTurnBattleType_NormalR¶RÆRÍRÖRtRVRàRáR(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt<module>st                      
'î                
        &    % Z             F    M    §    M    
            >     >d        >        =    *    B