cehua_wcy
2018-11-28 1e2c4389d29dba53ae89e1cef8a10617ce09e53d
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
‘aþ[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/dZ0dZ1dZ2dZ3d Z4d Z5dZ6dZ7d Z8dZ9dZ:dZ;d
Z<dZ=dZ>dZ?dZ@dZAdZBdZCdZDdZEeFd ƒ\ZGZHd!„ZId"„ZJd#„ZKeLd$„ZMdd%„ZOd&d'„ZPd&d(„ZQd&d)„ZRd*„ZSd+„ZTd,„ZUd-„ZVd.eLeWd/„ZXd&dd.eWd0„ZYd&d.d1„ZZd&d2„Z[d3„Z\d4„Z]d5„Z^d6„Z_d7„Z`d8„Zadd9„Zbd:„Zcd.d;„Zdd<„Zed=„Zfd>„Zgdejhd?„Ziid@„ZjidA„ZkdB„ZldC„ZmdD„ZndE„ZodF„ZpdG„ZqddH„ZreWdI„ZseWdJ„ZtdK„ZudL„ZvdM„ZwdN„ZxdO„ZydP„ZzdQ„Z{dR„Z|dS„Z}d&eLdT„Z~d&eLdU„ZdV„Z€dW„ZdX„Z‚dY„ZƒdZ„Z„d[„Z…d\„Z†d]„Z‡d^„Zˆgd_„Z‰d`„ZŠggda„Z‹db„ZŒeFdcƒ\ZZŽZZdd„Z‘eLde„Z’df„Z“dg„Z”dh„Z•di„Z–dj„Z—dk„Z˜dl„Z™d&dm„Zšdn„Z›do„Zœddp„Zd.ddq„Zždr„ZŸds„Z dt„Z¡du„Z¢dv„Z£dw„Z¤dx„Z¥dy„Z¦dz„Z§d{„Z¨d|„Z©d&ddgd}„Zªd~„Z«eWd„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ºeWdŽ„Z»d„Z¼d„Z½d‘„Z¾d’d“„Z¿dS(”iÿÿÿÿNt VSFB_CanEntert VSFB_IsClosetVSFB_NotFamilyIDt VSFB_NotFighttlineIDtsteptwheeltnpctnpcTotaltexptexpPointtmoneytscoretgradetleaderIDtisHelpt    helpCountt    dataMapIDtisPasstisSweeptextraExpt extraExpPointtsptcostTimetranktitemInfot succItemInfot    extrScoretenterLVt xianyuanCoinicCs*ttd|tjƒjƒf|ƒdS(Ns
GFBD_%s_%s(tsetattrt
PyGameDatat    GameWorldt GetGameWorldt    GetLineID(tattrKeytdata((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt SetGameFBDataescCs#ttd|tjƒjƒfƒS(Ns
GFBD_%s_%s(tgetattrRR R!R"(R#((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetGameFBDatafscCst|ƒ}tjd|ƒS(NtFBFunc(tGetRecordMapIDt IpyGameDataPYtGetIpyGameDataNotLog(tmapID((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetFBIpyDatahs 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.pytGetFBLineIpyDataks
  cCs,|st||ƒ}n|s"dS|jƒS(N(R1tNonetGetEnterPosInfo(R,RR0((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineEnterPosInfossicCs#t||ƒ}|sdS|jƒS(N(R1R2t GetStepTime(R,RR0((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineStepTimexscCs#t||ƒ}|sdS|jƒS(N(R1R2t GetRefreshNPC(R,RR0((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineRefreshNPC|scCs#t||ƒ}|sdS|jƒS(N(R1R2t GetGradeInfo(R,RR0((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineGrade€scCs#t||ƒ}|sdS|jƒS(N(R1R2t GetRewardInfo(R,RR0((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(RtFBEnterTimeLimiitMapIDR 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(RtFBOpenTimeRecord(RtdayStr((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBHasOpenToday•sicCs?|jƒ}|r t|ƒsRtjd||ƒ|rKtj|dƒntjS|jƒ}    |j    ƒ}
|    r|
r|t
j kr|j t
j |ƒ} t||ƒ} | || krtjd|| ||    | f|ƒ|rýtj|d|gƒntjSn| rh|jƒrh|jƒ s?|jt
jƒdkrh|r^tj|d|gƒntjSnt||ƒr |r–tj|d|gƒntjSn|r8|jƒ} |jƒ}|jƒ}|r"| |kr"tjd||| |f|ƒ|rtj|d    |gƒntjS|rz| |krztjd
||| |f|ƒ|rstj|d    |gƒntjS|jƒ}|rðtj|ƒ|krðtjd ||tj|ƒ|f|ƒ|rétj|d |gƒntjSt||||||ƒd s8|r.tj|d|gƒntjSntjS(Nsµ±Ç°Ê±¼ä먦·Å¸Ã¸±±¾!mapID=%st FBIsNotOpensPÒÑ´ïµ½µ±ÈÕ×î´ó½øÈë´ÎÊý!mapID=%s,enterCnt=%s,reqEnterCnt=%s,maxTimes=%s,maxCnt=%stGeRen_chenxin_268121itTeamSingleEntert 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 GetPlayerIDRDR tLogt PlayerControlt
NotifyCodeRBtEntFBAskRet_FBCloset GetDayTimest GetHelpPointtChConfigtDef_NoLimitEnterCntMaptNomalDictGetPropertytDef_Player_Dict_EnterFbCntDaytGetEnterFBMaxCnttEntFBAskRet_NoEnterCnttGetDayHelpCountMaxt    GetTeamIDt GetDictByKeytDef_PlayerKey_TeamMemCounttCheckIsEnterCDtEntFBAskRet_EnterCDtGetLVt GetLVLimitMint GetLVLimitMaxtEntFBAskRet_LVLimittGetJobRankLimitt
GetJobRanktEntFBAskRet_JobRankLimittGetFBEnterTickettEntFBAskRet_NoTickettEntFBAskRet_OK(t    curPlayerR,RR>R0t reqEnterCnttisNotifyt    isTeamAsktplayerIDtmaxTimest    helpPointtenterCnttmaxCnttcurLVt
lvLimitMint
lvLimitMaxt jobRankLimit((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytCheckCanEnterFBCommœsn        
%
 
                 
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(R1t GetTicketIDtTruetFalsetGetTicketCostCntR tErrLogRORXRVRYtlentGetItemManagertGetPackt IPY_GameWorldtrptItemt
ItemCommontGetItem_FromPack_ByID_ExExtGetTicketPriceRQt HaveMoneyExRBtTYPE_Price_Gold_Paper_MoneytbooltDebugLog(RlR,RR0RmRotticketIDtticketCostCntListRstcostCntt totalCostCnttitemPacktenought    indexListthasBindtlackCntt ticketPricet    costMoneyt costMoneyList((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRiê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(RiR2R|RQtPayMoneyRVtDef_Cost_EnterFBR{R€RR‚RƒR„t
ReduceItem( RlR,RRstisEnoughR‘tdelCntR’R–tinfoDictt    moneyTypetmoneyNumR((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytDelFBEnterTickets'
 
cCs|j||tjƒS(N(RXRVtDef_PDictType_FB(Rltkeyt defaultValue((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBPDictValue'scCstj|||tjƒdS(N(RQtNomalDictSetPropertyRVR¤(RlR¥tvalue((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetFBPDictValue/sc Csptjdƒ}|sdSttjƒjƒƒ}||tjkrHdSd}d}d}tjƒ}xšt    |j
ƒƒD]†}|j |ƒ}    |    dksy|    j ƒr¬qyn|rÊ|    jƒ|krÊqyn|    jƒ}
||
7}|d7}||
kry|
}qyqyW|s dS||} tjƒ} | jtj| ƒ| jtj|ƒtjd|||| |f|ƒtS(s¶¯Ì¬¸üи±±¾NPC³É³¤µÈ¼¶
    tNPCAttrStrengthenNiisMNPC³É³¤¶¯Ì¬µÈ¼¶±ä¸ü: isLeave=%s,totalLV=%s,playerCnt=%s,averageLV=%s,maxLV=%s(t ReadChConfigtGetEvalChConfigR)R tGetMaptGetMapIDt    NPCCommontNPCAttr_DynNPCLVMaptGetMapCopyPlayerManagertxrangetGetPlayerCounttGetPlayerByIndexR2tIsEmptyRORbt    GetGameFBt SetGameFBDictRVtDef_FB_NPCStrengthenAverageLVtDef_FB_NPCStrengthenMaxLVRPR{( RptisLeavetattrStrengthenInfoR,tmaxLVttotalLVt    playerCnttcopyMapPlayerManagertiRlRut    averageLVtgameFB((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytUpdFBLineNPCStrengthenLV3s<  
 
 
     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 R®R¯R°tNPCAttr_DynPCCoefficientMapR·R²R´tmaxR¸RVtDef_FB_NPCStrengthenPlayerCntRPt GetNPCManagerR³t GetNPCCountt GetNPCByIndextGetIDtGetTypeR‚t ntFunctionNPCtntPettDoNPCAttrStrengthenR|R{( RpR»R¼R,tcoefficientDicttisRefreshNPCAttrNowRÃt playerCounttgameNPCManagertindextcurNPC((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytUpdFBLineNPCStrengthenPlayerCntXs2  
      cCsA|jtj|ƒ|jtj|ƒtjd||fƒdS(s{ ÉèÖùÖÎïµôÂäÖ´ÐдÎÊýÍò·ÖÂÊ ¼° ¹Ì¶¨¼Ó³É´ÎÊýÖµ
    @param doCountRate: ´ÎÊýÍò·ÖÂÊ
    @param doCountAdd: ´ÎÊý¹Ì¶¨Öµ    
    s7ÉèÖùÖÎïµôÂäÖ´ÐдÎÊýÐÅÏ¢: doCountRate=%s, doCountAdd=%sN(R¸RVtDef_FB_DropDoCountRatetDef_FB_DropDoCountAddR RP(RÃt doCountRatet
doCountAdd((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetNPCDropDoCountRatezscCstjƒjtjƒdkS(Ni(R R·tGetGameFBDictByKeyRVtMap_FBDict_PropertyMark(((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetHadSetFBPropertyMark…scCstjƒjtjƒdS(Ni(R R·RÜRVRÝ(((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¸RVRÝR2RQtSetFBFuncLineIDRŠROR²R³R´Rµ(t propertyMarkt    setPlayert playerManagerRÔRl((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetFBPropertyMark‘s   cCstjƒj|jƒtjƒS(N(R R·tGetPlayerGameFBDictByKeyRËRVtFBPlayerDict_IsDelTicket(Rl((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetHadDelTicket¤scCs&tjƒj|jƒtj|ƒdS(N(R R·tSetPlayerGameFBDictRËRVRæ(RltdelSign((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetHadDelTicketªs"cCs:d}tjƒ}|jƒdkr6|jdƒ}n|S(s »ñÈ¡µ±Ç°µ¥È˸±±¾Íæ¼Ò iN(R2R R²R´Rµ(RlRã((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetCurSingleFBPlayer®s
 cCsE|r tjS|jƒr>tjƒjtjƒdkr>tjStjS(Ni(    RVtFB_JoinType_HelpR]R R·RÜtDef_FB_TeamPlayerCounttFB_JoinType_MultitFB_JoinType_Single(Rlt 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 GetOpenFBTickR®t GetExistTime(tticktlastTickt    existTime((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFB_RemainTimeÃscCsÚd}tjƒ}|jtjƒ}||krM|rItj||ƒn|St||jƒdƒ}d}t    |ƒ}    d}
x<|D]4} |
| 7}
|
|}|dkr°Pn|    d8}    q†Wt
||    ƒ}    ||    krä| rä|S|j tj|    ƒtj d||||    |fƒ|rYtj||ƒ|    |krÖ|j |d|dtƒqÖn}tjƒ} xnt| jƒƒD]Z} | j| ƒ}|s™qxntj||ƒ|    |krx|j |d|dtƒqxqxW|    S(sa¸üе±Ç°¸±±¾ÐǼ¶¡¢ÆÀ¼¶
    @param gradeTimeList: ÆÀ¼¶·Ö¶Îʱ¼äÁÐ±í£¬µ¥Î»Ãë [×î¸ßÆÀ¼¶¿ÉÓÃʱ¼ä, Ï¼¶¿ÉÓÃʱ¼ä, ..., ×îµÍ¼¶¿ÉÓÃʱ¼ä]
    @param curPlayer: ´¥·¢µÄÍæ¼Ò£¬Ò»°ãÊÇDoEnterʱµ÷Ó㬻áͬ²½¸üÐÂÒ»´Î¸±±¾ÆÀ¼¶²¢½«ÐÅϢ֪ͨ¸ÃÍæ¼Ò
    @note: ÐǼ¶£º1-1ÐÇ£»2-2ÐÇ ...            [60, 20, 10]
            ÆÀ¼¶£º1-D£»2-C£»3-B£»4-A£»5-S;    [60, 30, 30, 20, 10]
    ig@@isQUpdateFBGrade useSecond=%s,gradeTimeList=%s,curGrade=%s,updGrade=%s,diffSecond=%siè(R R·RÜRVt Def_FB_GradetFBLogictDoFBHelptintt GetFBStepTickRRÆR¸RŠt Sync_TimeTickR{R²R³R´Rµ(Rôt gradeTimeListRlttimeTypetlowestRÃtcurGradet    useSecondt
diffSecondtupdGradet gSecondTotaltgSecondRãRÔ((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt UpdateFBGradeÈsH    
 
         !cCsh|ji|t6|t6t|ƒt6ƒtj|dtƒ}|j|ƒt    j
d||j ƒƒdS(Nt ensure_asciisNotifyFBOver: %s( tupdatetOver_dataMapIDt Over_lineIDRût Over_isPasstjsontdumpsR|t    Frm_FBEndR RŠRO(RlRRRtoverDicttoverMsg((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt NotifyFBOverùs
( cCsT|ji|t6ƒtj|dtƒ}|j|ƒtjd||jƒƒdS(NRsNotifyFBHelp: %s(    R    t Help_lineIDR RR|t
Frm_FBHelpR RŠRO(RlRthelpDictthelpMsg((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt NotifyFBHelps
 cCs*tj|dtƒ}|jd|ƒdS(NRs%s(R RR|R(RltmsgDict((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytNotify_FB_Over scCs0tj|dtƒ}|jdt|ƒƒdS(NRs%s(R RR|Rtstr(RlR((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt Notify_FBHelpscCsEg}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
isinstancetlistttupleRRûR„tCheckItemCanUset GetItemTypeIDtGetCountt    GetIsBindt
GetIsSuitet GetUserDatatappend(titemListt jsonItemListRtitemDicttinfolen((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonItemLists,      cCsBg}x5|jƒD]'\}}|ji|d6|d6ƒqW|S(NR¡t
moneyValue(titemsR*(t    moneyDictt    moneyListR¡R0((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonMoneyList2scCsBg}x5|jƒD]'\}}|ji|d6|d6ƒqW|S(NtNPCIDtkillCnt(R1R*(tnpcDicttkillListtnpcidR6((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonNPCKillList9scCsBg}x5|jƒD]'\}}|ji|d6|d6ƒqW|S(NR5tHPPer(R1R*(R7R8R9R;((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonNPCHPPerList@sc Cstjƒ}|jƒ||_g|_xZ|D]R\}}}}tjƒ}||_||_||_||_    |jj
|ƒq/Wt |jƒ|_ |r°t j||ƒnTtjƒ}    xEt|    jƒƒD]1}
|    j|
ƒ}|sðqÏnt j||ƒqÏWdS(sáͬ²½¶¯Ì¬Õϰ­ÎïÊÇ·ñÓÐЧÐÔ
    @param barrierPointList: Õϰ­ÎïµãÁбí [[aPosX,aPosY,bPosX,bPosY], [aPosX,aPosY,bPosX,bPosY], ...]
    @param state: ÊÇ·ñÓÐЧ
    @param curPlayer: Ö¸¶¨Í¨ÖªÄ¿±êÍæ¼Ò£¬ÎªNoneʱ¹ã²¥±¾µØÍ¼ËùÓÐÍæ¼Ò
    N(tChPyNetSendPackttagMCDynamicBarrierStatetCleartStatet BarrierListttagMCDynamicBarriertAPosXtAPosYtBPosXtBPosYR*RRt NetPackCommont SendFakePackR R²trangeR´Rµ( tbarrierPointListtstateRltbarrierStatePacktaPosXtaPosYtbPosXtbPosYtbarriert playManagerRÁ((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSyncDynamicBarrierStateGs* 
                          c    Csítjƒ}xÚt|jƒƒD]Æ}|j|ƒ}|dkrFqn|jƒ}||krdqn|jƒ}|dkrÌ|rˆqn|r¹tjƒj    ƒ}t
j |ƒj |ƒn|j tƒqn|sØqn|j tƒqWdS(Ni(R RÈR³RÉRÊR2tGetNPCIDt
GetVisibleR!tGetTickR°t
NPCControlt DoNPCRebornt
SetVisibleR{R|(    t
doorIDListttypetisRebornRÓRÁRÕtnpcIDtcurTypeRô((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytOpenOrCloseDoorExis*       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ÈtFindGameNPCByNPCIDR2R~RUR!RVR°RWRXRYR{R|(RZR[R\RÓR]RÕR^Rô((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(Rlt 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·RfROtmintGetPointRÆRi(RlR[R©Rltpoint((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytAddorReduceBillBoardÈs   cCs,tjƒj|jƒƒ}|j|ƒdS(N(R R·RfROt
SetCountry(RltcountryRl((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetCountryBillBoardØs cCs%tjƒj|jƒƒ}|jƒS(N(R R·RfRORo(RlRl((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetPlayerBillBoardPointâscCs%tjƒj|jƒƒ}|jƒS(N(R R·RfROtGetBillboardIndex(RlRl((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetPlayerIndex_InBillBoardêscCs'tjƒ}|jƒ|j|ƒdS(N(R R·tSortFbBillBoardPlayerRb(RcRÃ((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytNotifyBillBoardòs 
 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.pyRzÿs
   cCsatjƒ}xNt|jƒƒD]:}|j|ƒ}|jƒsFqn|j|||ƒqWdS(N(R R²RIR´RµROtSync_FbSystemMessage(tkeepTimetmsgTypetmsgRãRÁRl((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²RIR´RµRORý(R~tmsgTickR]t
isContinueRãRÔRl((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSync_Player_TimeTick!s  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(R2R R·RÜRVtMap_FBDict_PrevFBTimeTypeR{R|RPR¸R²RIR´RµRORý(    R~R€t isSendPrevMsgR]Rt prevMsgTypeRãRÔRl((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSync_Player_TimeTickEx5s"           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!R{RItGetGameWorldCounttGetGameFBByFbIndext GetFamilyVSt GetFamilyIDt GetVSFamilyIDR|tGetOpenStateByFbIndexR‚tfbosOpentDef_VSFB_IsClosetDef_VSFB_CanEntertDef_VSFB_NotFighttDef_VSFB_NotFamilyID(tfamilyIDt    gameWorldt todayNotFightRÔRÃtfamilyVsManagertattackIDt    defenceID((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetCanEnterVSFBRs"         cCs|tjƒ}xit|jƒƒD]U}|j|ƒ}|jƒ}|jƒ}|jƒ}|||gkr||fSqWdS(N(NN(    R R!RIR‡RˆR‰RŠR‹R2(R’R“RÔRÃR•R–R—((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGet_VS_Line_GameFBws    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 R®t GetMapFBTypeR‚tfbtTeamRPR!RIR‡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 R®RR‚RžR£R]R{tGetCloseFBTickR|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ÈRIRÉRÊRËtGetGameNPCObjTypeR‚tgnotPetR*(t gameNPCListRÓRÔRÕ((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetMapNPCListÐs cCsg}tjƒ}xêt|jƒƒD]Ö}|j|ƒ}|jƒdks%tj|ƒdkrgq%n|jƒt    j
kr‚q%n|jƒt    j krîtj |ƒ}|dkr¸q%n|jƒ}|dkrî|jƒt    jkrîq%qîn|j|ƒq%W|S(Ni(R RÈRIRÉRÊRËtGameObjtGetHPR­R‚R®t
gnotSummont GetObjDetailR2tGetOwnertGetGameObjTypet    gotPlayerR*(t findNPCListRÓRÔRÕt curNPCDetailt curNPCOwner((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetMapSystemNPCListçs" '  !    cCsdtjƒ}xQtd|jƒƒD]:}|j|ƒ}|jƒdkrOq"ntj|ƒq"WdS(Ni(R R²RIR´RµRËRQt PlayerLeaveFB(RãRÁRl((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­R‚R³R R´R2RµR¶R·tgotNPCR*(R¯R¸RÕR¹Rº((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetMapSystemNPCListExs           cCssxltƒD]a}|dkr"q
n|jƒtjtjgkrFq
n|jƒ|kr^q
ntj|ƒq
WdS(N(    R¿R2RÌR‚RÍRÎRTR°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¿R2RÌR‚RÍRÎRTR°RÀ(tclearNPCIDListRÕ((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt ClearFBNPCExTs cCsšd}xtƒD]‚}|dkr(qn|jƒtjtjgkrLqn|jƒ}|rp||krpqn|rˆ||krˆqn|d7}qW|S(Nii(R¿R2RÌR‚RÍRÎRT(t    npcIDListRÁtnpcCntRÕR]((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetFBNPCCntjs  cCsgtjƒ}tj|}tj|}tj|}|j||ƒ|j||ƒ|j||ƒdS(N(R R·RVtMap_NPC_RandomMapNPCIDtMap_NPC_RandomMapNPCNeedCnttMap_NPC_RandomMapNPCPerMaxCntR¸(t refreshMarkR]tneedRefreshCntt    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¸RVtMap_TDNPC_RefreshFileNumtMap_TDNPC_RefreshSignKeytMap_TDNPC_RefreshStartTicktMap_TDNPC_RefreshBigWheelNumtMap_TDNPC_RefreshSmallWheelNumtMap_TDNPC_CurWheelStartTicktMap_TDNPC_CurWheelIsOvertMap_TDNPC_AllWheelIsOvertMap_TDNPC_NPCCnttMap_TDNPC_NPCBossCntt__TDStartRefreshNotify(trMarktfileNumtsignRôRnRÃ((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¸RVRÒ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ÜRVRÙR|R{(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ÜRVRØR|R{(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ÜRVRÚRØR|R{(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ÜRVRÔRÕRÒR|R¬R­RtDef_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ÜRVRÕR¸RÖR×RØRÒRÓRÜRŠ(RÝRôRnRÃRêt nextWheelNumRÞtsignKey((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetEnterTDNextWheels 
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­tgetRtDef_TDCfg_NotifyMarkRQtFBNotify(
RÃRÞtwheelNumRßtrefreshNPCDicttrefreshNPCListR9RëRìt
notifyMark((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRÜs 
 
c
CsÛtjƒ}|jtjƒ}tj|}|j|ƒ}tj|ƒ}|rutd||ƒ}|j    ||ƒntj
|}|j|ƒ}||}    td|    ƒ}    |j    ||    ƒtj d||    ||fƒ|    S(Nis3UpdTDNPCCnt rMark=%s,updCnt=%s,bossCnt=%s,isBoss=%s( R R·R^RVtDef_NPC_Dict_FromRefreshMarkRÛRÜt
IsGameBossRÆR¸RÚRŠ(
RÕR©RÃRÝtcurMarkNPCBossCntKeytbossCnttisBosstcurMarkNPCCntKeyRÆtupdCnt((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt UpdTDNPCCnt/s   
cCsGtjƒ}|jtj|ƒ}|jtj|ƒ}|dkrHdStjd|ƒ}|t|ƒkrqdS||}    |    t    }
|
dkrÛ|    t
} | s¥dS|jtj |ƒ} || } t | | dƒ}n3|jtj |ƒ}||} t |
| dƒ}|dkr-t|||ƒn|j|||tƒ|S(Niiÿÿÿÿs    TD_%s_Cfg(R R·RÜRVRÕRÒR¬R­RRètDef_TDCfg_PrepareTimeR×RÆRÔR2R‚RýR{(RlRÝR~RôtmsgIDRÃRêRÞRëRìt nextWheelTimet prepareTimetcurWheelStartTickRîtnextWheelRemainTickRé((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSync_TDNextWheelTickHs0  
 
 
 
 
 c Cs¨t|ƒ}|jƒ}|jƒ}d}|jƒ}tj||ƒ}|jtj|ƒ}|jtj    |ƒ}    |jtj
|ƒ}
||||    ||
} | S(Ni( R-RTtGetExtraTimesMWPriIDtGetExtraTimesVIPPriIDt    PlayerViptGetPrivilegeValueRXRVtDef_Player_Dict_BuyFbCntDaytDef_Player_Dict_RecoverFbCnttDef_Player_Dict_ItemAddFbCnt( RlR,R>Rqt MWPrivilegeIDtmwAddCnttextraTimesVIPPriIDtextraCnttbuyCntt recoverFbCntt
itemAddCntRt((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRZks    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-RXRVRYRTR    R
R R R RRtcopytdeepcopyt    enumerateRÆtGetBuyTimesVIPPriID(RlR,R>RsRqRRRRRRRtcntListtrCntListtsumCntRÁtcntt rRecoverFbCntt    rExtraCntt
rCommonCnttrBuyCntt rItemAddCnttbuyTimesVIPPriIDt    canBuyCnttnoBuyCnt((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBDetailCntInfozs0   
 
  cCsBt|ƒ}|jtj|ƒ}|dkr>tj||ƒS|S(Ni(R)RXRVRYR tGetDataByDigitPlace(RltfbIDtlineBitRs((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)RVRYRXR R(RntChangeDataByDigitPlaceRQR¨RZR|tPlayerActivitytOnEnterFBActivityt PlayerSuccesstAddEnterFBSuccesstDef_FBMapID_SealDemonR-RTt$Def_Player_Dict_FbCntRegainStartTimeRûttimetNotifyFBCntRegainInfoRŠROtSync_FBPlayerFBInfoDataR{( RlR)taddCountR*t enterCntKeyRstcurLineEnterCntt updEnterCnttupdValueRtRR>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(RVR1R+R-RTRZRÆRûR3R*t
GetFuncCfgRXR2t$Def_Player_Dict_FbCntRegainTotalTimeRnRYRQR¨R RŠR5R4(RlR,RsR>t maxDayTimesRtt    maxCanAddtcurTimetrecoverIntervaltlastRegainTimetneedTimetpassTimet
recoverCntR7t 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(NR=(RûR3R*R>R=ttagMCFBCntRegainRemainTimeR?tInfoListRVR1ttagMCFBCntRegaint    DataMapIDRXR2R?t
RemainTimeR*RtCntRGRH(    RlRBRCt
regainDataR,tmapInfoRDRERF((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR4ìs. 
     
        
      cCsytjƒjƒ}t|ƒ}|jtj|ƒ}t||ƒ}||krutjƒj    |j
ƒtj dƒt St S(Ni(R R®R¯R)RXRVRYRZR·RèRËtFBPlayerDict_IsHelpFightR{R|(RlR,RsRt((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetIsHelpFights  "cCstjƒj|jƒtjƒS(N(R R·RåRËRVRS(Rl((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetIsHelpFightsc    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 GetWeekTimestGetWeekResetTypeRVtDef_Player_Dict_EnterFbCntWeekRXRQR¨R*R5(    Rlt
onWeekTypet    mapIDInfot
ipyDataMgrRÁtipyDataR,t    weekTimestenterCntWeekKey((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytFBOnWeeks"    c Cs–tjd|jƒƒtj||ƒg}tjƒ}x4t|jƒƒD] }|j    |ƒ}|j
ƒ}|j ƒrÅ|j t j|ƒ}|rÅtj|t j|dƒtjd|ƒqÅn|jƒ}| r|jƒ r|jƒ r|jƒ rqKn|jƒ|krqKnt||ƒ}    t j|}
|j |
ƒ} tj||
dƒt j|} |j | ƒ} tj|| dƒt j|}|j |ƒ}tj||dƒt j|}|j |ƒ}tj||dƒtjd||| |||    | fƒ|t jgkr^td||    | ƒ}tj||
|ƒtjd|ƒn|j|ƒqKW|r’t||ƒt ||ƒndS(Ns¸±±¾¹ýÌì´¦Àí,FBOnDay...is ÖØÖÃÈÕÖúÕ½½±Àø´ÎÊýÏÞÖÆ£¡mapID=%ssY    ÖØÖÃ:mapID=%s,dayTimes=%s,buyCnt=%s,recoverCnt=%s,itemAddCnt=%s,maxCnt=%s,enterCnt=%ss.        ÌØÊ⸱±¾ÒѽøÈë´ÎÊý¸üÐÂ: newEnterCnt=%s(!R RPRORùtOnFBPlayerOnDayR*RVR³RWRXRYR\RXRVtDef_PDict_FBRealHelpCountRQR¨RŠRTRR
R    tGetDayResetTypeRZRYR RRR1RÆR*R5tSync_FBPlayerFBBuyCount(Rlt    onDayTypeR^R_RÁR`R,RR;RtR7Rst    buyCntKeyRt recoverCntKeyRGt itemAddCntKeyRRH((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytFBOnDay4sR    .         cCsCtj|ƒt|ƒt|ƒt|ƒt|ƒt|ƒdS(N(RùtOnFBPlayerOnLoginR5tSyncFBEnterTickRgR4tCheckFBPlayerOffine(Rl((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt    FBOnLoginzs 
 
 
 
 
cCsx|jƒ}t|ƒ}|s"dS|jƒ}|s8dStj|ƒ}||krttjd|ƒtj|ƒndS(Ns9Åжϸ±±¾ÀïÀëÏß³¬¹ýÒ»¶¨Ê±¼äÔòÍ˳ö¸±±¾ leaveServerSecond=%s(R¯R-tGetOfflineTimeRQtGetPlayerLeaveServerSecondR RŠR¼(RltmapidR`t OfflineTimetleaveServerSecond((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRo…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=%sitFBEnterTimeBuyR=($R tGetPlayerManagerRµtFBIDR-RRŠR R RXRVR RTRZR+R1R*tGetFuncEvalCfgRóRtevalRQR‡RBRˆR›tDef_Cost_BuyFBCntR¨RgRRR2RûR3R?R>R4(t playerIndext
clientDataRôRlR,R`R$R%t    hasBuyCntR@RtRst costGoldDicttcostGoldR–R R¡R¢RDRBRE((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytBuyFBEnterCountœsZ       %    "cCstj|tjƒS(N(t EventReporttWriteFuncCMEAcceptableRBtGameFuncID_RunDaily(Rl((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytDoFuncOpen_RunDailyÎscCstj|tjƒS(N(R„R…RBtGameFuncID_RunFamily(Rl((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ÆtstrptimeRVtTYPE_Time_FormattsecondsR·RÜtMap_FBDict_NotifyOpenRQt WorldNotifyR¸(t openTimeListt    notifyMsgtnotifyTimeListR,t mergeMinOSDt mergeMaxOSDt mergeMapInfoRBtnextTimetcurYeartcurMonthtcurDaytcurHourtnextYeart    nextMonthtnextDaytnextHourtstartTimeStrFormattmaxNotifyMinutet remaindMinuteR“tminutet startTimeStrRIt
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”RVR•R–R{R|(R™tprepareSecondsRBtprevTimeR R¡R¢R£tprevYeart    prevMonthtprevDaytprevHourR¨R“R«R¬RItpastTimet pastSeconds((szE:\SnxxServerCode\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ƒƒ}|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óRQRRR‚tTYPE_Price_Silver_MoneyR|t GetMoneyCountRVR1RXtDef_Player_Dict_FMTDoubleR‡R›tDef_Cost_FBEncouragetDef_SkillID_FBEncourageBufft GetGameDatatGetSkillBySkillIDRPt SkillCommont GetBuffTypet    BuffSkillt    DoAddBuffRètSendFBEncourageInfoR/tDoAddSuccessProgressRBtSuccType_FBEncouraget
EventShelltEventRespons_FBEncourage(RlR¥t encourageTypeRôtisMaxlvtcurMapIDR`RtRÃRjt encourageLVtencourageCntKeyt encourageCntR½t encourageCosttisDoubleR–R R¡tmoneyCntt
buffTypeIDt skillBuffIDt    skillBufftbuffTypet
addHurtNum((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytFbEncourageBuffAs`     
!   $
!c Csû|jƒ}tjd|ƒtjƒ}|j||ƒ}|sEdStjƒjƒ}t|ƒ}tj    ddiƒj
|t j ƒ}||d}tj ƒj|ƒ}    |    sÅtjd|ƒdStj|    ƒ}
tj||
|    |ƒt||ƒdS(Ns#AddFbEncourageBuff() curPlayerID=%sR»isFbEncourageBuff   ÕÒ²»µ½¼¼ÄÜ%s(RËR RPR·RåR®R¯R)R*R{RóRVRÅRÆRÇRÈRÉRÊRËRÌ( RlR¥RôRjRÃ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 RPR{R|(RlRô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ºRNsFbEncourageCnt_%s(R¯R)R*tGetIpyGameDataByConditionR{R=ttagMCFBEncourageInfoR?RLR R·RËtGetInspireTypettagMCFBEncourageCntt    MoneyTypeRåt EncourageCntR*RRPRGRH( RltlvRÓt ipyDataListt encourageInfoRÕRÃRjR`t inspireTypetpackData((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRÌ©s(   
             cCstd|jtjƒƒS(Ni(RÆR^RVt Def_PlayerKey_AreaRewardMultiple(Rl((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetAreaRewardMultipleÃscCs|jtj|ƒdS(N(tSetDictRVRò(RlR©((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetAreaRewardMultipleÊscCst||ƒdkS(Ni(t GetFBEnterCD(RlR,((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR`Ó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{RbR§RVtDef_PDict_LastEnterFBTickR tChangeTimeStrToNumtGetCurrentDataTimeStrRÆRŠ(    RlR,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 R®R¯R)R*R{RùRúRªRVRøRŠRn(RlR,RûRÿ((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytUpdateFBEnterTickös   c Cs&tjdƒ}|sõi}tjƒ}xyt|jƒƒD]e}|j|ƒ}|jƒ}|jƒ}|j|gƒ}||kr:|j    |ƒ|||<q:q:Wx:|j
ƒD],}t ||ƒdkr°|j |ƒq°q°Wtj d|ƒ}nx*|jƒD]\}    }
||
kr|    SqW|S(Nt DataMapIDDicti(R*t GetConfigExRVR³tGetFBLineCounttGetFBLineByIndexRYR¯RóR*tkeysRtpopt SetConfigExR1( R,Rt
dMapIDDictR_RÁR`tdMapIDtmIDt
dMapIDListRt    mapIDList((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR)s(      cCs?tjddƒ}|sdStjtjƒƒ}tjƒ}|jƒg|_xÆ|j    ƒD]¸}|d|gkr{q]nt
|t j |ƒ}||krÝt |t j ||ƒ|}tjd||f|jƒƒntjƒ}|jƒ||_||_|jj|ƒq]Wt|jƒ|_tj||ƒdS(NR÷iis&ÐÞÕýÍæ¼Ò¸±±¾CDʱ¼ä mapID=%s,timeNum=%s(R*R{R RùRúR=ttagMCFBEnterTickListR?t EnterTickListRR§RVRøRªRŠROttagMCFBEnterTickR—t LastEnterTickR*RRPRGRH(Rlt    syncMapIDRûRÿt    enterListR,Rþt enterTickObj((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRn#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*RVR³RWRXRYR[RûR"R=ttagMCPlayerFBInfoDataR?Rt    FBDataCntt
FBDataListt tagMCFBInfoRzRXRVRYtEnterCntRt
RecoverCntRt
ItemAddCntRItDef_FBStar_MaxKeyCntt"Def_Player_Dict_PlayerFBStar_MapIdt    PassGradeR*t PassGradeCntRGRH(
RlR^R_RÁR t
fbInfoDataR RRtkeyNumt
gradeValue((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR5Hs0 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*RVR³RWRXRR*RYR=ttagMCBuyEnterInfoR?tFBInfot tagMCBuyInfoRzRXRVR tBuyCountRtFBCountRGRH(RlR R_RÁR`R R RR((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRg}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((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!tSetGameWorldDictRVtMap_Player_AreaReward_GetCnttMap_Player_AreaReward_GetExpt!Map_Player_AreaReward_GetExpPointt$Map_Player_AreaReward_GetZhenQiTotalt"Map_Player_AreaReward_GetTechPoint(RpR“((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*R>R{RÜRVtMap_FBDict_LastAreaRewardTickR¸RŠR²R³R´RµR²RORAR7R6RóRbRQtGetPlayerReExpR|tAddExptGetFBAreaRewardExpR8tDef_PerPointValueR9tPlayerAddZhenQiR{R:t PlayerFamilytAddPlayerFamilyActiveValueRBtDef_AddFAVReason_FamilyInvadeR;(t
cfgKeyNameRôt    needAliveRÃR“trewardIntervaltrewardFormatDictt getCntLimitt lastAwardTickRãRÔRlRptgetCnttmultipletreLVtreExpRå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(RARVR8R9RE(R“RpR    R
((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRD    scCs|jtj|ƒS(N(RARVR:(R“Rp((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBAreaRewardZhenQi    scCs|jtj|ƒS(N(RARVR;(R“Rp((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ÜRVtDef_FB_NotifyFBHelpTickR¸R²R³R´Rµ(Rôt
fbHelpFunctintervalRÃRõRãRÔRl((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytNotifyCopyMapPlayerFBHelp     s  (ÀR R‚RQR„tGameMapRÏR°R¬RÊR=RGRÈR*tPlayerFBRBR„RGR-R/tPlayerMagicWeaponRR R±RùRVRR(R tmathR3RRRŽR‘RRt    Help_stept
Help_wheeltHelp_npct Help_npcTotaltHelp_expt Help_expPointt
Help_moneyt
Help_scoret
Help_gradet Help_leaderIDt Help_isHelptHelp_helpCountR
R R t 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_xianyuanCoinRItDef_FbActionEncouragetDef_FbActionChangeLineR%R'R-R{R1R2R4R6R8R:R<R?RDRGR|RyRiR£R§RªRÄRÖRÛRÞRßRäRçRêRëRñR÷t tttFlagTakeRRRRRR/R4R:R<RSR_RaRdRmRqRtRuRwRyRzR|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ÜRRRZR'R+R<RJR4RTRURcRlRpRoRƒR‡R‰R¯R¹RßRàRæRÌRóRõR`RöRR)RnR5RgR5R<RZRDR[R\R`(((szE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt<module>sn                                                                N(         %    "                                1                           " % "                
                          %                "        %                                                         #        #      #                     F             2         ;    + @                                          % 5 "         <