hxp
2025-10-13 2c3d0fc663b255346dfb50bbb159e7e930412b5d
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
öqìhc@sìddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZdZdZdZdZdZdZdZd    Zd
Zd Zd Zd ZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.d Z/dZ0dZ1dZ2dZ3dZ4d Z5d!Z6d Z7dZ8dZ9d"Z:d#Z;d$Z<dZ=d%Z>d&Z?dZ@d'ZAd(ZBd)ZCd*ZDeEd+ƒ\ZFZGd,„ZHd-„ZId.„ZJeKd/„ZLdd0„ZNd1„ZOd2„ZPd3„ZQd4„ZRd5„ZSeKd6„ZTd7eKeUd8„ZVd9„ZWd:dd7eUd;„ZXd:d7d<„ZYd:d=„ZZd>„Z[d?„Z\d@„Z]dA„Z^dB„Z_dC„Z`ddD„ZadE„Zbd7dF„ZcdG„ZddH„ZedI„ZfdejgdJ„ZhidK„ZiidL„ZjdM„ZkdN„ZldO„ZmdP„ZndQ„ZodR„ZpdS„ZqddT„ZreUdU„ZseUdV„ZtdW„ZudX„ZvdY„ZwdZ„Zxd[„Zyd\„Zzd]„Z{d^„Z|d_„Z}d:eKd`„Z~d:eKda„Zdb„Z€dc„Zdd„Z‚de„Zƒdf„Z„d:gddg„Z…dh„Z†di„Z‡dj„Zˆdk„Z‰gdl„ZŠdm„Z‹ggdn„ZŒdo„ZeEdpƒ\ZŽZZZ‘dq„Z’eKdr„Z“ds„Z”dt„Z•du„Z–dv„Z—dw„Z˜dx„Z™dy„Zšd:dz„Z›d:d{„Zœd|„Zdd}„Zžd~„ZŸd7deUd„Z d€„Z¡d„Z¢d‚„Z£dƒ„Z¤d„„Z¥d…„Z¦dd†„Z§d‡„Z¨dˆ„Z©d‰„ZªdS(ŠiÿÿÿÿNt VSFB_CanEntert VSFB_IsClosetVSFB_NotFamilyIDt VSFB_NotFighttlineIDtsteptwheelt
wheelTotaltnpctnpcTotalt npcTotalNeedtexptexpPointtmoneytscoretgradetleaderIDtisHelpt    helpCounttrelationtrobotJobtisAutothasRefreshBosst
gsItemInfot    dataMapIDtisPasstisSweeptextraExpt extraExpPointtsptcostTimetranktitemInfot succItemInfot firstPassItemt    extrScoretenterLVt
helpPlayertownerIDt    ownerNametisAssisticCs*ttd|tjƒjƒf|ƒdS(Ns
GFBD_%s_%s(tsetattrt
PyGameDatat    GameWorldt GetGameWorldt    GetLineID(tattrKeytdata((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt SetGameFBDatadscCs#ttd|tjƒjƒfƒS(Ns
GFBD_%s_%s(tgetattrR*R+R,R-(R.((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetGameFBDataescCst|ƒ}tjd|ƒS(NtFBFunc(tGetRecordMapIDt IpyGameDataPYtGetIpyGameDataNotLog(tmapID((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetFBIpyDatags cCsJt|ƒ}tjd||ƒ}| rF|rFtjd|dƒ}n|S(NtFBLinei(R4R5R6(R7Rt isDefaultLinet fbLineIpyData((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineIpyDatajs
  cCs
ddgS(Ni
((R7RR;((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineEnterPosInforscCs#t||ƒ}|sgS|jƒS(N(R<tGetPassAwardList(R7RR;((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR>usc    Cs|t||ƒ}|sgS|jƒ}|s:|jƒ}ng}x5|D]-}|d \}}|j|||gƒqGW|S(Ni(R<tGetSweepAwardListR>tappend(    R7RtsweepCntR;t awardItemListt sweepItemListR titemIDt    itemCount((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR?ys  cCs-|tjkr)tjƒjtj|ƒSdS(Ni(R*tFBEnterTimeLimiitMapIDR+R,tGetGameWorldDictByKeyt ShareDefinetDef_Notify_WorldKey_FBCanEnter(R((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBFuncOpenStateˆscCs$|tjkrdS|tj|kS(N(R*tFBOpenTimeRecord(RtdayStr((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBHasOpenTodayscCs†|tjkrtj||ƒS|tjkr\tj|tj|t|gƒ}|r‚t    Sn&|j
tj |ƒ}||kr‚t    StS(N( tChConfigtDef_FBMapID_Maint PlayerControltIsMainLevelPasstPassByStarMapIDListR+tGetDictValueByBittDef_Player_Dict_FBStartFalsetTruetNomalDictGetPropertytDef_Player_Dict_FBPassLineID(t    curPlayerR7RRt
passLineID((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytIsFBPass–s! cCsY|jtj|ƒ}||kr?tj|tj||ƒn|rUt||ƒndS(N(RWRNRXRPtNomalDictSetPropertytSync_FBPlayerFBInfoData(RYR7t
funcLineIDtisNotifyRZ((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt    SetFBPass¦s  ic Csâ|jƒ}|rbt||||||ƒ\}    }
|    sb|
rXtj||
|gƒntjSn|rÛ|jƒ} |jƒ} | rÛ| | krÛtj    d||| | f|ƒ|rÑtj|d|gƒntj
Sntj S(NsHÍæ¼ÒµÈ¼¶²»×ã, ÎÞ·¨½øÈ븱±¾!mapID=%s,lineID=%s,curLV(%s) < lvLimitMin(%s)tFbLV( t GetPlayerIDt__CheckCanEnterFBByTimeRPt
NotifyCodeRHtEntFBAskRet_NoEnterCnttGetLVt GetLVLimitMinR+tLogtEntFBAskRet_LVLimittEntFBAskRet_OK( RYR7Rt    fbIpyDataR;t reqEnterCntR_t    isTeamAsktplayerIDtcanEntert
notifyMarktcurLVt
lvLimitMin((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytCheckCanEnterFBComm®s"     !
      
c    Cs±|jƒ}|stdfS|jtj|ƒ}t||ƒ}|||kr[tdfS|tjkr‡t|||ƒ r‡tdfStj    d|||||fƒt
dfS(NtsP¿É½øÈë´ÎÊý²»×ã: mapID=%s, lineID=%s, enterCnt(%s) + reqEnterCnt(%s) <= maxCnt=%stGeRen_chenxin_268121( t GetDayTimesRVRWRNtDef_Player_Dict_FbEnterCnttGetEnterFBMaxCnttUnPassFreeMapIDListR[R+tDebugLogRU(    RYR7RRkRlRmtmaxTimestenterCnttmaxCnt((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRcÖs 
 
"
    icCstgdtgfS(Ni(RVRU(RYR7RR;RlRm((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBEnterTicketsc Csèt|||d|ƒ\}}}}}|s7t|fS|rši|d6|d6|d6}    x?|D]4\}
} tj||
| tj|    ƒs_t|fSq_Wn|sªt|fS|jƒj    t
j ƒ} t j || ||tdƒt|fS(NtMapIDtLineIDt
EnterCounttFBTicket(R~tNoneRURPtPayMoneyRNtDef_Cost_EnterFBRVtGetItemManagertGetPackt IPY_GameWorldtrptItemt
ItemCommont
ReduceItem( RYR7RR|tisEnought    indexListtdelCntthasBindt costMoneyListtinfoDictt    moneyTypetmoneyNumtitemPack((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytDelFBEnterTicket-s'
 
cCs|j||tjƒS(N(RWRNtDef_PDictType_FB(RYtkeyt defaultValue((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBPDictValueBscCstj|||tjƒdS(N(RPR\RNR–(RYR—tvalue((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetFBPDictValueJsc 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 ReadChConfigtGetEvalChConfigR4R+tGetMaptGetMapIDt    NPCCommontNPCAttr_DynNPCLVMaptGetMapCopyPlayerManagertxrangetGetPlayerCounttGetPlayerByIndexRƒtIsEmptyRbRft    GetGameFBt SetGameFBDictRNtDef_FB_NPCStrengthenAverageLVtDef_FB_NPCStrengthenMaxLVRhRV( RntisLeavetattrStrengthenInfoR7tmaxLVttotalLVt    playerCnttcopyMapPlayerManagertiRYRqt    averageLVtgameFB((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytUpdFBLineNPCStrengthenLVNs<  
 
 
     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žR4R+RŸR R¡tNPCAttr_DynPCCoefficientMapR¨R£R¥tmaxR©RNtDef_FB_NPCStrengthenPlayerCntRht GetNPCManagerR¤t GetNPCCountt GetNPCByIndextGetIDtGetTypeRˆt ntFunctionNPCtntPettDoNPCAttrStrengthenRURV( RnR¬R­R7tcoefficientDicttisRefreshNPCAttrNowR´t playerCounttgameNPCManagertindextcurNPC((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytUpdFBLineNPCStrengthenPlayerCntss2  
      cCsA|jtj|ƒ|jtj|ƒtjd||fƒdS(s{ ÉèÖùÖÎïµôÂäÖ´ÐдÎÊýÍò·ÖÂÊ ¼° ¹Ì¶¨¼Ó³É´ÎÊýÖµ
    @param doCountRate: ´ÎÊýÍò·ÖÂÊ
    @param doCountAdd: ´ÎÊý¹Ì¶¨Öµ    
    s7ÉèÖùÖÎïµôÂäÖ´ÐдÎÊýÐÅÏ¢: doCountRate=%s, doCountAdd=%sN(R©RNtDef_FB_DropDoCountRatetDef_FB_DropDoCountAddR+Rh(R´t doCountRatet
doCountAdd((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetNPCDropDoCountRate•scCstjƒjtjƒdkS(Ni(R+R¨tGetGameFBDictByKeyRNtMap_FBDict_PropertyMark(((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetHadSetFBPropertyMark scCstjƒjtjƒdS(Ni(R+R¨RÍRNRÎ(((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBPropertyMark¦scCs!tjƒjtj|dƒdS(Ni(R+R¨R©RNRÎ(t propertyMarkt    setPlayer((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetFBPropertyMark¬s cCstjƒj|jƒtjƒS(N(R+R¨tGetPlayerGameFBDictByKeyR¼RNtFBPlayerDict_IsDelTicket(RY((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetHadDelTicket¿scCs&tjƒj|jƒtj|ƒdS(N(R+R¨tSetPlayerGameFBDictR¼RNRÕ(RYtdelSign((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetHadDelTicketÅs"cCs:d}tjƒ}|jƒdkr6|jdƒ}n|S(s »ñÈ¡µ±Ç°µ¥È˸±±¾Íæ¼Ò iN(RƒR+R£R¥R¦(RYt playerManager((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetCurSingleFBPlayerÉs
 cCsE|r tjS|jƒr>tjƒjtjƒdkr>tjStjS(Ni(    RNtFB_JoinType_Helpt    GetTeamIDR+R¨RÍtDef_FB_TeamPlayerCounttFB_JoinType_MultitFB_JoinType_Single(RYt isHelpFight((syD:\SG_ServerCode\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((syD:\SG_ServerCode\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ÍRNt Def_FB_GradetFBLogictDoFBHelptintt GetFBStepTicktlenR·R©Rzt Sync_TimeTickRVR£R¤R¥R¦(Råt gradeTimeListRYttimeTypetlowestR´tcurGradet    useSecondt
diffSecondtupdGradet gSecondTotaltgSecondRÚRÅ((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt UpdateFBGradeãsH    
 
         !cCsh|ji|t6|t6t|ƒt6ƒtj|dtƒ}|j|ƒt    j
d||j ƒƒdS(Nt ensure_asciisNotifyFBOver: %s( tupdatetOver_dataMapIDt Over_lineIDRìt Over_isPasstjsontdumpsRUt    Frm_FBEndR+RzRb(RYRRRtoverDicttoverMsg((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt NotifyFBOvers
( cCsT|ji|t6ƒtj|dtƒ}|j|ƒtjd||jƒƒdS(NRúsNotifyFBHelp: %s(    Rût Help_lineIDRÿRRUt
Frm_FBHelpR+RzRb(RYRthelpDictthelpMsg((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt NotifyFBHelps
 cCs*tj|dtƒ}|jd|ƒdS(NRús%s(RÿRRUR(RYtmsgDict((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytNotify_FB_Over(scCs0tj|dtƒ}|jdt|ƒƒdS(NRús%s(RÿRRURtstr(RYR((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt Notify_FBHelp-scCsg}x|D]ù}i}t|tƒs7t|tƒr€t|ƒ}|dkr`|d|d<n|dkrù|d|d<qùnyt|tƒrœ||d<n]t|tƒr´|}nEtj|ƒsÉq n|jƒ|d<|j    ƒ|d<|j
ƒ|d<|j |ƒq W|S(NitItemIDitCounttUserData( t
isinstancetlistttupleRîRìtdictRŠtCheckItemCanUset GetItemTypeIDtGetCountt GetUserDataR@(titemListt jsonItemListR titemDicttinfolen((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonItemList3s(         cCsBg}x5|jƒD]'\}}|ji|d6|d6ƒqW|S(NR’t
moneyValue(titemsR@(t    moneyDictt    moneyListR’R((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonMoneyListOscCsBg}x5|jƒD]'\}}|ji|d6|d6ƒqW|S(NtNPCIDtkillCnt(RR@(tnpcDicttkillListtnpcidR$((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonNPCKillListVscCsBg}x5|jƒD]'\}}|ji|d6|d6ƒqW|S(NR#tHPPer(RR@(R%R&R'R)((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonNPCHPPerList]scCsë|jƒ}|tjkr9|jƒ}tj|ƒ}tj|ƒ}|tjkr&|rqtj|j    |ƒq6t
}xŒtj|D]}}    t |    t ƒs q…n|    d|dkr…|    j dƒ|j dƒkr…|    j ddƒ|j ddƒ|    d<t}Pq…q…W|s6tj|j    |ƒq6q9|gtj|<n|dkrIdSd}
tjƒ} xgt| jƒƒD]S} | j| ƒ} | sn| jƒrœqnn| jƒ|jƒkrn|
d7}
qnqnW|
dk}|rç|||ƒndS(NRtIsBindRii(R½RNtDef_ItemType_MoneyR¼RŠtCheckItemIsEquipt GetJsonItemR*tg_fbPickUpItemDictR@RURRtgetRVRƒR+tGetMapItemManagerR¤tGetMapItemCounttGetMapItemByIndexR§t
GetOwnerIDRb(RYtcurItemRåtoverFunct mapItemTypeRntisEquiptjsonItemtisInR tplayerItemCounttmapItemManagerRÅtmapItemtisItemAllPickUp((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt OnPickUpItemdsB  2&   c Cs=tjƒ}|jƒ||_g|_x|D]‡}|d \}}}}t|ƒdkrg|dnd}    tjƒ}
||
_||
_||
_    ||
_
|    |
_ |jj |
ƒq/Wt|jƒ|_ |råtj||ƒnTtjƒ} xEt| jƒƒD]1} | j| ƒ}|s%qntj||ƒqWdS(sõͬ²½¶¯Ì¬Õϰ­ÎïÊÇ·ñÓÐЧÐÔ
    @param barrierPointList: Õϰ­ÎïµãÁбí [[aPosX,aPosY,bPosX,bPosY,angle¿ÉÑ¡], [aPosX,aPosY,bPosX,bPosY,angle¿ÉÑ¡], ...]
    @param state: ÊÇ·ñÓÐЧ
    @param curPlayer: Ö¸¶¨Í¨ÖªÄ¿±êÍæ¼Ò£¬ÎªNoneʱ¹ã²¥±¾µØÍ¼ËùÓÐÍæ¼Ò
    iiN(tChPyNetSendPackttagMCDynamicBarrierStatetCleartStatet BarrierListRîttagMCDynamicBarriertAPosXtAPosYtBPosXtBPosYtAngleR@Rt NetPackCommont SendFakePackR+R£trangeR¥R¦( tbarrierPointListtstateRYtbarrierStatePacktposInfotaPosXtaPosYtbPosXtbPosYtangletbarriert playManagerR²((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSyncDynamicBarrierStates0 
         "                      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»RƒtGetNPCIDt
GetVisibleR,tGetTickR¡t
NPCControlt DoNPCRebornt
SetVisibleRVRU(    t
doorIDListttypetisRebornRÄR²RÆtnpcIDtcurTypeRå((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytOpenOrCloseDoorEx´s*       cCsÔtjƒ}xÁ|D]¹}|j|ƒ}|dkrKtjd|ƒqn|jƒ}|dkr³|roqn|r tjƒjƒ}tj    |ƒj
|ƒn|j t ƒqn|s¿qn|j t ƒqWdS(Ns¸±±¾ÎÞ·¨²éÕÒ, ÃÅID = %si(R+R¹tFindGameNPCByNPCIDRƒtErrLogR[R,R\R¡R]R^R_RVRU(R`RaRbRÄRcRÆRdRå((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytOpenOrCloseDoorÙs&      cCstjƒj|ƒdS(N(R+R¨tBroadcast_FbBillboard(tmaxCount((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt InitBillBoardûscCsX|jƒ}|jƒ}tjƒj|ƒ}|j|ƒ|j|ƒ|jdƒdS(Ni(RbtGetNameR+R¨tGetFbBillBoardPlayert SetPlayerIDt SetPlayerNametSetPoint(RYt curPlayerIDt curPlayerNametplayerBillBoard((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytInitBillBoardPlayers     cCsmtjƒj|jƒƒ}|dkrCt|jƒ|dƒ}nt|jƒ|dƒ}|j|ƒ|S(Niiÿÿi(R+R¨RmRbtmintGetPointR·Rp(RYRaRšRstpoint((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytAddorReduceBillBoards   cCs,tjƒj|jƒƒ}|j|ƒdS(N(R+R¨RmRbt
SetCountry(RYtcountryRs((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetCountryBillBoard#s cCs%tjƒj|jƒƒ}|jƒS(N(R+R¨RmRbRv(RYRs((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetPlayerBillBoardPoint-scCs%tjƒj|jƒƒ}|jƒS(N(R+R¨RmRbtGetBillboardIndex(RYRs((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetPlayerIndex_InBillBoard5scCs'tjƒ}|jƒ|j|ƒdS(N(R+R¨tSortFbBillBoardPlayerRi(RjR´((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytNotifyBillBoard=s 
 cCsPtjƒ}|j|ƒ|j|ƒtjd||ftjƒjƒƒdS(NsSetFBStep %s, tick=%s(R+R¨t    SetFBStept SetFBStepTickRhR,t GetPropertyID(RRåR´((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRJs
   &cCsatjƒ}xNt|jƒƒD]:}|j|ƒ}|jƒsFqn|j|||ƒqWdS(N(R+R£RMR¥R¦RbtSync_FbSystemMessage(tkeepTimetmsgTypetmsgRÚR²RY((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR„Ws  cCsgtjƒ}xTtd|jƒƒD]=}|j|ƒ}|jƒsIq"n|j||||ƒq"WdS(Ni(R+R£RMR¥R¦RbRï(R†tmsgTickRct
isContinueRÚRÅRY((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSync_Player_TimeTickls  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ƒR+R¨RÍRNtMap_FBDict_PrevFBTimeTypeRVRURhR©R£RMR¥R¦RbRï(    R†Rˆt isSendPrevMsgRcR‰t prevMsgTypeRÚRÅRY((syD:\SG_ServerCode\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(R+R,RVRMtGetGameWorldCounttGetGameFBByFbIndext GetFamilyVSt GetFamilyIDt GetVSFamilyIDRUtGetOpenStateByFbIndexRˆtfbosOpentDef_VSFB_IsClosetDef_VSFB_CanEntertDef_VSFB_NotFighttDef_VSFB_NotFamilyID(tfamilyIDt    gameWorldt todayNotFightRÅR´tfamilyVsManagertattackIDt    defenceID((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetCanEnterVSFBs"         cCs|tjƒ}xit|jƒƒD]U}|j|ƒ}|jƒ}|jƒ}|jƒ}|||gkr||fSqWdS(N(NN(    R+R,RMRRR‘R’R“Rƒ(RšR›RÅR´RRžRŸ((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGet_VS_Line_GameFBÂs    cCstjƒj|ƒS(N(R+R,t GetMapCopyPlayerManagerByFbIndex(t    lineIndex((syD:\SG_ServerCode\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ˆtfbtTeamRhR,RMRRƒ(tteamIDtgameMaptgameWorldManagerRÅR›((syD:\SG_ServerCode\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ÝRVtGetCloseFBTickRUt    GetTeamLVt    tmlLeadert GetOpenStatetfbosWaitForClose(t    askStructt gameMapFBTypeR›((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytCheckFBStateCanEnterùs
c
CsM|s'tjƒjƒ}t|ƒ}ni}tjƒ}xŽt|jƒƒD]z}|j|ƒ}|jƒ}|syqLn|j    ƒt
j kr”qLn|r¬||kr¬qLn|j |dƒd||<qLW|ræt j|||ƒnctjƒ}xTt|jƒƒD]@}    |j|    ƒ}|jƒdkr2qnt j|||ƒqW|S(Nii(R+RŸR R4R¹R¤RºR»RZtGetGameNPCObjTypeRˆtgnotPetR0R¡tSyncNPCCntInfoR£R¥R¦R¼(
R7t    npcIDListRYt
npcCntDictRÄRÅRÆRcRÚR²((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt
Sync_FBNPCs0   cCs‚g}tjƒ}xit|jƒƒD]U}|j|ƒ}|jƒdkrRq%n|jƒtjkrmq%n|j    |ƒq%W|S(Ni(
R+R¹RMRºR»R¼R´RˆRµR@(t gameNPCListRÄRÅRÆ((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetMapNPCList8s 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¹RMRºR»R¼tGameObjtGetHPR´RˆRµt
gnotSummont GetObjDetailRƒtGetOwnertGetGameObjTypet    gotPlayerR@(t findNPCListRÄRÅRÆt curNPCDetailt curNPCOwner((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetMapSystemNPCListOs" '  !    cCsdtjƒ}xQtd|jƒƒD]:}|j|ƒ}|jƒdkrOq"ntj|ƒq"WdS(Ni(R+R£RMR¥R¦R¼RPt PlayerLeaveFB(RÚR²RY((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytDoLogic_FBKickAllPlayerts 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¿RƒRÀRÁRÂtgotNPCR@(RºRÃRÆRÄRÅ((syD:\SG_ServerCode\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½RˆR¾R¿RZR¡t    SetDeadEx(t ignoreIDListRÆ((syD:\SG_ServerCode\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½RˆR¾R¿RZR¡RË(tclearNPCIDListRÆ((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt ClearFBNPCEx¼s cCsšd}xtƒD]‚}|dkr(qn|jƒtjtjgkrLqn|jƒ}|rp||krpqn|rˆ||krˆqn|d7}qW|S(Nii(RÊRƒR½RˆR¾R¿RZ(R·RÌtnpcCntRÆRc((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetFBNPCCntÒs  cCsgtjƒ}tj|}tj|}tj|}|j||ƒ|j||ƒ|j||ƒdS(N(R+R¨RNtMap_NPC_RandomMapNPCIDtMap_NPC_RandomMapNPCNeedCnttMap_NPC_RandomMapNPCPerMaxCntR©(t refreshMarkRctneedRefreshCntt    perMaxCntR´tnpcIDKeyt
needCntKeyt perMaxCntKey((syD:\SG_ServerCode\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©RNtMap_TDNPC_RefreshFileNumtMap_TDNPC_RefreshSignKeytMap_TDNPC_RefreshStartTicktMap_TDNPC_RefreshBigWheelNumtMap_TDNPC_RefreshSmallWheelNumtMap_TDNPC_CurWheelStartTicktMap_TDNPC_CurWheelIsOvertMap_TDNPC_AllWheelIsOvertMap_TDNPC_NPCCnttMap_TDNPC_NPCBossCntt__TDStartRefreshNotify(trMarktfileNumtsignRåR_R´((syD:\SG_ServerCode\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©RNRÜRÝRÞRßRàRáRâRäRå(Rçt
isResetNPCR´((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytCloseTDNPCRefreshs cCs;tjƒ}x(|D] }|jtj|ƒstSqWtS(N(R+R¨RÍRNRãRURV(t    rMarkListR´Rç((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytIsTDNPCRefreshOver2s
  cCs;tjƒ}x(|D] }|jtj|ƒstSqWtS(N(R+R¨RÍRNRâRURV(RíR´Rç((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytIsTDWheelRefreshOver=s
  cCsdtjƒ}xQ|D]I}|jtj|ƒ}|jtj|ƒ}|dksX| rtSqWtS(Ni(R+R¨RÍRNRäRâRURV(RíR´RçRÐtcurWheelIsOver((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytIsTDNPCCurWheelAllKilledEs  c
Cs»tjƒ}|jtj|ƒ}|jtj|ƒ}|jtj|ƒ}|dkr^tStj    d|ƒ}|t
|ƒkr‡tS||}|t }||}    |dkoº|    |kS(Nis    TD_%s_Cfg( R+R¨RÍRNRÞRßRÜRURRžRîtDef_TDCfg_NextWheelTime(
RçRåR´t    startTickt curWheelNumRètrefreshCfgListt wheelInfoListtforceNextWheelTimetpassTick((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytCheckForceEnterNextWheelTs  
 
 
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ÍRNRßR©RàRáRâRÜRÝRæRz(RçRåR_R´Rôt nextWheelNumRètsignKey((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetEnterTDNextWheelks 
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žR0RîtDef_TDCfg_NotifyMarkRPtFBNotify(
R´RètwheelNumRétrefreshNPCDicttrefreshNPCListR'RõRöRp((syD:\SG_ServerCode\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¨t GetDictByKeyRNtDef_NPC_Dict_FromRefreshMarkRåRÍt
IsGameBossR·R©RäRz(
RÆRšR´RçtcurMarkNPCBossCntKeytbossCnttisBosstcurMarkNPCCntKeyRÐtupdCnt((syD:\SG_ServerCode\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ÍRNRßRÜRRžRîRòtDef_TDCfg_PrepareTimeRáR·RÞRƒRŠRïRV(RYRçR†RåtmsgIDR´RôRèRõRöt nextWheelTimet prepareTimetcurWheelStartTickRøtnextWheelRemainTickRó((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSync_TDNextWheelTick°s0  
 
 
 
 
 c    Cs‚i}tjd|ƒ}|j|gƒ}xP|D]H}x?|D]7}x.|D]&\}}|j|dƒ|||<qLWq?Wq2W|S(Ns TD_%s_NPCIDi(RRžR0(    RèRét npcCountDictRRt wheelNPCListtsmallWhellNPCInfoRctnpcCount((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetTDCfgNPCCntInfoÒs  &c    Cst|ƒ}|sdS|jƒ}|jtj|ƒ}|jtj|ƒ}|jtj|ƒ}tj||ƒ}|||||}|S(Ni(    R8RvRWRNtDef_Player_Dict_FBADCnttDef_Player_Dict_FBBuyCnttDef_Player_Dict_FBItemCnttPlayerGoldInvestt GetAddFBCnt(    RYR7RkR{tadCnttbuyCnttitemCntt investFBCntR}((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRxÝs  cCsBt|ƒ}|jtj|ƒ}|dkr>tj||ƒS|S(Ni(R4RWRNRwR+tGetDataByDigitPlace(RYtfbIDtlineBitR|((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetEnterFBCountês
  cCsmt|ƒ}|jtj|ƒ}tj|tj|||ƒt||ƒtj|d|||gƒdS(NtAddActivityCount_1(R4RWRNRRPR\R]Rd(RYRDR7taddCntt
itemAddCnt((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytAddFBCntByItemòs   c Cs%|r dn|}t|ƒ}tj|}|j|ƒ}|dkr–tj||ƒ}td||ƒ}tj|||ƒ}    tj    |||    ƒnUt
||ƒ}
||
krµt St|
||ƒ} | |}tj    ||| ƒ| }    tj d|||||    f|j ƒƒt||ƒtS(Nii    sM    AddEnterFBCount fbID=%s, addCount=%s, lineBit=%s, enterCnt=%s,updValue=%s(R4RNRwRWR+R RutChangeDataByDigitPlaceRPR\RxRURzRbR]RV( RYR!taddCountR"tisFreet enterCntKeyR|tcurLineEnterCntt updEnterCnttupdValueR}R    ((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytAddEnterFBCountûs(    
      cCsdS(N((RYt
onWeekType((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytFBOnWeekscCsOtjd|jƒƒ|tjkr)dStj||ƒg}tjƒ}xçt    |j
ƒƒD]Ó}|j |ƒ}|j ƒ}|j tj|ƒ}| r¼|jƒ r¼|jƒ r¼q^ntj|tj|dƒtj|tj|dƒtj|tj|dƒtj|tj|dƒ|j|ƒq^W|rKt||ƒndS(Ns¸±±¾¹ýÌì´¦Àí,FBOnDay...i(R+RhRbRHtDef_OnEventTypeRêtOnFBPlayerOnDayR5tIPY_DataR¤tGetFBFuncCounttGetFBFuncByIndext GetDataMapIDRWRNRwRvt GetPayCntMaxRPR\RRRR@R](RYt    onDayTypet    mapIDInfot
ipyDataMgrR²tipyDataR7R|((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytFBOnDays(  !cCstj|ƒt|ƒdS(N(RêtOnFBPlayerOnLoginR](RY((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt    FBOnLogin8s 
c     Csrtjƒj|ƒ}|j}t|ƒ}|s4dS|jƒ}|tj||ƒ7}|jt    j
|ƒ}tj d|||fƒ||kr°tj d|||fƒdS|j ƒ}|j ƒ}    | sÖ|     rôtj d|||    fƒdSt|    ƒ|kr|    |n|    d}
tj|||
t    ji|d6ƒsCdStj|t    j
||dƒt||ƒdS(Ns4¹ºÂò¸±±¾½øÈë´ÎÊý: mapID=%s,canBuyCnt=%s,hasBuyCnt=%ss;¸±±¾¹ºÂò´ÎÊýÒѾ­ÓÃÍê! mapID=%s,hasBuyCnt=%s >= canBuyCnt=%ssDûÓÐÅäÖùºÂò¸±±¾´ÎÊýÏûºÄ»õ±ÒÊý! mapID=%s,costType=%s,payMoneyList=%siÿÿÿÿRi(R+tGetPlayerManagerR¦tFBIDR8R8RtGetAddFBBuyCntRWRNRRztGetPayMoneyTypetGetPayMoneyValuesRîRPR„tDef_Cost_BuyFBCntR\R]( t playerIndext
clientDataRåRYR7R<t    canBuyCntt    hasBuyCnttcostTypet payMoneyListt    costMoney((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytBuyFBEnterCountDs.         &% cCs[t|ƒ}|sdS|jtj|ƒ}tj|tj||dƒt||ƒdS(Ni(R8RWRNRRPR\R](RYR7RkR((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt
AddFBADCnt]s  cCs|S(N((R7((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR4js%c
Csä|sItjƒ}gt|jƒƒD]}|j|ƒjƒ^q%}n=t|ƒttgkredSt|ƒtkr€|gn|}t    j
ƒj t j ƒ}g|_x|D] }t    j
ƒj t jƒ}||_|jtj|ƒ|_|jtj|ƒ|_|jtj|ƒ|_|jtj|ƒ|_|jtj|ƒ|_xCttjƒD]2}|jtj||fƒ}    |j j!|    ƒqbWt"|j ƒ|_#|jj!|ƒq®Wt"|jƒ|_$t%j&||ƒdS(N('R5R4R¤R5R6R7RaRìRtObjPoolt
GetPoolMgrtacquireR@ttagSCFBInfoListt
FBDataListt tagSCFBInfoRRWRNRwtEnterCntRtADAddCntRt    BuyAddCntRt
ItemAddCntRXt
PassLineIDRMtDef_FBStar_MaxKeyCntRTt    PassGradeR@Rît PassGradeCntt    FBDataCntRKRL(
RYR:R;R²t    mapIDListt
clientPackR7tfbInfotkeyNumt
gradeValue((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR]‘s0 7!         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@trandomtshufflet    enumeratetextend( R°tgroupCntt    groupListR²tsetpttmpListtgttmpGrouptaIndextbIndextgitgroup((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetGroupList¸s&
 
   cCstjƒjƒdS(Ni †(R+R,Rƒ(((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetCrossDynamicLineMapZoneIDÒscCstjƒjƒddS(Ni †id(R+R,Rƒ(((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetCrossDynamicLineMapFuncLineIDÖs(«R+RˆRPRŠR¡RR@RKR5RHR*R¼RêRNRRORcRÿtmathR—R–R™R˜Rt    Help_stept
Help_wheeltHelp_wheelTotaltHelp_npct Help_npcTotaltHelp_npcTotalNeedtHelp_expt Help_expPointt
Help_moneyt
Help_scoret
Help_gradet Help_leaderIDt Help_isHelptHelp_helpCountt Help_relationt Help_robotJobt Help_isAutotHelp_hasRefreshBosstHelp_gsItemInfoRü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_succItemInfotOver_firstPassItemt
Over_scoretOver_extrScoret Over_enterLVt Over_leaderIDtOver_helpPlayert Over_ownerIDtOver_ownerNamet Over_isAssistRMtDef_FbActionEncouragetDef_FbActionChangeLineR0R2R8RVR<RƒR=R>R?RJRMR[R`RURsRcR~R•R™R›RµRÇRÌRÏRÐRÓRÖRÙRÛRâRèt tttFlagTakeRùRR    R R RR"R(R*R?RYReRhRkRtRxR{R|R~R€RR„RŠRŽR R¡R¤RªR³R¹R»RÆRÈRÊRÍRÏRÑRÛRòR tDef_TDCfg_SmallWheelSpaceRýRêRìRîRïRñRùRüRæR
RRRxR#R'R/R1R=R?RMRNR4R]RqRrRs(((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt<module>sB                                                      (    .)         %    "                                1                              + % % "                
                          %                !        %                                                         "                                        ' '