hch
2025-07-09 dc3d34ffecebf925ace759c13750919d63538674
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
yjkhc@sñddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZdZdZdZedƒ\ZZZZZZdZdZdd7d„ƒYZ d    d8d
„ƒYZ!d d9d „ƒYZ"d d:d„ƒYZ#d„Z$dd;d„ƒYZ%d„Z&d„Z'd„Z(d„Z)d„Z*dd„Z+d„Z,d„Z-d„Z.e/d„Z0d„Z1d„Z2d„Z3d „Z4d!„Z5d"„Z6d#„Z7dd$„Z8dd%„Z:d&„Z;d'„Z<d(d)„Z=ej>dd*„Z?d+„Z@d,„ZAd-„ZBd.„ZCd/„ZDdd0„ZEdd1„ZFd2„ZGd3„ZHd4„ZId5„ZJd6„ZKdS(<iÿÿÿÿNidi
iiit    BatLineupcBsƒeZd„Zd„Zd„Zd„Zd„Zd„Zd„Ze    d„Z
e    d„Z d    „Z d
„Z d „Zd „ZRS( cCs‚||_||_||_d|_i|_i|_d|_t|_i|_    i|_
d|_ i|_ i|_ i|_dS(Ni(tfightMgrtfactiontnumtownerIDt
npcPosDictt npcObjIDDictt    shapeTypetActionNumStartt    actionNumt lordAttrDictt npcAttrDictt
fightPowert hurtStatDictt defStatDictt cureStatDict(tselfRRR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt__init__@s                                                        cCs
|jjS(N(Rtguid(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytgetGUIDSscCs
|jjS(N(RtplayerID(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt getPlayerIDTscCs|j S(N(R(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytisEmptyVscCso|jƒ|jddƒ|_|jddƒ|_|jdiƒ|_t||j|j||jƒƒdS(NtPlayerIDitShapet LordAttrDict(    t clearLineuptgetRRR
tSummonLineupObjsRRR(Rt
lineupInfo((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt    setLineupXs 
"cCs|jr|jS|jS(N(R (R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytrefreshFightPowerbs    cCs(t|_i|_i|_i|_dS(N(RR    R RR(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt __resetStatis
                cCstjddƒ}xh|jjƒD]W}|s4q"ntj|ƒdkrV| rVq"ntj|tƒtj||tƒq"WdS(NtAngerXPii(    t IpyGameDataPYt
GetFuncCfgRtvaluestGameObjtGetHPt    SetHPFulltFalsetSetXP(RtisReborntinitXPtcurNPC((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt__resetAttrStateqscCs|j|ƒ|jƒdS(N(t_BatLineup__resetAttrStatet_BatLineup__resetStat(RR*((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt resetLineup‚s 
cCsr|js dSx0|jjƒD]}|s/qntj|ƒqWi|_i|_i|_d|_|jƒdS(Ni(RR$t    NPCCommont    SetDeadExRR R R/(RR,((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRˆs                    
cCs=||jkrdS|jj|dƒ|}||j|<|S(Ni(RR R(RtobjIDt    hurtValuetupdValue((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt statHurtValue—s
 cCs=||jkrdS|jj|dƒ|}||j|<|S(Ni(RRR(RR3tlostHPR5((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt statDefValueŸs
 cCs=||jkrdS|jj|dƒ|}||j|<|S(Ni(RRR(RR3t    cureValueR5((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt statCureValue§s
 (t__name__t
__module__RRRRRRR/tTrueR.R0RR6R8R:(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR=s                    
                      t
BatFactioncBs/eZd„Zdd„Zd„Zd„ZRS(cCs||_||_i|_dS(N(RRt
lineupDict(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(x!|jjƒD]}|jƒqWdS(N(R?R$R0(RRA((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt resetLineupsÂscCs(x!|jjƒD]}|jƒqWdS(N(R?R$R(RRA((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt clearLineupsÈs(R;R<RRBRCRD(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR>¯s    
    t    TurnFightcBsžeZdZddded„Zeid„Zd„Zed„Zd„Ze    d„Z
d„Z d    „Z d
„Z d „Zid „Zd „Zd„ZRS(sÙij³¡»ØºÏÕ½¶·£¬Ö§³Ö¶àV¶à£¬ËùÓÐÕ½¶·Í¨Óã¬Ö÷Ïß¡¢ÅÀËþ¡¢PVPµÈ
    ¿ÉÄÜΪϵͳºǫ́·¢ÆðµÄ£¬Ôò¹¥»÷·½¡¢·ÀÊØ·½ÕóÈÝÒÔÍæ¼ÒËù±£´æµÄÕóÈݾµÏñ½øÐÐÕ½¶·
    Èç¹ûÍæ¼Ò·¢ÆðµÄ£¬Ôò¹¥»÷·½Îª·¢Æð·½Íæ¼Ò£¬Ä¿±êΪ·ÀÊØ·½£¬Ö§³Ö¶àV¶à£¬Èç×é¶ÓPK
    ¶àV¶àµÄÇé¿öÒ²ÊÇij¸ö¶ÓÔ±¸÷×Ô·¢ÆðÕ½¶·£¬Ö»ÊÇÓõ½¶ÓÓѵľµÏñÕóÈÝÒ»ÆðÕ½¶·£¬¶ÓÓÑÎÞ¸ÐÖª
    
    ¶àV¶à¿ÉʹÓÃÁ½ÖÖģʽ£º
    1. ¶à¸öÕóÈÝÒ»Æð³ö³¡£¬ÔÚÒ»³¡Õ½¶·ÖÐÍê³É
    2. ÒÔµ¥ÕóÈÝ·½Ê½ÂÖÁ÷³ö³¡Õ½¶·£¬¸Ã·½Ê½Í¬Ñù¿ÉÒÔʹÓ÷½Ê½1µÄÂß¼­ÊµÏÖ£¬¹ÌÓÅÏÈʹÓ÷½Ê½1Õ½¶·Âß¼­£¬·½±ãÀ©Õ¹
    icCsÐtjƒ|_||_|r3tjƒj|ƒnd|_||_||_    d|_
d|_ t |_ d|_d|_d|_d|_||_i|_i|_g|_d|_d|_d|_dS(Niiit(t    GameWorldtGetGUIDRRtGetPlayerManagertFindPlayerByIDR@t    curPlayertmapIDt
funcLineIDtturnNumtturnMaxR(t
enterLogict    turnStarttturnEndt
winFactiont    batBuffert isNeedReporttmsgDictt factionDicttactionSortListt actionIndext    startTimetcostTime(RRLRMRRU((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRÙs(    $                                                                cCs>||_||_||_||_i|_|j|ƒdS(N(RLRMRORURVt    resetTurn(RRLRMRORURV((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytsetTurnñs                     cCsbd|_t|_d|_d|_d|_d|_|jj|ƒt    j    ƒ|_
d|_ dS(NiiRF( RNR(RPRQRRRSRTRVtupdatettimeRZR[(RRV((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR\ûs                            cCs˜|j|ƒ}|r"|jƒn
|jƒxe|jƒD]W\}}|j|ƒ}|rm|jƒ rmq9n|syq9n|j|ƒ|jƒq9WdS(N(t getBatFactionRCRDtitemsRBRRR(RRR?t    onlyResett
batFactionRRt    batLineup((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytsetFactionLineups 
 c    Csûg}xt|jjƒD]c}|j}xQ|jjƒD]@\}}|jƒ}|d| }|j||||gƒq5WqW|jdtƒd|_    g|_
x0|D](\}}}}|j
j||gƒq¦Wt j d|ƒt j d|j
ƒdS(Ni
treverseis!ÕóÈÝÕ½Á¦ÅÅÐò[fp, sortV, f, n]: %ssÕóÈÝÐж¯Ë³Ðò[f, n]: %s( RWR$RR?RaRtappendtsortR=RYRXRGtDebugLog(    RtsortListRcRRRdR t    sortValuet_((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytsortActionQueues     !        cCsEd}||jkr%|j|}nt||ƒ}||j|<|S(N(R@RWR>(RRRc((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR`/s  cCsä|jr|jSxÍ|jjƒD]¼\}}t}xr|jjƒD]a}|sRPnxN|jjƒD]=\}}|dkr€qbntj|ƒdkrbt    }PqbqbWqBW|r |t
kr¿t nt |_t |j ƒ|jSq WdS(Ni(RSRWRaR=R?R$RR%R&R(t Def_FactionBt Def_FactionAtDoTurnFightOverR(RRRct    allKilledRdtposNumR,((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytcheckOverByKilled9s$        cCs|j|ƒ}|jƒdS(N(R`RD(RRRc((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytclearBatFactionTs
cCs5|jtƒx!|jjƒD]}|jƒqWdS(N(t    syncStatetFightState_OverRWR$RD(RRc((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt
clearFightYs c Csxtj|jdtƒ}|jddƒ}tjƒ}|j|_|j    |_
|j |_ ||_ t|j ƒ|_g|_xÔ|jjƒD]Ã}|j|ƒ}tjƒ}||_g|_xk|jjƒD]Z}|j|ƒ}tjƒ}||_|j|_|j|_g|_xê|j j!ƒD]Ù\}    }
tj"ƒ} |
j#ƒ| _$|
j%ƒ| _&|
j't(j)ƒ| _*|
j't(j+ƒ| _,|
j-ƒ| _.|
j/ƒ| _0|
j1ƒ| _2|
j3ƒ| _4t5j6|
ƒ| _7|    | _8t9j:|
ƒ| _;|jj<| ƒq,Wt|jƒ|_=|jj<|ƒqÑWt|jƒ|_>|jj<|ƒqŽWt|jƒ|_?|j@|ƒdS(Nt ensure_asciis RF(AtjsontdumpsRVR(treplacetChPyNetSendPackttagSCTurnFightInitRLtMapIDRMt
FuncLineIDROtTurnMaxtMsgtlentLent FactionListRWtkeysR`ttagSCTurnFightFactiontFactiont
LineupListR?RBttagSCTurnFightLineuptNumRtOwnerIDRt    ShapeTypetObjListRRattagSCTurnFightObjtGetIDtObjIDtGetNPCIDtNPCIDt GetDictByKeytChConfigtDef_Obj_Dict_HeroIDtHeroIDtDef_Obj_Dict_SkinIDtSkinIDR&tHPtGetHPExtHPExtGetMaxHPtMaxHPt
GetMaxHPExtMaxHPExR1tGetNPCLVtLVtPosNumR%tGetXPtAngreXPRgtObjCntt    LineupCntt
FactionCntt
addBatPack( Rtmsgt
clientPackRRct    tfFactionRRdttfLineupRrR,ttfObj((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytsyncInit_sT                                      cCs–tj|dtƒ}|jddƒ}tjƒ}|jƒ|j|_|j    |_
||_ |j |_ ||_t|jƒ|_|j|ƒdS(NRxs RF(RyRzR(R{R|ttagMCTurnFightStatetClearRLR~RMRtStateRNtTurnNumRR‚RƒR¨(RtstateRVR©Rª((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRuŒs 
            cCs9tjƒ}|jƒ||_||_|j|ƒdS(N(R|ttagMCTurnFightObjActionR°R²RR¨(RRNtobjTypeR3Rª((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}tjd||j|jfƒ|jr…|j|j    ƒ7_n|j
r¤t j |j
|ƒndS(NtHeads%02x%02xs(»ØºÏÕ½¶·¹ý³Ì·â°ü: %s, isNeedReport=%s,%s( thasattrR·tCmdtSubCmdRGRiRURRTt    GetBufferRKt NetPackCommont SendFakePack(RRªtheadStr((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR¨¢s         (R;R<t__doc__R(RR]R\ReRmRoR`RsRtRwR®RuR¶R¨(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyREÎs    
         
                -     t TurnFightMgrcBsMeZd„Zddd„Zd„Zd„Zd„Zd„Zd„ZRS(cCsi|_i|_dS(N(t turnFightDictt npcGUIDDict(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR´s        icCs)t|||tƒ}||j|j<|S(N(RER(RÁR(RRLRMRttf((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt addTurnFight¹scCs:|j|ƒ}|sdS|jƒ|jj|dƒdS(N(t getTurnFightRwRÁtpopR@(RRt    turnFight((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(RE(RRRÃ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRÅÆs  cCsad}||jkrD|j|}||jkrD|j|}qDn| r]tr]tƒ}n|S(N(R@RÂRÁR(RE(RR3RÃR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytgetNPCTurnFightÎs   cCs(||j|<tjd||fƒdS(NsÉèÖÃNPCËùÊô»ØºÏÕ½¶·guid: %s,%s(RÂRGRi(RR3R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt
setNPCGUIDÙs cCs0|jj|dƒ}tjd||fƒdS(Nsɾ³ýNPCËùÊô»ØºÏÕ½¶·guid: %s,%s(RÂRÆR@RGRi(RR3R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt
delNPCGUIDÞs(    R;R<RRÄRÈ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    MainFightcBs5eZd„Zd„Zd„Zd„Zd„ZRS(cCss||_d|_d|_d|_d|_d|_d|_t|_g|_    t
ƒj t j d|ƒ|_dS(Niii(Rt    chapterIDtlevelNumtwaveMaxtwavetteamNumtteamMaxR(tnextTeamtwaveLineupListRÏRÄR”tDef_FBMapID_MainRÇ(RR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRïs                                    cCs|jjtjkS(N(RÇRLR”tDef_FBMapID_MainBoss(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt isLevelBossüscCs|jjƒdS(N(RÇRw(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytclears cCs||j_dS(N(RÇRK(RRK((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt playerLogins cCsd|j_dS(N(R@RÇRK(RRK((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt playerOfflines (R;R<RRÛRÜRÝRÞ(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRÐìs
                 cCstjƒj|ƒ}|jS(N(t PlayerOnlinet GetOnlineMgrtGetOnlinePlayert    mainFight(RKtolPlayer((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 PlayerControltGetMainLevelPassInfotGetMainLevelNowInfoR"tGetIpyGameDataNotLogtSetMainLevelNowInfoRGtLogt GetPlayerID(RKRÑRÒRlt nowChapterIDt fixNowValue((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt OnPlayerLogins '    #cCsiS(N((RtlineupID((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytGetPlayerLineupByCachescCsè|jƒ}i}d}|jƒjtjƒ}x}t|jƒƒD]i}|j|ƒ}| sC|jƒrqqCn|j    tj
ƒ}|sqCnd}    xJt|ƒD]<}
|j tj
|
ƒ} | d|krÓq¢n| d}    Pq¢W|    sîqCn|j ƒ} t jd| ƒ} | sqCn| jƒ}|jtjƒ}|dksC|t|ƒkrZqCn||}i| d6|d6|jƒd6|t|    ƒ<|d7}|tjkrCPqCqCW|sºiStj|ƒ}i|d    6|d
6|d6}|S( Nii'idtHeroR–R˜tDataiRR(RítGetItemManagertGetPackt ShareDefinetrptHerotrangetGetCounttGetAttIsEmptytGetUserAttrCounttDef_IudetHeroLineuptGetUserAttrByIndext GetItemTypeIDR"tGetIpyGameDatat GetSkinIDListt GetUserAttrtDef_IudetHeroSkinR‚t GetUserDatatstrt LineupObjMaxRçt GetLordAttr(RKRñRtheroDictt    heroCounttcurPacktindextheroItemt lineupCountRrtlpIndext lineupValuetheroIDt heroIpyDatat
skinIDListt    skinIndextskinIDR
R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytGetPlayerLineupsR 
 
 
cCstjd|ƒ}|siSi}xgtddƒD]V}t|d|ƒsOPnt|d|ƒƒ}|sqq2ni|d6|t|ƒ<q2Wi|d6}|S(Nt    NPCLineupii
s GetPosNPCID%sR’Rói (R"RRùR¸tgetattrR(RñtipyDataR    RrtnpcIDR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt GetNPCLineup[s ic&    CsStjd|||f|ƒ|r»tjƒj|ƒ}|sBdS|jƒ|jƒ}}|}|jƒ|kr†tj||ƒnt    j
d}    |j ƒ|    krútj ||    ƒqún?tj ƒ}
|
jƒ|
jƒ}}dttjƒƒd}tjd|||f|ƒ|jddƒ} |jd    iƒ} tjƒjƒ} tjd
d ƒ}tjd d ƒ}tƒ}d }xÌ| jƒD]¾\}}t|ƒ}d\}}d}g}| rB|jddƒ}|jddƒ}t}tjd    |ƒ}|s qn|jƒ}|jƒ}|||g7}|jƒ}nI|jddƒ}tj |ƒ}|soqn||j!ƒ7}|jƒ}|s—qntj"ƒj#|ƒ}|s¸qntj$ƒj%ƒ} | sÖqn| j&ƒ}!| |j'|<| |j(|!<|j)|!|j*ƒƒ| j+|ƒ| j,| ƒ| j-dƒ| j.|ƒ| j/t0ƒ| j1t2ƒ| j3t2ƒ| j4t    j5|d|ƒ| j4t    j6| ƒ| j4t    j7|ƒ| j4t    j8|ƒt9j:| |ƒt9j;| |t0ƒ|t    j<krt=|ƒdkr|dnd}n4|t    j>krLt=|ƒd krC|d nd}n| j?ƒ}"|r‰|"j@ƒx|D]}#|"jA|#ƒqoWn|rŸ|"jA|ƒn|||d |d |d d |d|d krÛdnd }$||d d |}%tjd| j&ƒ|||||fƒ| jB|$|%t0ƒtjC| ƒjD| ƒ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=%sNii”5wi'ssightLevel=%s,pos=(%s,%s)RiRóR!itParryCfgiR–R˜R’idiiÿÿÿÿs@SummonNPC ID:%s,faction:%s,num=%s,posNum=%s,baseAtkSkillID=%s,%s(ii(ERGRiRIRJtGetPosXtGetPosYt GetSightLevelRçtSetPlayerSightLevelR”tDef_PlayerSight_DefaulttGetSighttSetSighttGetMapt GetRebornMapXt GetRebornMapYtintR_Rt GetGameWorldtGetTickR"R#tGetFuncEvalCfgRÏRat FighterNPCIDRtGetNormalSkillIDtGetAngerSkillIDtGetAtkDistTypeR1t GetNPCDataExtGetSkillIDListt GetGameDatatFindNPCDataByIDt GetNPCManagertAddPlayerSummonNPCRRRRÊRt SetNPCTypeIDt SetBornTimet    SetAITypet SetSightLeveltSetIsNeedProcessR(t SetCanAttackR=t
SetVisibletSetDicttDef_Obj_Dict_TurnFightPosInfotDef_Obj_Dict_LineupPlayerIDR•R—R%t
SetFactionR)tAtkDistType_ShortR‚tAtkDistType_LongtGetSkillManagert
ResetSkillt LVUPSkillByIDtRebornt
NPCControltDoNPCRebornCommLogic(&RdRRRRRKtposXtposYt
sightLeveltsighttgameMaptlineupPlayerIDR    ttickR+tbaseAtkSkillIDListRÎtspacet    posNumKeytheroInfoRrRRtbaseAtkSkillIDt skillIDListRRt normalSkillIDt angerSkillIDt atkDistTypet    npcDataExtnpcDatat    curSummonR3t skillManagertskillIDtrebornXtrebornY((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRps®                     %% 
 D)cCsôtjƒj|ƒ}|j}|j}|dkrAt|ƒdS|dkr^t||ƒdStjƒ}d|_    t
j ||ƒ|dkrŸt |t ƒn8|dkr»t||ƒn|dkr×t||ƒnd|_    t
j ||ƒdS(Niiiii(RGRItGetPlayerByIndextReqTypetReqValuet__doExitMainFightt__doSetFightPointR|ttagSCTurnFightReportSigntSignR¼R½t__doMainLevelWaveR=t__doMainBossStartt __doMainFight(R t
clientDataRNRKtreqTypetreqValueRª((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytOnMainFightReqïs*         
              cCs,t|ƒ}|j}|r(|jƒndS(N(RäRÇRw(RKt mainFightMgrRÇ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRb s
      cCsStjd|ƒ|dkr n"|dkr/n|dkr>ndS|j|ƒdS(NsÉèÖÃÕ½´¸ÏûºÄ±¶Öµ: %siii(RGRit SetFightPoint(RKt
fightPoint((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRcs    c CsP|jƒ}tj|ƒ\}}}| rc| rctj|dddƒtj|ƒ\}}}ntjd||||f|ƒt|jƒdƒ}tj|t    j
|ƒsÁtjdƒdSt j d|ƒ}|sÝdSt j d||ƒ}|s7x<|dkr3|d8}t j d||ƒ}|rûPqûqûWn|sAdSd}    xE|    dkrŽt|d|    ƒ st|d|    ƒƒ rŽ|    d8}    qJW|    dkrŸdS||    kr´|    }nt|d|ƒƒ}
|
sÔdSt|
ƒ} d} |
| d} t|t    jƒ}|s tjd|ƒdSt|ƒ}t|_||_||_|    |_||_|
|_| |_| |_t jd    d
ƒ}tjtj |||ƒ}}tjd ||||    | ||| f|ƒ|j!}|j"|||ti| d 6| d 6ƒ|j#t$i|d6t%ƒ|j#t&it'| ƒd6ƒ|j(ƒ|j)ƒdS(Nis?ÇëÇó¹Ø¿¨²¨Õ½¶·: chapterID=%s,levelNum=%s,wave=%s,isRestStart=%ssÕ½´¸²»×㣬ÎÞ·¨¿ªÊ¼!RåRæisGetWaveLineupIDList%ssûÓÐÉèÖÃÖ÷ÕóÈÝ!tMainlineisPÉèÖÃÆðʼ¹Ø¿¨²¨: ¹Ø¿¨%s-%s,²¨=%s/%s,teamMax=%s,mapID=%s,funcLineID=%s,lineupID=%sRÕRÖ(*RíRçRéRëRGRitmaxt GetFightPointt    HaveMoneyR÷tTYPE_Price_XiantaoR"RRêR¸RR‚Rt Lineup_MainRäR(R×RÑRÒRÓRÔRØRÕRÖR#R”RÙtComMainLevelValueRÇR]ReRoR=RnRRmR®(RKt isRestStartRRÑRÒRÔRotchapterIpyDatat levelIpyDataRÓRØRÖRÕRñtlineupMainInfoRmRORLRMRÇ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRf%sv   
 :                                            #    '
 
c Cs|jƒ}tj|ƒ\}}}|s3d}n|sBd}ntjd|||f|ƒtjd|ƒ}|s{dStjd||ƒ}|sšdStj|ƒ\}}    }
||ksÊ||    krîtjd||||    f|ƒdSd} xE| dkr;t    |d| ƒ s.t
|d| ƒƒ r;| d8} q÷W|| krctjd|| fƒdS|j ƒ} | sydSt | ƒ} d}| |d}d}} t |tjƒ}|sÏtjd    |ƒdSt|ƒ}t|_||_||_| |_||_| |_||_| |_tjd
d ƒ}tjtj|||ƒ}}tjd |||| | |||f|ƒ|j}|j|||ti|d 6| d6ƒ|j t!i|d6t"ƒ|j t#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ûÓÐÉèÖÃÖ÷ÕóÈÝ!RpisNÉèÖùؿ¨boss: ¹Ø¿¨%s-%s,²¨=%s/%s,teamMax=%s,mapID=%s,funcLineID=%s,lineupID=%sRÕRÖ()RíRçRèRGRiR"RRétErrLogR¸RtGetBossLineupIDListR‚RR÷RuRäR(R×RÑRÒRÓRÔRØRÕRÖR#R”RÚRvRÇR]ReRoR=RnRRmR®t__processTurnFightR(RKRNRRÑRÒRÔRxRyRît nowLevelNumRlRÓRØRÖRÕRñRzRmRORLRMRÇ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRgksp             :   
                                     #    '
 
c
Cs2t|ƒ}|j}|jƒ}|j}|r-|jr|jd}|_tjd|ƒ|dks|t|j    ƒkrƒdS|j    |d}tjd||fƒt
|_|j i|d6ƒ|j t it|ƒd6ƒ|jƒ|jƒ|jƒr)t|j|ƒdSn t|t
ƒdS|r7dSt|ƒt|jƒdƒ}d}    tdt|jƒ}
g} |j} |jtjƒ} tjd| | |
|j|jfƒxD|    |
krt| ƒt|jƒkr|    d7}    |j} |j| krÓtjd|jƒ|jt ƒt!j"|t#j$|ƒsPtjd    ƒdS| |_d|_xn|jD]`\}}|j%|ƒ}|j&|ƒ}t'|_(x*|j)j*ƒD]}t+|d| |ƒq¯WqlWn|jt|jƒkr÷d|_n|j|j\}}|j%|ƒ}|j&|ƒ}|j(t|j)ƒkr€||f| krk| j-||fƒn|jd7_q½n|t.kr¸t!j"|t#j$|ƒs¸tjd
ƒdSntjd |j|||j(fƒ|j(d krínI|j(dkrÿn7|j(dkr6x%t/|j(tdƒD]
}||_(||j)krIq%n|j)|}| s%t0j1|ƒdkrxq%n|j2ƒ}|j3ƒ}|j4| ||ƒt5|ƒ}t0j1|ƒ}tjd | ||fƒt6|d|ƒsýtjdƒq%n|t.kr.t!j7|t#j$|dt
ƒs.dSnPq%Wn|jd7_|j(d7_(|j(t|j)ƒkrºtjd|j|||j(fƒ||f| krº| j-||fƒqºn|j8ƒrÊPn|jtjƒ}| |kr½tjd|ƒPq½q½W|jrdStjd| |    | fƒt| ƒt|jƒkr.tjd|jƒ|j9| krýt!j"|t#j$|ƒstjdƒdS| |_9xO|jD]D\}}|j%|ƒ}|j&|ƒ}x|j)j*ƒD]}qÜWq¢W|j8ƒrýdSn| |j:kr|jd7_q.t;|jƒndS(Nis¿ªÊ¼½øÈëÏÂһС¶Ó: teamNum=%ssteamNum=%s,lineupID=%sRÕiis5unXiantaoCnt=%s,turnNum=%s,doMax=%s,actionIndex=%s,%ssÖ´ÐÐÐж¯: turnNum=%s, »ØºÏ¿ªÊ¼s»ØºÏ¿ªÊ¼Ê±Õ½´¸²»×ã!s    Õ½´¸²»×ã!s3Ö´ÐÐÐж¯: turnNum=%s,faction=%s,num=%s,actionNum=%siÿÿÿÿs¡ï»ØºÏ%s %s Ðж¯ : curHP=%ss        ¹¥»÷ʧ°ÜtisNotifysG¸ÃÕóÈݱ¾»ØºÏÒѾ­È«²¿Ðж¯ÍêÁË: turnNum=%s,faction=%s,num=%s,actionNum=%ss'Íæ¼ÒÓÐÏûºÄÕ½´¸ÔòÍ£Ö¹,nowUnXiantaoCnt=%ss%turnNum=%s,doCnt=%s,overLineupList=%ssÖ´ÐÐÐж¯: turnNum=%s, »ØºÏ½áÊøs»ØºÏ½áÊøÊ±Õ½´¸²»×ã!(<RäRÇRÛRSR×RÕRGRiR‚RØR(R\ReRnRRmR®R}RRft
EntryLogicRqRrt    PosNumMaxRXRNtNomalDictGetPropertyR”tDef_PDict_UnXiantaoCntRYRQRutFightState_FightingRçRsR÷RtR`RBRR    RR$tTurnFightObjPerTurnStartR@RgRoRùR%R&tGetGameObjTypeRR¶t
GetObjNametDoAttacktPayMoneyRsRRROt OnTurnAllOver(RKRNRmRÇRÛRSRÕRñRotdoCnttdoMaxtoverLineupListRNt unXiantaoCntRRRcRdR,RrRµR3tobjNametcurHPtnowUnXiantaoCnt((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRh¸sô              !    
 
 
    &*
                     #          #            c    Csõtƒj|ƒ}|j}|j}t|ƒx§td|dƒD]’}||_tjd|ƒ|rx|j    t
ƒnx…|j D]z\}}tjd|||fƒ|j |ƒ}|j |ƒ}    d|    _x*|    jjƒD]}
t|
d||ƒqßWq‚WxO|j D]D\}}tjd|||fƒ|j |ƒ}|j |ƒ}    q
WxO|j D]D\}}tjd|||fƒ|j |ƒ}|j |ƒ}    q\W|jƒr´Pntt|j ƒ} d} xˆ| | krW|jt|j ƒkrW| d7} |j |j\}}|j |ƒ}|j |ƒ}    xèt|    jtdƒD]Ð} | d|    _| |    jkrqqIn|    j| }
|
sItj|
ƒdkr qIn|
jƒ}|
jƒ}|j|||ƒt|
ƒ}tj|
ƒ}tjd|||fƒt|
d|ƒsqInPqIW|jt|j ƒdkrEd|_qÐ|jd7_qÐWxi|j D]^\}}tjd|||fƒ|j |ƒ}|j |ƒ}    x|    jjƒD]}
q¶WqbW|jƒrBPqBqBW|jsñt|j ƒndS(    Nis"¡¾----- »ØºÏÖÆÕ½¶·ÂÖ´Î: %s -----¡¿s+»ØºÏ¿ªÊ¼Âß¼­: turnNum=%s,faction=%s, num=%ss'Ö÷¹«Âß¼­: turnNum=%s,faction=%s, num=%ss'ºìÑÕÂß¼­: turnNum=%s,faction=%s, num=%sis¡ï»ØºÏ%s %s Ðж¯ : curHP=%ss+»ØºÏ½áÊøÂß¼­: turnNum=%s,faction=%s, num=%s(!RÏRÅRKROR€RùRNRGRiRuR„RXR`RBR    RR$R…R@RsRR‚RYR%R&R†RR¶R‡RˆRSRŠR(RRNRÇRKRORNRRRcRdR,RŒR‹RrRµR3RR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR}^s~        
         '
           cCsdS(N((R RiRN((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt OnTurnFight¾scCsƒ|jƒ}tj|ƒ}|jtjƒ}|jtjƒ}|sT|jƒ}nd|tkridnd|||j    ƒ|fS(Ns%s%s %s[%s-%s]tAtB(
tGetNameR%t
GetFactionR“R”R=R•R‘RoR(tgameObjRRtposInfoR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR‡Äs cCs'|jr dStjdƒt|_dS(NsÖ´Ðнø³¡Âß¼­...(RPRGRiR=(RÇ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR€Ís
         cCs|s
dSdS(N((R—ttagObjRNRN((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR…Ös#c
Csý|jtjƒsdStj|ƒ}| sA|tj|ƒkrEdS|jƒ}|jƒ}tƒj|ƒ}|sydS|j|ƒ}    xn|    j    j
ƒD]]}
|    j |
ƒ} | j ||ƒ} | dkrÑq˜ntjd|||||| fƒPq˜WdS(NsT        Í³¼ÆÖÎÁÆ: curTD=%s,srcID=%s,skillID=%s,addValue=%s,cureHP=%s,updStatValue=%s(R“R”R=R%R–RRÏRÉR`R?R…RBR:R@RGRi( tcurObjtsrcObjtaddValuetcureHPR\t
curFactiontcurIDtsrcIDRÇt curBatFactionRRdt updStatValue((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytAddTurnObjCureHPþs(       c Cs|jtjƒsdS|jƒ}|jƒ}|r@|jƒnd}tƒj|ƒ}    |    sbdS||kr¡|    jtj    |ƒƒ}
x}|
j
j ƒD]l} |
j | ƒ} | j ||ƒ} | dkrÏq–ntjd||||||| tj|ƒfƒPq–W|    jtj    |ƒƒ}x¯|j
j ƒD]l} |j | ƒ} | j||ƒ} | dkrgq.ntjd||||||| tj|ƒfƒPq.Wn/tjd||||||tj|ƒfƒ|r||krt|t||ƒd|ƒndS(Nisj        Í³¼ÆÉËѪ: curTD=%s,tagID=%s,skillID=%s,hurtType=%s,hurtValue=%s,lostHP=%s,updStatValue=%s,tagHP=%ssj        Í³¼Æ³ÐÉË: curTD=%s,tagID=%s,skillID=%s,hurtType=%s,hurtValue=%s,lostHP=%s,updStatValue=%s,curHP=%ssV        ×Ô²Ð: curTD=%s,tagID=%s,skillID=%s,hurtType=%s,hurtValue=%s,lostHP=%s,curHP=%ss
skillID:%s(R“R”R=Rt
GetSkillIDRÏRÉR`R%R–R?R…RBR6R@RGRiR&R8tAddTurnFightXPt__GetAddXP_Defender(RšR™thurtTypeR4R7tcurSkillRŸttagIDR\RÇR¡RRdR¢t tagBatFaction((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytAddTurnObjHurtValues@        )     )    & cCs-|s
dStj|ƒsdStjddƒS(NiR!i(t SkillCommontisTurnNormalAtkSkillR"R#(tattackR¨((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt__GetAddXP_AttackCs
cCs |dkrdStjddƒS(NiR!i(R"R#(tdefenderR7((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR¦Ks RFcCs|dks| rdS|jtjƒd}|dkr=dStj|ƒ}||}tj||ƒtjd|jƒ||||fƒdS(Nii
s=        ¸üÐÂXP: curID=%s,curXP=%s,addXP=%s,updXP=%s,reason=%s(    R“R”R=R%R£R)RGRiR(R—taddXPtreasonRrtcurXPtupdXP((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR¥Qs 
&cCsA|jƒ}|jƒ}t|ƒ}tjd|||fƒt}|}    |jtj|ƒ|tj    kr|    svdS|j
ƒ}
xht d|
j ƒƒD]Q} |
j | ƒ} | sÆ| jƒdkrÊPn| jƒtjkr˜| }Pq˜q˜Wtj||    ||ƒ}nè|tjkr<|    s!dStj||    ||ƒ}n´tj|ƒ} tjddƒ}|j
ƒ}
g}xt d|
j ƒƒD]÷} |
j | ƒ}| s³|jƒdkr·Pn|jƒtjgkrÕq…ntj|ƒrêq…ntj||ƒdkrq…n|jƒ}tj|ƒrM|tjkrM| |krDq…nd}n|jtj|ƒ}|j|| ||gƒq…W|j ƒxc|D][}|d}|j!ƒ}t"|||ƒ\}}    |r‘t#|t$||ƒd|ƒPq‘q‘W|jtjdƒd}d}|    r3|    jƒ}tj%|    ƒ}ntjd|||f|ƒ|sZdS|    sddStj&|ƒtj&|    ƒkr†t'Stj%|ƒ}tj%|    ƒ}|    jƒ}tjd||||fƒ|dkså|dkrét'St(||    ƒrt)|    ||tj    ƒt'St*||    ƒr=t)||    |tj|ƒnt'S(    Ns/    ¡ñ %s DoAttack: curID=%s,,turnBattleType=%siR!iiÿÿÿÿs
skillID:%ss"        atkOK=%s,tagID=%s,tagHP=%ss-            curID-HP=(%s-%s),tagID-HP=(%s-%s)(+RR‘R‡RGRiR(R<R”tDef_Obj_Dict_TurnBattleTypetTurnBattleType_AtkBackRBRùt GetSkillCounttGetSkillByIndextGetSkillTypeIDt GetFuncTypetDef_SkillFuncType_NormalAttackt
SkillShelltDoLogic_UseSkilltTurnBattleType_ComboR%R£R"R#R¬tisPassiveSkilltRefreshSkillRemainTimet    isXPSkilltTurnBattleType_NormalR“tDef_NPC_Dict_SkillUseCntRgRhR¤t DoNPCUseSkillR¥R¯R&R–R=t
CanAtkBackRˆtCanCombo(R,ttagNPCRNtturnBattleTypetuseSkillRŸRRtatkOKR™R[R tskillR³txpMaxt useSkillListt skillTypeIDtuseCnttuseInfoR\R©ttagHPR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRˆ`sš           
 
   c
Cs¯|jtjƒd}|dkrCtjd|jƒ|fƒtStj|ƒ}|tj    kr‘t
j ddƒs‘tjd|jƒƒtSnt j |ƒ}|jtjƒ}|dkrÂtS|dkrt
jdd    ƒ}t|ƒ|kr||d
nd}t||d ƒ}nt j|ƒ}td||ƒ}    |    dks[tj|    ƒ r…tjd |jƒ||    ||fƒtStjd |jƒ||    ||fƒtS(Nidis>            ±»·ÇÖ÷Õ½µ¥Î»¹¥»÷ʱÎÞ·¨´¥·¢·´»÷: atkID=%s,posNum=%sRis&            Ô¶³Ìµ¥Î»²»¿É·´»÷: defID=%si
REiigY@sf            ÎÞ·¨·´»÷: defID=%s,atkBackNum=%s,atkBackRate=%s=(defAtkBackRate=%s - atkAtkBackDefRate=%s)sf            ¿ÉÒÔ·´»÷: defID=%s,atkBackNum=%s,atkBackRate=%s=(defAtkBackRate=%s - atkAtkBackDefRate=%s)(R“R”R=RGRiRR(t AttackCommonR.RAR"R#R%tGetAtkBackRatetDef_Obj_Dict_TurnAtkBackNumR*R‚R'tGetAtkBackDefRateRqt    CanHappenR=(
tatkObjtdefObjRrRWtdefAtkBackRatet
atkBackNumt validPerListtvaildPertatkAtkBackDefRatet atkBackRate((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRÅÈs4   &        cCstj|ƒ}|jtjƒ}|dkr1tS|dkrŒtjddƒ}t|ƒ|kro||dnd}t    ||dƒ}ntj
|ƒ}t d||ƒ}|dksÊt j |ƒ rôt jd|jƒ||||fƒtSt jd|jƒ||||fƒtS(    Ni
iREiigY@s]            ÎÞ·¨Á¬»÷: atkID=%s,comboNum=%s,comboRate=%s=(atkComboRate=%s - defComboReduce=%s)s]            ¿ÉÒÔÁ¬»÷: atkID=%s,comboNum=%s,comboRate=%s=(atkComboRate=%s - defComboReduce=%s)(R%t GetComboRateR“R”tDef_Obj_Dict_TurnComboNumR(R"R*R‚R'tGetComboDefRateRqRGRÖRiRR=(R×RØt atkComboRatetcomboNumRÛRÜtdefComboReducet    comboRate((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRÆçs"  &        c Csh| s|jƒdkr#tdfS|jƒ}|tjkr^tj|tjƒ r^tdfSd}tj    |ƒ}tj
|ƒ}|tj ks |tj krÈ|}tj ||||ƒ}||fS|tjkrltj|ƒsýtjdƒtdfStjtj|ƒ}|dkr6tjtj|ƒ}n|dkrctjd|jƒƒtdfS|}n†|tjkr©t|ƒ}    |    s—tdfStj|    ƒ}nI|tjkræt|ƒ}
|
sÔtdfStj|
ƒ}n t|ƒ}|stdfStjd|jƒ|j ƒt!|ƒt"j#|ƒt"j$|ƒfƒtj ||||ƒ}||fS(s.NPCʹÓü¼ÄÜ
    @return: ÊÇ·ñ³É¹¦, tagObj
    is#¸ÃNPC·ÇÕÙ»½ÊÞ£¬ÎÞ·¨»ñµÃÖ÷ÈËÊͷż¼ÄÜs&ÕÙ»½ÊÞ£¨%s£©¶ÔÖ÷ÈËÊͷż¼ÄÜ£¬ÕÒ²»µ½Ö÷ÈËs1    ¼¼ÄÜÊÍ·Å: skillID=%s,atkID=%s,def=%s,HP:%s/%sN(%R¹R(R@t GetHappenRateR”tDef_MaxRateValueRGRÖR¼tGetSkillAffectTagtGetSkillFireAimtDef_ST_CanNPCUseSkilltDef_UseSkillAim_NoneR½tDef_UseSkillTag_SummonMasterR1t IsSummonNPCR{tGetSummonNPCOwnert IPY_GameWorldt    gotPlayertgotNPCR‘tDef_UseSkillTag_FriendDeathtGetFriendDeathListtrandomtchoicetDef_ST_CanNPCUseSkillFriendtGetFriendObjListt GetEnemyObjRiR¤RR‡R%R&Rœ( R,RÉRNtrateR™tskillTagtskillAimtisOKtcurSummonOwnert    deathListt
friendList((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRÄþsP
 %
 
 
 
     
 
 
    ;c    CsÐ|jƒ}tƒj|ƒ}|s(gS|jtj|ƒƒ}|jtjƒd}|j    |ƒ}g}x^|j
j ƒD]M\}}|dks{| r q{ntj |ƒdkr»q{n|j |ƒq{W|S(Nidi(RRÏRÉR`R%R–R“R”R=RBRRaR&Rg(    R,R3RÇRcRRdRþRrRÇ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRóBs c    CsÐ|jƒ}tƒj|ƒ}|s(gS|jtj|ƒƒ}|jtjƒd}|j    |ƒ}g}x^|j
j ƒD]M\}}|dks{| r q{ntj |ƒdkr»q{n|j |ƒq{W|S(Nidi(RRÏRÉR`R%R–R“R”R=RBRRaR&Rg(    R,R3RÇRcRRdRÿRrRÇ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR÷Us cCs¢|jƒ}tj|ƒ}|jtjƒ}|d}|d}tƒj|ƒ}|s]dS|j|t    krut
nt    ƒ}|g}    ||j kr¢|g}    nx3|j j ƒD]"}
|
|    kr²|    j |
ƒq²q²WxÃ|    D]»}
|j|
ƒ} |g} | jj ƒ} | jƒx6| D].}|dkr|| kr| j |ƒqqWxH| D]@}| jj|ƒ}|szqVntj|ƒdkr•qVn|SWqßWdS(Nidi(RR%R–R“R”R=RÏRÉR`RoRnR?R…RgRBRRhRR&(R,truleTypeR3RR˜RRrRÇRªttagLineupNumListttagNumt    tagLineupt tagPosNumListtpNumListtpNumRÇ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRøgs> 
 
!           
      cCs£|jtjƒsdStjdt|ƒ|jƒfƒtj|dƒ|j    t
ƒt ƒj |jƒƒ}|rŸt jƒ}|jƒ|_|j|ƒntS(Ns'        %s »ØºÏÕ½¶·Ö÷Ìå±»»÷ɱ: curID=%si(R“R”R=RGRiR‡RR%tSetHPR;R(RÏRÉR|ttagMCTurnFightObjDeadRR¨R=(R—tkillerRÇRª((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt    SetKilleds#  cCsqtjdƒtƒj|ƒ}|s)dS|jr6dS|jrKt|_ntjt    tgƒ|_t
|ƒdS(Ns ËùÓлغϽáÊø( RGRiRÏRÅRSRRnRôRõRoRp(RRÇ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRŠžs          
cCstƒ}|j|ƒ}|s"dStjƒ|j|_|j}tjd|||jfƒi}xã|jj    ƒD]Ò}t
|ƒ|krŸi|t
|ƒ<n|t
|ƒ}|j |ƒ}x…|j j    ƒD]t}t
|ƒ|krùi|t
|ƒ<n|t
|ƒ}    |j |ƒ}
|
j} |
j} |
j} tjd||fƒxõ|
jjƒD]ä\}}|jƒ}|jƒ}|jtjƒ}| j|dƒ}| j|dƒ}| j|dƒ}tjd||||tj|ƒtj|ƒ|||f    ƒi|d6|d6|d6|d6|d    6|d
6|    t
|ƒ<qZWqÎWqtWg}|j}|rÁ|j}|tk}|jtj kr™t!|||ƒqÁ|jtj"krÁt#|||ƒqÁni|d 6|d 6t$j%|ƒt$j&6}|j't(|ƒ|js|j)|ƒndS( Ns4--- Õ½¶·½áÊø´¦Àí --- %s, winFaction=%s, costTime=%sssÕóÈÝÃ÷ϸ: faction=%s,num=%sis9    Pos:%s ID=%s-%s-%s,,HP=%s/%s, Êä³ö=%s,³ÐÉË=%s,ÖÎÁÆ=%sRR–R’tAtkHurttDefHurttCureHPRStstatInfo(*RÏRÅR_RZR[RSRGRiRWR…RR`R?RBR RRRRaRR‘R“R”R•RR%R&RœRRKRoRLRÙtOnOver_MainLevelRÚtOnOver_MainLevelBosstFBCommontGetJsonItemListt Over_itemInfoRutFightState_AwardRÈ(RRÎRÇRSRRt facStatInfoRcRtlineupStatInfoRdR RRRrR,R3RRtatkHurttdefHurtRt awardItemListRRKtisWintoverMsg((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRp²s^                          5F         '    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äR(R×RçRéRqRëRGRiRÕRÖR=RÓtmintGetMainLevelPassValueRvtSetMainLevelPassValue( RKRRRRmRÑRÒRÔtnextWavetnowValuet hisPassValuet curPassValue((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRîs<                        cCsŽ|s
dS|jƒ}t|ƒ}t|_tj|ƒ\}}}|sptj|ƒ}tjd||ƒdS|j    |j
krµt |_tjd|||j    |j
f|ƒdSt}    t j d||dƒr||d}
} tjd||| f|ƒn„t j d|ddƒrR|dd}
} tjd|||
| f|ƒn7|dd}
} tjd|||
| f|ƒt }    tj||
| dƒ} |    rÍtj|ƒ} tjd    | |ƒn,tj||
| dƒ} tjd
| |ƒtjd | | f|ƒt jd||ƒ}|s2dS|jƒ}tjd |||f|ƒtj||d dtigdtƒ||7}dS(Ns5Ö÷ÏßbossÕ½¶·Ê§°Ü£¡±£³Öµ±Ç°Ë¢¹Ö²¨½ø¶È²»±ä! nowValue=%ssFÖ÷ÏßbossС¶ÓÕ½¶·Ê¤Àû£¬ÏÂһС¶Ó! chapterID=%s,levelNum=%s,teamNum=%s/%sRæisDÖ÷Ïßboss²¨Õ½¶·Ê¤Àû£¡ÏÂÒ»¹Ø! chapterID=%s,levelNum=%s,nextLevelNum=%ssUÖ÷Ïßboss²¨Õ½¶·Ê¤Àû£¡ÏÂÒ»ÕÂ! chapterID=%s,levelNum=%s,nextChapterID=%s,nextLevelNum=%ssUÖ÷Ïßboss²¨Õ½¶·Ê¤Àû£¡ÒÑͨ¹Ø! chapterID=%s,levelNum=%s,nextChapterID=%s,nextLevelNum=%sis(ÒÑͨ¹ØµÄË¢¹Ö½ø¶È±£³Ö²»±ä: updNowValue=%ss3Ϊͨ¹ØµÄË¢¹Ö½ø¶ÈÉèÖÃΪÏÂÒ»¹ØµÄµÚ1²¨: updNowValue=%ssupdPassValue=%s,updNowValue=%ss.¹ý¹Ø½±Àø: chapterID=%s,levelNum=%s,itemList=%steventt MainLevelBosst isNotifyAward(RíRäR(R×RçRètGetMainLevelNowValueRGRiRÕRÖR=R"RêtSetMainLevelPassInfoRëRtGetAwardItemListt ItemControlertGivePlayerItemOrMail(RKRRRRmRÑRÒRlR t    isAllPasst nextChapterIDt nextLevelNumt updPassValuet updNowValueRytitemList((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRsV                           %
cCsdS(N((R RiRN((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytOnTurnFightReportViewZs((((((LR”R|R¼RçRGR%RR"RßR1R÷RÌRïR)R¬R¼RÒRôR_RyR+RRRùtFightState_StarttFightState_PrepareOKR„tFightState_FightEndRRvRoRnRR>RERÀRÏRÐRäRðRòRRRRlRbRcR(RfRgRhR}R’R‡R€R…R£R@R«R¯R¦R¥RÂRˆRÅRÆRÄRóR÷RøR
RŠRpRRR1(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt<module>s„                    
rã2                 
        <                  F    M    ¦    `                        (  )         h            D         &         <    *    B