cehua_LC
2018-11-26 19ed0ff715c2960e92f41b475a684d88c68de533
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
ªãû[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/dZ0dZ1d Z2d Z3dZ4dZ5d Z6dZ7dZ8dZ9d
Z:dZ;dZ<dZ=dZ>dZ?dZ@dZAdZBdZCeDdƒ\ZEZFd„ZGd „ZHd!„ZIeJd"„ZKdd#„ZMd$d%„ZNd$d&„ZOd$d'„ZPd(„ZQd)„ZRd*„ZSd+„ZTd,eJeUd-„ZVd$dd,eUd.„ZWd$d,d/„ZXd$d0„ZYd1„ZZd2„Z[d3„Z\d4„Z]d5„Z^d6„Z_dd7„Z`d8„Zad,d9„Zbd:„Zcd;„Zdd<„Zedejfd=„Zgid>„Zhid?„Zid@„ZjdA„ZkdB„ZldC„ZmdD„ZndE„ZoddF„ZpeUdG„ZqeUdH„ZrdI„ZsdJ„ZtdK„ZudL„ZvdM„ZwdN„ZxdO„ZydP„ZzdQ„Z{d$eJdR„Z|d$eJdS„Z}dT„Z~dU„ZdV„Z€dW„ZdX„Z‚dY„ZƒdZ„Z„d[„Z…d\„Z†gd]„Z‡d^„Zˆggd_„Z‰d`„ZŠeDdaƒ\Z‹ZŒZZŽdb„ZeJdc„Zdd„Z‘de„Z’df„Z“dg„Z”dh„Z•di„Z–dj„Z—d$dk„Z˜dl„Z™dm„Zšddn„Z›d,ddo„Zœdp„Zdq„Zždr„ZŸds„Z dt„Z¡du„Z¢dv„Z£dw„Z¤dx„Z¥dy„Z¦dz„Z§d$ddgd{„Z¨d|„Z©eUd}„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¸eUdŒ„Z¹d„ZºdŽ„Z»d„Z¼dd‘„Z½dS(’iÿÿÿÿNt VSFB_CanEntert VSFB_IsClosetVSFB_NotFamilyIDt VSFB_NotFighttlineIDtsteptwheeltnpctnpcTotaltexptexpPointtmoneytscoretgradetleaderIDt    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 SetGameFBDatacscCs#ttd|tjƒjƒfƒS(Ns
GFBD_%s_%s(tgetattrRRRR (R!((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetGameFBDatadscCst|ƒ}tjd|ƒS(NtFBFunc(tGetRecordMapIDt IpyGameDataPYtGetIpyGameDataNotLog(tmapID((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetFBIpyDatafs 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.pytGetFBLineIpyDatais
  cCs,|st||ƒ}n|s"dS|jƒS(N(R/tNonetGetEnterPosInfo(R*RR.((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineEnterPosInfoqsicCs#t||ƒ}|sdS|jƒS(N(R/R0t GetStepTime(R*RR.((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineStepTimevscCs#t||ƒ}|sdS|jƒS(N(R/R0t GetRefreshNPC(R*RR.((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineRefreshNPCzscCs#t||ƒ}|sdS|jƒS(N(R/R0t GetGradeInfo(R*RR.((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineGrade~scCs#t||ƒ}|sdS|jƒS(N(R/R0t GetRewardInfo(R*RR.((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(RtFBEnterTimeLimiitMapIDRRtGetGameWorldDictByKeyt ShareDefinetDef_Notify_WorldKey_FBCanEnter(R((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBFuncOpenState‹scCs$|tjkrdS|tj|kS(N(RtFBOpenTimeRecord(RtdayStr((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBHasOpenToday“sic CsÞ|jƒ}|r?t|ƒsRtjd||ƒ|rKtj|dƒntjS|jƒ}    |j    ƒ}
|    r|
r|t
j kr|j t
j |ƒ} t||ƒ} | || krtjd|| ||    | f|ƒ|rýtj|d|gƒntjSnt||ƒr?|r5tj|d|gƒntjSn|r×|jƒ} |jƒ}|jƒ}|rÁ| |krÁtjd||| |f|ƒ|rºtj|d|gƒntjS|r| |krtjd||| |f|ƒ|rtj|d|gƒntjS|jƒ}|rtj|ƒ|krtjd    ||tj|ƒ|f|ƒ|rˆtj|d
|gƒntjSt||||||ƒd s×|rÍtj|d |gƒntjSntjS( Nsµ±Ç°Ê±¼ä먦·Å¸Ã¸±±¾!mapID=%st FBIsNotOpensPÒÑ´ïµ½µ±ÈÕ×î´ó½øÈë´ÎÊý!mapID=%s,enterCnt=%s,reqEnterCnt=%s,maxTimes=%s,maxCnt=%stGeRen_chenxin_268121t 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 GetPlayerIDRBRtLogt PlayerControlt
NotifyCodeR@tEntFBAskRet_FBCloset GetDayTimest GetHelpPointtChConfigtDef_NoLimitEnterCntMaptNomalDictGetPropertytDef_Player_Dict_EnterFbCntDaytGetEnterFBMaxCnttEntFBAskRet_NoEnterCnttCheckIsEnterCDtEntFBAskRet_EnterCDtGetLVt GetLVLimitMint GetLVLimitMaxtEntFBAskRet_LVLimittGetJobRankLimitt
GetJobRanktEntFBAskRet_JobRankLimittGetFBEnterTickettEntFBAskRet_NoTickettEntFBAskRet_OK(t    curPlayerR*RR<R.t reqEnterCnttisNotifyt    isTeamAsktplayerIDtmaxTimest    helpPointtenterCnttmaxCnttcurLVt
lvLimitMint
lvLimitMaxt jobRankLimit((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytCheckCanEnterFBCommšsd        
 
                 
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(R/t GetTicketIDtTruetFalsetGetTicketCostCntRtErrLogRLRURSRVtlentGetItemManagertGetPackt IPY_GameWorldtrptItemt
ItemCommontGetItem_FromPack_ByID_ExExtGetTicketPriceRNt HaveMoneyExR@tTYPE_Price_Gold_Paper_MoneytbooltDebugLog(ReR*RR.RfRhtticketIDtticketCostCntListRltcostCntt totalCostCnttitemPacktenought    indexListthasBindtlackCntt ticketPricet    costMoneyt costMoneyList((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRbâ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(RbR0RuRNtPayMoneyRStDef_Cost_EnterFBRtRyRzR{R|R}t
ReduceItem( ReR*RRltisEnoughRŠtdelCntR‹RtinfoDictt    moneyTypetmoneyNumRˆ((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytDelFBEnterTicket
s'
 
cCs|j||tjƒS(N(RURStDef_PDictType_FB(Retkeyt defaultValue((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBPDictValuescCstj|||tjƒdS(N(RNtNomalDictSetPropertyRSR(ReRžtvalue((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetFBPDictValue'sc 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'RtGetMaptGetMapIDt    NPCCommontNPCAttr_DynNPCLVMaptGetMapCopyPlayerManagertxrangetGetPlayerCounttGetPlayerByIndexR0tIsEmptyRLR[t    GetGameFBt SetGameFBDictRStDef_FB_NPCStrengthenAverageLVtDef_FB_NPCStrengthenMaxLVRMRt( RitisLeavetattrStrengthenInfoR*tmaxLVttotalLVt    playerCnttcopyMapPlayerManagertiReRnt    averageLVtgameFB((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytUpdFBLineNPCStrengthenLV+s<  
 
 
     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'RR§R¨R©tNPCAttr_DynPCCoefficientMapR°R«R­tmaxR±RStDef_FB_NPCStrengthenPlayerCntRMt GetNPCManagerR¬t GetNPCCountt GetNPCByIndextGetIDtGetTypeR{t ntFunctionNPCtntPettDoNPCAttrStrengthenRuRt( RiR´RµR*tcoefficientDicttisRefreshNPCAttrNowR¼t playerCounttgameNPCManagertindextcurNPC((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytUpdFBLineNPCStrengthenPlayerCntPs2  
      cCsA|jtj|ƒ|jtj|ƒtjd||fƒdS(s{ ÉèÖùÖÎïµôÂäÖ´ÐдÎÊýÍò·ÖÂÊ ¼° ¹Ì¶¨¼Ó³É´ÎÊýÖµ
    @param doCountRate: ´ÎÊýÍò·ÖÂÊ
    @param doCountAdd: ´ÎÊý¹Ì¶¨Öµ    
    s7ÉèÖùÖÎïµôÂäÖ´ÐдÎÊýÐÅÏ¢: doCountRate=%s, doCountAdd=%sN(R±RStDef_FB_DropDoCountRatetDef_FB_DropDoCountAddRRM(R¼t doCountRatet
doCountAdd((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetNPCDropDoCountRaterscCstjƒjtjƒdkS(Ni(RR°tGetGameFBDictByKeyRStMap_FBDict_PropertyMark(((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetHadSetFBPropertyMark}scCstjƒjtjƒdS(Ni(RR°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(RR°R±RSRÖR0RNtSetFBFuncLineIDRƒRLR«R¬R­R®(t propertyMarkt    setPlayert playerManagerRÍRe((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetFBPropertyMark‰s   cCstjƒj|jƒtjƒS(N(RR°tGetPlayerGameFBDictByKeyRÄRStFBPlayerDict_IsDelTicket(Re((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetHadDelTicketœscCs&tjƒj|jƒtj|ƒdS(N(RR°tSetPlayerGameFBDictRÄRSRß(RetdelSign((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetHadDelTicket¢s"cCs:d}tjƒ}|jƒdkr6|jdƒ}n|S(s »ñÈ¡µ±Ç°µ¥È˸±±¾Íæ¼Ò iN(R0RR«R­R®(ReRÜ((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_Helpt    GetTeamIDRR°RÕtDef_FB_TeamPlayerCounttFB_JoinType_MultitFB_JoinType_Single(Ret isHelpFight((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetFBJoinType®s
*cCs0|tjƒjƒ}tjƒjƒ}||S(N(RRt GetOpenFBTickR§t 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è(RR°RÕRSt Def_FB_GradetFBLogictDoFBHelptintt GetFBStepTickRxR¿R±Rƒt Sync_TimeTickRtR«R¬R­R®(Rît gradeTimeListRettimeTypetlowestR¼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_lineIDRõt Over_isPasstjsontdumpsRut    Frm_FBEndRRƒRL(ReRRRtoverDicttoverMsg((szE:\SnxxServerCode\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_lineIDRRRut
Frm_FBHelpRRƒRL(ReRthelpDictthelpMsg((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt NotifyFBHelpùs
 cCs*tj|dtƒ}|jd|ƒdS(NRs%s(RRRuR    (RetmsgDict((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytNotify_FB_OverscCs0tj|dtƒ}|jdt|ƒƒdS(NRs%s(RRRuRtstr(ReR((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt Notify_FBHelp
scCsEg}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
isinstancetlistttupleRxRõR}tCheckItemCanUset GetItemTypeIDtGetCountt    GetIsBindt
GetIsSuitet GetUserDatatappend(titemListt jsonItemListRtitemDicttinfolen((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonItemLists,      cCsBg}x5|jƒD]'\}}|ji|d6|d6ƒqW|S(NRšt
moneyValue(titemsR$(t    moneyDictt    moneyListRšR*((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonMoneyList*scCsBg}x5|jƒD]'\}}|ji|d6|d6ƒqW|S(NtNPCIDtkillCnt(R+R$(tnpcDicttkillListtnpcidR0((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonNPCKillList1scCsBg}x5|jƒD]'\}}|ji|d6|d6ƒqW|S(NR/tHPPer(R+R$(R1R2R3R5((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonNPCHPPerList8sc 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 BarrierListttagMCDynamicBarriertAPosXtAPosYtBPosXtBPosYR$RxRt NetPackCommont SendFakePackRR«trangeR­R®( tbarrierPointListtstateRetbarrierStatePacktaPosXtaPosYtbPosXtbPosYtbarriert playManagerRº((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSyncDynamicBarrierState?s* 
                          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(RRÁR¬RÂRÃR0tGetNPCIDt
GetVisibleRtGetTickR©t
NPCControlt DoNPCRebornt
SetVisibleRtRu(    t
doorIDListttypetisRebornRÌRºRÎtnpcIDtcurTypeRî((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytOpenOrCloseDoorExas*       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(RRÁtFindGameNPCByNPCIDR0RwRORRPR©RQRRRSRtRu(RTRURVRÌRWRÎRXRî((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytOpenOrCloseDoor†s&      cCstjƒj|ƒdS(N(RR°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(RLtGetNameRR°tGetFbBillBoardPlayert SetPlayerIDt SetPlayerNametSetPoint(Ret 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(RR°R`RLtmintGetPointR¿Rc(ReRUR¢Rftpoint((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytAddorReduceBillBoardÀs   cCs,tjƒj|jƒƒ}|j|ƒdS(N(RR°R`RLt
SetCountry(RetcountryRf((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetCountryBillBoardÐs cCs%tjƒj|jƒƒ}|jƒS(N(RR°R`RLRi(ReRf((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetPlayerBillBoardPointÚscCs%tjƒj|jƒƒ}|jƒS(N(RR°R`RLtGetBillboardIndex(ReRf((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetPlayerIndex_InBillBoardâscCs'tjƒ}|jƒ|j|ƒdS(N(RR°tSortFbBillBoardPlayerR\(R]R¼((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytNotifyBillBoardês 
 cCsAtjƒ}|j|ƒ|j|ƒtjd||fƒdS(NsSetFBStep %s, tick=%s(RR°t    SetFBStept SetFBStepTickRM(RRîR¼((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRt÷s
   cCsatjƒ}xNt|jƒƒD]:}|j|ƒ}|jƒsFqn|j|||ƒqWdS(N(RR«RCR­R®RLtSync_FbSystemMessage(tkeepTimetmsgTypetmsgRÜRºRe((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRvs  cCsgtjƒ}xTtd|jƒƒD]=}|j|ƒ}|jƒsIq"n|j||||ƒq"WdS(Ni(RR«RCR­R®RLR÷(RxtmsgTickRWt
isContinueRÜRÍRe((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSync_Player_TimeTicks  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(R0RR°RÕRStMap_FBDict_PrevFBTimeTypeRtRuRMR±R«RCR­R®RLR÷(    RxRzt isSendPrevMsgRWR{t prevMsgTypeRÜRÍRe((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSync_Player_TimeTickEx-s"           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(RRRtRCtGetGameWorldCounttGetGameFBByFbIndext GetFamilyVSt GetFamilyIDt GetVSFamilyIDRutGetOpenStateByFbIndexR{tfbosOpentDef_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.pytGetCanEnterVSFBJs"         cCs|tjƒ}xit|jƒƒD]U}|j|ƒ}|jƒ}|jƒ}|jƒ}|||gkr||fSqWdS(N(NN(    RRRCRR‚RƒR„R…R0(RŒRRÍR¼RRR‘((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGet_VS_Line_GameFBos    cCstjƒj|ƒS(N(RRt 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(
RR§t GetMapFBTypeR{tfbtTeamRMRRCR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(RR§R—R{R˜RRæRttGetCloseFBTickRut    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(
RRÁRCRÂRÃRÄtGetGameNPCObjTypeR{tgnotPetR$(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(RRÁRCRÂRÃRÄtGameObjtGetHPR§R{R¨t
gnotSummont GetObjDetailR0tGetOwnertGetGameObjTypet    gotPlayerR$(t findNPCListRÌRÍRÎt curNPCDetailt curNPCOwner((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetMapSystemNPCListßs" '  !    cCsdtjƒ}xQtd|jƒƒD]:}|j|ƒ}|jƒdkrOq"ntj|ƒq"WdS(Ni(RR«RCR­R®RÄRNt PlayerLeaveFB(RÜRºRe((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytDoLogic_FBKickAllPlayers 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­RR®R0R¯R°R±tgotNPCR$(R©R²RÎR³R´((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetMapSystemNPCListExs           cCssxltƒD]a}|dkr"q
n|jƒtjtjgkrFq
n|jƒ|kr^q
ntj|ƒq
WdS(N(    R¹R0RÅR{RÆRÇRNR©t    SetDeadEx(t ignoreIDListRÎ((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt
ClearFBNPC7s cCssxltƒD]a}|dkr"q
n|jƒtjtjgkrFq
n|jƒ|kr^q
ntj|ƒq
WdS(N(    R¹R0RÅR{RÆRÇRNR©Rº(tclearNPCIDListRÎ((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt ClearFBNPCExLs cCsšd}xtƒD]‚}|dkr(qn|jƒtjtjgkrLqn|jƒ}|rp||krpqn|rˆ||krˆqn|d7}qW|S(Nii(R¹R0RÅR{RÆRÇRN(t    npcIDListR»tnpcCntRÎRW((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetFBNPCCntbs  cCsgtjƒ}tj|}tj|}tj|}|j||ƒ|j||ƒ|j||ƒdS(N(RR°RStMap_NPC_RandomMapNPCIDtMap_NPC_RandomMapNPCNeedCnttMap_NPC_RandomMapNPCPerMaxCntR±(t refreshMarkRWtneedRefreshCntt    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(RR°R±RStMap_TDNPC_RefreshFileNumtMap_TDNPC_RefreshSignKeytMap_TDNPC_RefreshStartTicktMap_TDNPC_RefreshBigWheelNumtMap_TDNPC_RefreshSmallWheelNumtMap_TDNPC_CurWheelStartTicktMap_TDNPC_CurWheelIsOvertMap_TDNPC_AllWheelIsOvertMap_TDNPC_NPCCnttMap_TDNPC_NPCBossCntt__TDStartRefreshNotify(trMarktfileNumtsignRîRgR¼((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( RR°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(RR°RÕRSRÓRuRt(t    rMarkListR¼R×((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytIsTDNPCRefreshOverÂs
  cCs;tjƒ}x(|D] }|jtj|ƒstSqWtS(N(RR°RÕRSRÒRuRt(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(RR°RÕRSRÔRÒRuRt(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( RR°RÕRSRÎRÏRÌRuR¥R¦RxtDef_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( RR°RÕRSRÏR±RÐRÑRÒRÌRÍRÖRƒ(R×RîRgR¼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¦tgetRxtDef_TDCfg_NotifyMarkRNtFBNotify(
R¼RØtwheelNumRÙtrefreshNPCDicttrefreshNPCListR3RåRæt
notifyMark((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRÖs 
 
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( RR°t GetDictByKeyRStDef_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 UpdTDNPCCnt's   
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(RR°RÕRSRÏRÌR¥R¦RxRâtDef_TDCfg_PrepareTimeRÑR¿RÎR0R|R÷Rt(ReR×RxRîtmsgIDR¼RäRØRåRæt nextWheelTimet prepareTimetcurWheelStartTickRètnextWheelRemainTickRã((szE:\SnxxServerCode\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( R+RQtGetExtraTimesMWPriIDtGetExtraTimesVIPPriIDt    PlayerViptGetPrivilegeValueRURStDef_Player_Dict_BuyFbCntDaytDef_Player_Dict_RecoverFbCnttDef_Player_Dict_ItemAddFbCnt( ReR*R<Rjt MWPrivilegeIDtmwAddCnttextraTimesVIPPriIDtextraCnttbuyCntt recoverFbCntt
itemAddCntRm((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRWcs    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+RURSRVRQRRRRRR    R
tcopytdeepcopyt    enumerateR¿tGetBuyTimesVIPPriID(ReR*R<RlRjR R R RRRRtcntListtrCntListtsumCntRºtcntt rRecoverFbCntt    rExtraCntt
rCommonCnttrBuyCntt rItemAddCnttbuyTimesVIPPriIDt    canBuyCnttnoBuyCnt((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBDetailCntInfors0   
 
  cCsBt|ƒ}|jtj|ƒ}|dkr>tj||ƒS|S(Ni(R'RURSRVRtGetDataByDigitPlace(RetfbIDtlineBitRl((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'RSRVRURR#RhtChangeDataByDigitPlaceRNR¡RWRutPlayerActivitytOnEnterFBActivityt PlayerSuccesstAddEnterFBSuccesstDef_FBMapID_SealDemonR+RQt$Def_Player_Dict_FbCntRegainStartTimeRõttimetNotifyFBCntRegainInfoRƒRLtSync_FBPlayerFBInfoDataRt( ReR$taddCountR%t enterCntKeyRltcurLineEnterCntt updEnterCnttupdValueRmRûR<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(RSR,R&R+RQRWR¿RõR.R(t
GetFuncCfgRUR-t$Def_Player_Dict_FbCntRegainTotalTimeRhRVRNR¡RRƒR0R/(ReR*RlR<t maxDayTimesRmt    maxCanAddtcurTimetrecoverIntervaltlastRegainTimetneedTimetpassTimet
recoverCntR2t 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(NR8(RõR.R(R9R7ttagMCFBCntRegainRemainTimeR9tInfoListRSR,ttagMCFBCntRegaint    DataMapIDRUR-R:t
RemainTimeR$RxtCntRARB(    ReR=R>t
regainDataR*tmapInfoR?R@RA((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR/äs. 
     
        
      cCsytjƒjƒ}t|ƒ}|jtj|ƒ}t||ƒ}||krutjƒj    |j
ƒtj dƒt St S(Ni(RR§R¨R'RURSRVRWR°RáRÄtFBPlayerDict_IsHelpFightRtRu(ReR*RlRm((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetIsHelpFights  "cCstjƒj|jƒtjƒS(N(RR°RÞRÄRSRN(Re((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetIsHelpFight sc    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_EnterFbCntWeekRURNR¡R$R0(    Ret
onWeekTypet    mapIDInfot
ipyDataMgrRºtipyDataR*t    weekTimestenterCntWeekKey((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytFBOnWeeks"    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(!RRMRLRótOnFBPlayerOnDayR(RQR¬RRRSRTtGetDayHelpCountMaxRURStDef_PDict_FBRealHelpCountRNR¡RƒRQRRRtGetDayResetTypeRWRVRR    R
R,R¿R$R0tSync_FBPlayerFBBuyCount(Ret    onDayTypeRYRZRºR[R*t    helpCountR6RmR2Rlt    buyCntKeyRt recoverCntKeyRBt itemAddCntKeyRRC((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytFBOnDay,sR    .         cCsCtj|ƒt|ƒt|ƒt|ƒt|ƒt|ƒdS(N(RótOnFBPlayerOnLoginR0tSyncFBEnterTickRcR/tCheckFBPlayerOffine(Re((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt    FBOnLoginrs 
 
 
 
 
cCsx|jƒ}t|ƒ}|s"dS|jƒ}|s8dStj|ƒ}||krttjd|ƒtj|ƒndS(Ns9Åжϸ±±¾ÀïÀëÏß³¬¹ýÒ»¶¨Ê±¼äÔòÍ˳ö¸±±¾ leaveServerSecond=%s(R¨R+tGetOfflineTimeRNtGetPlayerLeaveServerSecondRRƒR¶(RetmapidR[t OfflineTimetleaveServerSecond((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRl}s    cCs`tjƒj|ƒ}|j}t|ƒ}|s4dS|jƒ}|s[tjd|ƒdStj||ƒ}|j    t
j |ƒ}||kr¤tjd|ƒdSt j dƒ}    |    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\|jƒ}t||ƒ}t||ƒ}|||kr\ttjƒƒ}|j    t
j |ƒ}|s*t j!d    ƒ}ntj|t
j ||||ƒt"|ƒq\ndS(
NsmapID:%s ²»¿ÉÒÔ¹ºÂò½øÈë´ÎÊýs¹ºÂò´ÎÊýÒѾ­ÓÃÍêmapID=%st BuyFBCntCostt0RsÏÉÓñ²»×ã!costGold=%sitFBEnterTimeBuyR8(#RtGetPlayerManagerR®tFBIDR+RRƒRRRURSRR(tGetFuncEvalCfgRíRtevalRNR€R@RR”tDef_Cost_BuyFBCntR¡RcROR-RQRWR&RõR.R:R9R/(t playerIndext
clientDataRîReR*R[RR t    hasBuyCntt costGoldDicttcostGoldRR™RšR›R?R;RmRlR=R@((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytBuyFBEnterCount”sR          "cCstj|tjƒS(N(t EventReporttWriteFuncCMEAcceptableR@tGameFuncID_RunDaily(Re((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytDoFuncOpen_RunDailyÃscCstj|tjƒS(N(RR‚R@tGameFuncID_RunFamily(Re((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<(RRtGetCurGameWorldIndextdatetimettodayt    timedeltatyeartmonthtdaythourR¿tstrptimeRStTYPE_Time_FormattsecondsR°RÕtMap_FBDict_NotifyOpenRNt WorldNotifyR±(t openTimeListt    notifyMsgtnotifyTimeListR*t mergeMinOSDt mergeMaxOSDt mergeMapInfoR=tnextTimetcurYeartcurMonthtcurDaytcurHourtnextYeart    nextMonthtnextDaytnextHourtstartTimeStrFormattmaxNotifyMinutet remaindMinuteRtminutet startTimeStrRDt
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(RtGetCurrentTimeRŠRŒRRŽRRR‘RSR’R“RtRu(R–tprepareSecondsR=tprevTimeRRžRŸR tprevYeart    prevMonthtprevDaytprevHourR¥RR¨R©RDtpastTimet pastSeconds((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytCheckIsFBPrepareTime s" ** 
    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(tGetIpyGameDatatGetInspireMaxLVRR°RÄRÞRxRíRNROR{tTYPE_Price_Silver_MoneyRyt GetMoneyCountRSR,RUtDef_Player_Dict_FMTDoubleR€R”tDef_Cost_FBEncouragetDef_SkillID_FBEncourageBufft GetGameDatatGetSkillBySkillIDRMt SkillCommont GetBuffTypet    BuffSkillt    DoAddBuffRátSendFBEncourageInfoR*tDoAddSuccessProgressR@tSuccType_FBEncouraget
EventShelltEventRespons_FBEncourage(ReRžt encourageTypeRîtisMaxlvtcurMapIDR[RmR¼Rdt encourageLVtencourageCntKeyt encourageCntR¶t encourageCosttisDoubleRR™RštmoneyCntt
buffTypeIDt skillBuffIDt    skillBufftbuffTypet
addHurtNum((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytFbEncourageBuff6s`     
!   $
!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ÄRRMR°RÞR§R¨R'R(RxRíRSRÂRÃRÄRÅRÆRÇRÈRÉ( ReRžRîRdR¼RÑR*R×RØRÙRÚ((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytAddFbEncourageBuffvs$   $ cCs‚xntttjddiƒjƒƒƒD]E}tj|||ƒr(tj|ƒ}|jƒt    j
dƒt Sq(Wt    j
dƒt S(NR¸isClearEncourageBuff() TruesClearEncourageBuff() False( RtsetR(RxtvaluesRÇtDelBuffBySkillIDRNtRefreshPlayerAttrByBuffRRMRtRu(ReRî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·RIsFbEncourageCnt_%s(R¨R'R(tGetIpyGameDataByConditionRtR7ttagMCFBEncourageInfoR9RGRR°RÄtGetInspireTypettagMCFBEncourageCntt    MoneyTypeRÞt EncourageCntR$RxRKRARB( RetlvRÐt ipyDataListt encourageInfoRÒR¼RdR[t 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(Re((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetAreaRewardMultiple¸scCs|jtj|ƒdS(N(tSetDictRSRï(ReR¢((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetAreaRewardMultiple¿scCst||ƒdkS(Ni(t GetFBEnterCD(ReR*((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRYÈ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(RxR[R RStDef_PDict_LastEnterFBTickRtChangeTimeStrToNumtGetCurrentDataTimeStrR¿Rƒ(    ReR*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( RR§R¨R'R(RxRöR÷R£RSRõRƒRk(ReR*RøRü((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytUpdateFBEnterTickës   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 GetConfigExRQR¬tGetFBLineCounttGetFBLineByIndexRTR¨RíR$tkeysRxtpopt SetConfigExR+( R*Rÿt
dMapIDDictRZRºR[tdMapIDtmIDt
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(RxRRöR÷R7ttagMCFBEnterTickListR9t EnterTickListRR RSRõR£RƒRLttagMCFBEnterTickRt LastEnterTickR$RxRKRARB(Ret    syncMapIDRøRüt    enterListR*Rût enterTickObj((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRks. 
     # 
        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(RQR¬RRRSRTRURõRR7ttagMCPlayerFBInfoDataR9Rxt    FBDataCntt
FBDataListt tagMCFBInfoRwRURSRVtEnterCntR    t
RecoverCntR
t
ItemAddCntRCtDef_FBStar_MaxKeyCntt"Def_Player_Dict_PlayerFBStar_MapIdt    PassGradeR$t PassGradeCntRARB(
ReRYRZRºR
t
fbInfoDataRRMtkeyNumt
gradeValue((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR0=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(R(RQR¬RRRSRR$RTR7ttagMCBuyEnterInfoR9tFBInfot tagMCBuyInfoRwRURSRtBuyCountRxtFBCountRARB(ReR
RZRºR[RRRM((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRcrs*   
      
    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$trandomtshuffleRtextend( 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(    RRtSetGameWorldDictRStMap_Player_AreaReward_GetCnttMap_Player_AreaReward_GetExpt!Map_Player_AreaReward_GetExpPointt$Map_Player_AreaReward_GetZhenQiTotalt"Map_Player_AreaReward_GetTechPoint(RiR((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(&RR°RR(R9RxRÕRStMap_FBDict_LastAreaRewardTickR±RƒR«R¬R­R®R¬RLR?R4R3RðR[RNtGetPlayerReExpRytAddExptGetFBAreaRewardExpR5tDef_PerPointValueR6tPlayerAddZhenQiRtR7t PlayerFamilytAddPlayerFamilyActiveValueR@tDef_AddFAVReason_FamilyInvadeR8(t
cfgKeyNameRît    needAliveR¼RtrewardIntervaltrewardFormatDictt getCntLimitt lastAwardTickRÜRÍReRitgetCnttmultipletreLVtreExpRâ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(R?RSR5R6RB(RRiR    R
((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRA÷scCs|jtj|ƒS(N(R?RSR7(RRi((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBAreaRewardZhenQiüscCs|jtj|ƒS(N(R?RSR8(RRi((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(
RR°RÕRStDef_FB_NotifyFBHelpTickR±R«R¬R­R®(Rît
fbHelpFunctintervalR¼RïRÜRÍRe((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytNotifyCopyMapPlayerFBHelp    s  (¾RR{RNR}tGameMapRÌR©R¥RÇR7RARÅR(tPlayerFBR@RRDR(R*tPlayerMagicWeaponRRR«RóRSRŠR%RtmathR.RR‰RˆR‹RŠR t    Help_stept
Help_wheeltHelp_npct Help_npcTotaltHelp_expt Help_expPointt
Help_moneyt
Help_scoret
Help_gradet Help_leaderIDRRRt 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_xianyuanCoinRCtDef_FbActionEncouragetDef_FbActionChangeLineR#R%R+RtR/R0R2R4R6R8R:R=RBRERuRrRbRœR R£R½RÏRÔR×RØRÝRàRãRäRëRñt tttFlagTakeRR RRRR)R.R4R6RMRYR[R^RgRkRnRoRqRsRtRvR|R€R’R“R–RR¦RªRµR·R¹R¼R¾RÁRËRâRýtDef_TDCfg_SmallWheelSpaceRîRÚRÜRÞRßRáRéRìRÖRüRRWR"R&R7RER/RORPR^RiRmRlR€R„R†R¬R¶RÜRÝRãRÉRðRòRYRóRþR'RkR0RcR2R9RWRARXRYR](((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt<module>sj                                                                H(         %    "                                1                           " % "                
                          %                "        %                                                         #        #      #                     F             /         ;    + @                                          % 5 "         <