gwj
2025-09-01 d6d5c28fafc6c508e11230a4d94ac300dfc5e1ad
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
Ñtµhc@sèddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZdZdZdZedƒ\ZZZZZZdd1d„ƒYZ dd2d„ƒYZ!d    d3d
„ƒYZ"d d4d „ƒYZ#d „Z$dd5d„ƒYZ%d„Z&d„Z'd„Z(d„Z)ddd„Z*ddd„Z+d„Z,d„Z-dd„Z.d„Z/d„Z0d„Z1e2d„Z3d„Z4dd„Z5d „Z6d!„Z7d"„Z8d#„Z9d$„Z:d%„Z;d&„Z<d'„Z=dd(„Z>de2d)„Z?d*„Z@ddd+„ZBd,„ZCd-„ZDd.„ZEd/„ZFd0„ZGdS(6iÿÿÿÿNi'i
it    BatLineupcBs5eZd„Zd„Zd„Zd„Zd„ZRS(cCs^||_||_||_d|_d|_d|_i|_i|_i|_t    |_
dS(Ni( t    turnFighttfactiontnumtownerIDt    shapeTypet
fightPowert posObjIDDicttlingshouObjIDDicttbeautyObjIDDicttActionNumStartt    actionNum(tselfRRR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt__init__?s                                        cCs
|jjS(N(RtplayerID(R ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt getPlayerIDLscCs|j S(N(R(R ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytisEmptyNscCso|jƒ|jddƒ|_|jddƒ|_|jddƒ|_t||j|j||jƒƒdS(NtPlayerIDit    ShapeTypet
FightPower(    t clearLineuptgetRRRtSummonLineupObjsRRR(R t
lineupInfo((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt    setLineupPs 
"cCs©tjƒ}x$|jjƒD]}|j|ƒqWx$|jjƒD]}|j|ƒqCWx$|jjƒD]}|j|ƒqjWi|_i|_i|_d|_dS(Ni(t    BattleObjt GetBatObjMgrRtvaluest    delBatObjRR    R(R t    batObjMgrtobjID((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRZs                 (t__name__t
__module__R RRRR(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR<s
                 
t
BatFactioncBs&eZd„Zdd„Zd„ZRS(cCs||_||_i|_dS(N(RRt
lineupDict(R RR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR ls            icCsNd}||jkr%|j|}n%t|j||jƒ}||j|<|S(N(tNoneR"RRR(R Rtlineup((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt getBatlineuprs  cCs(x!|jjƒD]}|jƒqWdS(N(R"RR(R R$((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt clearLineups|s(RR R R%R&(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR!is    
t    TurnFightcBsÅeZdZddded„Zeid„Zd„Zd„Zd„Zd„Z    d„Z
ed    „Z e j d
„Zd „Zd „Zd „Zd„Zd„Zid„Zd„Zd„ZRS(sÙij³¡»ØºÏÕ½¶·£¬Ö§³Ö¶àV¶à£¬ËùÓÐÕ½¶·Í¨Óã¬Ö÷Ïß¡¢ÅÀËþ¡¢PVPµÈ
    ¿ÉÄÜΪϵͳºǫ́·¢ÆðµÄ£¬Ôò¹¥»÷·½¡¢·ÀÊØ·½ÕóÈÝÒÔÍæ¼ÒËù±£´æµÄÕóÈݾµÏñ½øÐÐÕ½¶·
    Èç¹ûÍæ¼Ò·¢ÆðµÄ£¬Ôò¹¥»÷·½Îª·¢Æð·½Íæ¼Ò£¬Ä¿±êΪ·ÀÊØ·½£¬Ö§³Ö¶àV¶à£¬Èç×é¶ÓPK
    ¶àV¶àµÄÇé¿öÒ²ÊÇij¸ö¶ÓÔ±¸÷×Ô·¢ÆðÕ½¶·£¬Ö»ÊÇÓõ½¶ÓÓѵľµÏñÕóÈÝÒ»ÆðÕ½¶·£¬¶ÓÓÑÎÞ¸ÐÖª
    
    ¶àV¶à¿ÉʹÓÃÁ½ÖÖģʽ£º
    1. ¶à¸öÕóÈÝÒ»Æð³ö³¡£¬ÔÚÒ»³¡Õ½¶·ÖÐÍê³É
    2. ÒÔµ¥ÕóÈÝ·½Ê½ÂÖÁ÷³ö³¡Õ½¶·£¬¸Ã·½Ê½Í¬Ñù¿ÉÒÔʹÓ÷½Ê½1µÄÂß¼­ÊµÏÖ£¬¹ÌÓÅÏÈʹÓ÷½Ê½1Õ½¶·Âß¼­£¬·½±ãÀ©Õ¹
    icCsÐtjƒ|_||_|r3tjƒj|ƒnd|_||_||_    d|_
d|_ d|_ t |_d|_d|_||_i|_i|_g|_d|_d|_d|_d|_dS(Niÿÿÿÿiiit(t    GameWorldtGetGUIDtguidRtGetPlayerManagertFindPlayerByIDR#t    curPlayertmapIDt
funcLineIDtstatetturnNumtturnMaxtFalset
enterLogict
winFactiont    batBuffert isNeedReporttmsgDictt factionDicttactionSortListt actionIndexttimelinet    startTimetcostTime(R R/R0RR8((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR s(    $                                                                cCs>||_||_||_||_i|_|j|ƒdS(N(R/R0R3R8R9t    resetTurn(R R/R0R3R8R9((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytsetTurn¤s                     cCsYd|_t|_d|_d|_|jj|ƒd|_tjƒ|_    d|_
dS(NiiR(( R2R4R5R6R7R9tupdateR=ttimeR>R?(R R9((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR@®s                        cCsb|j|ƒ}|jƒxB|jƒD]4\}}|s>q&n|j|ƒ}|j|ƒq&WdS(N(t getBatFactionR&titemsR%R(R RR"t
batFactionRRt    batLineup((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytsetFactionLineupºs
c
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(R:RRR"RERRtappendtsorttTrueR<R;R)tDebugLog(
R tsortListRFRRRGtisPlayerRt    sortValuet_((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytsortActionQueueÆs         $        cCs |tdS(Ni(t TimelineSet(R R2((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytgetTurnNumStartTimelinÛscCs|jS(N(R=(R ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt getTimelineÜscCs5||_tjd|jƒ|r'|St|ƒ|S(sj»ØºÏÕ½¶·µÄʱ¼äÖá½Úµã £¬¼´µÚ¼¸»ØºÏ¿ªÊ¼£¬Ã¿¸ö»ØºÏÖ§³Ö9999¸öÐж¯½Úµã
        @param turnNum: µÚx»ØºÏ
        sʱ¼ä½Úµã¸üÐÂ: %s(R=R)RMtOnTimelineChange(R R=R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt setTimelineÝs     
cCsEd}||jkr%|j|}nt||ƒ}||j|<|S(N(R#R:R!(R RRF((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRDê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,|t j krãt jnt j |_t|jƒ|jSq,WdS(Ni(R6RRR:RERLR"RRt    getBatObjtIsAliveR4tChConfigt Def_FactionBt Def_FactionAtDoTurnFightOverR+(    R RRRFt    allKilledRGtposNumRtbatObj((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytcheckOverByKilledôs,        $  cCs>|jtƒx!|jjƒD]}|jƒqWd|_dS(Niÿÿÿÿ(t    syncStatetFightState_OverR:RR&R1(R RF((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt    exitFights
     cCs5t|_d|_|j|jƒ|_|jƒdS(Ni(tFightState_StartR1R2RTR=tsyncInit(R ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt
startFights
        
cCs |jdkS(Niÿÿÿÿ(R1(R ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt    isInFight#scCs©tj|jdtƒ}|jddƒ}tjƒ}|j|_|j    |_
|j |_ ||_ t|j ƒ|_g|_tjƒ}xù|jjƒD]è}|j|ƒ}tjƒ}||_g|_x|jjƒD]}|j|ƒ}tjƒ}    ||    _|j|    _|j|    _ g|    _!x|j"j#ƒD]þ\}
} |j$| ƒ} | s_q8ntj%ƒ} | j&ƒ| _'| j(ƒ| _)| j*ƒ| _+| j,ƒ| _-| j.ƒt/j0| _1| j.ƒt/j0| _2| j3ƒt/j0| _4| j3ƒt/j0| _5| j6ƒ| _7|
| _8| j9ƒ| _:|    j!j;| ƒq8Wt|    j!ƒ|    _<|jj;|    ƒqÝWt|jƒ|_=|jj;|ƒqšWt|jƒ|_>|j?|ƒdS(Nt ensure_asciis R((@tjsontdumpsR9R4treplacetChPyNetSendPackttagSCTurnFightInitR/tMapIDR0t
FuncLineIDR3tTurnMaxtMsgtlentLent FactionListRRR:tkeysRDttagSCTurnFightFactiontFactiont
LineupListR"R%ttagSCTurnFightLineuptNumRtOwnerIDRRtObjListRRERXttagSCTurnFightObjtGetIDtObjIDtGetNPCIDtNPCIDt    GetHeroIDtHeroIDt    GetSkinIDtSkinIDtGetHPRZtDef_PerPointValuetHPtHPExtGetMaxHPtMaxHPtMaxHPExtGetLVtLVtPosNumtGetXPtAngreXPRJtObjCntt    LineupCntt
FactionCntt
addBatPack(R tmsgt
clientPackRRRFt    tfFactionRRGttfLineupR_RR`ttfObj((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRf%s\                                       cCsŸ||_tj|dtƒ}|jddƒ}tjƒ}|jƒ|j|_    |j
|_ ||_ |j |_||_t|jƒ|_|j|ƒdS(NRis R((R1RjRkR4RlRmttagMCTurnFightStatetClearR/RoR0RptStateR2tTurnNumRrRsRtR–(R R1R9R—R˜((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRbWs     
            cCs9tjƒ}|jƒ||_||_|j|ƒdS(N(RmttagMCTurnFightObjActionRRŸR€R–(R R2RR˜((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt syncObjActionfs  
         cCs»t|dƒr.d|jj|jjf}nd|j|jf}tjd||j|jfƒ|jr…|j|j    ƒ7_n|j
r¤t j |j
|ƒnt jƒj|ƒdS(NtHeads%02x%02xs(»ØºÏÕ½¶·¹ý³Ì·â°ü: %s, isNeedReport=%s,%s(thasattrR¢tCmdtSubCmdR)RMR8R+R7t    GetBufferR.t NetPackCommont SendFakePacktObjPoolt
GetPoolMgrtrelease(R R˜theadStr((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR–ns         (RR t__doc__R4R RAR@RHRRRTRURWRZR\RDRaRdRgRhRfRbR¡R–(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR'‚s$    
                       
                    2     t TurnFightMgrcBs2eZd„Zddd„Zd„Zd„ZRS(cCs i|_dS(N(t turnFightDict(R ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR ‚s    icCs)t|||tƒ}||j|j<|S(N(R'R4R¯R+(R R/R0Rttf((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt addTurnFight†scCs:|j|ƒ}|sdS|jƒ|jj|dƒdS(N(t getTurnFightRdR¯tpopR#(R R+R((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¯R4R'(R R+R°((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR²“s  (RR R R±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    MainFightcBseZd„Zd„ZRS(cCs…||_d|_d|_d|_d|_d|_d|_t|_g|_    d|_
d|_ t ƒj tjd|ƒ|_dS(Niii(Rt    chapterIDtlevelNumtwaveMaxtwavetteamNumtteamMaxR4tnextTeamtwaveLineupListt
strongerLVt
difficultyR¸R±RZtDef_FBMapID_MainR(R R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR §s                                            cCs|jjtjkS(N(RR/RZtDef_FBMapID_MainBoss(R ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt isLevelBoss¶s(RR R RÆ(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR¹¤s    cCstjƒj|ƒ}|jS(N(t PlayerOnlinet GetOnlineMgrtGetOnlinePlayert    mainFight(R.tolPlayer((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytGetMainFightMgrºscCs«tj|ƒ\}}}tj|ƒ\}}}||kr§tjd|ƒr§tjd||ƒr§tj|||dƒ}tjd||||f|jƒƒq§ndS(Nt MainChaptert    MainLevelis•µ±Ç°Ö÷Ï߹ؿ¨Õ½ÚÓë¹ý¹ØÕ½ڲ»Ò»ÖÂʱ£¬ÇÒ¹ý¹Ø½ø¶ÈÕ½ÚÒѾ­´æÔÚ£¬Ç¿ÖÆÐÞÕýµ±Ç°Ë¢¹Ö½ø¶ÈΪ¹ý¹ØÕ½ڽø¶È! passChapterID-LV=%s-%s,nowChapterID=%s,fixNowValue=%s(    t PlayerControltGetMainLevelPassInfotGetMainLevelNowInfot IpyGameDataPYtGetIpyGameDataNotLogtSetMainLevelNowInfoR)tLogt GetPlayerID(R.RºR»RQt nowChapterIDt fixNowValue((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt OnPlayerLogin¿s '    #cCs
i}|S(N((RtlineupIDR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytGetPlayerLineupInfoByCacheÉscCs“|jƒ}tj|ƒj|ƒ}i|d6|jd6|jd6}i}|jƒjtj    ƒ}x|j
j ƒD]}|j |ƒ}|j }    |j}
d} d} |
dkr
|
|jƒkr
|j|
ƒ} | r
| jƒ r
| jƒ} | jtjƒ} q
ng}||j7}i|    d6|jd6| d    6| d
6|jd6d „|jjƒDƒd 6|d 6|t|ƒ<qsW|ji|d6ƒ|S(NRRRR(iiR„R†RtDatacSs1i|]'\}}|dkr|t|ƒ“qS(i(tstr(t.0tktv((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pys
<dictcomp>ís    tAttrDictt SkillIDListtHero(RÖRÇRÉt    GetLineupRRtGetItemManagertGetPackt ShareDefinetrptHerotlineupHeroDictRvt GetLineupHerotheroIDt    itemIndextGetCounttGetAttIsEmptyt GetUserDatat GetUserAttrtDef_IudetHeroLVtheroSkillIDListtskinIDtheroBatAttrDictRERÝRB(R.RÚRR$RtheroDicttcurPackR_theroRëRìtuserDatatheroLVtheroItemt skillIDlist((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytGetPlayerLineupInfoÎs8 !          
 
ic    Cs¾tjd|ƒ}|siSi}xtddƒD]p}t|d|ƒsOPnt|d|ƒƒ}|sqq2nt||||ƒ}|s’q2n||t|ƒ<q2Wi|d6|d6}|S(Nt    NPCLineupii
s GetPosNPCID%st NPCLineupIDRãi (RÒtGetIpyGameDatatrangeR£tgetattrtGetNPCBattleDictRÝ(    RÚRÂRÃtipyDataRöR_tnpcIDt
battleDictR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytGetNPCLineupInfoôs c    Csmtj|ƒ}|sdS|jƒ}|jƒ}d}|rOtjd|ƒnd}tjd|ƒ}    |    r—|r—tjd|ƒ}|r—|}q—n|s²tjd|ƒ}n|r|r|jƒ}
|
rÚ|
dnd} t    |||j
ƒ|j ƒƒ} nd}d} g|j ƒ} |j ƒ} || krÅ|jƒ}|rÅgt|ƒ}|jƒ}|dkržt|ƒ|kržtj|ƒ|| }n| |7} tjd| |fƒqÅnt|||    |ƒ}|s i|jƒtj6|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:|j;ƒƒni|d6|d6| d6|d    6d
„|j<ƒDƒd 6| d 6}tjd ||||fƒ|S(NRãt NPCStrongertPlayerLVis"ÕóÈÝboss¼¼ÄÜ: %s, Ëæ»ú¸½¼Ó¼¼ÄÜ: %sR‚R„R†RcSs1i|]'\}}|dkr|t|ƒ“qS(i(RÝ(RÞRßRà((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pys
<dictcomp>Is    RáRâs8GetNPCBattleDict npcID=%s,strongerLV=%s,difficulty=%s,%s(=t    NPCCommont GetNPCDataPytGetRelatedHeroIDRŽR#RÒRRÓt GetSkinIDListtGetNPCHeroSkillIDListtGetReHeroBreakLVtGetReHeroAwakeLVtGetSkillIDListt    GetBossIDtGetSkillIDExListtlistt GetSkillExCntRstrandomtshuffleR)RMtGetNPCStrongerAttrDicttGetAtkRZt
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_SuckHPPerDefRBtGetSpecAttrInfoRE(t lineupIpyDataRRÂRÃtnpcDataRëtnpcLVt    lvIpyDatat heroIpyDatat npcStrongert
skinIDListRôt skillIDListtbossIDt skillIDExListtrandSkillIDExListt
skillExCntt batAttrDictR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR sf      $      
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ÒtGetIpyGameDataListt
GetBreakLVt
GetSkillIDRJt
GetAwakeLV( RëR?tbreakLVtawakeLVt normalSkillIDt angerSkillIDRBtbreakIpyDataListt breakIpyDatatskillIDtawakeIpyDataListt awakeIpyData((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRPs(       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||||fƒ|S(Nt
PlayerAttrsGetRe%ss
Get%sRatiois,NPC³É³¤ÊôÐÔ: npcID=%s,lv=%s,difficulty=%s,%s( RŽRZtCalcBattleAttrIDListRÒRt GetParameterR£RtintR)RM( RR>R@RÃRGtlvtattrIDt attrIpyDatatattrNametreValuetratiot    attrValue((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRjs"  /c!Cs tjd|||f|ƒ|rEtjƒj|ƒ}|sEdSn|jj}|jddƒ}|jdiƒ}tjƒ}    t    j
ddƒ}
t    j dd    ƒ} x_|j ƒD]Q\} } t | ƒ}d}d}g}i}|| jd
gƒ7}|j| jd iƒƒ| jd dƒ}| jd dƒ}| jddƒ}| jddƒ}|rqt    jd|ƒnd}|r°|jƒ}|jƒ}|jƒ}|jƒ}n|r×| jddƒ}|s+q²q+nTtj|ƒ}|sòq²n|s+|jƒ}|jƒ}|jƒ}|jƒ}n|    jƒ}|sAPn|jƒ}|rc|j|ƒn|ry|j|ƒn|j|ƒ|j|ƒ|j|ƒ|j||ƒ|j |ƒ|j!|ƒ|j"|ƒ|j#|ƒ|j$|ƒ|j%||ƒ|t&j'kr5t(| ƒdkr,| dnd}n4|t&j)krit(| ƒdkr`| dnd}n|r|j*|ƒn|j+ƒ}|j,ƒx|D]} |j-| ƒqœW||j.|<tjdt/|ƒ|j0ƒfƒ|j1d„|j ƒDƒ|
ƒq²WdS(sÛÕÙ»½ÕóÈÝÕ½¶·ÊµÀý
    @param faction: ËùÊôÕóÓª£¬Ä¿Ç°Ö§³ÖÁ½¸öÕóÓª£¬1»ò2
    @param num: Õ½¶·ÕóÈÝÔÚ¸ÃÕóÓªÉϵıàºÅ£¬1V1ʱĬÈÏ1£¬¶à¶Ô¶àʱ1~n
    @param lineupInfo: ÕóÈÝÐÅÏ¢
    @param playerID: ·¢ÆðµÄÍæ¼ÒID£¬ÏµÍ³³¡´ÎΪ0
    s0SummonLineupObjs faction:%s,num:%s,lineupInfo=%sNRiRãtAngerXPitParryCfgiRâRáR‚R„R†RRsAddBatObj %s,skill=%scSs%i|]\}}|t|ƒ“qS((R\(RÞRßRà((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pys
<dictcomp>Ús    (2R)RMR,R-RR+RRRRÒt
GetFuncCfgtGetFuncEvalCfgRER\RBRR#tGetAtkDistTypetGetNamet
GetCountrytGetSexR
R t
GetNPCNamet    addBatObjRtSetNPCIDt
SetOwnerIDt    SetTFGUIDtSetNamet
SetFactiont SetLineupPost SetFightPowertSetLVtSetAtkDistTypet
SetCountrytSetSextSetHeroRZtAtkDistType_ShortRstAtkDistType_LongRJtGetSkillManagert
SkillResettLearnSkillByIDRt
GetObjNameRt InitBatAttr(!RGRRRRR.ttfGUIDtlineupPlayerIDRöRtinitXPtatkBackSkillIDListt    posNumKeytheroInfoR_tatkBackSkillIDRRBtattrDictRRëRôR]R?t atkDistTypetobjNametcountrytsext    npcDataExR`Rt skillManagerRV((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRƒs’                       %% 
  #$cCs tjƒj|ƒ}|j}|j}|dkrAt|ƒdS|dkr^t||ƒdStjd||jƒƒt    j
ƒ}d|_ t j ||ƒ|dkr¹t|tƒn5|dkrÒt|ƒn|dkrît||ƒnd|_ t j ||ƒdS(NiisÖ÷ÏßÕ½¶·ÇëÇó: reqType=%siii(R)R,tGetPlayerByIndextReqTypetReqValuet__doExitMainFightt__doSetFightPointRMRÖRmttagSCTurnFightReportSigntSignR§R¨t__doMainLevelWaveRLt__doMainBossStartt __doMainFight(tindext
clientDatattickR.treqTypetreqValueR˜((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytOnMainFightReqæs,         
               cCs,t|ƒ}|j}|r(|jƒndS(N(RÌRRd(R.t mainFightMgrR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR’s
      cCsStjd|ƒ|dkr n"|dkr/n|dkr>ndS|j|ƒdS(NsÉèÖÃÕ½´¸ÏûºÄ±¶Öµ: %siii(R)RMt SetFightPoint(R.t
fightPoint((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR“ s    cCs“|jƒ}tj|ƒ\}}}| rc| rctj|dddƒtj|ƒ\}}}ntjd||||f|ƒt|jƒdƒ}tj|t    j
|ƒsÁtjdƒdSt j d|ƒ}|sÝdSt j d||ƒ}|s7x<|dkr3|d8}t j d||ƒ}|rûPqûqûWn|sAdSd}    xE|    dkrŽt|d|    ƒ st|d|    ƒƒ rŽ|    d8}    qJW|    dkrŸdS||    kr´|    }nt|d|ƒƒ}
|
sÔdSt|
ƒ} d} |
| d} t|t    jƒ}|s tjd|ƒdS|jƒ}|jƒ}t|ƒ}t|_||_||_|    |_||_|
|_| |_| |_||_||_ t j!d    d
ƒ}t"j#tj$|||ƒ}}tjd ||||    | ||| ||f
|ƒ|j%}|j&|||ti| d 6| d 6ƒ|j't"j(i|d6ƒ|j't"j)it*| ||ƒd6ƒ|j+ƒ|j,ƒt-|ƒdS(Nis?ÇëÇó¹Ø¿¨²¨Õ½¶·: chapterID=%s,levelNum=%s,wave=%s,isRestStart=%ssÕ½´¸²»×㣬ÎÞ·¨¿ªÊ¼!RÍRÎisGetWaveLineupIDList%ssûÓÐÉèÖÃÖ÷ÕóÈÝ!tMainlineislÉèÖÃÆðʼ¹Ø¿¨²¨: ¹Ø¿¨%s-%s,²¨=%s/%s,teamMax=%s,mapID=%s,funcLineID=%s,lineupID=%s,strongerLV=%s,difficulty=%sR¾R¿(.RÖRÏRÑRÔR)RMtmaxt GetFightPointt    HaveMoneyRçtTYPE_Price_XiantaoRÒRRÓR£RRsRýt Lineup_MaintGetNPCLVt GetDifficultyRÌR4RÀRºR»R¼R½RÁR¾R¿RÂRÃRfRZRÄtComMainLevelValueRRARHR\R[RRRRgR˜(R.t isRestStartRRºR»R½R¡tchapterIpyDatat levelIpyDataR¼RÁR¿R¾RÚtlineupMainInfoRÂRÃRŸR3R/R0R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR–s€   
 :                                                      )    '&
 
 
cCsE|jƒ}tj|ƒ\}}}|s3d}n|sBd}ntjd|||f|ƒtjd|ƒ}|s{dStjd||ƒ}|sšdStj|ƒ\}}}    ||ksÊ||krîtjd||||f|ƒdSd}
xE|
dkr;t    |d|
ƒ s.t
|d|
ƒƒ r;|
d8}
q÷W||
krctjd||
fƒdS|j ƒ} | sydSt | ƒ} d} | | d}d}}
t |tjƒ}|sÏtjd    |ƒdS|jƒ}|jƒ}t|ƒ}t|_||_||_|
|_||_| |_| |_| |_||_||_tjd
d ƒ}tj tj!|||ƒ}}tjd ||||
| |||||f
|ƒ|j"}|j#|||ti| d 6| d6ƒ|j$tj%i|d6ƒ|j$tj&it'|||ƒd6ƒ|j(ƒ|j)ƒt*|j+ƒdS(Nis<ÇëÇóÌôÕ½¹Ø¿¨Boss! passInfo: chapterID=%s,levelNum=%s,wave=%sRÍRÎsmµ±Ç°Ë¢¹ÖÕ½ڹؿ¨ÓëÌôÕ½µÄbossÕ½ڹؿ¨²»Ò»Ö£¬ÎÞ·¨ÌôÕ½! chapterID=%s,levelNum=%s,nowChapterID=%s,nowLevelNum=%sisGetWaveLineupIDList%ss2×îºóÒ»²¨Î´Í¨¹ý£¬ÎÞ·¨ÌôÕ½±¾¹Øboss! passWave=%s < %ssûÓÐÉèÖÃÖ÷ÕóÈÝ!R¢isjÉèÖùؿ¨boss: ¹Ø¿¨%s-%s,²¨=%s/%s,teamMax=%s,mapID=%s,funcLineID=%s,lineupID=%s,strongerLV=%s,difficulty=%sR¾R¿(,RÖRÏRÐR)RMRÒRRÑtErrLogR£RtGetBossLineupIDListRsRýRçR§R¨R©RÌR4RÀRºR»R¼R½RÁR¾R¿RÂRÃRfRZRÅRªRRARHR\R[RRRRgt__processTurnFightR+(R.RRºR»R½R¬R­R×t nowLevelNumRQR¼RÁR¿R¾RÚR®RÂRÃRŸR3R/R0R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR—isx             :   
                                               )    '&
 
 c Cs9|rUd}|j|ƒ}|rB||dkrBtjdƒdS|j||ƒnt|ƒ}|j}|jƒ}|j}|r˜|jr‡|j    d}|_    tjd|ƒ|dksÔ|t
|j ƒkrØdS|j |d}    tjd||    fƒt |_|j i|d6ƒ|jtjit|    |j|jƒd6ƒ|jƒ|jƒ|jƒrzt|jƒdSt|ƒn t|t ƒdS|r¢dSt|jƒdƒ}
tj|tj|
ƒsàtjd    ƒdSt |ƒ} | røt!nt } t"j#ƒ} |j$}|j%}xýt&||dƒD]è}|j'|ƒ}|j(ƒ}|d7}||krC|j)|ƒ}tjd
||fƒ||_$|r¬|j*t+ƒnx”|j,D]†\}}tjd |||fƒ|j-|ƒ}|j.|ƒ}d|_/x6|j0j1ƒD]%}| j2|ƒ}t3|||ƒqWq¶Wn|j4ƒrSPnt5t
|j,ƒ}d }xæ||krT|j6t
|j,ƒkrT|d7}|j,|j6\}}|j-|ƒ}|j.|ƒ}xFt&|j/t5dƒD].}|d7}||kr!tjd ||fƒqèn||j0krU|d|_/|j)|t!ƒ}qèn|j0|}| j2|ƒ}| r¶|tj7kr¶|r¶|j8ƒr¶tjd||fƒdSn|d|_/|j)|ƒ}t9|||ƒt:||ƒs÷qèn| rè|tj7krèt!} qèqèW|j6t
|j,ƒdkrBd |_6qo|j6d7_6qoW|d7}||kr|j)|ƒ}x‹|j,D]}\}}tjd|||fƒ|j-|ƒ}|j.|ƒ}x6|j0j1ƒD]%}| j2|ƒ}t;|||ƒqØWq„Wn|j4ƒr0Pq0q0W|js5t<|jƒndS(sŠÖ´ÐÐÖ÷ÏßÕ½¶·£¬µ¥³¡Õ½¶·¶Ïµçʽս¶·£¬ÒÔǰ¶ËÍæ¼ÒÊÖ¶¯µã»÷½Úµã×öΪ¶Ïµã´¦
    Ã¿³¡Õ½¶·µÄ³õʼ»¯¡¢½áÊøÄ¬È϶ϵ㣬ÓÉǰ¶Ë¾ö¶¨×Ô¶¯¼ÌÐø»òÕßµã»÷¼ÌÐø
    tMainFightReqTickièsÖ÷ÏßÕ½¶·ÇëÇóCDÖÐNis¿ªÊ¼½øÈëÏÂһС¶Ó: teamNum=%ssteamNum=%s,lineupID=%sR¾s»ØºÏ¿ªÊ¼Ê±Õ½´¸²»×ã!s1¡¾----- »ØºÏÖÆÕ½¶·ÂÖ´Î: %s -----¡¿ curTimeline=%ss+»ØºÏ¿ªÊ¼Âß¼­: turnNum=%s,faction=%s, num=%sis-¸Ãʱ¼ä½ÚµãÒѾ­´¦Àí¹ýÁË! turnTimeline=%s <= %ssPÍæ¼ÒÎ佫ÒѾ­Ðж¯¹ýÁË£¬ÇÒÓÐÏÂÒ»¸ö¿ÉÐж¯µÄÎ佫£¬¶Ïµã: curTimeline=%s,nextPosNum=%ss+»ØºÏ½áÊøÂß¼­: turnNum=%s,faction=%s, num=%s(=t GetDictByKeyR)RMtSetDictRÌRRÆR6RÀR¾RsRÁR4R@RHRZR[RRÂRÃRRRgR±R+R˜R–R£R¤RÏR¥RçR¦t
EntryLogicRLRRR2R3RRTRURWRbtFightState_FightingR;RDR%R RRRXtTurnFightPerTurnBigStartRat    PosNumMaxR<R\t    CanActiontTurnFightHeroTurnStartt OnObjActiontTurnFightPerTurnBigEndt OnTurnAllOver(R.R›tkeytlastTickRŸRRÆR6R¾RÚR¡tisEntrytcheckBreakpointRR2R3t turnTimelinet curTimelineRRRFRGRR`tdoMaxtdoCntR_((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR˜ºsØ               !    ,
 
                
          '
 
 
      cCs€tƒj|ƒ}|j}|j}t|ƒtjƒ}x&td|dƒD]}||_t    j
d|ƒ|j |ƒ}|j |dƒ}|r¦|j tƒnx‘|jD]†\}}t    j
d|||fƒ|j|ƒ}    |    j|ƒ}
d|
_x6|
jjƒD]%} |j| ƒ} t|| |ƒq Wq°W|jƒrJPntt|jƒ} d}xK|| kr°|jt|jƒkr°|d7}|j|j\}}|j|ƒ}    |    j|ƒ}
x«t|
jtdƒD]“}|d|
_||
jkr|j |dtƒ}qßn|j |dƒ}|
j|} |j| ƒ} t|| |ƒt|| ƒsqqßnPqßW|jt|jƒdkržd|_qf|jd7_qfW|j |dƒ}xˆ|jD]}\}}t    j
d|||fƒ|j|ƒ}    |    j|ƒ}
x6|
jjƒD]%} |j| ƒ} t|| |ƒq"WqÎW|jƒrNPqNqNW|js|t |j!ƒndS(Nis"¡¾----- »ØºÏÖÆÕ½¶·ÂÖ´Î: %s -----¡¿s+»ØºÏ¿ªÊ¼Âß¼­: turnNum=%s,faction=%s, num=%sis+»ØºÏ½áÊøÂß¼­: turnNum=%s,faction=%s, num=%s("R¸R²R.R3R¶RRRR2R)RMRTRWRbR·R;RDR%R RRRXR¸RaR¹RsR<RLR»R¼R½R6R¾R+(R+RR.R3RR2RÄRRRFRGRR`RÅRÆR_((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR±Wsr        
          '
        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ëRR)t    CodeToGbkRiRZR\R(R`RRR_RëRRŠ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR£s                    cCs³|jr dStjdƒtjƒ}x}|jD]r\}}|j|ƒ}|j|ƒ}t|_    x<|j
j ƒD]+}|j |ƒ}t j||tjƒqsWq0Wt|_tS(NsÖ´Ðнø³¡Âß¼­...(R5R)RMRRR;RDR%R
R RRRXt TurnPassivetOnTriggerPassiveEffectRZtTriggerWay_FightStartRL(RRRRRFRGRR`((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR¶°s              c Cs|jƒ}tjƒ}xò|jjƒD]á}xØ|jjƒD]Ç}x¾|jjƒD]­}|j|ƒ}| sT|jƒ rƒqTn|j    t
j dƒ|j    t
j dƒ|j    t
j dƒ|jƒ}|jƒ}xÙtd|jƒƒD]Â}    |j|    ƒ}
|
s qên|
jƒ} | s#qên|
jƒ} t| |tƒ} | dkrSqên|
jƒ}td| | ƒ}|
j|ƒ|
j|ƒtjd|||| | fƒqêW|jƒ}xBt|jƒƒddd…D]!}    |j|    ƒ}|j ƒ}|jƒ}|j!ƒ}|j"ƒt
j#kr0qÜn|jƒ} | sHqÜn|jƒ} t| |t$ƒ} | dkrxqÜntd| | ƒ}tjd||||| | fƒ|dkrê|j|ƒ|j|ƒt%j&|||ƒqÜt%j'|||ƒqÜWqTWq>Wq(WdS(NisT¸üм¼ÄÜÊ£Óà»ØºÏÊý: curID=%s,skillID=%s,updRemainTime=%s,calcTimeline=%s,passTurn=%siÿÿÿÿs^¸üÐÂbuffÊ£Óà»ØºÏÊý: curID=%s,buffID=%s,skillID=%s,updRemainTime=%s,calcTimeline=%s,passTurn=%s((RURRR:RR"RRXRYRµRZtDef_Obj_Dict_TurnComboNumtDef_Obj_Dict_TurnMissNumtDef_Obj_Dict_TurnParryNumRR|Rt GetSkillCounttGetSkillByIndext GetRemainTimet GetCalcTimet__calcPassturnRLRNR£t SetRemainTimet SetCalcTimeR)RMtGetBuffManagert GetBuffCounttGetBuffByIndext    GetBuffIDt GetSkillDatat GetSkillTypetDef_LstBuff_ListR4tTurnBufftSyncBuffRefresht    DoBuffDel(Rt nowTimelineRRFRGRR`tcurIDRŽR™tcurSkillt
remainTimet calcTimelinetpassTurnRVt updRemainTimetbuffMgrtbufftbuffIDt    skillData((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRVÂsl               &             #cCs–|t}|t}|t}|t}|r`||krKtd||ƒStd||dƒS||kr}td||ƒStd||dƒSdS(Nii(RSR£(RæRâtequalOKt calcTurnNumt calcTimeNodet
nowTurnNumt nowTimeNode((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRÕs
 
 
 
  cCs:|s
dS|jƒdkr dStj||tjƒdS(Ni(R‡RËRÌRZtTriggerWay_BigTurnStart(RR`R2((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR¸s cCs:|s
dS|jƒdkr dStj||tjƒdS(Ni(R‡RËRÌRZtTriggerWay_BigTurnEnd(RR`R2((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR½$s cCs:|s
dS|jƒdkr dStj||tjƒdS(Ni(R‡RËRÌRZtTriggerWay_HeroTurnStart(RR`R2((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR»/s cCsX|s
dS|jƒ}|jƒ}|j|ƒ}tjd||||||fƒdS(NsT        Í³¼ÆÖÎÁÆ: curID=%s,srcID=%s,skillID=%s,addValue=%s,cureHP=%s,updStatValue=%s(Rt StatCureValueR)RM(tcurObjtsrcObjtaddValuetcureHPRVRã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ƒ|fƒ|rå|j|ƒ}tjd|||||||jƒ|fƒqån)tjd||||||jƒfƒdS(Nisj        Í³¼ÆÉËѪ: curID=%s,tagID=%s,skillID=%s,hurtValue=%s,lostHP=%s,updStatValue=%s,tagHP=%s,isBounce=%ssj        Í³¼Æ³ÐÉË: curID=%s,tagID=%s,skillID=%s,hurtValue=%s,lostHP=%s,updStatValue=%s,curHP=%s,isBounce=%ssJ        ×Ô²Ð: curID=%s,tagID=%s,skillID=%s,hurtValue=%s,lostHP=%s,curHP=%s(Rt StatHurtValueR)RMR‡t StatDefValue(    t    curBatObjt    tagBatObjt    hurtValuetlostHPRVtisBounceRãttagIDRû((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytAddTurnObjHurtValueJs        &    ,     cCs]|s
dS|jƒ}|jƒ}|dkr2dS|j}t|ƒ}|jƒ}|sttjd||fƒdS|jƒ}|jƒ}tjd|||||j    ƒ|fƒ|j
||ƒt j ||t jƒtjddƒ}    |jƒ}
g} xtd|
jƒƒD]ì} |
j| ƒ} | s6qn| jƒt jt jgkrZqntj| ƒroqn| jƒrqn| jƒ}tj| ƒrÜ||    kr®qn|jt jƒrÓtjdƒqnd}n|j|ƒ}| j ||| gƒqW| j!ƒx1| D])}|d} t"j#||| ƒrPqqWt j ||t j$ƒt%S(Nis¡ï»ØºÏ%s %s µ±Ç°×´Ì¬²»¿ÉÐж¯!s.¡ï»ØºÏ%s %s Ðж¯ : atk=%s,curHP=%s/%s,curXP=%sRdis³°·í״̬Ï£¬ÎÞ·¨Ö÷¶¯ÊÍ·ÅÅ­¼¼!iÿÿÿÿ(&R‡RR2RRºR)RMRR‘R‹R¡RËRÌRZtTriggerWay_HeroActionStartRÒRfR|RRÑRÒt GetFuncTypet Def_SkillFuncType_TurnNormaSkilltDef_SkillFuncType_AngerSkillt SkillCommontisPassiveSkillRÓRNt isAngerSkillt    IsInStatetBatObjState_SneertGetSkillUseCntRJRKt    TurnSkillt
OnUseSkilltTriggerWay_HeroActionEndRL(RRÿtcurHPRR2RŠt    canActiontatktcurXPtxpMaxRŽt useSkillListR™tuseSkillRVtuseCnttuseInfo((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR¼as^           )         
 
c    Csü|jƒ}|r|jƒnd}|r6|jƒnd}tjdt|ƒ|||fƒ|jƒtjƒjt    j
ƒ}||_ ||_ ||_ |j|ƒ|j}|rø|jtjkrø|jƒtjkrøtj|tjdƒntS(NisA        %s »ØºÏÕ½¶·Ö÷Ìå±»»÷ɱ: curID=%s,killerObjID=%s,skillID=%si(RRNR)RMRtSetDeadR©RªtacquireRmttagMCTurnFightObjDeadR€t KillerObjIDtSkillIDR–R.R/RZRÄt
GetFactionR\t
PlayerTaskt AddTaskValuetTaskType_KillNPCRL(    RtgameObjtkillerRRt killerObjIDRVR˜R.((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt SetObjKilled¤s #
                 -cCsztjdƒtƒj|ƒ}|s)dS|jr6dS|jrNtj|_ntj    tj
tjgƒ|_t |ƒdS(Ns ËùÓлغϽáÊø( R)RMR¸R²R6RRZR[RtchoiceR\R](R+R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR¾·s         
cCsýtƒ}|j|ƒ}|s"dStjƒ|j|_|j}tjd||j|fƒtj    ƒ}i}x¼|j
j ƒD]«}t |ƒ|kr«i|t |ƒ<n|t |ƒ}|j |ƒ}x^|jj ƒD]M}    t |    ƒ|kri|t |    ƒ<n|t |    ƒ}
|j|    ƒ} tjd||    fƒxé| jjƒD]Ø\} } |j| ƒ}|srqKn|jƒ} |jƒ}|jƒ}|j}|j}|j}tjd| | |||jƒ|jƒ|||f    ƒi| d6|d6|d6|d6|d6|d    6|
t | ƒ<qKWqÚWq€Wg}|j}|r©|j}|tjk}|jtj krt!|||ƒq©|jtj"kr©t#|||ƒq©ni|d
6|d 6t$j%|ƒt$j&6}|j't(|ƒ|jsù|j)|ƒndS( Ns5--- Õ½¶·½áÊø´¦Àí ---, winFaction=%s, costTime=%ss, %ssÕóÈÝÃ÷ϸ: faction=%s,num=%ssE    Pos:%s ID=%s,npcID=%s,heroID=%s,HP=%s/%s, Êä³ö=%s,³ÐÉË=%s,ÖÎÁÆ=%sR€R„R‚tAtkHurttDefHurttCureHPR6tstatInfo(*R¸R²RCR>R?R6R)RMRRR:RvRÝRDR"R%RRERXRRRƒthurtStattdefStattcureStatR‡R‹RR.RZR\R/RÄtOnOver_MainLevelRÅtOnOver_MainLevelBosstFBCommontGetJsonItemListt Over_itemInfoRbtFightState_AwardR´(R+R·RR6RR-Rt facStatInfoRFRtlineupStatInfoRGR_RR`RRëtatkHurttdefHurtRùt awardItemListRR.tisWintoverMsg((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR]Ës`                            /F        '    c CsÞ|s
dS|jƒ}t|ƒ}t|_tj|ƒ\}}}|s›td|dƒ}tj||||ƒ}    tj    d|||||    f|ƒdS|j
|j krãt |_tj    d||||j
|j f|ƒdS||j krFt|j |dƒ}tj||||ƒ}    tj    d|||||    f|ƒntj    d|||f|ƒtj|ƒ}
tj|||ƒ} | |
krÀtj    d| |
f|ƒtj|| ƒntj    d| |
f|ƒdS(NisRÖ÷ÏßС¹ÖÕ½¶·Ê§°Ü£¬½µÒ»²¨! chapterID=%s,levelNum=%s,wave=%s,nextWave=%s,nowValue=%ssJÖ÷ÏßС¹ÖÕ½¶·Ê¤Àû£¬ÏÂһС¶Ó! chapterID=%s,levelNum=%s,wave=%s,teamNum=%s/%ssTÖ÷ÏßС¹Ö²¨Õ½¶·Ê¤Àû£¬ÏÂÒ»²¨! chapterID=%s,levelNum=%s,wave=%s,nextWave=%s,nowValue=%ssDÖ÷ÏßС¹Ö²¨Õ½¶·Ê¤Àû£¬×îºóÒ»²¨Ñ­»·Ë¢! chapterID=%s,levelNum=%s,wave=%ss1¸üе±Ç°¹ý¹Ø½ø¶È! curPassValue=%s,hisPassValue=%ss>䳬¹ýµ±Ç°¹ý¹Ø½ø¶È£¬²»¸üÐÂ! curPassValue=%s <= hisPassValue=%s(RÖRÌR4RÀRÏRÑR£RÔR)RMR¾R¿RLR¼tmintGetMainLevelPassValueRªtSetMainLevelPassValue( R.R<R;RRŸRºR»R½tnextWavetnowValuet hisPassValuet curPassValue((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR1s<                        cCsŽ|s
dS|jƒ}t|ƒ}t|_tj|ƒ\}}}|sptj|ƒ}tjd||ƒdS|j    |j
krµt |_tjd|||j    |j
f|ƒdSt}    t j d||dƒr||d}
} tjd||| f|ƒn„t j d|ddƒrR|dd}
} tjd|||
| f|ƒn7|dd}
} tjd|||
| f|ƒt }    tj||
| dƒ} |    rÍtj|ƒ} tjd    | |ƒn,tj||
| dƒ} tjd
| |ƒtjd | | f|ƒt jd||ƒ}|s2dS|jƒ}tjd |||f|ƒtj||d dtigdtƒ||7}dS(Ns5Ö÷ÏßbossÕ½¶·Ê§°Ü£¡±£³Öµ±Ç°Ë¢¹Ö²¨½ø¶È²»±ä! nowValue=%ssFÖ÷ÏßbossС¶ÓÕ½¶·Ê¤Àû£¬ÏÂһС¶Ó! chapterID=%s,levelNum=%s,teamNum=%s/%sRÎisDÖ÷Ïßboss²¨Õ½¶·Ê¤Àû£¡ÏÂÒ»¹Ø! chapterID=%s,levelNum=%s,nextLevelNum=%ssUÖ÷Ïßboss²¨Õ½¶·Ê¤Àû£¡ÏÂÒ»ÕÂ! chapterID=%s,levelNum=%s,nextChapterID=%s,nextLevelNum=%ssUÖ÷Ïßboss²¨Õ½¶·Ê¤Àû£¡ÒÑͨ¹Ø! chapterID=%s,levelNum=%s,nextChapterID=%s,nextLevelNum=%sis(ÒÑͨ¹ØµÄË¢¹Ö½ø¶È±£³Ö²»±ä: updNowValue=%ss3Ϊͨ¹ØµÄË¢¹Ö½ø¶ÈÉèÖÃΪÏÂÒ»¹ØµÄµÚ1²¨: updNowValue=%ssupdPassValue=%s,updNowValue=%ss.¹ý¹Ø½±Àø: chapterID=%s,levelNum=%s,itemList=%steventt MainLevelBosst isNotifyAward(RÖRÌR4RÀRÏRÐtGetMainLevelNowValueR)RMR¾R¿RLRÒRÓtSetMainLevelPassInfoRÔRtGetAwardItemListt ItemControlertGivePlayerItemOrMail(R.R<R;RRŸRºR»RQRBt    isAllPasst nextChapterIDt nextLevelNumt updPassValuet updNowValueR­titemList((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR22sV                           %
cCsdS(N((R™RšR›((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytOnTurnFightReportViewts((((((HRZR"RmR§RÏR)R3RÒRÇR
RçRµRKR
RRËRRßR©RRCRjRSR¹R
RRetFightState_PrepareOKR·tFightState_FightEndR6RcRR!R'R®R¸R¹RÌRÙRÛRýRRRRRRžR’R“R4R–R—R˜R±RR¶RVRÕR¸R½R»RüRR¼R#R(R¾R]R1R2RS(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt<module>s~                      
-ý                
        &C         c             L    Q     L             F                       C        =    *    B