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
èé\c@sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    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/dZ0dZ1dZ2dZ3dZ4d Z5d Z6dZ7dZ8d Z9dZ:dZ;dZ<d
Z=dZ>dZ?dZ@dZAdZBdZCdZDdZEd ZFeGd!ƒ\ZHZId"„ZJd#„ZKd$„ZLeMd%„ZNdd&„ZPd'd(„ZQd'd)„ZRd'd*„ZSd+„ZTd,„ZUd-„ZVd.„ZWd/eMeXd0„ZYd1„ZZd'dd/eXd2„Z[d'd/d3„Z\d'd4„Z]d5„Z^d6„Z_d7„Z`d8„Zad9„Zbd:„Zcdd;„Zdd<„Zed/d=„Zfd>„Zgd?„Zhd@„ZidejjdA„ZkidB„ZlidC„ZmdD„ZndE„ZodF„ZpdG„ZqdH„ZrdI„ZsddJ„ZteXdK„ZueXdL„ZvdM„ZwdN„ZxdO„ZydP„ZzdQ„Z{dR„Z|dS„Z}dT„Z~dU„Zd'eMdV„Z€d'eMdW„ZdX„Z‚dY„ZƒdZ„Z„d[„Z…d\„Z†d]„Z‡d^„Zˆd_„Z‰d`„ZŠgda„Z‹db„ZŒggdc„Zdd„ZŽeGdeƒ\ZZZ‘Z’df„Z“eMdg„Z”dh„Z•di„Z–dj„Z—dk„Z˜dl„Z™dm„Zšdn„Z›d'do„Zœdp„Zdq„Zžddr„ZŸd/dds„Z dt„Z¡du„Z¢dv„Z£dw„Z¤dx„Z¥dy„Z¦dz„Z§d{„Z¨d|„Z©d}„Zªd~„Z«d'ddgd„Z¬d€„Z­eXd„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¼eXd„Z½d‘„Z¾d’„Z¿d“„ZÀd”d•„ZÁdS(–iÿÿÿÿNt VSFB_CanEntert VSFB_IsClosetVSFB_NotFamilyIDt VSFB_NotFighttlineIDtsteptwheeltnpctnpcTotaltexptexpPointtmoneytscoretgradetleaderIDtisHelpt    helpCounttrelationt    dataMapIDtisPasstisSweeptextraExpt extraExpPointtsptcostTimetranktitemInfot succItemInfot    extrScoretenterLVt xianyuanCoinicCs*ttd|tjƒjƒf|ƒdS(Ns
GFBD_%s_%s(tsetattrt
PyGameDatat    GameWorldt GetGameWorldt    GetLineID(tattrKeytdata((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt SetGameFBDatafscCs#ttd|tjƒjƒfƒS(Ns
GFBD_%s_%s(tgetattrR R!R"R#(R$((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetGameFBDatagscCst|ƒ}tjd|ƒS(NtFBFunc(tGetRecordMapIDt IpyGameDataPYtGetIpyGameDataNotLog(tmapID((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetFBIpyDatais cCsJt|ƒ}tjd||ƒ}| rF|rFtjd|dƒ}n|S(NtFBLinei(R*R+R,(R-Rt isDefaultLinet fbLineIpyData((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineIpyDatals
  cCs,|st||ƒ}n|s"dS|jƒS(N(R2tNonetGetEnterPosInfo(R-RR1((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineEnterPosInfotsicCs#t||ƒ}|sdS|jƒS(N(R2R3t GetStepTime(R-RR1((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineStepTimeyscCs#t||ƒ}|sdS|jƒS(N(R2R3t GetRefreshNPC(R-RR1((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineRefreshNPC}scCs#t||ƒ}|sdS|jƒS(N(R2R3t GetGradeInfo(R-RR1((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineGradescCs#t||ƒ}|sdS|jƒS(N(R2R3t GetRewardInfo(R-RR1((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineReward…scCs t|ƒ}|sgS|jƒS(N(R.t GetRewardRate(R-t    fbIpyData((szE:\SnxxServerCode\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((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBFuncOpenStateŽscCs$|tjkrdS|tj|kS(N(R tFBOpenTimeRecord(RtdayStr((szE:\SnxxServerCode\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 GetPlayerIDRER!tLogt PlayerControlt
NotifyCodeRCtEntFBAskRet_FBCloset__CheckCanEnterFBByTimetEntFBAskRet_NoEnterCnttCheckIsEnterCDtEntFBAskRet_EnterCDtGetLVt GetLVLimitMint GetLVLimitMaxtEntFBAskRet_LVLimittGetJobRankLimitt
GetJobRanktEntFBAskRet_JobRankLimittGetFBEnterTickettEntFBAskRet_NoTickettEntFBAskRet_OK(t    curPlayerR-RR?R1t reqEnterCnttisNotifyt    isTeamAsktplayerIDtcanEntert
notifyMarktcurLVt
lvLimitMint
lvLimitMaxt jobRankLimit((szE:\SnxxServerCode\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(    RaR-R?RbRdtmaxTimestenterCnttmaxCnttfbType((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRSÙ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(R2t GetTicketIDRqRztGetTicketCostCntR!tErrLogRNRrRsRttlentGetItemManagertGetPackRxtrptItemt
ItemCommontGetItem_FromPack_ByID_ExExtGetTicketPriceRPt HaveMoneyExRCtTYPE_Price_Gold_Paper_MoneytbooltDebugLog(RaR-RR1RbRdtticketIDtticketCostCntListR‚tcostCntt totalCostCnttitemPacktenought    indexListthasBindtlackCntt ticketPricet    costMoneyt costMoneyList((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR^
s6   &
 !  
     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(R^R3RzRPtPayMoneyRstDef_Cost_EnterFBRqR‰RŠRxR‹RŒt
ReduceItem( RaR-RR‚tisEnoughR™tdelCntRšRžtinfoDictt    moneyTypetmoneyNumR—((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytDelFBEnterTicket2s'
 
cCs|j||tjƒS(N(RrRstDef_PDictType_FB(Ratkeyt defaultValue((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBPDictValueGscCstj|||tjƒdS(N(RPtNomalDictSetPropertyRsR¬(RaR­tvalue((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetFBPDictValueOsc Csptjdƒ}|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|ƒtS(s¶¯Ì¬¸üи±±¾NPC³É³¤µÈ¼¶
    tNPCAttrStrengthenNiisMNPC³É³¤¶¯Ì¬µÈ¼¶±ä¸ü: isLeave=%s,totalLV=%s,playerCnt=%s,averageLV=%s,maxLV=%s(t ReadChConfigtGetEvalChConfigR*R!RvtGetMapIDt    NPCCommontNPCAttr_DynNPCLVMaptGetMapCopyPlayerManagertxrangetGetPlayerCounttGetPlayerByIndexR3tIsEmptyRNRWt    GetGameFBt SetGameFBDictRstDef_FB_NPCStrengthenAverageLVtDef_FB_NPCStrengthenMaxLVRORq( RetisLeavetattrStrengthenInfoR-tmaxLVttotalLVt    playerCnttcopyMapPlayerManagertiRaRht    averageLVtgameFB((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytUpdFBLineNPCStrengthenLVSs<  
 
 
     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!RvR¶R·tNPCAttr_DynPCCoefficientMapR¾R¹R»tmaxR¿RstDef_FB_NPCStrengthenPlayerCntROt GetNPCManagerRºt GetNPCCountt GetNPCByIndextGetIDtGetTypeRxt ntFunctionNPCtntPettDoNPCAttrStrengthenRzRq( ReRÂRÃR-tcoefficientDicttisRefreshNPCAttrNowRÊt playerCounttgameNPCManagertindextcurNPC((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytUpdFBLineNPCStrengthenPlayerCntxs2  
      cCsA|jtj|ƒ|jtj|ƒtjd||fƒdS(s{ ÉèÖùÖÎïµôÂäÖ´ÐдÎÊýÍò·ÖÂÊ ¼° ¹Ì¶¨¼Ó³É´ÎÊýÖµ
    @param doCountRate: ´ÎÊýÍò·ÖÂÊ
    @param doCountAdd: ´ÎÊý¹Ì¶¨Öµ    
    s7ÉèÖùÖÎïµôÂäÖ´ÐдÎÊýÐÅÏ¢: doCountRate=%s, doCountAdd=%sN(R¿RstDef_FB_DropDoCountRatetDef_FB_DropDoCountAddR!RO(RÊt doCountRatet
doCountAdd((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetNPCDropDoCountRatešscCstjƒjtjƒdkS(Ni(R!R¾tGetGameFBDictByKeyRstMap_FBDict_PropertyMark(((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetHadSetFBPropertyMark¥scCstjƒjtjƒdS(Ni(R!R¾RãRsRä(((szE:\SnxxServerCode\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¿RsRäR3RPtSetFBFuncLineIDR’RNR¹RºR»R¼(t propertyMarkt    setPlayert playerManagerRÛRa((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetFBPropertyMark±s   cCstjƒj|jƒtjƒS(N(R!R¾tGetPlayerGameFBDictByKeyRÒRstFBPlayerDict_IsDelTicket(Ra((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetHadDelTicketÄscCs&tjƒj|jƒtj|ƒdS(N(R!R¾tSetPlayerGameFBDictRÒRsRí(RatdelSign((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetHadDelTicketÊs"cCs:d}tjƒ}|jƒdkr6|jdƒ}n|S(s »ñÈ¡µ±Ç°µ¥È˸±±¾Íæ¼Ò iN(R3R!R¹R»R¼(RaRê((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetCurSingleFBPlayerÎs
 cCsE|r tjS|jƒr>tjƒjtjƒdkr>tjStjS(Ni(    RstFB_JoinType_HelpR}R!R¾RãtDef_FB_TeamPlayerCounttFB_JoinType_MultitFB_JoinType_Single(Rat isHelpFight((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetFBJoinTypeÖs
*cCs0|tjƒjƒ}tjƒjƒ}||S(N(R!R"t GetOpenFBTickRvt GetExistTime(tticktlastTickt    existTime((szE:\SnxxServerCode\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ãRst Def_FB_GradetFBLogictDoFBHelptintt GetFBStepTickRˆRÍR¿R’t Sync_TimeTickRqR¹RºR»R¼(Rût gradeTimeListRattimeTypetlowestRÊtcurGradet    useSecondt
diffSecondtupdGradet gSecondTotaltgSecondRêRÛ((szE:\SnxxServerCode\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_isPasstjsontdumpsRzt    Frm_FBEndR!R’RN(RaRRRtoverDicttoverMsg((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt NotifyFBOvers
( cCsT|ji|t6ƒtj|dtƒ}|j|ƒtjd||jƒƒdS(NRsNotifyFBHelp: %s(    Rt Help_lineIDRRRzt
Frm_FBHelpR!R’RN(RaRthelpDictthelpMsg((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt NotifyFBHelp!s
 cCs*tj|dtƒ}|jd|ƒdS(NRs%s(RRRzR(RatmsgDict((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytNotify_FB_Over-scCs0tj|dtƒ}|jdt|ƒƒdS(NRs%s(RRRzRtstr(RaR((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt Notify_FBHelp2scCsEg}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((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonItemList8s,      cCsBg}x5|jƒD]'\}}|ji|d6|d6ƒqW|S(NR©t
moneyValue(titemsR1(t    moneyDictt    moneyListR©R7((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonMoneyListRscCsBg}x5|jƒD]'\}}|ji|d6|d6ƒqW|S(NtNPCIDtkillCnt(R8R1(tnpcDicttkillListtnpcidR=((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonNPCKillListYscCsBg}x5|jƒD]'\}}|ji|d6|d6ƒqW|S(NR<tHPPer(R8R1(R>R?R@RB((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonNPCHPPerList`sc Cstjƒ}|jƒ||_g|_xZ|D]R\}}}}tjƒ}||_||_||_||_    |jj
|ƒq/Wt |jƒ|_ |r°t j||ƒnTtjƒ}    xEt|    jƒƒD]1}
|    j|
ƒ}|sðqÏnt j||ƒqÏWdS(sáͬ²½¶¯Ì¬Õϰ­ÎïÊÇ·ñÓÐЧÐÔ
    @param barrierPointList: Õϰ­ÎïµãÁбí [[aPosX,aPosY,bPosX,bPosY], [aPosX,aPosY,bPosX,bPosY], ...]
    @param state: ÊÇ·ñÓÐЧ
    @param curPlayer: Ö¸¶¨Í¨ÖªÄ¿±êÍæ¼Ò£¬ÎªNoneʱ¹ã²¥±¾µØÍ¼ËùÓÐÍæ¼Ò
    N(tChPyNetSendPackttagMCDynamicBarrierStatetCleartStatet BarrierListttagMCDynamicBarriertAPosXtAPosYtBPosXtBPosYR1RˆR$t NetPackCommont SendFakePackR!R¹trangeR»R¼( tbarrierPointListtstateRatbarrierStatePacktaPosXtaPosYtbPosXtbPosYtbarriert playManagerRÈ((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSyncDynamicBarrierStategs* 
                          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ÑR3tGetNPCIDt
GetVisibleR"tGetTickR·t
NPCControlt DoNPCRebornt
SetVisibleRqRz(    t
doorIDListttypetisRebornRÚRÈRÜtnpcIDtcurTypeRû((szE:\SnxxServerCode\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ÏtFindGameNPCByNPCIDR3R‡R\R"R]R·R^R_R`RqRz(RaRbRcRÚRdRÜReRû((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytOpenOrCloseDoor®s&      cCstjƒj|ƒdS(N(R!R¾tBroadcast_FbBillboard(tmaxCount((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt InitBillBoardÐscCsX|jƒ}|jƒ}tjƒj|ƒ}|j|ƒ|j|ƒ|jdƒdS(Ni(RNtGetNameR!R¾tGetFbBillBoardPlayert SetPlayerIDt SetPlayerNametSetPoint(Rat curPlayerIDt curPlayerNametplayerBillBoard((szE:\SnxxServerCode\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¾RmRNtmintGetPointRÍRp(RaRbR±Rstpoint((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytAddorReduceBillBoardès   cCs,tjƒj|jƒƒ}|j|ƒdS(N(R!R¾RmRNt
SetCountry(RatcountryRs((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetCountryBillBoardøs cCs%tjƒj|jƒƒ}|jƒS(N(R!R¾RmRNRv(RaRs((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetPlayerBillBoardPointscCs%tjƒj|jƒƒ}|jƒS(N(R!R¾RmRNtGetBillboardIndex(RaRs((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetPlayerIndex_InBillBoard
scCs'tjƒ}|jƒ|j|ƒdS(N(R!R¾tSortFbBillBoardPlayerRi(RjRÊ((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytNotifyBillBoards 
 cCsAtjƒ}|j|ƒ|j|ƒtjd||fƒdS(NsSetFBStep %s, tick=%s(R!R¾t    SetFBStept SetFBStepTickRO(RRûRÊ((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRs
   cCsatjƒ}xNt|jƒƒD]:}|j|ƒ}|jƒsFqn|j|||ƒqWdS(N(R!R¹RPR»R¼RNtSync_FbSystemMessage(tkeepTimetmsgTypetmsgRêRÈRa((szE:\SnxxServerCode\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¹RPR»R¼RNR(R…tmsgTickRdt
isContinueRêRÛRa((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSync_Player_TimeTickAs  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(R3R!R¾RãRstMap_FBDict_PrevFBTimeTypeRqRzROR¿R¹RPR»R¼RNR(    R…R‡t isSendPrevMsgRdRˆt prevMsgTypeRêRÛRa((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSync_Player_TimeTickExUs"           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"RqRPtGetGameWorldCounttGetGameFBByFbIndext GetFamilyVSt GetFamilyIDt GetVSFamilyIDRztGetOpenStateByFbIndexRxtfbosOpentDef_VSFB_IsClosetDef_VSFB_CanEntertDef_VSFB_NotFighttDef_VSFB_NotFamilyID(tfamilyIDt    gameWorldt todayNotFightRÛRÊtfamilyVsManagertattackIDt    defenceID((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetCanEnterVSFBrs"         cCs|tjƒ}xit|jƒƒD]U}|j|ƒ}|jƒ}|jƒ}|jƒ}|||gkr||fSqWdS(N(NN(    R!R"RPRŽRRR‘R’R3(R™RšRÛRÊRœRRž((szE:\SnxxServerCode\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((szE:\SnxxServerCode\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!Rvt GetMapFBTypeRxR{ROR"RPRŽt GetPropertyID(tteamIDtgameMaptgameWorldManagerRÛRš((szE:\SnxxServerCode\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!RvR¤RxR{R©R}RqtGetCloseFBTickRzt    GetTeamLVt    tmlLeadert GetOpenStatetfbosWaitForClose(t    askStructt gameMapFBTypeRš((szE:\SnxxServerCode\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ÏRPRÐRÑRÒtGetGameNPCObjTypeRxtgnotPetR1(t gameNPCListRÚRÛRÜ((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetMapNPCListðs 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ÏRPRÐRÑRÒtGameObjtGetHPR³RxR´t
gnotSummont GetObjDetailR3tGetOwnertGetGameObjTypet    gotPlayerR1(t findNPCListRÚRÛRÜt curNPCDetailt curNPCOwner((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetMapSystemNPCLists" '  !    cCsdtjƒ}xQtd|jƒƒD]:}|j|ƒ}|jƒdkrOq"ntj|ƒq"WdS(Ni(R!R¹RPR»R¼RÒRPt PlayerLeaveFB(RêRÈRa((szE:\SnxxServerCode\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³RxR¹R!RºR3R»R¼R½tgotNPCR1(RµR¾RÜR¿RÀ((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetMapSystemNPCListEx?s           cCssxltƒD]a}|dkr"q
n|jƒtjtjgkrFq
n|jƒ|kr^q
ntj|ƒq
WdS(N(    RÅR3RÓRxRÔRÕR[R·t    SetDeadEx(t ignoreIDListRÜ((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt
ClearFBNPC_s cCssxltƒD]a}|dkr"q
n|jƒtjtjgkrFq
n|jƒ|kr^q
ntj|ƒq
WdS(N(    RÅR3RÓRxRÔRÕR[R·RÆ(tclearNPCIDListRÜ((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt ClearFBNPCExts cCsšd}xtƒD]‚}|dkr(qn|jƒtjtjgkrLqn|jƒ}|rp||krpqn|rˆ||krˆqn|d7}qW|S(Nii(RÅR3RÓRxRÔRÕR[(t    npcIDListRÇtnpcCntRÜRd((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetFBNPCCntŠs  cCsgtjƒ}tj|}tj|}tj|}|j||ƒ|j||ƒ|j||ƒdS(N(R!R¾RstMap_NPC_RandomMapNPCIDtMap_NPC_RandomMapNPCNeedCnttMap_NPC_RandomMapNPCPerMaxCntR¿(t refreshMarkRdtneedRefreshCntt    perMaxCntRÊtnpcIDKeyt
needCntKeyt perMaxCntKey((szE:\SnxxServerCode\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¿RstMap_TDNPC_RefreshFileNumtMap_TDNPC_RefreshSignKeytMap_TDNPC_RefreshStartTicktMap_TDNPC_RefreshBigWheelNumtMap_TDNPC_RefreshSmallWheelNumtMap_TDNPC_CurWheelStartTicktMap_TDNPC_CurWheelIsOvertMap_TDNPC_AllWheelIsOvertMap_TDNPC_NPCCnttMap_TDNPC_NPCBossCntt__TDStartRefreshNotify(trMarktfileNumtsignRûRcRÊ((szE:\SnxxServerCode\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¿RsRØRÙRÚRÛRÜRÝRÞRàRá(Rãt
isResetNPCRÊ((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytCloseTDNPCRefresh×s cCs;tjƒ}x(|D] }|jtj|ƒstSqWtS(N(R!R¾RãRsRßRzRq(t    rMarkListRÊRã((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytIsTDNPCRefreshOverês
  cCs;tjƒ}x(|D] }|jtj|ƒstSqWtS(N(R!R¾RãRsRÞRzRq(RéRÊRã((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytIsTDWheelRefreshOverõs
  cCsdtjƒ}xQ|D]I}|jtj|ƒ}|jtj|ƒ}|dksX| rtSqWtS(Ni(R!R¾RãRsRàRÞRzRq(RéRÊRãRÌtcurWheelIsOver((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytIsTDNPCCurWheelAllKilledýs  c
Cs»tjƒ}|jtj|ƒ}|jtj|ƒ}|jtj|ƒ}|dkr^tStj    d|ƒ}|t
|ƒkr‡tS||}|t }||}    |dkoº|    |kS(Nis    TD_%s_Cfg( R!R¾RãRsRÚRÛRØRzR´RµRˆtDef_TDCfg_NextWheelTime(
RãRûRÊt    startTickt curWheelNumRätrefreshCfgListt wheelInfoListtforceNextWheelTimetpassTick((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytCheckForceEnterNextWheel s  
 
 
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ãRsRÛR¿RÜRÝRÞRØRÙRâR’(RãRûRcRÊRðt nextWheelNumRätsignKey((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetEnterTDNextWheel#s 
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_NotifyMarkRPtFBNotify(
RÊRätwheelNumRåtrefreshNPCDicttrefreshNPCListR@RñRòRg((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRâ9s 
 
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~RstDef_NPC_Dict_FromRefreshMarkRáRãt
IsGameBossRÍR¿RàR’(
RÜR±RÊRãtcurMarkNPCBossCntKeytbossCnttisBosstcurMarkNPCCntKeyRÌtupdCnt((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt UpdTDNPCCntOs   
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ãRsRÛRØR´RµRˆRîtDef_TDCfg_PrepareTimeRÝRÍRÚR3R‰RRq(RaRãR…RûtmsgIDRÊRðRäRñRòt nextWheelTimet prepareTimetcurWheelStartTickRôtnextWheelRemainTickRï((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSync_TDNextWheelTickhs0  
 
 
 
 
 c Cs¨t|ƒ}|jƒ}|jƒ}d}|jƒ}tj||ƒ}|jtj|ƒ}|jtj    |ƒ}    |jtj
|ƒ}
||||    ||
} | S(Ni( R.RptGetExtraTimesMWPriIDtGetExtraTimesVIPPriIDt    PlayerViptGetPrivilegeValueRrRstDef_Player_Dict_BuyFbCntDaytDef_Player_Dict_RecoverFbCnttDef_Player_Dict_ItemAddFbCnt( RaR-R?Rt MWPrivilegeIDtmwAddCnttextraTimesVIPPriIDtextraCnttbuyCntt recoverFbCntt
itemAddCntRƒ((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRu‹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'(R.RrRsRtRpRRRRRRRtcopytdeepcopyt    enumerateRÍtGetBuyTimesVIPPriID(RaR-R?R‚RRRRRRRRtcntListtrCntListtsumCntRÈtcntt rRecoverFbCntt    rExtraCntt
rCommonCnttrBuyCntt rItemAddCnttbuyTimesVIPPriIDt    canBuyCnttnoBuyCnt((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBDetailCntInfošs0   
 
  cCsBt|ƒ}|jtj|ƒ}|dkr>tj||ƒS|S(Ni(R*RrRsRtR!tGetDataByDigitPlace(RatfbIDtlineBitR‚((szE:\SnxxServerCode\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*RsRtRrR!R-RutChangeDataByDigitPlaceRPR°RuRztPlayerActivitytOnEnterFBActivityt PlayerSuccesstAddEnterFBSuccesstDef_FBMapID_SealDemonR.Rpt$Def_Player_Dict_FbCntRegainStartTimeRttimetNotifyFBCntRegainInfoR’RNtSync_FBPlayerFBInfoDataRq( RaR.taddCountR/t enterCntKeyR‚tcurLineEnterCntt updEnterCnttupdValueRƒRR?tdayTimes((szE:\SnxxServerCode\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(RsR6R0R.RpRuRÍRR8R+t
GetFuncCfgRrR7t$Def_Player_Dict_FbCntRegainTotalTimeRuRtRPR°R!R’R:R9(RaR-R‚R?t maxDayTimesRƒt    maxCanAddtcurTimetrecoverIntervaltlastRegainTimetneedTimetpassTimet
recoverCntR<t newEnterCntt    startTime((szE:\SnxxServerCode\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(NRB(RR8R+RCRDttagMCFBCntRegainRemainTimeRFtInfoListRsR6ttagMCFBCntRegaint    DataMapIDRrR7RDt
RemainTimeR1RˆtCntRNRO(    RaRGRHt
regainDataR-tmapInfoRIRJRK((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR9 s. 
     
        
      cCsytjƒjƒ}t|ƒ}|jtj|ƒ}t||ƒ}||krutjƒj    |j
ƒtj dƒt St S(Ni(R!RvR¶R*RrRsRtRuR¾RïRÒtFBPlayerDict_IsHelpFightRqRz(RaR-R‚Rƒ((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetIsHelpFight(s  "cCstjƒj|jƒtjƒS(N(R!R¾RìRÒRsRX(Ra((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetIsHelpFight3sc    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(R+tIPY_DataRºtGetFBFuncCounttGetFBFuncByIndext GetDataMapIDt GetWeekTimestGetWeekResetTypeRstDef_Player_Dict_EnterFbCntWeekRrRPR°R1R:(    Rat
onWeekTypet    mapIDInfot
ipyDataMgrRÈtipyDataR-t    weekTimestenterCntWeekKey((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytFBOnWeek7s"    c Cs–tjd|jƒƒtj||ƒg}tjƒ}x4t|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|j|ƒqKW|r’t||ƒt ||ƒndS(Ns¸±±¾¹ýÌì´¦Àí,FBOnDay...is ÖØÖÃÈÕÖúÕ½½±Àø´ÎÊýÏÞÖÆ£¡mapID=%ssY    ÖØÖÃ:mapID=%s,dayTimes=%s,buyCnt=%s,recoverCnt=%s,itemAddCnt=%s,maxCnt=%s,enterCnt=%ss.        ÌØÊ⸱±¾ÒѽøÈë´ÎÊý¸üÐÂ: newEnterCnt=%s(!R!RORNRtOnFBPlayerOnDayR+R[RºR\R]R^tGetDayHelpCountMaxRrRstDef_PDict_FBRealHelpCountRPR°R’RpRRRtGetDayResetTypeRuRtRRRR6RÍR1R:tSync_FBPlayerFBBuyCount(Rat    onDayTypeRcRdRÈReR-RR@RƒR<R‚t    buyCntKeyRt recoverCntKeyRLt itemAddCntKeyRRM((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytFBOnDayTsR    .         cCsCtj|ƒt|ƒt|ƒt|ƒt|ƒt|ƒdS(N(RtOnFBPlayerOnLoginR:tSyncFBEnterTickRmR9tCheckFBPlayerOffine(Ra((szE:\SnxxServerCode\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¶R.tGetOfflineTimeRPtGetPlayerLeaveServerSecondR!R’RÂ(RatmapidRet OfflineTimetleaveServerSecond((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRu¥s    c    Cs¥tjƒj|ƒ}|j}t|ƒ}|s4dS|jƒ}|s[tjd|ƒdStj||ƒ}|j    t
j |ƒ}|j ƒ}    t ||ƒ}
t||ƒ} |t
jkrã|    rã|
| |    krãtjdƒdS||krtjd|ƒdStjdƒ} | jt|ƒdƒ} t| ƒ} tj|tj| ƒ}|sYdSi|d6}xG|D]?\}}tj|||t
j|ƒsmtjd| ƒdSqmWtj|t
j ||dƒt||gƒtj|d    |gƒ|j    t
j|ƒ}|r¡t ||ƒ}
|
| |    kr¡tt j ƒƒ}|j    t
j!|ƒ}|sotj"d
ƒ}ntj|t
j!||||ƒt#|ƒq¡ndS( NsmapID:%s ²»¿ÉÒÔ¹ºÂò½øÈë´ÎÊýsµ±Ç°´ÎÊýÒÑÂú£¬ÎÞÐ蹺Âò¡£¡£s¹ºÂò´ÎÊýÒѾ­ÓÃÍêmapID=%st BuyFBCntCostt0RŸsÏÉÓñ²»×ã!costGold=%sitFBEnterTimeBuyRB($R!tGetPlayerManagerR¼tFBIDR.RR’RRRrRsRRpRuR0R6R+tGetFuncEvalCfgRùR!tevalRPRRCRR£tDef_Cost_BuyFBCntR°RmRQR7RR8RDRCR9(t playerIndext
clientDataRûRaR-ReR)R*t    hasBuyCntRERƒR‚t costGoldDicttcostGoldRžR¨R©RªRIRGRJ((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytBuyFBEnterCount¼sZ       %    "cCstj|tjƒS(N(t EventReporttWriteFuncCMEAcceptableRCtGameFuncID_RunDaily(Ra((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytDoFuncOpen_RunDailyîscCstj|tjƒS(N(RŠR‹RCtGameFuncID_RunFamily(Ra((szE:\SnxxServerCode\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ÍtstrptimeRstTYPE_Time_FormattsecondsR¾RãtMap_FBDict_NotifyOpenRPt WorldNotifyR¿(t openTimeListt    notifyMsgtnotifyTimeListR-t mergeMinOSDt mergeMaxOSDt mergeMapInfoRGtnextTimetcurYeartcurMonthtcurDaytcurHourtnextYeart    nextMonthtnextDaytnextHourtstartTimeStrFormattmaxNotifyMinutet remaindMinuteR™tminutet startTimeStrRNt
remainTimeRœt msgParamList((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt FBOpenNotifyús:**  
          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šRsR›RœRqRz(RŸtprepareSecondsRGtprevTimeR¦R§R¨R©tprevYeart    prevMonthtprevDaytprevHourR®R™R±R²RNtpastTimet pastSeconds((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytCheckIsFBPrepareTime6s" ** 
    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*R+tGetIpyGameDatatGetInspireMaxLVR!R¾RÒRìRRùRPRQRxtTYPE_Price_Silver_MoneyR‚t GetMoneyCountRsR6RrtDef_Player_Dict_FMTDoubleRR£tDef_Cost_FBEncouragetDef_SkillID_FBEncourageBufft GetGameDatatGetSkillBySkillIDROt SkillCommont GetBuffTypet    BuffSkillt    DoAddBuffRïtSendFBEncourageInfoR4tDoAddSuccessProgressRCtSuccType_FBEncouraget
EventShelltEventRespons_FBEncourage(RaR­t encourageTypeRûtisMaxlvtcurMapIDReRƒRÊRqt encourageLVtencourageCntKeyt encourageCntRÄt encourageCosttisDoubleRžR¨R©tmoneyCntt
buffTypeIDt skillBuffIDt    skillBufftbuffTypet
addHurtNum((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytFbEncourageBuffas`     
!   $
!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!ROR¾RìRvR¶R*R+RRùRsRËRÌRÍRÎRÏRÐRÑRÒ( RaR­RûRqRÊRÚR-RàRáRâRã((szE:\SnxxServerCode\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( R)tsetR+RtvaluesRÐtDelBuffBySkillIDRPtRefreshPlayerAttrByBuffR!RORqRz(RaRûRàt playerControl((szE:\SnxxServerCode\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ÀRSsFbEncourageCnt_%s(R¶R*R+tGetIpyGameDataByConditionRqRDttagMCFBEncourageInfoRFRQR!R¾RÒtGetInspireTypettagMCFBEncourageCntt    MoneyTypeRìt EncourageCntR1RˆRURNRO( RatlvRÙt ipyDataListt encourageInfoRÛRÊRqRet inspireTypetpackData((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRÒÉs(   
             cCstd|jtjƒƒS(Ni(RÍR~Rst Def_PlayerKey_AreaRewardMultiple(Ra((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetAreaRewardMultipleãscCs|jtj|ƒdS(N(tSetDictRsRø(RaR±((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetAreaRewardMultipleêscCst||ƒdkS(Ni(t GetFBEnterCD(RaR-((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRUósc    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*R+RRWR¯RstDef_PDict_LastEnterFBTickR!tChangeTimeStrToNumtGetCurrentDataTimeStrRÍR’(    RaR-t enterCDDictt lvLimitDicttcdTickt lastEnterTickttimeNumRôt    curCDTick((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRüús&   
     cCs”tjƒjƒ}t|ƒ}tjddƒ}||kr@dStjtjƒƒ}t|t    j
||ƒtj d||fƒt ||ƒdS(NRýis%UpdateFBEnterTick mapID=%s,timeNum=%s( R!RvR¶R*R+RRÿRR²RsRþR’Rt(RaR-RR((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytUpdateFBEnterTicks   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(R+t GetConfigExR[RºtGetFBLineCounttGetFBLineByIndexR^R¶RùR1tkeysRˆtpopt SetConfigExR8( R-Rt
dMapIDDictRdRÈRetdMapIDtmIDt
dMapIDListRt    mapIDList((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR*&s(      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(NRýiis&ÐÞÕýÍæ¼Ò¸±±¾CDʱ¼ä mapID=%s,timeNum=%s(R+RR!RÿRRDttagMCFBEnterTickListRFt EnterTickListR R¯RsRþR²R’RNttagMCFBEnterTickRŸt LastEnterTickR1RˆRURNRO(Rat    syncMapIDRRt    enterListR-Rt enterTickObj((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRtCs. 
     # 
        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(!R+R[RºR\R]R^RbRR)RDttagMCPlayerFBInfoDataRFRˆt    FBDataCntt
FBDataListt tagMCFBInfoR€RrRsRttEnterCntRt
RecoverCntRt
ItemAddCntRPtDef_FBStar_MaxKeyCntt"Def_Player_Dict_PlayerFBStar_MapIdt    PassGradeR1t PassGradeCntRNRO(
RaRcRdRÈRt
fbInfoDataRRWtkeyNumt
gradeValue((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR:hs0 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(R+R[RºR\R]RR1R^RDttagMCBuyEnterInfoRFtFBInfot tagMCBuyInfoR€RrRsRtBuyCountRˆtFBCountRNRO(RaRRdRÈReR&RRW((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRm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ºR1trandomtshuffleRtextend( RÆtgroupCntt    groupListRÈtsetpttmpListtgttmpGrouptaIndextbIndextgitgroup((szE:\SnxxServerCode\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"tSetGameWorldDictRstMap_Player_AreaReward_GetCnttMap_Player_AreaReward_GetExpt!Map_Player_AreaReward_GetExpPointt$Map_Player_AreaReward_GetZhenQiTotalt"Map_Player_AreaReward_GetTechPoint(ReRš((szE:\SnxxServerCode\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"R+RCRRãRstMap_FBDict_LastAreaRewardTickR¿R’R¹RºR»R¼R¸RNRBR=R<RùRWRPtGetPlayerReExpR‚tAddExptGetFBAreaRewardExpR>tDef_PerPointValueR?tPlayerAddZhenQiRqR@t PlayerFamilytAddPlayerFamilyActiveValueRCtDef_AddFAVReason_FamilyInvadeRA(t
cfgKeyNameRût    needAliveRÊRštrewardIntervaltrewardFormatDictt getCntLimitt lastAwardTickRêRÛRaRetgetCnttmultipletreLVtreExpRëtaddExpttotalExpt    addZhenQit totalZhenQit addTechPointt    techPoint((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytDoLogicAreaRewardæs^         $ 
 
cCs;|jtj|ƒ}|jtj|ƒ}|tj|S(N(RBRsR>R?RK(RšReR    R
((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRJ"    scCs|jtj|ƒS(N(RBRsR@(RšRe((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBAreaRewardZhenQi'    scCs|jtj|ƒS(N(RBRsRA(RšRe((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBAreaRewardTechPoint*    si'cCsštjƒ}|jtjƒ}|||kr2dS|jtj|ƒtjƒ}xBt|jƒƒD].}|j    |ƒ}|s…qdn|||ƒqdWdS(N(
R!R¾RãRstDef_FB_NotifyFBHelpTickR¿R¹RºR»R¼(Rût
fbHelpFunctintervalRÊRüRêRÛRa((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytNotifyCopyMapPlayerFBHelp-    s  (ÂR!RxRPRŒtGameMapRÕR·R´RÐRDRNRÎR+tPlayerFBRCRŠRMR2R4tPlayerMagicWeaponR RR·RRsR“R.RtmathR8RR–R•R˜R—Rt    Help_stept
Help_wheeltHelp_npct Help_npcTotaltHelp_expt Help_expPointt
Help_moneyt
Help_scoret
Help_gradet Help_leaderIDt Help_isHelptHelp_helpCountt Help_relationRRRt 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_xianyuanCoinRPtDef_FbActionEncouragetDef_FbActionChangeLineR&R(R.RqR2R3R5R7R9R;R=R@RERHRzRlRSR^R«R¯R²RËRÝRâRåRæRëRîRñRòRøRþt tttFlagTakeRRRR R"R6R;RARCRZRfRhRkRtRxR{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íRõRøRâRR RuR,R0RAROR9RYRZRhRrRvRuR‰RRRµR¿RåRæRìRÒRùRûRURüRR*RtR:RmR;RBR`RJRaRbRf(((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt<module>sr                                                                <    1(         %    "                                1                           " % "                
                          %                "        %                                                         #        #      #                     F             2         ;    + @                                          % 5 "         <