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
ç—5hc    @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‹D:\SG_ServerCode\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‹D:\SG_ServerCode\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‹D:\SG_ServerCode\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‹D:\SG_ServerCode\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‹D:\SG_ServerCode\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‹D:\SG_ServerCode\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‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyt setEventEndÀs#                         (    t__name__t
__module__RR%R&R,RRRV(((s‹D:\SG_ServerCode\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‹D:\SG_ServerCode\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‹D:\SG_ServerCode\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‹D:\SG_ServerCode\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‹D:\SG_ServerCode\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‹D:\SG_ServerCode\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‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyRHs#(    RWRXRRrR…RŽR)R“R(((s‹D:\SG_ServerCode\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‹D:\SG_ServerCode\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‹D:\SG_ServerCode\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‹D:\SG_ServerCode\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‹D:\SG_ServerCode\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‹D:\SG_ServerCode\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‹D:\SG_ServerCode\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‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyR‡äs& (
RWRXRRÁRÃtScoreType_DefaultR)RËRÒR‡(((s‹D:\SG_ServerCode\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‹D:\SG_ServerCode\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‹D:\SG_ServerCode\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‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyRxs        
cCstjddƒS(NtCrossBattlefieldFBi(R1R2(((s‹D:\SG_ServerCode\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‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytGetCrystalNPCIDList scCstjddƒS(NtCrossBattlefieldGuardi(R1R2(((s‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytGetGuardNPCIDListscCstjddƒS(NtCrossBattlefieldPersonBuffi(R1R2(((s‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytGetPersonBuffIDListscCstjddƒS(NtCrossBattlefieldFactionBuffi(R1R2(((s‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytGetFactionBuffIDListscCstjddƒS(NtCrossBattlefieldRoboti(R1R2(((s‹D:\SG_ServerCode\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‹D:\SG_ServerCode\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‹D:\SG_ServerCode\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‹D:\SG_ServerCode\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‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytOnEnterFBEventXs       cCstjS(N(t IPY_GameWorldt    cmeAccept(taskR#((s‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytOnChangeMapAskjsc
CsLtjddƒ\}}}}tj||||ƒ}    |    jƒ|    jƒfS(NRÜi(R1R2tGameMaptGetEmptyPlaceInAreaExtGetPosXtGetPosY(
RÆRtlineIdtipyEnterPosInfoR#trandPosXtrandPosYtminDisttmaxDisttposPoint((s‹D:\SG_ServerCode\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‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyt    DoEnterFBss>            %% %" cCs |tjkS(N(RJRo(Rq((s‹D:\SG_ServerCode\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‹D:\SG_ServerCode\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‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyR~¤sn                                     cCstdi|tj6ƒdS(NR?(R~RDR8(tcurNPCtlineRobotJobDict((s‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytOnRandomRobotJobìscCsdS(N((RÆR#((s‹D:\SG_ServerCode\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‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytDoExitFBös*                   cCsdS(N((RÆR#((s‹D:\SG_ServerCode\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‹D:\SG_ServerCode\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‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyRO,s\%    
 &  
 
 
 
 
 
 
 
 c Cstjƒ}tjƒjtjtjƒ}tj    j
|iƒ}|j
|iƒ}d}    x2|j ƒD]$}
||
dkre|
d}    PqeqeWtjƒj ƒ} t|ƒ} | j} | }|    rÊ|    } ntjƒj|tjƒ}tjƒj|ƒ}| ro|ro|ro|jƒ}xS|D]H}t|ƒ}|jr |j} tjd||| |f| ƒPq q Wn| sÿttjƒ}ttjƒ}t|jƒ}t|jƒ}||krÛtjtjtjgƒ} qÿ||krótj} qÿtj} n| | _|| _t| ƒ}|| _ ||jkrE| |j|<n|j!|7_!||j"krv|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[t    DBDataMgrtGetFuncTeamMgrtGetPlayerTeamIDR"tDef_FBMapID_CrossBattlefieldt GetFuncTeamtGetMemberIDListR4R™RšR›R=R^R?RœR°R¦RaRbRBRëR1RCRËt
SetFactiont__RandFactionRebornAreatFalse(RqR¬RÆt    allotStepR#RRRRSRTt callFactionRïR6R‚R[tisAllottteamIDtfuncTeamt    memIDListtmemIDt memBattleObjRRžt jPlayerCountt ePlayerCountR¦t    initScore((s‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyR,osj 
                                           )  cCs€|jƒ}|tjkr/tjd|ƒtS|tjkr|t|ƒ}|jt    j
ddƒkr|t j |dƒtSnt S(Ns²»ÔÊÐíÏûºÄ»õ±ÒÔ­µØ½¡¿µ¸´»î! tCrossBattlefieldRebornitCrossBattlefieldItemRebornLimit(RýR"trebornType_HealthR.R>RdtrebornType_UseItemRxR³R1RCR|t
NotifyCodeR)(RÆt
rebornTypeRqR‚((s‹D:\SG_ServerCode\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"RsR³RzR.RuRµR~Rd(RÆRuRqR‚((s‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytOnPlayerRebornOverÉs           cCstS(N(R)(((s‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytOnPlayerRebornÚscCst|ƒdS(N(Rc(RÆt rebornPlaceR#((s‹D:\SG_ServerCode\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‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyRcã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[R}t rebornPosListtfactionSafeAreaRandPosListtsafePosXtsafePosYR¡RßR€R*t ownerFactionRðRRRRR((s‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyR{î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‹D:\SG_ServerCode\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ÆtbatObjR‚Rƒt
safeRadiustrestoreSecondstmaxHPt    restoreHP((s‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyR…6s4       *      !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‹D:\SG_ServerCode\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~RR©((s‹D:\SG_ServerCode\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~RtmapObj((s‹D:\SG_ServerCode\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‹D:\SG_ServerCode\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‹D:\SG_ServerCode\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‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytDoBeAttackOverGs    cCs~|jƒ}tjddƒ}t|ƒdkr4dStj|d|dƒ}t|ƒ}|j||tƒt    t
|ƒdS(NRµiiii( RýR1R2R=R?trandintRxRËRÅR~Rd(RIRÆRqtauraScoreRangeRR‚((s‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyRÏSs   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‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyRRas% 
 cCst|||ƒtS(N(tonBattleObjKillOtherBattleObjR)(RÆRÑR#((s‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytDoFBOnKill_Playerlsc#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~RdtDoDropPersonBuffOnKilled(#tatkObjtdefObjR#tatkIDtdefIDRÓRÔtatkNamet
atkFactiont
defFactionR6t baseKillScoretfbFightSecondstkillPlayerScoreTimeListt fbFightTimest    killScoreR€Rqt playerScoretcallPlayerKillScoreExt atkBattleObjRÈRÉt atkFactionObjt defFactionObjRGtkingIDtkillScoreKingScoreListt    kingScoretkillScoreKingNotifyListtmsgMarkRtdefMapIDtdefPosXtdefPosY((s‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyRÝps¤      $    
    
                   "
!
  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‹D:\SG_ServerCode\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“RdRCR=R:R<RGRšR›RbRlR{Rì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 befKingIDListR‚RƒRŸt aftKingIDListtaftKingObjListRžRqRÆRGtobjInfot    addBuffIDtbefIndext    delBuffID((s‹D:\SG_ServerCode\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ƒjO|tPjQƒ}=|j7|jR|jS|jT|jU|jV|j |jW|jX|j8|jYf \ }>}?}@}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ƒ| jZ|ƒ}J|Js“qbn|Jj[t\j]d    | tƒd    }K|&j^i|0tj_6|1d6|7d16|:d26|d 6ƒtj`|JtPjQ|K|+|&ƒqbWi|d 6|j6d6|jad36|jbd46|j>d56|/d66}L|L|d7|<q…Wtj
d8|'|ƒ|
j}Mtc||||||M||| |'|(|)g ƒ}Ntjdƒjed    d    d    d9|Nt?|Nƒƒtfjgd9|ƒtjhti|ƒtjjk|d:ƒdS(<NsG¿ç·þÕ½³¡´¥·¢Öظ´½áË㣬²»´¦Àí£¡ zoneID=%s,funcLineID=%s,winnerFaction=%ss7¿ç·þÕ½³¡½áË㣡 zoneID=%s,funcLineID=%s,winnerFaction=%stCrossBattlefieldAwardicSs%i|]\}}|t|ƒ“qS((R(t.0tktv((s‹D:\SG_ServerCode\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ÀRhR{RsR­R±RhRiRjt drPlayerLists
faction_%ss"±¾³¡×îÖÕ½áËã»ý·ÖÍõ: scoreKingID=%stCrossBattlefieldOveri(is(lR.R/R0RDREt GetCrossDynamicLineMapFuncLineIDRRRR>R4RRdR~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”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 callPlayerIDRft callBattleObjtcostTimetoverDictt scoreKingIDt scoreKingNametbattlePlayerListRÉtisWinnerR`tfactionSuperItemPlayerIDt scoreKingObjR.trankR\R¨R©RªR«RyR­R®R¯R±t
isCallOpentisCalledRhtkillCntR¶R¹RºR»R¼R{R½R¾R¿RÀR5RHRt drFactionInfoRtmsgInfo((s‹D:\SG_ServerCode\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|RtRdRÈRuRýRàRvR    R'R3R1RCRRtmathtceilR)( RÆRIR#R-R.R*R€R„R[t    collectCDRŽt waitSeconds((s‹D:\SG_ServerCode\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‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytOnBeginCollectJs       cCsb| st|dƒ rdS|jƒ}|tƒkr^tƒ}|j|dƒr^tƒq^ndS(NRÈiÿÿÿÿ(thasattrRÈRàRvR,R~(RÆRIR*R€((s‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyt OnExitCollectSs      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 FindBuffByIDtGetLayerR1RBR R R    tGetNearbyPosByDisR(RìRí(Rét    defPlayerR#tdropPersonBuffNPCListRÓRqt dropNPCIDListR*tnpcDatatbuffIDtfindBufftcountRRtdropXtdropY((s‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyRè]s: !   
cCsl|jtjƒ}|stS||jƒkr2tStjddƒd}||jƒ}||krhtStS(NRaiiè(    t GetDictByKeyR"t!Def_NPC_Dict_SummonMapNPCPlayerIDR)RýR1RCt GetActionTickRd(RÆRIR#tsummonPlayerIDt protectTickRŽ((s‹D:\SG_ServerCode\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‹D:\SG_ServerCode\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‹D:\SG_ServerCode\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‹D:\SG_ServerCode\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_AddBuffRdR)RbtGetSkillBySkillIDt GetLastTimet    GetEffecttGetEffectValueR·R¸RìR¸( RÆRIR#R*R€taddSkillt
addSkillIDRqR‚t    buffSkilltbuffTime((s‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyRwÚ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.RbR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‹D:\SG_ServerCode\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ŽRdR)RltGetObjRRÍ(    RÆR¦R•R#RRqRHRR((s‹D:\SG_ServerCode\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‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyRQs*           #   "cCsl|jƒ}tj|ƒ}|rh|tƒkrCt|||ƒqh|tƒkrht|||ƒqhndS(N(RÈRìR3Rât__OnGuardKillOtherPlayerRèRÝ(RIRÆR#R*t
npcFaction((s‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytDoFBOnNPCKill_Playerms 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‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytDoFB_Player_KillNPC}s cCsA|jƒtjkr=|jƒtjkr=t|||ƒndS(N(RR"RRÝ(RÐRIR#((s‹D:\SG_ServerCode\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‹D:\SG_ServerCode\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ýRqR"RrR.R/R0R:R”R1RCRuRxRÒRËtScoreType_GuardKillPlayerR~Rd( RIt    tagPlayerR#R*R¯R™t tagPlayerIDt ownerPlayerIDR6Rt ownerPlayertguardKillPlayerScoreR‚((s‹D:\SG_ServerCode\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“RdRhR RxR¹RËtScoreType_HurtBossR|R}RvRVR£R~(RÆRIR#R*tkillerPlayerIDt killerFactionR6RRžR„townerFactionScorethurtPlayerScoreR¦RqR‚R€((s‹D:\SG_ServerCode\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‹D:\SG_ServerCode\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‹D:\SG_ServerCode\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.RRRRdRÌRRÍRìR3RR"RR)(RÐRÑR-RÓRÔ((s‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytCheckCanAttackTagObjInFB    s   *cCstS(N(Rd(t    atkPlayerRh((s‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pytDoFBAttackHasPunish7    si((((€RDR.RìRJRR1RþRÚRºR:R|RGRšRR\RR"R}R–R    R¡RVR?RRªRYtranget 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úRRRR0R1R4RdR¥R~RKRLRMRNRSROR,RvRwRxRzR)RcR{RPR…R†R‡R£RˆRËRÕRÏRRRÞRÝRRR–R]R^R`RèRvRxRƒRRwR€R˜RR¦R©RªR§R¤R¨R¾RÀRÁRÃ(((s‹D:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossBattlefield.pyt<module>sÔ                               'u…    !z                                                                  '        H                        C    K                 )        &    %    6        _                          w     „    «    "            
    %        
        !    $    B                                ,            '