hxp
2025-07-04 ce8d11938d9444fde6a89774cfcb12ac0a7b1a58
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
Nehc@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}|tjkrCPqCqCW|s~iStj|ƒ}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.pytGetPlayerLineupsJ 
 
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 GetNPCLineupUs 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.pyRjs                    
 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.pyRQs    c CsP|jƒ}tj|ƒ\}}}| rc| rctj|dddƒtj|ƒ\}}}ntjd||||f|ƒt|jƒdƒ}tj|t    j
|ƒsÁtjdƒdSt j d|ƒ}|sÝdSt j d||ƒ}|s7x<|dkr3|d8}t j d||ƒ}|rûPqûqûWn|sAdSd}    xE|    dkrŽt|d|    ƒ st|d|    ƒƒ rŽ|    d8}    qJW|    dkrŸdS||    kr´|    }nt|d|ƒƒ}
|
sÔdSt|
ƒ} d} |
| d} t|t    jƒ}|s tjd|ƒdSt|ƒ}t|_||_||_|    |_||_|
|_| |_| |_t jd    d
ƒ}tjtj |||ƒ}}tjd ||||    | ||| f|ƒ|j!}|j"|||ti| d 6| d 6ƒ|j#t$i|d6t%ƒ|j#t&it'| ƒd6ƒ|j(ƒ|j)ƒdS(Nis?ÇëÇó¹Ø¿¨²¨Õ½¶·: chapterID=%s,levelNum=%s,wave=%s,isRestStart=%ssÕ½´¸²»×㣬ÎÞ·¨¿ªÊ¼!RàRáisGetWaveLineupIDList%ssûÓÐÉèÖÃÖ÷ÕóÈÝ!tMainlineisPÉèÖÃÆðʼ¹Ø¿¨²¨: ¹Ø¿¨%s-%s,²¨=%s/%s,teamMax=%s,mapID=%s,funcLineID=%s,lineupID=%sRÏRÐ(*RèRâRäRæRGRitmaxt GetFightPointt    HaveMoneyRótTYPE_Price_XiantaoR"RýRåR²RR‚Rt Lineup_MainRßR(RÑRËRÌRÍRÎRÒRÏRÐR#RÓRÔtComMainLevelValueRÁR]ReRoR=RnRRmR¨(RKt isRestStartRRËRÌRÎR]tchapterIpyDatat levelIpyDataRÍRÒRÐRÏRìtlineupMainInfoR[RORLRMRÁ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRTsv   
 :                                            #    '
 
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ûÓÐÉèÖÃÖ÷ÕóÈÝ!R^isNÉèÖùؿ¨boss: ¹Ø¿¨%s-%s,²¨=%s/%s,teamMax=%s,mapID=%s,funcLineID=%s,lineupID=%sRÏRÐ()RèRâRãRGRiR"RýRätErrLogR²RtGetBossLineupIDListR‚RRóRcRßR(RÑRËRÌRÍRÎRÒRÏRÐR#RÓRÕRdRÁR]ReRoR=RnRRmR¨t__processTurnFightR(RKR?RRËRÌRÎRfRgRét nowLevelNumRlRÍRÒRÐRÏRìRhR[RORLRMRÁ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRUVsp             :   
                                     #    '
 
c
Cs2t|ƒ}|j}|jƒ}|j}|r-|jr|jd}|_tjd|ƒ|dks|t|j    ƒkrƒdS|j    |d}tjd||fƒt
|_|j i|d6ƒ|j t it|ƒd6ƒ|jƒ|jƒ|jƒr)t|j|ƒdSn t|t
ƒdS|r7dSt|ƒt|jƒdƒ}d}    tdt|jƒ}
g} |j} |jtjƒ} tjd| | |
|j|jfƒxD|    |
krt| ƒt|jƒkr|    d7}    |j} |j| krÓtjd|jƒ|jt ƒt!j"|t#j$|ƒsPtjd    ƒdS| |_d|_xn|jD]`\}}|j%|ƒ}|j&|ƒ}t'|_(x*|j)j*ƒD]}t+|d| |ƒq¯WqlWn|jt|jƒkr÷d|_n|j|j\}}|j%|ƒ}|j&|ƒ}|j(t|j)ƒkr€||f| krk| j-||fƒn|jd7_q½n|t.kr¸t!j"|t#j$|ƒs¸tjd
ƒdSntjd |j|||j(fƒ|j(d krínI|j(dkrÿn7|j(dkr6x%t/|j(tdƒD]
}||_(||j)krIq%n|j)|}| s%t0j1|ƒdkrxq%n|j2ƒ}|j3ƒ}|j4| ||ƒt5|ƒ}t0j1|ƒ}tjd | ||fƒt6|d|ƒsýtjdƒq%n|t.kr.t!j7|t#j$|dt
ƒs.dSnPq%Wn|jd7_|j(d7_(|j(t|j)ƒkrºtjd|j|||j(fƒ||f| krº| j-||fƒqºn|j8ƒrÊPn|jtjƒ}| |kr½tjd|ƒPq½q½W|jrdStjd| |    | fƒt| ƒt|jƒkr.tjd|jƒ|j9| krýt!j"|t#j$|ƒstjdƒdS| |_9xO|jD]D\}}|j%|ƒ}|j&|ƒ}x|j)j*ƒD]}qÜWq¢W|j8ƒrýdSn| |j:kr|jd7_q.t;|jƒndS(Nis¿ªÊ¼½øÈëÏÂһС¶Ó: teamNum=%ssteamNum=%s,lineupID=%sRÏiis5unXiantaoCnt=%s,turnNum=%s,doMax=%s,actionIndex=%s,%ssÖ´ÐÐÐж¯: turnNum=%s, »ØºÏ¿ªÊ¼s»ØºÏ¿ªÊ¼Ê±Õ½´¸²»×ã!s    Õ½´¸²»×ã!s3Ö´ÐÐÐж¯: turnNum=%s,faction=%s,num=%s,actionNum=%siÿÿÿÿs¡ï»ØºÏ%s %s Ðж¯ : curHP=%ss        ¹¥»÷ʧ°ÜtisNotifysG¸ÃÕóÈݱ¾»ØºÏÒѾ­È«²¿Ðж¯ÍêÁË: turnNum=%s,faction=%s,num=%s,actionNum=%ss'Íæ¼ÒÓÐÏûºÄÕ½´¸ÔòÍ£Ö¹,nowUnXiantaoCnt=%ss%turnNum=%s,doCnt=%s,overLineupList=%ssÖ´ÐÐÐж¯: turnNum=%s, »ØºÏ½áÊøs»ØºÏ½áÊøÊ±Õ½´¸²»×ã!(<RßRÁRÖRSRÑRÏRGRiR‚RÒR(R\ReRnRRmR¨RkRRTt
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¿RKRORnRõRNRGRiRuRrRXR`RBR    RR$RsR@RsRoR‚RYR%R&RtRR°RuRvRSRxR(RR?RÁRKRORNRRRcRdR,RzRyRrR¯R3R}R~((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRkIs~        
         '
           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.pyRu¯s
  cCs'|jr dStjdƒt|_dS(NsÖ´Ðнø³¡Âß¼­...(RPRGRiR=(RÁ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRn¶s
         cCs|s
dSdS(N((R†ttagObjRNR?((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRs¿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.pytAddTurnObjHurtValues@        )     )    & 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•4s 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”:s 
&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‘RuRGRiR(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
CanAtkBackRvtCanCombo(R,ttagNPCR?tturnBattleTypetuseSkillRŽR R}tatkOKRˆR¢txpMaxRIt useSkillListRt skillTypeIDtuseCnttuseInfoRJR˜ttagHPR~((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyRvIs’          
 
  &  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 IsSummonNPCRitGetSummonNPCOwnert IPY_GameWorldt    gotPlayertgotNPCR‘tDef_UseSkillTag_FriendDeathtGetFriendDeathListtrandomtchoicetDef_ST_CanNPCUseSkillFriendtGetFriendObjListR´RiR“RRuR%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æ3s 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´Es> 
 
!           
      cCs£|jtjƒsdStjdt|ƒ|jƒfƒtj|dƒ|j    t
ƒt ƒj |jƒƒ}|rŸt jƒ}|jƒ|_|j|ƒntS(Ns'        %s »ØºÏÕ½¶·Ö÷Ìå±»»÷ɱ: curID=%si(R…RÓR0RGRiRuR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    SetKilledks#  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.pyRx|s          
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ÍtmintGetMainLevelPassValueRdtSetMainLevelPassValue( 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ÌRlRt    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.pytOnTurnFightReportView7s((((((KRÓR|R¶RâRGR%RÿR"RÚR1RóRÆRÞRR›R©R¦RãR_RyRoRRõtFightState_StarttFightState_PrepareOKRrtFightState_FightEndRRvRoRnRR>RERºRÉRÊRßRëRíRRRRZRPRQR(RTRURVRkR€RuRnRsR’R@RšRžR•R”R±RvRµR¶R³RâRæR´RøRxRpRýRþR(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Attack\TurnAttack.pyt<module>s‚                    
rá2                 
        9     p             F    M    ¦    `                    (  )         b            D         &         ;    *    B