hzr
2018-08-09 3346f8aae7f8abbd4b27c4564cbb802e7e717cc9
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
šCY[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+eId,„ZTd#dd+d-„ZUd#d+d.„ZVd#d/„ZWd0„ZXd1„ZYd2„ZZd3„Z[d4„Z\d5„Z]dd6„Z^d7„Z_d+d8„Z`d9„Zad:„Zbd;„Zcdejdd<„Zeid=„Zfid>„Zgd?„Zhd@„ZidA„ZjdB„ZkdC„ZldD„ZmddE„ZneodF„ZpeodG„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©eod}„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¸eodŒ„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 reqEnterCnttisNotifytplayerIDtmaxTimest    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||}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-RetticketIDtticketCostCntListRjtcostCntt 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/RsRMtPayMoneyRRtDef_Cost_EnterFBRrRwRxRyRzR{t
ReduceItem( RdR)RRjtisEnoughRˆ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_NPCStrengthenMaxLVRLRr( RgtisLeavetattrStrengthenInfoR)tmaxLVttotalLVt    playerCnttcopyMapPlayerManagertiRdRlt    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 GetNPCByIndextGetIDtGetTypeRyt ntFunctionNPCtntPettDoNPCAttrStrengthenRsRr( RgR²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 GetFBStepTickRvR½R¯Rt Sync_TimeTickRrR©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_isPasstjsontdumpsRst    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_lineIDRRRst
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(RRRsR(RdtmsgDict((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytNotify_FB_OverscCs0tj|dtƒ}|jdt|ƒƒdS(NRs%s(RRRsR 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
isinstancetlistttupleRvRó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"(R/R0R1R3((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"RvRt 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
SetVisibleRrRs(    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/RuRMRRNR§RORPRQRrRs(RRRSRTRÊRURÌRVRì((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½Ra(RdRSR Rdtpoint((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytAddorReduceBillBoard¿s   cCs,tjƒj|jƒƒ}|j|ƒdS(N(RR®R^RKt
SetCountry(RdtcountryRd((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetCountryBillBoardÏs cCs%tjƒj|jƒƒ}|jƒS(N(RR®R^RKRg(RdRd((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetPlayerBillBoardPointÙscCs%tjƒj|jƒƒ}|jƒS(N(RR®R^RKtGetBillboardIndex(RdRd((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetPlayerIndex_InBillBoardáscCs'tjƒ}|jƒ|j|ƒdS(N(RR®tSortFbBillBoardPlayerRZ(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.pyRrös
   cCsatjƒ}xNt|jƒƒD]:}|j|ƒ}|jƒsFqn|j|||ƒqWdS(N(RR©RAR«R¬RKtSync_FbSystemMessage(tkeepTimetmsgTypetmsgRÚR¸Rd((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRts  cCsgtjƒ}xTtd|jƒƒD]=}|j|ƒ}|jƒsIq"n|j||||ƒq"WdS(Ni(RR©RAR«R¬RKRõ(RvtmsgTickRUt
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_PrevFBTimeTypeRrRsRLR¯R©RAR«R¬RKRõ(    RvRxt isSendPrevMsgRURyt 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(RRRrRAtGetGameWorldCounttGetGameFBByFbIndext GetFamilyVSt GetFamilyIDt GetVSFamilyIDRstGetOpenStateByFbIndexRytfbosOpentDef_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(    RRRARR€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 GetMapFBTypeRytfbtTeamRLRRARt GetPropertyID(tteamIDtgameMaptgameWorldManagerRËR‹((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGet_TeamFB_Line_GameFB‰s  cCsjtjƒjƒ}|tjkrft|jƒƒ}|s=tS|jƒdkrSt    S|j
ƒtj kStS(Ni( RR¥R•RyR–R›RäRrtGetCloseFBTickRst GetOpenStatetfbosWaitForClose(t    askStructt gameMapFBTypeR‹((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytCheckFBStateCanEnter¥scCs‚g}tjƒ}xit|jƒƒD]U}|j|ƒ}|jƒdkrRq%n|jƒtjkrmq%n|j    |ƒq%W|S(Ni(
RR¿RARÀRÁRÂtGetGameNPCObjTypeRytgnotPetR"(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¿RARÀRÁRÂtGameObjtGetHPR¢RyR£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©RAR«R¬RÂRMt PlayerLeaveFB(RÚR¸Rd((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytDoLogic_FBKickAllPlayerùs cCs¾tƒ}g}x¨|D] }|jƒdkr4qn|jƒtjkr©tj|ƒ}|dkrjqn|jƒ}|dkr©|j    ƒtj
tj fkr©qq©n|j |ƒqW|S(Ni( R¥R§R¢RyR¨RR©R/RªR«R¬tgotNPCR"(R¤R­RÌR®R¯((sj.\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´R/RÃRyRÄRÅRLR§t    SetDeadEx(t ignoreIDListRÌ((sj.\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´R/RÃRyRÄRÅRLR§Rµ(tclearNPCIDListRÌ((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt ClearFBNPCExAs cCsšd}xtƒD]‚}|dkr(qn|jƒtjtjgkrLqn|jƒ}|rp||krpqn|rˆ||krˆqn|d7}qW|S(Nii(R´R/RÃRyRÄRÅRL(t    npcIDListR¶tnpcCntRÌRU((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetFBNPCCntWs  cCsgtjƒ}tj|}tj|}tj|}|j||ƒ|j||ƒ|j||ƒdS(N(RR®RRtMap_NPC_RandomMapNPCIDtMap_NPC_RandomMapNPCNeedCnttMap_NPC_RandomMapNPCPerMaxCntR¯(t refreshMarkRUtneedRefreshCntt    perMaxCntRºtnpcIDKeyt
needCntKeyt perMaxCntKey((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetRandomRefreshMapNPCrs    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ÎRsRr(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ÍRsRr(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ÍRsRr(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ÇRsR£R¤RvtDef_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¤tgetRvtDef_TDCfg_NotifyMarkRMtFBNotify(
RºRÓtwheelNumRÔtrefreshNPCDicttrefreshNPCListR1Rà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 UpdTDNPCCnts   
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¤RvRÝtDef_TDCfg_PrepareTimeRÌR½RÉR/RzRõRr(RdRÒRvRìtmsgIDRºRßRÓRàRát nextWheelTimet prepareTimetcurWheelStartTickRãtnextWheelRemainTickRÞ((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSync_TDNextWheelTick5s0  
 
 
 
 
 c Csºt|ƒ}|jƒ}|jƒ}tj||ƒ}d}|jƒ}tj||ƒ}|jt    j
|ƒ}    |jt    j |ƒ}
|jt    j |ƒ} |||    |
|| } | S(Ni( R*RPtGetExtraTimesMWPriIDtPlayerMagicWeapontGetMagicWeaponPrivilegetGetExtraTimesVIPPriIDt    PlayerViptGetPrivilegeValueRTRRtDef_Player_Dict_BuyFbCntDaytDef_Player_Dict_RecoverFbCnttDef_Player_Dict_ItemAddFbCnt( RdR)R;Rht MWPrivilegeIDt
wmpIpyDatatmwAddCnttextraTimesVIPPriIDtextraCnttbuyCntt recoverFbCntt
itemAddCntRk((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRVXs    cCs¢t|ƒ}|jtj|ƒ}|jƒ}|jƒ}tj||ƒ}d}||7}|jƒ}t    j
||ƒ}    |jtj |ƒ}
|jtj |ƒ} |jtj |ƒ} | |    ||
| g} tj| ƒ}d}xKt| ƒD]=\}}||7}td||ƒ||<||króPqóqóW|\}}}}}|jƒ}t    j
||ƒ}td||
ƒ}|||||g||    |d|ggS(Nii'(R*RTRRRURPRÿRRRRRRRRtcopytdeepcopyt    enumerateR½tGetBuyTimesVIPPriID(RdR)R;RjRhRR    R
R R R RRtcntListtrCntListtsumCntR¸tcntt rRecoverFbCntt    rExtraCntt
rCommonCnttrBuyCntt rItemAddCnttbuyTimesVIPPriIDt    canBuyCnttnoBuyCnt((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBDetailCntInfogs2   
 
  cCsBt|ƒ}|jtj|ƒ}|dkr>tj||ƒS|S(Ni(R&RTRRRURtGetDataByDigitPlace(RdtfbIDtlineBitRj((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!RftChangeDataByDigitPlaceRMRŸRVRstPlayerActivitytOnEnterFBActivityt PlayerSuccesstAddEnterFBSuccesstDef_FBMapID_SealDemonR*RPt$Def_Player_Dict_FbCntRegainStartTimeRóttimetNotifyFBCntRegainInfoRRKtSync_FBPlayerFBInfoDataRr( RdR"taddCountR#t enterCntKeyRjtcurLineEnterCntt updEnterCnttupdValueRkRö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_FbCntRegainTotalTimeRfRURMRŸRRR.R-(RdR)RjR;t maxDayTimesRkt    maxCanAddtcurTimetrecoverIntervaltlastRegainTimetneedTimetpassTimet
recoverCntR0t 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(NR6(RóR,R'R7R5ttagMCFBCntRegainRemainTimeR7tInfoListRRR*ttagMCFBCntRegaint    DataMapIDRTR+R8t
RemainTimeR"RvtCntR?R@(    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_IsHelpFightRrRs(RdR)RjRk((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetIsHelpFightõs  "cCstjƒj|jƒtjƒS(N(RR®RÜRÂRRRL(Rd((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetIsHelpFightscCs#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'R7RTRRt!Def_Player_Dict_FBHelpPointCntDayRfRŸt    GiveMoneytTYPE_Price_FBHelpPointRsRRRÂ(RdR)taddFBCntR;Rit 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.pytFBOnWeeks"    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'RaRªRbRcRdRPRRRÿtGetDayResetTypeRVRRRURTRMRŸRRRRR*R½R"R.tSync_FBPlayerFBBuyCountR?tDef_OnEventTypeExRY(Rdt    onDayTypeRiRjR¸RkR)R4RkR0Rjt    buyCntKeyR t recoverCntKeyR@t itemAddCntKeyRRA((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytFBOnDay:sL   .         cCsCtj|ƒt|ƒt|ƒt|ƒt|ƒt|ƒdS(N(RñtOnFBPlayerOnLoginR.tSyncFBEnterTickRqR-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±(RdtmapidRkt OfflineTimetleaveServerSecond((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRz†s    cCsJtjƒ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ƒ|j    t
j|ƒ}|rF|jƒ}t||ƒ}t||ƒ}|||krFttjƒƒ}|j    t
j|ƒ}|st j dƒ}ntj|t
j||||ƒt!|ƒqFndS(    NsmapID:%s ²»¿ÉÒÔ¹ºÂò½øÈë´ÎÊýs¹ºÂò´ÎÊýÒѾ­ÓÃÍêmapID=%st BuyFBCntCostt0RŽsÏÉÓñ²»×ã!costGold=%siR6("RtGetPlayerManagerR¬tFBIDR*RRRRRTRRRR'tGetFuncEvalCfgRèRtevalRMR~R?RR’tDef_Cost_BuyFBCntRŸRqR+RPRVR$RóR,R8R7R-(t playerIndext
clientDataRìRdR)RkRRt    hasBuyCntt costGoldDicttcostGoldRR—R˜R™R=R9RkRjR;R>((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytBuyFBEnterCountsP          "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 startTimeStrRBt
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 RrRs(R£tprepareSecondsR;tprevTimeRªR«R¬R­tprevYeart    prevMonthtprevDaytprevHourR²RRµR¶RBtpastTimet pastSeconds((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytCheckIsFBPrepareTimes" ** 
    cCs|jƒ}t|ƒ}tjd||ƒ}|s7dS|jƒ}tjƒ}|jƒ}    |j|    |ƒ}
d|} |j|    | ƒ} |
dkr©t    j
|dƒdS| |krè|dkrÔt    j
|dƒnt    j
|dƒdS|j ƒ} |dkrt j | gg}nt    j|tj| ƒ}|s7dSi|d6}x6|D].\}}t    j|||tj|ƒsKdSqKWtjddiƒj|tjƒ}||
}tjƒj|ƒ}|sÛtjd    |ƒdStj|ƒ}tj||||ƒ|j|    ||
dƒ|j|    | | dƒt    j
|d
|
ddgƒt||
dƒt j!|tj"d|gƒt#j$||ƒdS( Nt FbEncouragesFbEncourageCnt_%si
tGeRen_chenxin_93643itXjmj_CopperInspireFullRŽtFBEncourageBuffsFbEncourageBuff   ÕÒ²»µ½¼¼ÄÜ%stGeRen_chenxin_628920(%R¦R&R'tGetIpyGameDatatGetInspireMaxLVRR®RÂRÜRMRNt GetMoneyCountRytTYPE_Price_Silver_MoneyR~R?RR’RRtDef_Cost_FBEncourageR…RètDef_SkillID_FBEncourageBufft GetGameDatatGetSkillBySkillIDRLt SkillCommont GetBuffTypet    BuffSkillt    DoAddBuffRßtSendFBEncourageInfoR(tDoAddSuccessProgresstSuccType_FBEncourageRUtEventRespons_FBEncourage(RdRœt encourageTypeRìtisMaxlvtcurMapIDRkRkRºRbt encourageLVtencourageCntKeyt encourageCntt encourageCostRR—R˜tmoneyCntt
buffTypeIDt skillBuffIDt    skillBufftbuffType((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytFbEncourageBuff?sX     
      $
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ìRbRº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ÓtDelBuffBySkillIDRMtRefreshPlayerAttrByBuffRRLRrRs(RdRìRát playerControl((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytClearEncourageBuff–s.
  cCsztjƒ}|jƒd}tjƒ}|jƒ}|j||dƒ|_|j||dƒ|_t    j
||ƒdS(NsFbEncourageCnt_%sii( R5ttagMCFBEncourageInfoR7RR®RÂRÜtCnt1tCnt2R?R@(Rdtlvt encourageInfoRÝRºRb((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(NR÷is%UpdateFBEnterTick mapID=%s,timeNum=%s( RR¥R¦R&R'R…RùRúR¡RRRøRRy(RdR)RûRþ((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 GetConfigExRaRªtGetFBLineCounttGetFBLineByIndexRdR¦RèR"tkeysRvtpopt SetConfigExR)( R)Rt
dMapIDDictRjR¸RktdMapIDtmIDt
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(NR÷iis&ÐÞÕýÍæ¼Ò¸±±¾CDʱ¼ä mapID=%s,timeNum=%s(R'R…RRùRúR5ttagMCFBEnterTickListR7t EnterTickListRRžRRRøR¡RRKttagMCFBEnterTickRŽR½Rèt LastEnterTickR"RvRIR?R@(Rdt    syncMapIDRûRþt    enterListR)Rýt enterTickObj((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRys. 
     # 
    #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'RaRªRbRcRdRSRóRR5ttagMCPlayerFBInfoDataR7Rvt    FBDataCntt
FBDataListt tagMCFBInfoR„RTRRRUtEnterCntRt
RecoverCntRt
ItemAddCntRAtDef_FBStar_MaxKeyCntt"Def_Player_Dict_PlayerFBStar_MapIdt    PassGradeR"t PassGradeCntR?R@(
RdRiRjR¸R t
fbInfoDataR
RKtkeyNumt
gradeValue((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR.5s0 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'RaRªRbRcRR"RdR5ttagMCBuyEnterInfoR7tFBInfot tagMCBuyInfoR„RTRRRtBuyCountRvtFBCountR?R@(RdR RjR¸RkRR
RK((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRqjs*   
      
    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(RgR‹((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'R7R…RÓRRtMap_FBDict_LastAreaRewardTickR¯RR©RªR«R¬R§RKR>R6R5RóRZRMtGetPlayerReExpR†tAddExptGetFBAreaRewardExpR7tDef_PerPointValueR8tPlayerAddZhenQiRrR9t PlayerFamilytAddPlayerFamilyActiveValueR?tDef_AddFAVReason_FamilyInvadeR:(t
cfgKeyNameRìt    needAliveRºR‹trewardIntervaltrewardFormatDictt getCntLimitt lastAwardTickRÚRËRdRgtgetCnttmultipletreLVtreExpRë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>RRR7R8RD(R‹RgR    R
((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRCïscCs|jtj|ƒS(N(R>RRR9(R‹Rg((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBAreaRewardZhenQiôscCs|jtj|ƒS(N(R>RRR:(R‹Rg((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  (¾RRyRMR{tGameMapRUR§R£RÓR5R?RÑR'tPlayerFBR?RŽRFR&R(RRRR¦RñRRR—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_leaderIDRAtDef_FbActionEncouragetDef_FbActionChangeLineR"R$R*RrR.R/R1R3R5R7R9R<RARDRpRaRšRžR¡R»RÍRÒRÕRÖRÛRÞRáRâRéRït tttFlagTakeRÿR
RRRR'R,R2R4RKRsRWRYR\ReRiRlRmRoRqRrRtRzR~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÷RþRVR R$R5RCR-RMRNR`RnRwR{RzRR‘R“R¹RÃRåRæRìRÕRóRõRXRöRR&RyR.RqR4R;RYRCRZR[R_(((sj.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt<module>sj                                                                H(         %    "                                1                           " % "                
                          %                        %                                                         #        #      #                      B    
        /         ;    + <                                          % 5 "         <