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
̼;ic@søddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZdZdZdZdZdZdZdZd    Zd
Zd Zd Zd ZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/d Z0dZ1dZ2dZ3dZ4dZ5d Z6d!Z7d Z8dZ9dZ:d"Z;d#Z<d$Z=dZ>d%Z?d&Z@dZAd'ZBd(ZCd)ZDd*ZEeFd+ƒ\ZGZHd,„ZId-„ZJd.„ZKeLd/„ZMdd0„ZOd1„ZPd2„ZQd3„ZRd4„ZSd5„ZTeLd6„ZUd7eLeVd8„ZWd9„ZXd:dd7eVd;„ZYd:d7d<„ZZd:d=„Z[d>„Z\d?„Z]d@„Z^dA„Z_dB„Z`dC„ZaddD„ZbdE„Zcd7dF„ZddG„ZedH„ZfdI„ZgdejhdJ„ZiidK„ZjidL„ZkdM„ZldN„ZmdO„ZndP„ZodQ„ZpdR„ZqdS„ZrddT„ZseVdU„ZteVdV„ZudW„ZvdX„ZwdY„ZxdZ„Zyd[„Zzd\„Z{d]„Z|d^„Z}d_„Z~d:eLd`„Zd:eLda„Z€db„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ŽeFdpƒ\ZZZ‘Z’dq„Z“eLdr„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 d7deVd„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 SetGameFBDataescCs#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 GetGameFBDatafscCst|ƒ}tjd|ƒS(NtFBFunc(tGetRecordMapIDt IpyGameDataPYtGetIpyGameDataNotLog(tmapID((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetFBIpyDatahs 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.pytGetFBLineIpyDataks
  cCs
ddgS(Ni
((R7RR;((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineEnterPosInfosscCs#t||ƒ}|sgS|jƒS(N(R<tGetPassAwardList(R7RR;((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR>vsc    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?zs  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! cCsl|jtj|ƒ}||kr?tj|tj||ƒn|rUt||ƒntj|||ƒdS(N(RWRNRXRPtNomalDictSetPropertytSync_FBPlayerFBInfoDatatDataRecordPackt    DR_FBPass(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 reqEnterCntRat    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(    RYR7RRmRnRotmaxTimestenterCnttmaxCnt((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyReØs 
 
"
    icCstgdtgfS(Ni(RVRU(RYR7RR;RnRo((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.pytGetFBPDictValueDscCstj|||tjƒdS(N(RPR\RNR˜(RYR™tvalue((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetFBPDictValueLsc 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…tIsEmptyRdRht    GetGameFBt SetGameFBDictRNtDef_FB_NPCStrengthenAverageLVtDef_FB_NPCStrengthenMaxLVRjRV( RptisLeavetattrStrengthenInfoR7tmaxLVttotalLVt    playerCnttcopyMapPlayerManagertiRYRst    averageLVtgameFB((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytUpdFBLineNPCStrengthenLVPs<  
 
 
     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_NPCStrengthenPlayerCntRjt GetNPCManagerR¦t GetNPCCountt GetNPCByIndextGetIDtGetTypeRŠt ntFunctionNPCtntPettDoNPCAttrStrengthenRURV( RpR®R¯R7tcoefficientDicttisRefreshNPCAttrNowR¶t playerCounttgameNPCManagertindextcurNPC((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytUpdFBLineNPCStrengthenPlayerCntus2  
      cCsA|jtj|ƒ|jtj|ƒtjd||fƒdS(s{ ÉèÖùÖÎïµôÂäÖ´ÐдÎÊýÍò·ÖÂÊ ¼° ¹Ì¶¨¼Ó³É´ÎÊýÖµ
    @param doCountRate: ´ÎÊýÍò·ÖÂÊ
    @param doCountAdd: ´ÎÊý¹Ì¶¨Öµ    
    s7ÉèÖùÖÎïµôÂäÖ´ÐдÎÊýÐÅÏ¢: doCountRate=%s, doCountAdd=%sN(R«RNtDef_FB_DropDoCountRatetDef_FB_DropDoCountAddR+Rj(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«R|t 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+R|Rd(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_lineIDRRRUt
Frm_FBHelpR+R|Rd(RYRthelpDictthelpMsg((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt NotifyFBHelps
 cCs*tj|dtƒ}|jd|ƒdS(NRüs%s(RRRUR(RYtmsgDict((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytNotify_FB_Over*scCs0tj|dtƒ}|jdt|ƒƒdS(NRüs%s(RRRURtstr(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.pytGetJsonItemList5s(         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.pytGetJsonMoneyListQscCsBg}x5|jƒD]'\}}|ji|d6|d6ƒqW|S(NtNPCIDtkillCnt(R!R@(tnpcDicttkillListtnpcidR&((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonNPCKillListXscCsBg}x5|jƒD]'\}}|ji|d6|d6ƒqW|S(NR%tHPPer(R!R@(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
GetOwnerIDRd(RYtcurItemRçtoverFunct mapItemTypeRptisEquiptjsonItemtisInR tplayerItemCounttmapItemManagerRÇtmapItemtisItemAllPickUp((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt OnPickUpItemfsB  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`RaRVRU(RbRcRdRÆReRÈRfRç((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(RdtGetNameR+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ªRoRdtmintGetPointR¹Rr(RYRcRœRutpoint((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytAddorReduceBillBoards   cCs,tjƒj|jƒƒ}|j|ƒdS(N(R+RªRoRdt
SetCountry(RYtcountryRu((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetCountryBillBoard%s cCs%tjƒj|jƒƒ}|jƒS(N(R+RªRoRdRx(RYRu((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetPlayerBillBoardPoint/scCs%tjƒj|jƒƒ}|jƒS(N(R+RªRoRdtGetBillboardIndex(RYRu((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetPlayerIndex_InBillBoard7scCs'tjƒ}|jƒ|j|ƒdS(N(R+RªtSortFbBillBoardPlayerRk(RlR¶((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 SetFBStepTickRjR,t GetPropertyID(RRçR¶((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRƒLs
   &cCsatjƒ}xNt|jƒƒD]:}|j|ƒ}|jƒsFqn|j|||ƒqWdS(N(R+R¥ROR§R¨RdtSync_FbSystemMessage(tkeepTimetmsgTypetmsgRÜR´RY((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR†Ys  cCsgtjƒ}xTtd|jƒƒD]=}|j|ƒ}|jƒsIq"n|j||||ƒq"WdS(Ni(R+R¥ROR§R¨RdRñ(RˆtmsgTickRet
isContinueRÜRÇRY((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSync_Player_TimeTickns  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_PrevFBTimeTypeRVRURjR«R¥ROR§R¨RdRñ(    RˆRŠt isSendPrevMsgReR‹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,RVROtGetGameWorldCounttGetGameFBByFbIndext 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,ROR‘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ŠtfbtTeamRjR,ROR‘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½R\tGetGameNPCObjTypeRŠtgnotPetR2R£tSyncNPCCntInfoR¥R§R¨R¾(
R7t    npcIDListRYt
npcCntDictRÆRÇRÈReRÜ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»ROR¼R½R¾R¶RŠR·R@(t gameNPCListRÆRÇRÈ((syD:\SG_ServerCode\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»ROR¼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.pytGetMapSystemNPCListQs" '  !    cCsdtjƒ}xQtd|jƒƒD]:}|j|ƒ}|jƒdkrOq"ntj|ƒq"WdS(Ni(R+R¥ROR§R¨R¾RPt PlayerLeaveFB(RÜR´RY((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytDoLogic_FBKickAllPlayervs 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ÁR\R£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ÁR\R£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ÁR\(R¹RÎtnpcCntRÈRe((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 refreshMarkRetneedRefreshCntt    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çRaR¶((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.pytCloseTDNPCRefresh!s 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.pytIsTDNPCRefreshOver4s
  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.pytIsTDNPCCurWheelAllKilledGs  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.pytCheckForceEnterNextWheelVs  
 
 
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èR|(RéRçRaR¶Röt nextWheelNumRêtsignKey((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetEnterTDNextWheelms 
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 R2RðtDef_TDCfg_NotifyMarkRPtFBNotify(
R¶RêtwheelNumRëtrefreshNPCDicttrefreshNPCListR)R÷RøRr((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æR|(
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 R2(    RêRët npcCountDictRRt wheelNPCListtsmallWhellNPCInfoRetnpcCount((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(    R8RxRWRNtDef_Player_Dict_FBADCnttDef_Player_Dict_FBBuyCnttDef_Player_Dict_FBItemCnttPlayerGoldInvestt GetAddFBCnt(    RYR7RmR}tadCnttbuyCnttitemCntt investFBCntR((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRzßs  cCsBt|ƒ}|jtj|ƒ}|dkr>tj||ƒS|S(Ni(R4RWRNRyR+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]Rf(RYRDR7taddCntt
itemAddCnt((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytAddFBCntByItemôs   c CsN|}|rdn|}t|ƒ}tj|}|j|ƒ}|dkrœtj||ƒ}td||ƒ}    tj|||    ƒ}
tj    |||
ƒnxt
||ƒ} | rÂ|| krÂt St| ||ƒ} | |}tj    ||| ƒt j |tj||gƒ| }
tjd|||||
f|jƒƒt||ƒtS(Nii    sM    AddEnterFBCount fbID=%s, addCount=%s, lineBit=%s, enterCnt=%s,updValue=%s(R4RNRyRWR+R"RwtChangeDataByDigitPlaceRPR\RzRUtPlayerActivitytAddDailyTaskValuetDailyTask_FBFinishR|RdR]RV( RYR#taddCountR$tisFreet
addCountExt enterCntKeyR~tcurLineEnterCntt updEnterCnttupdValueRR ((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+RjRdRHtDef_OnEventTypeRìtOnFBPlayerOnDayR5tIPY_DataR¦tGetFBFuncCounttGetFBFuncByIndext GetDataMapIDRWRNRyRxt 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    FBOnLogin9s 
c     Cs‡tjƒj|ƒ}|j}t|ƒ}|s4dS|jƒ}|tj||ƒ7}|jt    j
|ƒ}tj d|||fƒ||kr°tj d|||fƒdS|j ƒ}|j ƒ}    | sÖ|     rôtj d|||    fƒdStj||ƒsXt|    ƒ|kr"|    |n|    d}
tj|||
t    ji|d6ƒsXdSntj|t    j
||dƒt||ƒdS(Ns4¹ºÂò¸±±¾½øÈë´ÎÊý: mapID=%s,canBuyCnt=%s,hasBuyCnt=%ss;¸±±¾¹ºÂò´ÎÊýÒѾ­ÓÃÍê! mapID=%s,hasBuyCnt=%s >= canBuyCnt=%ssDûÓÐÅäÖùºÂò¸±±¾´ÎÊýÏûºÄ»õ±ÒÊý! mapID=%s,costType=%s,payMoneyList=%siÿÿÿÿRi(R+tGetPlayerManagerR¨tFBIDR8R>RtGetAddFBBuyCntRWRNRR|tGetPayMoneyTypetGetPayMoneyValuestIsFBCntBuyFreeRðRPR†tDef_Cost_BuyFBCntR\R]( t playerIndext
clientDataRçRYR7RBt    canBuyCntt    hasBuyCnttcostTypet payMoneyListt    costMoney((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytBuyFBEnterCountEs0         &% cCs[t|ƒ}|sdS|jtj|ƒ}tj|tj||dƒt||ƒdS(Ni(R8RWRNRRPR\R](RYR7RmR((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.pyR4ls%c
CsÌ|sItjƒ}gt|jƒƒD]}|j|ƒjƒ^q%}n=t|ƒttgkredSt|ƒtkr€|gn|}t    j
ƒ}g|_ x|D]}t    j ƒ}||_ |jtj|ƒ|_|jtj|ƒ|_|jtj|ƒ|_|jtj|ƒ|_|jtj|ƒ|_xCttjƒD]2}|jtj||fƒ}    |jj|    ƒqJWt|jƒ|_ |j j|ƒq¢Wt|j ƒ|_!t"j#||ƒdS(N($R5R:R¦R;R<R=RcRîRRBttagSCFBInfoListt
FBDataListt tagSCFBInfoRRWRNRytEnterCntRtADAddCntRt    BuyAddCntRt
ItemAddCntRXt
PassLineIDROtDef_FBStar_MaxKeyCntRTt    PassGradeR@Rðt PassGradeCntt    FBDataCntRMRN(
RYR@RAR´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+RBR^RMR5RHR*R¾RìRNRRgRtmathR™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ÿRt 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_isAssistROtDef_FbActionEncouragetDef_FbActionChangeLineR0R2R8RVR<R…R=R>R?RJRMR[RbRURuReR€R—R›RR·RÉRÎRÑRÒRÕRØRÛRÝRäRêt tttFlagTakeRûRR R RRR$R*R,RAR[RgRjRmRvRzR}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 RRRzR%R)R5R7RCRERTRUR4R]RuRvRw(((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt<module>sD                                                           (    .)         %    "                                1                              + % % "                
                          %                !        %                                                         "                                        ' '