gwj
2026-01-08 83bd2faf40a4144d33a77b5bef3a5c26f4d2cd4a
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
@^ic@sSddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZgadZdZ e!dƒ\Z"Z#Z$Z%Z&Z'Z(dfd„ƒYZ)dfd„ƒYZ*dfd„ƒYZ+d    fd
„ƒYZ,d „Z-d fd „ƒYZ.d„Z/d„Z0d„Z1d„Z2ej3d„Z4ej3dd„Z5dd„Z6dde7dd„Z8dd„Z9d„Z:ddd„Z;dde7d„Z<d„Z=e7d„Z>dd„Z?d„Z@d„ZAd „ZBddgddeCd!„ZDd"d#„ZEd"d$„ZFd%„ZGddd&„ZHd'„ZId(„ZJd)„ZKd*„ZLd+„ZMeNd,„ZOdd-„ZPd.„ZQd/„ZRd0„ZSd1„ZTd2„ZUd3„ZVd4„ZWd5„ZXd6„ZYd7„ZZd8„Z[dd9„Z\dd"d:„Z]eNd;„Z^eCeCd<„Z_d=„Z`d>„Zad?„Zbd@„ZcddA„ZddB„ZedC„ZfdD„ZgdS(EiÿÿÿÿNit    BatLineupcBsGeZd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(cCs‹||_||_||_d|_i|_d|_d|_i|_i|_i|_    i|_
t |_ d|_ d|_d|_dS(Ni(t    turnFighttfactiontnumtownerIDt
lineupInfot    shapeTypet
fightPowert posObjIDDictt heroObjIDDicttlingshouObjIDDicttbeautyObjIDDicttActionNumStartt    actionNumt    totalHurttbossIDt bossPosView(tselfRRR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt__init__Is                                                             cCs |jjƒS(N(RtgetReqPlayerID(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR]scCs|j S(N(R(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytisEmpty_scCs¢|jƒ||_|jddƒ|_|jddƒ|_|jddƒ|_|jddƒ|_|jddƒ|_t||j    |j
||j ƒƒdS(NtPlayerIDit    ShapeTypet
FightPowertBossIDt BossPosView( t clearLineupRtgetRRRRRtSummonLineupObjsRRR(RR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt    setLineupas
    "cCsÄtjƒ}x$|jjƒD]}|j|ƒqWx$|jjƒD]}|j|ƒqCWx$|jjƒD]}|j|ƒqjWi|_i|_i|_i|_i|_d|_    d|_
dS(Ni( t    BattleObjt GetBatObjMgrRtvaluest    delBatObjR
R RR    RR(Rt    batObjMgrtobjID((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRns                             cCsgd}tjƒ}xN|jjƒD]=}|j|ƒ}|sCq"n|jƒrUq"n|d7}q"W|S(Nii(RRRR t    getBatObjtIsAlive(RtdeadCntR"R#tbatObj((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt getDeadObjCnt€s  cCs-||jkrdStjƒj|j|ƒS(N(R    RRR$(RtheroID((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt
getHeroObjs(    t__name__t
__module__RRRRRR(R*(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRFs                          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(tNoneR.RRR(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(R.R R(RR0((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt clearLineups¨s(R+R,RR1R2R3(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR-’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 _reqServerIDR/t    curPlayertmapIDt
funcLineIDtstatetturnNumtturnMaxt turnNumStarttFalset
enterLogict
winFactiontisWint    batBuffertdateStrt _isNeedReporttstatMsgtmsgDictt_kvDictt factionDicttactionSortListt actionIndext    startTimetcostTimet_oneActionUseSkillCntDictt lineupIndext lineupIDListt
strongerLVt
difficultyt_isPVP(RR6R:R;t reqPlayerIDt reqServerID((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR¹s>                                                                                                                        cCsd||_||_||_||_||_|jƒ|jƒi|_i|_|j    |ƒdS(N(
R:R;R>RFR9tsetPVEtsetPVPRHRIt nextTurnFight(RR:R;R>t isNeedReportR9RH((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt setTurnFightßs                    
 
         cCs|jS(N(R7(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRíscCs|jS(N(R8(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytgetReqServerIDîscCs1d|_||_||_||_t|_dS(Ni(RPRQRRRSR@RT(RRQRRRS((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRWðs                     cCs t|_dS(N(tTrueRT(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRXøs    cCs|jS(N(RT(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytisPVPüscCs|jtjtjgkS(N(R:tChConfigtDef_FBMapID_MaintDef_FBMapID_MainBoss(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytisFBMapþscCs|jj|dƒS(Ni(RIR(Rtkey((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt GetDictByKeyscCs||j|<dS(N(RI(RRctvalue((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytSetDictscCscd|_d|_t|_d|_t|_|jj|ƒtjƒ|_    d|_
t |ƒdS(Nii( R=R?R@RARBRCRHtupdatettimeRMRNtResetByNextTeam(RRH((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRYs                        
cCs,|jtjko+|jt|jƒdkS(Ni(RBR_t Def_FactionARPtlenRQ(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pythaveNextLineupscCs-|jƒsdS|jd7_|j|jS(Nii(RlRPRQ(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt nextLineupIDs cCsb|j|ƒ}|jƒxB|jƒD]4\}}|s>q&n|j|ƒ}|j|ƒq&WdS(N(t getBatFactionR3titemsR1R(RRR.t
batFactionRRt    batLineup((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytsetFactionLineups
c
Csg}x‰|jjƒD]x}|j}xf|jjƒD]U\}}|jrPdnd}|j}|d| }|j|||||gƒq5WqW|jdt    ƒd|_
g|_ x3|D]+\}    }    }    }}|j j||gƒq»Wt j d|ƒt j d|j ƒdS(Niii
treverses+ÕóÈÝÕ½Á¦ÅÅÐò[isPlayer, fp, sortV, f, n]: %ssÕóÈÝÐж¯Ë³Ðò[f, n]: %s(RJR RR.RoRRtappendtsortR]RLRKt    GameWorldt
DebugLogEx(
RtsortListRpRRRqtisPlayerRt    sortValuet_((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytsortActionQueue(s         $        cCsEd}||jkr%|j|}nt||ƒ}||j|<|S(N(R/RJR-(RRRp((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRn=s  c    Cs,|jr|jStjƒ}x    |jjƒD]ø\}}t}x„|jjƒD]s}|s^Pnx`|jjƒD]O\}}|dkrŒqnn|j    |ƒ}|s§qnn|j
ƒrnt }PqnqnWqNW|r,|j t jkrìt j|_n$|t jkrt jnt j|_t|jƒ|jSq,WdS(Ni(RBRRRJRoR]R.R RR$R%R@R:R_tPlayerWinMapIDListRjt Def_FactionBtDoTurnFightOverR6(    RR"RRpt    allKilledRqtposNumR#R'((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytcheckOverByKilledGs0        $  cCsJ|j|stntƒx!|jjƒD]}|jƒq)Wd|_dS(Niÿÿÿÿ(t    syncStatetFightState_OvertFightState_RestRJR R3R<(RtrestRp((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt    exitFightis
    cCs)t|_d|_d|_|jƒdS(Nii(tFightState_StartR<R=R?tsyncInit(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt
startFightqs
            
cCs |jdkS(Niÿÿÿÿ(R<(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt    isInFightyscCstj|jdtƒ}|jddƒ}tjƒ}|j|_|j    |_
|j |_ ||_ t|j ƒ|_g|_tjƒ}xR|jjƒD]A}|j|ƒ}tjƒ}||_g|_xé|jjƒD]Ø}|j|ƒ}tjƒ}    ||    _|j|    _|j|    _ g|    _!xh|j"j#ƒD]W\}
} |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|j8r;|j9| j(ƒkr;|j8| _:n    |
| _:| j;ƒ| _<| j=ƒt/j0| _>| j=ƒt/j0| _?|    j!j@| ƒq8Wt|    j!ƒ|    _A|jj@|    ƒqÝWt|jƒ|_B|jj@|ƒqšWt|jƒ|_C|jD|ƒdS(Nt ensure_asciis R5(EtjsontdumpsRHR@treplacetChPyNetSendPackttagSCTurnFightInitR:tMapIDR;t
FuncLineIDR>tTurnMaxtMsgRktLent FactionListRRRJtkeysRnttagSCTurnFightFactiontFactiont
LineupListR.R1ttagSCTurnFightLineuptNumRtOwnerIDRRtObjListRRoR$ttagSCTurnFightObjtGetIDtObjIDtGetNPCIDtNPCIDt    GetHeroIDtHeroIDt    GetSkinIDtSkinIDtGetHPR_tDef_PerPointValuetHPtHPExtGetMaxHPtMaxHPtMaxHPExtGetLVtLVRRtPosNumtGetXPtAngreXPt GetFightPowerRt FightPowerExRttObjCntt    LineupCntt
FactionCntt
addBatPack(Rtmsgt
clientPackR"RRpt    tfFactionRRqttfLineupRR#R'ttfObj((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR‰{sd                                       cCs|j|j|ƒdS(N(RƒR<(RRH((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 R5(R<tFightState_AwardRGRRŽR@RRttagMCTurnFightStatetClearR:R’R;R“tStateR=tTurnNumR•RkR–Rº(RR<RHR»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º(RR=R#R¼((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt syncObjActionÈs  
         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:%sR5s»ØºÏÕ½¶·¹ý³Ì·â°ü: %s(thasattrRÈtCmdtSubCmdRFt    GetBufferRkRvRwRDtCommFunct    WriteWORDR9t NetPackCommont SendFakePack(RR¼theadStrtpackBufftbuffLen((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRºÐs          cCs i|_dS(N(RO(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytResetOneActionUseSkillCntåscCs|jj|dƒS(Ni(ROR(RR#((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytGetOneActionUseSkillCntæscCs||j|<|S(N(RO(RR#tuseCnt((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytSetOneActionUseSkillCntçs N(#R+R,t__doc__RR@R/R[RR\RWRXR^RbRdRfRYRlRmRrR|R_RjRnR‚R‡RŠR‹R‰RÀRƒRÇRºRÔRÕR×(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR4®s:    &                                              
    "             7                     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(R4RÛR6(RR6R:R;RURVttf((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ÛtpopR/(RR6R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt delTurnFightús 
cCs;d}||jkr%|j|}ntr7tƒ}n|S(N(R/RÛR@R4(RR6RÜ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRÞs  (R+R,RRÝRàRÞ(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRÙës        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    MainFightcBs#eZd„Zd„Zd„ZRS(cCss||_d|_d|_d|_d|_tƒjtjƒt    j
d|ƒ|_ d|_ d|_ d|_dS(Nii(tplayerIDt    chapterIDtlevelNumtwaveMaxtwaveRäRÝRvtGetGUIDR_R`Rt useZhanchuitmjExpt
killNPCCnt(RRæ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRs                    '            cCsd|_d|_d|_dS(Ni(RìRíRî(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytresetMainFightExDataRec$s            cCs|jjtjkS(N(RR:R_Ra(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt isLevelBoss+s(R+R,RRïRð(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRås        cCstjƒj|ƒ}|jS(N(t PlayerOnlinet GetOnlineMgrtGetOnlinePlayert    mainFight(R9tolPlayer((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 IpyGameDataPYtGetIpyGameDataNotLogtSetMainLevelNowInfoRvtLogt GetPlayerID(R9RçRèR{t nowChapterIDt fixNowValue((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt OnPlayerLogin4s '    #cCst||ƒ}|jddƒS(NRi(tGetCacheLineupInfoR(t tagViewCachetlineupIDR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytGetCacheLineupFightPower?scCsZ|jƒ}|jdiƒ}|jd|iƒ}|sV|jdtjiƒ}n|S(NtLineups%s(t GetPlusDictRt ShareDefinet Lineup_Main(RRtplusDictR.R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRBs  cCst||ƒjS(N(tGetPlayerLineupR(R9R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytGetPlayerLineupFightPowerKsicCsbtj|ƒ}|j|d|ƒ}|jƒr^tjd||jƒƒ|jtjƒ}n|S(NtexclusiveMapIDs)Íæ¼ÒûÓÐÄ¿±êÕóÈÝĬÈÏÈ¡Ö÷ÕóÈÝ! lineupID=%s(    RñRót    GetLineuptIsEmptyRvRwRR
R (R9RRRõR0((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR Ns  cCs¶|jƒ}t|||ƒ}|jƒr.iSi}|jƒjtjƒ}x1|jƒD]#}|j|ƒ}|j    }    |j
}
d} d} d} |
dkr|
|j ƒkr|j |
ƒ}|r|jƒ r|j tjƒ} |j tjƒ} |jƒ} qng}||j7}i|    d6|jd6| d6| d6| d6|jd    6d
„|jjƒDƒd 6|d 6|t|ƒ<qYW|sŠiSi|d 6|jd    6|jd6|d6}|S(Niis{}R¦R¨R±tStartDataRcSs1i|]'\}}|dkr|t|ƒ“qS(i(tstr(t.0tktv((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pys
<dictcomp>s    tAttrDictt SkillIDListRRtHero(RR RtGetItemManagertGetPackR
trptHerot GetPosNumListt GetLineupHeroR)t    itemIndextGetCounttGetAtt GetUserAttrtDef_IudetHeroLVtDef_IudetHeroStart GetUserDatatheroSkillIDListtskinIDRtheroBatAttrDictRoRR(R9RRRæR0theroDicttcurPackRtheroR)R theroLVtstartuserDatatheroItemt skillIDlistR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytGetPlayerLineupInfoWsD           
 
(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 NPCLineupIDRRRi(
tGetGMTestNPCLineupInfoRütGetIpyGameDatat    GetBossIDtGetBossPosViewtrangeRÉtgetattrtGetNPCBattleDictR( RRRRStisLogt    viewNPCIDRtipyDataRRR*RtnpcIDt
battleDict((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytGetNPCLineupInfo‰s2  "c
Cs·|s|jƒ}ntjƒ}d\}}tj|ƒ}|sVtj|dƒdSt|tj    ƒ}it
|tj    ƒd6}i|d6}t |||||ƒ}    |    r³|    j SdS(NitTagNoViewCachei(ii(RRvRëtPlayerViewCachetFindBattleViewCacheRùt
NotifyCodeRR
R R2tDoTurnFightPVPRNR/(
R9t tagPlayerIDR6R:R;Rt defLineupInfot lineupDictAt lineupDictBR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt    GMTestPVP¬s   cCs#||gat|tƒgadS(N(tg_gmTestFightReqt__doMainLevelWaveR](R9t
heroIDListt
isAllSkill((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt GMTestFight¾s  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(NR3iis GetPosNPCID%sR¦iiÿÿÿÿRiŸ†RR4RRi(RLRüR6R9RÉR:R;t    enumerateRR˜tIPY_Datatxranget GetNPCCountt GetNPCByIndextGetRelatedHeroIDR£RttindextcountRkR R/tGetNPCHeroSkillIDList(RRRRSRNROt lineupIpyDatatnpcDictt heroNPCIDDictRR?R@R)R*t lineupNPCIDt ipyNPCIDListt ipyHeroIDListt
ipyDataMgrRWR>tlineupNPCIndext loopIndexListt    posHeroIDt heroIpyDatat skillIDListR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR5Æs€ 
 
 
    4 
 
 
"c Csútj|ƒ}|sdS|jƒ}|jƒ}d\}}    }
|jƒ} d} |rjtjd|ƒnd} tjd|ƒ}|rµ|rµtjd| |ƒ} | rµ|}qµn| sÓtjd| |ƒ} n| r| j    ƒ}| j
ƒ}    | j ƒ}
n| r@| j ƒ}|r"|dnd}t || |    |
ƒ}nd}d}g}|jƒ}||krù|jƒ}|rùgt|ƒ}|jƒ}|dkrÐt|ƒ|krÐtj|ƒ|| }n||7}|oòtjd||ƒqùnt|| |||ƒ}|s0i|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|j/ƒtj06|j1ƒtj26|j3ƒtj46|j5ƒtj66|j7ƒtj86|j9ƒtj:6}n|j;ƒ}x@|j<ƒD]2\}}t=|ƒ}|j>|dƒ|||<qIWi    |d6|d6|d6|d    6|d
6|    d 6|
d 6d „|j<ƒDƒd6|d6}|oõtjd|||| |ƒ|S(NiRt NPCStrongert    LVReValues"ÕóÈÝboss¼¼ÄÜ: %s, Ëæ»ú¸½¼Ó¼¼ÄÜ: %sR¤R¦R¨R±RtBreakLVtAwakeLVcSs1i|]'\}}|dkr|t|ƒ“qS(i(R(RRR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pys
<dictcomp>\s    RRsEGetNPCBattleDict npcID=%s,strongerLV=%s,difficulty=%s,reModelID=%s,%s(iii(?t    NPCCommont GetNPCDataPyRVR°t GetReModelIDR/RüR6Rýt GetReHeroStartGetReHeroBreakLVtGetReHeroAwakeLVt GetSkinIDListRYR7tGetSkillIDExListtlistt GetSkillExCntRktrandomtshuffleRvRwtGetNPCStrongerAttrDicttGetAtkR_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_SuckHPPerDeftGetSpecAttrInfoRotintR(RZR?RRRSR<tnpcDataR)tnpcLVR.tbreakLVtawakeLVt    reModelIDt lvReIpyDataRdt npcStrongert
skinIDListR(ReRt skillIDExListtrandSkillIDExListt
skillExCntt batAttrDictt
exAttrDictt    attrIDStrt    attrValuetattrIDR@((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR;s~              
3      &  
 
"c Csð|jƒ}|jƒ}||g}tjd|ƒ}|rˆxI|D]>}|jƒ|kr_Pn|jƒ}    |    rC|j|    ƒqCqCWntjd|ƒ}
|
rìxI|
D]>} | jƒ|krÃPn| jƒ}    |    r§|j|    ƒq§q§Wn|S(Nt    HeroBreakt    HeroAwake(tGetNormalSkillIDtGetAngerSkillIDRütGetIpyGameDataListNotLogt
GetBreakLVt
GetSkillIDRtt
GetAwakeLV( R)RdRœRt normalSkillIDt angerSkillIDRetbreakIpyDataListt breakIpyDatatskillIDtawakeIpyDataListt awakeIpyData((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRYcs(       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_tCalcBattleAttrIDListRüR6t GetParameterRÉR:R™RvRw( R?RŸR RSR<R¥tlvR©t attrIpyDatatattrNametreValuetratioR¨((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRv}s"  /c$Cs    |jddƒ}|jddƒ}tjd||||ƒ|j}|j}|jdiƒ}    tjƒ}
tjddƒ} xƒ|    j    ƒD]u\} } t
| ƒ}d}g}i}|| jdgƒ7}|j | jd    iƒƒ| jd
dƒ}| jd dƒ}| jd dƒ}| jd dƒ}| jddƒ}d\}}}}}|rltj d|ƒnd}|rÃ|jƒ}|jƒ}|jƒ}|jƒ}|jƒ}|jƒ}n|rê| jddƒ}|sqŒqn0tj|ƒ}|sqŒn|s|jƒ}n|
jƒ}|s0Pn|jƒ} |rR|j|ƒn|rh|j|ƒn|j|ƒ|j|ƒ|j|ƒ|j||ƒ|j|ƒ|j |ƒ|j!|ƒ|j"|ƒ|j#|ƒ|j$|ƒ|j%|ƒ|j&|ƒ|j'||ƒ|j(ƒ}!|!j)ƒx|D]}"|!j*|"ƒq4W| |j+|<| |j,|<tjdt-|ƒ|||!j.ƒƒt/|ƒ|rát0j1||ƒ}#|#rátjd||#ƒd„|#j    ƒDƒ}qán|j2d„|j    ƒDƒ| ƒqŒWdS(sÞÕÙ»½ÕóÈÝÕ½¶·ÊµÀý
    @param faction: ËùÊôÕóÓª£¬Ä¿Ç°Ö§³ÖÁ½¸öÕóÓª£¬1»ò2
    @param num: Õ½¶·ÕóÈÝÔÚ¸ÃÕóÓªÉϵıàºÅ£¬1V1ʱĬÈÏ1£¬¶à¶Ô¶àʱ1~n
    @param lineupInfo: ÕóÈÝÐÅÏ¢
    @param reqPlayerID: ·¢ÆðµÄÍæ¼ÒID£¬ÏµÍ³³¡´ÎΪ0
    RiR4sCSummonLineupObjs faction:%s,num:%s,npcLineupID=%s,lineupPlayerID=%sRtAngerXPiRRR¤R¦R¨R±RRs#AddBatObj %s,lv=%s,star=%s,skill=%ss#¸±±¾Ö¸¶¨NPC³õʼ»¯ÊôÐÔ: npcID=%s, %scSs%i|]\}}|t|ƒ“qS((R(RRR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pys
<dictcomp>ïs    cSs%i|]\}}|t|ƒ“qS((R™(RRR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pys
<dictcomp>ñs    N(iiiii(3RRvRwRR6RRRüt
GetFuncCfgRoR™RgR6R/tGetNamet GetSpecialtytGetAtkDistTypet
GetCountrytGetSextGetJobRjRkt
GetNPCNamet    addBatObjR¡tSetNPCIDt
SetOwnerIDt    SetTFGUIDtSetNamet
SetFactiont SetLineupPost SetFightPowertSetLVtSetStartSetAtkDistTypet SetSpecialtyt
SetCountrytSetSextSetJobtSetHerotGetSkillManagert
SkillResettLearnSkillByIDRR    t
GetObjNametGetSkillIDListt ResetObjSkilltFBLogictGetFBNPCInitAttrt InitBatAttr($RqRRRRUtlineupPlayerIDt npcLineupIDRttfGUIDR*R"tinitXPt    posNumKeytheroInfoRRRetattrDictR?R)R(R¼R.t    specialtyt atkDistTypetcountrytsextjobRdtobjNamet    npcDataExR'R#t skillManagerR¶tfbNPCInitAttrDict((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR–s”                                 
   %
$cCs|jtjƒ}|sdStjdƒ|jdƒ}tjƒ}xÅ|jj    ƒD]´}|j
|ƒ}|suqTnt |ƒ}|j ƒs£tjd|ƒqTntjd||j ƒ|jƒ|jƒƒ|jƒ}|jƒt|ƒtj|ƒtj|ƒqTWdS(NsÇл»Ð¡¶ÓÖØÖÃÍæ¼ÒÕóÈÝÎ佫...is    Òѱ»»÷ɱ²»´¦Àí! %ssÖØÖÃÎ佫: %s, HP:%s/%s, XP:%s(RnR_RjRvRwR1RRRR R$RÝR%R©R­R³tGetBuffManagert    ClearBuffRßtTurnBufftRefreshBuffAttrt TurnPassivetRefreshPassive(RRpRqR"R#R'RïtbuffMgr((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRiõ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äRüRÂRÚRvRwRùRER]RdRfR@(R9tticktselfKeyRãtpubCDtselfCDtlastTick((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt CheckFightCDs          c Cs<tjƒj|ƒ}|jƒ}|j}|j}|j}|j}|j}    tj    d|||||    |ƒt
j ||||||    ƒ}
|
s•dSt |
ƒdkr±|
dn|}tj    d||ƒt j|ƒ} t j||tƒ} | rt j|||| | ƒtjkrdSnt||dƒr5dS|} tj|ƒ}tjƒ}tj}t|||ƒ}|s‘tj    d|||ƒdS|dkr~|}tj|ƒ}|sßtj    d||ƒtj|dƒdStjj|tjƒ}t ||ƒ}|s6tj    d    |||ƒtj|d
ƒdSi|d6}i|d6}t!|||||| |d |||    gƒnºgd d }}}| r¿| j"ƒ}| j#ƒ}| j$ƒ}n|söt
j%|||ƒ}|sädS|\}}}n|sdSi|d6}d}t!|||||| ||||ƒ
t'S( sb ±¾Õ½¶·»áÒ»´ÎÐÔ´¦ÀíÍêËùÓÐС¶ÓÕ½¶·£¬ÒÔÕ½±¨µÄÐÎʽÏ·¢£¬Ä¿Ç°³ýÁËÖ÷ÏßС¹Ö·Ö¶ÎÕ½¶·Í⣬¾ùʹÓøÃÕ½¶·
    sM----- »ØºÏÖÆÕ½¶·ÇëÇó: mapID=%s,funcLineID=%s,tagType=%s,tagID=%s,valueList=%sNis    funcLineID=%stTurnFightReqTicks+Íæ¼ÒûÓиÃÕóÈÝÊý¾Ý! atkLineupID=%s,mapID=%ss$Ä¿±êÍæ¼ÒûÓлº´æÊý¾Ý! tagPlayerID=%sRBs5Ä¿±êÍæ¼ÒûÓиÃÕóÈÝÊý¾Ý! tagPlayerID=%s,defLineupID=%st TagNoLineuptreqDatai((RvtGetPlayerManagertGetPlayerByIndexRR’R“tTagTypetTagIDt    ValueListRwRàtOnTurnFightRequestRktFBCommont GetFBIpyDatatGetFBLineIpyDataR@tCheckCanEnterFBCommR
tEntFBAskRet_OKRtGetPlayerServerIDRëR R2RCRDRùRER_t MapLineIDDictRRtAddToBattleQueuetGetLineupIDListtGetNPCLVt GetDifficultytGetFBNPCLineupInfoR/R](RWt
clientDataRüR9RæR:R;ttagTypettagIDt    valueListtreqRett    fbIpyDatat fbLineIpyDataRUtplayerServerIDR6t atkLineupIDt atkLineupInfoRGRt defLineupIDRHRIRJtnpcLineupIDListRRRStret((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt OnTurnFight9sx                     "$        .       %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(s6Ìí¼Ó½øÕ½¶·ÇëÇó¶ÓÁУ¬ÕâÀï×öÕ½¶··Ö·¢´¦Àí£¬Óɵ±Ç°·þÎñÆ÷¸ù¾Ýµ±Ç°·þÎñÆ÷Çé¿ö·ÖÅäµ½±¾»ú×ӵįäËûÕ½¶·µØÍ¼£¬»òÖ±½Ó±¾µØÍ¼´¦Àí
    @param lineupDictA: ÕóÓªAËùÓÐÕóÈÝ{ÕóÈݱàºÅ:{ÕóÈÝÐÅÏ¢}, ...}
    @param lineupDictB: ÕóÓªBËùÓÐÕóÈÝ{ÕóÈݱàºÅ:{ÕóÈÝÐÅÏ¢}, ...}£¬pvpʱÓÃ
    @param reqPlayerID: ÇëÇóµÄÍæ¼ÒID£¬Èç¹ûÊÇϵͳ×Ô¶¯´¦ÀíµÄÕ½¶·³¡´Î£¬ÔòΪ0
    @param npcLineupIDList: pveʱÓã¬Òª¶ÔÕ½µÄnpcÕóÈÝIDÁбí
    @param strongerLV: pveʱÓã¬npcÊôÐԳɳ¤µÈ¼¶
    @param difficulty: pveʱÓã¬npcÊôÐÔÄѶÈϵÊý
    @param reqData: Ã¿³¡Õ½¶·×Ô¶¨ÒåµÄÇëÇóÐÅÏ¢£¬Óɹ¦ÄÜ×Ô¼º¾ö¶¨£¬ÈÎÒâ½á¹¹£¬Í¸´«²ÎÊý
    NtTurnFightProcessii( Rvt GetGameWorldt GetServerIDRüRÂR@R]t GetDebugLeveltCrossServerPackLogictSendBattleRequesttSSMsg_BattleRequest(R6R:R;RIRJRURR"RRRSRt fromServerIDtreqInfot multiMapSett
isMultiMap((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR•s" '        R5c CsC|\ }}}}}}}    }
} } } |r\tjd|||||tjƒf|ƒn|
r‰t|||||    ||
| | ƒ    }nt|||||||    ƒ}d}i}d}|rÝ|j}|j}|j}n|||||||| g}|tj    ƒj
ƒkr#t ||ƒnt j ||||||ƒdS(NsJOnServerReceiveMsg => %s, fromServerID=%s,funcMapID=%s,funcLineID=%s,%s,%sR5(RvRÿRhtDoTurnFightPVERFR/RGRBRER&R'tSSMsg_BattleResultR)tSendBattleResult(R-R,tmsgTypeR6R:R;RIRJRURR"RRRSRRRBRGREtretInfo((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR+¹s&'    &'         c
Cs|\}}}}}}}    }
|rStjd|||||tjƒf|ƒnd} |rtjƒj|ƒ} | sdSn|dkrª| r¦tj| dƒndSi} tj    | ||||||    |
| ƒ    | r|t
j k} t | ||||
| ||    | ƒ    ndS(NsJOnServerReceiveMsg => %s, fromServerID=%s,funcMapID=%s,funcLineID=%s,%s,%st
BattleFail( RvRÿRhR/RtFindPlayerByIDRùRERàtOnTurnFightAwardR_RjtSyncTurnFightRet(R4R,R3R6R:R;RURBRGRERR9t    awardDictRC((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR1Øs&    & %%c    CsEt|ƒ}    tƒ}
|
j|||||ƒ} | j}| j|||    tƒ| j|||ƒ| jtj    |ƒx¦t
|ƒD]˜\} } | | _ t j d||| | ƒ| dkrÉ| jƒn| jtjit| ||ƒd6ƒ| jƒ| jƒt| ƒ| js‚Pq‚q‚Wt| ƒ}|
j|ƒ|rA| SdS(sÖ´ÐÐPVEÕ½¶·£¬Ö§³Ö¶àС¶Ó
    s8¶ÔÕ½NPCÕóÈÝ: mapID=%s,funcLineID=%s,index=%s,lineupID=%siiN(t
GetTurnMaxRäRÝR6R[R]RWRrR_RjRQRPRvRwRYR~RAR|RŠt__processTurnFightRCt__saveBatBufferRàR/(R6R:R;RURtplayerLineupDictR"RRRSR>RãRRWRtsaveOK((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR0ös*               &
 
 
      c CsÄt|ƒ}tƒ}|j|||||ƒ}    |    j}|    j|||tƒ|    jƒ|    jtj    |ƒ|    jtj
|ƒ|    j ƒ|    j ƒt |    ƒt|    ƒ}
|j|ƒ|
rÀ|    SdS(sÖ´ÐÐPVPÕ½¶·£¬Ö»´¦ÀíÕ½¶·£¬²»¹ØÐŦÄܼ°curPlayerÏà¹Ø
    @param lineupDictA: ÕóÓªAËùÓÐÕóÈÝ{ÕóÈݱàºÅ:{ÕóÈÝÐÅÏ¢}, ...}
    @param lineupDictB: ÕóÓªBËùÓÐÕóÈÝ{ÕóÈݱàºÅ:{ÕóÈÝÐÅÏ¢}, ...}
    @param reqPlayerID: ÇëÇóµÄÍæ¼ÒID£¬Èç¹ûÊÇϵͳ×Ô¶¯´¦ÀíµÄÕ½¶·³¡´Î£¬ÔòΪ0
    N(R:RäRÝR6R[R]RXRrR_RjR~R|RŠR;R<RàR/( R6R:R;RIRJRURR>RãRR>((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRFs         
 
 
 
  cCsP|tjkrtjddƒStjddiƒ}|j|tjddƒƒS(NR”iii(R_R`RüRÂtGetFuncEvalCfgR(R:tmapTurnMaxDict((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR:1scCstjƒj|ƒ}|j}|j}|dkrAt|ƒdS|dkr^t||ƒdStjd||jƒƒt    |ƒ}|j
ƒt j ƒ}d|_ tj||ƒ|dkrÎt|tƒn|dkrêt||ƒnd|_ tj||ƒt|ƒdS(Niis,------------------- Ö÷ÏßÕ½¶·ÇëÇó: reqType=%sii(RvRRtReqTypetReqValuet__doExitMainFightt__doSetFightPointRwRRöRïRttagSCTurnFightReportSigntSignRÏRÐRMR]t __doMainFightt__doMainFightExDataFunc(RWRRüR9treqTypetreqValuet mainFightMgrR¼((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytOnMainFightReq?s.         
 
           
cCst|ƒ}|j}|dkrŒtj||ƒtj|tj|ƒtj|t    j
|ƒt j |t j|ƒtj|t    j|ƒn|j}|dkr´tj||ƒn|j}|dkrtj|t    j|ƒtj|t    j|ƒt j |t j|ƒn|jƒdS(Ni(RöRìt
PlayerLLMJtAddUseZhanchuitPlayerPrestigeSystAddRealmTaskValuetRealmTaskType_UseXiantaot
PlayerTaskt AddTaskValueR_tTaskType_CutTreet PlayerSuccesstDoAddSuccessProgressR
tSuccType_OSACutTreetPlayerActivitytAddDailyTaskValuetDailyTask_CutTreeRítAddExpExRîtTaskType_KillNPCtDailyTask_KillNPCtSuccType_OSAKillNPCRï(R9RKRìRíRî((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRHas$                
cCs/t|ƒ}|j}|r+|jtƒndS(N(RöRR‡R](R9RKR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRC}s
     cCs˜tjd|ƒtjddƒ}|dks@|t|ƒkrDdS||d}|jtjƒ}||kr‡tjd||ƒdS|j|ƒdS(NsÉèÖÃÕ½´¸ÏûºÄ±¶Öµ: %st    AutoGuajiis×£¸£Ê÷µÈ¼¶²»×ã: treeLV=%s < %s(    RvRwRüR?RktNomalDictGetPropertyR_tDef_PDict_TreeLVt SetFightPoint(R9t
fightPointtneedTreeLVListt
needTreeLVttreeLV((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRD…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|tjƒ} | sÇtjd    |ƒdS|jƒ} |jƒ}t|ƒ}||_||_|    |_||_tjtj|||ƒ}}t|ƒ}tjd
||||    |
||| | ||ƒ |j}|j|||t|ƒ|j|
| |ƒ|j tj!i| d6ƒ|j tj"it#| | |ƒd6ƒ|j$ƒ|j%ƒt&|ƒdS( Ns?ÇëÇó¹Ø¿¨²¨Õ½¶·: chapterID=%s,levelNum=%s,wave=%s,isRestStart=%sisÕ½´¸²»×㣬ÎÞ·¨¿ªÊ¼!R÷RøisGetWaveLineupIDList%sisûÓÐÉèÖÃÖ÷ÕóÈÝ!sqÉèÖÃÆðʼ¹Ø¿¨²¨: ¹Ø¿¨%s-%s,²¨=%s/%s,lineupIDList=%s,mapID=%s,funcLineID=%s,lineupID=%s,strongerLV=%s,difficulty=%s('RRùRûRvRwtmaxt GetFightPointt    HaveMoneyR
tTYPE_Price_XiantaoRüR6RýRÉR:R2R RRRöRçRèRéRêR_R`tComMainLevelValueR:RR[R@RWRrRjR~RAR|RŠRG(R9t isRestStartRæRçRèRêRctchapterIpyDatat levelIpyDataRéRQRtlineupMainInfoRRRSRKR:R;R>R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRM“sl  
 :      
                        %    &
 
 
c
Cs|rt||dƒrdSnt|ƒ}|j}|jƒ}|rJdS|jƒsgt|tƒdS|j}|r |jƒ}|rût    j
d|j ||j ƒ|j ƒ|jtjit||j|jƒd6ƒ|jƒ|jƒt|ƒn t|tƒdSt|jƒdƒ}tj|tj|ƒsJt    j
dƒdSt|ƒ}|rbtnt}    tj ƒ}
|j!} |j"} |j#} xkt$| | dƒD]V} |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-|ƒ}xt$|j.t(dƒD]ê}||j/krÞ|d|_.q¶n|j/|}|
j0|ƒ}|    r8|tj1kr8|r8|j2ƒr8t    j
d|ƒdSn|d|_.t3||| ƒt4||ƒ}t5||| ƒ|s€q¶n|     rŸ|tj1krŸt}    nPq¶W|j+t)|j*ƒdkrÌd|_+q3|j+d7_+q3W|jrìPnt6|| ƒq£W|jst7|j8ƒndS(    sŠÖ´ÐÐÖ÷ÏßÕ½¶·£¬µ¥³¡Õ½¶·¶Ïµçʽս¶·£¬ÒÔǰ¶ËÍæ¼ÒÊÖ¶¯µã»÷½Úµã×öΪ¶Ïµã´¦
    Ã¿³¡Õ½¶·µÄ³õʼ»¯¡¢½áÊøÄ¬È϶ϵ㣬ÓÉǰ¶Ë¾ö¶¨×Ô¶¯¼ÌÐø»òÕßµã»÷¼ÌÐø
    tMainFightReqTickNs6---¿ªÊ¼½øÈëÏÂһС¶Ó: lineupIndex=%s,nextLineupID=%s,%sis»ØºÏ¿ªÊ¼Ê±Õ½´¸²»×ã!s#¡¾----- »ØºÏÖÆÕ½¶·ÂÖ´Î: %s -----¡¿ is/Íæ¼ÒÕóÈÝÏÂÒ»¸ö¿ÉÐж¯µÄÎ佫£¬¶Ïµã: nextPosNum=%s(9RRöRRðR‹RMR]RBRmRvRwRPRQRYRrR_R~RARRRSR|RŠRGR@RgRhRùRiR
Rjt
EntryLogicRRR=R>R?R9RƒtFightState_FightingtTurnFightPerTurnBigStartt    PosNumMaxRkRKRLRnR1R RR$Rjt    CanActiontTurnFightHeroTurnStartt OnObjActiontTurnFightHeroTurnEndtTurnFightPerTurnBigEndt OnTurnAllOverR6(R9RüRKRRðRBRmRctisEntrytcheckBreakpointR"R=R>R?tdoMaxtdoCntRRRpRqRR#R'tisAction((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRGÕs              
,
 
                                  1
                 cCs1|j}|j}t|ƒtjƒ}xétd|dƒD]Ô}|jrOPn||_tj    d|ƒ|r~|j
t ƒnt ||ƒ|jr˜Pnt t|jƒ}d}xB||krõ|jt|jƒkrõ|j rõ|d7}|j|j\}}|j|ƒ}    |    j|ƒ}
x˜t|
jt dƒD]€} | d|
_| |
jkr_q7n|
j| } |j| ƒ} t|| |ƒt|| ƒ}t|| |ƒ|s¶q7nPq7W|jt|jƒdkrãd|_q´|jd7_q´W|jrPnt||ƒq<W|js-t|jƒndS(Nis"¡¾----- »ØºÏÖÆÕ½¶·ÂÖ´Î: %s -----¡¿i(R9R>RqRRR9RBR=RvRwRƒRrRsRtRkRKRLRnR1R RR$RvRwRxRyRzR6(RR9R>R"R=R}R~RRRpRqRR#R'R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR;VsT        
              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    lineupNumRR)R?Rvt    CodeToGbkRÃR_RjR¡(R'RRRR)R?Rï((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRÝŽs                    cCsÓ|jr dStjdƒtjƒ}x|jD]’\}}|j|ƒ}|j|ƒ}t|_    x\|j
j ƒD]K}|j |ƒ}|j ƒtj||tjƒtj||tjƒqsWq0Wt|_tS(NsÖ´Ðнø³¡Âß¼­...(RARvRwRRRKRnR1R R RR R$RÔR÷tOnTriggerPassiveEffectR_tTriggerWay_FightStarttTriggerWay_InBattlefieldR](RR"RRRpRqR#R'((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRq›s          
    c    Cs$tjƒ}x|jD]\}}tjd|||ƒ|j|ƒ}|j|ƒ}d|_xº|jj    ƒD]©}|j
|ƒ}|sqon|j ƒ|j t jƒ|dkrÓt|ƒt|||ƒn|jƒ|jƒstj||t jƒqotj||t jƒqoWqWdS(Ns,´ó»ØºÏ¿ªÊ¼Âß¼­: turnNum=%s,faction=%s,num=%si(RRRKRvRwRnR1R RR R$RÔt    SetTimingR_tTurnTiming_BeforetRefreshObjSkillByBigTurntRefreshObjByBigTurnt ResetBigTurnR%R÷R„tTriggerWay_BigTurnStartByDeadtTriggerWay_BigTurnStart(    RR=R"RRRpRqR#R'((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRs¯s(     
 
 
 c    CsÅtjƒ}x²|jD]§\}}tjd|||ƒ|j|ƒ}|j|ƒ}xd|jjƒD]S}|j    |ƒ}|s‡qfn|j
ƒs™qfn|j ƒt j ||tjƒqfWqWdS(Ns+»ØºÏ½áÊøÂß¼­: turnNum=%s,faction=%s, num=%s(RRRKRvRwRnR1RR R$R%RÔR÷R„R_tTriggerWay_BigTurnEnd(    RR=R"RRRpRqR#R'((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRyË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%RvRwR¡R©R­RÔtRefreshObjBuffTimeR÷R„R_tTriggerWay_HeroTurnStartR‡tTurnTiming_After(RR'R=((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRvßs (
 cCs]|s
dS|jƒsdStjd|jƒ|jƒ|jƒƒ|jƒt||ƒdS(Ns(---[Î佫»ØºÏ½áÊø] : curID=%s,curHP=%s/%s(R%RvRwR¡R©R­RÔR(RR'R=((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRxð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¡tResetSkillUseCntRÚR9t GetSkillCounttGetSkillByIndexR°tGetCoolDownInitt SetRemainTimeRvRwt GetRemainTimet    SetEnergy(R'tcurIDRñRWtcurSkillR¶tinitCD((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¡RÚR9R“R”R°t    GetEnergytGetEffectCountt    GetEffectt GetEffectIDR_tPassiveEff_EnergySkilltGetEffectValueR˜RvRwtGetSkillTurnUseCntR—R–(
R'R™RñRWRšR¶teIndexteffectt 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¡RóR9t GetBuffCounttGetBuffByIndext    GetBuffIDR°t GetSkillDatatGetLastTimeTypeR_tBuffLastTimeType_BigTurntBuffLastTimeType_BigTurnLayertBuffLastTimeType_BigTurnLimitt GetSkillTypetDef_LstBuff_ListtDef_SkillType_Halot
GetOwnerIDRvRwR—t GetLastTimeRõtSetBuffRemainTimetGetLayertDoBuffLayerChange(RR'R=R™RùRWtbufftbuffIDR¶t    skillDatatlastTypeR¦t lastTurnMaxtcurLayertupdLayer((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRŠ1sF  &    '  
 
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    GetTimingRóR9R§R¨R©R°RªR«R_tBuffLastTimeType_DefaultR¯R°R±R²RvRwR—t GetAddTimingtGetRefreshStatetSetRefreshStateRõR´( RR'R™t    curTimingRùRWR·R¸R¶R¹R¦t    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 StatCureValueRvRw(tcurObjtsrcObjtaddValuetcureHPR¶R™tsrcIDt 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 StatHurtValueRvRwR©t StatDefValue(    t    curBatObjt    tagBatObjt    hurtValuetlostHPR¶tlostTypeR™RRË((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…|j1j2ƒD]t}|j3|ƒ}|j4ƒs;qn|j5ƒ|j5ƒkrot j ||tj6|ƒqt j ||tj7|ƒqWqïWqÊWt8S( Nis(¡ï»ØºÏ%s %s µ±Ç°×´Ì¬²»¿ÉÐж¯! isExtra=%ss0¡ï»ØºÏ%s %s %sÐж¯ : atk=%s,curHP=%s/%s,curXP=%ss¶îÍâR5RÁis(³°·í״̬Ï£¬ÎÞ·¨Ö÷¶¯ÊÍ·ÅÅ­¼¼! skillID=%siÿÿÿÿs Ðж¯Ê±ÎÞ·¨ÊͷŸü¼ÄÜ! skillID=%s(9R©R¡R=RÝRuRvRwRwR³R­RÔRÇR÷R„R_tTriggerWay_HeroActionStartRüRÂRÚR9R“R”t GetFuncTypet Def_SkillFuncType_TurnNormaSkilltDef_SkillFuncType_AngerSkillt SkillCommontisPassiveSkillR—R°t isAngerSkillt GetEffectByIDtSkillEff_AngerSkillNoXPt CheckInStatetBatObjState_SneertSkillEff_ActionUseInvalidtGetSkillUseCntRtRut    TurnSkillt
OnUseSkilltTriggerWay_HeroActionEndRRRjR~RnR.R˜R1RR R$R%t
GetFactiontTriggerWay_EnemyActiontTriggerWay_FriendActionR](RRÏtisExtratcurHPR#R=Rït    canActiontatktcurXPtxpMaxRñt useSkillListRWtuseSkillR¶RÖtuseInfoR"RRpR‚Rqt lineupObjIDt    lineupObj((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRw­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(R9R£RRbRåR_RjRàtOnFBNPCKilledBeforeR¡R°RvRwRÝtSetDeadRõt DoBuffByDeadRttagMCTurnFightObjDeadR¢t KillerObjIDtSkillIDRºR:R`RöRîR](
RtgameObjtkillerRïR9R?R#t killerObjIDR¶R¼((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt SetObjKilleds&     3                -cCsžtjdƒtƒj|ƒ}|s)dS|jr6dS|jƒrr|jtjkrctj    |_qtj
|_nt j tj    tj
gƒ|_t |ƒdS(Ns ËùÓлغϽáÊø(RvRwRäRÞRBRR:R_R}RjR~RttchoiceR(R6R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRzs      
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]k} t| ƒ|    kri|    t| ƒ<n|    t| ƒ} t| ƒ|
krSi|
t| ƒ<n|
t| ƒ} |j| ƒ}d|_xà|jjƒD]Ï}t|ƒ| kr¶i| t|ƒ<n| t|ƒ}|j|ƒ}d|_|j| t|ƒ<t j d| |ƒxS|jjƒD]B\}}|j|ƒ}|s;qn|d7}|jƒ}|j ƒ}|j!ƒ}|j"}|j#}|j$}|j|7_|j|7_|j%ƒr´dnd}t j d|||||j&ƒ|j'ƒ|||ƒ
i
|d6|d6|d    6|d
6|d 6|d 6|j(ƒd 6|j)ƒd6|j*ƒd6|d6|t|ƒ<qWq‹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±RtSkintDeadRBtstatInfo(1RäRÞRhRMRNRBR_RjRCR:R;RRvRwR`RÿR=R>RRRJR˜RRnRR.R1RRRoR$R¡R£R¥thurtStattdefStattcureStatR%R©R­R°tGetStarR§RàtOnTurnFightOverRƒRÁtDataRecordPackt DR_FightStat(R6RãRRBR:R;RUt    heroCountR"Rt drLineupInfoRt facStatInfotfacDRLineupInfoRpRtlineupStatInfoRqRR#R'R?R)tatkHurttdefHurtRÉtdeadRG((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR4sv                 ,         
                   +-G!cCstjƒj|ƒ}|j}tj|ƒjƒ}|r{t|ƒdkr{||dkr{|\}}t|||ƒdSt    j
|dƒdS(NiitFightReportExpired( RvRRtGUIDRñRótGetLastBatBufferRktSyncTurnFightReportRùRE(RWRRüR9R6tlastBatBufferInfotreprot((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytOnTurnFightReportViews    ( cCsGtjƒj|ƒ}|j}|j}|j}t||||ƒdS(N(RvRRR’R“t    ViewNPCIDtSyncLineupNPCAttr(RWRRüR9R:R;R=((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(NiidRøR=RR¤R¦R±RRhRiRRŒs R5(ii((R_RaRüR6tGetBossLineupIDListRRR R RRàRRAR@RoR™RttagSCViewNPCAttrR²R¤R¦R±RRhRiRRŽRtAttrMsgRktAttrLenRtttagSCViewNPCAttrRetR’R“Rt NPCAttrListtNPCCntRÏRÐ(R9R:R;R=RQRRRSRçRèRnRR#t npcAttrListRRR*RtattrInfotnpcAttrR¼((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR¢sf 
 
 
            (                 cCsDtjƒ}||_||_t|jƒ|_tj||ƒdS(N(RttagSCTurnFightReportRtReportRkR–RÏRÐ(R9R6RR¼((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRÝ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(RR\R6RvtChangeTimeNumToStrR™RhtostpathtjoinR:texiststmakedirsRüRÂtlistdirtremoveRwRR'RRDR(RkR–topentwriteRÌtcloseRER](RRURVR6t
ReportRootREt    ReportDirt    isSaveOneRotitemtfullPatht saveFilePathR¼tfp((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR<æs>      -            c     Cs$ddg}    }
} |r>t|ƒdkr>|\}    }
} ntjƒ} || _|| _|    | _|
| _| | _t| jƒ| _|| _    t
j |dt ƒj ddƒ| _t| jƒ| _t
j |dt ƒj ddƒ| _t| jƒ| _|| _|| _tj|| ƒdS(NiiRŒs R5(RkRttagSCTurnFightRetR’R“RRR    t
ValueCounttIsWinRRŽR@RtAwardMsgtAwardLent
BatStatMsgtBatLentPathDateRRÏRÐ( R9R6R:R;RRCRGRER9RRRR¼((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR8    s&                         $$        (hR_RRRXRCRRÏRùRvRMROR)R    RURüRñRjR
RáRÙRR÷RâRõR RÍRàRtRhRR+RLRtR R9RˆtFightState_PrepareOKRrtFightState_FightEndRÁR„R…RR-R4RÙRäRåRöRRRR RR R2R]RARKRPR5R;RYRvRRiRR$R/RR+R1R0RFR:RLRHRCRDR@RMRGR;RÝRqRsRyRvRxRßR‰RŠRRÌRÔRwRüRzRRRRRR<R8(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt<module>sº                               !Lÿ>                                  2#     ON      _         $    \$      !        "             B     8                                       .    (  U        M         ;            )