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
aohc@sýddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZdZdZdZedƒ\ZZZZZZdZdZ dd7d„ƒ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/e0d„Z1d„Z2d„Z3d„Z4d „Z5d!„Z6d"„Z7d#„Z8dd$„Z9dd%„Z;d&d'„Z<ej=dd(„Z>d)„Z?d*„Z@d+„ZAd,„ZBd-„ZCdd.„ZDdd/„ZEd0„ZFd1„ZGd2„ZHd3„ZId4„ZJd5„ZKd6„ZLdS(<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__As                                                        cCs
|jjS(N(Rtguid(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytgetGUIDTscCs
|jjS(N(RtplayerID(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt getPlayerIDUscCs|j S(N(R(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytisEmptyWscCso|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    setLineupYs 
"cCs|jr|jS|jS(N(R (R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytrefreshFightPowercs    cCs(t|_i|_i|_i|_dS(N(RR    R RR(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt __resetStatjs
                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__resetAttrStaterscCs|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|_g|_dS(Niiit(t    GameWorldtGetGUIDRRtGetPlayerManagertFindPlayerByIDR@t    curPlayertmapIDt
funcLineIDtturnNumtturnMaxR(t
enterLogict    turnStarttturnEndt
winFactiont    batBuffert isNeedReporttmsgDictt factionDicttactionSortListt actionIndext    startTimetcostTimetplayerKillObjIDList(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.pytsetFactionLineup s 
 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?RbRtappendtsortR=RYRXRGtDebugLog(    RtsortListRdRRReR t    sortValuet_((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytsortActionQueues     !        cCsEd}||jkr%|j|}nt||ƒ}||j|<|S(N(R@RWR>(RRRd((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRa3s  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(RSRWRbR=R?R$RR%R&R(t Def_FactionBt Def_FactionAtDoTurnFightOverR(RRRdt    allKilledRetposNumR,((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytcheckOverByKilled=s$        cCs|j|ƒ}|jƒdS(N(RaRD(RRRd((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytclearBatFactionXs
cCs5|jtƒx!|jjƒD]}|jƒqWdS(N(t    syncStatetFightState_OverRWR$RD(RRd((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt
clearFight]s 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 FactionListRWtkeysRattagSCTurnFightFactiontFactiont
LineupListR?RBttagSCTurnFightLineuptNumRtOwnerIDRt    ShapeTypetObjListRRbttagSCTurnFightObjtGetIDtObjIDtGetNPCIDtNPCIDt GetDictByKeytChConfigtDef_Obj_Dict_HeroIDtHeroIDtDef_Obj_Dict_SkinIDtSkinIDR&tHPtGetHPExtHPExtGetMaxHPtMaxHPt
GetMaxHPExtMaxHPExR1tGetNPCLVtLVtPosNumR%tGetXPtAngreXPRhtObjCntt    LineupCntt
FactionCntt
addBatPack( Rtmsgt
clientPackRRdt    tfFactionRRettfLineupRsR,ttfObj((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytsyncInitcsT                                      cCs–tj|dtƒ}|jddƒ}tjƒ}|jƒ|j|_|j    |_
||_ |j |_ ||_t|jƒ|_|j|ƒdS(NRys RF(RzR{R(R|R}ttagMCTurnFightStatetClearRLRRMR€tStateRNtTurnNumR‚RƒR„R©(RtstateRVRªR«((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRv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¸tCmdtSubCmdRGRjRURRTt    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]RfRnRpRaRtRuRxR¯RvR·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 getTurnFightRxRÂ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ÃRGRj(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@RGRj(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 isLevelBossscCs|jjƒdS(N(RÈRx(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 playerOffline s (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.pytGetMainFightMgrscCs«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ÓRmt 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 lineupCountRstlpIndext lineupValuetheroIDt heroIpyDatat
skinIDListt    skinIndextskinIDR
R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytGetPlayerLineup#sR 
 
 
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
RstnpcIDR((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(ERGRjRIRJtGetPosXtGetPosYt GetSightLevelRètSetPlayerSightLevelR•tDef_PlayerSight_DefaulttGetSighttSetSighttGetMapt GetRebornMapXt GetRebornMapYtintR`Rt GetGameWorldtGetTickR"R#tGetFuncEvalCfgRÐRbt 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(&ReRRRRRKtposXtposYt
sightLeveltsighttgameMaptlineupPlayerIDR
ttickR+tbaseAtkSkillIDListRÏtspacet    posNumKeytheroInfoRsRRtbaseAtkSkillIDt skillIDListRRt normalSkillIDt angerSkillIDt atkDistTypet    npcDataExtnpcDatat    curSummonR3t skillManagertskillIDtrebornXtrebornY((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRts®                     %% 
 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
clientDataRORKtreqTypetreqValueR«((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytOnMainFightReqós*         
              cCs,t|ƒ}|j}|r(|jƒndS(N(RåRÈRx(RKt mainFightMgrRÈ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRcs
      cCsStjd|ƒ|dkr n"|dkr/n|dkr>ndS|j|ƒdS(NsÉèÖÃÕ½´¸ÏûºÄ±¶Öµ: %siii(RGRjt SetFightPoint(RKt
fightPoint((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRds    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ìRGRjtmaxt 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^RfRpR=RoRRnR¯(RKt isRestStartRRÒRÓRÕRptchapterIpyDatat levelIpyDataRÔRÙR×RÖRòtlineupMainInfoRnRORLRMRÈ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRg)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ûÓÐÉèÖÃÖ÷ÕóÈÝ!RqisNÉèÖùؿ¨boss: ¹Ø¿¨%s-%s,²¨=%s/%s,teamMax=%s,mapID=%s,funcLineID=%s,lineupID=%sRÖR×()RîRèRéRGRjR"RRêtErrLogR¹RtGetBossLineupIDListRƒRRøRvRåR(RØRÒRÓRÔRÕRÙRÖR×R#R•RÛRwRÈR^RfRpR=RoRRnR¯t__processTurnFightR(RKRORRÒRÓRÕRyRzRït nowLevelNumRmRÔRÙR×RÖRòR{RnRORLRMRÈ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRhosp             :   
                                     #    '
 
c    Csët|ƒ}|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} tjd| |
|j|jfƒx|    |
kr¹t| ƒt|jƒkr¹|    d7}    |j} |j| kr¾tjd|jƒ|jtƒtj|t j!|ƒs;tjd    ƒdS| |_d|_xn|jD]`\} }|j"| ƒ}|j#|ƒ}t$|_%x*|j&j'ƒD]}t(|d| |ƒqšWqWWn|jt|jƒkrâd|_nt
}|j|j\} }|j"| ƒ}|j#|ƒ}|j%t|j&ƒkrq| |f| kr\| j*| |fƒn|jd7_q¨n| t+kr©tj|t j!|ƒs©tjd
ƒdSntjd |j| ||j%fƒ|j%d krÞn-|j%dkrðn|j%dkr x    t,|j%tdƒD]î}||_%||j&kr:qn|j&|}| st-j.|ƒdkriqn|j/ƒ}|j0ƒ}|j1| ||ƒt2|ƒ}t-j.|ƒ}tjd | ||fƒt3|d|ƒsîtjdƒqn| t+krt4}nPqWn|jd7_|j%d7_%|j%t|j&ƒkrtjd|j| ||j%fƒ| |f| kr| j*| |fƒqn|j5ƒrŸPn|r¨tjdƒPq¨q¨W|jrÇdStjd| |    | fƒt| ƒt|jƒkrçtjd|jƒ|j6| kr¶tj|t j!|ƒsHtjdƒdS| |_6xO|jD]D\} }|j"| ƒ}|j#|ƒ}x|j&j'ƒD]}q•Wq[W|j5ƒr¶dSn| |j7kr×|jd7_qçt8|jƒndS(Nis¿ªÊ¼½øÈëÏÂһС¶Ó: teamNum=%ssteamNum=%s,lineupID=%sRÖiis%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        ¹¥»÷ʧ°ÜsG¸ÃÕóÈݱ¾»ØºÏÒѾ­È«²¿Ðж¯ÍêÁË: turnNum=%s,faction=%s,num=%s,actionNum=%ssÍæ¼ÒÎ佫ÓÐÐж¯ÔòÍ£Ö¹£¡s%turnNum=%s,doCnt=%s,overLineupList=%ssÖ´ÐÐÐж¯: turnNum=%s, »ØºÏ½áÊøs»ØºÏ½áÊøÊ±Õ½´¸²»×ã!(9RåRÈRÜRSRØRÖRGRjRƒRÙR(R]RfRoRRnR¯R~RRgt
EntryLogicRrRst    PosNumMaxRXRNRYRQRvtFightState_FightingRèRtRøRuRaRBRR    RR$tTurnFightObjPerTurnStartR@RhRpRúR%R&tGetGameObjTypeRR·t
GetObjNametDoAttackR=RtRRROt OnTurnAllOver(RKRORnRÈRÜRSRÖRòRptdoCnttdoMaxtoverLineupListRNRRRdReR,t playerHeroAtkRsR¶R3tobjNametcurHP((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRi¼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úRNRGRjRvR‚RXRaRBR    RR$RƒR@RtRRƒRYR%R&R„RR·R…R†RSR‡R(RRORÈRKRORNRRRdReR,R‰RˆRsR¶R3RŒR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR~as~        
         '
           cCsdS(N((R RjRO((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’RpR(tgameObjRŒRtposInfoR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR…Çs cCs'|jr dStjdƒt|_dS(NsÖ´Ðнø³¡Âß¼­...(RPRGRjR=(RÈ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR€Ðs
         cCs|s
dSdS(N((R“ttagObjRNRO((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ÊRaR?R†RBR:R@RGRj( tcurObjtsrcObjtaddValuetcureHPR]t
curFactiontcurIDtsrcIDRÈt curBatFactionRRet updStatValue((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytAddTurnObjCureHPs(       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ƒ|dkr||krtjddƒ}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=%sR!is
skillID:%s(R”R•R>Rt
GetSkillIDRÐRÊRaR%R’R?R†RBR6R@RGRjR&R8R"R#tAddTurnFightXP(R–R•thurtTypeR4R7tcurSkillR›ttagIDR]RÈRRReRžt tagBatFactiontaddXP((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytAddTurnObjHurtValuesB        )     )    &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)RGRjR(R“R¦treasonRstcurXPtupdXP((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR¡Gs 
&cCs|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 ƒx:|D]2}|d}t!|||ƒ\}}    |r‘Pq‘q‘W|jtjdƒd}d}|    r
|    jƒ}tj"|    ƒ}ntjd|||f|ƒ|s1dS|    s;dStj#|ƒtj#|    ƒkr]t$Stj"|ƒ}tj"|    ƒ}|    jƒ}tjd||||fƒ|dks¼|dkrÀt$St%||    ƒrét&|    ||tj    ƒt$St'||    ƒrt&||    |tj|ƒnt$S(Ns/    ¡ñ %s DoAttack: curID=%s,,turnBattleType=%siR!iiÿÿÿÿs"        atkOK=%s,tagID=%s,tagHP=%ss-            curID-HP=(%s-%s),tagID-HP=(%s-%s)((RR’R…RGRjR(R=R•tDef_Obj_Dict_TurnBattleTypetTurnBattleType_AtkBackRCRút GetSkillCounttGetSkillByIndextGetSkillTypeIDt GetFuncTypetDef_SkillFuncType_NormalAttackt
SkillShelltDoLogic_UseSkilltTurnBattleType_ComboR%R¤R"R#t SkillCommontisPassiveSkilltRefreshSkillRemainTimet    isXPSkilltTurnBattleType_NormalR”tDef_NPC_Dict_SkillUseCntRhRit DoNPCUseSkillR&R’R=t
CanAtkBackR†tCanCombo(R,ttagNPCROtturnBattleTypetuseSkillR›RRŒtatkOKR•R\R tskillR©txpMaxt useSkillListt skillTypeIDtuseCnttuseInfoR¤ttagHPR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR†Vs–           
 
  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>RGRjRR(t AttackCommonR/RBR"R#R%tGetAtkBackRatetDef_Obj_Dict_TurnAtkBackNumR+RƒR(tGetAtkBackDefRateRrt    CanHappenR=(
tatkObjtdefObjRsRXtdefAtkBackRatet
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(tGetComboDefRateRrRGRÍRjR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 GetEnemyObjRjR RR…R%R&R( R,RÀROtrateR•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ÊRaR%R’R”R•R>RBRRbR&Rh(    R,R3RÈRdRReRõRsR¾((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRê7s 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ÊRaR%R’R”R•R>RBRRbR&Rh(    R,R3RÈRdRReRöRsR¾((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRîJs 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ÊRaRpRoR?R†RhRBRRiRR&(R,truleTypeR3RR”RRsRÈR¥ttagLineupNumListttagNumt    tagLineupt tagPosNumListtpNumListtpNumR¾((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRï\s> 
 
!           
      cCs2|jtjƒsdS|jƒ}tjdt|ƒ|fƒ|jtj    ƒt
j |ƒdkrwt
j |dƒn|j tƒtƒj|ƒ}|s tStjƒ}||_|j|ƒ|j}|r.|r.|jtjƒ|jƒkr.||jkr|jj|ƒntjd|jƒntS(Ns'        %s »ØºÏÕ½¶·Ö÷Ìå±»»÷ɱ: curID=%sisÍæ¼Òµ¥´Î»÷ɱͳ¼Æ: %s(R”R•R>RRGRjR…t SetCurActionRætlaNPCDieR%R&tSetHPR<R(RÐRÊR=R}ttagMCTurnFightObjDeadR‘R©RKR?RîR\Rh(R“tkillerR3RÈR«RK((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytSetTurnObjKilled‚s(            *c    Cs.|jƒtjkrdS|jtjƒs/dS|jƒ}tƒj|ƒ}|sWdS|ri|j    ƒnd}t
j |ƒ}|r—t j |dƒnA|rØt
j|ƒrØtjddƒ}t||d|ƒqØn|j}|r*|jtjƒ|jƒkr*tj|||||j|jƒndS(NiR!is
skillID:%s(R„RæRèR”R•R>RRÐRÊR RµR¸R%R)tisTurnNormalAtkSkillR"R#R¡RKR?RîtFBLogictOnPlayerLineupAttackSuccessRLRM(    R–R•R£R3RÈR]tisXPR¦RK((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytOnTurnfightAttackSuccessžs(     $%cCs¶|jƒtjkrdS|jtjƒs/dS|jƒ}tƒj|ƒ}|sWdS|j    }|r©|jtj
ƒ|j ƒkr©t j |||||j|jƒng|_dS(N(R„RæRèR”R•R>RRÐRÊRKR?RîRtOnPlayerLineupAttackResultRLRMR\(R–R•R£R3RÈRK((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytOnTurnfightAttackResultºs     $%    cCsqtjdƒtƒj|ƒ}|s)dS|jr6dS|jrKt|_ntjt    tgƒ|_t
|ƒdS(Ns ËùÓлغϽáÊø( RGRjRÐRÆRSRRoRëRìRpRq(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[RSRGRjRWR†RRaR?RBR RRRRbRR’R”R•R–RR%R&RRRKRpRLRÚtOnOver_MainLevelRÛtOnOver_MainLevelBosstFBCommontGetJsonItemListt Over_itemInfoRvtFightState_AwardRÉ(RRÏRÈRSRRt facStatInfoRdRtlineupStatInfoReR RRRsR,R3RRtatkHurttdefHurtR™t awardItemListRRKtisWintoverMsg((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRqâ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êRrRìRGRjRÖR×R=RÔtmintGetMainLevelPassValueRwtSetMainLevelPassValue( RKRRRRnRÒRÓRÕtnextWavetnowValuet hisPassValuet curPassValue((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRs<                        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étGetMainLevelNowValueRGRjRÖR×R=R"RëtSetMainLevelPassInfoRìRtGetAwardItemListt ItemControlertGivePlayerItemOrMail(RKRRRRnRÒRÓRmR t    isAllPasst nextChapterIDt nextLevelNumt updPassValuet updNowValueRztitemList((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRHsV                           %
cCsdS(N((R RjRO((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytOnTurnFightReportViewŠs((((((MR•R}R½RèRGR%RR"RàR1RøRÍRæR)RµR²RÉRRëR`RzR,RRRútFightState_StarttFightState_PrepareOKR‚tFightState_FightEndRRwRpRoRR>RERÁRÐRÑRåRñRóRRRRmRcRdR(RgRhRiR~RŽR…R€RƒRŸR@R§R¡R¹R†R¼R½R»RêRîRïRRR
R‡RqRRR1(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt<module>s†                     
ræ2                 
        <                  F    M    ¥    `                        (  * g            D         &                 <    *    B