cehua_ZWJ
2019-01-30 6afaa4408f4e09e3e95dbd92f0d1cd5a1fb2942b
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
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
„ˆB\c@s-ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZdZdZ dZ!dZ"dZ#dZ$dZ%d    Z&d
Z'd Z(d Z)d Z*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5dZ6dZ7dZ8d Z9d Z:dZ;dZ<d Z=dZ>dZ?dZ@d
ZAdZBdZCd ZDd!ZEdZFd"ZGd#ZHdZId$ZJd%ZKeLd&ƒ\ZMZNd'„ZOd(„ZPd)„ZQeRd*„ZSdd+„ZUd,d-„ZVd,d.„ZWd,d/„ZXd0„ZYd1„ZZd2„Z[d3„Z\d4eRe]d5„Z^d6„Z_d,dd4e]d7„Z`d,d4d8„Zad,d9„Zbd:„Zcd;„Zdd<„Zed=„Zfd>„Zgd?„Zhdd@„ZidA„Zjd4dB„ZkdC„ZldD„ZmdE„ZndejodF„ZpidG„ZqidH„ZrdI„ZsdJ„ZtdK„ZudL„ZvdM„ZwdN„ZxddO„Zye]dP„Zze]dQ„Z{dR„Z|dS„Z}dT„Z~dU„ZdV„Z€dW„ZdX„Z‚dY„ZƒdZ„Z„d,eRd[„Z…d,eRd\„Z†d]„Z‡d^„Zˆd_„Z‰d`„ZŠda„Z‹db„ZŒdc„Zdd„ZŽde„Zgdf„Zdg„Z‘ggdh„Z’di„Z“eLdjƒ\Z”Z•Z–Z—dk„Z˜eRdl„Z™dm„Zšdn„Z›do„Zœdp„Zdq„Zždr„ZŸds„Z d,dt„Z¡du„Z¢dv„Z£ddw„Z¤d4ddx„Z¥dy„Z¦dz„Z§d{„Z¨d|„Z©d}„Zªd~„Z«d„Z¬d€„Z­d„Z®d‚„Z¯dƒ„Z°d,ddgd„„Z±d…„Z²e]d†„Z³d‡„Z´dˆ„Zµd‰„Z¶dŠ„Z·d‹„Z¸dŒ„Z¹d„ZºdŽ„Z»d„Z¼d,d„Z½dd‘„Z¾gd’„Z¿d“„ZÀd”„ZÁe]d•„ZÂd–„ZÃd—„ZÄd˜„ZÅd™dš„ZÆdS(›iÿÿÿÿNt VSFB_CanEntert VSFB_IsClosetVSFB_NotFamilyIDt VSFB_NotFighttlineIDtsteptwheeltnpctnpcTotaltexptexpPointtmoneytscoretgradetleaderIDtisHelpt    helpCounttrelationtrobotJobtisAutothasRefreshBosst
gsItemInfot    dataMapIDtisPasstisSweeptextraExpt extraExpPointtsptcostTimetranktitemInfot succItemInfot    extrScoretenterLVt xianyuanCoint
helpPlayericCs*ttd|tjƒjƒf|ƒdS(Ns
GFBD_%s_%s(tsetattrt
PyGameDatat    GameWorldt GetGameWorldt    GetLineID(tattrKeytdata((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt SetGameFBDatakscCs#ttd|tjƒjƒfƒS(Ns
GFBD_%s_%s(tgetattrR%R&R'R((R)((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetGameFBDatalscCst|ƒ}tjd|ƒS(NtFBFunc(tGetRecordMapIDt IpyGameDataPYtGetIpyGameDataNotLog(tmapID((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetFBIpyDatans cCsJt|ƒ}tjd||ƒ}| rF|rFtjd|dƒ}n|S(NtFBLinei(R/R0R1(R2Rt isDefaultLinet fbLineIpyData((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineIpyDataqs
  cCs,|st||ƒ}n|s"dS|jƒS(N(R7tNonetGetEnterPosInfo(R2RR6((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineEnterPosInfoysicCs#t||ƒ}|sdS|jƒS(N(R7R8t GetStepTime(R2RR6((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineStepTime~scCs#t||ƒ}|sdS|jƒS(N(R7R8t GetRefreshNPC(R2RR6((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineRefreshNPC‚scCs#t||ƒ}|sdS|jƒS(N(R7R8t GetGradeInfo(R2RR6((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineGrade†scCs#t||ƒ}|sdS|jƒS(N(R7R8t GetRewardInfo(R2RR6((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineRewardŠscCs t|ƒ}|sgS|jƒS(N(R3t GetRewardRate(R2t    fbIpyData((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBGradeRewardRateLists cCs-|tjkr)tjƒjtj|ƒSdS(Ni(R%tFBEnterTimeLimiitMapIDR&R'tGetGameWorldDictByKeyt ShareDefinetDef_Notify_WorldKey_FBCanEnter(R((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBFuncOpenState“scCs$|tjkrdS|tj|kS(N(R%tFBOpenTimeRecord(RtdayStr((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBHasOpenToday›sic
Css|jƒ}|rÔt|ƒsRtjd||ƒ|rKtj|dƒntjSt|||||ƒ\}    }
|    sœ|
r•tj||
|gƒntj    St
||ƒrÔ|rÊtj|d|gƒntj Sn|rl|j ƒ} |j ƒ} |jƒ} | rV| | krVtjd||| | f|ƒ|rOtj|d|gƒntjS| r®| | kr®tjd||| | f|ƒ|r§tj|d|gƒntjS|jƒ}|r$tj|ƒ|kr$tjd||tj|ƒ|f|ƒ|rtj|d|gƒntjSt||||||ƒd    sl|rbtj|d
|gƒntjSntjS( Nsµ±Ç°Ê±¼ä먦·Å¸Ã¸±±¾!mapID=%st FBIsNotOpent SingleEnterCDsHÍæ¼ÒµÈ¼¶²»×ã, ÎÞ·¨½øÈ븱±¾!mapID=%s,lineID=%s,curLV(%s) < lvLimitMin(%s)tFbLVsHÍæ¼ÒµÈ¼¶³¬¹ý, ÎÞ·¨½øÈ븱±¾!mapID=%s,lineID=%s,curLV(%s) > lvLimitMax(%s)sNÍæ¼ÒÖ°Òµ½×¼¶²»×ã, ÎÞ·¨½øÈ븱±¾!mapID=%s,lineID=%s,jobRank=%s < jobRankLimit=%stSingleEnterJobitGeRen_chenxin_157069(t GetPlayerIDRJR&tLogt PlayerControlt
NotifyCodeRHtEntFBAskRet_FBCloset__CheckCanEnterFBByTimetEntFBAskRet_NoEnterCnttCheckIsEnterCDtEntFBAskRet_EnterCDtGetLVt GetLVLimitMint GetLVLimitMaxtEntFBAskRet_LVLimittGetJobRankLimitt
GetJobRanktEntFBAskRet_JobRankLimittGetFBEnterTickettEntFBAskRet_NoTickettEntFBAskRet_OK(t    curPlayerR2RRDR6t reqEnterCnttisNotifyt    isTeamAsktplayerIDtcanEntert
notifyMarktcurLVt
lvLimitMint
lvLimitMaxt jobRankLimit((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytCheckCanEnterFBComm¢sX  
                 
c    Cs
|jƒ}|stdfS|jtj|ƒ}t||ƒ}|||kr[tdfStjƒj|ƒ}|t    j
kr‰t dfS|t    j krç|j ƒs®t dfS| r|jƒ sÚ|jtjƒdkrt dfSn|tjkrt dfStdfS(NttGeRen_chenxin_268121itTeamSingleEnter(t GetDayTimestTruetNomalDictGetPropertytChConfigtDef_Player_Dict_EnterFbCntDaytGetEnterFBMaxCntR&tGetMaptGetMapFBTypeByMapIDt IPY_GameWorldt    fbtSingletFalsetfbtTeamt GetHelpPointt    GetTeamIDt GetDictByKeytDef_PlayerKey_TeamMemCounttDef_NoLimitEnterCntMap(    RfR2RDRgRitmaxTimestenterCnttmaxCnttfbType((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRXÞs$ 
 
 
 
, 
cCsã|st||ƒ}n|jƒ}|s=tgdtgfS|jƒ}|s‚tjd||f|jƒƒtgdtgfS|jt    j
|ƒ}|t |ƒkr´|dn||}    |    |}
|
stjd||f|jƒƒtgdtgfS|j ƒj tjƒ} tj|| |
ƒ\} } }}| sÐ|jƒ}|r”| r”||}tj|tj|ƒ}t|ƒ| |
||fStjd|||||
f|jƒƒtgdtgfS| | |
|gfS(Nis#ûÓÐÅäÖÃÃÅÆ±ÏûºÄ!mapID=%s,lineID=%siÿÿÿÿsTÃÅÆ±²»×ã, ÎÞ·¨½øÈ븱±¾!mapID=%s,lineID=%s,ticketID=%s,reqEnterCnt=%s,totalCostCnt=%s(R7t GetTicketIDRvRtGetTicketCostCntR&tErrLogRSRwRxRytlentGetItemManagertGetPackR}trptItemt
ItemCommontGetItem_FromPack_ByID_ExExtGetTicketPriceRUt HaveMoneyExRHtTYPE_Price_Gold_Paper_MoneytbooltDebugLog(RfR2RR6RgRitticketIDtticketCostCntListR‡tcostCntt totalCostCnttitemPacktenought    indexListthasBindtlackCntt ticketPricet    costMoneyt costMoneyList((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRcs6   &
 !  
     c Csèt|||d|ƒ\}}}}}|s7t|fS|rši|d6|d6|d6}    x?|D]4\}
} tj||
| tj|    ƒs_t|fSq_Wn|sªt|fS|jƒj    t
j ƒ} t j || ||tdƒt|fS(NtMapIDtLineIDt
EnterCounttFBTicket(RcR8RRUtPayMoneyRxtDef_Cost_EnterFBRvRŽRR}RR‘t
ReduceItem( RfR2RR‡tisEnoughRžtdelCntRŸR£tinfoDictt    moneyTypetmoneyNumRœ((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytDelFBEnterTicket7s'
 
cCs|j||tjƒS(N(RwRxtDef_PDictType_FB(Rftkeyt defaultValue((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBPDictValueLscCstj|||tjƒdS(N(RUtNomalDictSetPropertyRxR±(RfR²tvalue((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetFBPDictValueTscCs4tjdƒ}|sdSttjƒjƒƒ}||tjkrHdSd}d}d}tjƒ}xšt    |j
ƒƒD]†}|j |ƒ}    |    dksy|    j ƒr¬qyn|rÊ|    jƒ|krÊqyn|    jƒ}
||
7}|d7}||
kry|
}qyqyW|s dS||} tjƒ} | jtj| ƒ| jtj|ƒtjd|||| |f|ƒ|tjkr0tjƒjƒd} t|| ƒ}|s¬dn    |jƒ}tjddƒ}| || }}t||ƒ}| jtj|ƒ| jtj|ƒtjd| |||fƒntS(    s¶¯Ì¬¸üи±±¾NPC³É³¤µÈ¼¶
    tNPCAttrStrengthenNiisMNPC³É³¤¶¯Ì¬µÈ¼¶±ä¸ü: isLeave=%s,totalLV=%s,playerCnt=%s,averageLV=%s,maxLV=%stElderBattlefieldCfgisD    ¸üÐÂÉϹŻúÆ÷È˵ȼ¶·¶Î§: lineID=%s,robotLVDiff=%s,robotLV=(%s~%s)( t ReadChConfigtGetEvalChConfigR/R&R{tGetMapIDt    NPCCommontNPCAttr_DynNPCLVMaptGetMapCopyPlayerManagertxrangetGetPlayerCounttGetPlayerByIndexR8tIsEmptyRSR\t    GetGameFBt SetGameFBDictRxtDef_FB_NPCStrengthenAverageLVtDef_FB_NPCStrengthenMaxLVRTtDef_FBMapID_ElderBattlefieldR't GetPropertyIDR7R]R0t
GetFuncCfgtmaxtDef_FB_NPCStrengthenMinLVRv(RjtisLeavetattrStrengthenInfoR2tmaxLVttotalLVt    playerCnttcopyMapPlayerManagertiRfRmt    averageLVtgameFBRR6Rnt robotLVDifft
robotLVMint
robotLVMax((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytUpdFBLineNPCStrengthenLVXsP  
 
 
      c CsVtjdƒ}|sdSttjƒjƒƒ}|tj}||krNdS||}tjƒ}tj    ƒj
ƒ}|r’t d|dƒ}n|j t j|ƒtjd|||f|ƒ|rRtjƒ}x{t|jƒƒD]d}    |j|    ƒ}
|
jƒdkrqçn|
jƒtjtjgkr8qçntj|
ttƒqçWntS(s¶¯Ì¬¸üи±±¾NPC³É³¤ÈËÊý
    R¸NisENPC³É³¤¶¯Ì¬ÈËÊý±ä¸ü: playerCount=%s,isLeave=%s,isRefreshNPCAttrNow=%si(RºR»R/R&R{R¼R½tNPCAttr_DynPCCoefficientMapRÄR¿RÁRËRÅRxtDef_FB_NPCStrengthenPlayerCntRTt GetNPCManagerRÀt GetNPCCountt GetNPCByIndextGetIDtGetTypeR}t ntFunctionNPCtntPettDoNPCAttrStrengthenRRv( RjRÍRÎR2tcoefficientDicttisRefreshNPCAttrNowRÕt playerCounttgameNPCManagertindextcurNPC((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytUpdFBLineNPCStrengthenPlayerCntˆs2  
      cCsA|jtj|ƒ|jtj|ƒtjd||fƒdS(s{ ÉèÖùÖÎïµôÂäÖ´ÐдÎÊýÍò·ÖÂÊ ¼° ¹Ì¶¨¼Ó³É´ÎÊýÖµ
    @param doCountRate: ´ÎÊýÍò·ÖÂÊ
    @param doCountAdd: ´ÎÊý¹Ì¶¨Öµ    
    s7ÉèÖùÖÎïµôÂäÖ´ÐдÎÊýÐÅÏ¢: doCountRate=%s, doCountAdd=%sN(RÅRxtDef_FB_DropDoCountRatetDef_FB_DropDoCountAddR&RT(RÕt doCountRatet
doCountAdd((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetNPCDropDoCountRateªscCstjƒjtjƒdkS(Ni(R&RÄtGetGameFBDictByKeyRxtMap_FBDict_PropertyMark(((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetHadSetFBPropertyMarkµscCstjƒjtjƒdS(Ni(R&RÄRðRxRñ(((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBPropertyMark»scCsÏtjƒjtj|dƒ|dkrWtj||ƒtjd||j    ƒƒdStj
ƒ}xet |j ƒƒD]Q}|j |ƒ}|j    ƒsqvntj||ƒtjd||j    ƒƒqvWdS(Nis,SetFBPropertyMark ÉèÖÃÍæ¼Ò¸±±¾¹¦ÄÜÏß·ID: %ss,SetFBPropertyMark ¹ã²¥Íæ¼Ò¸±±¾¹¦ÄÜÏß·ID: %s(R&RÄRÅRxRñR8RUtSetFBFuncLineIDR—RSR¿RÀRÁRÂ(t propertyMarkt    setPlayert playerManagerRèRf((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetFBPropertyMarkÁs   cCstjƒj|jƒtjƒS(N(R&RÄtGetPlayerGameFBDictByKeyRßRxtFBPlayerDict_IsDelTicket(Rf((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetHadDelTicketÔscCs&tjƒj|jƒtj|ƒdS(N(R&RÄtSetPlayerGameFBDictRßRxRú(RftdelSign((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetHadDelTicketÚs"cCs:d}tjƒ}|jƒdkr6|jdƒ}n|S(s »ñÈ¡µ±Ç°µ¥È˸±±¾Íæ¼Ò iN(R8R&R¿RÁRÂ(RfR÷((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetCurSingleFBPlayerÞs
 cCsE|r tjS|jƒr>tjƒjtjƒdkr>tjStjS(Ni(    RxtFB_JoinType_HelpR‚R&RÄRðtDef_FB_TeamPlayerCounttFB_JoinType_MultitFB_JoinType_Single(Rft isHelpFight((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetFBJoinTypeæs
*cCs0|tjƒjƒ}tjƒjƒ}||S(N(R&R't GetOpenFBTickR{t GetExistTime(tticktlastTickt    existTime((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFB_RemainTimeóscCsÚd}tjƒ}|jtjƒ}||krM|rItj||ƒn|St||jƒdƒ}d}t    |ƒ}    d}
x<|D]4} |
| 7}
|
|}|dkr°Pn|    d8}    q†Wt
||    ƒ}    ||    krä| rä|S|j tj|    ƒtj d||||    |fƒ|rYtj||ƒ|    |krÖ|j |d|dtƒqÖn}tjƒ} xnt| jƒƒD]Z} | j| ƒ}|s™qxntj||ƒ|    |krx|j |d|dtƒqxqxW|    S(sa¸üе±Ç°¸±±¾ÐǼ¶¡¢ÆÀ¼¶
    @param gradeTimeList: ÆÀ¼¶·Ö¶Îʱ¼äÁÐ±í£¬µ¥Î»Ãë [×î¸ßÆÀ¼¶¿ÉÓÃʱ¼ä, Ï¼¶¿ÉÓÃʱ¼ä, ..., ×îµÍ¼¶¿ÉÓÃʱ¼ä]
    @param curPlayer: ´¥·¢µÄÍæ¼Ò£¬Ò»°ãÊÇDoEnterʱµ÷Ó㬻áͬ²½¸üÐÂÒ»´Î¸±±¾ÆÀ¼¶²¢½«ÐÅϢ֪ͨ¸ÃÍæ¼Ò
    @note: ÐǼ¶£º1-1ÐÇ£»2-2ÐÇ ...            [60, 20, 10]
            ÆÀ¼¶£º1-D£»2-C£»3-B£»4-A£»5-S;    [60, 30, 30, 20, 10]
    ig@@isQUpdateFBGrade useSecond=%s,gradeTimeList=%s,curGrade=%s,updGrade=%s,diffSecond=%siè(R&RÄRðRxt Def_FB_GradetFBLogictDoFBHelptintt GetFBStepTickRRËRÅR—t Sync_TimeTickRvR¿RÀRÁRÂ(Rt gradeTimeListRfttimeTypetlowestRÕtcurGradet    useSecondt
diffSecondtupdGradet gSecondTotaltgSecondR÷Rè((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt UpdateFBGradeøsH    
 
         !cCsh|ji|t6|t6t|ƒt6ƒtj|dtƒ}|j|ƒt    j
d||j ƒƒdS(Nt ensure_asciisNotifyFBOver: %s( tupdatetOver_dataMapIDt Over_lineIDRt Over_isPasstjsontdumpsRt    Frm_FBEndR&R—RS(RfRRRtoverDicttoverMsg((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt NotifyFBOver)s
( cCsT|ji|t6ƒtj|dtƒ}|j|ƒtjd||jƒƒdS(NRsNotifyFBHelp: %s(    Rt Help_lineIDR!R"Rt
Frm_FBHelpR&R—RS(RfRthelpDictthelpMsg((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt NotifyFBHelp1s
 cCs*tj|dtƒ}|jd|ƒdS(NRs%s(R!R"RR#(RftmsgDict((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytNotify_FB_Over=scCs0tj|dtƒ}|jdt|ƒƒdS(NRs%s(R!R"RR(tstr(RfR)((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt Notify_FBHelpBscCsEg}x8|D]0}i}t|tƒs7t|tƒr£t|ƒ}|dkr`|d|d<n|dkr}|d|d<n|dkr0t|dƒ|d<q0nt|tƒr¿||d<nqtj|ƒsÔq n|jƒ|d<|jƒ|d<t|j    ƒƒ|d<t|j
ƒƒ|d<|j ƒ|d<|j |ƒq W|S(    NitItemIDitCountitIsBindtIsSuitetUserData( t
isinstancetlistttupleRRR‘tCheckItemCanUset GetItemTypeIDtGetCountt    GetIsBindt
GetIsSuitet GetUserDatatappend(titemListt jsonItemListRtitemDicttinfolen((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonItemListHs,      cCsBg}x5|jƒD]'\}}|ji|d6|d6ƒqW|S(NR®t
moneyValue(titemsR>(t    moneyDictt    moneyListR®RD((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonMoneyListbscCsBg}x5|jƒD]'\}}|ji|d6|d6ƒqW|S(NtNPCIDtkillCnt(RER>(tnpcDicttkillListtnpcidRJ((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonNPCKillListiscCsBg}x5|jƒD]'\}}|ji|d6|d6ƒqW|S(NRItHPPer(RER>(RKRLRMRO((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonNPCHPPerListpsc Cs=tjƒ}|jƒ||_g|_x|D]‡}|d \}}}}t|ƒdkrg|dnd}    tjƒ}
||
_||
_||
_    ||
_
|    |
_ |jj |
ƒq/Wt|jƒ|_ |råtj||ƒnTtjƒ} xEt| jƒƒD]1} | j| ƒ}|s%qntj||ƒqWdS(sõͬ²½¶¯Ì¬Õϰ­ÎïÊÇ·ñÓÐЧÐÔ
    @param barrierPointList: Õϰ­ÎïµãÁбí [[aPosX,aPosY,bPosX,bPosY,angle¿ÉÑ¡], [aPosX,aPosY,bPosX,bPosY,angle¿ÉÑ¡], ...]
    @param state: ÊÇ·ñÓÐЧ
    @param curPlayer: Ö¸¶¨Í¨ÖªÄ¿±êÍæ¼Ò£¬ÎªNoneʱ¹ã²¥±¾µØÍ¼ËùÓÐÍæ¼Ò
    iiN(tChPyNetSendPackttagMCDynamicBarrierStatetCleartStatet BarrierListRttagMCDynamicBarriertAPosXtAPosYtBPosXtBPosYtAngleR>R1t NetPackCommont SendFakePackR&R¿trangeRÁRÂ( tbarrierPointListtstateRftbarrierStatePacktposInfotaPosXtaPosYtbPosXtbPosYtangletbarriert playManagerRÓ((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSyncDynamicBarrierStatews0 
         "                      c    Csítjƒ}xÚt|jƒƒD]Æ}|j|ƒ}|dkrFqn|jƒ}||krdqn|jƒ}|dkrÌ|rˆqn|r¹tjƒj    ƒ}t
j |ƒj |ƒn|j tƒqn|sØqn|j tƒqWdS(Ni(R&RÜRÀRÝRÞR8tGetNPCIDt
GetVisibleR'tGetTickR½t
NPCControlt DoNPCRebornt
SetVisibleRvR(    t
doorIDListttypetisRebornRçRÓRétnpcIDtcurTypeR((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytOpenOrCloseDoorExœs*       cCsÔtjƒ}xÁ|D]¹}|j|ƒ}|dkrKtjd|ƒqn|jƒ}|dkr³|roqn|r tjƒjƒ}tj    |ƒj
|ƒn|j t ƒqn|s¿qn|j t ƒqWdS(Ns¸±±¾ÎÞ·¨²éÕÒ, ÃÅID = %si(R&RÜtFindGameNPCByNPCIDR8RŒRlR'RmR½RnRoRpRvR(RqRrRsRçRtRéRuR((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytOpenOrCloseDoorÁs&      cCstjƒj|ƒdS(N(R&RÄtBroadcast_FbBillboard(tmaxCount((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt InitBillBoardãscCsX|jƒ}|jƒ}tjƒj|ƒ}|j|ƒ|j|ƒ|jdƒdS(Ni(RStGetNameR&RÄtGetFbBillBoardPlayert SetPlayerIDt SetPlayerNametSetPoint(Rft curPlayerIDt curPlayerNametplayerBillBoard((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytInitBillBoardPlayerës     cCsmtjƒj|jƒƒ}|dkrCt|jƒ|dƒ}nt|jƒ|dƒ}|j|ƒ|S(Niiÿÿi(R&RÄR}RStmintGetPointRËR€(RfRrR¶Rƒtpoint((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytAddorReduceBillBoardûs   cCs,tjƒj|jƒƒ}|j|ƒdS(N(R&RÄR}RSt
SetCountry(RftcountryRƒ((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetCountryBillBoard s cCs%tjƒj|jƒƒ}|jƒS(N(R&RÄR}RSR†(RfRƒ((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetPlayerBillBoardPointscCs%tjƒj|jƒƒ}|jƒS(N(R&RÄR}RStGetBillboardIndex(RfRƒ((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetPlayerIndex_InBillBoardscCs'tjƒ}|jƒ|j|ƒdS(N(R&RÄtSortFbBillBoardPlayerRy(RzRÕ((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytNotifyBillBoard%s 
 cCsAtjƒ}|j|ƒ|j|ƒtjd||fƒdS(NsSetFBStep %s, tick=%s(R&RÄt    SetFBStept SetFBStepTickRT(RRRÕ((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR‘2s
   cCsatjƒ}xNt|jƒƒD]:}|j|ƒ}|jƒsFqn|j|||ƒqWdS(N(R&R¿R^RÁRÂRStSync_FbSystemMessage(tkeepTimetmsgTypetmsgR÷RÓRf((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR“?s  cCsgtjƒ}xTtd|jƒƒD]=}|j|ƒ}|jƒsIq"n|j||||ƒq"WdS(Ni(R&R¿R^RÁRÂRSR(R•tmsgTickRtt
isContinueR÷RèRf((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSync_Player_TimeTickTs  c    Csd}|rHtjƒjtjƒ}|r?||kr?t}qHt}ntjd||fƒtjƒj    tj|ƒtj
ƒ}xyt d|j ƒƒD]b}|j |ƒ}|jƒsÁqšn|ræ|ræ|j||d|ƒn|j||||ƒqšWdS(Ns2Sync_Player_TimeTickEx() prevMsgType=%s,msgType=%si(R8R&RÄRðRxtMap_FBDict_PrevFBTimeTypeRvRRTRÅR¿R^RÁRÂRSR(    R•R—t isSendPrevMsgRtR˜t prevMsgTypeR÷RèRf((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSync_Player_TimeTickExhs"           cCsºtjƒ}t}x—t|jƒƒD]ƒ}|j|ƒ}|jƒ}|jƒ}|jƒ}|sj|rst    }n|||gkr‹q%n|j
|ƒt j kr§t StSW|r¶tStS(N(R&R'RvR^tGetGameWorldCounttGetGameFBByFbIndext GetFamilyVSt GetFamilyIDt GetVSFamilyIDRtGetOpenStateByFbIndexR}tfbosOpentDef_VSFB_IsClosetDef_VSFB_CanEntertDef_VSFB_NotFighttDef_VSFB_NotFamilyID(tfamilyIDt    gameWorldt todayNotFightRèRÕtfamilyVsManagertattackIDt    defenceID((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetCanEnterVSFB…s"         cCs|tjƒ}xit|jƒƒD]U}|j|ƒ}|jƒ}|jƒ}|jƒ}|||gkr||fSqWdS(N(NN(    R&R'R^RžRŸR R¡R¢R8(R©RªRèRÕR¬R­R®((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGet_VS_Line_GameFBªs    cCstjƒj|ƒS(N(R&R't GetMapCopyPlayerManagerByFbIndex(t    lineIndex((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGet_Line_PlayerManager½scCs›tjƒ}|jƒtjkr<tjd|jƒƒdS|sFdStjƒ}xBt|jƒƒD].}tj|ƒ}|j    ƒ|kr’qen|SWdS(Ns+###µ÷Óú¯ÊýÒì³£ Get_TeamFB_Line_GameFB = %s(
R&R{t GetMapFBTypeR}R€RTR'R^RžRÉ(tteamIDtgameMaptgameWorldManagerRèRª((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGet_TeamFB_Line_GameFBÅs  cCs‰tjƒjƒ}|tjkr…t|jƒƒ}|s=tS|jƒdkrSt    S|j
ƒtj krrt    dfS|j ƒtj kStS(Nit FBinCantEnter(R&R{R´R}R€R¸R‚RvtGetCloseFBTickRt    GetTeamLVt    tmlLeadert GetOpenStatetfbosWaitForClose(t    askStructt gameMapFBTypeRª((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytCheckFBStateCanEnterás
cCs‚g}tjƒ}xit|jƒƒD]U}|j|ƒ}|jƒdkrRq%n|jƒtjkrmq%n|j    |ƒq%W|S(Ni(
R&RÜR^RÝRÞRßtGetGameNPCObjTypeR}tgnotPetR>(t gameNPCListRçRèRé((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetMapNPCLists cCsg}tjƒ}xêt|jƒƒD]Ö}|j|ƒ}|jƒdks%tj|ƒdkrgq%n|jƒt    j
kr‚q%n|jƒt    j krîtj |ƒ}|dkr¸q%n|jƒ}|dkrî|jƒt    jkrîq%qîn|j|ƒq%W|S(Ni(R&RÜR^RÝRÞRßtGameObjtGetHPRÂR}RÃt
gnotSummont GetObjDetailR8tGetOwnertGetGameObjTypet    gotPlayerR>(t findNPCListRçRèRét curNPCDetailt curNPCOwner((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetMapSystemNPCLists" '  !    cCsdtjƒ}xQtd|jƒƒD]:}|j|ƒ}|jƒdkrOq"ntj|ƒq"WdS(Ni(R&R¿R^RÁRÂRßRUt PlayerLeaveFB(R÷RÓRf((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytDoLogic_FBKickAllPlayer?s cCsÁtƒ}g}x«|D]£}tj|ƒdkr7qn|jƒtjkr¬tj|ƒ}|dkrmqn|j    ƒ}|dkr¬|j
ƒtj tj fkr¬qq¬n|j |ƒqW|S(Ni(RÅRÆRÇRÂR}RÈR&RÉR8RÊRËRÌtgotNPCR>(RÄRÍRéRÎRÏ((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetMapSystemNPCListExRs           cCssxltƒD]a}|dkr"q
n|jƒtjtjgkrFq
n|jƒ|kr^q
ntj|ƒq
WdS(N(    RÔR8RàR}RáRâRkR½t    SetDeadEx(t ignoreIDListRé((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt
ClearFBNPCrs cCssxltƒD]a}|dkr"q
n|jƒtjtjgkrFq
n|jƒ|kr^q
ntj|ƒq
WdS(N(    RÔR8RàR}RáRâRkR½RÕ(tclearNPCIDListRé((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt ClearFBNPCEx‡s cCsšd}xtƒD]‚}|dkr(qn|jƒtjtjgkrLqn|jƒ}|rp||krpqn|rˆ||krˆqn|d7}qW|S(Nii(RÔR8RàR}RáRâRk(t    npcIDListRÖtnpcCntRéRt((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetFBNPCCnts  cCsgtjƒ}tj|}tj|}tj|}|j||ƒ|j||ƒ|j||ƒdS(N(R&RÄRxtMap_NPC_RandomMapNPCIDtMap_NPC_RandomMapNPCNeedCnttMap_NPC_RandomMapNPCPerMaxCntRÅ(t refreshMarkRttneedRefreshCntt    perMaxCntRÕtnpcIDKeyt
needCntKeyt perMaxCntKey((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetRandomRefreshMapNPC¸s    icCstjƒ}|jtj||ƒ|jtj||ƒ|jtj||ƒ|jtj|dƒ|jtj|dƒ|jtj    ||ƒ|jtj
|dƒ|jtj |dƒ|jtj |dƒ|jtj |dƒ|rt||d|ƒndS(Ni(R&RÄRÅRxtMap_TDNPC_RefreshFileNumtMap_TDNPC_RefreshSignKeytMap_TDNPC_RefreshStartTicktMap_TDNPC_RefreshBigWheelNumtMap_TDNPC_RefreshSmallWheelNumtMap_TDNPC_CurWheelStartTicktMap_TDNPC_CurWheelIsOvertMap_TDNPC_AllWheelIsOvertMap_TDNPC_NPCCnttMap_TDNPC_NPCBossCntt__TDStartRefreshNotify(trMarktfileNumtsignRRhRÕ((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytOpenTDNPCRefreshÔs cCsètjƒ}|jtj|dƒ|jtj|dƒ|jtj|dƒ|jtj|dƒ|jtj|dƒ|jtj    |dƒ|jtj
|dƒ|rä|jtj |dƒ|jtj |dƒndS(Ni( R&RÄRÅRxRçRèRéRêRëRìRíRïRð(Ròt
isResetNPCRÕ((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytCloseTDNPCRefreshês cCs;tjƒ}x(|D] }|jtj|ƒstSqWtS(N(R&RÄRðRxRîRRv(t    rMarkListRÕRò((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytIsTDNPCRefreshOverýs
  cCs;tjƒ}x(|D] }|jtj|ƒstSqWtS(N(R&RÄRðRxRíRRv(RøRÕRò((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytIsTDWheelRefreshOvers
  cCsdtjƒ}xQ|D]I}|jtj|ƒ}|jtj|ƒ}|dksX| rtSqWtS(Ni(R&RÄRðRxRïRíRRv(RøRÕRòRÛtcurWheelIsOver((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytIsTDNPCCurWheelAllKilleds  c
Cs»tjƒ}|jtj|ƒ}|jtj|ƒ}|jtj|ƒ}|dkr^tStj    d|ƒ}|t
|ƒkr‡tS||}|t }||}    |dkoº|    |kS(Nis    TD_%s_Cfg( R&RÄRðRxRéRêRçRRºR»RtDef_TDCfg_NextWheelTime(
RòRRÕt    startTickt curWheelNumRótrefreshCfgListt wheelInfoListtforceNextWheelTimetpassTick((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytCheckForceEnterNextWheels  
 
 
cCsútjƒ}|jtj|ƒ}|d}|jtj||ƒ|jtj|dƒ|jtj||ƒ|jtj|dƒ|jtj    |ƒ}|dkrÜ|rÜ|jtj
|ƒ}t ||||ƒntj d|||fƒdS(Niis2TD ½øÈëÏÂÒ»²¨£ºfileNum=%s,rMark=%s,nextWheelNum=%s( R&RÄRðRxRêRÅRëRìRíRçRèRñR—(RòRRhRÕRÿt nextWheelNumRótsignKey((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetEnterTDNextWheel6s 
c
Cs½|dkrdStjd|ƒ}|j|gƒ}|t|ƒkrKdS||ddd}tjd|ƒ}|t|ƒkr¹||}|t}    |    r¹tj|    |gƒq¹ndS(Nis TD_%s_NPCIDs    TD_%s_Cfg(RºR»tgetRtDef_TDCfg_NotifyMarkRUtFBNotify(
RÕRótwheelNumRôtrefreshNPCDicttrefreshNPCListRMRRRl((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRñLs 
 
c
CsÛtjƒ}|jtjƒ}tj|}|j|ƒ}tj|ƒ}|rutd||ƒ}|j    ||ƒntj
|}|j|ƒ}||}    td|    ƒ}    |j    ||    ƒtj d||    ||fƒ|    S(Nis3UpdTDNPCCnt rMark=%s,updCnt=%s,bossCnt=%s,isBoss=%s( R&RÄRƒRxtDef_NPC_Dict_FromRefreshMarkRðRðt
IsGameBossRËRÅRïR—(
RéR¶RÕRòtcurMarkNPCBossCntKeytbossCnttisBosstcurMarkNPCCntKeyRÛtupdCnt((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt UpdTDNPCCntbs   
cCsGtjƒ}|jtj|ƒ}|jtj|ƒ}|dkrHdStjd|ƒ}|t|ƒkrqdS||}    |    t    }
|
dkrÛ|    t
} | s¥dS|jtj |ƒ} || } t | | dƒ}n3|jtj |ƒ}||} t |
| dƒ}|dkr-t|||ƒn|j|||tƒ|S(Niiÿÿÿÿs    TD_%s_Cfg(R&RÄRðRxRêRçRºR»RRýtDef_TDCfg_PrepareTimeRìRËRéR8R™RRv(RfRòR•RtmsgIDRÕRÿRóRRt nextWheelTimet prepareTimetcurWheelStartTickRtnextWheelRemainTickRþ((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSync_TDNextWheelTick{s0  
 
 
 
 
 c Cs¨t|ƒ}|jƒ}|jƒ}d}|jƒ}tj||ƒ}|jtj|ƒ}|jtj    |ƒ}    |jtj
|ƒ}
||||    ||
} | S(Ni( R3RutGetExtraTimesMWPriIDtGetExtraTimesVIPPriIDt    PlayerViptGetPrivilegeValueRwRxtDef_Player_Dict_BuyFbCntDaytDef_Player_Dict_RecoverFbCnttDef_Player_Dict_ItemAddFbCnt( RfR2RDR†t MWPrivilegeIDtmwAddCnttextraTimesVIPPriIDtextraCnttbuyCntt recoverFbCntt
itemAddCntRˆ((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRzžs    cCst|ƒ}|jtj|ƒ}|jƒ}|jƒ}d}||7}|jƒ}tj||ƒ}|jtj    |ƒ}    |jtj
|ƒ}
|jtj |ƒ} |
|||    | g} t j | ƒ} d}xKt| ƒD]=\}}||7}td||ƒ| |<||kráPqáqáW| \}}}}}|jƒ}tj||ƒ}td||    ƒ}|||||g|||d|ggS(Nii'(R3RwRxRyRuRRRR R!R"R#tcopytdeepcopyt    enumerateRËtGetBuyTimesVIPPriID(RfR2RDR‡R†R$R%R&R'R(R)R*tcntListtrCntListtsumCntRÓtcntt rRecoverFbCntt    rExtraCntt
rCommonCnttrBuyCntt rItemAddCnttbuyTimesVIPPriIDt    canBuyCnttnoBuyCnt((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBDetailCntInfo­s0   
 
  cCsBt|ƒ}|jtj|ƒ}|dkr>tj||ƒS|S(Ni(R/RwRxRyR&tGetDataByDigitPlace(RftfbIDtlineBitR‡((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetEnterFBCountÐs
  c Cs¹t|ƒ}tj|}|j|ƒ}|dkr„tj||ƒ}td||ƒ}tj|||ƒ}tj    |||ƒnût
||ƒ}    ||    kr£t St|    ||ƒ}
|
|}tj    |||
ƒt j |||
|ƒtj|||ƒ|
}|tjkrt|ƒ} | jƒ} |    || kr|    |
| krtj    |tj|ttjƒƒƒt|ƒqntjd|||||f|jƒƒt||ƒtS(Nii    sM    AddEnterFBCount fbID=%s, addCount=%s, lineBit=%s, enterCnt=%s,updValue=%s(R/RxRyRwR&R<R…tChangeDataByDigitPlaceRURµRzRtPlayerActivitytOnEnterFBActivityt PlayerSuccesstAddEnterFBSuccesstDef_FBMapID_SealDemonR3Rut$Def_Player_Dict_FbCntRegainStartTimeRttimetNotifyFBCntRegainInfoR—RStSync_FBPlayerFBInfoDataRv( RfR=taddCountR>t enterCntKeyR‡tcurLineEnterCntt updEnterCnttupdValueRˆRRDtdayTimes((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytAddEnterFBCountÜs6    
   &      cCsÈtj}t||ƒ}t|ƒ}|jƒ}t||ƒ}td|||ƒ}|s`dSttjƒƒ}t    j
dƒ}|j tj |ƒ}    |j tj |ƒ}
|
s¼|}
n||    } | |
krÖdSt|d| |
|ƒ} tj|} td|| ƒ}tj|| |ƒtj|tj |dƒ| |krgtj|tj |dƒn,|| |
|}tj|tj ||ƒtjd| | |
fƒt||ƒt|ƒdS(NitFBCntRegainIntervalis.    ·âħ̳»Ö¸´´ÎÊý%s, passTime=%s, needTime=%s(RxRER?R3RuRzRËRRGR0RÊRwRFt$Def_Player_Dict_FbCntRegainTotalTimeR…RyRURµR&R—RIRH(RfR2R‡RDt maxDayTimesRˆt    maxCanAddtcurTimetrecoverIntervaltlastRegainTimetneedTimetpassTimet
recoverCntRKt newEnterCntt    startTime((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytRegainFBCntProcessüs<          
 
c    Csttjƒƒ}tjdƒ}tjƒ}|jƒg|_x§tj    gD]™}tj
ƒ}|jƒ||_ |j tj |ƒ}|j tj|ƒ}|s­|}n||}||krÉqMn|||_|jj|ƒqMW|js÷dSt|jƒ|_tj||ƒdS(NRQ(RRGR0RÊRQttagMCFBCntRegainRemainTimeRStInfoListRxREttagMCFBCntRegaint    DataMapIDRwRFRRt
RemainTimeR>RtCntR\R](    RfRURVt
regainDataR2tmapInfoRWRXRY((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRHs. 
     
        
      cCsytjƒjƒ}t|ƒ}|jtj|ƒ}t||ƒ}||krutjƒj    |j
ƒtj dƒt St S(Ni(R&R{R¼R/RwRxRyRzRÄRüRßtFBPlayerDict_IsHelpFightRvR(RfR2R‡Rˆ((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetIsHelpFight;s  "cCstjƒj|jƒtjƒS(N(R&RÄRùRßRxRf(Rf((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetIsHelpFightFsc    CsÓg}tjƒ}x¤t|jƒƒD]}|j|ƒ}|jƒ}|jƒ}|s^q%n|jƒ|krvq%ntj    |}|j
|ƒr%t j ||dƒ|j |ƒq%q%W|rÏt||ƒndS(Ni(R0tIPY_DataRÀtGetFBFuncCounttGetFBFuncByIndext GetDataMapIDt GetWeekTimestGetWeekResetTypeRxtDef_Player_Dict_EnterFbCntWeekRwRURµR>RI(    Rft
onWeekTypet    mapIDInfot
ipyDataMgrRÓtipyDataR2t    weekTimestenterCntWeekKey((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytFBOnWeekJs"    c Cs8tjd|jƒƒtj||ƒg}tjƒ}xÖt|jƒƒD]Â}|j    |ƒ}|j
ƒ}|j ƒrÅ|j t j|ƒ}|rÅtj|t j|dƒtjd|ƒqÅn|jƒ}| r|jƒ r|jƒ r|jƒ rqKn|jƒ|krqKnt||ƒ}    t j|}
|j |
ƒ} tj||
dƒt j|} |j | ƒ} tj|| dƒt j|}|j |ƒ}tj||dƒt j|}|j |ƒ}tj||dƒtjd||| |||    | fƒ|t jgkr^td||    | ƒ}tj||
|ƒtjd|ƒn¢|t jkrtj |t!j"ƒrt#|    | tj$dƒtj$ddƒƒ}||krÔtj||||ƒqý||krýtj||
||ƒqýqn|j%|ƒqKW|r4t&||ƒt'||ƒndS(Ns¸±±¾¹ýÌì´¦Àí,FBOnDay...is ÖØÖÃÈÕÖúÕ½½±Àø´ÎÊýÏÞÖÆ£¡mapID=%ssY    ÖØÖÃ:mapID=%s,dayTimes=%s,buyCnt=%s,recoverCnt=%s,itemAddCnt=%s,maxCnt=%s,enterCnt=%ss.        ÌØÊ⸱±¾ÒѽøÈë´ÎÊý¸üÐÂ: newEnterCnt=%stZhuXianBossCntCfgi((R&RTRSR tOnFBPlayerOnDayR0RiRÀRjRkRltGetDayHelpCountMaxRwRxtDef_PDict_FBRealHelpCountRURµR—RuR.RRtGetDayResetTypeRzRyR!R"R#RERËtDef_FBMapID_ZhuXianBosst GameFuncCommt GetFuncCanUseRHtGameFuncID_ZhuXianBossR…RÊR>RItSync_FBPlayerFBBuyCount(Rft    onDayTypeRqRrRÓRsR2RRORˆRKR‡t    buyCntKeyR(t recoverCntKeyRZt itemAddCntKeyR*R[tcurCnt((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytFBOnDaygs`    .        ,    cCsCtj|ƒt|ƒt|ƒt|ƒt|ƒt|ƒdS(N(R tOnFBPlayerOnLoginRItSyncFBEnterTickR€RHtCheckFBPlayerOffine(Rf((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt    FBOnLogin´s 
 
 
 
 
cCsx|jƒ}t|ƒ}|s"dS|jƒ}|s8dStj|ƒ}||krttjd|ƒtj|ƒndS(Ns9Åжϸ±±¾ÀïÀëÏß³¬¹ýÒ»¶¨Ê±¼äÔòÍ˳ö¸±±¾ leaveServerSecond=%s(R¼R3tGetOfflineTimeRUtGetPlayerLeaveServerSecondR&R—RÑ(RftmapidRst OfflineTimetleaveServerSecond((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR‰¿s    c
CsÔtjƒj|ƒ}|j}t|ƒ}|s4dS|jƒ}|s[tjd|ƒdStj||ƒ}|j    t
j |ƒ}|j ƒ}    t ||ƒ}
t||ƒ} |t
jkrã|    rã|
| |    krãtjdƒdS|t
jkr|
| tjddƒkrdS||kr3tjd|ƒdStjdƒ} | jt|ƒdƒ} t| ƒ} tj|tj| ƒ}|sˆdSi|d6}xG|D]?\}}tj|||t
j|ƒsœtjd    | ƒdSqœWtj|t
j ||d
ƒt||gƒtj|d |gƒ|j    t
j |ƒ}|rÐt ||ƒ}
|
| |    krÐt!t"j"ƒƒ}|j    t
j#|ƒ}|sžtjd ƒ}ntj|t
j#||||ƒt$|ƒqÐndS( NsmapID:%s ²»¿ÉÒÔ¹ºÂò½øÈë´ÎÊýsµ±Ç°´ÎÊýÒÑÂú£¬ÎÞÐ蹺Âò¡£¡£Rwis¹ºÂò´ÎÊýÒѾ­ÓÃÍêmapID=%st BuyFBCntCostt0R¤sÏÉÓñ²»×ã!costGold=%sitFBEnterTimeBuyRQ(%R&tGetPlayerManagerRÂtFBIDR3R.R—RR RwRxR!RuRzR?RER|R0RÊtGetFuncEvalCfgRR.tevalRUR”RHR•R¨tDef_Cost_BuyFBCntRµR€RVRFRRGRRRH(t playerIndext
clientDataRRfR2RsR8R9t    hasBuyCntRSRˆR‡t costGoldDicttcostGoldR£R­R®R¯RWRURX((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytBuyFBEnterCountÖs^       % +   "cCstj|tjƒS(N(t EventReporttWriteFuncCMEAcceptableRHtGameFuncID_RunDaily(Rf((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytDoFuncOpen_RunDaily scCstj|tjƒS(N(RžRŸRHtGameFuncID_RunFamily(Rf((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytDoFuncOpen_RunFamily sc
Cstjƒjƒdks| r#dStjjƒ}|tjddƒ}|j|j|j|j    f\}    }
} } |j|j|j|j    f\} }}}d}t
|ƒ}d}xÐ|D]È\}}|| |gkrßq»n|| kr
||    |
| ||df}n|| ||||df}tjj |t j ƒ}||}|j}|ddd}d|koz|knr»Pq»q»W||kr|tjƒjt jƒkr|dkrÌ||g}n    |g}tjd||d|||ƒtjƒjt j|ƒndS(Nithoursis%s-%s-%s %s:%s:%siÿÿÿÿt00i<(R&R'tGetCurGameWorldIndextdatetimettodayt    timedeltatyeartmonthtdaythourRËtstrptimeRxtTYPE_Time_FormattsecondsRÄRðtMap_FBDict_NotifyOpenRUt WorldNotifyRÅ(t openTimeListt    notifyMsgtnotifyTimeListR2t mergeMinOSDt mergeMaxOSDt mergeMapInfoRUtnextTimetcurYeartcurMonthtcurDaytcurHourtnextYeart    nextMonthtnextDaytnextHourtstartTimeStrFormattmaxNotifyMinutet remaindMinuteR­tminutet startTimeStrR\t
remainTimeR°t msgParamList((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt FBOpenNotifys:**  
          cCsAtjƒ}|tjddƒ}|j|j|j|jf\}}}}|j|j|j|jf\}}    }
} d} x¾|D]¶\} }| || gkr§qƒn| |krÒ| |||| |df}n| ||    |
| |df}tjj|t    j
ƒ}||}|j }d|ko0|knrƒt SqƒWt S(NR¤is%s-%s-%s %s:%s:%sR¥i(R&tGetCurrentTimeR§R©RªR«R¬R­R®RxR¯R°RvR(R³tprepareSecondsRUtprevTimeRºR»R¼R½tprevYeart    prevMonthtprevDaytprevHourRÂR­RÅRÆR\tpastTimet pastSeconds((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytCheckIsFBPrepareTimeSs" ** 
    cCsë|jƒ}t|ƒ}tjd||ƒ}|s7dS|jƒ}tjƒ}|jƒ}    |j|    |ƒ}
d|} |j|    | ƒ} tj    ddiƒj
|dƒ} |
| krÊt j |dƒdS| |kr |t jkrøt j |dƒnt j |dƒdSt|jƒƒ}|tjkrU|jtjƒ}|rU|d9}qUnt j|||ƒ}|stdSi|d6}x6|D].\}}t j|||tj|ƒsˆdSqˆWtj    dd    iƒj
|tjƒ}||
}tjƒj|ƒ}|stjd
|ƒdStj|ƒ}tj||||ƒ|j |    ||
d    ƒ|j |    | | d    ƒtj    dd iƒj
|dƒ}t j |d |
d    |gƒt!||
d    ƒt"j#|t$j%d    |gƒt&j'||ƒdS( Nt FbEncouragesFbEncourageCnt_%stFBEncourageBuffiitGeRen_chenxin_93643tXjmj_CopperInspireFullR¤isFbEncourageBuff   ÕÒ²»µ½¼¼ÄÜ%sitGeRen_chenxin_628920((R¼R/R0tGetIpyGameDatatGetInspireMaxLVR&RÄRßRùR•RRURVR}tTYPE_Price_Silver_MoneyR–t GetMoneyCountRxRERwtDef_Player_Dict_FMTDoubleR”R¨tDef_Cost_FBEncouragetDef_SkillID_FBEncourageBufft GetGameDatatGetSkillBySkillIDRTt SkillCommont GetBuffTypet    BuffSkillt    DoAddBuffRütSendFBEncourageInfoRCtDoAddSuccessProgressRHtSuccType_FBEncouraget
EventShelltEventRespons_FBEncourage(RfR²t encourageTypeRtisMaxlvtcurMapIDRsRˆRÕRt encourageLVtencourageCntKeyt encourageCntRÏt encourageCosttisDoubleR£R­R®tmoneyCntt
buffTypeIDt skillBuffIDt    skillBufftbuffTypet
addHurtNum((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytFbEncourageBuff~s`     
!   $
!c Csû|jƒ}tjd|ƒtjƒ}|j||ƒ}|sEdStjƒjƒ}t|ƒ}tj    ddiƒj
|t j ƒ}||d}tj ƒj|ƒ}    |    sÅtjd|ƒdStj|    ƒ}
tj||
|    |ƒt||ƒdS(Ns#AddFbEncourageBuff() curPlayerID=%sRÕisFbEncourageBuff   ÕÒ²»µ½¼¼ÄÜ%s(RßR&RTRÄRùR{R¼R/R0R•RRxRßRàRáRâRãRäRåRæ( RfR²RRRÕRîR2RôRõRöR÷((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytAddFbEncourageBuff¾s$   $ cCs‚xntttjddiƒjƒƒƒD]E}tj|||ƒr(tj|ƒ}|jƒt    j
dƒt Sq(Wt    j
dƒt S(NRÕisClearEncourageBuff() TruesClearEncourageBuff() False( R6tsetR0R•tvaluesRätDelBuffBySkillIDRUtRefreshPlayerAttrByBuffR&RTRvR(RfRRôt playerControl((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytClearEncourageBuffÙs.
  c Csü|jƒ}t|ƒ}tjdi|d6tƒ}|s>dStjƒ}|jƒg|_d}t    j
ƒ}|j ƒ}xX|D]P}|j ƒ}    tj ƒ}
|    |
_|j|||    ƒ|
_|jj|
ƒq‚Wt|jƒ|_tj||ƒdS(NRÔRasFbEncourageCnt_%s(R¼R/R0tGetIpyGameDataByConditionRvRQttagMCFBEncourageInfoRSR_R&RÄRßtGetInspireTypettagMCFBEncourageCntt    MoneyTypeRùt EncourageCntR>RRcR\R]( RftlvRít ipyDataListt encourageInfoRïRÕRRst inspireTypetpackData((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRææs(   
             cCstd|jtjƒƒS(Ni(RËRƒRxt Def_PlayerKey_AreaRewardMultiple(Rf((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetAreaRewardMultiplescCs|jtj|ƒdS(N(tSetDictRxR (RfR¶((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetAreaRewardMultiplescCst||ƒdkS(Ni(t GetFBEnterCD(RfR2((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRZsc    Cst|ƒ}tjddƒ}||kr.dStjddƒ}||kri|jƒ||kridSn||}t|tj|ƒ}|s“dStjtj    ƒƒ}t
d||ƒ}t
d||ƒ}|dkrýtj d|||||fƒn|S(Nt    FBEnterCDiiisF¸±±¾½øÈëCDÖУ¡mapID=%s,timeNum=%s,lastEnterTick=%s,passTick=%s,Ê£Óà=%s( R/R0R•R\R´RxtDef_PDict_LastEnterFBTickR&tChangeTimeStrToNumtGetCurrentDataTimeStrRËR—(    RfR2t enterCDDictt lvLimitDicttcdTickt lastEnterTickttimeNumRt    curCDTick((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRs&   
     cCs”tjƒjƒ}t|ƒ}tjddƒ}||kr@dStjtjƒƒ}t|t    j
||ƒtj d||fƒt ||ƒdS(NRis%UpdateFBEnterTick mapID=%s,timeNum=%s( R&R{R¼R/R0R•RRR·RxRR—Rˆ(RfR2RR((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytUpdateFBEnterTick3s   c Cs&tjdƒ}|sõi}tjƒ}xyt|jƒƒD]e}|j|ƒ}|jƒ}|jƒ}|j|gƒ}||kr:|j    |ƒ|||<q:q:Wx:|j
ƒD],}t ||ƒdkr°|j |ƒq°q°Wtj d|ƒ}nx*|jƒD]\}    }
||
kr|    SqW|S(Nt DataMapIDDicti(R0t GetConfigExRiRÀtGetFBLineCounttGetFBLineByIndexRlR¼RR>tkeysRtpopt SetConfigExRE( R2Rt
dMapIDDictRrRÓRstdMapIDtmIDt
dMapIDListRt    mapIDList((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR/Cs(      cCs?tjddƒ}|sdStjtjƒƒ}tjƒ}|jƒg|_xÆ|j    ƒD]¸}|d|gkr{q]nt
|t j |ƒ}||krÝt |t j ||ƒ|}tjd||f|jƒƒntjƒ}|jƒ||_||_|jj|ƒq]Wt|jƒ|_tj||ƒdS(NRiis&ÐÞÕýÍæ¼Ò¸±±¾CDʱ¼ä mapID=%s,timeNum=%s(R0R•R&RRRQttagMCFBEnterTickListRSt EnterTickListR R´RxRR·R—RSttagMCFBEnterTickR¤t LastEnterTickR>RRcR\R](Rft    syncMapIDRRt    enterListR2Rt enterTickObj((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRˆ`s. 
     # 
        c
Cs«|sItjƒ}gt|jƒƒD]}|j|ƒjƒ^q%}n=t|ƒttgkredSt|ƒtkr€|gn|}t    j
ƒ}|j ƒt |ƒ|_ g|_xà|D]Ø}t    jƒ}|j ƒ||_|jtj|ƒ|_|jtj|ƒ|_|jtj|ƒ|_xCttjƒD]2}|jtj||fƒ}    |jj|    ƒq;Wt |jƒ|_|jj|ƒq»Wtj ||ƒdS(N(!R0RiRÀRjRkRlRrRR6RQttagMCPlayerFBInfoDataRSRt    FBDataCntt
FBDataListt tagMCFBInfoR”RwRxRytEnterCntR"t
RecoverCntR#t
ItemAddCntR^tDef_FBStar_MaxKeyCntt"Def_Player_Dict_PlayerFBStar_MapIdt    PassGradeR>t PassGradeCntR\R](
RfRqRrRÓR't
fbInfoDataR%RetkeyNumt
gradeValue((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRI…s0 7! 
      
    cCs|slg}tjƒ}xQt|jƒƒD]:}|j|ƒ}|jƒsRq+n|j|jƒƒq+Wntj    ƒ}|j
ƒg|_ xV|D]N}tj ƒ}|j
ƒ||_ |jtj|ƒ|_|j j|ƒq’Wt|j ƒ|_|jdkrtj||ƒndS(Ni(R0RiRÀRjRkR.R>RlRQttagMCBuyEnterInfoRStFBInfot tagMCBuyInfoR”RwRxR!tBuyCountRtFBCountR\R](RfR'RrRÓRsR:R%Re((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR€ºs*   
      
    c Csg}x!t|ƒD]}|jgƒqW|d}xÙtd||ƒD]Å}g}x{t|ƒD]m}g}||}||kr’|j|ƒn|||d}    |    |krÀ|j|    ƒn|j|ƒq`Wtj|ƒx+t|ƒD]\}
} | j||
ƒqëWqGW|S(Niii(RÀR>trandomtshuffleR-textend( RÑtgroupCntt    groupListRÓtsetpttmpListtgttmpGrouptaIndextbIndextgitgroup((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetGroupListÜs&
 
   cCsƒtjƒ}|jtj|dƒ|jtj|dƒ|jtj|dƒ|jtj|dƒ|jtj|dƒdS(Ni(    R&R'tSetGameWorldDictRxtMap_Player_AreaReward_GetCnttMap_Player_AreaReward_GetExpt!Map_Player_AreaReward_GetExpPointt$Map_Player_AreaReward_GetZhenQiTotalt"Map_Player_AreaReward_GetTechPoint(RjRª((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytClearAreaRewardRecordös cCsütjƒ}tjƒ}tj|dƒ}tj|ƒ}tj|dƒ}|jtjƒ}|||krqdS|j    tj|ƒtj
d||fƒtj ƒ}    xNt |    j ƒƒD]:}
|    j|
ƒ} | sÛqºn|rù| jƒdkrùqºn| jƒ} |rQ|jtj| ƒ} | |kr3qºn|jtj| | dƒnt| ƒ}| jƒ}tj| ƒ}tj| ƒ}d|krt|dƒ}|j|ƒ}|dkrt|| ƒ|}|jtj| |tjƒ|jtj| |tjƒqnd|kr‚t|dƒ}tj| |ttdƒ|jtj | ƒ}||7}|jtj | |ƒnd    |krºt|d    ƒ}t!j"| |tt#j$tƒ|jtj%| ƒ}||7}|jtj%| |ƒqºqºWdS(
Niis¸øÕ½³¡¸£Àû tick=%s,needAlive=%siitExptZhenQitFBt    TechPoint(&R&RÄR'R0RÊR•RðRxtMap_FBDict_LastAreaRewardTickRÅR—R¿RÀRÁRÂRÇRSRGRQRPR R\RUtGetPlayerReExpR–tAddExptGetFBAreaRewardExpRRtDef_PerPointValueRStPlayerAddZhenQiRvRTt PlayerFamilytAddPlayerFamilyActiveValueRHtDef_AddFAVReason_FamilyInvadeRU(t
cfgKeyNameRt    needAliveRÕRªtrewardIntervaltrewardFormatDictt getCntLimitt lastAwardTickR÷RèRfRjtgetCnttmultipletreLVtreExpRÿtaddExpttotalExpt    addZhenQit totalZhenQit addTechPointt    techPoint((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytDoLogicAreaReward    s^         $ 
 
cCs;|jtj|ƒ}|jtj|ƒ}|tj|S(N(RGRxRRRSR_(RªRjR    R
((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR^?    scCs|jtj|ƒS(N(RGRxRT(RªRj((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBAreaRewardZhenQiD    scCs|jtj|ƒS(N(RGRxRU(RªRj((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBAreaRewardTechPointG    si'cCsštjƒ}|jtjƒ}|||kr2dS|jtj|ƒtjƒ}xBt|jƒƒD].}|j    |ƒ}|s…qdn|||ƒqdWdS(N(
R&RÄRðRxtDef_FB_NotifyFBHelpTickRÅR¿RÀRÁRÂ(Rt
fbHelpFunctintervalRÕR    R÷RèRf((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytNotifyCopyMapPlayerFBHelpJ    s  (ÇR&R}RUR‘tGameMapRéR½RºRäRQR\RâR0tPlayerFBRHRžRaRARCR}R%RRÆR RxR§RBR!tmathRGR+R¦R¥R¨R§R't    Help_stept
Help_wheeltHelp_npct Help_npcTotaltHelp_expt Help_expPointt
Help_moneyt
Help_scoret
Help_gradet Help_leaderIDt Help_isHelptHelp_helpCountt Help_relationt Help_robotJobt Help_isAutotHelp_hasRefreshBosstHelp_gsItemInfoRRR t Over_isSweeptOver_expt Over_expPointt Over_extraExptOver_extraExpPointt
Over_moneytOver_spt Over_costTimet    Over_rankt Over_npcTotalt
Over_wheelt
Over_gradet Over_itemInfotOver_succItemInfot
Over_scoretOver_extrScoret Over_enterLVt Over_leaderIDtOver_xianyuanCointOver_helpPlayerR^tDef_FbActionEncouragetDef_FbActionChangeLineR+R-R3RvR7R8R:R<R>R@RBRERJRMRRqRXRcR°R´R·RÙRêRïRòRóRøRûRþRÿRR t tttFlagTakeRR&R+R-R/RCRHRNRPRjRvRxR{R„RˆR‹RŒRŽRR‘R“R™RR¯R°R³R¸RÁRÅRÐRÒRÔR×RÙRÜRæRýRtDef_TDCfg_SmallWheelSpaceR    RõR÷RùRúRüRRRñRRRzR;R?RPR]RHRgRhRvR†RŠR‰RR¡R£RÉRÓRùRúRRæR RRZRRR/RˆRIR€RORVRtR^RuRvRz(((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt<module>s|                                                                <    1(         0    "                                1                           % % "                
                          %                "        %                                                         #        #      #                     M             5         ;    + @                                          % 5 "         <