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
ÀÄthc@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    MainFightcBs#eZd„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 (R;R<RRÜRÝ(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRÑðs         cCstjƒj|ƒ}|jS(N(t PlayerOnlinet GetOnlineMgrtGetOnlinePlayert    mainFight(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 OnPlayerLogin s '    #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.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ðtipyDataRRstnpcIDR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt GetNPCLineupWs 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
sightLeveltsighttgameMaptlineupPlayerIDRttickR+tbaseAtkSkillIDListRÏtspacet    posNumKeytheroInfoRsRRtbaseAtkSkillIDt skillIDListRRt normalSkillIDt angerSkillIDt atkDistTypet    npcDataExtnpcDatat    curSummonR3t skillManagertskillIDtrebornXtrebornY((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRls®                     %% 
 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
clientDataRMRKtreqTypetreqValueR«((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.pyRa    s
      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.pyRbs    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ÕRntchapterIpyDatat levelIpyDataRÔRÙR×RÖRðtlineupMainInfoRlRORLRMRÈ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRe!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ûÓÐÉèÖÃÖ÷ÕóÈÝ!RoisNÉèÖùؿ¨boss: ¹Ø¿¨%s-%s,²¨=%s/%s,teamMax=%s,mapID=%s,funcLineID=%s,lineupID=%sRÖR×()RìRæRçRGRjR"RRètErrLogR¹RtGetBossLineupIDListRƒRRöRtRãR(RØRÒRÓRÔRÕRÙRÖR×R#R•RÛRuRÈR^RfRpR=RoRRnR¯t__processTurnFightR(RKRMRRÒRÓRÕRwRxRít nowLevelNumRmRÔRÙR×RÖRðRyRlRORLRMRÈ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRfgsp             :   
                                     #    '
 
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|RRet
EntryLogicRpRqt    PosNumMaxRXRNRYRQRvtFightState_FightingRæRrRöRsRaRBRR    RR$tTurnFightObjPerTurnStartR@RhRpRøR%R&tGetGameObjTypeRR·t
GetObjNametDoAttackR=RtRRROt OnTurnAllOver(RKRMRlRÈRÜRSRÖRðRntdoCnttdoMaxtoverLineupListRNRRRdReR,t playerHeroAtkRsR¶R3tobjNametcurHP((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRg´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@RtRRƒRYR%R&R‚RR·RƒR„RSR…R(RRMRÈRKRORNRRRdReR,R‡R†RsR¶R3RŠR‹((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR|Ys~        
         '
           cCsdS(N((R RhRM((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‘ttagObjRNRM((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.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ƒ|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Ÿ?s 
&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_AtkBackRARøt GetSkillCounttGetSkillByIndextGetSkillTypeIDt GetFuncTypetDef_SkillFuncType_NormalAttackt
SkillShelltDoLogic_UseSkilltTurnBattleType_ComboR%R¤R"R#t SkillCommontisPassiveSkilltRefreshSkillRemainTimet isAngerSkilltTurnBattleType_NormalR”tDef_NPC_Dict_SkillUseCntRhRit DoNPCUseSkillR&RR=t
CanAtkBackR„tCanCombo(R,ttagNPCRMtturnBattleTypetuseSkillR™RRŠtatkOKR“RZR tskillR§txpMaxt useSkillListt skillTypeIDtuseCnttuseInfoR¢ttagHPR‹((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR„Ns–           
 
  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-R@R"R#R%tGetAtkBackRatetDef_Obj_Dict_TurnAtkBackNumR)RƒR&tGetAtkBackDefRateRpt    CanHappenR=(
tatkObjtdefObjRsRVtdefAtkBackRatet
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&tGetComboDefRateRpRGRË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 IsSummonNPCRztGetSummonNPCOwnert IPY_GameWorldt    gotPlayertgotNPCR’tDef_UseSkillTag_FriendDeathtGetFriendDeathListtrandomtchoicetDef_ST_CanNPCUseSkillFriendtGetFriendObjListt GetEnemyObjRjRžRRƒR%R&R( R,R¾RMtrateR“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è/s 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ìBs 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íTs> 
 
!           
      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.pytSetTurnObjKilledzs(            *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)tisTurnNormalSkillR"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ÈRSR Rt 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èRpRêRGRjRÖR×R=RÔtmintGetMainLevelPassValueRutSetMainLevelPassValue( RKRRRRlRÒ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çtGetMainLevelNowValueRGRjRÖR×R=R"RétSetMainLevelPassInfoRêRtGetAwardItemListt ItemControlertGivePlayerItemOrMail(RKRRRRlRÒRÓRmRt    isAllPasst nextChapterIDt nextLevelNumt updPassValuet updNowValueRxtitemList((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR@sV                           %
cCsdS(N((R RhRM((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*RRRøtFightState_StarttFightState_PrepareOKR€tFightState_FightEndRRwRpRoRR>RERÁRÐRÑRãRïRñRRRRkRaRbR(ReRfRgR|RŒRƒR~RRR@R¥RŸR·R„RºR»R¹RèRìRíRRRR…RqR RR/(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt<module>s†                     
ræ2                
        <                  F    M    ¥    `                        (  * g            D         &                 <    *    B