xdh
2018-12-06 2425257d67f2300e82cc9ff3115eea06ff813c99
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
¨J\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 ZFd!ZGeHd"ƒ\ZIZJd#„ZKd$„ZLd%„ZMeNd&„ZOdd'„ZQd(d)„ZRd(d*„ZSd(d+„ZTd,„ZUd-„ZVd.„ZWd/„ZXd0eNeYd1„ZZd2„Z[d(dd0eYd3„Z\d(d0d4„Z]d(d5„Z^d6„Z_d7„Z`d8„Zad9„Zbd:„Zcd;„Zddd<„Zed=„Zfd0d>„Zgd?„Zhd@„ZidA„ZjdejkdB„ZlidC„ZmidD„ZndE„ZodF„ZpdG„ZqdH„ZrdI„ZsdJ„ZtddK„ZueYdL„ZveYdM„ZwdN„ZxdO„ZydP„ZzdQ„Z{dR„Z|dS„Z}dT„Z~dU„ZdV„Z€d(eNdW„Zd(eNdX„Z‚dY„ZƒdZ„Z„d[„Z…d\„Z†d]„Z‡d^„Zˆd_„Z‰d`„ZŠda„Z‹gdb„ZŒdc„Zggdd„ZŽde„ZeHdfƒ\ZZ‘Z’Z“dg„Z”eNdh„Z•di„Z–dj„Z—dk„Z˜dl„Z™dm„Zšdn„Z›do„Zœd(dp„Zdq„Zždr„ZŸdds„Z d0ddt„Z¡du„Z¢dv„Z£dw„Z¤dx„Z¥dy„Z¦dz„Z§d{„Z¨d|„Z©d}„Zªd~„Z«d„Z¬d(ddgd€„Z­d„Z®eYd‚„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½eYd‘„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 xianyuanCoint
helpPlayericCs*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 SetGameFBDatagscCs#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 GetGameFBDatahscCst|ƒ}tjd|ƒS(NtFBFunc(tGetRecordMapIDt IpyGameDataPYtGetIpyGameDataNotLog(tmapID((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetFBIpyDatajs 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.pytGetFBLineIpyDatams
  cCs,|st||ƒ}n|s"dS|jƒS(N(R3tNonetGetEnterPosInfo(R.RR2((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineEnterPosInfousicCs#t||ƒ}|sdS|jƒS(N(R3R4t GetStepTime(R.RR2((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineStepTimezscCs#t||ƒ}|sdS|jƒS(N(R3R4t GetRefreshNPC(R.RR2((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineRefreshNPC~scCs#t||ƒ}|sdS|jƒS(N(R3R4t GetGradeInfo(R.RR2((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineGrade‚scCs#t||ƒ}|sdS|jƒS(N(R3R4t GetRewardInfo(R.RR2((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 GetPlayerIDRFR"tLogt PlayerControlt
NotifyCodeRDtEntFBAskRet_FBCloset__CheckCanEnterFBByTimetEntFBAskRet_NoEnterCnttCheckIsEnterCDtEntFBAskRet_EnterCDtGetLVt GetLVLimitMint GetLVLimitMaxtEntFBAskRet_LVLimittGetJobRankLimitt
GetJobRanktEntFBAskRet_JobRankLimittGetFBEnterTickettEntFBAskRet_NoTickettEntFBAskRet_OK(t    curPlayerR.RR@R2t 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(    RbR.R@RcRetmaxTimestenterCnttmaxCnttfbType((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRTÚ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(R3t GetTicketIDRrR{tGetTicketCostCntR"tErrLogRORsRtRutlentGetItemManagertGetPackRytrptItemt
ItemCommontGetItem_FromPack_ByID_ExExtGetTicketPriceRQt HaveMoneyExRDtTYPE_Price_Gold_Paper_MoneytbooltDebugLog(RbR.RR2RcRetticketIDtticketCostCntListRƒ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_R4R{RQtPayMoneyRttDef_Cost_EnterFBRrRŠR‹RyRŒRt
ReduceItem( RbR.RRƒtisEnoughRštdelCntR›RŸtinfoDictt    moneyTypetmoneyNumR˜((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytDelFBEnterTicket3s'
 
cCs|j||tjƒS(N(RsRttDef_PDictType_FB(Rbtkeyt defaultValue((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBPDictValueHscCstj|||tjƒdS(N(RQtNomalDictSetPropertyRtR­(RbR®tvalue((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetFBPDictValuePsc 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"RwtGetMapIDt    NPCCommontNPCAttr_DynNPCLVMaptGetMapCopyPlayerManagertxrangetGetPlayerCounttGetPlayerByIndexR4tIsEmptyRORXt    GetGameFBt SetGameFBDictRttDef_FB_NPCStrengthenAverageLVtDef_FB_NPCStrengthenMaxLVRPRr( RftisLeavetattrStrengthenInfoR.tmaxLVttotalLVt    playerCnttcopyMapPlayerManagertiRbRit    averageLVtgameFB((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytUpdFBLineNPCStrengthenLVTs<  
 
 
     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"RwR·R¸tNPCAttr_DynPCCoefficientMapR¿RºR¼tmaxRÀRttDef_FB_NPCStrengthenPlayerCntRPt GetNPCManagerR»t GetNPCCountt GetNPCByIndextGetIDtGetTypeRyt ntFunctionNPCtntPettDoNPCAttrStrengthenR{Rr( RfRÃRÄR.tcoefficientDicttisRefreshNPCAttrNowRËt playerCounttgameNPCManagertindextcurNPC((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytUpdFBLineNPCStrengthenPlayerCntys2  
      cCsA|jtj|ƒ|jtj|ƒtjd||fƒdS(s{ ÉèÖùÖÎïµôÂäÖ´ÐдÎÊýÍò·ÖÂÊ ¼° ¹Ì¶¨¼Ó³É´ÎÊýÖµ
    @param doCountRate: ´ÎÊýÍò·ÖÂÊ
    @param doCountAdd: ´ÎÊý¹Ì¶¨Öµ    
    s7ÉèÖùÖÎïµôÂäÖ´ÐдÎÊýÐÅÏ¢: doCountRate=%s, doCountAdd=%sN(RÀRttDef_FB_DropDoCountRatetDef_FB_DropDoCountAddR"RP(RËt doCountRatet
doCountAdd((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetNPCDropDoCountRate›scCstjƒjtjƒdkS(Ni(R"R¿tGetGameFBDictByKeyRttMap_FBDict_PropertyMark(((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetHadSetFBPropertyMark¦scCstjƒjtjƒdS(Ni(R"R¿RäRtRå(((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ÀRtRåR4RQtSetFBFuncLineIDR“RORºR»R¼R½(t propertyMarkt    setPlayert playerManagerRÜRb((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetFBPropertyMark²s   cCstjƒj|jƒtjƒS(N(R"R¿tGetPlayerGameFBDictByKeyRÓRttFBPlayerDict_IsDelTicket(Rb((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetHadDelTicketÅscCs&tjƒj|jƒtj|ƒdS(N(R"R¿tSetPlayerGameFBDictRÓRtRî(RbtdelSign((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetHadDelTicketËs"cCs:d}tjƒ}|jƒdkr6|jdƒ}n|S(s »ñÈ¡µ±Ç°µ¥È˸±±¾Íæ¼Ò iN(R4R"RºR¼R½(RbRë((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetCurSingleFBPlayerÏs
 cCsE|r tjS|jƒr>tjƒjtjƒdkr>tjStjS(Ni(    RttFB_JoinType_HelpR~R"R¿RätDef_FB_TeamPlayerCounttFB_JoinType_MultitFB_JoinType_Single(Rbt 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 GetOpenFBTickRwt 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äRtt Def_FB_GradetFBLogictDoFBHelptintt GetFBStepTickR‰RÎRÀR“t Sync_TimeTickRrRºR»R¼R½(Rüt gradeTimeListRbttimeTypetlowestRË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_isPasstjsontdumpsR{t    Frm_FBEndR"R“RO(RbRRRtoverDicttoverMsg((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_lineIDRRR{t
Frm_FBHelpR"R“RO(RbRthelpDictthelpMsg((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt NotifyFBHelp"s
 cCs*tj|dtƒ}|jd|ƒdS(NRs%s(RRR{R(RbtmsgDict((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytNotify_FB_Over.scCs0tj|dtƒ}|jdt|ƒƒdS(NRs%s(RRR{Rtstr(RbR((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt Notify_FBHelp3scCsEg}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.pytGetJsonItemList9s,      cCsBg}x5|jƒD]'\}}|ji|d6|d6ƒqW|S(NRªt
moneyValue(titemsR2(t    moneyDictt    moneyListRªR8((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonMoneyListSscCsBg}x5|jƒD]'\}}|ji|d6|d6ƒqW|S(NtNPCIDtkillCnt(R9R2(tnpcDicttkillListtnpcidR>((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonNPCKillListZscCsBg}x5|jƒD]'\}}|ji|d6|d6ƒqW|S(NR=tHPPer(R9R2(R?R@RARC((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonNPCHPPerListasc 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 BarrierListttagMCDynamicBarriertAPosXtAPosYtBPosXtBPosYR2R‰R%t NetPackCommont SendFakePackR"RºtrangeR¼R½( tbarrierPointListtstateRbtbarrierStatePacktaPosXtaPosYtbPosXtbPosYtbarriert playManagerRÉ((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSyncDynamicBarrierStatehs* 
                          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ÒR4tGetNPCIDt
GetVisibleR#tGetTickR¸t
NPCControlt DoNPCRebornt
SetVisibleRrR{(    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ÐtFindGameNPCByNPCIDR4RˆR]R#R^R¸R_R`RaRrR{(RbRcRdRÛReRÝRfRü((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(ROtGetNameR"R¿tGetFbBillBoardPlayert SetPlayerIDt SetPlayerNametSetPoint(Rbt 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¿RnROtmintGetPointRÎRq(RbRcR²Rttpoint((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytAddorReduceBillBoardés   cCs,tjƒj|jƒƒ}|j|ƒdS(N(R"R¿RnROt
SetCountry(RbtcountryRt((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetCountryBillBoardùs cCs%tjƒj|jƒƒ}|jƒS(N(R"R¿RnRORw(RbRt((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetPlayerBillBoardPointscCs%tjƒj|jƒƒ}|jƒS(N(R"R¿RnROtGetBillboardIndex(RbRt((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetPlayerIndex_InBillBoard scCs'tjƒ}|jƒ|j|ƒdS(N(R"R¿tSortFbBillBoardPlayerRj(RkRË((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 SetFBStepTickRP(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ºRQR¼R½ROtSync_FbSystemMessage(tkeepTimetmsgTypetmsgRëRÉRb((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ºRQR¼R½ROR(R†tmsgTickRet
isContinueRëRÜRb((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSync_Player_TimeTickBs  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(R4R"R¿RäRttMap_FBDict_PrevFBTimeTypeRrR{RPRÀRºRQR¼R½ROR(    R†Rˆt isSendPrevMsgReR‰t prevMsgTypeRëRÜRb((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSync_Player_TimeTickExVs"           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#RrRQtGetGameWorldCounttGetGameFBByFbIndext GetFamilyVSt GetFamilyIDt GetVSFamilyIDR{tGetOpenStateByFbIndexRytfbosOpentDef_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.pytGetCanEnterVSFBss"         cCs|tjƒ}xit|jƒƒD]U}|j|ƒ}|jƒ}|jƒ}|jƒ}|||gkr||fSqWdS(N(NN(    R"R#RQRRR‘R’R“R4(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"Rwt GetMapFBTypeRyR|RPR#RQR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"RwR¥RyR|RªR~RrtGetCloseFBTickR{t    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ÐRQRÑRÒRÓtGetGameNPCObjTypeRytgnotPetR2(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ÐRQRÑRÒRÓtGameObjtGetHPR´RyRµt
gnotSummont GetObjDetailR4tGetOwnertGetGameObjTypet    gotPlayerR2(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ºRQR¼R½RÓRQt PlayerLeaveFB(RëRÉRb((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´RyRºR"R»R4R¼R½R¾tgotNPCR2(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ÆR4RÔRyRÕ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ÆR4RÔRyRÕRÖR\R¸RÇ(tclearNPCIDListRÝ((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt ClearFBNPCExus cCsšd}xtƒD]‚}|dkr(qn|jƒtjtjgkrLqn|jƒ}|rp||krpqn|rˆ||krˆqn|d7}qW|S(Nii(RÆR4RÔRyRÕRÖR\(t    npcIDListRÈtnpcCntRÝRe((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¿RttMap_NPC_RandomMapNPCIDtMap_NPC_RandomMapNPCNeedCnttMap_NPC_RandomMapNPCPerMaxCntRÀ(t refreshMarkRetneedRefreshCntt    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ÀRttMap_TDNPC_RefreshFileNumtMap_TDNPC_RefreshSignKeytMap_TDNPC_RefreshStartTicktMap_TDNPC_RefreshBigWheelNumtMap_TDNPC_RefreshSmallWheelNumtMap_TDNPC_CurWheelStartTicktMap_TDNPC_CurWheelIsOvertMap_TDNPC_AllWheelIsOvertMap_TDNPC_NPCCnttMap_TDNPC_NPCBossCntt__TDStartRefreshNotify(trMarktfileNumtsignRüRdRË((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ÀRtRÙ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äRtRàR{Rr(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äRtRßR{Rr(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äRtRáRßR{Rr(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äRtRÛRÜRÙR{Rµ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äRtRÜRÀRÝRÞRßRÙRÚRãR“(RäRüRdRË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_NotifyMarkRQtFBNotify(
RËRåtwheelNumRætrefreshNPCDicttrefreshNPCListRARòRóRh((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( R"R¿RRttDef_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 UpdTDNPCCntPs   
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äRtRÜRÙRµR¶R‰RïtDef_TDCfg_PrepareTimeRÞRÎRÛR4RŠRRr(RbRäR†RütmsgIDRËRñRåRòRót nextWheelTimet prepareTimetcurWheelStartTickRõtnextWheelRemainTickRð((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSync_TDNextWheelTickis0  
 
 
 
 
 c Cs¨t|ƒ}|jƒ}|jƒ}d}|jƒ}tj||ƒ}|jtj|ƒ}|jtj    |ƒ}    |jtj
|ƒ}
||||    ||
} | S(Ni( R/RqtGetExtraTimesMWPriIDtGetExtraTimesVIPPriIDt    PlayerViptGetPrivilegeValueRsRttDef_Player_Dict_BuyFbCntDaytDef_Player_Dict_RecoverFbCnttDef_Player_Dict_ItemAddFbCnt( RbR.R@R‚t MWPrivilegeIDtmwAddCnttextraTimesVIPPriIDtextraCnttbuyCntt recoverFbCntt
itemAddCntR„((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRvŒ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/RsRtRuRqRRRRRRRtcopytdeepcopyt    enumerateRÎtGetBuyTimesVIPPriID(RbR.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+RsRtRuR"tGetDataByDigitPlace(RbtfbIDtlineBitRƒ((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+RtRuRsR"R.RvtChangeDataByDigitPlaceRQR±RvR{tPlayerActivitytOnEnterFBActivityt PlayerSuccesstAddEnterFBSuccesstDef_FBMapID_SealDemonR/Rqt$Def_Player_Dict_FbCntRegainStartTimeRttimetNotifyFBCntRegainInfoR“ROtSync_FBPlayerFBInfoDataRr( RbR/taddCountR0t 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(RtR7R1R/RqRvRÎRR9R,t
GetFuncCfgRsR8t$Def_Player_Dict_FbCntRegainTotalTimeRvRuRQR±R"R“R;R:(RbR.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(NRC(RR9R,RDREttagMCFBCntRegainRemainTimeRGtInfoListRtR7ttagMCFBCntRegaint    DataMapIDRsR8REt
RemainTimeR2R‰tCntRORP(    RbRHRIt
regainDataR.tmapInfoRJRKRL((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(R"RwR·R+RsRtRuRvR¿RðRÓtFBPlayerDict_IsHelpFightRrR{(RbR.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ÓRtRY(Rb((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetIsHelpFight4sc    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 GetWeekTimestGetWeekResetTypeRttDef_Player_Dict_EnterFbCntWeekRsRQR±R2R;(    Rbt
onWeekTypet    mapIDInfot
ipyDataMgrRÉtipyDataR.t    weekTimestenterCntWeekKey((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytFBOnWeek8s"    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"RPRORtOnFBPlayerOnDayR,R\R»R]R^R_tGetDayHelpCountMaxRsRttDef_PDict_FBRealHelpCountRQR±R“RqR RRtGetDayResetTypeRvRuRRRR7RÎR2R;tSync_FBPlayerFBBuyCount(Rbt    onDayTypeRdReRÉRfR.RRAR„R=Rƒt    buyCntKeyRt recoverCntKeyRMt itemAddCntKeyRRN((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytFBOnDayUsR    .         cCsCtj|ƒt|ƒt|ƒt|ƒt|ƒt|ƒdS(N(RtOnFBPlayerOnLoginR;tSyncFBEnterTickRnR:tCheckFBPlayerOffine(Rb((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/tGetOfflineTimeRQtGetPlayerLeaveServerSecondR"R“RÃ(RbtmapidRft OfflineTimetleaveServerSecond((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRv¦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=%sitFBEnterTimeBuyRC($R"tGetPlayerManagerR½tFBIDR/R R“RRRsRtRRqRvR1R7R,tGetFuncEvalCfgRúR"tevalRQRRDR‘R¤tDef_Cost_BuyFBCntR±RnRRR8RR9RERDR:(t playerIndext
clientDataRüRbR.RfR*R+t    hasBuyCntRFR„Rƒt costGoldDicttcostGoldRŸR©RªR«RJRHRK((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytBuyFBEnterCount½sZ       %    "cCstj|tjƒS(N(t EventReporttWriteFuncCMEAcceptableRDtGameFuncID_RunDaily(Rb((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytDoFuncOpen_RunDailyïscCstj|tjƒS(N(R‹RŒRDtGameFuncID_RunFamily(Rb((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ÎtstrptimeRttTYPE_Time_FormattsecondsR¿RätMap_FBDict_NotifyOpenRQt WorldNotifyRÀ(t openTimeListt    notifyMsgtnotifyTimeListR.t mergeMinOSDt mergeMaxOSDt mergeMapInfoRHtnextTimetcurYeartcurMonthtcurDaytcurHourtnextYeart    nextMonthtnextDaytnextHourtstartTimeStrFormattmaxNotifyMinutet remaindMinuteRštminutet startTimeStrROt
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›RtRœRRrR{(R tprepareSecondsRHtprevTimeR§R¨R©RªtprevYeart    prevMonthtprevDaytprevHourR¯RšR²R³ROtpastTimet pastSeconds((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytCheckIsFBPrepareTime7s" ** 
    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úRQRRRytTYPE_Price_Silver_MoneyRƒt GetMoneyCountRtR7RstDef_Player_Dict_FMTDoubleRR¤tDef_Cost_FBEncouragetDef_SkillID_FBEncourageBufft GetGameDatatGetSkillBySkillIDRPt SkillCommont GetBuffTypet    BuffSkillt    DoAddBuffRðtSendFBEncourageInfoR5tDoAddSuccessProgressRDtSuccType_FBEncouraget
EventShelltEventRespons_FBEncourage(RbR®t encourageTypeRütisMaxlvtcurMapIDRfR„RËRrt encourageLVtencourageCntKeyt encourageCntRÅt encourageCosttisDoubleRŸR©RªtmoneyCntt
buffTypeIDt skillBuffIDt    skillBufftbuffTypet
addHurtNum((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytFbEncourageBuffbs`     
!   $
!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"RPR¿RíRwR·R+R,R‚RúRtRÌRÍRÎRÏRÐRÑRÒRÓ( RbR®RüRrRË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ÑtDelBuffBySkillIDRQtRefreshPlayerAttrByBuffR"RPRrR{(RbRü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ÁRTsFbEncourageCnt_%s(R·R+R,tGetIpyGameDataByConditionRrREttagMCFBEncourageInfoRGRRR"R¿RÓtGetInspireTypettagMCFBEncourageCntt    MoneyTypeRít EncourageCntR2R‰RVRORP( RbtlvRÚt ipyDataListt encourageInfoRÜRËRrRft inspireTypetpackData((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRÓÊs(   
             cCstd|jtjƒƒS(Ni(RÎRRtt Def_PlayerKey_AreaRewardMultiple(Rb((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetAreaRewardMultipleäscCs|jtj|ƒdS(N(tSetDictRtRù(RbR²((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetAreaRewardMultipleëscCst||ƒdkS(Ni(t GetFBEnterCD(RbR.((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRVô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‚RXR°RttDef_PDict_LastEnterFBTickR"tChangeTimeStrToNumtGetCurrentDataTimeStrRÎR“(    RbR.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"RwR·R+R,R‚RRR³RtRÿR“Ru(RbR.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úR2tkeysR‰tpopt SetConfigExR9( R.R    t
dMapIDDictReRÉRftdMapIDtmIDt
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"RRREttagMCFBEnterTickListRGt EnterTickListR R°RtRÿR³R“ROttagMCFBEnterTickR t LastEnterTickR2R‰RVRORP(Rbt    syncMapIDRRt    enterListR.Rt enterTickObj((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRuDs. 
     # 
        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_RcRR*REttagMCPlayerFBInfoDataRGR‰t    FBDataCntt
FBDataListt tagMCFBInfoRRsRtRutEnterCntRt
RecoverCntRt
ItemAddCntRQtDef_FBStar_MaxKeyCntt"Def_Player_Dict_PlayerFBStar_MapIdt    PassGradeR2t PassGradeCntRORP(
RbRdReRÉRt
fbInfoDataRRXtkeyNumt
gradeValue((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR;is0 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^R R2R_REttagMCBuyEnterInfoRGtFBInfot tagMCBuyInfoRRsRtRtBuyCountR‰tFBCountRORP(RbRReRÉRfR'RRX((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRnž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»R2trandomtshuffleRtextend( 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#tSetGameWorldDictRttMap_Player_AreaReward_GetCnttMap_Player_AreaReward_GetExpt!Map_Player_AreaReward_GetExpPointt$Map_Player_AreaReward_GetZhenQiTotalt"Map_Player_AreaReward_GetTechPoint(RfR›((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,RDR‚RäRttMap_FBDict_LastAreaRewardTickRÀR“RºR»R¼R½R¹RORCR>R=RúRXRQtGetPlayerReExpRƒtAddExptGetFBAreaRewardExpR?tDef_PerPointValueR@tPlayerAddZhenQiRrRAt PlayerFamilytAddPlayerFamilyActiveValueRDtDef_AddFAVReason_FamilyInvadeRB(t
cfgKeyNameRüt    needAliveRËR›trewardIntervaltrewardFormatDictt getCntLimitt lastAwardTickRëRÜRbRftgetCnttmultipletreLVtreExpRì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(RCRtR?R@RL(R›RfR    R
((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRK#    scCs|jtj|ƒS(N(RCRtRA(R›Rf((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBAreaRewardZhenQi(    scCs|jtj|ƒS(N(RCRtRB(R›Rf((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äRttDef_FB_NotifyFBHelpTickRÀRºR»R¼R½(Rüt
fbHelpFunctintervalRËRýRëRÜRb((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytNotifyCopyMapPlayerFBHelp.    s  (ÃR"RyRQRtGameMapRÖR¸RµRÑRERORÏR,tPlayerFBRDR‹RNR3R5tPlayerMagicWeaponR!RR¸RRtR”R/RtmathR9RR—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_xianyuanCointOver_helpPlayerRQtDef_FbActionEncouragetDef_FbActionChangeLineR'R)R/RrR3R4R6R8R:R<R>RARFRIR{RmRTR_R¬R°R³RÌRÞRãRæRçRìRïRòRóRùRÿt tttFlagTakeRRRR!R#R7R<RBRDR[RgRiRlRuRyR|R}RR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ãRRRvR-R1RBRPR:RZR[RiRsRwRvRŠRŽRR¶RÀRæRçRíRÓRúRüRVRýRR+RuR;RnR<RCRaRKRbRcRg(((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt<module>st                                                                <    1(         %    "                                1                           " % "                
                          %                "        %                                                         #        #      #                     F             2         ;    + @                                          % 5 "         <