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
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
Z¯þic@s
ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ga!dZ"dZ#e$dƒ\Z%Z&Z'Z(Z)Z*Z+e$dƒ\Z,Z-Z.Z/dfd„ƒYZ0dfd„ƒYZ1dfd    „ƒYZ2d
fd „ƒYZ3d „Z4d fd„ƒYZ5d„Z6d„Z7ej8d„Z9ej8d„Z:ej8dd„Z;ej8dd„Z<ddd„Z=ej8dd„Z>d„Z?dde@dd„ZAdd„ZBd„ZCddd„ZDdde@d„ZEd„ZFe@d„ZGdd „ZHd!„ZId"„ZJd#„ZKeLd$„ZMd%„ZNddeLd&„ZOd'„ZPd(„ZQddgddeLd)„ZRd*d+„ZSd*d,„ZTd-„ZUd.„ZVd/„ZWddd0„ZXd1„ZYd2„ZZd3„Z[d4„Z\d5„Z]e^d6„Z_dd7„Z`d8„Zad9„Zbd:„Zcd;„Zdd<„Zed=„Zfd>„Zgd?„Zhd@„ZidA„ZjdB„ZkddC„Zldd*dD„Zme^dE„ZneLeLdF„ZodG„ZpdH„ZqdI„ZrdJ„ZsddK„ZtdL„ZudM„ZvddN„ZwdS(OiÿÿÿÿNiit    BatLineupcBs}eZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z    d„Z
d    „Z d
„Z d „Z d „ZRS( cCs”||_||_||_d|_i|_d|_d|_d|_i|_i|_    g|_
d|_ t |_ d|_d|_d|_dS(Niid(t    turnFighttfactiontnumtownerIDt
lineupInfot baseAttrPert    shapeTypet
fightPowert _posObjIDDictt_heroObjIDDictt_batHeroObjIDListt _minggeObjIDtActionNumStartt    actionNumt    totalHurttbossIDt bossPosView(tselfRRR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt__init__Ts"                                                                cCs |jjƒS(N(RtgetReqPlayerID(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRjscCs|j S(N(R (R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytisEmptylscCs×|jƒ|t}t|ƒtkr0|tnd}||_||_|jddƒ|_|jddƒ|_|jddƒ|_    |jddƒ|_
|jddƒ|_ t ||j |j||jƒƒdS(NidtPlayerIDit    ShapeTypet
FightPowertBossIDt BossPosView(t clearLineuptlupIndex_LineuptlentlupIndex_BaseAttrPerRRtgetRRRRRtSummonLineupObjsRRR(RtinfoRR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt setLineupInfons
 
"        "cCsvtjƒ}x$|jjƒD]}|j|ƒqWi|_i|_i|_g|_d|_d|_    d|_
dS(Ni( t    BattleObjt GetBatObjMgrR    tvaluest    delBatObjRR
R R RR(Rt    batObjMgrtobjID((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR~s                             cCs¸|jƒ}|jƒ}|jƒ}|jƒ}||j|<|rS||j|<n|tjkr‡||jkr´|jj    |ƒq´n-|tj
kr¢||_ n|tj kr´ndS(N( tGetIDt    GetPosNumt    GetHeroIDt GetBatObjTypeR    R
tChConfigtBatObjType_BatHeroR tappendtBatObjType_MinggeR tBatObjType_Lingshou(RtbatObjR(tposNumtheroIDt
batObjType((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytaddObjŒs      cCs|jS(N(R    (R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytgetPosObjIDDictžscCs |jjƒS(N(R    R%(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytgetAllPosObjIDListŸscCs|jS(N(R (R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytgetBatHeroObjIDList¡scCs-||jkrdStjƒj|j|ƒS(N(R
R#R$t    getBatObj(RR4((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt
getHeroObj£scCs#|js dStjƒj|jƒS(N(R R#R$R:(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt getMinggeObj¨s    cCsad}tjƒ}xH|jD]=}|j|ƒ}|s=qn|jƒrOqn|d7}qW|S(Nii(R#R$R R:tIsAlive(RtdeadCntR'R(R2((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt getDeadObjCnt­s  cCsUd}tjƒ}x<|jD]1}|j|ƒ}|s=qn||jƒ7}qW|S(Ni(R#R$R R:tGetBeFrozenCnt(RttotalCntR'R(R2((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR@ºs (t__name__t
__module__RRRR"RR6R7R8R9R;R<R?R@(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRQs                                                 t
BatFactioncBs/eZd„Zdd„Zd„Zd„ZRS(cCs(||_||_i|_d|_dS(Ni(RRt
lineupDictR(RRR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRÈs
                icCsNd}||jkr%|j|}n%t|j||jƒ}||j|<|S(N(tNoneRERRR(RRtlineup((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt getBatlineupÏs  cCs|jS(N(R(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt getTotalHurtÙscCs(x!|jjƒD]}|jƒqWdS(N(RER%R(RRG((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt clearLineupsÛs(RBRCRRHRIRJ(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRDÅs    
    t    TurnFightcBs7eZdZddddd„Zedid„Zd„Zd„Zgddd„Z    d„Z
d„Z d    „Z d
„Z d „Zid „Zd „Zd„Zd„Zd„Zejd„Zd„Zed„Zd„Zd„Zd„Zd„Zid„Zd„Zd„Zd„Z d„Z!d„Z"RS(sÙij³¡»ØºÏÕ½¶·£¬Ö§³Ö¶àV¶à£¬ËùÓÐÕ½¶·Í¨Óã¬Ö÷Ïß¡¢ÅÀËþ¡¢PVPµÈ
    ¿ÉÄÜΪϵͳºǫ́·¢ÆðµÄ£¬Ôò¹¥»÷·½¡¢·ÀÊØ·½ÕóÈÝÒÔÍæ¼ÒËù±£´æµÄÕóÈݾµÏñ½øÐÐÕ½¶·
    Èç¹ûÍæ¼Ò·¢ÆðµÄ£¬Ôò¹¥»÷·½Îª·¢Æð·½Íæ¼Ò£¬Ä¿±êΪ·ÀÊØ·½£¬Ö§³Ö¶àV¶à£¬Èç×é¶ÓPK
    ¶àV¶àµÄÇé¿öÒ²ÊÇij¸ö¶ÓÔ±¸÷×Ô·¢ÆðÕ½¶·£¬Ö»ÊÇÓõ½¶ÓÓѵľµÏñÕóÈÝÒ»ÆðÕ½¶·£¬¶ÓÓÑÎÞ¸ÐÖª
    
    ¶àV¶à¿ÉʹÓÃÁ½ÖÖģʽ£º
    1. ¶à¸öÕóÈÝÒ»Æð³ö³¡£¬ÔÚÒ»³¡Õ½¶·ÖÐÍê³É
    2. ÒÔµ¥ÕóÈÝ·½Ê½ÂÖÁ÷³ö³¡Õ½¶·£¬¸Ã·½Ê½Í¬Ñù¿ÉÒÔʹÓ÷½Ê½1µÄÂß¼­ÊµÏÖ£¬¹ÌÓÅÏÈʹÓ÷½Ê½1Õ½¶·Âß¼­£¬·½±ãÀ©Õ¹
    icCs||_||_||_d|_||_||_d|_d|_d|_    d|_
t |_ d|_ t |_d|_d|_t |_i|_i|_i|_i|_g|_d|_d|_d|_i|_d|_g|_d|_d|_t |_dS(Niÿÿÿÿiiit( tguidt _reqPlayerIDt _reqServerIDRFt    curPlayertmapIDt
funcLineIDtstatetturnNumtturnMaxt turnNumStarttFalset
enterLogict
winFactiontisWint    batBuffertdateStrt _isNeedReporttstatMsgtmsgDictt_kvDictt factionDicttactionSortListt actionIndext    startTimetcostTimet_oneActionUseSkillCntDictt lineupIndext lineupIDListt
strongerLVt
difficultyt_isPVP(RRMRQRRt reqPlayerIDt reqServerID((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRìs>                                                                                                                        cCsd||_||_||_||_||_|jƒ|jƒi|_i|_|j    |ƒdS(N(
RQRRRUR]RPtsetPVEtsetPVPR_R`t nextTurnFight(RRQRRRUt isNeedReportRPR_((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt setTurnFights                    
 
         cCs|jS(N(RN(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR scCs|jS(N(RO(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytgetReqServerID!scCs1d|_||_||_||_t|_dS(Ni(RgRhRiRjRWRk(RRhRiRj((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRn#s                     cCs t|_dS(N(tTrueRk(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRo+s    cCs|jS(N(Rk(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytisPVP/scCs|jtjtjgkS(N(RQR-tDef_FBMapID_MaintDef_FBMapID_MainBoss(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytisFBMap1scCs|jj|dƒS(Ni(R`R(Rtkey((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt GetDictByKey5scCs||j|<dS(N(R`(RRytvalue((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytSetDict6scCscd|_d|_t|_d|_t|_|jj|ƒtjƒ|_    d|_
t |ƒdS(Nii( RTRVRWRXRYRZR_tupdatettimeRdRetResetByNextTeam(RR_((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRp8s                        
cCs,|jtjko+|jt|jƒdkS(Ni(RYR-t Def_FactionARgRRh(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pythaveNextLineupEscCs-|jƒsdS|jd7_|j|jS(Nii(RRgRh(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt nextLineupIDHs cCsq|j|ƒ}|jƒxQt|dƒD]@\}}| s)|d rMq)n|j|ƒ}|j|ƒq)WdS(Nii(t getBatFactionRJt    enumerateRHR"(RRt
lineupListt
batFactionRR!t    batLineup((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytsetFactionLineupOs
c    Csotjƒ}g}xÚ|jjƒD]É}|j}x·|jjƒD]¦\}}|jr\dnd}d}xE|jƒD]7}    |j    |    ƒ}
|
s–qun||
j
t j ƒ7}quW|j } |d| } |j||| | ||gƒqAWq"W|jdtƒd|_g|_x4|D],} | d\}}|jj||gƒqWtjd|ƒtjd|jƒdS(Niii
treverseiþÿÿÿs+ÕóÈÝÕ½Á¦ÅÅÐò[isPlayer, fp, sortV, f, n]: %ssÕóÈÝÐж¯Ë³Ðò[f, n]: %s(R#R$RaR%RREtitemsRR9R:tGetBatAttrValueR-tAttrID_AtkSpeedRR/tsortRtRcRbt    GameWorldt
DebugLogEx(RR'tsortListR†RRR‡tisPlayertatkSpeedR(R2Rt    sortValuetsortInfo((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytsortActionQueue[s0         '         cCsEd}||jkr%|j|}nt||ƒ}||j|<|S(N(RFRaRD(RRR†((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRƒxs  cCs|jr|jStjƒ}xî|jjƒD]Ý\}}t}xi|jjƒD]X}|s^PnxE|jƒD]7}|j    |ƒ}|sŒqkn|j
ƒrkt }PqkqkWqNW|r,|j t jkrÑt j|_n$|t jkrét jnt j|_t|jƒ|jSq,WdS(Ni(RYR#R$RaRŠRtRER%R9R:R=RWRQR-tPlayerWinMapIDListR€t Def_FactionBtDoTurnFightOverRM(RR'RR†t    allKilledR‡R(R2((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytcheckOverByKilled‚s,       $  cCsJ|j|stntƒx!|jjƒD]}|jƒq)Wd|_dS(Niÿÿÿÿ(t    syncStatetFightState_OvertFightState_RestRaR%RJRS(RtrestR†((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt    exitFight¡s
    cCs)t|_d|_d|_|jƒdS(Nii(tFightState_StartRSRTRVtsyncInit(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt
startFight©s
            
cCs |jdkS(Niÿÿÿÿ(RS(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt    isInFight±scCstj|jdtƒ}|jddƒ}tjƒ}|j|_|j    |_
|j |_ ||_ t|j ƒ|_g|_tjƒ}xU|jjƒD]D}|j|ƒ}tjƒ}||_g|_xì|jjƒD]Û}|j|ƒ}tjƒ}    ||    _|j|    _|j|    _ g|    _!xk|j"ƒj#ƒD]W\}
} |j$| ƒ} | sbq;ntj%ƒ} | j&ƒ| _'| j(ƒ| _)| j*ƒ| _+| j,ƒ| _-| j.ƒt/j0| _1| j.ƒt/j0| _2| j3ƒt/j0| _4| j3ƒt/j0| _5| j6ƒ| _7|j8r>|j9| j(ƒkr>|j8| _:n    |
| _:| j;ƒ| _<| j=ƒt/j0| _>| j=ƒt/j0| _?|    j!j@| ƒq;Wt|    j!ƒ|    _A|jj@|    ƒqÝWt|jƒ|_B|jj@|ƒqšWt|jƒ|_C|jD|ƒdS(Nt ensure_asciis RL(EtjsontdumpsR_RWtreplacetChPyNetSendPackttagSCTurnFightInitRQtMapIDRRt
FuncLineIDRUtTurnMaxtMsgRtLent FactionListR#R$RatkeysRƒttagSCTurnFightFactiontFactiont
LineupListRERHttagSCTurnFightLineuptNumRtOwnerIDRRtObjListR7RŠR:ttagSCTurnFightObjR)tObjIDtGetNPCIDtNPCIDR+tHeroIDt    GetSkinIDtSkinIDtGetHPR-tDef_PerPointValuetHPtHPExtGetMaxHPtMaxHPtMaxHPExtGetLVtLVRRtPosNumtGetXPtAngreXPt GetFightPowerRt FightPowerExR/tObjCntt    LineupCntt
FactionCntt
addBatPack(Rtmsgt
clientPackR'RR†t    tfFactionRR‡ttfLineupR3R(R2ttfObj((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR¡³sd                                       cCs|j|j|ƒdS(N(R›RS(RR_((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytsyncHelpìscCs·||_|tkr!||_ntj|dtƒ}|jddƒ}tjƒ}|j    ƒ|j
|_ |j |_ ||_|j|_||_t|jƒ|_|j|ƒdS(NR¤s RL(RStFightState_AwardR^R¥R¦RWR§R¨ttagMCTurnFightStatetClearRQRªRRR«tStateRTtTurnNumR­RR®RÐ(RRSR_RÑRÒ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR›ñs       
            cCs9tjƒ}|jƒ||_||_|j|ƒdS(N(R¨ttagMCTurnFightObjActionRÙRÛR¹RÐ(RRTR(RÒ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt syncObjActions  
         cCsØt|dƒr.d|jj|jjf}nd|j|jf}|jr¥|jƒ}t|ƒ}tjd||ƒ|j    t
j d|ƒ7_    |j    |7_    n/tjd|ƒ|j rÔt j|j |ƒndS(NtHeads%02x%02xs»ØºÏÕ½¶·¹ý³Ì·â°ü: %s, len:%sRLs»ØºÏÕ½¶·¹ý³Ì·â°ü: %s(thasattrRÞtCmdtSubCmdR]t    GetBufferRRŽRR[tCommFunct    WriteWORDRPt NetPackCommont SendFakePack(RRÒtheadStrtpackBufftbuffLen((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRÐ
s          cCs i|_dS(N(Rf(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytResetOneActionUseSkillCntscCs|jj|dƒS(Ni(RfR(RR(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytGetOneActionUseSkillCnt scCs||j|<|S(N(Rf(RR(tuseCnt((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytSetOneActionUseSkillCnt!s N(#RBRCt__doc__RRWRFRrRRsRnRoRuRxRzR|RpRR‚RˆR•R-R€RƒRšRŸR¢R£R¡RÖR›RÝRÐRêRëRí(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRKás:    &                                              
                 9                     t TurnFightMgrcBs5eZd„Zdddd„Zd„Zd„ZRS(cCsd|_i|_dS(Ni(tlastRequestTickt turnFightDict(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR(s        icCsMt|||||ƒ}|s9t|||||ƒ}n||j|j<|S(N(RKRñRM(RRMRQRRRlRmttf((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt addTurnFight-s
cCs:|j|ƒ}|sdS|jƒ|jj|dƒdS(N(t getTurnFightRŸRñtpopRF(RRMR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt delTurnFight4s 
cCs;d}||jkr%|j|}ntr7tƒ}n|S(N(RFRñRWRK(RRMRò((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRô<s  (RBRCRRóRöRô(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRï%s        cCs1d}tjrtj}ntƒ}|t_|S(N(RFt
PyGameDatatg_turnFightMgrRï(ttfMgr((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytGetTurnFightMgrDs              t    MainFightcBs#eZd„Zd„Zd„ZRS(cCss||_d|_d|_d|_d|_tƒjtjƒt    j
d|ƒ|_ d|_ d|_ d|_dS(Nii(tplayerIDt    chapterIDtlevelNumtwaveMaxtwaveRúRóRŽtGetGUIDR-RvRt useZhanchuitmjExpt
killNPCCnt(RRü((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRPs                    '            cCsd|_d|_d|_dS(Ni(RRR(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytresetMainFightExDataRec^s            cCs|jjtjkS(N(RRQR-Rw(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt isLevelBosses(RBRCRRR(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRûMs        cCstjƒj|ƒ}|jS(N(t PlayerOnlinet GetOnlineMgrtGetOnlinePlayert    mainFight(RPtolPlayer((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytGetMainFightMgriscCs«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(RPRýRþt_t nowChapterIDt fixNowValue((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt OnPlayerLoginns '    #cCs/|s
dSt||ƒ}|jd|jƒƒS(NiR(tGetCacheLineupInfoRtGetFightPowerTotal(t tagViewCachet batPresetTypeR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytGetCacheLineupFightPowerxsc    Csž|jƒ}|jdiƒ}|jd|iƒ}|jdtjdƒ}|jdiƒ}|jd|iƒ}|sšd}|jd|iƒ}n|S(Nt    BatPresets%sitLineup(t GetPlusDictRt ShareDefinetFuncPreset_Battle(    RRtplusDictt batPresetDicttbatTypePresetDictt batPresetIDRERtdefBatPresetID((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR}s icCst|||ƒjS(N(tGetPlayerLineupByTypeR(RPRtexclusiveMapID((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytGetPlayerLineupFightPower‹scCs"tj||ƒ}t|||ƒS(N(t PlayerPresettGetBatPresetIDtGetPlayerLineupByID(RPRR+R(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR*ŽscCs›tj|tjƒ}|s$|}ntj|ƒ}|j|d|ƒ}|jƒr—||kr—tj    d||f|j
ƒƒ|j|d|ƒ}n|S(NR+sAÍæ¼ÒûÓÐÄ¿±êÕóÈÝĬÈÏÈ¡Ö÷ÏßÕóÈÝ! batPresetID=%s,mainBatPresetID=%s( R-R.R#tBatPreset_MainRR    tGetPresetLineuptIsEmptyRŽRR(RPR(R+tmainBatPresetIDR RG((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR/‘s    cCs¯tj||ƒ}|jƒ}t|||ƒ}|jƒr@iS|j}i}|jƒjtj    ƒ}xl|j
ƒD]^}|j |ƒ}    |    j }
|    j } d} d\} }}d}| dkrP| |jƒkrP|j| ƒ}|rP|jƒ rP|jtjƒ} |jtjƒ} |jtjƒ}|jtjƒ}|jƒ}qPng}||    j7}i
|
d6|    jd6| d6| d6|d6|d    6|d
6|    jd 6d „|    jjƒDƒd 6|d6|t|ƒ<qtW|sàiStj||tjƒ}tjƒj |ƒ}|j!t"j#|ƒ}g}xH|jƒD]:\}}t$j%||ƒ}||kr5|j&|ƒq5q5Wi|d6|jd 6|d6|d6}|r«||d<n|S(Niis{}R¼R¾RÇtStartDatatBreakLVtAwakeLVRcSs1i|]'\}}|dkr|t|ƒ“qS(i(tstr(t.0tktv((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pys
<dictcomp>Äs    tAttrDictt SkillIDListRt BatPresetIDtHerot MGSkillIDList(iii('R-R.RR/R2R(tGetItemManagertGetPackR#trptHerot GetPosNumListt GetLineupHeroR4t    itemIndextGetCounttGetAtt GetUserAttrtDef_IudetHeroLVtDef_IudetHeroStartDef_IudetHeroBreakLVtDef_IudetHeroAwakeLVt GetUserDatatheroSkillIDListtskinIDRtheroBatAttrDictRŠR8tGetFuncPresetIDtFuncPreset_MinggeRRR    tGetCalcSpecInfoR-tDef_CalcAttr_Mingget SkillCommontGetSkillIDBySkillTypeIDR/(RPRR+R(RüRGtheroDicttcurPackR3theroR4RFtheroLVtstartbreakLVtawakeLVtuserDatatheroItemt skillIDlistt
mgPresetIDR t mgSkillLVDictt mgSkillIDListt skillTypeIDtskillLVtskillIDR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytGetPlayerLineupInfoœsd               
 
 % cCs¹|jƒ}tjd|ƒ}|s(dS|jƒ}t|ƒ|krP||nd}tjddiƒ}tjddƒ}t|ƒdkr™|dnd}    t|ƒdkr»|dnd}
t|ƒdkrÝ|dnd} t|ƒdkrÿ|dnd} t|ƒdkr!|dnd} d}t||| | ƒ}i}i    |d    6|d
6|
d 6| d 6| d 6| d6|d6d„|jƒDƒd6|d6|t|    ƒ<i|d6|d6S(NR?it HeroBatViewiiidiiR¼R¾RÇR4R6R7RcSs1i|]'\}}|dkr|t|ƒ“qS(i(R8(R9R:R;((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pys
<dictcomp>ös    R<R=R(    RRtGetIpyGameDatat GetSkinIDListRtGetFuncEvalCfgtGetNPCHeroSkillIDListRŠR8(RPR4t    skinIndexRüt heroIpyDatat
skinIDListRPRQt heroViewInfoR3R[R\R]R^RRaRX((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytGetPlayerHeroBatViewLineupInfoÙs6  """"""c Cs%t|||ƒ}|r|Stjd|ƒ}|s8iS|jƒ}|jƒ}i}    x¦tdd    ƒD]•}
t|d|
ƒsƒPnt|d|
ƒƒ} | s¥qfn|r½|| kr½qfnt|| |||ƒ} | sáqfn| |    t    |
ƒ<|rfPqfqfWi|d6|    d6|d6|d6}|S(
Nt    NPCLineupiis GetPosNPCID%st NPCLineupIDR?RRi(
tGetGMTestNPCLineupInfoRRjt    GetBossIDtGetBossPosViewtrangeRßtgetattrtGetNPCBattleDictR8( tlineupIDRiRjtisLogt    viewNPCIDRtipyDataRRRXR3tnpcIDt
battleDict((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytGetNPCLineupInfoûs2  "c CsÊ|s|jƒ}ntjƒ}d\}}|jƒ}tj|ƒ}tj|ƒ}|sqtj|dƒdSt|ƒ}t    |ƒgg}    |gg}
t
||||    |
||ƒ} | rÆ| j SdS(NitTagNoViewCache(ii( RRŽRtGetPlayerServerIDtPlayerViewCachetFindBattleViewCacheRt
NotifyCodeRRhtDoTurnFightPVPReRF( RPt tagPlayerIDRMRQRRRltplayerServerIDRt defLineupInfot lineupListAt lineupListBR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt    GMTestPVPs     cCs#||gat|tƒgadS(N(tg_gmTestFightReqt__doMainLevelWaveRt(RPt
heroIDListt
isAllSkill((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt GMTestFight2s  cCsbts
dSt\}}tjd|ƒ}|s2dSi}i}xtddƒD]~}t|d|ƒskPnt|d|ƒƒ}    |    sqNnt||    ||ƒ}
|
s®qNn|
||    <|
d} |    || <qNW|sÚdSi} x[t|dƒD]J\}} | |krqðn|| }    ||    | t|ƒ<d||d<qðW|j    ƒd} g}g}tj
ƒ}x[t |j ƒƒD]G}|j |ƒ}|jƒ} |jƒ}    |j|    ƒ|j| ƒqyW|j| ƒ}t|dƒddd…t|d|j ƒƒ}xË|D]Ã}||}    ||} | |kr:qnt||    ||ƒ}
|
s[qnxTt|dƒD]C\}}| sk| |krqknd||d<|
| t|ƒ<qkW|jdƒt|ƒkrPqqW|r<x^| jƒD]M}
|
d} | rtjd| ƒnd}t| |d    d    ƒ}||
d
<qèWni|d 6| d6dd 6dd 6}|S(NRsiis GetPosNPCID%sR¼iiÿÿÿÿR?iŸ†R=RtRRi(RŽRRjRxRßRyRzR„R8R°tIPY_Datatxranget GetNPCCountt GetNPCByIndextGetRelatedHeroIDRºR/tindextcountRR%RFRm(R{RiRjRR‘t lineupIpyDatatnpcDictt heroNPCIDDictR3RR€R4RXt lineupNPCIDt ipyNPCIDListt ipyHeroIDListt
ipyDataMgrR˜R~tlineupNPCIndext loopIndexListt    posHeroIDRot skillIDListR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRu:s€ 
 
 
    4 
 
 
"c Cs\tj|ƒ}|sdS|jƒ}|jƒ}d\}}    }
|jƒ} d} |rjtjd|ƒnd} d}tjd|ƒ}|rä|räx7|D]/}|j    ƒ sÀ||j    ƒkr›|}Pq›q›W|sä|d}qän|r|rtjd| |ƒ} | r|}qn| s5tjd| |ƒ} n| rb| j
ƒ}| j ƒ}    | j ƒ}
n| r¢| j ƒ}|r„|dnd}t|| |    |
ƒ}nd}d}g}|jƒ}||kr[|jƒ}|r[gt|ƒ}|jƒ}|dkr2t|ƒ|kr2tj|ƒ|| }n||7}|oTtjd||ƒq[nt|| |||ƒ}|s’i|jƒtj6|jƒtj6|jƒtj6|j ƒtj!6|j"ƒtj#6|j$ƒtj%6|j&ƒtj'6|j(ƒtj)6|j*ƒtj+6|j,ƒtj-6|j.ƒtj/6|j0ƒtj16|j2ƒtj36|j4ƒtj56|j6ƒtj76|j8ƒtj96|j:ƒtj;6}n|j<ƒ}x@|j=ƒD]2\}}t>|ƒ}|j?|dƒ|||<q«Wi    |d6|d6|d    6|d
6|d 6|    d 6|
d 6d„|j=ƒDƒd6|d6}|oWtjd|||| |ƒ|S(NiR?t NPCStrongeriÿÿÿÿt    LVReValues"ÕóÈÝboss¼¼ÄÜ: %s, Ëæ»ú¸½¼Ó¼¼ÄÜ: %sR»R¼R¾RÇR4R6R7cSs1i|]'\}}|dkr|t|ƒ“qS(i(R8(R9R:R;((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pys
<dictcomp>Ùs    R<R=sEGetNPCBattleDict npcID=%s,strongerLV=%s,difficulty=%s,reModelID=%s,%s(iii(@t    NPCCommont GetNPCDataPyR—RÆt GetReModelIDRFRRjtGetIpyGameDataListNotLogtGetNPCLVt GetReHeroStartGetReHeroBreakLVtGetReHeroAwakeLVRkRmRvtGetSkillIDExListtlistt GetSkillExCntRtrandomtshuffleRŽRtGetNPCStrongerAttrDicttGetAtkR-t
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_SuckHPPerDeftGetSpecAttrInfoRŠtintR(RšRRiRjR|tnpcDataR4tnpcLVR\R]R^t    reModelIDt lvReIpyDataRot npcStrongertnpcStrongerListt strongerDataRpRPR¤Rt skillIDExListtrandSkillIDExListt
skillExCntt batAttrDictt
exAttrDictt    attrIDStrt    attrValuetattrIDR€((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRz‰sŽ                
3      &  
 
"c Cs|jƒ}|jƒ}||g}tjd|ƒ}|r§xh|D]]}|jƒ|kr_Pn|jƒ}    |    r|j|    ƒn|jƒ}
|
rC||
7}qCqCWntjd|ƒ} | r xI| D]>} | jƒ|krâPn| jƒ}    |    rÆ|j|    ƒqÆqÆWn|S(Nt    HeroBreakt    HeroAwake(    tGetNormalSkillIDtGetAngerSkillIDRRªt
GetBreakLVt
GetSkillIDR/R¯t
GetAwakeLV( R4RoR]R^t normalSkillIDt angerSkillIDR¤tbreakIpyDataListt breakIpyDataRgRßtawakeIpyDataListt awakeIpyData((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRmàs.        c     Csi}| s| s| r|S|jƒ}x·tjD]¬}tjd|ƒ}|sYq5n|jƒ}    t|d|    ƒs~q5nt|d|    ƒƒ}
t|d|    ƒr½t|d|    ƒƒnd} t|
| |ƒ} | ||<q5W|ot    j
d||||ƒ|S(Nt
PlayerAttrsGetRe%ss
Get%sRatiois,NPC³É³¤ÊôÐÔ: npcID=%s,lv=%s,difficulty=%s,%s( RÆR-tCalcBattleAttrIDListRRjt GetParameterRßRyR×RŽR( RRÛRÜRjR|RâtlvRæt attrIpyDatatattrNametreValuetratioRå((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR´ýs"  /c+    Csy|jddƒ}|jddƒ}|j}tjd|||||ƒ|jdgƒ}|j}    |    j}
|jdiƒ} tjƒ} |rj| jƒ} | rj| j    |ƒ| j
|
ƒ| j |ƒ| j t j|ƒ| jƒ}|jƒx|D]}|j|ƒqúW|j| ƒtjd||| jƒ|jƒƒt| ƒ| jidt j6ƒqjntjd    dƒ}xö| jƒD]è\}}t|ƒ}d}g}i}||jd
gƒ7}|j|jd iƒƒ|jd dƒ}|jd dƒ}|jddƒ}|jddƒ}|jddƒ}d\}}}}} |ritjd|ƒnd}!|!rÀ|!jƒ}"|!j ƒ}|!j!ƒ}|!j"ƒ}|!j#ƒ}|!j$ƒ} n|rç|jddƒ}|!sq‰qn0t%j&|ƒ}#|#sq‰n|!s|#j'ƒ}"n| jƒ}$|$s-Pn|rC|$j(|ƒn|rY|$j    |ƒn|$j
|
ƒ|$j)|"ƒ|$j |ƒ|$j ||ƒ|$j*|ƒ|$j+|ƒ|$j,|ƒ|$j-|ƒ|$j.|ƒ|$j/|ƒ|$j0|ƒ|$j1| ƒ|$j2||ƒ|$jƒ}|jƒx|D]}|j|ƒq%W|j|$ƒtjdt3|$ƒ|||jƒƒt|$ƒ|rÅt4j5|    |$ƒ}%|%rÅtjd||%ƒd„|%jƒDƒ}qÅni}&x“|jƒD]…\}'}(t|'ƒ})|(}*|)t j6ks|)t j7krS|dkrSt|(|dƒ}*tjd|)|*|(|ƒqSn|*|&|)<qØW|$j|&|ƒq‰WdS(sÞÕÙ»½ÕóÈÝÕ½¶·ÊµÀý
    @param faction: ËùÊôÕóÓª£¬Ä¿Ç°Ö§³ÖÁ½¸öÕóÓª£¬1»ò2
    @param num: Õ½¶·ÕóÈÝÔÚ¸ÃÕóÓªÉϵıàºÅ£¬1V1ʱĬÈÏ1£¬¶à¶Ô¶àʱ1~n
    @param lineupInfo: ÕóÈÝÐÅÏ¢
    @param reqPlayerID: ·¢ÆðµÄÍæ¼ÒID£¬ÏµÍ³³¡´ÎΪ0
    RiRtsRSummonLineupObjs faction:%s,num:%s,baseAttrPer=%s,npcLineupID=%s,lineupPlayerID=%sR@R?s9AddBatObj Ãü¸ñ: faction:%s,num:%s,objID=%s,skillIDList=%sitAngerXPR=R<R»R¼R¾RÇR4Rs#AddBatObj %s,lv=%s,star=%s,skill=%ss#¸±±¾Ö¸¶¨NPC³õʼ»¯ÊôÐÔ: npcID=%s, %scSs%i|]\}}|t|ƒ“qS((R8(R9R:R;((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pys
<dictcomp>„s    idgY@s<·Ç100»ù´¡ÊôÐÔ: attrID=%s,attrValue=%s,100v=%s,baseAttrPer=%sN(iiiii(8RRRŽRRRMR#R$t    addBatObjt
SetOwnerIDt    SetTFGUIDt
SetFactiont SetLineupPosR-tTFPosNum_MinggetGetSkillManagert
SkillResettLearnSkillByIDR6R)tGetSkillIDListt ResetObjSkillt InitBatAttrR¹Rt
GetFuncCfgRŠR×R}RjRFtGetNamet GetSpecialtytGetAtkDistTypet
GetCountrytGetSextGetJobR§R¨t
GetNPCNametSetNPCIDtSetNamet SetFightPowertSetLVtSetStartSetAtkDistTypet SetSpecialtyt
SetCountrytSetSextSetJobtSetHerot
GetObjNametFBLogictGetFBNPCInitAttrtBaseAttrIDListRŒ(+R‡RRRRltlineupPlayerIDt npcLineupIDRRdRttfGUIDRXR't    minggeObjt skillManagerRgtinitXPt    posNumKeytheroInfoR3RR¤tattrDictRR4RPR÷R\t    specialtyt atkDistTypetcountrytsextjobRotobjNamet    npcDataExR2tfbNPCInitAttrDictt initAttrDictR:R;RæRå((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR sÄ                  
  %
                       
  %
  cCs |jtjƒ}|sdStjdƒ|jdƒ}tjƒ}xÂ|jƒD]´}|j    |ƒ}|srqQnt
|ƒ}|j ƒs tjd|ƒqQntjd||j ƒ|j ƒ|jƒƒ|jƒ}|jƒt|ƒtj|ƒtj|ƒqQWdS(NsÇл»Ð¡¶ÓÖØÖÃÍæ¼ÒÕóÈÝÎ佫...is    Òѱ»»÷ɱ²»´¦Àí! %ssÖØÖÃÎ佫: %s, HP:%s/%s, XP:%s(RƒR-R€RŽRRHR#R$R8R:RR=R¿RÃRÉtGetBuffManagert    ClearBuffRtTurnBufftRefreshBuffAttrt TurnPassivetRefreshPassive(RR†R‡R'R(R2R.tbuffMgr((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR“s*    + 
 
 cCsßtƒ}tjddƒ}|ra|jra||j|kratjdƒtj|dƒtSntjddƒ}|j    |ƒ}|rÂ|rÂ|||krÂtjd|ƒtj|dƒtS||_|j
||ƒt S(Nt TurnFightCDis»ØºÏÖÆÕ½¶·ÇëÇó·þÎñÆ÷¹«¹²CDÖÐ!tBattleCoolDownis»ØºÏÖÆÕ½¶·ÇëÇóCDÖÐ: %s( RúRR    RðRŽRRR†RtRzR|RW(RPtticktselfKeyRùtpubCDtselfCDtlastTick((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt CheckFightCD³s          c# Cstjƒj|ƒ}|jƒ}|j}|j}|j}|j}|j}    tj    d|||||    |ƒi}
t
j ||||||    |
ƒ} | sždSd} t | t ƒrút| ƒdkrÏ| dn|}t| ƒdkrñ| dnd} ntj    d|| |ƒ| dkr:tjd|| f|ƒdS| dkr×tjƒj|ƒ} | sutjd|ƒdSt
j| |||||    |
ƒ} | s dSt | t ƒr×t| ƒdkrË| dn|}q×ntj|ƒ}tj||tƒ}|r,tj|||||ƒtjkr,dSnt||d    ƒrBdS|}tj|ƒ}tjƒ}|tjkr½|    s|dS|    d}t|    ƒdkr¢|    dnd}t |||ƒ}n-tj!j"|tj#ƒ}t$||d
|ƒ}|stj    d ||ƒdS|dkrY|}t%j&|ƒ}| r]| r]tj    d ||ƒt'j(|d ƒdS|
j"ddƒ}tj)j"|tj#ƒ}i}|rÕt*||ƒ}|sÕtj    d|||ƒt'j(|dƒdSn|||    |
g}|gg}||||gg}| r4t+|| |||||d|ƒt,St-|||||||d|ƒn¹gdd}} }!|rš|j.ƒ}|j/ƒ} |j0ƒ}!n|sÑt
j1|||ƒ}"|"s¿dS|"\}} }!n|sÛdS|gg}g}t-||||||||| |!ƒ
t,S(sb ±¾Õ½¶·»áÒ»´ÎÐÔ´¦ÀíÍêËùÓÐС¶ÓÕ½¶·£¬ÒÔÕ½±¨µÄÐÎʽÏ·¢£¬Ä¿Ç°³ýÁËÖ÷ÏßС¹Ö·Ö¶ÎÕ½¶·Í⣬¾ùʹÓøÃÕ½¶·
    sM----- »ØºÏÖÆÕ½¶·ÇëÇó: mapID=%s,funcLineID=%s,tagType=%s,tagID=%s,valueList=%sNiiis"    funcLineID=%s,crossServerID=%ss/¿ç·þÕ½¶·ËùÊô¿ç·þÒì³£! mapID=%s,crossServerID=%ss±¾·þÍæ¼Ò²»´æÔÚcrossPlayer!tTurnFightReqTickR+sÍæ¼ÒûÓÐÖ÷ÏßÕóÈÝÊý¾Ý! mapID=%ss(±¾·þÄ¿±êÍæ¼ÒûÓлº´æÊý¾Ý! tagPlayerID=%sR‚tdefBaseAttrPerids>Ä¿±êÍæ¼ÒûÓиÃÕóÈÝÔ¤ÉèÊý¾Ý! tagPlayerID=%s,defBatPresetType=%st TagNoLineuptreqData(2RŽtGetPlayerManagertGetPlayerByIndexRRªR«tTagTypetTagIDt    ValueListRRtOnTurnFightRequestt
isinstancettupleRtErrLogt CrossPlayertGetCrossPlayerMgrtFindCrossPlayertOnTurnFightRequestCrosstFBCommont GetFBIpyDatatGetFBLineIpyDataRWtCheckCanEnterFBCommR#tEntFBAskRet_OKR@RƒRR-tDef_FBMapID_HeroBatViewRrtMapAtkBatPresetTypeDictRR0RhR„R…RR†tMapDefBatPresetTypeDictRtSendToCrossBattleRttAddToBattleQueuetGetLineupIDListR«t GetDifficultytGetFBNPCLineupInfo(#R˜t
clientDataR;RPRüRQRRttagTypettagIDt    valueListt    reqExDicttreqRett crossServerIDt crossPlayert    fbIpyDatat fbLineIpyDataRlR‰RMR4Rnt atkLineupInfotatkBatPresetTypeRˆRRBtdefBatPresetTypeRŠRDR‹RŒtnpcLineupIDListRiRjtret((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt OnTurnFight×s´                     !"%  !($ 
"  "%       %c CsŸtjƒjƒ}|jdƒ}    |    rK||    dkrKtj|dƒdS|jd|ƒ|jƒ}
||||||g} tj    t
j | |g|
ƒdS(NtS2C_BattleRequestiÐt RequestLater( RŽt GetGameWorldtGetTickRzRR†R|RtCrossMsgtSendToCrossServerR#Ro( RPReRMRQRRR‹RŒRDR;R?RütdataMsg((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRZ\s c
Cs!|\}}}}}}|\}    }
} } tjd||||    |
| | |ƒ    tjƒj|ƒ} | s~tjd|ƒdStj| |||    |
| | ƒ}|s©dSt|t    ƒrÝt
|ƒdkrÔ|dn|}n|    dkr|}| j ƒ}t ||||||||ƒndS(Nsb----- ÊÕµ½¿ç·þÕ½¶·ÇëÇó: fromServerID=%s,mapID=%s,funcLineID=%s,tagType=%s,tagID=%s,valueList=%s,%ss¿ç·þÍæ¼Ò²»´æÔÚcrossPlayer!i( RŽRRNRORPRMRRQRKRLRt GetServerIDtAddToCrossBattleQueue(Rut fromServerIDRüRMRQRRR‹RŒRDR`RaRbRcRfRdRlRm((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRojs$    !%  "c CsätjƒsdS| s&|tjkr;tjd|ƒdSi}|}    xë||gD]Ý}
xÔ|
D]Ì} | sqdS| t} | r‡qant| ƒtkr£| tnd} | s³dSt| ƒtkrÏ| tnt    j
}t j | ƒ}|stjd| |fƒdStj |jƒƒ}||g|| <qaWqTW|r¾||||||    |gtj|<xZ|jƒD]L\} }|\}}i|d6| d6|d6}tjt    j||gƒqjWdSt|||||||    d|ƒdS(    sÌí¼Ó½ø¿ç·þÕ½¶·¶ÓÁУ¬Ö§³Ö¸öÈËÖ÷¶¯ÇëÇóÕ½¶·»òϵͳ´´½¨µÄÕ½¶·
    @param lineupListA: ÕóÓªAËùÓÐÕóÈÝ [[ÕóÈÝÐÅÏ¢, ...], ...]
    @param lineupListB: ÕóÓªBËùÓÐÕóÈÝ[[ÕóÈÝÐÅÏ¢, ...], ...]
    @param reqPlayerID: Ö÷¶¯ÇëÇóµÄÍæ¼ÒID£¬Èç¹ûΪ¿ç·þ·þÎñÆ÷Ö÷¶¯·¢ÆðµÄ£¬ÔòΪ0
    Ns¿ç·þÕ½¶·ÇëÇóguidÒì³£! guid=%sis5¿ç·þÕ½¶·ÇëÇóʱÕÒ²»µ½Ä¿±êÍæ¼Ò»º´æ! playerID=%s,guid=%sRMt batPlayerIDRRD(RŽt IsCrossServerR÷tg_crossBatQueueDictRMRRtlupIndex_PlayerIDtlupIndex_BatPresetTypeR#R0R„t FindViewCachetGetMainServerIDRvRŠRstSendToClientServertC2S_PullPlayerBatDataR[(RMRQRRR‹RŒRlRmRDtpullPlayerDictR‰R…tlupInfoRERüRRt mainServerIDR!Ru((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRw‹sB  
"%" "cCs°|d}|d}|d}i}tjƒj|ƒ}|rQt||ƒ}n'tj|ƒ}|rxt||ƒ}ni|d6|d6|d6}tjt    j
||gƒdS(NRMRyRR( RŽREtFindPlayerByIDRhR„R…RRsRtR#tS2C_PlayerBatDataRet(RuRxRMRyRRtplayerR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR¾s
 
 
c
Csª|d}|d}|d}|tjkr1dStj|\}}}}}}    }
d} |rtjƒj|ƒ} | s~dS| jƒ}    n|sàtjd|||||fƒtjj    |ƒ| rÜtj
| dƒndSt } x||gD]s} xj| D]b}|sdS|t r qnt |ƒtkrO|t|krO||t <n|t st} qqWqóW| stdStjj    |ƒt|||||||    d|
ƒdS(NRMRyRsW¿ç·þÕ½¶·ÕÒ²»µ½Ä¿±êÍæ¼ÒÕ½¶·Êý¾Ý! batPlayerID=%s,reqPlayerID=%s,mapID=%s,funcLineID=%s,%sR‚RD(R÷R{RFRNRORPRvRŽRMRõR†RtRRR|RWR[(RuRMRyRRQRRR‹RŒRlR‰RDRft allBatDataOKR…Rƒ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR†ÐsF
 
 
"     
" 
"c  Csß|s
dS| r| rdStjƒjƒ} ||||||||||    |
g } tjddƒ} t}| dkr‚t}n*| dkr¬tjƒjƒs¬t}q¬n|rÎtj    | ||||ƒn t
| | ƒdS(s/Ìí¼Ó½øÕ½¶·ÇëÇó¶ÓÁУ¬ÕâÀï×öÕ½¶··Ö·¢´¦Àí£¬Óɵ±Ç°·þÎñÆ÷¸ù¾Ýµ±Ç°·þÎñÆ÷Çé¿ö·ÖÅäµ½±¾»ú×ӵįäËûÕ½¶·µØÍ¼£¬»òÖ±½Ó±¾µØÍ¼´¦Àí
    @param lineupListA: ÕóÓªAËùÓÐÕóÈÝ [[ÕóÈÝÐÅÏ¢, ...], ...]
    @param lineupListB: ÕóÓªBËùÓÐÕóÈÝ[[ÕóÈÝÐÅÏ¢, ...], ...]£¬pvpʱÓÃ
    @param reqPlayerID: ÇëÇóµÄÍæ¼ÒID£¬Èç¹ûÊÇϵͳ×Ô¶¯´¦ÀíµÄÕ½¶·³¡´Î£¬ÔòΪ0
    @param npcLineupIDList: pveʱÓã¬Òª¶ÔÕ½µÄnpcÕóÈÝIDÁбí
    @param strongerLV: pveʱÓã¬npcÊôÐԳɳ¤µÈ¼¶
    @param difficulty: pveʱÓã¬npcÊôÐÔÄѶÈϵÊý
    @param reqData: Ã¿³¡Õ½¶·×Ô¶¨ÒåµÄÇëÇóÐÅÏ¢£¬Óɹ¦ÄÜ×Ô¼º¾ö¶¨£¬ÈÎÒâ½á¹¹£¬Í¸´«²ÎÊý
    NtTurnFightProcessii( RŽRqRvRR    RWRtt GetDebugLevelRstSendBattleRequesttS2B_BattleRequest(RMRQRRR‹RŒRlR‰RlRiRjRDRxtreqInfot multiMapSett
isMultiMap((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR[ûs" '        RLc Cs|\ }}}}}}}    }
} } } |
rTt||||||    |
| | ƒ    }nt|||||||    ƒ}d}i}d}|r¨|j}|j}|j}n|||||||| g}|tjƒjƒkrît    ||ƒnt
j ||||||ƒdS(NRL( tDoTurnFightPVER‡RFR^RYR\RŽRqRvtB2S_BattleResultRstSendBattleResult(RRxtmsgTypeRMRQRRR‹RŒRlR‰RlRiRjRDRRYR^R\tretInfo((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRŒs ''         c Cs<|\}}}}}}}    }
ddgif\} } } }|
rÍt|
ƒdkr^|
dnd} t|
ƒdkr€|
dnd} t|
ƒdkr¢|
dng} t|
ƒdkrÄ|
dni}nd}d}|rtjƒj|ƒ}|sdSn|dkr*|r&tj|dƒndS|tjk}i}tj    ||||| | | ||||ƒ }|st
j d||f|ƒdSd}t
j ƒr·t
j ƒjƒ}nM|rt
jƒj|ƒ}|sÜdStj|||||||    |
|ƒ    n|r8t||||| | | |||    ||ƒ ndS(Niiiit
BattleFails*Õ½¶·½áËã½±ÀøÊ±Ê§°Ü! mapID=%s,funcLineID=%s(RRFRNRORPR†R-R€RtOnTurnFightAwardCrossRŽRMRzRqRvRER…tOnTurnFightAwardtSyncTurnFightRet(R”RxR“RMRQRRRlRYR^R\RDR`RaRbRcRPRfRZt    awardDicttisOKRe((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR‘>sD"""% - (.cCs‡tj|ƒ}||||g}|tjƒjƒkrgtjdtj|f|ƒt||ƒdStjtj||g|ƒdS(Ns±¾·þÖ´ÐÐ: %s, %s(    RŽRRqRvtDebugLogR#tC2S_TurnFightAwardAfterRsR€(RüR‰RQRRRZt    afterDictR„Ru((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytSend_C2S_TurnFightAwardAfterps cCs/|\}}}}tj|||||ƒdS(N(RRœ(RuRüRQRRRZR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRœ{sc    CsDt|ƒ}    tƒ}
|
j|||||ƒ} | j}| j|||    tƒ| j|||ƒ| jtj    |ƒx¥t
|ƒD]—\} } | | _ t j d||| | ƒ| dkrÉ| jƒn| jtjt| ||ƒggƒ| jƒ| jƒt| ƒ| js‚Pq‚q‚Wt| ƒ}|
j|ƒ|r@| SdS(sÖ´ÐÐPVEÕ½¶·£¬Ö§³Ö¶àС¶Ó
    s8¶ÔÕ½NPCÕóÈÝ: mapID=%s,funcLineID=%s,index=%s,lineupID=%siN(t
GetTurnMaxRúRóRMRrRtRnRˆR-R€R„RgRŽRRpR—RR•R¢t__processTurnFightRZt__saveBatBufferRöRF(RMRQRRR‹RlR‰RlRiRjRURùRR˜R{tsaveOK((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR€s*               %
 
 
      c CsÄt|ƒ}tƒ}|j|||||ƒ}    |    j}|    j|||tƒ|    jƒ|    jtj    |ƒ|    jtj
|ƒ|    j ƒ|    j ƒt |    ƒt|    ƒ}
|j|ƒ|
rÀ|    SdS(súÖ´ÐÐPVPÕ½¶·£¬Ö»´¦ÀíÕ½¶·£¬²»¹ØÐŦÄܼ°curPlayerÏà¹Ø
    @param lineupListA: ÕóÓªAËùÓÐÕóÈÝ [[ÕóÈÝÐÅÏ¢, ...], ...]
    @param lineupListB: ÕóÓªBËùÓÐÕóÈÝ[[ÕóÈÝÐÅÏ¢, ...], ...]
    @param reqPlayerID: ÇëÇóµÄÍæ¼ÒID£¬Èç¹ûÊÇϵͳ×Ô¶¯´¦ÀíµÄÕ½¶·³¡´Î£¬ÔòΪ0
    N(RŸRúRóRMRrRtRoRˆR-R€R—R•R¢R R¡RöRF( RMRQRRR‹RŒRlR‰RURùRR¢((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR‡¡s         
 
 
 
  cCsP|tjkrtjddƒStjddiƒ}|j|tjddƒƒS(NR¬iii(R-RvRR    RlR(RQtmapTurnMaxDict((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRŸ»scCsFtjƒj|ƒ}|j}|j}|jtj|ƒttƒtj    |tj
|ƒƒ|dkrvt |ƒdS|dkr“t ||ƒdStj d||jƒƒt|ƒ}|jƒtjƒ}d|_tj||ƒ|dkrt|tƒn|dkrt||ƒnd|_tj||ƒt|ƒdS(Niis,------------------- Ö÷ÏßÕ½¶·ÇëÇó: reqType=%sii(RŽRERFtReqTypetReqValuet
SetExAttr1RtGetMainLevelPassValueRWtSetMainLevelNowValuetGetMainLevelNowValuet__doExitMainFightt__doSetFightPointRRR RR¨ttagSCTurnFightReportSigntSignRåRæRRtt __doMainFightt__doMainFightExDataFunc(R˜R_R;RPtreqTypetreqValuet mainFightMgrRÒ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytOnMainFightReqÉs2         
 
           
cCs2t|ƒ}|j}|dkr¢tj||ƒtj|tj|ƒtj|t    j
|ƒt j |t j|ƒtj|t    j|ƒtj|t    j|ƒn|j}|dkrÊtj||ƒn|j}|dkr$tj|t    j|ƒtj|t    j|ƒt j |t j|ƒn|jƒdS(Ni(R Rt
PlayerLLMJtAddUseZhanchuitPlayerPrestigeSystAddRealmTaskValuetRealmTaskType_UseXiantaot
PlayerTaskt AddTaskValueR-tTaskType_CutTreet PlayerSuccesstDoAddSuccessProgressR#tSuccType_OSACutTreetPlayerActivitytAddDailyTaskValuetDailyTask_CutTreet PlayerActTasktAddActTaskValuetActTaskType_CutTreeRtAddExpExRtTaskType_KillNPCtDailyTask_KillNPCtSuccType_OSAKillNPCR(RPR²RRR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR¯ñs&                
cCs/t|ƒ}|j}|r+|jtƒndS(N(R RRŸRt(RPR²R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRªs
     cCs˜tjd|ƒtjddƒ}|dks@|t|ƒkrDdS||d}|jtjƒ}||kr‡tjd||ƒdS|j|ƒdS(NsÉèÖÃÕ½´¸ÏûºÄ±¶Öµ: %st    AutoGuajiis×£¸£Ê÷µÈ¼¶²»×ã: treeLV=%s < %s(    RŽRRRlRtNomalDictGetPropertyR-tDef_PDict_TreeLVt SetFightPoint(RPt
fightPointtneedTreeLVListt
needTreeLVttreeLV((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR«s  cCs÷|jƒ}tj|ƒ\}}}tjd|||||ƒt|jƒdƒ}tj|tj    |ƒs~tjdƒdSt
j d|ƒ}|sšdSt
j d||ƒ}|sôx<|dkrð|d8}t
j d||ƒ}|r¸Pq¸q¸Wn|sþdSd}    xE|    dkrKt |d|    ƒ s>t|d|    ƒƒ rK|    d8}    qW|    dkr\dS||    krq|    }nt|d|ƒƒ}
|
s‘dS|
d} t|ƒ} | sÁtjd    |ƒdS|jƒ} |jƒ}t|ƒ}||_||_|    |_||_tjtj|||ƒ}}t|ƒ}tjd
||||    |
||| | ||ƒ |j}|j|||t|ƒ|j|
| |ƒ|jtj | ggƒ|jtj!t"| | |ƒggƒ|j#ƒ|j$ƒt%|ƒdS( Ns?ÇëÇó¹Ø¿¨²¨Õ½¶·: chapterID=%s,levelNum=%s,wave=%s,isRestStart=%sisÕ½´¸²»×㣬ÎÞ·¨¿ªÊ¼!R RisGetWaveLineupIDList%sisûÓÐÉèÖÃÖ÷ÕóÈÝ!sqÉèÖÃÆðʼ¹Ø¿¨²¨: ¹Ø¿¨%s-%s,²¨=%s/%s,lineupIDList=%s,mapID=%s,funcLineID=%s,lineupID=%s,strongerLV=%s,difficulty=%s(&RRRRŽRtmaxt GetFightPointt    HaveMoneyR#tTYPE_Price_XiantaoRRjRRßRyRhR«R]R RýRþRÿRR-RvtComMainLevelValueRŸRRrRWRnRˆR€R—RR•R¢R®(RPt isRestStartRüRýRþRRÍtchapterIpyDatat levelIpyDataRÿRhR{tlineupMainInfoRiRjR²RQRRRUR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR$sl  
 :      
                         %    %
 
 
c
Cs|rt||dƒrdSnt|ƒ}|j}|jƒ}|rJdS|jƒsgt|tƒdS|j}|r |jƒ}|rút    j
d|j ||j ƒ|j ƒ|jtjt||j|jƒggƒ|jƒ|jƒt|ƒn t|tƒdSt|jƒdƒ}tj|tj|ƒsIt    j
dƒdSt|ƒ}|ratnt}    tj ƒ}
|j!} |j"} |j#} xqt$| | dƒD]\} |jrµPn| | kr    t    j
d| ƒ| |_!| |_#|rù|j%t&ƒnt'|| ƒn|jrPnt(t)|j*ƒ}d}x²||krã|j+t)|j*ƒkrã|j rã|d7}|j*|j+\}}|j,|ƒ}|j-|ƒ}|j.ƒ}xüt$|j/t(dƒD]ä}||kræ|d|_/qÁn||}|
j0|ƒ}|    r=|tj1kr=|r=|j2ƒr=t    j
d|ƒdSn|d|_/t3||| ƒt4||ƒ}t5||| ƒ|s…qÁn|     r¤|tj1kr¤t}    nPqÁW|j+t)|j*ƒdkrÑd|_+q2|j+d7_+q2W|jrñPnt6|| ƒq¢W|jst7|j8ƒndS(    sŠÖ´ÐÐÖ÷ÏßÕ½¶·£¬µ¥³¡Õ½¶·¶Ïµçʽս¶·£¬ÒÔǰ¶ËÍæ¼ÒÊÖ¶¯µã»÷½Úµã×öΪ¶Ïµã´¦
    Ã¿³¡Õ½¶·µÄ³õʼ»¯¡¢½áÊøÄ¬È϶ϵ㣬ÓÉǰ¶Ë¾ö¶¨×Ô¶¯¼ÌÐø»òÕßµã»÷¼ÌÐø
    tMainFightReqTickNs6---¿ªÊ¼½øÈëÏÂһС¶Ó: lineupIndex=%s,nextLineupID=%s,%sis»ØºÏ¿ªÊ¼Ê±Õ½´¸²»×ã!s#¡¾----- »ØºÏÖÆÕ½¶·ÂÖ´Î: %s -----¡¿ is/Íæ¼ÒÕóÈÝÏÂÒ»¸ö¿ÉÐж¯µÄÎ佫£¬¶Ïµã: nextPosNum=%s(9R@R RRR£RRtRYR‚RŽRRgRhRpRˆR-R—RRiRjR•R¢R®RWRÑRÒRRÓR#RÔt
EntryLogicR#R$RTRURVRxR›tFightState_FightingtTurnFightPerTurnBigStartt    PosNumMaxRRbRcRƒRHR7RR:R€t    CanActiontTurnFightHeroTurnStartt OnObjActiontTurnFightHeroTurnEndtTurnFightPerTurnBigEndt OnTurnAllOverRM(RPR;R²RRRYR‚RÍtisEntrytcheckBreakpointR'RTRURVtdoMaxtdoCntRRR†R‡t posObjIDDictR3R(R2tisAction((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR®gs¢             
+
 
                                  1
 
               cCs7|j}|j}t|ƒtjƒ}xïtd|dƒD]Ú}|jrOPn||_tj    d|ƒ|r~|j
t ƒnt ||ƒ|jr˜Pnt t|jƒ}d}xH||krû|jt|jƒkrû|j rû|d7}|j|j\}}|j|ƒ}    |    j|ƒ}
|
jƒ} x’t|
jt dƒD]z} | d|
_| | krhqCn| | } |j| ƒ}t|||ƒt||ƒ}t|||ƒ|s¼qCnPqCW|jt|jƒdkréd|_q´|jd7_q´W|jr    Pnt||ƒq<W|js3t|jƒndS(Nis"¡¾----- »ØºÏÖÆÕ½¶·ÂÖ´Î: %s -----¡¿i(RPRURÛR#R$RxRYRTRŽRR›RÜRÝRÞRRbRcRƒRHR7RR:RàRáRâRãRäRM(RRPRUR'RTRçRèRRR†R‡RéR3R(R2Rê((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR èsV        
              1
 
         cCs¢|j}|j}|j}|j}|j}tj|jƒƒ}|rY|d|7}n|rp|d|7}nd|tj    krˆdnd|||j
ƒ|fS(Ns Hero:%ss NPC:%ss%s%s-P%s ID:%s %stAtB( Rt    lineupNumR3R4RRŽt    CodeToGbkR
R-R€R)(R2RRR3R4RR.((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR!s                    cCsÐ|jr dStjdƒtjƒ}xš|jD]\}}|j|ƒ}|j|ƒ}t|_    xY|j
ƒD]K}|j |ƒ}|j ƒt j||tjƒt j||tjƒqpWq0Wt|_tS(NsÖ´Ðнø³¡Âß¼­...(RXRŽRR#R$RbRƒRHR RR8R:RêR6tOnTriggerPassiveEffectR-tTriggerWay_FightStarttTriggerWay_InBattlefieldRt(RR'RRR†R‡R(R2((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRÛ.s          
    c    Cs!tjƒ}x|jD]\}}tjd|||ƒ|j|ƒ}|j|ƒ}d|_x·|jƒD]©}|j    |ƒ}|sqln|j
ƒ|j t j ƒ|dkrÐt|ƒt|||ƒn|jƒ|jƒsÿtj||t jƒqltj||t jƒqlWqWdS(Ns,´ó»ØºÏ¿ªÊ¼Âß¼­: turnNum=%s,faction=%s,num=%si(R#R$RbRŽRRƒRHRR8R:Rêt    SetTimingR-tTurnTiming_BeforetRefreshObjSkillByBigTurntRefreshObjByBigTurnt ResetBigTurnR=R6RïtTriggerWay_BigTurnStartByDeadtTriggerWay_BigTurnStart(    RRTR'RRR†R‡R(R2((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRÝBs(     
 
 
 c    CsÂtjƒ}x¯|jD]¤\}}tjd|||ƒ|j|ƒ}|j|ƒ}xa|jƒD]S}|j|ƒ}|s„qcn|j    ƒs–qcn|j
ƒt j ||t jƒqcWqWdS(Ns+»ØºÏ½áÊøÂß¼­: turnNum=%s,faction=%s, num=%s(R#R$RbRŽRRƒRHR8R:R=RêR6RïR-tTriggerWay_BigTurnEnd(    RRTR'RRR†R‡R(R2((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRã^s  
cCsƒ|s
dS|jƒsdStjd|jƒ|jƒ|jƒƒ|jƒt||ƒtj    ||t
j ƒ|j t
j ƒdS(Ns(---[Î佫»ØºÏ¿ªÊ¼] : curID=%s,curHP=%s/%s(R=RŽRR)R¿RÃRêtRefreshObjBuffTimeR6RïR-tTriggerWay_HeroTurnStartRòtTurnTiming_After(RR2RT((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRàrs (
 cCs]|s
dS|jƒsdStjd|jƒ|jƒ|jƒƒ|jƒt||ƒdS(Ns(---[Î佫»ØºÏ½áÊø] : curID=%s,curHP=%s/%s(R=RŽRR)R¿RÃRêRú(RR2RT((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRâƒs (
 cCsÎ|jƒ}|jƒ|jƒ}x¥td|jƒƒD]Ž}|j|ƒ}|sYq8n|jƒ}|jƒ}|r|j|ƒt    j
d|||ƒn|j ƒr¹|jdƒn|j dƒq8WdS(Nis)¼¼ÄܳõʼCD: curID=%s,skillID=%s,initCD=%s( R)tResetSkillUseCntRRxt GetSkillCounttGetSkillByIndexRìtGetCoolDownInitt SetRemainTimeRŽRt GetRemainTimet    SetEnergy(R2tcurIDR$R˜tcurSkillRgtinitCD((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRs  
     c
Csq|jƒ}|jƒ}xRtd|jƒƒD];}|j|ƒ}|sOq.n|jƒ}|jƒräxzt|jƒƒD]c}|j|ƒ}|j    ƒt
j krz|j dƒdkrz|j dƒtjd||ƒPqzqzWn|j|ƒ}|jƒ}    |    dkrq.n|dkr<tjd|||    |ƒq.n|    d8}    |j|    ƒtjd|||    ƒq.WdS(s,°´»ØºÏˢм¼ÄÜ£ºÄ¬ÈÏÒÔ´ó»ØºÏͳһ¼õ1»ØºÏ
    iiis-    Ã¿´ó»ØºÏÖØÖü¼ÄÜÄÜÁ¿! curID=%s,skillID=%ssV    ÉϻغÏÓÐʹÓü¼Äܱ¾»ØºÏ²»Ë¢ÐÂCD: curID=%s,skillID=%s,remainTime=%s,preTurnUseCnt=%ss1    ¸üм¼ÄÜCD: curID=%s,skillID=%s,remainTime=%sN(R)RRxRþRÿRìt    GetEnergytGetEffectCountt    GetEffectt GetEffectIDR-tPassiveEff_EnergySkilltGetEffectValueRRŽRtGetSkillTurnUseCntRR(
R2RR$R˜RRgteIndexteffectt preTurnUseCntt
remainTime((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRô¤s2    *     
 c
CsI|jƒ}|jƒ}x*t|jƒƒddd…D]    }|j|ƒ}|jƒ}|jƒ}|jƒ}    |    jƒ}
|
t    j
t    j t    j gkr¡q8n|    j ƒt    jkr¼q8n|    j ƒt    jkr|jƒ|krtjd||||ƒq8n|
t    j
t    j gkrÒ|jƒ} | dkr8q8n| d8} tjd|||| ƒ|
t    j kr¹| dkr¹|    jƒ} | r¹|| kr¹d} tjd|||| ƒq¹ntj|||| ƒq8|    jƒt    j kr8|jƒ} | dkrq8n| d}tjd||||ƒtj||||ƒq8q8WdS(Niÿÿÿÿs@    ¹â»·buff·Ç¹âÔ´²»´¦Àí! curID=%s,index=%s,skillID=%s,buffID=%siis=    ¸üÐÂbuff»ØºÏ: curID=%s,buffID=%s,skillID=%s,remainTime=%ssR        ³¬¹ý×î´óÏÞÖÆ»ØºÏÊý£¬Ç¿ÖÆÇå³ý!: curID=%s,buffID=%s,skillID=%s,remainTime=%ss;    ¸üÐÂbuff²ã¼¶: curID=%s,buffID=%s,skillID=%s,updLayer=%s(R)R2Rxt GetBuffCounttGetBuffByIndext    GetBuffIDRìt GetSkillDatatGetLastTimeTypeR-tBuffLastTimeType_BigTurntBuffLastTimeType_BigTurnLayertBuffLastTimeType_BigTurnLimitt GetSkillTypetDef_LstBuff_ListtDef_HaloSkill_Listt
GetOwnerIDRŽRRt GetLastTimeR4tSetBuffRemainTimetGetLayertDoBuffLayerChange(RR2RTRR8R˜tbufftbuffIDRgt    skillDatatlastTypeRt lastTurnMaxtcurLayertupdLayer((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRõÄsF  &    '  
 
c     CsÜ|jƒ}|jƒ}|jƒ}x±t|jƒƒddd…D]}|j|ƒ}|seqDn|jƒ}|jƒ}|jƒ}    |    j    ƒt
j kr¤qDn|    j ƒt
j kr¿qDn|    j ƒt
jkr|jƒ|krtjd||||ƒqDn|jƒ}
|
dkr#qDn|jƒ} |jƒsjtjd||||| ƒ|jdƒqDn| |kr˜tjd||||| ƒqDn|
d8}
tjd||||
| ƒtj||||
ƒqDWdS(    s€Ë¢ÐÂbuff³ÖÐøÊ±¼ä£ºÒÔÎ佫×ÔÉí»ØºÏǰ¡¢»ØºÏºó´¦Àíbuff³ÖÐøÊ±¼ä
    »ØºÏǰÌí¼ÓµÄbuffÔڻغϿªÊ¼¼õ1£¬»ØºÏºóÌí¼ÓµÄbuffÔڻغϽáÊø¼õ1
    Niÿÿÿÿs@    ¹â»·buff·Ç¹âÔ´²»´¦Àí! curID=%s,index=%s,skillID=%s,buffID=%sisS    Î´Ë¢Ð¹ýµÄbuff¸üÐÂΪˢйý! curID=%s,index=%s,skillID=%s,buffID=%s,addTiming=%sisO    buffÌí¼Óʱ»ú²»Í¬²»´¦Àí! curID=%s,index=%s,skillID=%s,buffID=%s,addTiming=%ssJ    ¸üÐÂbuff»ØºÏ: curID=%s,buffID=%s,skillID=%s,remainTime=%s,addTiming=%s(R)t    GetTimingR2RxRRRRìRRR-tBuffLastTimeType_DefaultRRRRRŽRRt GetAddTimingtGetRefreshStatetSetRefreshStateR4R( RR2Rt    curTimingR8R˜R"R#RgR$Rt    addTiming((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRúòs@   &   '      
cCsT|s
dS|jƒ}|jƒ}|j|ƒ}tjd||||||ƒdS(NsT        Í³¼ÆÖÎÁÆ: curID=%s,srcID=%s,skillID=%s,addValue=%s,cureHP=%s,updStatValue=%s(R)t StatCureValueRŽR(tcurObjtsrcObjtaddValuetcureHPRgRtsrcIDt updStatValue((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytAddTurnObjCureHP    s      c    
CsÝ|dkrdS|jƒ}|jƒ}||kr´|j|ƒ}tjd|||||||jƒ|ƒ    |rÙ|j|ƒ}tjd|||||||jƒ|ƒ    qÙn%tjd||||||jƒƒdS(Nisj        Í³¼ÆÊä³ö: curID=%s,tagID=%s,skillID=%s,hurtValue=%s,lostHP=%s,updStatValue=%s,tagHP=%s,lostType=%ssj        Í³¼Æ³ÐÉË: curID=%s,tagID=%s,skillID=%s,hurtValue=%s,lostHP=%s,updStatValue=%s,curHP=%s,lostType=%ssJ        ×Ô²Ð: curID=%s,tagID=%s,skillID=%s,hurtValue=%s,lostHP=%s,curHP=%s(R)t StatHurtValueRŽRR¿t StatDefValue(    t    curBatObjt    tagBatObjt    hurtValuetlostHPRgtlostTypeRRaR6((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytAddTurnObjHurtValue*    s        "    (    c    Cs•|s
dS|jƒ}|jƒ}|dkr2dS|j}t|ƒ}|jƒ}|sstjd|||ƒdS|jƒ}|jƒ}    tjd|||r¦dnd|||j    ƒ|    ƒ|j
ƒ|j ||ƒt j ||tjƒtjddƒ}
|jƒ} g} xAtd| jƒƒD]*} | j| ƒ}|sJq)n|jƒtjtjgkrnq)ntj|ƒrƒq)n|jƒr•q)n|jƒ}tj|ƒr|    |
krÕ|jtjƒ rÕq)n|j tj!ƒrýtjd|ƒq)nd    }n7|jtj"ƒr.tjd
|ƒq)n|j#|ƒ}| j$|||gƒq)W| j%ƒx1| D])}|d    }t&j'|||ƒrhPqhqhWt j ||tj(ƒt)j*ƒ}x×tj+tj,gD]Ã}|j-|ƒ}x«|j.j/ƒD]š}|j0|ƒ}x‚|j1ƒD]t}|j2|ƒ}|j3ƒs8qn|j4ƒ|j4ƒkrlt j ||tj5|ƒqt j ||tj6|ƒqWqïWqÊWt7S( Nis(¡ï»ØºÏ%s %s µ±Ç°×´Ì¬²»¿ÉÐж¯! isExtra=%ss0¡ï»ØºÏ%s %s %sÐж¯ : atk=%s,curHP=%s/%s,curXP=%ss¶îÍâRLRüis(³°·í״̬Ï£¬ÎÞ·¨Ö÷¶¯ÊÍ·ÅÅ­¼¼! skillID=%siÿÿÿÿs Ðж¯Ê±ÎÞ·¨ÊͷŸü¼ÄÜ! skillID=%s(8R¿R)RTRRßRŽRRµRÉRÃRêRÝR6RïR-tTriggerWay_HeroActionStartRR    RRxRþRÿt GetFuncTypet Def_SkillFuncType_TurnNormaSkilltDef_SkillFuncType_AngerSkillRVtisPassiveSkillRRìt isAngerSkillt GetEffectByIDtSkillEff_AngerSkillNoXPt CheckInStatetBatObjState_SneertSkillEff_ActionUseInvalidtGetSkillUseCntR/Rt    TurnSkillt
OnUseSkilltTriggerWay_HeroActionEndR#R$R€R—RƒRER°RHR9R:R=t
GetFactiontTriggerWay_EnemyActiontTriggerWay_FriendActionRt(RR:tisExtratcurHPR(RTR.t    canActiontatktcurXPtxpMaxR$t useSkillListR˜tuseSkillRgRìtuseInfoR'RR†RíR‡t lineupObjIDt    lineupObj((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRá@    s~           4
       
 
  %c
    Cs\|j}|jƒ}|rg|jƒrg|jƒrg|jƒtjkrgtj||||ƒsgdSn|j    ƒ}|r…|j    ƒnd}|r|j
ƒnd}t j dt |ƒ|||ƒ|j|ƒtj||ƒtjƒ}    ||    _||    _||    _|j|    ƒ|rX|jtjkrX|jƒtjkrXt|ƒjd7_ntS(NisA        %s »ØºÏÕ½¶·Ö÷Ìå±»»÷ɱ: curID=%s,killerObjID=%s,skillID=%si(RPRºRRxROR-R€RtOnFBNPCKilledBeforeR)RìRŽRRtSetDeadR4t DoBuffByDeadR¨ttagMCTurnFightObjDeadR¹t KillerObjIDtSkillIDRÐRQRvR RRt(
RtgameObjtkillerRYRPRR(t killerObjIDRgRÒ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt SetObjKilled•    s&     3                -cCsžtjdƒtƒj|ƒ}|s)dS|jr6dS|jƒrr|jtjkrctj    |_qtj
|_nt j tj    tj
gƒ|_t |ƒdS(Ns ËùÓлغϽáÊø(RŽRRúRôRYRRQR-R–R€R—R²tchoiceR˜(RMR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRä°    s      
cCs?tƒ}|j|ƒ}|s"dStjƒ|j|_|j}|tjk|_|j    }|j
}|j ƒ}t j d||j|ƒ|tjkrÅt jd|j|||j|jfƒnd}tjƒ}i}    i}
xÏ|jjƒD]¾} t| ƒ|    kri|    t| ƒ<n|    t| ƒ} t| ƒ|
krSi|
t| ƒ<n|
t| ƒ} |j| ƒ}d|_x3|jjƒD]"}t|ƒ| kr¶i| t|ƒ<n| t|ƒ}t|ƒ| krëi| t|ƒ<n| t|ƒ}|j|ƒ}d|_t j d| |ƒx„|jƒjƒD]p\}}|tjkrZq9n|j|ƒ}|suq9n|jƒ}|j ƒ}|j!ƒ}|j"}|j#}|j$}|j|7_|j|7_|j%ƒrädnd}|r |d7}||t|ƒ<nt j d|||||j&ƒ|j'ƒ|||ƒ
i
|d6|d6|d    6|d
6|d 6|d 6|j(ƒd 6|j)ƒd6|j*ƒd6|d6|t|ƒ<q9Wq‹WqóWi|d6|    d6}t+j,||||ƒ|j-t.|ƒ|tjkr;|r;t/j0||||j|j|j||j|
ndS(Ns5--- Õ½¶·½áÊø´¦Àí ---, winFaction=%s, costTime=%ss, %ss3Õ½¶·ºÄʱ: %ss, mapID=%s,funcLineID=%s,turnNum=%s/%sisÕóÈÝÃ÷ϸ: faction=%s,num=%sisE    Pos:%s ID=%s,npcID=%s,heroID=%s,HP=%s/%s, Êä³ö=%s,³ÐÉË=%s,ÖÎÁÆ=%sR¹R¼R»tAtkHurttDefHurttCureHPRÇR4tSkintDeadRYtstatInfo(1RúRôR~RdReRYR-R€RZRQRRRRŽRRvRRTRUR#R$RaR°R8RƒRRERHR7RŠRR:R)RºR+thurtStattdefStattcureStatR=R¿RÃRÆtGetStarR½RtOnTurnFightOverR›R×tDataRecordPackt DR_FightStat(RMRùRRYRQRRRlt    heroCountR'Rmt drHeroIDDictRt facStatInfotfacDRHeroIDDictR†RtlineupStatInfot posHeroIDDictR‡R3R(R2RR4tatkHurttdefHurtR4tdeadR^((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR˜Ç    s‚                 ,                        
    +-G!cCsdS(N((R˜R_R;((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytOnTurnFightReportView
scCsGtjƒj|ƒ}|j}|j}|j}t||||ƒdS(N(RŽRERFRªR«t    ViewNPCIDtSyncLineupNPCAttr(R˜R_R;RPRQRRR}((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt OnViewNPCAttr(
s             cCsmg}d\}}|tjkr{|d}|d}tjd||ƒ}    |    sTdS|    jƒ}|    jƒ}|    jƒ}nmtj||ƒ}
|
rº|
j    ƒ}|
jƒ}|
jƒ}n.t
j |||ƒ} | sÙdS| \}}}|sòdSg} x|D]
} t | ||t d|ƒ}|s,qÿn|d}xÐ|jƒD]Â\}}t|ƒ}tjƒ}||_|d|_|d|_|d|_|d    |_|d
|_|d |_tj|d d t ƒjddƒ|_t|jƒ|_| j|ƒqCWqÿW| sdStj ƒ}||_!||_"||_#| |_$t|j$ƒ|_%t&j'||ƒdS(NiidRR}R?R»R¼RÇR4R6R7R<R¤s RL(ii((R-RwRRjtGetBossLineupIDListR«R]RRRTR\RR^RRWRŠR×R¨ttagSCViewNPCAttrRÈR»R¼RÇR4R6R7R¥R¦R§tAttrMsgRtAttrLenR/ttagSCViewNPCAttrRetRªR«Rt NPCAttrListtNPCCntRåRæ(RPRQRRR}RhRiRjRýRþRØRhRmt npcAttrListR{RRXR3tattrInfotnpcAttrRÒ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR€0
sf 
 
 
            (                 cCsDtjƒ}||_||_t|jƒ|_tj||ƒdS(N(R¨ttagSCTurnFightReporttGUIDtReportRR®RåRæ(RPRMtreprotRÒ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytSyncTurnFightReportk
s          cCs£|jƒ}|jƒ}|j}d}tjttjƒƒdƒ}tjj    |d||d|d|j
ƒ}tjj |ƒs”tj |ƒnkt jddƒ}|rÿtj|ƒ}xA|D]6}    tjj    ||    ƒ}
ytj|
ƒWqÂqÂXqÂWntjj    |d|ƒ} tjd| ƒyctjƒ} || _|j| _t| jƒ| _t| d    ƒ} | j| jƒƒ| jƒWndSX||_tS(
NsC:\TurnFightReports%Y%m%dsS%ss%sR‰is%s.tfrs Õ½±¨Â·¾¶=%stwb(RRsRMRŽtChangeTimeNumToStrR×R~tostpathtjoinRQtexiststmakedirsRR    tlistdirtremoveRR¨RŒRR[RŽRR®topentwriteRâtcloseR\Rt(RRlRmRMt
ReportRootR\t    ReportDirt    isSaveOneRŠtitemtfullPatht saveFilePathRÒtfp((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR¡t
s>      -            c Csïtjƒ} || _|| _|| _|| _|| _t| jƒ| _|| _    t
j |
dt ƒj ddƒ| _t| jƒ| _t
j |dt ƒj ddƒ| _t| jƒ| _|    | _|| _| | _tj|| ƒdS(NR¤s RL(R¨ttagSCTurnFightRetRªR«RGRHRIRt
ValueCounttIsWinR¥R¦RWR§tAwardMsgtAwardLent
BatStatMsgtBatLentPathDateRt CrossServerIDRNRæ( RfRMRQRRR`RaRbRZR^R\R™ReRÒ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR˜
s"                         $$            (xR-R¹RÂR¿R„R¨RåRRNRŽR´R¶RsR¼RRR-R§R#R÷RVR#R6RLR4RRRãRsRR²R~R¥R“RŽRÞR RxR tFightState_PrepareOKRÜtFightState_FightEndR×RœRRR|R}RRRDRKRïRúRûR RR0RRR,R*R/RhRrRtRRR’RuRzRmR´R RR@RnRFRZRoRwRR†R[RŒR‘RžRœRR‡RŸR³R¯RªR«RWRR®R RRÛRÝRãRàRâRRôRõRúR7R?RáRfRäR˜R~RR€RR¡R˜(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt<module>sÔ                                  !tÿE                
 =    "#     OW      }         $    …     !3        +$  2             !        (             C     9                                       .    (  U        T          ;            )