hwj35
2025-07-02 be2004bc6492efa067d8fc7ab2a84dd61dba819f
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
èìdhc@sëddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZdZdZedƒ\ZZZZZZdZdZdd6d„ƒYZdd7d    „ƒYZ d
d8d „ƒYZ!d d9d „ƒ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„Z/d„Z0d„Z1d„Z2d„Z3d „Z4d!„Z5d"„Z6dd#„Z7dd$„Z9d%„Z:d&„Z;d'd(„Z<ej=dd)„Z>d*„Z?d+„Z@d,„ZAd-„ZBd.„ZCdd/„ZDdd0„ZEd1„ZFd2„ZGd3„ZHd4„ZId5„ZJdS(;iÿÿÿÿNi
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.pytgetGUIDRscCs
|jjS(N(RtplayerID(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt getPlayerIDSscCs|j S(N(R(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytisEmptyUscCso|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    setLineupWs 
"cCs|jr|jS|jS(N(R (R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytrefreshFightPoweras    cCs(t|_i|_i|_i|_dS(N(RR    R RR(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt __resetStaths
                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__resetAttrStatepscCs|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.pytcheckOverByKilled8s$        cCs|j|ƒ}|jƒdS(N(R`RD(RRRc((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytclearBatFactionSs
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
clearFightXs c CsNtj|jdtƒ}|jddƒ}tjƒ}|j|_|j    |_
|j |_ ||_ t|j ƒ|_g|_xª|jjƒD]™}|j|ƒ}tjƒ}||_g|_xA|jjƒD]0}|j|ƒ}tjƒ}||_|j|_|j|_g|_xÀ|j j!ƒD]¯\}    }
tj"ƒ} |
j#ƒ| _$|
j%ƒ| _&|
j'ƒ| _(|
j)ƒ| _*|
j+ƒ| _,|
j-ƒ| _.t/j0|
ƒ| _1|    | _2t3j4|
ƒ| _5|jj6| ƒq,Wt|jƒ|_7|jj6|ƒqÑWt|jƒ|_8|jj6|ƒqŽWt|jƒ|_9|j:|ƒdS(Nt ensure_asciis RF(;tjsontdumpsRVR(treplacetChPyNetSendPackttagSCTurnFightInitRLtMapIDRMt
FuncLineIDROtTurnMaxtMsgtlentLent FactionListRWtkeysR`ttagSCTurnFightFactiontFactiont
LineupListR?RBttagSCTurnFightLineuptNumRtOwnerIDRt    ShapeTypetObjListRRattagSCTurnFightObjtGetIDtObjIDtGetNPCIDtNPCIDR&tHPtGetHPExtHPExtGetMaxHPtMaxHPt
GetMaxHPExtMaxHPExR1tGetNPCLVtLVtPosNumR%tGetXPtAngreXPRgtObjCntt    LineupCntt
FactionCntt
addBatPack( Rtmsgt
clientPackRRct    tfFactionRRdttfLineupRrR,ttfObj((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytsyncInit^sP                                      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¾tChConfigtDef_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.pytclearýs 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ƒ}xAt|jƒƒD]-}|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ƒd}i| d6|jƒd6|d6|t|    ƒ<|d7}|tjkrCPqCqCWtj|ƒ}i|d    6|d
6|d6}|S( Nii'idtHerotIDtDataR’iRR(RètGetItemManagertGetPackt ShareDefinetrptHerotrangetGetCounttGetAttIsEmptytGetUserAttrCounttDef_IudetHeroLineuptGetUserAttrByIndext GetItemTypeIDR"tGetIpyGameDatatGetSkinNPCIDListt GetUserDatatstrt LineupObjMaxRât GetLordAttr(RKRìRtheroDictt    heroCounttcurPacktindextheroItemt lineupCountRrtlpIndext lineupValuetheroIDt heroIpyDatatnpcIDR
R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytGetPlayerLineupsF 
 
cCstjd|ƒ}|siSi}xgtddƒD]V}t|d|ƒsOPnt|d|ƒƒ}|sqq2ni|d6|t|ƒ<q2Wi|d6}|S(Nt    NPCLineupii
s GetPosNPCID%sR’Rîi (R"RýRõR²tgetattrR(RìtipyDataRRrR R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt GetNPCLineupRs ic"CsDtjd|||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 ƒ}tƒ}d }xÏ| jƒD]Á\}}t|ƒ}g}| r |jd dƒ}|jddƒ}tjd    |ƒ}|sáq{n|jƒ}|jƒ}|||g7}n=|jddƒ}tj|ƒ}|s9q{n||jƒ7}|sUq{ntjƒj |ƒ}|svq{ntj!ƒj"ƒ}|s”q{n|j#ƒ}||j$|<||j%|<|j&||j'ƒƒ|j(|ƒ|j)| ƒ|j*dƒ|j+|ƒ|j,t-ƒ|j.t/ƒ|j0t/ƒ|j1t    j2|d|ƒ|j1t    j3| ƒt4j5||ƒt4j6||t-ƒ|j7ƒ}|r¹|j8ƒx|D]}|j9|ƒqŸWn|||d |d |d d |d|d krõdnd } ||d d |}!|j:| |!t-ƒtj;|ƒj<| ƒ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!iiRïR’idiiÿÿÿÿ(=RGRiRIRJtGetPosXtGetPosYt GetSightLevelRâtSetPlayerSightLevelRÓtDef_PlayerSight_DefaulttGetSighttSetSighttGetMapt GetRebornMapXt GetRebornMapYtintR_Rt GetGameWorldtGetTickR"R#RÉRaRýtGetNormalSkillIDtGetAngerSkillIDR1t GetNPCDataExtGetSkillIDListt GetGameDatatFindNPCDataByIDt GetNPCManagertAddPlayerSummonNPCRRRRÄRt SetNPCTypeIDt SetBornTimet    SetAITypet SetSightLeveltSetIsNeedProcessR(t SetCanAttackR=t
SetVisibletSetDicttDef_Obj_Dict_TurnFightPosInfotDef_Obj_Dict_LineupPlayerIDR%t
SetFactionR)tGetSkillManagert
ResetSkillt LVUPSkillByIDtRebornt
NPCControltDoNPCRebornCommLogic("RdRRRRRKtposXtposYt
sightLeveltsighttgameMaptlineupPlayerIDRttickR+RÈtspacet    posNumKeytheroInfoRrt skillIDListR R R t normalSkillIDt angerSkillIDt    npcDataExtnpcDatat    curSummonR3t skillManagertskillIDtrebornXtrebornY((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRgs                    
 DcCsô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(Rt
clientDataR?RKtreqTypetreqValueR¤((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.pyRPõ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.pyRQýs    c Cs|jƒ}tj|ƒ\}}}|s3d}n|sBd}n|sQd}ntjd||||f|ƒt|jƒdƒ}tj|tj    |ƒs¯tjdƒdSt
j d|ƒ}|sËdSt
j d||ƒ}|s%x<|dkr!|d8}t
j d||ƒ}|réPqéqéWn|s/dSd}    xE|    dkr|t |d|    ƒ sot|d|    ƒƒ r||    d8}    q8W|    dkrdS||    kr¢|    }nt|d|ƒƒ}
|
sÂdSt|
ƒ} d} |
| d} t|ƒ}t|_||_||_|    |_||_|
|_| |_| |_t
jdd    ƒ}tjtj|||ƒ}}tjd
||||    | ||| f|ƒ|j}|j|||ti| d 6| d 6ƒ|j t!it"|tj#ƒd6t$ƒ|j t%it&| ƒd6ƒ|j'ƒ|j(ƒdS( Nis?ÇëÇó¹Ø¿¨²¨Õ½¶·: chapterID=%s,levelNum=%s,wave=%s,isRestStart=%ssÕ½´¸²»×㣬ÎÞ·¨¿ªÊ¼!RàRáisGetWaveLineupIDList%stMainlineisPÉèÖÃÆðʼ¹Ø¿¨²¨: ¹Ø¿¨%s-%s,²¨=%s/%s,teamMax=%s,mapID=%s,funcLineID=%s,lineupID=%sRÏRÐ()RèRâRäRGRitmaxt GetFightPointt    HaveMoneyRótTYPE_Price_XiantaoR"RýRåR²RR‚RßR(RÑRËRÌRÍRÎRÒRÏRÐR#RÓRÔtComMainLevelValueRÁR]ReRoRt Lineup_MainR=RnRRmR¨(RKt isRestStartRRËRÌRÎR]tchapterIpyDatat levelIpyDataRÍRÒRÐRÏRìR[RORLRMRÁ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRT st               
 :                                            #    '&
 
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 |ƒ}t|_||_||_| |_||_| |_||_| |_tjd    d
ƒ}tjtj|||ƒ}}tjd |||| | |||f|ƒ|j}|j|||ti|d 6| d 6ƒ|jtit|t j!ƒd6t"ƒ|jt#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 < %sR^isNÉèÖùؿ¨boss: ¹Ø¿¨%s-%s,²¨=%s/%s,teamMax=%s,mapID=%s,funcLineID=%s,lineupID=%sRÏRÐ()RèRâRãRGRiR"RýRätErrLogR²RtGetBossLineupIDListR‚RßR(RÑRËRÌRÍRÎRÒRÏRÐR#RÓRÕRcRÁR]ReRoRRóRdR=RnRRmR¨t__processTurnFightR(RKR?RRËRÌRÎRfRgRét nowLevelNumRlRÍRÒRÐRÏRìR[RORLRMRÁ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRUQsh             :   
                                     #    '&
 
c
CsLt|ƒ}|j}|jƒ}|j}|rG|jr6|jd}|_tjd|ƒ|dks|t|j    ƒkrtjd||j    fƒdS|j    |d}tjd||fƒt
|_|j i|d6ƒ|j t it|ƒd6ƒ|jƒ|jƒ|jƒrCt|j|ƒdSn t|t
ƒdS|rQdSt|ƒ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$|ƒsjtjd
ƒdS| |_d|_xn|jD]`\}}|j%|ƒ}|j&|ƒ}t'|_(x*|j)j*ƒD]}t+|d| |ƒqÉWq†Wn|jt|jƒkrd|_n|j|j\}}|j%|ƒ}|j&|ƒ}|j(t|j)ƒkrš||f| kr…| j-||fƒn|jd7_q×n|t.krÒt!j"|t#j$|ƒsÒtjd ƒdSntjd |j|||j(fƒ|j(d krnI|j(dkrn7|j(dkrPx%t/|j(tdƒD]
}||_(||j)krcq?n|j)|}| s?t0j1|ƒdkr’q?n|j2ƒ}|j3ƒ}|j4| ||ƒt5|ƒ}t0j1|ƒ}tjd| ||fƒt6|d|ƒstjdƒq?n|t.krHt!j7|t#j$|dt
ƒsHdSnPq?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|jr(dStjd| |    | fƒt| ƒt|jƒkrHtjd|jƒ|j9| krt!j"|t#j$|ƒs©tjdƒdS| |_9xO|jD]D\}}|j%|ƒ}|j&|ƒ}x|j)j*ƒD]}qöWq¼W|j8ƒrdSn| |j:kr8|jd7_qHt;|jƒndS(Nis¿ªÊ¼½øÈëÏÂһС¶Ó: teamNum=%ss0111111 teamNum=%s,mainFightMgr.waveLineupList=%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¨RjRRTt
EntryLogicR_R`t    PosNumMaxRXRNtNomalDictGetPropertyRÓtDef_PDict_UnXiantaoCntRYRQRutFightState_FightingRâRaRóRbR`RBRR    RR$tTurnFightObjPerTurnStartR@RgRoRõR%R&tGetGameObjTypeRR°t
GetObjNametDoAttacktPayMoneyRsRRROt OnTurnAllOver(RKR?R[RÁRÖRSRÏRìR]tdoCnttdoMaxtoverLineupListRNt unXiantaoCntRRRcRdR,RrR¯R3tobjNametcurHPtnowUnXiantaoCnt((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRV™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¿RKRORmRõRNRGRiRuRqRXR`RBR    RR$RrR@RsRnR‚RYR%R&RsRR°RtRuRSRwR(RR?RÁRKRORNRRRcRdR,RyRxRrR¯R3R|R}((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRj@s~        
         '
           cCsdS(N((RRWR?((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt OnTurnFight scCsh|jƒ}tj|ƒ}|jtjƒ}|jƒ}d|tkrNdnd|||jƒ|fS(Ns%s%s %s[%s-%s]tAtB(    tGetNameR%t
GetFactiont GetDictByKeyRÓR0R‘RoR(tgameObjR|RtposInfoR ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRt¦s
  cCs'|jr dStjdƒt|_dS(NsÖ´Ðнø³¡Âß¼­...(RPRGRiR=(RÁ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRm­s
         cCs|s
dSdS(N((R…ttagObjRNR?((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRr¶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ÓR0R%RƒRRÉRÃR`R?R…RBR:R@RGRi( tcurObjtsrcObjtaddValuetcureHPRJt
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ÓR0Rt
GetSkillIDRÉRÃR`R%RƒR?R…RBR6R@RGRiR&R8tAddTurnFightXPt__GetAddXP_Defender(RˆR‡thurtTypeR4R7tcurSkillRttagIDRJRÁRRRdRt tagBatFaction((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytAddTurnObjHurtValueús@        )     )    & cCs-|s
dStj|ƒsdStjddƒS(NiR!i(t SkillCommontisNormalAtkSkillR"R#(tattackR–((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt__GetAddXP_Attack#s
cCs |dkrdStjddƒS(NiR!i(R"R#(tdefenderR7((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR”+s 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ÓR0R%RR)RGRiR(R…taddXPtreasonRrtcurXPtupdXP((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR“1s 
&cCs"|jƒ}|jƒ}t|ƒ}tjd|||fƒt}|}    |jtj|ƒ|tj    kr‘|    svdSt
j ||    d|ƒ}n@|tj krÅ|    sªdStj||    ||ƒ}n tj|ƒ}
tjddƒ} |jƒ} g} tjd| jƒ|ƒxðtd| jƒƒD]Ù}| j|ƒ}| sV|jƒdkrZPntj|ƒroq(ntj||ƒdkrq(n|jƒ}tj|ƒrÒ|tjkrÒ|
| krÉq(nd}n|jtj|ƒ}| j ||||gƒq(W| j!ƒxc| D][}|d}|j"ƒ}t#|||ƒ\}}    |rt$|t%||ƒd|ƒPqqW|sÑt&|ƒ}    |    rÑtjd|    jƒt|    ƒf|ƒt
j ||    d|ƒ}qÑn|jtjdƒd}d}|    r|    jƒ}tj'|    ƒ}ntjd    |||f|ƒ|s;dS|    sEdStj(|ƒtj(|    ƒkrgt)Stj'|ƒ}tj'|    ƒ}|    jƒ}tjd
||||fƒ|dksÆ|dkrÊt)St*||    ƒrót+|    ||tj    ƒt)St,||    ƒrt+||    |tj |ƒnt)S( Ns/    ¡ñ %s DoAttack: curID=%s,,turnBattleType=%sR!is skillCount=%siiÿÿÿÿs
skillID:%ss,    ÎÞ¼¼Äܿɹ¥»÷£¬Ö±½ÓʹÓÃÆÕ¹¥! tagID=%s(%s)s"        atkOK=%s,tagID=%s,tagHP=%ss-            curID-HP=(%s-%s),tagID-HP=(%s-%s)(-RR‘RtRGRiR(R/RÓtDef_Obj_Dict_TurnBattleTypetTurnBattleType_AtkBackt
BaseAttacktAttackR@tTurnBattleType_Combot
SkillShelltDoLogic_UseSkillR%RR"R#R3t GetSkillCountRõtGetSkillByIndextGetSkillTypeIDRštisPassiveSkilltRefreshSkillRemainTimet    isXPSkilltTurnBattleType_NormalR„tDef_NPC_Dict_SkillUseCntRgRhR’t DoNPCUseSkillR“Rt GetEnemyObjR&RƒR=t
CanAtkBackRutCanCombo(R,ttagNPCR?tturnBattleTypetuseSkillRR R|tatkOKR‡R¡txpMaxRIt useSkillListRt skillTypeIDtuseCnttuseInfoRJR—ttagHPR}((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRu@s’          
 
  &  c    Csa|jtjƒd}|dkrCtjd|jƒ|fƒtStj|ƒ}|jtj    ƒ}|dkrttS|dkrÏt
j ddƒ}t |ƒ|kr²||dnd}t ||dƒ}ntj|ƒ}td||ƒ}|dks tj|ƒ r7tjd    |jƒ||||fƒtStjd
|jƒ||||fƒtS( Nidis>            ±»·ÇÖ÷Õ½µ¥Î»¹¥»÷ʱÎÞ·¨´¥·¢·´»÷: atkID=%s,posNum=%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ÓR0RGRiRR(R%tGetAtkBackRatetDef_Obj_Dict_TurnAtkBackNumR"tGetFuncEvalCfgR‚RtGetAtkBackDefRateR_t    CanHappenR=(    tatkObjtdefObjRrtdefAtkBackRatet
atkBackNumt validPerListtvaildPertatkAtkBackDefRatet atkBackRate((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyR´¢s*   &        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‚RtGetComboDefRateR_RGRÄ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 IsSummonNPCRhtGetSummonNPCOwnert IPY_GameWorldt    gotPlayertgotNPCR‘tDef_UseSkillTag_FriendDeathtGetFriendDeathListtrandomtchoicetDef_ST_CanNPCUseSkillFriendtGetFriendObjListR³RiR’RRtR%R&R–( R,R¸R?trateR‡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ÓR0RBRRaR&Rg(    R,R3RÁRcRRdRëRrR¶((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ÃR`R%RƒR„RÓR0RBRRaR&Rg(    R,R3RÁRcRRdRìRrR¶((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRå*s 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ÓR0RÉ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³<s> 
 
!           
      cCs£|jtjƒsdStjdt|ƒ|jƒfƒtj|dƒ|j    t
ƒt ƒj |jƒƒ}|rŸt jƒ}|jƒ|_|j|ƒntS(Ns'        %s »ØºÏÕ½¶·Ö÷Ìå±»»÷ɱ: curID=%si(R„RÓR0RGRiRtR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    SetKilledbs#  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.pyRwss          
c Csùtƒ}|j|ƒ}|s"dStjƒ|j|_|j}tjd|||jfƒi}xÇ|jj    ƒD]¶}t
|ƒ|krŸi|t
|ƒ<n|t
|ƒ}|j |ƒ}xi|j j    ƒD]X}t
|ƒ|krùi|t
|ƒ<n|t
|ƒ}    |j |ƒ}
|
j} |
j} |
j} tjd||fƒxÙ|
jjƒD]È\}}|jƒ}|jƒ}| j|dƒ}| j|dƒ}| j|dƒ}tjd|||tj|ƒtj|ƒ|||fƒi|d6|d6|d6|d6|d    6|    t
|ƒ<qZWqÎWqtWg}|j}|r¥|j}|tk}|jtjkr}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=%sis6    Pos:%s ID=%s-%s,,HP=%s/%s, Êä³ö=%s,³ÐÉË=%s,ÖÎÁÆ=%sRR’tAtkHurttDefHurttCureHPRStstatInfo((RÉR¿R_RZR[RSRGRiRWR…RR`R?RBR RRRRaRR‘RR%R&R–RRKRoRLRÓRÔtOnOver_MainLevelRÕtOnOver_MainLevelBosstFBCommontGetJsonItemListt Over_itemInfoRutFightState_AwardRÂ(RRÈRÁRSRûRt facStatInfoRcRtlineupStatInfoRdR RRRrR,R3R tatkHurttdefHurtR‹t awardItemListRRKtisWintoverMsg((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRp‡s\                          2?         '    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äR_RæRGRiRÏRÐR=RÍtmintGetMainLevelPassValueRctSetMainLevelPassValue( RKRRRR[RË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æRýtGetAwardItemListt ItemControlertGivePlayerItemOrMail(RKRRRR[RËRÌRlR t    isAllPasst nextChapterIDt nextLevelNumt updPassValuet updNowValueRgtitemList((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRýìsV                           %
cCsdS(N((RRWR?((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pytOnTurnFightReportView.s((((((KRÓR|R¶RâRGR%RþR"RÚR1RóRÆRÝRRšR¨R¥RâR_RyRnRRõtFightState_StarttFightState_PrepareOKRqtFightState_FightEndRRvRoRnRR>RERºRÉRÊRßRëRíRRRRZRPRQR(RTRURVRjRRtRmRrR‘R@R™RR”R“R°RuR´RµR²RáRåR³R÷RwRpRüRýR(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt<module>s‚                    
rá2                 
        6     p             D    H    §    `                    (  )         b            D         &         ;    *    B