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
’Àýic@s%ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZdZdZdZdZdZdZdZd    Zd
Zd Zd Z d Z!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1d Z2dZ3dZ4dZ5dZ6dZ7d Z8d!Z9d Z:dZ;dZ<d"Z=d#Z>d$Z?dZ@d%ZAd&ZBdZCd'ZDd(ZEd)ZFd*ZGeHd+ƒ\ZIZJd,„ZKd-„ZLd.„ZMeNd/„ZOdd0„ZQd1„ZRd2„ZSd3„ZTd4„ZUd5„ZVeNd6„ZWd7eNeXd8„ZYd9„ZZd:dd7eXd;„Z[d:d7d<„Z\d:d=„Z]d>„Z^d?„Z_d@„Z`dA„ZadB„ZbdC„ZcddD„ZddE„Zed7dF„ZfdG„ZgdH„ZhdI„ZidejjdJ„ZkidK„ZlidL„ZmidM„ZndN„ZodO„ZpdP„ZqdQ„ZrdR„ZsdS„ZtdT„ZuddU„ZveXdV„ZweXdW„ZxdX„ZydY„ZzdZ„Z{d[„Z|d\„Z}d]„Z~d^„Zd_„Z€d`„Zd:eNda„Z‚d:eNdb„Zƒdc„Z„dd„Z…de„Z†df„Z‡dg„Zˆd:gddh„Z‰di„ZŠdj„Z‹dk„ZŒdl„Zgdm„ZŽdn„Zggdo„Zdp„Z‘eHdqƒ\Z’Z“Z”Z•dr„Z–eNds„Z—dt„Z˜du„Z™dv„Zšdw„Z›dx„Zœdy„Zdz„Zžd:d{„ZŸd:d|„Z d}„Z¡dd~„Z¢d„Z£d7deXd€„Z¤d„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 SetGameFBDatagscCs#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 GetGameFBDatahscCst|ƒ}tjd|ƒS(NtFBFunc(tGetRecordMapIDt IpyGameDataPYtGetIpyGameDataNotLog(tmapID((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetFBIpyDatajs 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.pytGetFBLineIpyDatams
  cCs
ddgS(Ni
((R7RR;((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineEnterPosInfouscCs#t||ƒ}|sgS|jƒS(N(R<tGetPassAwardList(R7RR;((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR>xsc    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?|s  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.pytDelFBEnterTicket1s'
 
cCs|j||tjƒS(N(RWRNtDef_PDictType_FB(RYtkeyt defaultValue((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBPDictValueFscCstj|||tjƒdS(N(RPR\RNR˜(RYR™tvalue((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetFBPDictValueNsc 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.pytUpdFBLineNPCStrengthenLVRs<  
 
 
     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.pytUpdFBLineNPCStrengthenPlayerCntws2  
      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
( cCsŠ|ji|t6|t6t|ƒt6ƒtj|dtƒ}|jddƒ}t    j
ƒ}||_ t |j ƒ|_ tj||ƒdS(NRüs Rv(RýRþRÿRîRRRRUtreplacet ChNetSendPackttagFBEndtMsgRðtLent CrossPlayert SendFakePack(t crossPlayerRRRRRt
clientPack((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytNotifyFBOverCrossPlayer s(     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 NotifyFBHelp+s
 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_Over7scCs0tj|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.pytGetJsonItemListBs(         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.pytGetJsonMoneyList^scCsBg}x5|jƒD]'\}}|ji|d6|d6ƒqW|S(NtNPCIDtkillCnt(R+R@(tnpcDicttkillListtnpcidR0((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonNPCKillListescCsBg}x5|jƒD]'\}}|ji|d6|d6ƒqW|S(NR/tHPPer(R+R@(R1R2R3R5((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonNPCHPPerListlscCsë|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@RURR tgetRVR…R+tGetMapItemManagerR¦tGetMapItemCounttGetMapItemByIndexR©t
GetOwnerIDRd(RYtcurItemRçtoverFunct mapItemTypeRptisEquiptjsonItemtisInR tplayerItemCounttmapItemManagerRÇtmapItemtisItemAllPickUp((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt OnPickUpItemssB  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 NetPackCommonR R+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…tErrLogRfR,RgR£RhRiRjRVRU(RkRlRmRÆRnRÈRoRç((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ªRxRdtmintGetPointR¹R{(RYRlRœR~tpoint((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytAddorReduceBillBoard"s   cCs,tjƒj|jƒƒ}|j|ƒdS(N(R+RªRxRdt
SetCountry(RYtcountryR~((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetCountryBillBoard2s cCs%tjƒj|jƒƒ}|jƒS(N(R+RªRxRdR(RYR~((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetPlayerBillBoardPoint<scCs%tjƒj|jƒƒ}|jƒS(N(R+RªRxRdtGetBillboardIndex(RYR~((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetPlayerIndex_InBillBoardDscCs'tjƒ}|jƒ|j|ƒdS(N(R+RªtSortFbBillBoardPlayerRt(RuR¶((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytNotifyBillBoardLs 
 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ŒYs
   &cCsatjƒ}xNt|jƒƒD]:}|j|ƒ}|jƒsFqn|j|||ƒqWdS(N(R+R¥RXR§R¨RdtSync_FbSystemMessage(tkeepTimetmsgTypetmsgRÜR´RY((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRfs  cCsgtjƒ}xTtd|jƒƒD]=}|j|ƒ}|jƒsIq"n|j||||ƒq"WdS(Ni(R+R¥RXR§R¨RdRñ(R‘tmsgTickRnt
isContinueRÜRÇRY((syD:\SG_ServerCode\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(R…R+RªRÏRNtMap_FBDict_PrevFBTimeTypeRVRURjR«R¥RXR§R¨RdRñ(    R‘R“t isSendPrevMsgRnR”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,RVRXtGetGameWorldCounttGetGameFBByFbIndext 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,RXRš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,RXRš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.pytCheckFBStateCanEnters
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½RetGetGameNPCObjTypeRŠtgnotPetR<R£tSyncNPCCntInfoR¥R§R¨R¾(
R7t    npcIDListRYt
npcCntDictRÆRÇRÈRnRÜR´((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt
Sync_FBNPC&s0   cCs‚g}tjƒ}xit|jƒƒD]U}|j|ƒ}|jƒdkrRq%n|jƒtjkrmq%n|j    |ƒq%W|S(Ni(
R+R»RXR¼R½R¾R¿RŠRÀR@(t gameNPCListRÆRÇRÈ((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetMapNPCListGs 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»RXR¼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.pytGetMapSystemNPCList^s" '  !    cCsdtjƒ}xQtd|jƒƒD]:}|j|ƒ}|jƒdkrOq"ntj|ƒq"WdS(Ni(R+R¥RXR§R¨R¾RPt PlayerLeaveFB(RÜR´RY((syD:\SG_ServerCode\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Ê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ÁReR£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ÁReR£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ÁRe(RÂR×tnpcCntRÈRn((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 refreshMarkRntneedRefreshCntt    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.pytOpenTDNPCRefreshs 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.pytIsTDNPCRefreshOverAs
  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.pytIsTDWheelRefreshOverLs
  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.pytIsTDNPCCurWheelAllKilledTs  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.pytCheckForceEnterNextWheelcs  
 
 
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.pytSetEnterTDNextWheelzs 
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 R<RðtDef_TDCfg_NotifyMarkRPtFBNotify(
R¶RótwheelNumRôtrefreshNPCDicttrefreshNPCListR3RRRr((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óRRt nextWheelTimet prepareTimetcurWheelStartTickRtnextWheelRemainTickRþ((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 R<(    RóRôt npcCountDictR R t wheelNPCListtsmallWhellNPCInfoRntnpcCount((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(R4RWRNR$RPR\R]Rf(RYRDR7taddCntt
itemAddCnt((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytAddFBCntByItems   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+R€tChangeDataByDigitPlaceRPR\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,   
      cCs'|tjkrdStj||ƒdS(N(RHtDef_OnEventTypeRìtOnFBPlayerOnWeek(RYt
onWeekType((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytFBOnWeek&scCstj|ƒdS(N(RìtOnFBPlayerOnWeekCross(RY((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt FBOnWeekCross,s cCsOtjd|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+RjRdRHR?RìtOnFBPlayerOnDayR5tIPY_DataR¦tGetFBFuncCounttGetFBFuncByIndext GetDataMapIDRWRNRyRxt GetPayCntMaxRPR\R"R#R$R@R](RYt    onDayTypet    mapIDInfot
ipyDataMgrR´tipyDataR7R~((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytFBOnDay0s(  !cCstj|ƒt|ƒdS(N(RìtOnFBPlayerOnLoginR](RY((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt    FBOnLoginMs 
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¨tFBIDR8RJR%tGetAddFBBuyCntRWRNR#R|tGetPayMoneyTypetGetPayMoneyValuestIsFBCntBuyFreeRðRPR†tDef_Cost_BuyFBCntR\R]( t playerIndext
clientDataRçRYR7RNt    canBuyCntt    hasBuyCnttcostTypet payMoneyListt    costMoney((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytBuyFBEnterCountYs0         &% cCs[t|ƒ}|sdS|jtj|ƒ}tj|tj||dƒt||ƒdS(Ni(R8RWRNR"RPR\R](RYR7RmR'((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt
AddFBADCntss  cCs|S(N((R7((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR4€s%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($R5RFR¦RGRHRIRlRîRRLttagSCFBInfoListt
FBDataListt tagSCFBInfoRRWRNRytEnterCntR"tADAddCntR#t    BuyAddCntR$t
ItemAddCntRXt
PassLineIDRXtDef_FBStar_MaxKeyCntRTt    PassGradeR@Rðt PassGradeCntt    FBDataCntRWR (
RYRLRMR´t    mapIDListRR7tfbInfotkeyNumt
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ŸR4RLR^RWR5RHR*RÇRìRNR%RR RrRtmathR¢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_isAssistRXtDef_FbActionEncouragetDef_FbActionChangeLineR0R2R8RVR<R…R=R>R?RJRMR[RbRURuReR€R—R›RR·RÉRÎRÑRÒRÕRØRÛRÝRäRêt tttFlagTakeRûRRRRRR)R.R4R6RKRdRpRsRvRRƒR†R‡R‰R‹RŒRR•R™R«R¬R¯RµR¾RÄRÆRÑRÓRÕRØRÚRÜRæRýRtDef_TDCfg_SmallWheelSpaceRRõR÷RùRúRüRRRñRRR!RzR.R2R>RBRDRORQR`RaR4R]R€RR‚(((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt<module>sL                                                             (    .)         %    "                                1                              + % % "                
                          %                !        %                                                         "                                            ' '