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
t\›[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@dZAdZBeCdƒ\ZDZEd„ZFd„ZGd „ZHeId!„ZJdd"„ZLd#d$„ZMd#d%„ZNd#d&„ZOd'„ZPd(„ZQd)„ZRd*„ZSd+eIeTd,„ZUd#dd+eTd-„ZVd#d+d.„ZWd#d/„ZXd0„ZYd1„ZZd2„Z[d3„Z\d4„Z]d5„Z^dd6„Z_d7„Z`d+d8„Zad9„Zbd:„Zcd;„Zddejed<„Zfid=„Zgid>„Zhd?„Zid@„ZjdA„ZkdB„ZldC„ZmdD„ZnddE„ZoeTdF„ZpeTdG„ZqdH„ZrdI„ZsdJ„ZtdK„ZudL„ZvdM„ZwdN„ZxdO„ZydP„Zzd#eIdQ„Z{d#eIdR„Z|dS„Z}dT„Z~dU„ZdV„Z€dW„ZdX„Z‚dY„ZƒdZ„Z„d[„Z…gd\„Z†d]„Z‡ggd^„Zˆd_„Z‰eCd`ƒ\ZŠZ‹ZŒZda„ZŽeIdb„Zdc„Zdd„Z‘de„Z’df„Z“dg„Z”dh„Z•di„Z–d#dj„Z—dk„Z˜dl„Z™ddm„Zšd+ddn„Z›do„Zœdp„Zdq„Zždr„ZŸd+ds„Z dt„Z¡du„Z¢dv„Z£dw„Z¤dx„Z¥dy„Z¦dz„Z§d#ddgd{„Z¨d|„Z©eTd}„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¸eTdŒ„Z¹d„ZºdŽ„Z»d„Z¼dd‘„Z½dS(’iÿÿÿÿNt VSFB_CanEntert VSFB_IsClosetVSFB_NotFamilyIDt VSFB_NotFighttlineIDtsteptwheeltnpctnpcTotaltexptexpPointtmoneytscoretgradetleaderIDt    dataMapIDtisPasstisSweeptextraExpt extraExpPointtsptcostTimetranktitemInfot succItemInfot    extrScoretenterLVicCs*ttd|tjƒjƒf|ƒdS(Ns
GFBD_%s_%s(tsetattrt
PyGameDatat    GameWorldt GetGameWorldt    GetLineID(tattrKeytdata((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt SetGameFBDatabscCs#ttd|tjƒjƒfƒS(Ns
GFBD_%s_%s(tgetattrRRRR(R ((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetGameFBDatacscCst|ƒ}tjd|ƒS(NtFBFunc(tGetRecordMapIDt IpyGameDataPYtGetIpyGameDataNotLog(tmapID((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetFBIpyDataes cCsJt|ƒ}tjd||ƒ}| rF|rFtjd|dƒ}n|S(NtFBLinei(R&R'R((R)Rt isDefaultLinet fbLineIpyData((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineIpyDatahs
  cCs,|st||ƒ}n|s"dS|jƒS(N(R.tNonetGetEnterPosInfo(R)RR-((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineEnterPosInfopsicCs#t||ƒ}|sdS|jƒS(N(R.R/t GetStepTime(R)RR-((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineStepTimeuscCs#t||ƒ}|sdS|jƒS(N(R.R/t GetRefreshNPC(R)RR-((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineRefreshNPCyscCs#t||ƒ}|sdS|jƒS(N(R.R/t GetGradeInfo(R)RR-((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineGrade}scCs#t||ƒ}|sdS|jƒS(N(R.R/t GetRewardInfo(R)RR-((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineRewardscCs t|ƒ}|sgS|jƒS(N(R*t GetRewardRate(R)t    fbIpyData((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBGradeRewardRateList†s cCs-|tjkr)tjƒjtj|ƒSdS(Ni(RtFBEnterTimeLimiitMapIDRRtGetGameWorldDictByKeyt ShareDefinetDef_Notify_WorldKey_FBCanEnter(R((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBFuncOpenStateŠscCs$|tjkrdS|tj|kS(N(RtFBOpenTimeRecord(RtdayStr((sj.\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 GetPlayerIDRARtLogt 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((sj.\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 GetTicketIDtTruetFalsetGetTicketCostCntRtErrLogRKRTRRRUtlentGetItemManagertGetPackt IPY_GameWorldtrptItemt
ItemCommontGetItem_FromPack_ByID_ExExtGetTicketPriceRMt HaveMoneyExR?tTYPE_Price_Gold_Paper_MoneytbooltDebugLog(RdR)RR-ReRgtticketIDtticketCostCntListRktcostCntt totalCostCnttitemPacktenought    indexListthasBindtlackCntt ticketPricet    costMoneyt costMoneyList((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRaá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(RaR/RtRMtPayMoneyRRtDef_Cost_EnterFBRsRxRyRzR{R|t
ReduceItem( RdR)RRktisEnoughR‰tdelCntRŠRŽtinfoDictt    moneyTypetmoneyNumR‡((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytDelFBEnterTicket    s'
 
cCs|j||tjƒS(N(RTRRtDef_PDictType_FB(Rdtkeyt defaultValue((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBPDictValuescCstj|||tjƒdS(N(RMtNomalDictSetPropertyRRRœ(RdRtvalue((sj.\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_DynNPCLVMaptGetMapCopyPlayerManagertxrangetGetPlayerCounttGetPlayerByIndexR/tIsEmptyRKRZt    GetGameFBt SetGameFBDictRRtDef_FB_NPCStrengthenAverageLVtDef_FB_NPCStrengthenMaxLVRLRs( RhtisLeavetattrStrengthenInfoR)tmaxLVttotalLVt    playerCnttcopyMapPlayerManagertiRdRmt    averageLVtgameFB((sj.\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°RRtDef_FB_NPCStrengthenPlayerCntRLt GetNPCManagerR«t GetNPCCountt GetNPCByIndextGetIDtGetTypeRzt ntFunctionNPCtntPettDoNPCAttrStrengthenRtRs( RhR³R´R)tcoefficientDicttisRefreshNPCAttrNowR»t playerCounttgameNPCManagertindextcurNPC((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytUpdFBLineNPCStrengthenPlayerCntOs2  
      cCsA|jtj|ƒ|jtj|ƒtjd||fƒdS(s{ ÉèÖùÖÎïµôÂäÖ´ÐдÎÊýÍò·ÖÂÊ ¼° ¹Ì¶¨¼Ó³É´ÎÊýÖµ
    @param doCountRate: ´ÎÊýÍò·ÖÂÊ
    @param doCountAdd: ´ÎÊý¹Ì¶¨Öµ    
    s7ÉèÖùÖÎïµôÂäÖ´ÐдÎÊýÐÅÏ¢: doCountRate=%s, doCountAdd=%sN(R°RRtDef_FB_DropDoCountRatetDef_FB_DropDoCountAddRRL(R»t doCountRatet
doCountAdd((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetNPCDropDoCountRateqscCstjƒjtjƒdkS(Ni(RR¯tGetGameFBDictByKeyRRtMap_FBDict_PropertyMark(((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetHadSetFBPropertyMark|scCstjƒjtjƒdS(Ni(RR¯RÔRRRÕ(((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBPropertyMark‚scCsÏtjƒjtj|dƒ|dkrWtj||ƒtjd||j    ƒƒdStj
ƒ}xet |j ƒƒD]Q}|j |ƒ}|j    ƒsqvntj||ƒtjd||j    ƒƒqvWdS(Nis,SetFBPropertyMark ÉèÖÃÍæ¼Ò¸±±¾¹¦ÄÜÏß·ID: %ss,SetFBPropertyMark ¹ã²¥Íæ¼Ò¸±±¾¹¦ÄÜÏß·ID: %s(RR¯R°RRRÕR/RMtSetFBFuncLineIDR‚RKRªR«R¬R­(t propertyMarkt    setPlayert playerManagerRÌRd((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetFBPropertyMarkˆs   cCstjƒj|jƒtjƒS(N(RR¯tGetPlayerGameFBDictByKeyRÃRRtFBPlayerDict_IsDelTicket(Rd((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetHadDelTicket›scCs&tjƒj|jƒtj|ƒdS(N(RR¯tSetPlayerGameFBDictRÃRRRÞ(RdtdelSign((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetHadDelTicket¡s"cCs:d}tjƒ}|jƒdkr6|jdƒ}n|S(s »ñÈ¡µ±Ç°µ¥È˸±±¾Íæ¼Ò iN(R/RRªR¬R­(RdRÛ((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetCurSingleFBPlayer¥s
 cCsE|r tjS|jƒr>tjƒjtjƒdkr>tjStjS(Ni(    RRtFB_JoinType_Helpt    GetTeamIDRR¯RÔtDef_FB_TeamPlayerCounttFB_JoinType_MultitFB_JoinType_Single(Rdt isHelpFight((sj.\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((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFB_RemainTimeºscCsÚd}tjƒ}|jtjƒ}||krM|rItj||ƒn|St||jƒdƒ}d}t    |ƒ}    d}
x<|D]4} |
| 7}
|
|}|dkr°Pn|    d8}    q†Wt
||    ƒ}    ||    krä| rä|S|j tj|    ƒtj d||||    |fƒ|rYtj||ƒ|    |krÖ|j |d|dtƒqÖn}tjƒ} xnt| jƒƒD]Z} | j| ƒ}|s™qxntj||ƒ|    |krx|j |d|dtƒqxqxW|    S(sa¸üе±Ç°¸±±¾ÐǼ¶¡¢ÆÀ¼¶
    @param gradeTimeList: ÆÀ¼¶·Ö¶Îʱ¼äÁÐ±í£¬µ¥Î»Ãë [×î¸ßÆÀ¼¶¿ÉÓÃʱ¼ä, Ï¼¶¿ÉÓÃʱ¼ä, ..., ×îµÍ¼¶¿ÉÓÃʱ¼ä]
    @param curPlayer: ´¥·¢µÄÍæ¼Ò£¬Ò»°ãÊÇDoEnterʱµ÷Ó㬻áͬ²½¸üÐÂÒ»´Î¸±±¾ÆÀ¼¶²¢½«ÐÅϢ֪ͨ¸ÃÍæ¼Ò
    @note: ÐǼ¶£º1-1ÐÇ£»2-2ÐÇ ...            [60, 20, 10]
            ÆÀ¼¶£º1-D£»2-C£»3-B£»4-A£»5-S;    [60, 30, 30, 20, 10]
    ig@@isQUpdateFBGrade useSecond=%s,gradeTimeList=%s,curGrade=%s,updGrade=%s,diffSecond=%siè(RR¯RÔRRt Def_FB_GradetFBLogictDoFBHelptintt GetFBStepTickRwR¾R°R‚t Sync_TimeTickRsRªR«R¬R­(Rít gradeTimeListRdttimeTypetlowestR»tcurGradet    useSecondt
diffSecondtupdGradet gSecondTotaltgSecondRÛRÌ((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt UpdateFBGrade¿sH    
 
         !cCsh|ji|t6|t6t|ƒt6ƒtj|dtƒ}|j|ƒt    j
d||j ƒƒdS(Nt ensure_asciisNotifyFBOver: %s( tupdatetOver_dataMapIDt Over_lineIDRôt Over_isPasstjsontdumpsRtt    Frm_FBEndRR‚RK(RdRRRtoverDicttoverMsg((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt NotifyFBOverðs
( cCsT|ji|t6ƒtj|dtƒ}|j|ƒtjd||jƒƒdS(NRsNotifyFBHelp: %s(    Rt Help_lineIDRRRtt
Frm_FBHelpRR‚RK(RdRthelpDictthelpMsg((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt NotifyFBHelpøs
 cCs*tj|dtƒ}|jd|ƒdS(NRs%s(RRRtR(RdtmsgDict((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytNotify_FB_OverscCs0tj|dtƒ}|jdt|ƒƒdS(NRs%s(RRRtR tstr(RdR((sj.\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
isinstancetlistttupleRwRôR|tCheckItemCanUset GetItemTypeIDtGetCountt    GetIsBindt
GetIsSuitet GetUserDatatappend(titemListt jsonItemListRtitemDicttinfolen((sj.\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)((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonMoneyList)scCsBg}x5|jƒD]'\}}|ji|d6|d6ƒqW|S(NtNPCIDtkillCnt(R*R#(tnpcDicttkillListtnpcidR/((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonNPCKillList0scCsBg}x5|jƒD]'\}}|ji|d6|d6ƒqW|S(NR.tHPPer(R*R#(R0R1R2R4((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonNPCHPPerList7sc 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#RwRt NetPackCommont SendFakePackRRªtrangeR¬R­( tbarrierPointListtstateRdtbarrierStatePacktaPosXtaPosYtbPosXtbPosYtbarriert playManagerR¹((sj.\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ÂR/tGetNPCIDt
GetVisibleRtGetTickR¨t
NPCControlt DoNPCRebornt
SetVisibleRsRt(    t
doorIDListttypetisRebornRËR¹RÍtnpcIDtcurTypeRí((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytOpenOrCloseDoorEx`s*       cCsÔtjƒ}xÁ|D]¹}|j|ƒ}|dkrKtjd|ƒqn|jƒ}|dkr³|roqn|r tjƒjƒ}tj    |ƒj
|ƒn|j t ƒqn|s¿qn|j t ƒqWdS(Ns¸±±¾ÎÞ·¨²éÕÒ, ÃÅID = %si(RRÀtFindGameNPCByNPCIDR/RvRNRROR¨RPRQRRRsRt(RSRTRURËRVRÍRWRí((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytOpenOrCloseDoor…s&      cCstjƒj|ƒdS(N(RR¯tBroadcast_FbBillboard(tmaxCount((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt InitBillBoard§scCsX|jƒ}|jƒ}tjƒj|ƒ}|j|ƒ|j|ƒ|jdƒdS(Ni(RKtGetNameRR¯tGetFbBillBoardPlayert SetPlayerIDt SetPlayerNametSetPoint(Rdt curPlayerIDt curPlayerNametplayerBillBoard((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytInitBillBoardPlayer¯s     cCsmtjƒj|jƒƒ}|dkrCt|jƒ|dƒ}nt|jƒ|dƒ}|j|ƒ|S(Niiÿÿi(RR¯R_RKtmintGetPointR¾Rb(RdRTR¡Retpoint((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytAddorReduceBillBoard¿s   cCs,tjƒj|jƒƒ}|j|ƒdS(N(RR¯R_RKt
SetCountry(RdtcountryRe((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetCountryBillBoardÏs cCs%tjƒj|jƒƒ}|jƒS(N(RR¯R_RKRh(RdRe((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetPlayerBillBoardPointÙscCs%tjƒj|jƒƒ}|jƒS(N(RR¯R_RKtGetBillboardIndex(RdRe((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetPlayerIndex_InBillBoardáscCs'tjƒ}|jƒ|j|ƒdS(N(RR¯tSortFbBillBoardPlayerR[(R\R»((sj.\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 SetFBStepTickRL(RRíR»((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRsös
   cCsatjƒ}xNt|jƒƒD]:}|j|ƒ}|jƒsFqn|j|||ƒqWdS(N(RRªRBR¬R­RKtSync_FbSystemMessage(tkeepTimetmsgTypetmsgRÛR¹Rd((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRus  cCsgtjƒ}xTtd|jƒƒD]=}|j|ƒ}|jƒsIq"n|j||||ƒq"WdS(Ni(RRªRBR¬R­RKRö(RwtmsgTickRVt
isContinueRÛRÌRd((sj.\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(R/RR¯RÔRRtMap_FBDict_PrevFBTimeTypeRsRtRLR°RªRBR¬R­RKRö(    RwRyt isSendPrevMsgRVRzt prevMsgTypeRÛRÌRd((sj.\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(RRRsRBtGetGameWorldCounttGetGameFBByFbIndext GetFamilyVSt GetFamilyIDt GetVSFamilyIDRttGetOpenStateByFbIndexRztfbosOpentDef_VSFB_IsClosetDef_VSFB_CanEntertDef_VSFB_NotFighttDef_VSFB_NotFamilyID(tfamilyIDt    gameWorldt todayNotFightRÌR»tfamilyVsManagertattackIDt    defenceID((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetCanEnterVSFBIs"         cCs|tjƒ}xit|jƒƒD]U}|j|ƒ}|jƒ}|jƒ}|jƒ}|||gkr||fSqWdS(N(NN(    RRRBR€RR‚RƒR„R/(R‹RŒRÌR»RŽRR((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGet_VS_Line_GameFBns    cCstjƒj|ƒS(N(RRt GetMapCopyPlayerManagerByFbIndex(t    lineIndex((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGet_Line_PlayerManagerscCs›tjƒ}|jƒtjkr<tjd|jƒƒdS|sFdStjƒ}xBt|jƒƒD].}tj|ƒ}|j    ƒ|kr’qen|SWdS(Ns+###µ÷Óú¯ÊýÒì³£ Get_TeamFB_Line_GameFB = %s(
RR¦t GetMapFBTypeRztfbtTeamRLRRBR€t GetPropertyID(tteamIDtgameMaptgameWorldManagerRÌRŒ((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGet_TeamFB_Line_GameFB‰s  cCs‰tjƒjƒ}|tjkr…t|jƒƒ}|s=tS|jƒdkrSt    S|j
ƒtj krrt    dfS|j ƒtj kStS(Nit FBinCantEnter(RR¦R–RzR—RœRåRstGetCloseFBTickRtt    GetTeamLVt    tmlLeadert GetOpenStatetfbosWaitForClose(t    askStructt gameMapFBTypeRŒ((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytCheckFBStateCanEnter¥s
cCs‚g}tjƒ}xit|jƒƒD]U}|j|ƒ}|jƒdkrRq%n|jƒtjkrmq%n|j    |ƒq%W|S(Ni(
RRÀRBRÁRÂRÃtGetGameNPCObjTypeRztgnotPetR#(t gameNPCListRËRÌRÍ((sj.\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ÀRBRÁRÂRÃtGameObjtGetHPR¦RzR§t
gnotSummont GetObjDetailR/tGetOwnertGetGameObjTypet    gotPlayerR#(t findNPCListRËRÌRÍt curNPCDetailt curNPCOwner((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetMapSystemNPCListÞs" '  !    cCsdtjƒ}xQtd|jƒƒD]:}|j|ƒ}|jƒdkrOq"ntj|ƒq"WdS(Ni(RRªRBR¬R­RÃRMt PlayerLeaveFB(RÛR¹Rd((sj.\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¦RzR¬RR­R/R®R¯R°tgotNPCR#(R¨R±RÍR²R³((sj.\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¸R/RÄRzRÅRÆRMR¨t    SetDeadEx(t ignoreIDListRÍ((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt
ClearFBNPC6s cCssxltƒD]a}|dkr"q
n|jƒtjtjgkrFq
n|jƒ|kr^q
ntj|ƒq
WdS(N(    R¸R/RÄRzRÅRÆRMR¨R¹(tclearNPCIDListRÍ((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt ClearFBNPCExKs cCsšd}xtƒD]‚}|dkr(qn|jƒtjtjgkrLqn|jƒ}|rp||krpqn|rˆ||krˆqn|d7}qW|S(Nii(R¸R/RÄRzRÅRÆRM(t    npcIDListRºtnpcCntRÍRV((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetFBNPCCntas  cCsgtjƒ}tj|}tj|}tj|}|j||ƒ|j||ƒ|j||ƒdS(N(RR¯RRtMap_NPC_RandomMapNPCIDtMap_NPC_RandomMapNPCNeedCnttMap_NPC_RandomMapNPCPerMaxCntR°(t refreshMarkRVtneedRefreshCntt    perMaxCntR»tnpcIDKeyt
needCntKeyt perMaxCntKey((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetRandomRefreshMapNPC|s    icCstjƒ}|jtj||ƒ|jtj||ƒ|jtj||ƒ|jtj|dƒ|jtj|dƒ|jtj    ||ƒ|jtj
|dƒ|jtj |dƒ|jtj |dƒ|jtj |dƒ|rt||d|ƒndS(Ni(RR¯R°RRtMap_TDNPC_RefreshFileNumtMap_TDNPC_RefreshSignKeytMap_TDNPC_RefreshStartTicktMap_TDNPC_RefreshBigWheelNumtMap_TDNPC_RefreshSmallWheelNumtMap_TDNPC_CurWheelStartTicktMap_TDNPC_CurWheelIsOvertMap_TDNPC_AllWheelIsOvertMap_TDNPC_NPCCnttMap_TDNPC_NPCBossCntt__TDStartRefreshNotify(trMarktfileNumtsignRíRfR»((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytOpenTDNPCRefresh˜s cCsètjƒ}|jtj|dƒ|jtj|dƒ|jtj|dƒ|jtj|dƒ|jtj|dƒ|jtj    |dƒ|jtj
|dƒ|rä|jtj |dƒ|jtj |dƒndS(Ni( RR¯R°RRRËRÌRÍRÎRÏRÐRÑRÓRÔ(RÖt
isResetNPCR»((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytCloseTDNPCRefresh®s cCs;tjƒ}x(|D] }|jtj|ƒstSqWtS(N(RR¯RÔRRRÒRtRs(t    rMarkListR»RÖ((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytIsTDNPCRefreshOverÁs
  cCs;tjƒ}x(|D] }|jtj|ƒstSqWtS(N(RR¯RÔRRRÑRtRs(RÜR»RÖ((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytIsTDWheelRefreshOverÌs
  cCsdtjƒ}xQ|D]I}|jtj|ƒ}|jtj|ƒ}|dksX| rtSqWtS(Ni(RR¯RÔRRRÓRÑRtRs(RÜR»RÖR¿tcurWheelIsOver((sj.\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ÔRRRÍRÎRËRtR¤R¥RwtDef_TDCfg_NextWheelTime(
RÖRíR»t    startTickt curWheelNumR×trefreshCfgListt wheelInfoListtforceNextWheelTimetpassTick((sj.\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ÔRRRÎR°RÏRÐRÑRËRÌRÕR‚(RÖRíRfR»Rãt nextWheelNumR×tsignKey((sj.\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¥tgetRwtDef_TDCfg_NotifyMarkRMtFBNotify(
R»R×twheelNumRØtrefreshNPCDicttrefreshNPCListR2RäRåt
notifyMark((sj.\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 GetDictByKeyRRtDef_NPC_Dict_FromRefreshMarkRÔRÔt
IsGameBossR¾R°RÓR‚(
RÍR¡R»RÖtcurMarkNPCBossCntKeytbossCnttisBosstcurMarkNPCCntKeyR¿tupdCnt((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt 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ÔRRRÎRËR¤R¥RwRátDef_TDCfg_PrepareTimeRÐR¾RÍR/R{RöRs(RdRÖRwRítmsgIDR»RãR×RäRåt nextWheelTimet prepareTimetcurWheelStartTickRçtnextWheelRemainTickRâ((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSync_TDNextWheelTick?s0  
 
 
 
 
 c Cs¨t|ƒ}|jƒ}|jƒ}d}|jƒ}tj||ƒ}|jtj|ƒ}|jtj    |ƒ}    |jtj
|ƒ}
||||    ||
} | S(Ni( R*RPtGetExtraTimesMWPriIDtGetExtraTimesVIPPriIDt    PlayerViptGetPrivilegeValueRTRRtDef_Player_Dict_BuyFbCntDaytDef_Player_Dict_RecoverFbCnttDef_Player_Dict_ItemAddFbCnt( RdR)R;Rit MWPrivilegeIDtmwAddCnttextraTimesVIPPriIDtextraCnttbuyCntt recoverFbCntt
itemAddCntRl((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRVbs    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*RTRRRURPRRRRRRR    tcopytdeepcopyt    enumerateR¾tGetBuyTimesVIPPriID(RdR)R;RkRiR
R R R RRRtcntListtrCntListtsumCntR¹tcntt rRecoverFbCntt    rExtraCntt
rCommonCnttrBuyCntt rItemAddCnttbuyTimesVIPPriIDt    canBuyCnttnoBuyCnt((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBDetailCntInfoqs0   
 
  cCsBt|ƒ}|jtj|ƒ}|dkr>tj||ƒS|S(Ni(R&RTRRRURtGetDataByDigitPlace(RdtfbIDtlineBitRk((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetEnterFBCount”s
  c Cs¹t|ƒ}tj|}|j|ƒ}|dkr„tj||ƒ}td||ƒ}tj|||ƒ}tj    |||ƒnût
||ƒ}    ||    kr£t St|    ||ƒ}
|
|}tj    |||
ƒt j |||
|ƒtj|||ƒ|
}|tjkrt|ƒ} | jƒ} |    || kr|    |
| krtj    |tj|ttjƒƒƒt|ƒqntjd|||||f|jƒƒt||ƒtS(Nii    sM    AddEnterFBCount fbID=%s, addCount=%s, lineBit=%s, enterCnt=%s,updValue=%s(R&RRRURTRR"RgtChangeDataByDigitPlaceRMR RVRttPlayerActivitytOnEnterFBActivityt PlayerSuccesstAddEnterFBSuccesstDef_FBMapID_SealDemonR*RPt$Def_Player_Dict_FbCntRegainStartTimeRôttimetNotifyFBCntRegainInfoR‚RKtSync_FBPlayerFBInfoDataRs( RdR#taddCountR$t enterCntKeyRktcurLineEnterCntt updEnterCnttupdValueRlRúR;tdayTimes((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytAddEnterFBCount s6    
   &      cCsÈtj}t||ƒ}t|ƒ}|jƒ}t||ƒ}td|||ƒ}|s`dSttjƒƒ}t    j
dƒ}|j tj |ƒ}    |j tj |ƒ}
|
s¼|}
n||    } | |
krÖdSt|d| |
|ƒ} tj|} td|| ƒ}tj|| |ƒtj|tj |dƒ| |krgtj|tj |dƒn,|| |
|}tj|tj ||ƒtjd| | |
fƒt||ƒt|ƒdS(NitFBCntRegainIntervalis.    ·âħ̳»Ö¸´´ÎÊý%s, passTime=%s, needTime=%s(RRR+R%R*RPRVR¾RôR-R't
GetFuncCfgRTR,t$Def_Player_Dict_FbCntRegainTotalTimeRgRURMR RR‚R/R.(RdR)RkR;t maxDayTimesRlt    maxCanAddtcurTimetrecoverIntervaltlastRegainTimetneedTimetpassTimet
recoverCntR1t newEnterCntt    startTime((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytRegainFBCntProcessÀs<          
 
c    Csttjƒƒ}tjdƒ}tjƒ}|jƒg|_x§tj    gD]™}tj
ƒ}|jƒ||_ |j tj |ƒ}|j tj|ƒ}|s­|}n||}||krÉqMn|||_|jj|ƒqMW|js÷dSt|jƒ|_tj||ƒdS(NR7(RôR-R'R8R6ttagMCFBCntRegainRemainTimeR8tInfoListRRR+ttagMCFBCntRegaint    DataMapIDRTR,R9t
RemainTimeR#RwtCntR@RA(    RdR<R=t
regainDataR)tmapInfoR>R?R@((sj.\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&RTRRRURVR¯RàRÃtFBPlayerDict_IsHelpFightRsRt(RdR)RkRl((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetIsHelpFightÿs  "cCstjƒj|jƒtjƒS(N(RR¯RÝRÃRRRM(Rd((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetIsHelpFight
scCs#tj|dƒt|ƒ}|jƒ}|s2dStj|dƒtj|tj    ƒ||}t
j dƒ}|j t jƒ}||kr tj|dƒdSt|||ƒ}tj|t j||ƒtj|tj|dtƒtj|d|gƒtjd||f|jƒƒ|S(    NtTodayNoDungeonRewarditfbhelptDungeonIntegraltAssistantIntegralFullt    isSysHinttAssistantIntegrals/    Ôö¼Ó¸±±¾ÖúÕ½»ý·Ö£¡mapID=%s, addHelpPoint=%s(RMRNR*RQt
EventShelltEventRespons_FBEventR'tAddDailyActionFinishCntR?tDailyActionID_FBHelpR'R8RTRRt!Def_Player_Dict_FBHelpPointCntDayRgR t    GiveMoneytTYPE_Price_FBHelpPointRtRR‚RÃ(RdR)taddFBCntR;Rjt addHelpPointt dayMaxPointt curDayPoint((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytAddFBHelpPoints&  
  c    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 GetWeekTimestGetWeekResetTypeRRtDef_Player_Dict_EnterFbCntWeekRTRMR R#R/(    Rdt
onWeekTypet    mapIDInfot
ipyDataMgrR¹tipyDataR)t    weekTimestenterCntWeekKey((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytFBOnWeek's"    c Csetjd|jƒƒtj||ƒg}tjƒ}xÛt|jƒƒD]Ç}|j    |ƒ}|j
ƒ}|j ƒ}| r¬|j ƒ r¬|j ƒ r¬|jƒ r¬qKn|jƒ|krÄqKnt||ƒ}tj|}    |j|    ƒ}
tj||    dƒtj|} |j| ƒ} tj|| dƒtj|} |j| ƒ}tj|| dƒtj|}|j|ƒ}tj||dƒtjd||| ||||
fƒ|tjgkrtd|||
ƒ}tj||    |ƒtjd|ƒn|j|ƒqKW|r9t||ƒt||ƒn|tj kratj|tj!dƒndS(Ns¸±±¾¹ýÌì´¦Àí,FBOnDay...isY    ÖØÖÃ:mapID=%s,dayTimes=%s,buyCnt=%s,recoverCnt=%s,itemAddCnt=%s,maxCnt=%s,enterCnt=%ss.        ÌØÊ⸱±¾ÒѽøÈë´ÎÊý¸üÐÂ: newEnterCnt=%s("RRLRKRòtOnFBPlayerOnDayR'RbR«RcRdReRPRRRtGetDayResetTypeRVRRRURTRMR RRR    R‚R+R¾R#R/tSync_FBPlayerFBBuyCountR?tDef_OnEventTypeExRZ(Rdt    onDayTypeRjRkR¹RlR)R5RlR1Rkt    buyCntKeyRt recoverCntKeyRAt itemAddCntKeyRRB((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytFBOnDayDsL   .         cCsCtj|ƒt|ƒt|ƒt|ƒt|ƒt|ƒdS(N(RòtOnFBPlayerOnLoginR/tSyncFBEnterTickRrR.tCheckFBPlayerOffine(Rd((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt    FBOnLogin†s 
 
 
 
 
cCsx|jƒ}t|ƒ}|s"dS|jƒ}|s8dStj|ƒ}||krttjd|ƒtj|ƒndS(Ns9Åжϸ±±¾ÀïÀëÏß³¬¹ýÒ»¶¨Ê±¼äÔòÍ˳ö¸±±¾ leaveServerSecond=%s(R§R*tGetOfflineTimeRMtGetPlayerLeaveServerSecondRR‚Rµ(RdtmapidRlt OfflineTimetleaveServerSecond((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR{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=%sitFBEnterTimeBuyR7(#RtGetPlayerManagerR­tFBIDR*RR‚RRRTRRRR'tGetFuncEvalCfgRìRtevalRMRR?R€R“tDef_Cost_BuyFBCntR RrRNR,RPRVR%RôR-R9R8R.(t playerIndext
clientDataRíRdR)RlRRt    hasBuyCntt costGoldDicttcostGoldRŽR˜R™RšR>R:RlRkR<R?((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytBuyFBEnterCount§sR          "cCstj|tjƒS(N(t EventReporttWriteFuncCMEAcceptableR?tGameFuncID_RunDaily(Rd((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytDoFuncOpen_RunDailyÖscCstj|tjƒS(N(RR‘R?tGameFuncID_RunFamily(Rd((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytDoFuncOpen_RunFamily×sc
Cstjƒjƒdks| r#dStjjƒ}|tjddƒ}|j|j|j|j    f\}    }
} } |j|j|j|j    f\} }}}d}t
|ƒ}d}xÐ|D]È\}}|| |gkrßq»n|| kr
||    |
| ||df}n|| ||||df}tjj |t j ƒ}||}|j}|ddd}d|koz|knr»Pq»q»W||kr|tjƒjt jƒkr|dkrÌ||g}n    |g}tjd||d|||ƒtjƒjt j|ƒndS(Nithoursis%s-%s-%s %s:%s:%siÿÿÿÿt00i<(RRtGetCurGameWorldIndextdatetimettodayt    timedeltatyeartmonthtdaythourR¾tstrptimeRRtTYPE_Time_FormattsecondsR¯RÔtMap_FBDict_NotifyOpenRMt WorldNotifyR°(t openTimeListt    notifyMsgtnotifyTimeListR)t mergeMinOSDt mergeMaxOSDt mergeMapInfoR<tnextTimetcurYeartcurMonthtcurDaytcurHourtnextYeart    nextMonthtnextDaytnextHourtstartTimeStrFormattmaxNotifyMinutet remaindMinuteRŸtminutet startTimeStrRCt
remainTimeR¢t msgParamList((sj.\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 RRR¡R¢RsRt(R¥tprepareSecondsR<tprevTimeR¬R­R®R¯tprevYeart    prevMonthtprevDaytprevHourR´RŸR·R¸RCtpastTimet pastSeconds((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytCheckIsFBPrepareTimes" ** 
    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ƒƒ}t j|||ƒ}|s=dSi|d6}x6|D].\}}t j|||tj|ƒsQdSqQWtj    dd    iƒj
|tjƒ}||
}tjƒj|ƒ}|sátjd
|ƒdStj|ƒ}tj||||ƒ|j|    ||
d    ƒ|j|    | | d    ƒtj    dd iƒj
|dƒ}t j |d |
d    |gƒt||
d    ƒtj |t!j"d    |gƒt#j$||ƒdS( Nt FbEncouragesFbEncourageCnt_%stFBEncourageBuffiitGeRen_chenxin_93643tXjmj_CopperInspireFullRisFbEncourageBuff   ÕÒ²»µ½¼¼ÄÜ%sitGeRen_chenxin_628920(%R§R&R'tGetIpyGameDatatGetInspireMaxLVRR¯RÃRÝR‡RìRMRNRztTYPE_Price_Silver_MoneyRˆt GetMoneyCountRR“RRtDef_Cost_FBEncouragetDef_SkillID_FBEncourageBufft GetGameDatatGetSkillBySkillIDRLt SkillCommont GetBuffTypet    BuffSkillt    DoAddBuffRàtSendFBEncourageInfoR)tDoAddSuccessProgressR?tSuccType_FBEncourageRVtEventRespons_FBEncourage(RdRt encourageTypeRítisMaxlvtcurMapIDRlRlR»Rct encourageLVtencourageCntKeyt encourageCntRµt encourageCostRŽR˜R™tmoneyCntt
buffTypeIDt skillBuffIDt    skillBufftbuffTypet
addHurtNum((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytFbEncourageBuffIsX     
!   $
!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ÃRRLR¯RÝR¦R§R&R'R‡RìRRRÐRÑRÒRÓRÔRÕRÖR×( RdRRíRcR»RÞR)RãRäRåRæ((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytAddFbEncourageBuff…s$   $ cCs‚xntttjddiƒjƒƒƒD]E}tj|||ƒr(tj|ƒ}|jƒt    j
dƒt Sq(Wt    j
dƒt S(NRÇisClearEncourageBuff() TruesClearEncourageBuff() False( RtsetR'R‡tvaluesRÕtDelBuffBySkillIDRMtRefreshPlayerAttrByBuffRRLRsRt(RdRíRãt playerControl((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytClearEncourageBuff s.
  c Csü|jƒ}t|ƒ}tjdi|d6tƒ}|s>dStjƒ}|jƒg|_d}t    j
ƒ}|j ƒ}xX|D]P}|j ƒ}    tj ƒ}
|    |
_|j|||    ƒ|
_|jj|
ƒq‚Wt|jƒ|_tj||ƒdS(NRÆRHsFbEncourageCnt_%s(R§R&R'tGetIpyGameDataByConditionRsR6ttagMCFBEncourageInfoR8RFRR¯RÃtGetInspireTypettagMCFBEncourageCntt    MoneyTypeRÝt EncourageCntR#RwRJR@RA( RdtlvRÝt ipyDataListt encourageInfoRßR»RcRlt inspireTypetpackData((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR×­s(   
             cCstd|jtjƒƒS(Ni(R¾RóRRt Def_PlayerKey_AreaRewardMultiple(Rd((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetAreaRewardMultipleÇscCs|jtj|ƒdS(N(tSetDictRRRû(RdR¡((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetAreaRewardMultipleÎscCst||ƒdkS(Ni(t GetFBEnterCD(RdR)((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRX×scCsÆt|ƒ}tjddƒ}||kr.dS||}t|tj|ƒ}|sXdStjtjƒƒ}t    d||ƒ}t    d||ƒ}|dkrÂtj
d|||||fƒn|S(Nt    FBEnterCDiisF¸±±¾½øÈëCDÖУ¡mapID=%s,timeNum=%s,lastEnterTick=%s,passTick=%s,Ê£Óà=%s( R&R'R‡RŸRRtDef_PDict_LastEnterFBTickRtChangeTimeStrToNumtGetCurrentDataTimeStrR¾R‚(RdR)t enterCDDicttcdTickt lastEnterTickttimeNumRçt    curCDTick((sj.\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(NRis%UpdateFBEnterTick mapID=%s,timeNum=%s( RR¦R§R&R'R‡RRR¢RRRR‚Rz(RdR)RR((sj.\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 GetConfigExRbR«tGetFBLineCounttGetFBLineByIndexReR§RìR#tkeysRwtpopt SetConfigExR*( R)R
t
dMapIDDictRkR¹RltdMapIDtmIDt
dMapIDListRt    mapIDList((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR&s(      cCsYtjddƒ}|sdStjtjƒƒ}tjƒ}|jƒg|_xà|j    ƒD]Ò}|d|gkr{q]nt
|t j |ƒ}||krÝt |t j ||ƒ|}tjd||f|jƒƒntjƒ}|jƒ||_t|j|ƒ||dƒ|_|jj|ƒq]Wt|jƒ|_tj||ƒdS(NRiis&ÐÞÕýÍæ¼Ò¸±±¾CDʱ¼ä mapID=%s,timeNum=%s(R'R‡RRRR6ttagMCFBEnterTickListR8t EnterTickListRRŸRRRR¢R‚RKttagMCFBEnterTickRR¾Rìt LastEnterTickR#RwRJR@RA(Rdt    syncMapIDRRt    enterListR)Rt enterTickObj((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRz$s. 
     # 
    #c
Cs«|sItjƒ}gt|jƒƒD]}|j|ƒjƒ^q%}n=t|ƒttgkredSt|ƒtkr€|gn|}t    j
ƒ}|j ƒt |ƒ|_ g|_xà|D]Ø}t    jƒ}|j ƒ||_|jtj|ƒ|_|jtj|ƒ|_|jtj|ƒ|_xCttjƒD]2}|jtj||fƒ}    |jj|    ƒq;Wt |jƒ|_|jj|ƒq»Wtj ||ƒdS(N(!R'RbR«RcRdReRTRôRR6ttagMCPlayerFBInfoDataR8Rwt    FBDataCntt
FBDataListt tagMCFBInfoR†RTRRRUtEnterCntRt
RecoverCntR    t
ItemAddCntRBtDef_FBStar_MaxKeyCntt"Def_Player_Dict_PlayerFBStar_MapIdt    PassGradeR#t PassGradeCntR@RA(
RdRjRkR¹Rt
fbInfoDataRRLtkeyNumt
gradeValue((sj.\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'RbR«RcRdRR#ReR6ttagMCBuyEnterInfoR8tFBInfot tagMCBuyInfoR†RTRRRtBuyCountRwtFBCountR@RA(RdRRkR¹RlR(RRL((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRr~s*   
      
    c Csg}x!t|ƒD]}|jgƒqW|d}xÙtd||ƒD]Å}g}x{t|ƒD]m}g}||}||kr’|j|ƒn|||d}    |    |krÀ|j|    ƒn|j|ƒq`Wtj|ƒx+t|ƒD]\}
} | j||
ƒqëWqGW|S(Niii(R«R#trandomtshuffleRtextend( R·tgroupCntt    groupListR¹tsetpttmpListtgttmpGrouptaIndextbIndextgitgroup((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetGroupList s&
 
   cCsƒtjƒ}|jtj|dƒ|jtj|dƒ|jtj|dƒ|jtj|dƒ|jtj|dƒdS(Ni(    RRtSetGameWorldDictRRtMap_Player_AreaReward_GetCnttMap_Player_AreaReward_GetExpt!Map_Player_AreaReward_GetExpPointt$Map_Player_AreaReward_GetZhenQiTotalt"Map_Player_AreaReward_GetTechPoint(RhRŒ((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytClearAreaRewardRecordºs cCstjƒ}tjƒ}tj|dƒ}tj|ƒ}tj|dƒ}|jtjƒ}|||dkrudS|j    tj|ƒtj
d||fƒtj ƒ}    xNt |    j ƒƒD]:}
|    j|
ƒ} | sßq¾n|rý| jƒdkrýq¾n| jƒ} |rU|jtj| ƒ} | |kr7q¾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( Niiiès¸øÕ½³¡¸£Àû tick=%s,needAlive=%siitExptZhenQitFBt    TechPoint(&RR¯RR'R8R‡RÔRRtMap_FBDict_LastAreaRewardTickR°R‚RªR«R¬R­R«RKR>R?R>RüRZRMtGetPlayerReExpRˆtAddExptGetFBAreaRewardExpR@tDef_PerPointValueRAtPlayerAddZhenQiRsRBt PlayerFamilytAddPlayerFamilyActiveValueR?tDef_AddFAVReason_FamilyInvadeRC(t
cfgKeyNameRít    needAliveR»RŒtrewardIntervaltrewardFormatDictt getCntLimitt lastAwardTickRÛRÌRdRhtgetCnttmultipletreLVtreExpRîtaddExpttotalExpt    addZhenQit totalZhenQit addTechPointt    techPoint((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytDoLogicAreaRewardÇs^         $ 
 
cCs;|jtj|ƒ}|jtj|ƒ}|tj|S(N(R>RRR@RARM(RŒRhR    R
((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRL    scCs|jtj|ƒS(N(R>RRRB(RŒRh((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBAreaRewardZhenQi    scCs|jtj|ƒS(N(R>RRRC(RŒRh((sj.\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ÔRRtDef_FB_NotifyFBHelpTickR°RªR«R¬R­(Rít
fbHelpFunctintervalR»RîRÛRÌRd((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytNotifyCopyMapPlayerFBHelp    s  (¾RRzRMR|tGameMapRVR¨R¤RÕR6R@RÓR'tPlayerFBR?RROR'R)tPlayerMagicWeaponRRRªRòRRR™R0RtmathR-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_leaderIDRBtDef_FbActionEncouragetDef_FbActionChangeLineR"R$R*RsR.R/R1R3R5R7R9R<RARDRtRqRaR›RŸR¢R¼RÎRÓRÖR×RÜRßRâRãRêRðt tttFlagTakeRR RRRR(R-R3R5RLRXRZR]RfRjRmRnRpRrRsRuR{RR‘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ûRRVR!R%R6RDR.RNRORaRoRxR|R{RR“R•R»RÅRèRéRïR×RüRþRXRÿR    R&RzR/RrR=RDRbRLRcRdRh(((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt<module>sj                                                                H(         %    "                                1                           " % "                
                          %                "        %                                                         #        #      #                      B    
        /         ;    + <                                          % 5 "         <