cjc
2025-12-31 fce59eb83f4483ab5b4abc808dc74cdbe04cedbd
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
­ØTic@s ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    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„Z2d„Z3d„Z4d„Z5ddd„Z6dd„Z7d„Z8ddd„Z9ddd„Z:d„Z;d„Z<dd„Z=d„Z>d„Z?d „Z@ddgddeAd!„ZBd"d#„ZCd"d$„ZDd%„ZEddd&„ZFd'„ZGd(„ZHd)„ZId*„ZJd+„ZKeLd,„ZMdd-„ZNd.„ZOd/„ZPd0„ZQd1„ZRd2„ZSd3„ZTd4„ZUd5„ZVd6„ZWd7„ZXd8„ZYdd9„ZZdd"d:„Z[eLd;„Z\eAeAd<„Z]d=„Z^d>„Z_d?„Z`d@„ZadA„ZbdB„ZcdS(Ciÿÿÿÿ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    isInFightyscCsÖtj|jdtƒ}|jddƒ}tjƒ}|j|_|j    |_
|j |_ ||_ t|j ƒ|_g|_tjƒ}x&|jjƒD]}|j|ƒ}tjƒ}||_g|_x½|jjƒD]¬}|j|ƒ}tjƒ}    ||    _|j|    _|j|    _ g|    _!x<|j"j#ƒD]+\}
} |j$| ƒ} | s_q8ntj%ƒ} | j&ƒ| _'| j(ƒ| _)| j*ƒ| _+| j,ƒ| _-| j.ƒt/j0| _1| j.ƒt/j0| _2| j3ƒt/j0| _4| j3ƒt/j0| _5| j6ƒ| _7|j8r;|j9| j(ƒkr;|j8| _:n    |
| _:| j;ƒ| _<|    j!j=| ƒq8Wt|    j!ƒ|    _>|jj=|    ƒqÝWt|jƒ|_?|jj=|ƒqšWt|jƒ|_@|jA|ƒdS(Nt ensure_asciis R5(BtjsontdumpsRHR@treplacetChPyNetSendPackttagSCTurnFightInitR:tMapIDR;t
FuncLineIDR>tTurnMaxtMsgRktLent FactionListRRRJtkeysRnttagSCTurnFightFactiontFactiont
LineupListR.R1ttagSCTurnFightLineuptNumRtOwnerIDRRtObjListRRoR$ttagSCTurnFightObjtGetIDtObjIDtGetNPCIDtNPCIDt    GetHeroIDtHeroIDt    GetSkinIDtSkinIDtGetHPR_tDef_PerPointValuetHPtHPExtGetMaxHPtMaxHPtMaxHPExtGetLVtLVRRtPosNumtGetXPtAngreXPRttObjCntt    LineupCntt
FactionCntt
addBatPack(Rtmsgt
clientPackR"RRpt    tfFactionRRqttfLineupRR#R'ttfObj((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR‰{s`                                       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:    &                                              
    "             5                     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.pytGetTurnFightMgrs              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 OnPlayerLogin2s '    #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.pyR@s  cCst||ƒjS(N(tGetPlayerLineupR(R9R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytGetPlayerLineupFightPowerIscCs\tj|ƒ}|j|ƒ}|jƒrXtjd||jƒƒ|jtjƒ}n|S(Ns)Íæ¼ÒûÓÐÄ¿±êÕóÈÝĬÈÏÈ¡Ö÷ÕóÈÝ! lineupID=%s(    RïRñt    GetLineuptIsEmptyRvRwRþRR    (R9RRóR0((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR Ls  cCsš|jƒ}t||ƒ}|jƒr+iSi}|jƒjtjƒ}x|jƒD]
}|j|ƒ}|j    }|j
}    d}
d} |    dkró|    |j ƒkró|j |    ƒ} | ró| jƒ ró| j tjƒ}
| j tjƒ} qóng} | |j7} i|d6|jd6|
d6| d6|jd6d„|jjƒDƒd    6| d
6|t|ƒ<qVW|sniSi|d 6|jd6|jd 6|d 6}|S(NiiR¦R¨R±tStarRcSs1i|]'\}}|dkr|t|ƒ“qS(i(tstr(t.0tktv((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pys
<dictcomp>ys    tAttrDictt SkillIDListRRtHero(RþR RtGetItemManagertGetPackRtrptHerot GetPosNumListt GetLineupHeroR)t    itemIndextGetCounttGetAtt GetUserAttrtDef_IudetHeroLVtDef_IudetHeroStartheroSkillIDListtskinIDRtheroBatAttrDictRoRR(R9RRäR0theroDicttcurPackRtheroR)RtheroLVtstartheroItemt skillIDlistR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytGetPlayerLineupInfoUs>           
 
(ic Cst|||ƒ}|r|Stjd|ƒ}|s8iS|jƒ}|jƒ}i}xtdd    ƒD]p}t|d|ƒsƒPnt|d|ƒƒ}    |    s¥qfnt||    ||ƒ}
|
sÆqfn|
|t    |ƒ<qfWi|d6|d6|d6|d6}|S(
Nt    NPCLineupiis GetPosNPCID%st NPCLineupIDRRRi(
tGetGMTestNPCLineupInfoRútGetIpyGameDatat    GetBossIDtGetBossPosViewtrangeRÇtgetattrtGetNPCBattleDictR( RRRRSRtipyDataRRR%RtnpcIDt
battleDict((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytGetNPCLineupInfoƒs*  "c
Cs·|s|jƒ}ntjƒ}d\}}tj|ƒ}|sVtj|dƒdSt|tj    ƒ}it
|tj    ƒd6}i|d6}t |||||ƒ}    |    r³|    j SdS(NitTagNoViewCachei(ii(RþRvRétPlayerViewCachetFindBattleViewCacheR÷t
NotifyCodeRRR    R,tDoTurnFightPVPRNR/(
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(NR-iis GetPosNPCID%sR¦iiÿÿÿÿRiŸ†RR.RRi(RDRúR0R3RÇR4R5t    enumerateRR˜tIPY_Datatxranget GetNPCCountt GetNPCByIndextGetRelatedHeroIDR£RttindextcountRkR R/tGetNPCHeroSkillIDList(RRRRSRFRGt lineupIpyDatatnpcDictt heroNPCIDDictRR7R8R)R%t lineupNPCIDt ipyNPCIDListt ipyHeroIDListt
ipyDataMgrROR6tlineupNPCIndext loopIndexListt    posHeroIDt heroIpyDatat skillIDListR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR/»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}tjd||ƒ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|j/ƒtj06|j1ƒtj26|j3ƒtj46|j5ƒtj66|j7ƒtj86|j9ƒtj:6}n|j;ƒ}x@|j<ƒD]2\}}t=|ƒ}|j>|dƒ|||<q@Wi|d6|d6|d6|d    6|d
6d „|j<ƒDƒd 6|d 6}tjd||||
|ƒ|S(NiRt NPCStrongert    LVReValues"ÕóÈÝboss¼¼ÄÜ: %s, Ëæ»ú¸½¼Ó¼¼ÄÜ: %sR¤R¦R¨R±RcSs1i|]'\}}|dkr|t|ƒ“qS(i(R(RRR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pys
<dictcomp>Qs    RRsEGetNPCBattleDict npcID=%s,strongerLV=%s,difficulty=%s,reModelID=%s,%s(iii(?t    NPCCommont GetNPCDataPyRNR°t GetReModelIDR/RúR0Rût GetReHeroStartGetReHeroBreakLVtGetReHeroAwakeLVt GetSkinIDListRQR1tGetSkillIDExListtlistt 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(RRR7RRRStnpcDataR)tnpcLVR)tbreakLVtawakeLVt    reModelIDt lvReIpyDataR\t npcStrongert
skinIDListR#R]Rt skillIDExListtrandSkillIDExListt
skillExCntt batAttrDictt
exAttrDictt    attrIDStrt    attrValuetattrIDR8((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR5
sz              
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)R\R’R“t normalSkillIDt angerSkillIDR]tbreakIpyDataListt breakIpyDatatskillIDtawakeIpyDataListt awakeIpyData((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRQXs(       c Csi}| s| s| r|S|jƒ}x·tjD]¬}tjd|ƒ}|sYq5n|jƒ}t|d|ƒs~q5nt|d|ƒƒ}    t|d|ƒr½t|d|ƒƒnd}
t|    |
|ƒ} | ||<q5Wt    j
d||||ƒ|S(Nt
PlayerAttrsGetRe%ss
Get%sRatiois,NPC³É³¤ÊôÐÔ: npcID=%s,lv=%s,difficulty=%s,%s( R°R_tCalcBattleAttrIDListRúR0t GetParameterRÇR4RRvRw( R7R•R–RSR›tlvRŸt attrIpyDatatattrNametreValuetratioRž((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRlrs"  /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
    RiR.sCSummonLineupObjs 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RgR0R/tGetNamet GetSpecialtytGetAtkDistTypet
GetCountrytGetSextGetJobR`Rat
GetNPCNamet    addBatObjR¡tSetNPCIDt
SetOwnerIDt    SetTFGUIDtSetNamet
SetFactiont SetLineupPost SetFightPowertSetLVtSetStartSetAtkDistTypet SetSpecialtyt
SetCountrytSetSextSetJobtSetHerotGetSkillManagert
SkillResettLearnSkillByIDRR    t
GetObjNametGetSkillIDListt ResetObjSkilltFBLogictGetFBNPCInitAttrt InitBatAttr($RqRRRRUtlineupPlayerIDt npcLineupIDRttfGUIDR%R"tinitXPt    posNumKeytheroInfoRRR]tattrDictR7R)R#R²R)t    specialtyt atkDistTypetcountrytsextjobR\tobjNamet    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÷R=R]RdRfR@(R9tticktselfKeyRátpubCDtselfCDtlastTick((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt CheckFightCD
s          c Cs\tjƒj|ƒ}|jƒ}|j}|j}|j}|j}|j}    tj    d|||||    |ƒt
j ||||||    ƒ}
|
s•dSt |
ƒdkr±|
dn|}t j|ƒ} t j||tƒ} | r)| sþtj    d||ƒdSt j|||| | ƒtjkr)dSnt
j|||ƒ\} }| tjksb|tjkrfdSt||dƒr|dS|}tj|ƒ}tjƒ}t|| ƒ}|sÉtj    d| |ƒdS|dkrž|}tj|ƒ}|stj    d||ƒtj|dƒdSt||ƒ}|sVtj    d    |||ƒtj|d
ƒdSi|d6}i|d6}t|||||||d |||    gƒnºgd d }}}| rß| j ƒ}| j!ƒ}| j"ƒ}n|st
j#|||ƒ}|sdS|\}}}n|s dSi|d6}d}t||||||||||ƒ
t%S( sb ±¾Õ½¶·»áÒ»´ÎÐÔ´¦ÀíÍêËùÓÐС¶ÓÕ½¶·£¬ÒÔÕ½±¨µÄÐÎʽÏ·¢£¬Ä¿Ç°³ýÁËÖ÷ÏßС¹Ö·Ö¶ÎÕ½¶·Í⣬¾ùʹÓøÃÕ½¶·
    sM----- »ØºÏÖÆÕ½¶·ÇëÇó: mapID=%s,funcLineID=%s,tagType=%s,tagID=%s,valueList=%sNis,²»´æÔڸø±±¾¹¦ÄÜÏß·! mapID=%s,funcLineID=%stTurnFightReqTicks"Íæ¼ÒûÓиÃÕóÈÝÊý¾Ý! atkLineupID=%ss$Ä¿±êÍæ¼ÒûÓлº´æÊý¾Ý! tagPlayerID=%sR:s5Ä¿±êÍæ¼ÒûÓиÃÕóÈÝÊý¾Ý! tagPlayerID=%s,defLineupID=%st TagNoLineuptreqDatai(&RvtGetPlayerManagertGetPlayerByIndexRþR’R“tTagTypetTagIDt    ValueListRwRÖtOnTurnFightRequestRktFBCommont GetFBIpyDatatGetFBLineIpyDataR@tCheckCanEnterFBCommRtEntFBAskRet_OKtGetFBPlayerLineupIDR›R÷tGetPlayerServerIDRéR,R;R<R÷R=RtAddToBattleQueuetGetLineupIDListtGetNPCLVt GetDifficultytGetFBNPCLineupInfoR/R](ROt
clientDataRòR9RäR:R;ttagTypettagIDt    valueListtreqRett    fbIpyDatat fbLineIpyDatat atkLineupIDt defLineupIDRUtplayerServerIDR6t atkLineupInfoR?RR@RARBtnpcLineupIDListRRRStret((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt OnTurnFight.s~                     "$    .       %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;RARBRURRRRRSRút 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ýRhtDoTurnFightPVER>R/RGRBRERRtSSMsg_BattleResultRtSendBattleResult(R#R"tmsgTypeR6R:R;RARBRURRRRRSRúRRBRGREtretInfo((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/RûtFindPlayerByIDR÷R=RÖtOnTurnFightAwardR_RjtSyncTurnFightRet(R*R"R)R6R:R;RURBRGRERúR9t    awardDictRC((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR'Ïs&    & %%c    Cs?t|ƒ}    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|ƒ|r;| SdS(sÖ´ÐÐPVEÕ½¶·£¬Ö§³Ö¶àС¶Ó
    s"¶ÔÕ½NPCÕóÈÝ: index=%s, lineupID=%siiN(t
GetTurnMaxRâRÛR6R[R]RWRrR_RjRIRPRvRwRYR~R9R|RŠt__processTurnFightRCt__saveBatBufferRÞR/(R6R:R;RURtplayerLineupDictRRRRSR>RáRRORtsaveOK((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 lineupDictA: ÕóÓªAËùÓÐÕóÈÝ{ÕóÈݱàºÅ:{ÕóÈÝÐÅÏ¢}, ...}
    @param lineupDictB: ÕóÓªBËùÓÐÕóÈÝ{ÕóÈݱàºÅ:{ÕóÈÝÐÅÏ¢}, ...}
    @param reqPlayerID: ÇëÇóµÄÍæ¼ÒID£¬Èç¹ûÊÇϵͳ×Ô¶¯´¦ÀíµÄÕ½¶·³¡´Î£¬ÔòΪ0
    N(R0RâRÛR6R[R]RXRrR_RjR~R|RŠR1R2RÞR/( R6R:R;RARBRURR>RáRR4((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR>s         
 
 
 
  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.pyR0(scCstjƒ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(RvRûRütReqTypetReqValuet__doExitMainFightt__doSetFightPointRwRþRôRíRttagSCTurnFightReportSigntSignRÍRÎRER]t __doMainFightt__doMainFightExDataFunc(ROR RòR9treqTypetreqValuet mainFightMgrRº((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytOnMainFightReq6s.         
 
           
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 PlayerSuccesstDoAddSuccessProgressRtSuccType_OSACutTreetPlayerActivitytAddDailyTaskValuetDailyTask_CutTreeRëtAddExpExRìtTaskType_KillNPCtDailyTask_KillNPCtSuccType_OSAKillNPCRí(R9RARêRëRì((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR>Xs$                
cCs/t|ƒ}|j}|r+|jtƒndS(N(RôRR‡R](R9RAR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR9ts
     cCs˜tjd|ƒtjddƒ}|dks@|t|ƒkrDdS||d}|jtjƒ}||kr‡tjd||ƒdS|j|ƒdS(NsÉèÖÃÕ½´¸ÏûºÄ±¶Öµ: %st    AutoGuajiis×£¸£Ê÷µÈ¼¶²»×ã: treeLV=%s < %s(    RvRwRúR5RktNomalDictGetPropertyR_tDef_PDict_TreeLVt SetFightPoint(R9t
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|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('RþR÷RùRvRwtmaxt GetFightPointt    HaveMoneyRtTYPE_Price_XiantaoRúR0RûRÇR4R,R    R
R RôRåRæRçRèR_R`tComMainLevelValueR0RR[R@RWRrRjR~R9R|RŠR=(R9t isRestStartRäRåRæRèRYtchapterIpyDatat levelIpyDataRçRQRtlineupMainInfoRRRSRAR:R;R>R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyREŠ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(9R÷RôRRîR‹RER]RBRmRvRwRPRQRYRrR_R~R9RRRSR|RŠR=R@R]R^R÷R_RR`t
EntryLogicRRR=R>R?R3RƒtFightState_FightingtTurnFightPerTurnBigStartt    PosNumMaxRkRKRLRnR1R RR$Rjt    CanActiontTurnFightHeroTurnStartt OnObjActiontTurnFightHeroTurnEndtTurnFightPerTurnBigEndt OnTurnAllOverR6(R9RòRARRîRBRmRYtisEntrytcheckBreakpointR"R=R>R?tdoMaxtdoCntRRRpRqRR#R'tisAction((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR=Ì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>RgRRR3RBR=RvRwRƒRhRiRjRkRKRLRnR1R RR$RlRmRnRoRpR6(RR9R>R"R=RsRtRRRpRqRR#R'Ru((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR1MsT        
              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)R7Rvt    CodeToGbkR¹R_RjR¡(R'RRRR)R7Rå((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.pyRg’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íRztTriggerWay_BigTurnStartByDeadtTriggerWay_BigTurnStart(    RR=R"RRRpRqR#R'((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRi¦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íRzR_tTriggerWay_BigTurnEnd(    RR=R"RRRpRqR#R'((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRoÂ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íRzR_tTriggerWay_HeroTurnStartR}tTurnTiming_After(RR'R=((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRlÖ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.pyRnç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ÐR3t GetSkillCounttGetSkillByIndexR¦tGetCoolDownInitt SetRemainTimeRvRwt GetRemainTimet    SetEnergy(R'tcurIDRçROtcurSkillR¬tinitCD((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRÕôs  
     cCsè|jƒ}|jƒ}xÉtd|jƒƒD]²}|j|ƒ}|sOq.n|jƒ}|j|ƒ}|jƒ}|dkrˆq.n|dkr³tj    d||||ƒq.n|d8}|j
|ƒtj    d|||ƒq.WdS(s,°´»ØºÏˢм¼ÄÜ£ºÄ¬ÈÏÒÔ´ó»ØºÏͳһ¼õ1»ØºÏ
    isV    ÉϻغÏÓÐʹÓü¼Äܱ¾»ØºÏ²»Ë¢ÐÂCD: curID=%s,skillID=%s,remainTime=%s,preTurnUseCnt=%sis1    ¸üм¼ÄÜCD: curID=%s,skillID=%s,remainTime=%sN( R¡RÐR3R‰RŠR¦tGetSkillTurnUseCntRRvRwRŒ(R'RRçRORR¬t preTurnUseCntt
remainTime((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRs$      
 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éR3t GetBuffCounttGetBuffByIndext    GetBuffIDR¦t GetSkillDatatGetLastTimeTypeR_tBuffLastTimeType_BigTurntBuffLastTimeType_BigTurnLayertBuffLastTimeType_BigTurnLimitt GetSkillTypetDef_LstBuff_ListtDef_SkillType_Halot
GetOwnerIDRvRwRt GetLastTimeRëtSetBuffRemainTimetGetLayertDoBuffLayerChange(RR'R=RRïROtbufftbuffIDR¬t    skillDatatlastTypeR”t 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    GetTimingRéR3R•R–R—R¦R˜R™R_tBuffLastTimeType_DefaultRRžRŸR RvRwRt GetAddTimingtGetRefreshStatetSetRefreshStateRëR¢( RR'Rt    curTimingRïROR¥R¦R¬R§R”t    addTiming((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR…Ls@   &   '      
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.pytAddTurnObjCureHPts      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ÓRkRvRwRmR³R­RÒRÅRíRzR_tTriggerWay_HeroActionStartRúR¸RÐR3R‰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 useSkillListROtuseSkillR¬RÔtuseInfoR"RRpRxRqt lineupObjIDt    lineupObj((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRmš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ÝR9R7R#t killerObjIDR¬Rº((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 ËùÓлغϽáÊø(RvRwRâRÜRBRR:R_R}RjR~RjtchoiceR(R6R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRp
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]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"Rñt drLineupInfoRt facStatInfotfacDRLineupInfoRpRtlineupStatInfoRqRR#R'R7R)tatkHurttdefHurtR·tdeadRG((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR!sv                 ,         
                   +-G!cCstjƒj|ƒ}|j}tj|ƒjƒ}|r{t|ƒdkr{||dkr{|\}}t|||ƒdSt    j
|dƒdS(NiitFightReportExpired( RvRûRütGUIDRïRñtGetLastBatBufferRktSyncTurnFightReportR÷R=(ROR RòR9R6tlastBatBufferInfotreprot((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytOnTurnFightReportViewns    ( 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%sRis%s.tfrs Õ½±¨Â·¾¶=%stwb(RR\R6RvtChangeTimeNumToStrRRhtostpathtjoinR:texiststmakedirsRúR¸tlistdirtremoveRwRRRRDR    RkR–topentwriteRÊtcloseRER](RRURVR6t
ReportRootREt    ReportDirt    isSaveOneRotitemtfullPatht saveFilePathRºtfp((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR2‡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“RýRþRÿt
ValueCounttIsWinRRŽR@RtAwardMsgtAwardLent
BatStatMsgtBatLentPathDateRRÍRÎ( R9R6R:R;RúRCRGRER/RRRRº((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR.°s&                         $$        (dR_RHRNR;RRÍR÷RvRCRERR÷RKRúRïR`RRßRÇRRíRÐRëRRËRÖRjRhRR RDRjR R3RˆtFightState_PrepareOKRhtFightState_FightEndR¿R„R…RR-R4R×RâRãRôRRRR R R,R9RCRHR/R5RQRlRRiR÷RR/RR!R'R&R>R0RBR>R9R:R@RER=R1RÓRgRiRoRlRnRÕRR€R…RºRÂRmRêRpRRRR2R.(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt<module>s¶                               !Lÿ<                                             .     ON         _         $    ^$      !        "             B     8                                      .    (  U        M                )