hwj35
2025-06-23 aa0f971ae9a59f0fd98d57b6c1d1663a270be92c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
ó:gc    @sˆddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZedƒ\ZZZZZedƒ\Z Z!Z"dZ#dZ$dZ%dZ&eddUƒZ'\Z(Z)Z*ed    ƒ\    Z+Z,Z-Z.Z/Z0Z1Z2Z3ddVd
„ƒYZ4d dWd „ƒYZ5d „Z6ddXd„ƒYZ7d„Z8d„Z9d„Z:d„Z;d„Z<d„Z=d„Z>d„Z?d„Z@d„ZAd„ZBd„ZCd„ZDd„ZEd„ZFd„ZGd „ZHd!„ZIeJddd"„ZLd#„ZMd$„ZNd%„ZOd&„ZPd'„ZQd(„ZRd)„ZSd*„ZTd+„ZUd,„ZVd-„ZWeXd.„ZYeXd/„ZZd0„Z[d1„Z\d2„Z]d3„Z^d4„Z_d5„Z`d6„Zad7„Zbd8„Zcd9„Zdd:„Zed;„Zfd<„ZgeXd=„Zhd>„Zid?„Zjd@„ZkdA„ZldB„ZmdC„ZndD„ZodE„ZpdF„ZqdG„ZrdH„ZsdI„ZtdJ„ZudK„ZvdL„ZwdM„ZxdN„ZydO„ZzdP„Z{dQ„Z|dR„Z}dS„Z~dT„ZdS(YiÿÿÿÿNiiiˆt BattleWorldt FactionInfot
PlayerInfoii    cBsGeZd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(cCsêttjƒƒ|_d|_i|_g|_i|_i|_d|_d|_    g|_
d|_ g|_ g|_ d|_d|_g|_d|_d|_d|_d|_d|_|jƒ|jƒi|_i|_dS(Ni(tintttimet    startTimethmNumtcallOpenPlayerInfot superItemInfotcrystalFactionInfotcrystalAwardTicktpersonBuffCounttpersonBuffCalcTicktfactionBuffNPCInfotfactionBuffCalcTicktfactionBuffIDOrderListt eventInfoListteventNumt
eventNPCIDt eventNPCPosteventStartTickt eventEndTickt
eventNPCHPtlastEventEndTicktlastWallCollOKTickt RandSuperTaskt_BattleWorld__randEventListtcrystalAtkedDictt worldHelpDict(tself((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyt__init__Zs2                                                                            
 
        cCszi|jd6|jd6|jd6|jjƒd6}|ji|jd6|jd6td|j    |ƒd6|j
d    6ƒ|S(
NRR    R tcrystalAtkedListRRiRR( RR    R RtkeystupdateRRtmaxRR(Rttickt    worldInfo((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytgetWorldAllHelpInfozs
%cCsI|jji|jd6|jd6td|j|ƒd6|jd6ƒdS(NRRiRR(RR!RRR"RR(RR#((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytupdEventNPCHelps %cCsˆ|jjƒ}|jj|dƒ||j|<|j|dkrU|jj|ƒn|jjƒ|krndS|jjƒ|jd<tS(NiR(RR tgettpopRtTrue(RtnpcIDtatkValueR((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytupdCrystalAtkedHelp†s cCsZtjƒjƒ}tjddƒ}tj|gƒ|_tjdt|jƒ|ƒdS(NtCrossBattlefieldAwardSuperisËæ»úÕ½³¡´ó½±: superItemInfo=%s(    t    GameWorldt GetGameWorldt GetPropertyIDt IpyGameDataPYtGetFuncEvalCfgtGetResultByWeightListRtLogtstr(Rt fbPropertyIDtsuperItemWeightList((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyR’s
c Cs¡|jr dStjddƒ}g}|t7}|jtƒt|ƒt|ƒkrotjd||fƒdSt    j
|ƒx4t |ƒD]&\}}|jj |||gƒq‰Wtj ddƒ}tj ddƒ}|rQtjƒ}tjƒjtjtjƒ}tjj|iƒ}    |    j|iƒ}
|
rg|jj |tgƒqgn|jj |tgƒ|jjƒtjƒjƒ} tjd|j| ƒdS(NtCrossBattlefieldEventisJÕ½³¡³£¹æÊ¼þË¢ÐÂʱ¼ä¸öÊýÅäÖôíÎó! commEventTimeList=%s,commEventNumList=%sitCrossBattlefieldBossis0Ëæ»úÕ½³¡Ê¼þË¢ÐÂʱ¼ä¼°±àºÅÁбí: eventInfoList=%s(RR1R2tAllEventNumListtremovet EventNum_BosstlenR.tErrLogtrandomtshufflet    enumeratetappendt
GetFuncCfgtFBCommontGetCrossDynamicLineMapZoneIDR/tGetGameWorldDictByKeyt ShareDefinet$Def_Notify_WorldKey_DailyActionStatetDailyActionID_CrossBattlefieldt
PyGameDatatg_crossBattlefieldCallTeamInfoR'tsortR0R4( RtcommEventTimeListtcommEventNumListtiRteventBossStartTimetisOnlyCallHaveBosstzoneIDRthmCallTeamInfot callTeamInfoR6((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyt__randEventListšs6    
        cCsjtjd|jtjƒjƒƒd|_d|_g|_d|_d|_||_    |j
|ƒdS(NsÕ½³¡Ëæ»úʼþ½áÊø! eventNum=%si( R.R4RR/R0RRRRRR&(RR#((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyt setEventEndÀs#                         (    t__name__t
__module__RR%R&R,RRRV(((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyRXs                          &t BattleFactioncBsAeZd„Zd„Zd„Zd„Zed„Zd„ZRS(cCsÄtjƒjƒ|_||_d|_d|_i|_g|_g|_    d|_
g|_ g|_ g|_ d|_d|_d|_i|_d|_d|_d|_g|_i|_dS(Nit(R.R/R0R6tfactiontscoret scoreSortTimetfactionPlayerDicttbattlePlayerSortListtscoreKingIDListtonlineFightPowerTotaltonlinePlayerIDListthomePlayerIDListtfactionBuffInfotcrystalScorePlusRatetcrystalScorePlusEndTickt hurtBossValuethurtBossPlayerDicttsuperItemProgresstsuperItemPlayerIDtsuperItemPlayerNametrobotObjIDListtfactionHelpDict(RR[((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyRÏs*                                                                            cCsÀ|jr.tjƒ|jdkr.g|_ni|jd6|jd6|jd6|jd6|jd6}|j|d<g}x6|jjƒD]%}|t    j
kr‰|j |ƒq‰q‰W||d<|S(    NiR[R\RkRiRdRgtsysCallBuyIDList( RdRR[R\RkRiRgR^R RJt g_crossBattlefieldSysCallBuyListRB(Rt factionInfoRntplayerID((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytgetFactionAllHelpInfoís" ! 
c    CsÔ|jr dStd|j|ƒ|_|j|jd<tjd|j||jf|jƒ|jtj    ddƒkr{dSt
ƒ}|j s‘dSg}xW|j j ƒD]F\}}||jkrÈq§n|js×q§n|j|j|gƒq§Wtj|ƒ}|s
dSt|ƒ}||_|j|_|j|jd<d|_|j|jd<|jd7_|j d|j d}}tjd    |j||||f|jƒtjd
|j|j||gƒtƒdS( NiRisD    Ôö¼ÓÕóÓª´ó½±½ø¶È: faction=%s,addProgress=%s,superItemProgress=%sR-iRktsuperItemContributionisRÕóÓª´ó½±¿ª½±: faction=%s,weightList=%s,superItemPlayerID=%s,itemID=%s,itemCount=%stCrossBattlefieldSuperItemPlayer(RjR"RiRmR.tDebugLogR[R6R1RCtGetBattleWorldRR^titemsRbRsRBR3tGetBattlePlayerObjtnameRktplayerHelpDicttsuperItemAwardCntR4t PlayerControltFBNotifytNotifyBattlefieldHelp(    Rt addProgresstworldObjt
weightListRqt    battleObjRjtitemIDt    itemCount((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytaddSuperItemProgressûsD                                   "c    Csàtjddƒ}| s+t|ƒdkr/dS|\}}| sI| rMdS||}|j|}|dks|||kr€dStjd||f|jƒx<|jjƒD]+\}}||j    kr­|j
|ƒq­q­WdS(NtCrossBattlefieldAwardSuper2iiis8    ÕóӪÿ%s»ý·ÖÔö¼ÓÔÚÏßÕóÓªÍæ¼Ò´ó½±¹±Ï×! addProgress=%s( R1R2R=R\R.RuR6R^RwRbtaddSuperItemContribution(    RtbefScoret perScoreInfot superScorePerRtbefTimestaftTimesRqR‚((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyt#__checkPerScoreAddSuperItemProgress%s 
 cCs«|s
dS|j}td|j|ƒ|_|j|jd<d}td|ttjƒƒƒ|_tjd|j||jf|j    ƒ|j
|ƒ|s¡dS|j ƒS(NiR\lIÎs4    Ôö¼ÓÕóÓª»ý·Ö: faction=%s,addValue=%s,updScore=%s( R\R"RmRRR]R.RuR[R6t1_BattleFaction__checkPerScoreAddSuperItemProgresstcheckIsVictory(RtaddValuetisCheckVictoryRˆtcalcTime((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytaddFactionScore6s    "& cCsntjddƒ}|j|kr%dStjd|j|jf|jƒtjƒjƒ}t    |j|ƒt
S(NtCrossBattlefieldScoreBaseis0ÕóÓª»ý·Ö´ïµ½»ñʤ»ý·Ö£¬»ñʤ£¡ faction=%s,score=%s( R1RCR\R.R4R[R6R/tGetTicktDoOverR)(RtbattleOverScoreR#((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyRHs#(    RWRXRRrR…RŽR)R“R(((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyRYÍs             *     c    CsLttjƒ}ttjƒ}tjddƒ}|j|krR|j|krRdStjƒj    ƒ}|}|j|jkré|j|g|j|gg}|j
dt ƒ|d\}}|j }tj d||j|jf|ƒnYtjtjtjgƒ}t|ƒ}|jd7_tj d||j|jf|ƒ|jƒS(NR”itreverseisAË«·½ÕóÓª»ý·Ö²»Í¬£¬¸ß·ÖÒ»·½»ñʤ! winFaction=%s,jScore=%s,eScore=%sidsAË«·½ÕóÓª»ý·ÖÏàͬ£¬Ëæ»úÒ»·½»ñʤ! winFaction=%s,jScore=%s,eScore=%s(tGetBattleFactionObjRGtCampType_Justicet CampType_EvilR1RCR\R.R/R0RLR)R[R4R?tchoiceR(    R#t jFactionObjt eFactionObjR—R6t winFactionObjtsortListt_t
winFaction((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytcheckBattleOverRs(             t BattlePlayercBsGeZd„Zd„Zd„Zeded„Zd„Zd„Z    RS(cCs?||_d|_d|_d|_d|_d|_d|_d|_d|_    d|_
d|_ d|_ d|_ d|_d|_d|_d|_d|_d|_d|_d|_i|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_!d|_"i|_#dS(NRZii($RqRyR[tNonet
factionObjtaccIDtjobtfacetfacePictrealmLVt
fightPowerthighScoreTodaythighScoreWeekTotaltenterCountWeektonlineCalcTickt onlineTimest restoreHPTicktitemRebornCountR\R]t    killCounttcontinueKillCountt ckillCntInfotkillPlayerAddScoreTimestkillPlayerScoreAwardEndTickt killBossCntt killScoreKingt killGuardCntt    auraScoreR{tfactionBuffCollCnttpersonBuffCollCnttcrystalCollCntt wallCollCntRsRz(RRq((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyRusH                                                                                                                                            cCs/|j r(|jr(t|jƒ|_n|jS(N(R¦R[R™(R((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyt getFactionObjžscCs<i|jd6|jd6|jd6|jd6|jd6}|S(NR\RsR³R´Rµ(R\RsR³R´Rµ(RthelpInfo((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytgetPlayerAllHelpInfo£s!icCsÆ|s
dS||9}|j}td|j|ƒ|_d}td|ttjƒƒƒ|_tjd|j||||jf|jƒ|tkr´|dkr´|j    |7_    n|j
j i|jd6|||gd6ƒt j ddƒ}|r||}    |j|}
|
dkr|
|    kr|
d} t jddƒ} t| ƒ| kr]| | n| d    } tjd
|| |jf|jƒ|j| ƒqn|jƒ}|rÂ|j||ƒndS( NilIÎsJ    Ôö¼ÓÍæ¼Ò»ý·Ö: playerID=%s,scoreType=%s,addValue=%s,±¶Öµ=%s,updScore=%sR\taddScoreR†iiiÿÿÿÿsE    Íæ¼Òÿ%s»ý·ÖÔö¼Ó´ó½±¹±Ï×! addProgress=%s,superItemContribution=%s(R\R"RRR]R.RuRqtScoreType_AuraR¼RzR!R1RCR2R=RsR‡RÁR“(Rt    curPlayerRt    scoreTypet
scoreTimesR‘RˆR’RŠR‹RŒtaddIndextaddProgressListRR¦((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytaddPlayerScore¨s6
    "    #*
 
&     c Cs„|j}td|j|ƒ|_td|j|ƒ|_|jji|jd6|jd6ƒtjddƒ}|r||}|j|}|dkr||kr|d}tjddƒ}t|ƒ|krÞ||n|d}t    j
d    |||j f|j ƒ|j |ƒqntjd
dƒ}    xM|    D]E}
|jr7|j|
dkr7|jj|
dƒd|j|
<q7q7WdS( NiR´RµR†iiiiÿÿÿÿsE    Íæ¼Òÿ%sÁ¬É±Ôö¼Ó´ó½±¹±Ï×! addProgress=%s,superItemContribution=%stCrossBattlefieldSuccess(RµR"R´RzR!R1RCR2R=R.RuRsRqR‡R¶R'( RtaddCounttbefContKillCounttsuperContKillPerR‹RŒRÉRÊRt ckillCntListtckillCnt((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyt addKillCountÊs(    $
 
&     'cCsutd|j|ƒ|_|j|jd<tjd|j||jf|jƒ|jƒ}|rq|j|ƒndS(NiRssI    ¸üÐÂÍæ¼Ò´ó½±¹±Ï×: playerID=%s,addProgress=%s,superItemContribution=%s(R"RsRzR.RuRqRÁR…(RRR¦((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyR‡äs& (
RWRXRRÁRÃtScoreType_DefaultR)RËRÒR‡(((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyR¤ss     )        "    cCs5tjtƒ}|s1tƒ}tjt|ƒn|S(N(RDt GetGameFBDatatGameFBData_BattleWorldRt SetGameFBData(R€((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyRvís
    cCs]d}tjtƒ}|dkr*i}n||krC||}nt|ƒ}|||<|S(N(R¥RDRÔtGameFBData_FactionInfoRY(R[R¦tfactionInfoDict((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyR™ôs        
cCs]d}tjtƒ}|dkr*i}n||krC||}nt|ƒ}|||<|S(N(R¥RDRÔtGameFBData_PlayerInfoR¤(Rqt    playerObjtplayerInfoDict((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyRxs        
cCstjddƒS(NtCrossBattlefieldFBi(R1R2(((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyt GetBFStepTime scCs8tjddiƒ}g|jƒD]}t|ƒ^q"S(NtCrossBattlefieldCrystali(R1R2R R(tcrystalNPCIDPosDictR*((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytGetCrystalNPCIDList scCstjddƒS(NtCrossBattlefieldGuardi(R1R2(((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytGetGuardNPCIDListscCstjddƒS(NtCrossBattlefieldPersonBuffi(R1R2(((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytGetPersonBuffIDListscCstjddƒS(NtCrossBattlefieldFactionBuffi(R1R2(((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytGetFactionBuffIDListscCstjddƒS(NtCrossBattlefieldRoboti(R1R2(((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytGetRobotNPCIDListsc Csytjƒjƒ}tjtdƒtjtiƒtjtiƒt    ƒ}t
t j ƒt
t j ƒtjt|ƒtjƒ}tjƒjt jt jƒ}tjj|iƒ}|j|iƒ}x+|jƒD]\}}|d|j|<qÔWtjd||jf|ƒ||_tjddiƒ}    x;|    jƒD]-\}
} tjt|
ƒ| d| dƒq=Wt ƒdS(Nt    factionIDs,¿ªÆôÕ½³¡¸±±¾: hmNum=%s,callOpenPlayerInfo=%sRÞii(!R.R/R0RDRÖRÕR¥R×RÙRvR™RGRšR›t    SetFBSteptFB_Step_PrepareRERFRHRIRJRKR'RwRR4RR1R2t    NPCCommont SummonMapNpcRt rebornGurad( R#R6R€RRRRSRTRqtcallTeamRßR*tposInfo((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytOnOpenFBs*           %c    Cs¢tjddƒ}g}|r§tjƒ}tjƒjtjtj    ƒ}t
j j |iƒ}|j |iƒ}xR|j ƒD]#\}}|j|d|gƒq}Wntjdgtjdgg}g}tƒ}    tjddƒ}
xµ|D]­\} }| sí| t|    ƒksí| t|
ƒkr*qín|    | d} tj| ƒr^tjd| ƒqín|
| d} tj| | d| dd|ƒ|j| ƒqíW|S(    NRáiRéiiis ÊØÎÀÒÑ´æÔÚ£¬²»Öظ´¸´»î! npcID=%sRq(R1RCRDRER.R/RFRGRHRIRJRKR'RwRBRšR›RâR2R=tFindNPCByNPCIDRuRìRí(tisOnlyCallHaveGuardtguardFactionListRRRRSRTRqRïtrebornNPCIDListtguardNPCIDListtguardNPCPosListR[R*Rð((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyRî3s0     +!cCsQtjƒjdƒtjtdƒtjtdƒtjtdƒtj    ƒdS(Ni(
R.R/t SetPropertyIDRDRÖRÕR¥R×RÙt
ClearFBNPC(R#((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyt    OnCloseFBPs 
c     CsûtjƒrtS|jƒ}tjƒjtjtjƒ}x„t    j
j ƒD]s\}}|j |iƒ}xR|j ƒD]D\}    }
||
dkrvtj d|||    |
df|ƒtSqvWqKWtj|tjƒ} tj d|| f|ƒ| dkS(NtcallPlayerIDListsU    ÔÚÕ½³¡ÕÙ¼¯¶ÓÎéÀÃâ·Ñ½øÈë! zoneID=%s,hmNum=%s,buyPlayerID=%s,callPlayerIDList=%ss-    Õ½³¡Ê£Óà¿É½øÈë´ÎÊý! hmNum=%s,remainCnt=%si(R.t IsCrossServerR)t GetPlayerIDR/RFRGRHRIRJRKRwR'RutPlayerActivitytGetDailyActionrRemainCnt( RÆtmapIDtlineIDR#RqRRRRSRTt buyPlayerIDRït    remainCnt((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytOnEnterFBEventXs       cCstjS(N(t IPY_GameWorldt    cmeAccept(taskR#((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytOnChangeMapAskjsc
CsLtjddƒ\}}}}tj||||ƒ}    |    jƒ|    jƒfS(NRÜi(R1R2tGameMaptGetEmptyPlaceInAreaExtGetPosXtGetPosY(
RÆRtlineIdtipyEnterPosInfoR#trandPosXtrandPosYtminDisttmaxDisttposPoint((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytOnGetFBEnterPosnsc    Cs0tjƒ}|jƒ}|jƒ}tjƒjƒ}|ttgkrstjd||f|ƒt    j
|ƒdS|j dƒt    j |ƒ}t |ƒ}|jƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_||_|jtjƒ|_|jtjƒ|_ |jtj!ƒ|_"tjd|||j#f|ƒ|tkr³t$ƒt%d|tjƒj&ƒ}|j't(j)dt*|dƒt+ƒnl|tkrt$ƒt,d|tjƒj&ƒ}|j't(j-dt*|dƒt+ƒt.|||||ƒnt/t+|ƒdS(Ns4DoEnterFB... fbPropertyID=%s,fbStep=%s PlayerLeaveFBis1DoEnterFB... fbPropertyID=%s,fbStep=%s,faction=%siè(0R.t    GetGameFBt    GetFBStepRýR/R0RëtFB_Step_FightingR4R|t PlayerLeaveFBt SetFamilyIDt GetFightPowerRxtGetJobR¨tGetFaceR©t
GetFacePicRªtGetAccIDR§t GetPlayerNameRytGetOfficialRankR«R¬tNomalDictGetPropertytChConfigt$Def_PDict_Battlefield_HighScoreTodayR­t(Def_PDict_Battlefield_HighScoreTotalWeekR®t$Def_PDict_Battlefield_EnterCountWeekR¯R[RÝt Time_Preparet GetFBStepTickt Sync_TimeTickRt tttWaitStartR"R)t
Time_Fightt tttTowerTaketallotPlayerFactionR~(    RÆR#tgameFBtfbStepRqR6R¬R‚t notify_tick((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyt    DoEnterFBss>            %% %" cCs |tjkS(N(RJRo(Rq((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytIsSysCallBuyPlayeršscCs9|jƒ}tjd||jƒgƒtt|ƒdS(NtCrossBattlefieldSysCallBuy(t
GetFactionR|R}RR~R)(RÆR[((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytOnPlayerSysCallBuyžs  cCsºtjƒ}|jƒ}d}d}d}tƒ}i}    g}
|rÆtjƒjƒ} |j| ƒ|    |<x:tjtjgD]&} t    | ƒ} | j
ƒ|    || <q}Wt j j |iƒ|    tj<n|jrß|j|    |<nx]tjtjgD]I} t    | ƒ} | jrò| | jd<| j|    || <|
j| ƒqòqòW|rU|    j|ƒn|rÊ|jƒ}t|ƒ}|rŒ|jƒ|    |<n|jr¥|j|    |<n|    r¾tj||    ƒni|_nÀtjƒ}x±t|jƒƒD]}|j|ƒ}|s
qén|    j|dƒ|jƒ}t|ƒ}|rK|jƒ|    |<n|jrd|j|    |<n|    r}tj||    ƒni|_qéW|s¶i|_x|
D]} i| _q WndS(NR$sfactionInfo_%st
playerInfoR[(R.R/t    GetLineIDRvR•R%RGRšR›R™RrRJtg_fbRobotJobDictR'RDt Help_robotJobRRmRBR!RýRxRÃRzt Notify_FBHelptGetMapCopyPlayerManagertxrangetGetPlayerCounttGetPlayerByIndexR(R¥(t    isAllInfoRÆthelpExt    gameWorldRt worldInfoKeytfactionInfoKeyt playerInfoKeyR€thelpDicttfactionObjListR#R[R¦RqR‚t playerManagertindextplayer((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyR~¤sn                                     cCstdi|tj6ƒdS(NR?(R~RDR8(tcurNPCtlineRobotJobDict((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytOnRandomRobotJobìscCsdS(N((RÆR#((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytDoFBHelpòsc
Cstjƒ}|jƒ}|tkr(dS|jƒ}|jƒ}tj|ƒ}tjƒj    ƒ}tj
d||||f|ƒt |ƒ}d|_ |s dSt |ƒ}    td|    j|ƒ|    _||    jkrç|    jj|ƒntj
d||    j|    jf|ƒdS(Ns:DoExitFB... playerID=%s,faction=%s,fightPower=%s,fbStep=%sis=    faction=%s,onlineFightPowerTotal=%s,onlinePlayerIDList=%s(R.RRRRýR3R|RR/R0R4RxR°R™R"RaRbR;(
RÆR#R-R.RqR[R¬R6R‚R¦((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytDoExitFBös*                   cCsdS(N((RÆR#((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytDoPlayerLeaveFBscCsdtjƒjƒ}|tkr.t||ƒn2|tkrGt|ƒn|tkr`t|ƒndS(N(    R.RRRët__DoLogic_FB_PrepareRt__DoLogic_FB_FightingtFB_Step_LeaveTimet__DoLogic_FB_Leave(R#R.((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyt    OnProcesss     cCs°tƒtd|tjƒjƒ}|dkr5dStjt|ƒi}g}tƒtd}tj    ƒ}x›t
|j ƒƒD]‡}|j |ƒ}|j ƒ}    |    s®qn|jtjd|tƒtj|ƒ}
i|    d6|
d6|d6} |j| ƒ| ||    <qW|jdtjdƒƒtjƒjƒ} tjƒ} tjƒjtjtjƒ}tj j!| iƒ}|j!|iƒ}tj"d| ||t#|ƒf| ƒg}x†|j$ƒD]x}xo|dD]c}    |j|    ƒ|    |krøqÓn||    } | d}    | d}
| d}t%|    |
|||ƒqÓWqÂWxT|D]L} | d}    | d}
| d}|    |kr{qEnt%|    |
|||ƒqEWt&tƒtj'd    ƒdS(
NièiRqR¬RÆtkeysN×¼±¸¿ªÊ¼Õ½¶·£¬·ÖÅäÕóÓª: zoneID=%s,hmNum=%s,callTeamInfo=%s,playerCountTotal=%sRûtCrossBattlefieldStartFighting((RÝR&R.RR'RDRêRR*R:R;R<R=RýR(RR+R)R|RRBRLtoperatort
itemgetterR/R0RERFRGRHRIRJRKR'R4R=tvaluesR,R~R}(R.R#t remaindTickRÛtplayerInfoListt    fightTimeRFRGRÆRqR¬R5R6RRRRSRTRûRï((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyRO,s\%    
 &  
 
 
 
 
 
 
 
 c Csâtjƒ}tjƒjtjtjƒ}tj    j
|iƒ}|j
|iƒ}d}    x2|j ƒD]$}
||
dkre|
d}    PqeqeWtjƒj ƒ} t|ƒ} | j} | }|    rÊ|    } ntj|tjƒ}| rQ|rQtj|ƒ}xS|D]H}t|ƒ}|jr|j} tjd||| |f| ƒPqqWn| sáttjƒ}ttjƒ}t|jƒ}t|jƒ}||kr½tjtjtjgƒ} qá||krÕtj} qátj} n| | _|| _t| ƒ}|| _||jkr'| |j|<n|j|7_||j krX|j j!|ƒntjd||    | |||j|j |f| ƒ|t"kr»t#j$ddƒ}| j%||ƒn|rÞ|j&| ƒt'|t(ƒndS(NRûRés=Óë¶ÓÓÑͬһÕóÓª! playerID=%s,teamID=%s,faction=%s,memIDList=%ssˆ    ·ÖÅäÕóÓª: allotStep=%s,callFaction=%s,faction=%s,playerID=%s,fightPower=%s,onlineFightPowerTotal=%s,onlinePlayerIDList=%s,isAllot=%sR”i()RDRER.R/RFRGRHRIRJRKR'R¥RXR0RxR[tPlayerFuncTeamtGetPlayerTeamIDR"tDef_FBMapID_CrossBattlefieldtGetMemberIDListR4R™RšR›R=R^R?RœR°R¦RaRbRBRëR1RCRËt
SetFactiont__RandFactionRebornAreatFalse(RqR¬RÆt    allotStepR#RRRRSRTt callFactionRïR6R‚R[tisAllottteamIDt    memIDListtmemIDt memBattleObjRRžt jPlayerCountt ePlayerCountR¦t    initScore((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyR,osh 
                                           )  cCs€|jƒ}|tjkr/tjd|ƒtS|tjkr|t|ƒ}|jt    j
ddƒkr|t j |dƒtSnt S(Ns²»ÔÊÐíÏûºÄ»õ±ÒÔ­µØ½¡¿µ¸´»î! tCrossBattlefieldRebornitCrossBattlefieldItemRebornLimit(RýR"trebornType_HealthR.R>RbtrebornType_UseItemRxR³R1RCR|t
NotifyCodeR)(RÆt
rebornTypeRqR‚((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyt OnCanFBReborn¹s  cCsª|jƒ}t|ƒ}|tjkri|jd7_|j|jd<tjd|j|jf|ƒn0tjd|j|ƒd|_|j|jd<t    t
|ƒdS(NiR³s:¸üÐÂʹÓõÀ¾ß¸´»î´ÎÊý£¡ itemRebornCount=%s, ÇÒ²»ÖжÏÁ¬É±=%ss·ÇÔ­µØ¸´»î£¬ÖжÏÁ¬É±£¡  %siRµ( RýRxR"RpR³RzR.RuRµR~Rb(RÆRrRqR‚((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytOnPlayerRebornOverÈs           cCstS(N(R)(((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytOnPlayerRebornÙscCst|ƒdS(N(Ra(RÆt rebornPlaceR#((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytOnResetFBRebornPlacePosÞs
cCs]|jƒ}t||ƒ}|r0|\}}n|jƒ|jƒ}}|j||ƒdS(N(R3tgetRandFactionRebornPosR R tResetPos(RÆtincludeCrystalR[RðtposXtposY((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyRaâs cCsXg}tjddƒ}|rc|t|ƒkrc||d\}}}|j||ddgƒn|rtjddiƒ}tƒ}x{|jjƒD]g\}    }
|
|krµq—nt|    ƒ|krÍq—n|t|    ƒ} |j| d| dddgƒq—Wn|sdStj    |ƒ\} } }}t
j | | ||ƒ}|j ƒ|j ƒfS(NRÜiiiRÞi(R1R2R=RBRvR    RwR5R?RœR    R
R R (R[Rzt rebornPosListtfactionSafeAreaRandPosListtsafePosXtsafePosYR¡RßR€R*t ownerFactionRðRRRRR((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyRxís(     (c CsY|tjƒjƒ}tƒtd|}|dkrË|d}t|ƒt||ƒt||ƒt||ƒtjƒ}|j    t
j ƒ}||t krÇ|j t
j |ƒt|ƒtƒndSttjƒ}ttjƒ}|j}|j}    ||    krtjntj}
tjƒjƒ} tjd|
||    f| ƒt|
|ƒdS(NièisQ¸±±¾Ê±¼äµ½£¬»ý·Ö¸ßµÄÕóÓª»ñʤ£¡ winnerFaction=%s,jFactionScore=%s,eFactionScore=%s(R.RR'RÝR*t__refreshFactionHomet__RefreshPersonBufft__RefreshFactionBufft__RefreshBattlefieldEventtGetGameFBDictByKeyR"tDef_FB_NotifyFBHelpTicktFightRefreshIntervalt SetGameFBDicttrefreshCrossBattlefieldR~R™RGRšR›R\R/R0R4R–( R#tpassTickRYt passSecondsR-tlastTickRRžt jFactionScoret eFactionScoret winnerFactionR6((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyRPs2 
 
 
 
             cCsªtjddƒ}tjddƒ}tjƒ}xstjtjgD]_}t|ƒ}|j    sdqCnx;|j    ddd…D]#}|j
|ƒ}|sœq{nt |ƒ}||d\}    }
} tj |j ƒ|jƒ|    |
ƒ| kr|j    j|ƒd|_q{n|jr"||jdnd} | dkr:q{ntj|ƒ} tj|ƒ| kr•t| |dt| dƒƒ}tj|d|ƒn||_q{WqCWdS(    NRÜiiiÿÿÿÿiig@@gY@(R1RCR2R.R:RGRšR›R™RctFindPlayerByIDRxtGetDistR R R;R²tGameObjtGetMaxHPtGetHPRtroundt SkillCommont
SkillAddHP(R#trestoreHPPerBySecondR~t
copyMapMgrR[R¦RqRÆtbatObjRR€t
safeRadiustrestoreSecondstmaxHPt    restoreHP((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyR‚5s4       *      !c CsCtjddƒ\}}||kr(dStjddƒ}tƒ}|j|krVdS||j|dkrqdStƒ}|s„dStjddƒ}t|ƒ}|s¬dStj    |ƒ}    t
j |    |d|dƒsÜdSt j ƒjƒ}
|jd|_|j|krd|_n    ||_t jd|    |jf|
ƒdS(    NRãiiièiiis1ˢиöÈËbuff: randBuffNPCID=%s,personBuffCount=%s(R1R2RCRvR R Rät __GetRandPosR?RœRìRíR.R/R0Ru( R#RŒtstartRefreshSecondst    refreshCDt buffCountMaxR€t
buffIDListtposListRðt randBuffNPCIDR6((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyRƒ[s4               cCs&tjddƒ\}}||kr(dStƒ}|jr>dS||j|dkrYdStjƒjƒ}|jsÃt    ƒ}|s‡dSt
j |ƒ|_t j |jƒtjd|j|ƒn|jsÐdSttjƒ}ttjƒ}td|jƒtjgtd|jƒtjgg}    tj|    tjƒ}
tjddƒ} |
t| ƒkradS| |
d} t| ƒ} | s…dS| d| d}}|jjdƒ}tj|||ƒsÅdS|||g|_|j|jd    <tjd
||
|    f|ƒtjd ||gƒtƒdS( NRåiièsÕ½³¡ÕóÓªbuff˳ÐòÁбí: %si
iiiR sFË¢ÐÂÕóÓªbuff: randBuffNPCID=%s,nearFaction=%s,nearFactionWeightList=%ssCrossBattlefieldBuff_%s(R1R2RvR RR.R/R0RRætcopytdeepcopyR?R@RuR™RGRšR›R"R\R3R=R R(RìRíRR|R}R~(R#RŒR¡R¢R€R6R¤RRžtnearFactionWeightListt nearFactiont
allPosListR¥RðR{R|R¦((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyR„€sR                          cCs™|s
dStj|ƒtjƒ}xo|D]g\}}|j||ƒtkrTq*n|j||ƒ}|srq*n|jƒdkrŠq*n||fSWdS(Ni(R?R@R.tGetMaptCanMoveR)t    GetPosObjt GetObjCount(R¥tgameMapR{R|tmapObj((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyR ¶s   cCsitƒ}|j|jkr|jtkr‹||jkr=dStjddƒ}tj    |ƒ}|rtt
j |ƒn|j |ƒt ƒndS|jsœdS|jd\}}||kr¿dStjddƒd}|jrû|rû||j|krûdStjƒjƒ}ttjƒ}    ttjƒ}
d} |tkr±|jjƒ} |jjƒ} t| ƒdkr—| d} tjd| |jf|ƒq±tjd|j|ƒn| rºnW|    j|
jkrØtj} n9|    j|
jkrötj} ntjtjtjgƒ} |tkr2tjddƒ} nF|tkrStjd    dƒ} n%|tkrttjd
dƒ} ndSd}| r½tjddƒ}| t|ƒkr¬dS|| d}n|jjdƒ|}tjd || | |f|ƒ||_| |_ ||_|tkr:|tjdd ƒd|_n    d|_| re|ret!j"|| gƒndS( NtCrossBattlefieldScoreAuraiiR8iiès[Õ½³¡bossʼþ£¬½öÒ»·½ÕÙ¼¯£¬¹Ì¶¨Ë¢ÐÂÔÚ¿¿½ü¸ÃÕóÓªµÄλÖÃ: nearFaction=%s, callOpenPlayerInfo=%ss?Õ½³¡bossʼþ£¬×ß³£¹æÂß¼­ÅжϿ¿½üÕóӪλÖÃ! callOpenPlayerInfo=%sR9tCrossBattlefieldScoreWallsG¿ªÊ¼Õ½³¡Ê¼þ: eventNum=%s,refreshNPCID=%s,nearFaction=%s,refreshMark=%si(#RvRRRt EventNum_AuraRR1RCR.RòRìt    SetDeadExRVR~RR/R0R™RGRšR›R<RRXR=R4R\R?Rœt EventNum_WallR2R(RtNPCCustomRefresht SetNPCRefresh(R#RŒR€t    auraNPCIDtauraNPCt nextEventTimet nextEventNumt eventRefresCDR6RRžRªtcallFactioListt refreshNPCIDt refreshMarkteventRefreshMarkListR((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyR…Ës‚     
     " 
                                cCsF|jƒ}tƒ}||jkrBtjƒjƒ}|j}tj|ƒ|_    |j
ƒ|j ƒg|_ tj d|j||j |j    f|ƒ|tkr·tjd|gƒnt|tkrîtjddƒ}tjd||gƒn=|tkr+tjddƒ}tjd|||j    gƒn|j|ƒtƒndS(NsBÕ½³¡Ê¼þNPCË¢ÐÂ: eventNum=%s,npcID=%s,eventNPCPos=%s,eventNPCHP=%stCrossBattlefieldEventAuraR9itCrossBattlefieldEventBossR³tCrossBattlefieldEventWall(tGetNPCIDRvRR.R/R0RR“R•RR R RR4R´R|R}R<R1RCR¶R&R~(RIR#R*R€R6Rt factionScoret    wallScore((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyt DoFBRebornNPC*s(                  
c    Cs~|jƒ}|jƒ}|tjkrz|tjkrz||}}|jƒ}|tjddƒkrzt||ƒqzndS(NR²i(tGetGameObjTypeRtgotNPCt    gotPlayerRÅR1RCt__DoAuraNPCAddPlayerScore(    tattackertdefendertcurSkillR#t
atkObjTypet
defObjTypeRIRÆR*((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytDoBeAttackOverFs    cCs~|jƒ}tjddƒ}t|ƒdkr4dStj|d|dƒ}t|ƒ}|j||tƒt    t
|ƒdS(NR²iiii( RýR1R2R=R?trandintRxRËRÅR~Rb(RIRÆRqtauraScoreRangeRR‚((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyRÌRs   cCs`tƒtd|tjƒjƒ}|dkr5dStjƒtj|ƒtj    t
|ƒdS(Nièi( RÝt
Time_LeaveR.RR'RDtDoLogic_FBKickAllPlayertGameWorldProcesstCloseFBRêt FB_Step_Over(R#RY((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyRR`s% 
 cCst|||ƒtS(N(tonBattleObjKillOtherBattleObjR)(RÆRÎR#((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytDoFBOnKill_Playerksc#Csî| s| rdS|jƒ}|jƒ}|jƒ}|jƒ}||kr^||kr^dS|tjkrˆ|jƒ}|jƒ}nR|tjkrÖtj|ƒ}|jƒ}|jt    j
ƒj t j ƒƒ}ndS|tjkrø|jƒ}    n%|tjkrtj|ƒ}    ndS| s7|     s7||    kr;dSt jƒjƒ}
d} |t jƒjƒd} tjddƒ} xH| D]@\}}| |dkr†|} t jd| |f|
ƒPq†q†Wtƒ}|tjkrÔ|}d}|| 7}t jd||||f|
ƒ||jks3t|ƒrftjddƒ}||7}t jd    ||
ƒnt|ƒ}d
}|jrœ||jkrœ|j}nd|_d|_|jd
ƒ|j||t|ƒn t jd ||||f|
ƒd}t|ƒ}t|    ƒ}|tjkr.|| 7}n|tjkrœx\t |j!ƒD]H\}}||krMtjd dƒ}|t"|ƒkr“||nd}||7}t jd ||f|
ƒtjd dƒ}|t"|ƒkrj|tjkrj||}t jƒj#ƒ}t j$ƒj%ƒ} |j&ƒ}!|j'ƒ}"t(j)||||    |j*ƒ|| |!|"|g    ƒn|tjkr‘|dkr‘d
|_+nPqMqMWn|j,|ƒ|tjkrÈt-t.|ƒn|tjkrêt/|||ƒndS(NiièR”ii<s&»ù´¡»÷ɱ·Ö: baseKillScore=%s, %s·ÖÖÓÄÚs>Íæ¼Ò»÷ɱ¶ÔÊÖ! playerID=%s,atkFaction=%s,defObjType=%s,defID=%sis.    ÕÙ¼¯È˶îÍâ»÷ɱ·Ö: callPlayerKillScoreEx=%sis=»úÆ÷ÈË»÷ɱ¶ÔÊÖ! atkID=%s,atkFaction=%s,defObjType=%s,defID=%stCrossBattlefieldScoreKings;    ¶Ô·½ÊÇ»ý·ÖÍõ£¬ÕóÓª¶îÍâ»ñµÃ»ý·Ö£º  index=%s,kingScore=%s(0tGetIDRÉRRËtGetNameR3RÊRìtdecodeRGtDef_Game_Character_EncodingtencodeR.tGetCharacterEncodingR/R0RR'R1R2RuRvRR1RCRxR·R¸RÒRËtScoreType_KillPlayerR™RAR`R=R6R¬tGetMapIDR R R|R}RRºR“R~RbtDoDropPersonBuffOnKilled(#tatkObjtdefObjR#tatkIDtdefIDRÐRÑtatkNamet
atkFactiont
defFactionR6t baseKillScoretfbFightSecondstkillPlayerScoreTimeListt fbFightTimest    killScoreR€Rqt playerScoretcallPlayerKillScoreExt atkBattleObjRÈRÆt atkFactionObjt defFactionObjRGtkingIDtkillScoreKingScoreListt    kingScoretkillScoreKingNotifyListtmsgMarkRtdefMapIDtdefPosXtdefPosY((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyRÚos¤      $    
    
                   "
!
  4   cCs½tjƒ}|jƒtkr"dStj|ƒ}|s;dS|jƒtjkr¹|j    ƒ}t
|ƒ}||j kr¹|j j |ƒtj d|||j ftjƒjƒƒq¹ndS(NsF»úÆ÷È˱»»÷ɱ£¬ÕóÓª»úÆ÷ÈËIDÒÆ³ý£º faction=%s,objID=%s,robotObjIDList=%s(R.RRRRìR3tGetTypeR"tntRobotRÝR™RlR;RuR/R0(RIR-R[tobjIDR¦((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyt DoFB_NPCDeadæs       )c'
Cshtjƒjƒ}tjddƒ}tƒ}x|jjƒD] \}}||kr[q=n||}|jj    ||ƒ}||d}    t
|t |    ƒƒ}
||j|<|
dkr½q=nt |ƒ} | j r|| jkrt
|
dt
| j dƒƒ}
nd| _ d| _tjd||||    |
f|ƒ| j|
tƒq=Wtjddƒ} tjdd    ƒ} t| ƒ}tjd
dƒ}tjd dƒ}tjd d    ƒ}tjƒ}|jƒ}xtjtjgD]m}t |ƒ} |rØt| jƒt| jƒ|krØ|t|ƒkrØ||d}t|ƒ}|rØtj||d|dƒ}|rÕ|jtƒ|j ƒ}|| jkrÒ| jj!|ƒtjd ||||| jf|ƒqÒqÕqØn| j"}| j#j$ƒ| _%| j%j&d t'j(ddƒdtƒ||d\}}}g}g}xü| j%D]ñ}|j)} |j*| ƒ}!|!soqEn|j+r£|j,t-d||j+ƒ7_,||_+ntj.|!j/ƒ|!j0ƒ||ƒ|krò| | j1krò| j1j!| ƒqòn|j2| krEt|ƒ|krE|j!| ƒ|j!|!|gƒqEqEW||krLqßntjd|||f|ƒx2t3|ƒD]$\}"}#|#\}!}|!j4ƒ} |"t| ƒkr¶| |"nd}$| |kra|j5| ƒ}%|"|%krtjd|"| f|ƒqvn|%t| ƒkr| |%nd}&|&ratjd|%|&| f|ƒt6j7|!|&|ƒqan|$rvtjd|"|$| f|ƒt8j9|!|$|ƒqvqvWx¢t3|ƒD]”\}%} | |krÉq«n|j*| ƒ}!|!säq«n|%t| ƒkr| |%nd}&|&r«tjd|%|&| f|ƒt6j7|!|&|ƒq«q«W|| _"qßW|sZdSt:|ƒdS(NRÞig@@iigˆÃ@sb¶¨Ê±×ÊÔ´»ý·Ö: npcID=%s,ownerFaction=%s,awardScorePerSecond=%s,awardSeconds=%s,awardFactionScore=%sRÜiRÜRçsPÐÂÔöÕóÓª»úÆ÷ÈË: faction=%s,robotNPCID=%s,robotID=%s,posInfo=%s,robotObjIDList=%sRTR\R]R˜s@    ÕóÓª»ý·ÖÍõ±ä¸ü: faction=%s,befKingIDList=%s,aftKingIDList=%ss<        »ý·ÖÍõÃû´Î²»±ä£¬²»ÐèÒª±ä¸übuff! index=%s,playerID=%ssH        »ý·ÖÍõÃû´Î±ä¸ü! É¾³ý¾Ébuff! befIndex=%s,delBuffID=%s,playerID=%ssE        »ý·ÖÍõÃû´Î±ä¸ü! Ìí¼ÓÐÂbuff! index=%s,addBuffID=%s,playerID=%ssF        »ý·ÖÍõ±»¼·µô! É¾³ý¾Ébuff! befIndex=%s,delBuffID=%s,playerID=%s(;R.R/R0R1R2RvR    RwR
R'RR–R™ReRfRuR“RbRCR=R:R<RGRšR›RbRlRxRìRítSetIsNeedProcessR)RÝRBR`R^RXR_RLRVt
attrgetterRqR‘R°R±R"R’R R RcR\RARýRGt    BuffSkilltDelBuffBySkillIDR—tAddBuffBySkillType_NoRefurbishR£('R#t checkVictoryR6tawardScorePerSecondDictR€R*RtawardScorePerSecondt lastAwardTickt awardSecondstawardFactionScoreR¦tscoreKingScoreMintscoreKingBuffIDListtscoreKingCountR~trobotNPCIDListtbattleObjBaseCountRštcopyPlayerCountR[t
robotNPCIDRðtrobotNPCtrobotIDt befKingIDListRR€Rœt aftKingIDListtaftKingObjListR›RqRÆRGtobjInfot    addBuffIDtbefIndext    delBuffID((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyRŠøs     
   $                :       )    %         *!    "  " " 
cOCsötjƒjƒ}tjƒ}tjƒ}tjƒ}|jƒ}|tkrotj    d|||f|ƒdStj
d|||f|ƒt |t ƒt tƒtjddiƒ}d„|jƒDƒ}|ràt|ƒnd}    tƒ}
tƒtd} tjƒ} g} g}xrt| jƒƒD]^}| j|ƒ}|jƒ}|sXq+nt|ƒ}|jssq+n|j|j|gƒq+Wd}tj|d    ƒ}tj
d
|
j||f|ƒ|rÿt|ƒ}|j d 7_ |j!}| j|ƒn|
j"}t#j$j%|iƒ}|j%|iƒ}g}x%|j&ƒD]}|j'|d ƒqBWtj
d |||f|ƒtjƒ}i tj(ƒj)ƒd6|j*ƒd6|j+ƒd6|d6|d6|d6|d6|
jd6|d6|
j,d6|d6|d6t-t.j.ƒƒ|
j/d6}g}xút0j1t0j2gD]æ}t3|ƒ}g} xT|j4|     D]E}| ji|j!d6|j5d6|j6d6|j7d6|j8d6ƒqWWd}!xB|
j9jƒD]1\}"}#|#|kr¶t|"ƒ}$|$j!}!Pq¶q¶W|ji|d 6| d!6|!d"6|j:d#6ƒq1Wt-|tjƒj;ƒd$ƒ}%i|d6|d%6|%tj<6|d&6}&d;\}'}(g})xØt0j1t0j2gD]Ä}t3|ƒ}|j6}*||kr²d nd    }+|j=},|j>}-tj
d'||*|+t?|j4ƒ|j@|jA|,|-f|ƒ|-r| j|-ƒn|+rI|,rI|,d    }'t|'ƒ}.|.j!}(ng}/x­tB|j4d ƒD]™\}0}|jC}|j6}1|j5}2|jD}3|jE}4|jF}5|j!}6|jG}7|jH}8|jI}9|jJd}:tj
d(|0||1|jK|:|jLf|ƒ||
j9krd nd    };||kr5|; r5d nd    }<tMjN|tOjPƒ}=|j7|jQ|jR|jS|jT|jU|j |jV|jW|j8|jXf \ }>}?}@}A}B}C}D}E}F}G}H||2|3|4|5|6|+||0|1|7|8|9|=|;|<|>|?|@|A|B|C|D|E|F|G|Hg}I|)j|Iƒ|/ji    |d)6|jLd*6|jKd+6|1d6|Cd,6|Hd-6|=d.6|Dd/6|jd06ƒ| jY|ƒ}J|Jsqbn|JjZt[j\d    | tƒd    }K|&j]i|0tj^6|1d6|7d16|:d26|d 6ƒtj_|JtOjP|K|+|&ƒqbWi|d 6|j6d6|j`d36|jad46|j>d56|/d66}L|L|d7|<q…Wtj
d8|'|ƒ|
j}Mtb||||||M||| |'|(|)g ƒ}Ntjcƒjdd    d    d    d9|Nt?|Nƒƒtejfd9|ƒtjgth|ƒtijj|d:ƒdS(<NsG¿ç·þÕ½³¡´¥·¢Öظ´½áË㣬²»´¦Àí£¡ zoneID=%s,funcLineID=%s,winnerFaction=%ss7¿ç·þÕ½³¡½áË㣡 zoneID=%s,funcLineID=%s,winnerFaction=%stCrossBattlefieldAwardicSs%i|]\}}|t|ƒ“qS((R(t.0tktv((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pys
<dictcomp>s    iièRZisW×îÖÕ½áËã¶îÍâËæ»ú´ó½±ÔÚÏßÍæ¼Ò! superItemInfo=%s,finalSuperItemPlayerID=%s,superWeight=%siRûs)zoneID=%s,hmNum=%s,allCallPlayerIDList=%sRt    realMapIDt    copyMapIDRRt
funcLineIDR6RRtfinalSuperItemPlayerIDR    RTRtfightTimeTotalRyR¨R\R´R¿R[trankPlayerListtcallPlayerNameRkg@@tfactionInfoListtfinalSuperItemPlayerNamesž½áËãÕóÓª£¡ faction=%s,factionScore=%s,isWinner=%s,playerCount=%s,onlineFightPowerTotal=%s,onlinePlayerIDList=%s,scoreKingIDList=%s,factionSuperItemPlayerID=%ssG     rank=%s,playerID=%s,score=%s,fightPower=%s,onlineTimes=%s,accID=%sRqR§R¬R¼RÀRfR{RsR­R±RhRiRjt drPlayerLists
faction_%ss"±¾³¡×îÖÕ½áËã»ý·ÖÍõ: scoreKingID=%stCrossBattlefieldOveri(is(kR.R/R0RDREt GetCrossDynamicLineMapFuncLineIDRRRR>R4RŠRbR~R)R1R2RwR"RvRÝRÕR:R;R<R=RýRxRsRBR3RR{RyRRJRKR'RXtextendR¬Rät GetRealMapIDt GetCopyMapIDR    RRRRGRšR›R™R_R¨R\R´R¿RRkR't Over_costTimeR`RjR=RaRbRARqR©RªR«R­R®R¯R±R¬R§R\R]R"R^R¶R¹RºR»R¼R½R¾RÀR‘R(Rt tttLeaveMapR!t    Over_rankt NotifyFBOverRhRiR5tGetPlayerManagertGameServer_QueryPlayerResulttDataRecordPackt SendEventPackRêRQR×t$GameServer_DynamicLineMapStateChange(ORR#R6RRR$R-R.twinnerOrderAwardDicttwinnerOrderIntAwardDictt syncRankCountR€t    leaveTimeRštsuperItemPlayerIDListt superWeightRGRÆRqR‚R*R%tsuperPlayerObjRRSRTtallCallPlayerIDListRïR@tdrDictR)R[R¦R'R(t callPlayerIDRdt callBattleObjtcostTimetoverDictt scoreKingIDt scoreKingNametbattlePlayerListRÆtisWinnerR`tfactionSuperItemPlayerIDt scoreKingObjR+trankR\R¨R©RªR«RyR­R®R¯R±t
isCallOpentisCalledRftkillCntR¶R¹RºR»R¼R{R½R¾R¿RÀR5RHRt drFactionInfoRtmsgInfo((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyR–|s      
                         0$ '       
                  2 
                                               #3 $3 
    0(c CsEtjƒ}|jƒ}|tkr8tj|dƒtS|jƒ}tjd||j    ƒƒ|t
ƒkr·t ƒ}|j j |ƒ}|jƒ}||krAtj|dƒtSnŠ|tjddƒkrAt ƒ}tjddƒd}    ||j}
|
|    krAttj|    |
dƒƒ} tj|d    | gƒtSntS(
NtNotFightStepCanNotCollectsOnCanCollect npcID=%st!CrossBattlefieldCollectOwnerLimitR³iiièg@@tCrossBattlefieldWallTimeLimit(R.RRRR|RqRbRÅRuRýRàRvR    R'R3R1RCRRtmathtceilR)( RÆRIR#R-R.R*R€RR[t    collectCDR‹t waitSeconds((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyt OnCanCollect's.                cCsG|jƒ}|tƒkrCtƒ}|j|dƒrCtƒqCndS(Ni(RÅRàRvR,R~(RÆRIR*R€((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytOnBeginCollectIs       cCsb| st|dƒ rdS|jƒ}|tƒkr^tƒ}|j|dƒr^tƒq^ndS(NRÅiÿÿÿÿ(thasattrRÅRàRvR,R~(RÆRIR*R€((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyt OnExitCollectRs      cCs†tjddƒ}|sdS|jƒ}|tjkrC|jƒnd}g}xŸ|D]—}tjƒj|ƒ}|s}qVn|j    ƒ}    |    s•qVnt
j ||    ƒd}
|
s·qVn|
j ƒrà|j |g|
j ƒƒqV|j|ƒqVWd} |jƒ|jƒ} } xo|r| dkr| d7} tj| | dƒ\}}|sVqn|jdƒ}tj|||d|ƒqWdS(NtCrossBattlefieldDropPersonBuffiiidiRq(R1R2RÉRRËRýR.t GetGameDatatFindNPCDataByIDt    GetSkill1R—t FindBuffByIDtGetLayerR.RBR R R    tGetNearbyPosByDisR(RìRí(Ræt    defPlayerR#tdropPersonBuffNPCListRÐRqt dropNPCIDListR*tnpcDatatbuffIDtfindBufftcountRýRþtdropXtdropY((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyRå\s: !   
cCsl|jtjƒ}|stS||jƒkr2tStjddƒd}||jƒ}||krhtStS(NR^iiè(    t GetDictByKeyR"t!Def_NPC_Dict_SummonMapNPCPlayerIDR)RýR1RCt GetActionTickRb(RÆRIR#tsummonPlayerIDt protectTickR‹((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytOnCanMoveTouchNPCs cCsL|jƒ}tjd||jƒƒ|tƒkrHt|||ƒndS(NsOnMoveTouchNPC npcID=%s(RÅR.RuRýRät__OnCollectOK_PersonBuff(RÆRIR#R*((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytOnMoveTouchNPCs
 cCsÙ|jƒ}|sdS|jƒtjkr/dStjƒj|jƒƒ}tj    ||ƒ|j
ƒ}|t ƒkrˆt |||ƒnM|t ƒkrªt|||ƒn+|tjddƒkrÕt|||ƒndS(NR³i(t GetActionObjRÉRRÊR.t GetNPCManagert GetNPCByIndextGetIndextAICommontClearPlayerPreparingRÅRàt__OnCollectOK_CrystalRæt__OnCollectOK_FactionBuffR1RCt__OnCollectOK_EventWall(RÆR*R#ttagObjRI((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyt OnCollectOKšs  c Cs7|jƒ}|jƒ}|jƒ}t|ƒ}tjƒjƒ}|sLdS|j}tƒ}    |    j    j
|ƒ}
|
|kr€dS||    j    |<||    j |<|    j    |    j d<|j d7_ tjd|||
||f|ƒtjddƒ} |j|| tƒtj|jƒd|jgd|jgƒtƒdS(NR    isJÍæ¼ÒÕ¼ÁìË®¾§: objID=%s,npcID=%s,lastOwnerFaction=%s,playerID=%s,faction=%sRÞitCrossBattlefieldOccupiedSelftCrossBattlefieldOccupiedOther(RÝRÅRýRxR.R/R0R[RvR    R'R
RR¿R4R1RCRËtScoreType_CollectCrystalR|tFBFactionNotifyR3RyR~( RÆRIR#RR*RqR‚R6R[R€tlastOwnerFactionRÄ((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyR|¸s0                   c Csw|jƒ}tƒ}|jdkr7|jd|_n|jsL||_n|jƒjdƒ}|rs|jƒnd}|jƒ}tj    d|||jf|ƒt
|ƒ}|j d7_ |rèt j |||t|dtƒn|dkrftjƒj|ƒ}    |    rf|    jƒ}
|    jdƒjdƒ|_||
|_tj    d|j|
f|ƒqfntj|ƒdS(Niis7²É¼¯¸öÈËbuff: npcID=%s,addSkillID=%s,personBuffCount=%staddForcei̞×s@»ñµÃ»÷É±Íæ¼Ò¶à±¶»ý·Ö¸£Àû: killPlayerAddScoreTimes=%s,buffTime=%s(RÅRvR R tGetSkillManagertGetSkillByIndext
GetSkillIDRýR.RuRxR¾t
SkillShellt__DoLogic_AddBuffRbR)R_tGetSkillBySkillIDt GetLastTimet    GetEffecttGetEffectValueR·R¸RìRµ( RÆRIR#R*R€taddSkillt
addSkillIDRqR‚t    buffSkilltbuffTime((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyRtÙs2                "        cCs™|jƒ}tƒ}|jrJ||jdkrJg|_g|jd<n||_|jƒjdƒ}|rz|jƒnd}|sŠdStj    ƒj
|ƒ}|s©dS|j ƒ}t j ddƒ}    t|ƒ}
|
jd7_|
j||    tƒ|
j} | tjkrtjntj} t| ƒ} | }|dkrF| }ntjd||| | |f|ƒ| |
j||g}tjd    ||ƒt|ƒ}t||||ƒ|jƒ}ttjƒƒt|d
ƒ}||g|_|j|j d <|d kr3|j!dƒj"dƒ|_#|||_$nt j d dƒ}x9| j%j&ƒD](}
|
j'| j(krU|
j)|ƒqUqUWt*ƒt+j,|ƒdS(NiR RåiiiΞ×iϞ×sP²É¼¯ÕóÓªbuff: npcID=%s,addSkillID=%s,faction=%s,tagFaction=%s,gainBuffFaction=%ssCrossBattlefieldBuffOK_%sièRdiО×R†i(iΞ×iϞ×(-RÅRvR RRR‡RˆR‰R.R_RŒRýR1RCRxR½RËtScoreType_CollectFactionBuffR[RGR›RšR™RuRyR|R}tdoAddFactionPlayerBuffRRRRdRmRŽRReRfR^RXRqRbR‡R~RìRµ(RÆRIR#R*R€RR‘R’RqRÄR‚R[t
tagFactionR¦tgainBuffFactiont    paramListtgainBuffFactionObjR“tendTimetaddContribution((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyR}ýsX                   !               c        Cs²tjƒ}xK|jD]@}|j|ƒ}|s7qntj|||t|dtƒqWxQ|jD]F}tj    |t
j ƒ}|s‹qdntj|||t|dtƒqdWdS(NR†( R.R:RbR‘RŠR‹RbR)RltGetObjRRÊ(    RÆR¦R’R#RšRqRHRR((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyR•?s ##c CsB|jƒ}tj||ƒtƒ}||_tj|ƒ|_|jƒ}|j    ƒ}t
j d|||j|f|ƒt j ddƒ}t|ƒ}|jd7_|j||tƒt|ƒ}    t j ddƒ}
|    j|
ƒtjd||jƒ||
gƒ|jdkr'|j|ƒn|j|jd<tƒdS(    Ns9Íæ¼Ò²É¼¯»ý·Öǽ: npcID=%s,faction=%s,eventNPCHP=%s,tick=%sR³iiitCrossBattlefieldWallCollectOKiR(RÅtChNPCt OnCollectEndRvRR“R•RRýR3R.R4R1RCRxRÀRËtScoreType_WallR™R“R|R}RRVRR~( RÆRIR#R*R€RqR[RËR‚R¦R((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyR~Ps*           #   "cCsl|jƒ}tj|ƒ}|rh|tƒkrCt|||ƒqh|tƒkrht|||ƒqhndS(N(RÅRìR3Rât__OnGuardKillOtherPlayerRèRÚ(RIRÆR#R*t
npcFaction((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytDoFBOnNPCKill_Playerls cCs´|jƒ}tj|ƒ}tjd|jƒ|fƒ|r…|tƒkr`t|||ƒq°|tƒkr°t    |||ƒq°n+|t
j ddƒkr°t |||ƒndS(NsDoFB_Player_KillNPC %s kill %sR9i( RÅRìR3R.RuRÝRât__OnPlayerKillOtherFactionGuradRèRÚR1RCt__OnPlayerKillEventBoss(RÆRIR#R*R¢((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytDoFB_Player_KillNPC|s cCsA|jƒtjkr=|jƒtjkr=t|||ƒndS(N(RÿR"RRÚ(RÍRIR#((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytDoFB_Npc_KillNPCs*c
CsÔ|jƒ}tj|ƒ}|jƒ}||kr7dStjddƒ}t|ƒ}|jd7_|j||tƒt    j
|jƒd|j gd|j gƒt |j ƒ}tjddƒ}    |j|    ƒdS(NtCrossBattlefieldGuard2itCrossBattlefieldKillGuardSelftCrossBattlefieldKillGuardOtherRái(RýRìR3R1RCRxR»RËtScoreType_KillGuardR|R„RyR™R[R“(
RÆRIR#Rqt guardFactionR–tguardKillGuardScoreR‚R¦tkillGuardScore((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyR¤’s     c Cs|jƒ}tj|ƒ}|jƒ}|jƒ}|jtjƒ}| sX||kr\dStjƒj    ƒ}tj
ƒ}    |    j |ƒ}
t j ddƒ} tjd||||f|ƒt|ƒ} | jdƒ| j|
| tƒ|
rýtt|
ƒndS(NRáisFÊØÎÀ»÷É±Íæ¼Ò: npcID=%s,guardFaction=%s,ownerPlayerID=%s,tagPlayerID=%si(RÅRìR3RýRnR"RoR.R/R0R:R‘R1RCRuRxRÒRËtScoreType_GuardKillPlayerR~Rb( RIt    tagPlayerR#R*R¬R–t tagPlayerIDt ownerPlayerIDR6Ršt ownerPlayertguardKillPlayerScoreR‚((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyR¡¥s&          cCsK|jƒ}|jƒ}|jƒ}tjƒjƒ}ttjƒ}ttj    ƒ}tj
d|||f|ƒtj
d|j |j f|ƒtj
d|j |j f|ƒd}    |j |j krÒ|}    ne|j |j krí|}    nJ||j kr|n|}    |    j d7_ |    j |    jd<tj
d|ƒtj
d|    j |ƒtjddƒ}
|    j|
tƒtjdd    ƒ} xw||gD]i} x`| jjƒD]O} t| ƒ}| j |    j krÛ|jd
7_n|j|| td tƒq¥WqWtjd ||    j |
| gƒtƒ}|j|ƒt|ƒsGtƒndS( Ns=»÷ɱÌìµÀÖ®ÑÛBoss: npcID=%s,killerPlayerID=%s,killerFaction=%ss    faction=%s,hurtBossValue=%sidRgs$    É˺¦Ïàͬ£¬¹éÊô×îºóÒ»»÷Íæ¼ÒÕóÓª! s    Boss¹éÊôÕóÓª: faction=%sR9iiiR‘tCrossBattlefieldBossKilled(RÅRýR3R.R/R0R™RGRšR›R4R[RgR¥RmR1RCR“RbRhR RxR¹RËtScoreType_HurtBossR|R}RvRVR£R~(RÆRIR#R*tkillerPlayerIDt killerFactionR6RRžRtownerFactionScorethurtPlayerScoreR¦RqR‚R€((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyR¥¾sF                  !      
cCsh|jƒ}|jƒ}tƒ}||jks<t|ƒrd|tjddƒkrdtjddƒSdS(NR9ii(RÅRýRvRR1R1RC(RÆRIR*RqR€((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytGetFBPlayerHurtNPCMultiValueês      cCsà|jƒ}|jƒ}|tjddƒkrÜtƒ}tj|ƒ|_|jƒ}t    |ƒ}|j
||_
|j
|j d<|j j |dƒ||j |<tjd|||j
|j |tj|ƒf|ƒndS(NR9iRgisZÍæ¼Ò¹¥»÷boss: faction=%s,hurtHP=%s,factionHurtBossValue=%s,playerHurtBossValue=%s,npcHP=%s(RÅRýR1RCRvR“R•RR3R™RgRmRhR'R.Ru(RÆRIthurtHPR*RqR€R[R¦((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytDoFB_Player_HurtNPCøs             0cCs°tjƒ}|jƒtkr"tS|jƒ}|jƒ}|tjkr¬|tjkr¬tj    |ƒtj    |ƒkrztS|j
ƒt j kr¨|j
ƒt j kr¨t StSt S(N(R.RRRRbRÉRRÊRìR3RÿR"RR)(RÍRÎR-RÐRÑ((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytCheckCanAttackTagObjInFB    s   *cCstS(N(Rb(t    atkPlayerRe((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytDoFBAttackHasPunish6    si((((€RDR.RìRJRR1RþR×R·R7R\R|RGR—RŠRR"RzR“R    RžRVR?RR§RVtranget FB_Step_OpenRëRRQRÙR&R*RÕRˆRÕR×RÙR:R´R<R¶RÓRãRƒR”R¯R¶RÅR R«RRYR£R¤RvR™RxRÝRàRâRäRæRèRñRîRúRRRR0R1R4RbR¥R~RKRLRMRNRSROR,RsRtRuRwR)RaRxRPR‚RƒR„R R…RÈRÒRÌRRRÛRÚRRŠR–RZR[R]RåRsRuR€R|RtR}R•R~R£R¦R§R¤R¡R¥R»R½R¾RÀ(((sŒE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyt<module>sÔ                               'u…    !z                                                                  '        H                        C    J                 )        &    %    6        _                          w     „    «    "            
    %        
        !    $    B                                ,            '