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
f“m[c@sñddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZd„Z d„Z!d„Z"d„Z#d„Z$d„Z%d„Z&d    „Z'd
„Z(d „Z)d „Z*e+d „Z,d„Z-d„Z.d„Z/d„Z0d„Z1d„Z2d„Z3d„Z4d„Z5d„Z6d„Z7d„Z8d„Z9d„Z:ej;d„Z<dd„Z=d„Z>d „Z?d!dd"„Z@d#„ZAd$„ZBd%„ZCd&„ZDd'„ZEd(„ZFd)„ZGd*„ZHd+„ZId,„ZJd-„ZKd.„ZLd/„ZMd0„ZNd1„ZOd2„ZPd3„ZQd4„ZRd5„ZSd6„ZTd7„ZUd8„ZVd9„ZWd:„ZXd;„ZYd<„ZZd=„Z[d>„Z\d?„Z]d@„Z^dA„Z_dB„Z`dC„ZadD„ZbdE„ZcdF„ZddS(GiÿÿÿÿNcCsEtjdƒtj|ƒtjƒj|ƒt|ƒtjƒdS(NsGameServer -> OnHour!(    t    GameWorldtLogtPlayerEventCountertDoLogic_GameServer_OnHourt GetGameWorldtOnHourt__SetWorldKey_SavePlayert GameLogInfotSet_Server_Hour(t
curTimeStrttick((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRws   
 
cCsètjdƒtjƒtj|ƒtjtjƒ}tj    t
j |ƒtjtj ƒ}tjtj ƒ}tj    t
j|ƒtj    t
j|ƒtjƒj|ƒtjƒtjƒtjƒtjƒddl}|jƒdS(NsGameServer -> OnDay!iÿÿÿÿ(RRtPlayerBillboardtCopyBillboardOnDayRtDoLogic_GameServer_OnDaytPlayerDBGSEventtGetDBGSTrig_ByKeyt Def_ServerDaytSendMapServerMsgExt ShareDefinetDef_Notify_WorldKey_ServerDaytDef_IsMixServertDef_MixServerDaytDef_Notify_WorldKey_IsMixServert Def_Notify_WorldKey_MixServerDayRtOnDayRtSet_Server_DaytNoteOssBillboardInfoByDaytPlayerFamilyRedPackettDoOnDaytPlayerCompensationtClearUpTimeOutCompensationt PlayerBoursetOverTimeItemsDeal(R    R
t openServerDayt isMixServert mixServerDayR((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRŠs" 
 
 
 
 
 
cCs/tjdƒtj|ƒtƒtjƒdS(NsGameServer -> OnDayEx!(RRRtDoLogic_GameServer_OnDayExt__Set_Server_DayExt
PlayerXMZZt XMZZOndayEx(R
((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytOnDayEx®s
 
cCs;tjdƒtjƒtj|ƒtjƒj|ƒdS(NsGameServer -> OnWeek!(RRRtSet_Server_WeekRtDoLogic_GameServer_OnWeekRtOnWeek(R    R
((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR+½s
 
 cCs%tjdƒtj|ƒtƒdS(NsGameServer -> OnWeekEx!(RRRtDoLogic_GameServer_OnWeekExt__Set_Server_WeekEx(R
((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytOnWeekExÆs  cCs;tjdƒtj|ƒtjƒj|ƒtjƒdS(NsGameServer -> OnMonth!(RRRtDoLogic_GameServer_OnMonthRtOnMonthRtSet_Server_Month(R    R
((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR0Òs
 
cCs%tjdƒtj|ƒtƒdS(NsGameServer -> OnMonthEx!(RRRtDoLogic_GameServer_OnMonthExt__Set_Server_MonthEx(R
((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyt    OnMonthExÚs  cCs;tjdƒtj|ƒtjƒj|ƒtjƒdS(NsGameServer -> OnYear!(RRRtDoLogic_GameServer_OnYearRtOnYearRtSet_Server_Year(R    R
((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR6æs
 
cCsÄy't|jƒdjdƒdƒ}Wn+tk
rT}tjd||fƒdSXtjƒ}|dkr˜|jtjƒsÀ|j    tjdƒqÀn(|jtjƒrÀ|j    tjdƒndS(Nis:is!###»ñÈ¡Íæ¼Ò´¢´æ×ÖµäÒì³£ = %s , %si(
tinttsplitt BaseExceptionRRRt GetDictByKeytChConfigtDef_WorldKey_SavePlayertSetDict(R    ttimeStrtet    gameWorld((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRös'  cCstjtƒ|ƒdS(N(Rt GetPsycoFunct__Func_HighPrecisionProcess(R
((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytHighPrecisionProcessscCs tjƒjtjƒsdStj|ƒtj|ƒt    j
|ƒt    j |ƒt j |ƒtj|ƒtj|ƒtjjƒ}|j}|j}|d}tjƒjtjƒ}||krïtjƒjtj|ƒt||ƒn|ddkr    tƒndS(Nii
i(RRR;R<tDef_WorldKey_IsGameWorldInittPlayerFamilyPartytFamilyParty_Processt PlayerFamilytOnLeaderImpeachTickt GameWorldBosstDoCheckWorldBossReborntProcessBossGeTuit PlayerGeTuitProcessNewGuyCallBackGeTuit
PlayerTeamt DoTeamProcesst PlayerDBOpert PyDBProccesstdatetimettodaytminutetsecondtDef_WorldKey_ProcessMinuteR>tGameWorldProcessOnMinutetSendMapCommMapLinePlayerCount(R
t curDateTimet    curMinutet    curSecondt processMinutetlastProcessMinute((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRCs(                   
 
cCsR| rtj rdStjd|tjfƒtjtjtjƒtt_dS(NsO֪ͨ³£¹æµØÍ¼Íæ¼ÒÈËÊýÐÅÏ¢: isForce=%s,PyGameData.g_commMapLinePlayerCountDict=%s(    t
PyGameDatat g_needSyncCommMapLinePlayerCountRtDebugLogtg_commMapLinePlayerCountDicttSendCommMapServerMsgRt*Def_Notify_WorldKey_CommMapLinePlayerCounttFalse(tisForce((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRYDs        cCsjt|ƒt|ƒtjƒtjƒtjƒtjƒtj    |ƒ|ddkrft
j ƒndS(Nii( tDoCheckNewServerOpentDisposeGameWorldEvenByTimetGameWorldActionControltDispose_OperationActionStatetDispose_DailyActionStatetDispose_FBStateTimetGameWorldAverageLvtOpenWorldAverageLvROtDoCountdownLeaveTeamLogicRHtUpdFamilyTotalFightPower(R[R
((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRXQs
 
 
 
 
 
  cCstjtƒ|ƒdS(N(RRBt__Func_OnGameWorldProcess(R
((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytOnGameWorldProcessmscCsut|ƒt|ƒt|ƒt|ƒt|ƒt|ƒt|ƒt|ƒt|ƒt    j
ƒt j |ƒdS(N( tDisposeGameWorldEvenByTrucktDisposeGameWorldBroadcasttDisposeGameWorldGametDisposeGameActivePlayertDispose_MapServer_TimetDispose_MapServer_PlayerSavetDisposeMapServerRunningStatetDispose_DataBase_GMShelltDispose_SendMsg_RouteServert EventReporttOnTimeCloseScribeTxtRJtCalcGameWorldBossOnlineCnt(R
((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRqus
 
 
 
 
 
 
 
 
 
 cCsstjƒ}|jtjƒ}|dkr.dS||tjtjkrLdS|jtj|ƒtjƒjƒdS(Niÿÿÿÿ(RRt GetTickByTypeR<tTYPE_SendMsg_RouteServertTYPE_Tick_Timet SetTickByTypet SendHeartBeat(R
RAtlastTick((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR{s  cCs¹tjƒ}||jtjƒtjtjkr6dS|jtj|ƒ|jƒ}|jƒ|j    ƒ}|sudSx3t
d|ƒD]"}|j |ƒ}t j |ƒq…W|jƒdS(Ni(RRRR<tTYPE_ReadDateBaseGMRR‚tGetDBGMCommandListManagertDataServer_GMCommandReqtGetCounttrangetGetAttGMShelltDoLogic_DBGMCommontClear(R
RAtdBGMCommandListManagertdBGMCommandListCounttitgmCommon((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRzµs & 
 
cCs`tjƒ}||jtjƒtjtjkr6dS|jtj|ƒ|jtjƒƒdS(N(    RRRR<tTYPE_SendTimeToMapServerRR‚t
OnTimeSynctGetCurrentDataTimeStr(R
RA((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRwÔs  &cCsWtjƒ}||jtjƒtjtjkr6dS|jtj|ƒ|jƒdS(N(RRRR<tTYPE_SendServerStateRR‚tDataServer_ServerStateReport(R
RA((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytDisposeServerStateås  &
cCsútjƒjtjƒdkr"dStjjƒjdkr>dStjƒ}g}x6t    |j
ƒƒD]"}|j |ƒ}|j |ƒqcW|j dtƒxAt    dt|ƒƒD]*}|dkrÅPn||}|jƒq¯WtjƒjtjdƒdS(Nii2tkeyii(RRR;R<R=RSRTRUtGetPlayerManagerR‰tGetActivePlayerCounttGetActivePlayerAttappendtsorttGetKeytlentMapServer_PlayerSaveR>(R
t playerManagert curPlayerListRt    curPlayer((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRxös"  
cCs
|jƒS(N(tGetLV(R£((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRžsc    Cs1tjjƒjddkr dSi}d}tjƒ}|jƒ}xt|ƒD]‚}|j|ƒ}|dksQ|j    ƒ r…qQnt
j |ƒr¤|d7}qQntj |j ƒƒ}|j|dƒd||<qQWx@|jƒD]2\}}tj|||ƒtj|d|ƒqäWtj|i|ƒdS(Niii(RSRTRURR™RštxrangeR›tNonet    GetInitOKt PlayerControltGetIsTJGtGetPlayerPlatformtGetAccIDtgettitemstDataRecordPacktDR_OnLinePlayerCountR|tWriteEvent_concurrency(    R
tplatformOLDictt tjgOnlineCntR¡tactivePlayerCounttindextplayertplatformt    playerCnt((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRv!s(  
c Csµtjƒ}g}tjjƒ}x7t|jƒƒD]#}|j|ƒ}|jƒ}tj|j    ƒƒ}tj|j
ƒƒ}| s| rº|j |ƒtj d|||fƒq4n|j ƒs;||kr;||kr;|jtƒ|jƒ}    t|||    ƒtj|ƒ}
|
dkr8tjd|
ƒq8q;n||kr4|j |ƒq4q4WxS|D]K} t| ƒ|j| ƒtj| ƒ}
|
dkrbtjd|
ƒqbqbWdS(Ns%###---»î¶¯ÉèÖÃʱ¼äÒì³£ , %s , %s , %sti(RtGetGameWorldEventManagerRSRTR‰tGetActiveEventCounttGetActiveEventByIndext
GetEventIDtGetDateTimeByStrt
GetEndTimet GetStartTimeRœRtGetIsProcessingtSetIsProcessingtTruetGetPart__NotifyMapServerProcesstGMCommontGetGameServer_GM_GameOpen_MsgR¨t WorldNotifytDoLogic_ProcessEvent_ClosetDelActiveEventtGetGameServer_GM_GameClose_Msg( R
t eventManagertdelListt todayDateTimeR´teventteventIDt eventEndTimeteventStartTimeteventPartsysMsgt
delEventID((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRu}s:         
  cCsŒ|tjkr%ttt|ƒƒnc|tjkrJttt|ƒƒn>|tjkr~t|ƒ\}}t    t||ƒn
|j
ƒdS(N( R<tDef_GY_GM_Game_DoubleExpt__DisposeWorldExpEventRÂR8tDef_GY_GM_Game_DropRatet__DisposeWorldDropRateEventtDef_GY_GM_Game_Broadcastt__GetBroseCastStrt__DisposeBroadcastEventtNotify_AllMapServerProcess(RÎRÏRÒtintervaltmsg((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRijs
cCsX|tjkrttƒn8|tjkr8ttƒn|tjkrTttƒndS(N(R<RÕRÖReR×RØRÙRÛ(RÏ((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRÈÉs   cCs7|jdƒ}t|| ƒ}||d}||fS(Ns:i(tfindR8(RÒR´RÝRÞ((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRÚÛscCs3tjƒ}|r"|j|ƒn |j|ƒdS(N(RRt
SetExpRate(tisOpentexpRateRA((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRÖæs
  icCs3|rtd|tjƒ}nd}t|ƒdS(Ni(tmaxR<tDef_MaxRateValuetSetWorldDropRateAdd(RáRâtworldDropRateAdd((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRØôs
 
cCsdS(N((Ræ((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRåÿscCsat|ƒ}|s |jƒdStjƒ}x!|D]}|jt|ƒƒq3W|j|ƒdS(N(tevalRÜtIPY_GameServert    IntVectort    push_backR8tNotify_SelectMapServerProcess(RÎt    mapIDListtvectortmapID((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyt__DisposeMapGiveExps 
   R¸cCsZtjƒ}|r/|j|ƒ|j|ƒn'|j|ƒ|jdƒ|jdƒdS(Ni(RRtSetBroadcastMsgtSetBroadcastIntervaltSetBroadcastTick(Rát broadcastMsgt broadcastTickRA((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRÛ's     cCs¬tjƒ}|jtjƒ}|s(dS|jƒs8dStjƒ}|jƒ}|dkr`dS||jƒ|j    ƒddkrˆdStj
ƒj |ƒ|j |ƒdS(NR¸i<iè( RR¹tFindActiveEventR<RÙRÀRtGetBroadcastMsgtGetBroadcastTicktGetBroadcastIntervalR™t BroadcastInfoRò(R
RËt
broadEventRARó((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRt?s     $ c    Csòg}tjƒ}x6t|jƒƒD]"}|j|ƒ}|j|ƒq%W|sUdStjdƒd}tt    j    ƒƒ}|t
j d}x`|D]X}||j ƒ|kr´q’ntj d|jƒ|j ƒ||fƒtj|ƒq’WdS(Nt    TruckTimei<iès@ÔËïÚʱ¼ä³¬Ê±: %d disappear! startTime=%d,curTime=%s,truckTime=%s(RtGetTruckManangerR‰t GetTruckCounttGetTruckByIndexRœt ReadChConfigtGetEvalChConfigR8ttimeR<tDef_PlayerTruckLogoffTickt GetLogoffTickRt
GetOwnerIDt PlayerTrucktDelTruck(    R
tworldTruck_Listt truckManangerR´ttruckt    truckTimetcurTimet disappearTimetcurTruck((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRsqs"       cCst|ƒdS(N(tDoLogic_GameWorldEvenByTime(R
((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRhªs
c    Cs²tjƒjtjƒ}|dkr(dStjƒ}tjjƒ}|j}|j    }tjj
|ƒd}|j }|j }t jƒ\}    }
} } } |    |ksÈ|
|ksÈ| |ksÈ| |krØt||ƒn|
|ksü| |ksü| |kr t||ƒntƒr"t|ƒn| |kr>t||ƒntƒrTt|ƒn| |ksl| |kr|t||ƒntƒr’t|ƒn| |kr®t||ƒndS(Niÿÿÿÿi(RRRR<tTYPE_EvenByTimeR”RSRTthourtdayt isocalendartmonthtyearRtInitServerTimeRRt__Get_Can_OnDayExR(R+t__Get_Can_OnWeekExR.R0t__Get_Can_OnMonthExR4R6(R
R„R    R t curTimeHourt
curTimeDayt curTimeWeekt curTimeMontht curTimeYeart
serverHourt    serverDayt
serverWeekt serverMontht
serverYear((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR´s8                  0$                 c    Csºtjƒ}tjtjƒ}|r¶|d}|dd}|d}tj|||dddƒ}||}|j}|j}|dkrdS|dkr¶|tj    dkr¶dSndS(s5ÅжϿɷñÁ賿Xµã¹ýÌì
    @return: 0-²»¿É£» 1-¿ÉÒÔ
    i'idiii(
Rt GetServerTimeRRtDef_Server_DayExRStdaystsecondsRtDef_OnEventHour(    RZt lastOndayExtlastOndayEx_YeartlastOndayEx_MonthtlastOndayEx_Dayt lastDatetimetpassTimetpassDayst passSeconds((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRís 
 
 
         cCs‘tjƒ}|jtjkr7|tjddƒ}n|jd|jd|j    }t
j t
j |ƒtj tj|ƒtjd|ƒdS(NR%ii'ids!Set_Server_DayEx, OnDayExValue=%s(RR#RRR'RSt    timedeltaRRRRtSetDBGSTrig_ByKeyR$RtDef_Notify_WorldKey_OnDayExR(t onDayDateTimet ondayExValue((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR%s c Csítjƒ}tjj|ƒ}|\}}}tjtjƒ}|ré|d}|d}||kru||krudS|dkré|tjddƒ}tjj|ƒ\}    }
} |    |kræ|
|kræ|jt    j
krãdSqæqéndS(s5ÅжϿɷñÁ賿Xµã¹ýÖÜ
    @return: 0-²»¿É£» 1-¿ÉÒÔ
    idiiR%i( RR#RSRRRtDef_Server_WeekExR0RRR'( RZRt dateTime_yeart dateTime_weekt dateTime_dayt lastOnWeekExtlastOnWeekEx_YeartlastOnWeekEx_WeektpreWeekDateTimet preWeek_yeart preWeek_weekt preWeek_day((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR!s$ 
 
 cCsÈtjƒ}tjj|ƒ}|\}}}|dkr|jtjkr|tjddƒ}tjj|ƒ\}}}n|d|}tj    tj
|ƒtj tj |ƒtj d|ƒdS(NiR%iids#Set_Server_WeekEx, OnWeekExValue=%s(RR#RSRRRR'R0RR1R5RtDef_Notify_WorldKey_OnWeekExR(tonWeekDateTimeRR6R7R8t onWeekExValue((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR-Ms c    Csîtjƒ}|j}|j}|j}tjtjƒ}|rê|d}|d}||kro||krodS|dkrê|dkrdn|d}|dkr©|n|d}||krç||krç|jt    j
krädSqçqêndS(s5ÅжϿɷñÁ賿Xµã¹ýÔÂ
    @return: 0-²»¿É£» 1-¿ÉÒÔ
    idiii ( RR#RRRRRtDef_Server_MonthExRRR'(    RZR8tdateTime_monthR6t lastOnMonthExtlastOnMonthEx_YeartlastOnMonthEx_MonthtpreMonth_montht preMonth_year((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR]s&             
 
 cCsÖtjƒ}|j}|j}|j}|dkr|jtjkr|dkrWdn|d}|dkrs|n|d}tjdƒn|d|}t    j
t    j |ƒtj tj |ƒtjd|ƒdS(Nii sWSetMonthEx ÔÂ1ºÅÌØÊâXµã֮ǰ¹ýÌìµÄ£¬´ú±íÔ²î´óÓÚ1µÄÔÂ1ºÅ¹ýÔ£¬ÕâʱºòµÄ¹ýÔÂÖµÐèÉèÖÃΪÉÏÔÂids%Set_Server_MonthEx, onMonthExValue=%s(RR#RRRRRR'RRR1RCRtDef_Notify_WorldKey_OnMonthEx(tonMonthDateTimeR8RDR6tonMonthExValue((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR3‹s             cCs7tjƒtjƒjtjƒtjƒjt    ƒdS(N(
R tInitServerBillboardRtGetTeamManagertSetMaxTeamMemberCountR<tDef_Team_MaxPlayerCountRt SetPreInitOKRÂ(R
((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytPreInitGameWorld¡s
cCsìtjƒjtjdƒtjƒjtjƒtjƒjtj    ƒtjƒj
ƒj ƒt j ƒt jƒtjƒtjƒtjƒtjƒtjtjƒ}|dkr×tjtjttjƒƒƒntƒtjƒdS(Nii(RRR>R<REtSetTickTypeCounttTYPE_Tick_CounttGetFamilyManagertSetFamilyUpperLimitCounttDef_Family_MaxCnttGetDBGoldOrderFormMgrtSortR tClearBillboardOnServerInittSortServerBillboardRHt DoFamilySortRiRltGameWorldFamilyWartOnGameServerInitOKR|t InitDllAppIDRRtDef_InitOpenServerTimeR1R8Rt__DoMixServerInitR&(R
tinitOpenServerTime((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyt InitGameWorld³s 
 
 
 
 
 
 "
cCsntjtjƒ}|sdStjtjƒ}||kr>dSttjƒƒ}||kr`dSt|ƒdS(N(RRtDef_SetOpenServerTimeR`R8RtOnNewServerOpen(R
tsetOpenServerTimetcurOpenServerTimeR ((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRgás  
cCs‹tjdƒtjtjƒ}|s)dSi}tjƒjƒ}xpt|jƒƒD]\}|j    |ƒ}|j
ƒ}|j ƒ}| sT|tj tjgkr¦qTn|||<qTWx>|j ƒD]0\}}|j|ƒtjd||fƒqÁWxktjD]`}tjƒj|ƒ}    |    s&dn    |    jƒ}
|
rÿtj|ƒtjd||
fƒqÿqÿWtjƒ} xetjD]Z} | j| ƒ} | sšdn    | jƒ}| j| ƒ|rytjd| |fƒqyqyWg}tjƒ}x0t|jƒƒD]}|j|j    |ƒƒqüWx8|D]0}tjd|jƒƒtjd||ƒq#Wt j!ƒgt"_#t$|ƒtj%tj |ƒdS(sзþ¿ªÆôÐèÒª´¦ÀíµÄÂß¼­sÖ´ÐÐÕýʽ¿ª·þÖØÖÃÂß¼­...NsDeleteGameServerEventTrig %s=%sisClearBillboard %s, count=%ss"DeleteRecData recType=%s, count=%ssDeleteFamily familyID=%s(&RRRRRdRtGetDBGameServerEventTrigManagerR¥RˆRŠR¼t
GetIsEventR`R­t DeleteByKeyRtBillboardTypeListt GetBillboardt FindBillboardR tClearBillboardByIndextGetUniversalRecMgrtDef_UniversalGameRecTypeListt GetTypeListtCounttDeleteRURœtGetIDRHtDoLogic_DeleteFamilyR¦R]tDoFamilyWarResetR_tg_sortBOSSRefreshListtAllMapServerInitOKR1(R
RftdbgsTrigKeyDicttgsEventTrigManagerRtgsEventR˜tvaluetbillboardIndext    billBoardtcounttuniversalRecMgrtrecTypet
recordListt recordCountt
familyListt    familyMgrtfamily((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyReñsR         
    
cCs‰tjƒjtjƒƒtƒtƒtƒtjƒtj    ƒtj
ƒt ƒt j tjƒ}tjtj|ƒt j t jƒ}tjtj|ƒt j t jƒ}tjtj|ƒt j t jƒ}tjtj|ƒt j t jƒ}tjtj|ƒt j tjƒ}tjtj|ƒt j tjƒ}tjtj|ƒtjƒtjƒtƒtt ƒt!j"ƒdS(N(#RRtNotify_AllMapServerInitOKR”t__SetWorldExpRatet__SetWorldDropRateAddt__NotifyMapServerEventRit!SendMapServerOperationActionStatetSendMapServerDailyActionStatetSendMapServerFBFuncStatet__NotifyMissionPubEventRRRt"Def_Notify_WorldKey_WorldAverageLvRRRRRRRtDef_LastMixServerDayt$Def_Notify_WorldKey_LastMixServerDayt&Def_Notify_WorldKey_ClearBillboardSignt*Def_Notify_WorldKey_FamilyActivityDayStateRJtOnMapServerInitOKR]tSendAllMapGlobalDropInfoRYRÂRHtRandomFakeFamily(R
tworldLvR!R"R#tlastMixServerDaytlastSigntfadState((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRx/s8
 
 
 
 
 
 
cCs    tjtjƒ}|s)tjdƒdStjtjƒ}|rRtjdƒdStjdƒtjƒ}tjg}tjdt    |ƒƒx|D]}|j
|ƒq•Wt |ƒt j ƒtjtjdƒtjtjƒ}tjtj|ƒtjdƒdS(Ns$·ÇºÏ·þ£¬²»´¦ÀíºÏ·þÊ×´ÎÆô¶¯Êý¾Ý¼ÓÔØ£¡sºÏ·þÊ×´ÎÆô¶¯¼ÓÔØÒѾ­´¦Àí¹ý£¡sºÏ·þÊ×´ÎÆô¶¯¼ÓÔØ´¦Àí...s&    Çå³ýÖ¸¶¨Í¨ÓÃÊý¾Ý delRecTypeList=%sis    ºÏ·þÊ×´ÎÆô¶¯¼ÓÔØ³É¹¦...(RRRRRatDef_IsMixServerInitOKRoRt%Def_UniversalGameRecType_ManorWarInfotstrRst__DelOutofdayRecDataR]RvR1RR(R"tisMixServerInitOKR€tdelRecTypeListt
delRecTypeR((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRa‚s*      
 
 c Csûttjƒƒ}tjd|ƒid    tj6}xÁ|jƒD]³\}}|j|ƒ}|sgq@nd}|jƒ}x]t    |ƒD]O}||}    |j
|    ƒ}
||
j ƒ|kr†|j |    ƒ|d7}q†q†Wtjd|||fƒq@WdS(
Ns"Ö´ÐÐɾ³ý¹ýÆÚµÄͨÓÃÊý¾Ý, curTime=%siiiiis2    É¾³ý¹ýÆÚÌõÊý: recType=%s,totalCnt=%s,delCnt=%sièi€Þ(( R8RRRRt&Def_UniversalGameRecType_MergeRegisterR­RqRrR¥tAttGetTimeRs( R€R tdelOutofdayRecDataDictt otDayRecTypetotTimet otRecDataListtdelCntttotalCntR´tdelIndext    otRecData((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRž§s" 
 cCsqtjƒ}|jtjƒ}|s0tj}n*|jƒsHtj}nt|jƒƒ}tj    ƒj
|ƒdS(N( RR¹RõR<RÕRäRÀR8RÃRRà(RËt expRateEventRâ((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRˆÀs    cCsgtjƒ}|jtjƒ}|s1ttƒn2|jƒsJttƒnttt    |j
ƒƒƒdS(N( RR¹RõR<R×RØReRÀRÂR8RÃ(RËRÎ((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR‰Õs    cCsjtjƒ}xWt|jƒƒD]C}|j|ƒ}|jƒsFqnt||jƒ|jƒƒqWdS(N(    RR¹R‰RºR»RÀRÄR¼RÃ(RËR´RÎ((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRŠçs   c    CsØtjƒ}|jƒ}|jƒ}|jƒ}|jƒ}|jƒ}tjƒj    ƒj
|||||ƒ|t j ||f<t j j|iƒ}||ks±|||krÔ|||<|t j |<tt _ndS(N(RètIPY_GMapServerStatetGetRouteServerIndextGetMapIDt    GetLineIDtGetCurPlayerCounttGetMaxPlayerCountRRtGetMapServerStateManagertSetZoneServerStateR_tg_commMapLineRouteDictRbR¬RÂR`(    R´R
tpacktrouteServerIndexRîtlineIDtcurPlayerCounttmaxPlayerCounttlinePlayerCountDict((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytMapServer_RefreshStateûs      %
  cCsgtjƒ}tjƒjƒ}|j|jƒƒ}|j|jƒƒ|j    |j
ƒƒ|j ƒdS(N( RètIPY_GMissionPubRRtGetDBMissionPubManagertAddDBMissionPubt GetMissionIDtSetMissinoPubTypetGetMissinoPubTypetSetPubIDtGetPubIDRÜ(R´R
R·tmissionPubManagert curMissionPub((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytMapServer_MissionPub&s 
cCs tjƒjƒ}|jƒdS(N(RRR¿t#NotifyAllMapServerMissionPubProcess(RÆ((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRŽ3s
cCsitjƒ}|jƒ}|jƒ}|jƒ}t|||ƒ|tjkrettj||ƒndS(N(RètIPY_GTreasureDropt    GetItemIDt GetItemCounttGetDropFunctionTypet__ProcessFunctionTypeDroptdfdAll(R´R
R·titemIDt    itemCounttdropFunctionType((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytMapServer_TreasureDropKs    cCswtjƒjƒ}|j||ƒ}|dkr4dS|jƒ|}|j|ƒ||jƒkrs|jdƒndS(Ni(    RRtGetDBGameWorldDropManagertFindGameWorldDropR¦tGetCurrentCounttSetCurrentCountt GetDropCounttNotify_AllMapServerDropState(RÒRÐRÑt dropManagertcurDropt
finalCount((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRÎ^s  cCsYtjƒjƒ}x6t|jƒƒD]"}|j|ƒ}|jdƒq%W|jƒdS(Ni(RRRÔR‰RˆRŠR×t%Notify_AllMapServerClearForbiddenDrop(RÚRRÛ((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyt__ClearTreasureDropCountqs 
cCs¨tjdƒ}tjdƒ}x@|jƒD]2}tj|}tj|ƒ}tj||ƒq+Wx@|jƒD]2}tj    |}tj|ƒ}tj||ƒqnWdS(Nt GlobalDropCDtNPCGlobalDropRate(
t IpyGameDataPYtGetFuncEvalCfgtkeysRt Def_Notify_WorldKey_LastDropTimeRRRRt$Def_Notify_WorldKey_DropNPCKilledCnt(tglobalDropCDDicttglobalDropRateDictRÐR˜tdropTimet    killedCnt((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR•{s  cCs=|\}}tj|}tj||ƒtj||ƒdS(N(RRäRR1RR(tmsgListRÐRèR˜((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytUpdGlobalDropCDŒs
  cCs=|\}}tj|}tj||ƒtj||ƒdS(N(RRåRR1RR(RêRÐt updKilledCntR˜((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytUpdGlobalDropRate”s
  cCsŽtjƒjƒ}tjƒ}|j|jƒ|jƒƒ}|j|j    ƒƒ}|j
|j    ƒƒ|j |j ƒƒ|j |jƒƒdS(N(RRtGetGameFbEventListRètIPY_GRegisterFBInfotGetGameFbEventR±t GetDataMapIDtGetGameFbDetailtGetClientLineIDtSetClientLineIDtSetMaxPlayerCountR³t    SetFbInfot    GetFbInfo(R´R
t
fbEventMgrtmPackt gameFBEventtfbDetail((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytMapServer_RegisterFBInfo¶s cCsxtjƒ}tjƒjƒ}|j|jƒ|jƒƒ}|dkrLdS|j    |j
ƒƒ}|j |j ƒƒdS(N( RètIPY_GFbInfoRefreshRRRîtFindGameFbEventR±RñR¦RòRótSetPlayerCounttGetPlayerCount(R´R
R·tfbEventRúRû((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytMapServer_FbInfoRefreshÖs  cCsptjƒ}tjƒjƒ}|j|jƒ|jƒƒ}|dkrLdS|j    |j
ƒƒ|j |ƒdS(N( RètIPY_GMapServerRunningStateRRtGetGameMapManagertFindR¯R°R¦tSetStatetGetStatetSetRefreshTick(R´R
t mapServerPacktgameMapManagertcurMap((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytMapServer_RunningStateRefreshûs   cCs¨tjtj|ƒsdStjƒjƒ}xvtd|jƒƒD]_}|j|ƒ}|j    ƒt
j krqqAn||j ƒtj krqAn|jt
j ƒqAWdS(Ni(RtSetWorldDictKeyR<tTYPE_MapServerRunningStateRRR‰RˆRŠRRètmssNonetGetRefreshTicktDef_Tick_MapServer_MssNoneR(R
R
RR ((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRy scCs&tjƒ}|jƒ}t|ƒdS(N(RètIPY_GMapServerMsgtGetMsgt RunEventFunc(R´R
R·RÞ((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytMapServer_MapServerMsg1s  
cCs?d|}tƒj|ƒr*tƒ|ƒStjd|ƒdS(Nt RunEventFunc_s"Error : RunEventFunc funcName = %s(tglobalsthas_keyRR(tfuncName((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR=s
 
cCs.tj|ƒtjdƒtjƒjƒdS(Ns ֪ͨC++¹Ø·þ£¡(ROt OnServerCloseRRR(R
((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyt BeforeCloseKs  (eRRSR<RRR¨R‹RRHRRiR RèRÅRR®RRmRQRMRJRRÿR|t MergeChildMsgRRáRFR]R&ROR_RRR(R+R.R0R4R6RRDRCReRYRXRrRqR{RzRwR—RxRžRvRuRÄRÈRÚRäRÖRØRåRïRÛRtRsRhRRR%RR-RR3RRRcRgReRxRaRžRˆR‰RŠR½RÈRŽRÓRÎRÞR•RëRíRüRR RyRRR(((sG.\\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyt<module>AsÄ                                        $                                              *             (                    #        \    6                          2    9    
    9    '         ,        .            .        >    S    %                    +                     
            "         %        %