hxp
3 天以前 d8102fad14d314a513edc279a0f6fdd38bb9922c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
ºÙhc@s ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZdZdZ dZ!dZ"dZ#dZ$dZ%d    Z&d
Z'd Z(d Z)d Z*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5dZ6dZ7dZ8dZ9dZ:d Z;dZ<dZ=dZ>dZ?dZ@d ZAd!ZBd ZCdZDdZEd"ZFd#ZGd$ZHdZId%ZJd&ZKdZLd'ZMd(ZNd)ZOd*ZPeQd+ƒ\ZRZSd,„ZTd-„ZUd.„ZVeWd/„ZXdd0„ZZd1d2„Z[d1d3„Z\d1d4„Z]d5„Z^d6„Z_d7„Z`d8„Zad9„Zbd:eWecd;„Zdd<„Zed1dd:ecd=„Zfd1d:d>„Zgd1d?„Zhd@„ZidA„ZjdB„ZkdC„ZldD„ZmdE„ZnddF„ZodG„Zpd:dH„ZqdI„ZrdJ„ZsdK„ZtdejudL„ZvidM„ZwidN„ZxdO„ZydP„ZzdQ„Z{dR„Z|dS„Z}dT„Z~dU„ZddV„Z€ecdW„ZecdX„Z‚dY„ZƒdZ„Z„d[„Z…d\„Z†d]„Z‡d^„Zˆd_„Z‰d`„ZŠda„Z‹d1eWdb„ZŒd1eWdc„Zdd„ZŽde„Zdf„Zdg„Z‘dh„Z’d1gddi„Z“dj„Z”dk„Z•dl„Z–dm„Z—gdn„Z˜do„Z™ggdp„Zšdq„Z›eQdrƒ\ZœZZžZŸds„Z eWdt„Z¡du„Z¢dv„Z£dw„Z¤dx„Z¥dy„Z¦dz„Z§d{„Z¨d1d|„Z©d1d}„Zªd~„Z«dd„Z¬d€„Z­d:decd„Z®d‚„Z¯dƒ„Z°d„„Z±d…„Z²d†„Z³d‡„Z´ddˆ„Zµgd‰„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 SetGameFBDatapscCs#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 GetGameFBDataqscCst|ƒ}tjd|ƒS(NtFBFunc(tGetRecordMapIDt IpyGameDataPYtGetIpyGameDataNotLog(tmapID((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetFBIpyDatass 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.pytGetFBLineIpyDatavs
  cCs,|st||ƒ}n|s"dS|jƒS(N(R<tNonetGetEnterPosInfo(R7RR;((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineEnterPosInfo~sicCs#t||ƒ}|sdS|jƒS(N(R<R=t GetStepTime(R7RR;((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineStepTimeƒscCs#t||ƒ}|sdS|jƒS(N(R<R=t GetRefreshNPC(R7RR;((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineRefreshNPC‡scCs#t||ƒ}|sdS|jƒS(N(R<R=t GetGradeInfo(R7RR;((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineGrade‹scCs#t||ƒ}|sdS|jƒS(N(R<R=t GetRewardInfo(R7RR;((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBLineRewardscCs t|ƒ}|sgS|jƒS(N(R8t GetRewardRate(R7t    fbIpyData((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBGradeRewardRateList”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˜d}|tjkr%tj||ƒStjd||ƒ}|rY|jtj|ƒ}n+tj    |tj
|t |gƒ}|r„t S||kr”t St S(NitFBGeneralTrain( tChConfigtDef_FBMapID_Maint PlayerControltIsMainLevelPassR5R6tNomalDictGetPropertytDef_Player_Dict_FBPassLineIDR+tGetDictValueByBitt"Def_Player_Dict_PlayerFBStar_MapIdtFalsetTrue(t    curPlayerR7Rt
passLineIDtipyDataR((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytIsFBPass¦s! ic    Csç|jƒ}tj|||ƒs(tjS|r¾t|ƒsntjd||ƒ|rgtj    |dƒntj
St ||||||ƒ\}    }
|    s¾|
r´tj    ||
|gƒntj Sn|rà|j ƒ} |jƒ} |jƒ} | r@| | kr@tjd||| | f|ƒ|r9tj    |d|gƒntjS| r˜| | kr˜tjd||| | f|ƒ|r‘tj    |d|gƒntjSt||||||ƒdsà|rÖtj    |d|gƒntjSntjS(Nsµ±Ç°Ê±¼ä먦·Å¸Ã¸±±¾!mapID=%st FBIsNotOpensHÍæ¼ÒµÈ¼¶²»×ã, ÎÞ·¨½øÈ븱±¾!mapID=%s,lineID=%s,curLV(%s) < lvLimitMin(%s)tFbLVsHÍæ¼ÒµÈ¼¶³¬¹ý, ÎÞ·¨½øÈ븱±¾!mapID=%s,lineID=%s,curLV(%s) > lvLimitMax(%s)itGeRen_chenxin_157069(t GetPlayerIDtFBLogictOnNeedCheckCanEnterFBCommRMtEntFBAskRet_OKROR+tLogRVt
NotifyCodetEntFBAskRet_FBCloset__CheckCanEnterFBByTimetEntFBAskRet_NoEnterCnttGetLVt GetLVLimitMint GetLVLimitMaxtEntFBAskRet_LVLimittGetFBEnterTickettEntFBAskRet_NoTicket(R^R7RRIR;t reqEnterCnttisNotifyt    isTeamAsktplayerIDtcanEntert
notifyMarktcurLVt
lvLimitMint
lvLimitMax((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytCheckCanEnterFBComm¹sF  !
           
c
Cs
|jƒ}|stdfS|jtj|ƒ}t||ƒ}|||kr[tdfStjƒj|ƒ}    |    t    j
kr‰t dfS|    t    j krç|j ƒs®t dfS| r|jƒ sÚ|jtjƒdkrt dfSn|tjkrt dfStdfS(NttGeRen_chenxin_268121itTeamSingleEnter(t GetDayTimesR]RXRTtDef_Player_Dict_EnterFbCntDaytGetEnterFBMaxCntR+tGetMaptGetMapFBTypeByMapIDt IPY_GameWorldt    fbtSingleR\tfbtTeamt GetHelpPointt    GetTeamIDt GetDictByKeytDef_PlayerKey_TeamMemCounttDef_NoLimitEnterCntMap(
R^R7RRIRtRvtmaxTimestenterCnttmaxCnttfbType((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRlës$ 
 
 
 
, 
cCsã|st||ƒ}n|jƒ}|s=tgdtgfS|jƒ}|s‚tjd||f|jƒƒtgdtgfS|jt    j
|ƒ}|t |ƒkr´|dn||}    |    |}
|
stjd||f|jƒƒtgdtgfS|j ƒj tjƒ} tj|| |
ƒ\} } }}| sÐ|jƒ}|r”| r”||}tj|tj|ƒ}t|ƒ| |
||fStjd|||||
f|jƒƒtgdtgfS| | |
|gfS(Nis#ûÓÐÅäÖÃÃÅÆ±ÏûºÄ!mapID=%s,lineID=%siÿÿÿÿsTÃÅÆ±²»×ã, ÎÞ·¨½øÈ븱±¾!mapID=%s,lineID=%s,ticketID=%s,reqEnterCnt=%s,totalCostCnt=%s(R<t GetTicketIDR]R\tGetTicketCostCntR+tErrLogReRXRTR‚tlentGetItemManagertGetPackR†trptItemt
ItemCommontGetItem_FromPack_ByID_ExExtGetTicketPriceRVt HaveMoneyExRMtTYPE_Price_Gold_Paper_MoneytbooltDebugLog(R^R7RR;RtRvtticketIDtticketCostCntListRtcostCntt totalCostCnttitemPacktenought    indexListthasBindtlackCntt ticketPricet    costMoneyt costMoneyList((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRrs6   &
 !  
     c Csèt|||d|ƒ\}}}}}|s7t|fS|rši|d6|d6|d6}    x?|D]4\}
} tj||
| tj|    ƒs_t|fSq_Wn|sªt|fS|jƒj    t
j ƒ} t j || ||tdƒt|fS(NtMapIDtLineIDt
EnterCounttFBTicket(RrR=R\RVtPayMoneyRTtDef_Cost_EnterFBR]R–R—R†R˜R™t
ReduceItem( R^R7RRtisEnoughR¦tdelCntR§R«tinfoDictt    moneyTypetmoneyNumR¤((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytDelFBEnterTicketDs'
 
cCs|j||tjƒS(N(RXRTtDef_PDictType_FB(R^tkeyt defaultValue((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBPDictValueYscCstj|||tjƒdS(N(RVtNomalDictSetPropertyRTR¹(R^Rºtvalue((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetFBPDictValueasc 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+R„tGetMapIDt    NPCCommontNPCAttr_DynNPCLVMaptGetMapCopyPlayerManagertxrangetGetPlayerCounttGetPlayerByIndexR=tIsEmptyReRnt    GetGameFBt SetGameFBDictRTtDef_FB_NPCStrengthenAverageLVtDef_FB_NPCStrengthenMaxLVRiR]( RwtisLeavetattrStrengthenInfoR7tmaxLVttotalLVt    playerCnttcopyMapPlayerManagertiR^Rzt    averageLVtgameFB((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytUpdFBLineNPCStrengthenLVes<  
 
 
     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ÌRTtDef_FB_NPCStrengthenPlayerCntRit GetNPCManagerRÇt GetNPCCountt GetNPCByIndextGetIDtGetTypeR†t ntFunctionNPCtntPettDoNPCAttrStrengthenR\R]( RwRÏRÐR7tcoefficientDicttisRefreshNPCAttrNowR×t playerCounttgameNPCManagertindextcurNPC((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytUpdFBLineNPCStrengthenPlayerCntŠs2  
      cCsA|jtj|ƒ|jtj|ƒtjd||fƒdS(s{ ÉèÖùÖÎïµôÂäÖ´ÐдÎÊýÍò·ÖÂÊ ¼° ¹Ì¶¨¼Ó³É´ÎÊýÖµ
    @param doCountRate: ´ÎÊýÍò·ÖÂÊ
    @param doCountAdd: ´ÎÊý¹Ì¶¨Öµ    
    s7ÉèÖùÖÎïµôÂäÖ´ÐдÎÊýÐÅÏ¢: doCountRate=%s, doCountAdd=%sN(RÌRTtDef_FB_DropDoCountRatetDef_FB_DropDoCountAddR+Ri(R×t doCountRatet
doCountAdd((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetNPCDropDoCountRate¬scCstjƒjtjƒdkS(Ni(R+RËtGetGameFBDictByKeyRTtMap_FBDict_PropertyMark(((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetHadSetFBPropertyMark·scCstjƒjtjƒdS(Ni(R+RËRðRTRñ(((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetFBPropertyMark½scCs!tjƒjtj|dƒdS(Ni(R+RËRÌRTRñ(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ßRTtFBPlayerDict_IsDelTicket(R^((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetHadDelTicketÖscCs&tjƒj|jƒtj|ƒdS(N(R+RËtSetPlayerGameFBDictRßRTRø(R^tdelSign((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É(R^t 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(    RTtFB_JoinType_HelpRŠR+RËRðtDef_FB_TeamPlayerCounttFB_JoinType_MultitFB_JoinType_Single(R^t 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ðRTt Def_FB_GradeRftDoFBHelptintt GetFBStepTickR•RÚRÌRŸt Sync_TimeTickR]RÆRÇRÈRÉ(Rt gradeTimeListR^ttimeTypetlowestR×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_isPasstjsontdumpsR\t    Frm_FBEndR+RŸRe(R^RRRtoverDicttoverMsg((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt NotifyFBOver+s
( cCsT|ji|t6ƒtj|dtƒ}|j|ƒtjd||jƒƒdS(NRsNotifyFBHelp: %s(    Rt Help_lineIDRR R\t
Frm_FBHelpR+RŸRe(R^RthelpDictthelpMsg((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt NotifyFBHelp3s
 cCs*tj|dtƒ}|jd|ƒdS(NRs%s(RR R\R!(R^tmsgDict((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytNotify_FB_Over?scCs0tj|dtƒ}|jdt|ƒƒdS(NRs%s(RR R\R&tstr(R^R'((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt Notify_FBHelpDscCsg}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 GetUserDatatappend(titemListt jsonItemListR titemDicttinfolen((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonItemListJs(         cCsBg}x5|jƒD]'\}}|ji|d6|d6ƒqW|S(NR¶t
moneyValue(titemsR9(t    moneyDictt    moneyListR¶R?((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonMoneyListfscCsBg}x5|jƒD]'\}}|ji|d6|d6ƒqW|S(NtNPCIDtkillCnt(R@R9(tnpcDicttkillListtnpcidRE((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonNPCKillListmscCsBg}x5|jƒD]'\}}|ji|d6|d6ƒqW|S(NRDtHPPer(R@R9(RFRGRHRJ((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetJsonNPCHPPerListtscCsë|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(NR.tIsBindR/ii(RàRTtDef_ItemType_MoneyRßR™tCheckItemIsEquipt GetJsonItemR*tg_fbPickUpItemDictR9R\R1R4tgetR]R=R+tGetMapItemManagerRÇtGetMapItemCounttGetMapItemByIndexRÊt
GetOwnerIDRe(R^tcurItemRtoverFunct mapItemTypeRwtisEquiptjsonItemtisInR tplayerItemCounttmapItemManagerRètmapItemtisItemAllPickUp((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt OnPickUpItem{sB  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•ttagMCDynamicBarriertAPosXtAPosYtBPosXtBPosYtAngleR9R/t NetPackCommont SendFakePackR+RÆtrangeRÈRÉ( tbarrierPointListtstateR^tbarrierStatePacktposInfotaPosXtaPosYtbPosXtbPosYtangletbarriert 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
SetVisibleR]R\(    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=R”R|R,R}RÄR~RR€R]R\(RR‚RƒRçR„RéR…R((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 InitBillBoardscCsX|jƒ}|jƒ}tjƒj|ƒ}|j|ƒ|j|ƒ|jdƒdS(Ni(RetGetNameR+RËtGetFbBillBoardPlayert SetPlayerIDt SetPlayerNametSetPoint(R^t 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ËRRetmintGetPointRÚR(R^R‚R¾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ËRRet
SetCountry(R^tcountryR“((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetCountryBillBoard:s cCs%tjƒj|jƒƒ}|jƒS(N(R+RËRReR–(R^R“((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetPlayerBillBoardPointDscCs%tjƒj|jƒƒ}|jƒS(N(R+RËRRetGetBillboardIndex(R^R“((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetPlayerIndex_InBillBoardLscCs'tjƒ}|jƒ|j|ƒdS(N(R+RËtSortFbBillBoardPlayerR‰(RŠR×((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytNotifyBillBoardTs 
 cCsPtjƒ}|j|ƒ|j|ƒtjd||ftjƒjƒƒdS(NsSetFBStep %s, tick=%s(R+RËt    SetFBStept SetFBStepTickRiR,t GetPropertyID(RRR×((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR¡as
   &cCsatjƒ}xNt|jƒƒD]:}|j|ƒ}|jƒsFqn|j|||ƒqWdS(N(R+RÆRnRÈRÉRetSync_FbSystemMessage(tkeepTimetmsgTypetmsgRýRÕR^((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR¤ns  cCsgtjƒ}xTtd|jƒƒD]=}|j|ƒ}|jƒsIq"n|j||||ƒq"WdS(Ni(R+RÆRnRÈRÉReR(R¦tmsgTickR„t
isContinueRýRèR^((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ðRTtMap_FBDict_PrevFBTimeTypeR]R\RiRÌRÆRnRÈRÉReR(    R¦R¨t isSendPrevMsgR„R©t prevMsgTypeRýRèR^((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,R]RntGetGameWorldCounttGetGameFBByFbIndext GetFamilyVSt GetFamilyIDt GetVSFamilyIDR\tGetOpenStateByFbIndexR†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,RnR¯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†RˆRiR,RnR¯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ŠR]tGetCloseFBTickR\t    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ÞR{tGetGameNPCObjTypeR†tgnotPetRQRÄtSyncNPCCntInfoRÆRÈRÉRß(
R7t    npcIDListR^t
npcCntDictRçRèRéR„Rý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ÜRnRÝRÞRßRÓR†RÔR9(t gameNPCListRçRèRé((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetMapNPCListOs 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ÜRnRÝRÞRßtGameObjtGetHPRÓR†RÔt
gnotSummont GetObjDetailR=tGetOwnertGetGameObjTypet    gotPlayerR9(t findNPCListRçRèRét curNPCDetailt curNPCOwner((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetMapSystemNPCListfs" '  !    cCsdtjƒ}xQtd|jƒƒD]:}|j|ƒ}|jƒdkrOq"ntj|ƒq"WdS(Ni(R+RÆRnRÈRÉRßRVt PlayerLeaveFB(RýRÕR^((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átgotNPCR9(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éR„((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ËRTtMap_NPC_RandomMapNPCIDtMap_NPC_RandomMapNPCNeedCnttMap_NPC_RandomMapNPCPerMaxCntRÌ(t refreshMarkR„tneedRefreshCntt    perMaxCntR×tnpcIDKeyt
needCntKeyt perMaxCntKey((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetRandomRefreshMapNPCs    icCstjƒ}|jtj||ƒ|jtj||ƒ|jtj||ƒ|jtj|dƒ|jtj|dƒ|jtj    ||ƒ|jtj
|dƒ|jtj |dƒ|jtj |dƒ|jtj |dƒ|rt||d|ƒndS(Ni(R+RËRÌRTtMap_TDNPC_RefreshFileNumtMap_TDNPC_RefreshSignKeytMap_TDNPC_RefreshStartTicktMap_TDNPC_RefreshBigWheelNumtMap_TDNPC_RefreshSmallWheelNumtMap_TDNPC_CurWheelStartTicktMap_TDNPC_CurWheelIsOvertMap_TDNPC_AllWheelIsOvertMap_TDNPC_NPCCnttMap_TDNPC_NPCBossCntt__TDStartRefreshNotify(trMarktfileNumtsignRRuR×((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ÌRTRûRüRýRþRÿRRRR(Rt
isResetNPCR×((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytCloseTDNPCRefresh6s cCs;tjƒ}x(|D] }|jtj|ƒstSqWtS(N(R+RËRðRTRR\R](t    rMarkListR×R((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytIsTDNPCRefreshOverIs
  cCs;tjƒ}x(|D] }|jtj|ƒstSqWtS(N(R+RËRðRTRR\R](R R×R((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytIsTDWheelRefreshOverTs
  cCsdtjƒ}xQ|D]I}|jtj|ƒ}|jtj|ƒ}|dksX| rtSqWtS(Ni(R+RËRðRTRRR\R](R R×RRïtcurWheelIsOver((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytIsTDNPCCurWheelAllKilled\s  c
Cs»tjƒ}|jtj|ƒ}|jtj|ƒ}|jtj|ƒ}|dkr^tStj    d|ƒ}|t
|ƒkr‡tS||}|t }||}    |dkoº|    |kS(Nis    TD_%s_Cfg( R+RËRðRTRýRþRûR\RÁRÂR•tDef_TDCfg_NextWheelTime(
RRR×t    startTickt curWheelNumRtrefreshCfgListt wheelInfoListtforceNextWheelTimetpassTick((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytCheckForceEnterNextWheelks  
 
 
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ðRTRþRÌRÿRRRûRüRRŸ(RRRuR×Rt nextWheelNumRtsignKey((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytSetEnterTDNextWheel‚s 
c
Cs½|dkrdStjd|ƒ}|j|gƒ}|t|ƒkrKdS||ddd}tjd|ƒ}|t|ƒkr¹||}|t}    |    r¹tj|    |gƒq¹ndS(Nis TD_%s_NPCIDs    TD_%s_Cfg(RÁRÂRQR•tDef_TDCfg_NotifyMarkRVtFBNotify(
R×RtwheelNumRtrefreshNPCDicttrefreshNPCListRHRRRy((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ËR‹RTtDef_NPC_Dict_FromRefreshMarkRRðt
IsGameBossRÚRÌRRŸ(
RéR¾R×RtcurMarkNPCBossCntKeytbossCnttisBosstcurMarkNPCCntKeyRï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ðRTRþRûRÁRÂR•RtDef_TDCfg_PrepareTimeRRÚRýR=RªRR](R^RR¦RtmsgIDR×RRRRt 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ÂRQ(    RRt npcCountDictRR t wheelNPCListtsmallWhellNPCInfoR„tnpcCount((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetTDCfgNPCCntInfoés  &c Cs”t|ƒ}|sdS|jƒ}d}d}|jtj|ƒ}|jtj|ƒ}d}tj||ƒ}    |||||||    }
|
S(Ni(R8RRXRTtDef_Player_Dict_BuyFbCntDaytDef_Player_Dict_ItemAddFbCnttPlayerGoldInvestt GetAddFBCnt( R^R7RIRŽtmwAddCnttextraCnttbuyCntt
itemAddCntt regainFbCntt investFBCntR((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRƒôs  cCsBt|ƒ}|jtj|ƒ}|dkr>tj||ƒS|S(Ni(R4RXRTR‚R+tGetDataByDigitPlace(R^tfbIDtlineBitR((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetEnterFBCounts
  cCsmt|ƒ}|jtj|ƒ}tj|tj|||ƒt||ƒtj|d|||gƒdS(NtAddActivityCount_1(R4RXRTR6RVR½tSync_FBPlayerFBInfoDataRj(R^titemIDR7taddCntR<((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytAddFBCntByItems   cCs–|}|rdn|}t|ƒ}tj|}|j|ƒ}|dkrœtj||ƒ}td||ƒ}    tj|||    ƒ}
tj    |||
ƒn~t
||ƒ} || kr»t St| ||ƒ} | |}tj    ||| ƒt j ||| |ƒtj|||ƒ| }
tj|} t|j| ƒ|tjƒ}tj    || |ƒtjd|||||
|f|jƒƒt||ƒtS(Nii    s^    AddEnterFBCount fbID=%s, addCount=%s, lineBit=%s, enterCnt=%s,updValue=%s,enterCntTotal=%s(R4RTR‚RXR+R?R•tChangeDataByDigitPlaceRVR½RƒR\tPlayerActivitytOnEnterFBActivityt PlayerSuccesstAddEnterFBSuccesstDef_Player_Dict_EnterFbCntTotaltDef_UpperLimit_DWordRŸReRDR](R^R@taddCountRAtisFreet
addCountExt enterCntKeyRtcurLineEnterCntt updEnterCnttupdValueRR'tenterCntTotalKeyt enterCntTotal((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytAddEnterFBCounts4    
     # c    CsÓg}tjƒ}x¤t|jƒƒD]}|j|ƒ}|jƒ}|jƒ}|s^q%n|jƒ|krvq%ntj    |}|j
|ƒr%t j ||dƒ|j |ƒq%q%W|rÏt||ƒndS(Ni(R5tIPY_DataRÇtGetFBFuncCounttGetFBFuncByIndext GetDataMapIDt GetWeekTimestGetWeekResetTypeRTtDef_Player_Dict_EnterFbCntWeekRXRVR½R9RD(    R^t
onWeekTypet    mapIDInfot
ipyDataMgrRÕR`R7t    weekTimestenterCntWeekKey((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytFBOnWeek<s"    c Cs»tjd|jƒƒtj||ƒg}tjƒ}xYt|jƒƒD]E}|j    |ƒ}|j
ƒ}|j ƒ}| r¬|j ƒ r¬|j ƒ r¬|jƒ r¬qKn|jƒ|krÄqKnt||ƒ}tj|}    |j|    ƒ}
tj||    dƒtj|} |j| ƒ} tj|| dƒtj|} |j| ƒ}tj|| dƒtjd||| |||
fƒ|j|ƒqKW|r·t||ƒt||ƒndS(Ns¸±±¾¹ýÌì´¦Àí,FBOnDay...isK    ÖØÖÃ:mapID=%s,dayTimes=%s,buyCnt=%s,itemAddCnt=%s,maxCnt=%s,enterCnt=%s(R+RiReRftOnFBPlayerOnDayR5RYRÇRZR[R\RtGetBuyTimesVIPPriIDtGetExtraTimesVIPPriIDtGetExtraTimesMWPriIDtGetDayResetTypeRƒRTR‚RXRVR½R5R6RŸR9RDtSync_FBPlayerFBBuyCount(R^t    onDayTypeRaRbRÕR`R7tdayTimesRRRRt    buyCntKeyR;t itemAddCntKeyR<((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytFBOnDayYs:   .        cCs%tj|ƒt|ƒt|ƒdS(N(RftOnFBPlayerOnLoginRDRk(R^((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt    FBOnLoginŽs 
 
c    Cstjƒj|ƒ}|j}|tjkrVtj|ƒ}|sVtjdƒdSnt    |ƒ}|sldSd}|t
j ||ƒ7}tjd||fƒ|dkrÀtjd|ƒdS|j tj |ƒ}|jƒ}    t||ƒ}
t||ƒ} |tjkr6|    r6|
| |    kr6tjdƒdS||kr`tjd|||fƒdStjddiƒ} | jt|ƒd    ƒ} t| ƒ} tjdd
iƒ}|jt|ƒtjƒ}| dkrótjd ||| fƒdStj||| ƒ}|sdSi|d 6}xG|D]?\}}tj|||tj|ƒs&tjd | ƒdSq&Wtj|tj ||dƒt||gƒtj|d|gƒ|tjkrtj|ƒ}|rtjddƒ}|jƒg}tj d|g||ƒqndS(NsûÓаéÂÂÎÞ·¨¹ºÂòÇéÔµ¸±±¾´ÎÊý!is'¹ºÂò¸±±¾½øÈë´ÎÊý: mapID=%s,canBuyCnt=%ssmapID:%s ²»¿ÉÒÔ¹ºÂò½øÈë´ÎÊýsµ±Ç°´ÎÊýÒÑÂú£¬ÎÞÐ蹺Âò¡£¡£s5¹ºÂò´ÎÊýÒѾ­ÓÃÍêmapID=%s,hasBuyCnt=%s >= canBuyCnt=%st BuyFBCntCostit0is@ûÓÐÅäÖùºÂò¸±±¾´ÎÊýÏûºÄ»õ±ÒÊý! mapID=%s,costType=%s,costGold=%sR¬sÏÉÓñ²»×ã!costGold=%stFBEnterTimeBuytLoveFBitBuyLoveFBCntCoupleMail(!R+tGetPlayerManagerRÉtFBIDRTtDef_FBMapID_LoveRVt GetCoupleIDRŸR8R7tGetAddFBBuyCntRXR5RRƒRBtDef_FBMapID_SealDemonR5tGetFuncEvalCfgRQR,tevalRMRRœR°tDef_Cost_BuyFBCntR½RkRjt GetPlayerNamet SendMailByKey(t playerIndext
clientDataRR^R7tcoupleIDR`t    canBuyCntt    hasBuyCntt maxDayTimesRRt costGoldDicttcostGoldtcostMoneyTypeInfotcostTypeR«RµR¶R·t addItemListt    paramList((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytBuyFBEnterCountœsh        %     cCsØtjdƒ}|s§i}i}tjƒ}x±t|jƒƒD]}|j|ƒ}|jƒ}|jƒ}|j|gƒ}    ||    kr¥|    j    |ƒ|    ||<n|j|gƒ}
||
kr@|
j    |ƒ|
||<q@q@Wg} x<|j
ƒD].\}}
t |
ƒdkrô| j    |ƒqôqôWxi|j
ƒD][\}}    x*| D]"} | |    krF|    j | ƒqFqFWt |    ƒdkr3|j |ƒq3q3Wtjd|ƒ}nx*|j
ƒD]\} }||kr´| Sq´W|S(Nt DataMapIDDicti(R5t GetConfigExRYRÇtGetFBLineCounttGetFBLineByIndexR\RÃRQR9R@R•tremovetpopt SetConfigEx(R7RtmIDToDataMapIDDictt
dMapIDDictRbRÕR`tdMapIDtmIDtmIDListtdMIDListt    unMIDListtunMIDRt    mapIDList((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyR4Ús@           cCs”tjdƒ}|sg}tjƒ}xQt|jƒƒD]=}|j|ƒ}|jƒ}||kr:|j|ƒq:q:Wtjd|ƒ}n|S(NtGeneralTrainMapIDList(    R5R‘RYRÇtGetFBGeneralTrainCounttGetFBGeneralTrainByIndexR\R9R–(R RbRÕR`R™((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pytGetGeneralTrainMapIDLists   c
CsÍ|sItjƒ}gt|jƒƒD]}|j|ƒjƒ^q%}n=t|ƒttgkredSt|ƒtkr€|gn|}t    j
ƒ}|j ƒt |ƒ|_ g|_x|D]ú}t    jƒ}|j ƒ||_|jtj|ƒ|_|jtj|ƒ|_d|_|jtj|ƒ|_|jtj|ƒ|_xCttjƒD]2}|jtj||fƒ}    |jj |    ƒq]Wt |jƒ|_!|jj |ƒq»Wt"j#||ƒdS(Ni($R5RYRÇRZR[R\R‚R R2RattagMCPlayerFBInfoDataRcR•t    FBDataCntt
FBDataListt tagMCFBInfoRyRXRTR‚tEnterCntRMt EnterCntTotalt
RecoverCntR6t
ItemAddCntRYt
PassLineIDRntDef_FBStar_MaxKeyCntR[t    PassGradeR9t PassGradeCntRlRm(
R^RaRbRÕRŸt
fbInfoDataRštmapInfotkeyNumt
gradeValue((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRDs4 7! 
      
        cCs|slg}tjƒ}xQt|jƒƒD]:}|j|ƒ}|jƒsRq+n|j|jƒƒq+Wntj    ƒ}|j
ƒg|_ xV|D]N}tj ƒ}|j
ƒ||_ |jtj|ƒ|_|j j|ƒq’Wt|j ƒ|_|jdkrtj||ƒndS(Ni(R5RYRÇRZR[RgR9R\RattagMCBuyEnterInfoRctFBInfot tagMCBuyInfoRyRXRTR5tBuyCountR•tFBCountRlRm(R^RŸRbRÕR`R°RšR±((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyRkJs*   
      
    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ÇR9trandomtshufflet    enumeratetextend( RÓtgroupCntt    groupListRÕtsetpttmpListtgttmpGrouptaIndextbIndextgitgroup((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt GetGroupListls&
 
   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†RVR™tGameMapRÄRÁt    BuffSkillRaRlt SkillCommonR5tPlayerFBRMt EventReportt PlayerFamilyRIt ItemControlerRKt GameFuncCommR*RÛRfRTR7tdatetimeR¹RtmathttimetcopyR·R¶R¹R¸R%t    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_gsItemInfoRRRt 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_isAssistRntDef_FbActionEncouragetDef_FbActionChangeLineR0R2R8R]R<R=R?RARCRERGRJRORRRaR\R}RlRrR¸R¼R¿RØRêRïRòRóRöRùRüRþRR
t tttFlagTakeRR$R)R+R-R>RCRIRKR`RzR†RˆR‹R”R˜R›RœRžR R¡R¤RªR®RÀRÁRÄRÉRÒRØRÚRåRçRéRìRîRðRúRR)tDef_TDCfg_SmallWheelSpaceRR    R R RRRRRR(R/R4RƒRBRGRXReRpRrRR4R£RDRkRÇRÈRÉ(((syD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\FBCommon.pyt<module>s`                                                                    2    1(         %    "                                1                              + % % "                
                          %                !        %                                                         "                  5        >    '     5 "