hxp
2018-12-21 4e328db29a24481792019ef364db1e70fe65f497
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
    _\c@s'ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl!Z!ddl"Z"d„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„Z0d„Z1d„Z2d„Z3d„Z4d„Z5d„Z6d„Z7d„Z8d„Z9d„Z:d„Z;d„Z<d„Z=ej>d„Z?dd„Z@d„ZAd „ZBd!dd"„ZCd#„ZDd$„ZEd%„ZFd&„ZGd'„ZHd(„ZId)„ZJd*„ZKd+„ZLd,„ZMd-„ZNd.„ZOd/„ZPd0„ZQd1„ZRd2„ZSd3„ZTd4„ZUd5„ZVd6„ZWd7„ZXd8„ZYd9„ZZd:„Z[d;„Z\d<„Z]d=„Z^d>„Z_d?„Z`d@„ZadA„ZbdB„ZcdC„ZddD„ZedE„ZfdF„ZgdG„ZhdH„ZidS(IiÿÿÿÿNcCsOtjdƒtj|ƒtjƒj|ƒt|ƒtjƒt    j
ƒdS(NsGameServer -> OnHour!( t    GameWorldtLogtPlayerEventCountertDoLogic_GameServer_OnHourt GetGameWorldtOnHourt__SetWorldKey_SavePlayert GameLogInfotSet_Server_Hourt PlayerFamilyt FamilyOnHour(t
curTimeStrttick((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRys  
 
 
cCstjdƒtjƒtj|ƒtjtjƒ}tj    t
j |ƒtjtj ƒ}tjtj ƒ}tj    t
j|ƒtj    t
j|ƒtjƒj|ƒtjƒtjƒtjƒtjƒtjƒtjƒddl}|jƒtjƒdS(NsGameServer -> OnDay!iÿÿÿÿ( RRtPlayerBillboardtCopyBillboardOnDayRtDoLogic_GameServer_OnDaytPlayerDBGSEventtGetDBGSTrig_ByKeyt Def_ServerDaytSendMapServerMsgExt ShareDefinetDef_Notify_WorldKey_ServerDaytDef_IsMixServertDef_MixServerDaytDef_Notify_WorldKey_IsMixServert Def_Notify_WorldKey_MixServerDayRtOnDayRtSet_Server_DaytNoteOssBillboardInfoByDaytPlayerFamilyRedPackettDoOnDaytChPlayertUpdataPlayerLVInfotPlayerCompensationtClearUpTimeOutCompensationt PlayerGeTuitClearFMTGeTuiLimitt PlayerBoursetOverTimeItemsDealtGameWorldFamilyWar(R R t openServerDayt isMixServert mixServerDayR%((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRŽs( 
 
 
 
 
 
 
 
 
cCs/tjdƒtj|ƒtƒtjƒdS(NsGameServer -> OnDayEx!(RRRtDoLogic_GameServer_OnDayExt__Set_Server_DayExt
PlayerXMZZt XMZZOndayEx(R ((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytOnDayEx¶s
 
cCs;tjdƒtjƒtj|ƒtjƒj|ƒdS(NsGameServer -> OnWeek!(RRRtSet_Server_WeekRtDoLogic_GameServer_OnWeekRtOnWeek(R R ((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR2Ås
 
 cCs%tjdƒtj|ƒtƒdS(NsGameServer -> OnWeekEx!(RRRtDoLogic_GameServer_OnWeekExt__Set_Server_WeekEx(R ((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytOnWeekExÎs  cCs;tjdƒtj|ƒtjƒj|ƒtjƒdS(NsGameServer -> OnMonth!(RRRtDoLogic_GameServer_OnMonthRtOnMonthRtSet_Server_Month(R R ((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR7Ús
 
cCs%tjdƒtj|ƒtƒdS(NsGameServer -> OnMonthEx!(RRRtDoLogic_GameServer_OnMonthExt__Set_Server_MonthEx(R ((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyt    OnMonthExâs  cCs;tjdƒtj|ƒtjƒj|ƒtjƒdS(NsGameServer -> OnYear!(RRRtDoLogic_GameServer_OnYearRtOnYearRtSet_Server_Year(R R ((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR=î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((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRþs'  cCstjtƒ|ƒdS(N(Rt GetPsycoFunct__Func_HighPrecisionProcess(R ((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytHighPrecisionProcessscCstjƒjtjƒsdStj|ƒtj|ƒt    j
|ƒt j |ƒt j |ƒtj|ƒtj|ƒtj|ƒtjjƒ}|j}|j}|d}tjƒjtjƒ}||krütjƒjtj|ƒt||ƒn|ddkrtƒndS(Nii
i(RRRBRCtDef_WorldKey_IsGameWorldInittPlayerFamilyPartytFamilyParty_ProcessR    tOnLeaderImpeachTickt CrossRealmPKtOnPKMatchProcesst GameWorldBosstDoCheckWorldBossReborntProcessBossGeTuiR#tProcessNewGuyCallBackGeTuit
PlayerTeamt DoTeamProcesst PlayerDBOpert PyDBProccesstdatetimettodaytminutetsecondtDef_WorldKey_ProcessMinuteREtGameWorldProcessOnMinutetSendMapCommMapLinePlayerCount(R t curDateTimet    curMinutet    curSecondt processMinutetlastProcessMinute((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRJ"s*                
 
cCsR| rtj rdStjd|tjfƒtjtjtjƒtt_dS(NsO֪ͨ³£¹æµØÍ¼Íæ¼ÒÈËÊýÐÅÏ¢: isForce=%s,PyGameData.g_commMapLinePlayerCountDict=%s(    t
PyGameDatat g_needSyncCommMapLinePlayerCountRtDebugLogtg_commMapLinePlayerCountDicttSendCommMapServerMsgRt*Def_Notify_WorldKey_CommMapLinePlayerCounttFalse(tisForce((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR`Ls        cCstt|ƒt|ƒtjƒtjƒtjƒtjƒtj    |ƒt
j ƒ|ddkrpt j ƒndS(Nii(tDoCheckNewServerOpentDisposeGameWorldEvenByTimetGameWorldActionControltDispose_OperationActionStatetDispose_DailyActionStatetDispose_FBStateTimetGameWorldAverageLvtOpenWorldAverageLvRVtDoCountdownLeaveTeamLogictPlayerFBHelpBattletOnMinuteProcessR    tUpdFamilyTotalFightPower(RbR ((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR_Ys
 
 
 
 
 
 
 cCstjtƒ|ƒdS(N(RRIt__Func_OnGameWorldProcess(R ((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytOnGameWorldProcessvscCsut|ƒt|ƒt|ƒt|ƒt|ƒt|ƒt|ƒt|ƒt|ƒt    j
ƒt j |ƒdS(N( tDisposeGameWorldEvenByTrucktDisposeGameWorldBroadcasttDisposeGameWorldGametDisposeGameActivePlayertDispose_MapServer_TimetDispose_MapServer_PlayerSavetDisposeMapServerRunningStatetDispose_DataBase_GMShelltDispose_SendMsg_RouteServert EventReporttOnTimeCloseScribeTxtRRtCalcGameWorldBossOnlineCnt(R ((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRz~s
 
 
 
 
 
 
 
 
 
 cCsstjƒ}|jtjƒ}|dkr.dS||tjtjkrLdS|jtj|ƒtjƒjƒdS(Niÿÿÿÿ(RRt GetTickByTypeRCtTYPE_SendMsg_RouteServertTYPE_Tick_Timet SetTickByTypet SendHeartBeat(R RHtlastTick((scE:\SnxxServerCode\ServerPython\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(RRRˆRCtTYPE_ReadDateBaseGMRŠR‹tGetDBGMCommandListManagertDataServer_GMCommandReqtGetCounttrangetGetAttGMShelltDoLogic_DBGMCommontClear(R RHtdBGMCommandListManagertdBGMCommandListCounttitgmCommon((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRƒ¾s & 
 
cCs`tjƒ}||jtjƒtjtjkr6dS|jtj|ƒ|jtjƒƒdS(N(    RRRˆRCtTYPE_SendTimeToMapServerRŠR‹t
OnTimeSynctGetCurrentDataTimeStr(R RH((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR€Ýs  &cCsWtjƒ}||jtjƒtjtjkr6dS|jtj|ƒ|jƒdS(N(RRRˆRCtTYPE_SendServerStateRŠR‹tDataServer_ServerStateReport(R RH((scE:\SnxxServerCode\ServerPython\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(RRRBRCRDRZR[R\tGetPlayerManagerR’tGetActivePlayerCounttGetActivePlayerAttappendtsorttGetKeytlentMapServer_PlayerSaveRE(R t playerManagert curPlayerListR™t    curPlayer((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRÿs"  
cCs
|jƒS(N(tGetLV(R¬((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR§"sc    Cs+tjjƒjddkr dSi}d}tjƒ}|jƒ}xŠt|ƒD]|}|j|ƒ}|dksQ|j    ƒ r…qQnt
j |ƒr¤|d7}qQntj |ƒ}|j |dƒd||<qQWx@|jƒD]2\}}tj|||ƒtj|d|ƒqÞWtj|i|ƒdS(Niii(RZR[R\RR¢R£txrangeR¤tNonet    GetInitOKt PlayerControltGetIsTJGtGetPlayerPlatformtgettitemstDataRecordPacktDR_OnLinePlayerCountR…tWriteEvent_concurrency(    R tplatformOLDictt tjgOnlineCntRªtactivePlayerCounttindextplayertplatformt    playerCnt((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR*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(RtGetGameWorldEventManagerRZR[R’tGetActiveEventCounttGetActiveEventByIndext
GetEventIDtGetDateTimeByStrt
GetEndTimet GetStartTimeR¥RtGetIsProcessingtSetIsProcessingtTruetGetPart__NotifyMapServerProcesstGMCommontGetGameServer_GM_GameOpen_MsgR±t WorldNotifytDoLogic_ProcessEvent_ClosetDelActiveEventtGetGameServer_GM_GameClose_Msg( R t eventManagertdelListt todayDateTimeR¼teventteventIDt eventEndTimeteventStartTimeteventPartsysMsgt
delEventID((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR~†s:         
  cCsŒ|tjkr%ttt|ƒƒnc|tjkrJttt|ƒƒn>|tjkr~t|ƒ\}}t    t||ƒn
|j
ƒdS(N( RCtDef_GY_GM_Game_DoubleExpt__DisposeWorldExpEventRÊR?tDef_GY_GM_Game_DropRatet__DisposeWorldDropRateEventtDef_GY_GM_Game_Broadcastt__GetBroseCastStrt__DisposeBroadcastEventtNotify_AllMapServerProcess(RÖR×RÚtintervaltmsg((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR̼s
cCsX|tjkrttƒn8|tjkr8ttƒn|tjkrTttƒndS(N(RCRÝRÞRlRßRàRáRã(R×((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRÐÒs   cCs7|jdƒ}t|| ƒ}||d}||fS(Ns:i(tfindR?(RÚR¼RåRæ((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRâäscCs3tjƒ}|r"|j|ƒn |j|ƒdS(N(RRt
SetExpRate(tisOpentexpRateRH((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRÞïs
  icCs3|rtd|tjƒ}nd}t|ƒdS(Ni(tmaxRCtDef_MaxRateValuetSetWorldDropRateAdd(RéRêtworldDropRateAdd((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRàýs
 
cCsdS(N((Rî((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRíscCsat|ƒ}|s |jƒdStjƒ}x!|D]}|jt|ƒƒq3W|j|ƒdS(N(tevalRätIPY_GameServert    IntVectort    push_backR?tNotify_SelectMapServerProcess(RÖt    mapIDListtvectortmapID((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyt__DisposeMapGiveExps 
   RÀcCsZtjƒ}|r/|j|ƒ|j|ƒn'|j|ƒ|jdƒ|jdƒdS(Ni(RRtSetBroadcastMsgtSetBroadcastIntervaltSetBroadcastTick(Rét broadcastMsgt broadcastTickRH((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRã0s     cCs¬tjƒ}|jtjƒ}|s(dS|jƒs8dStjƒ}|jƒ}|dkr`dS||jƒ|j    ƒddkrˆdStj
ƒj |ƒ|j |ƒdS(NRÀi<iè( RRÁtFindActiveEventRCRáRÈRtGetBroadcastMsgtGetBroadcastTicktGetBroadcastIntervalR¢t BroadcastInfoRú(R RÓt
broadEventRHRû((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR}Hs     $ 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 ReadChConfigtGetEvalChConfigR?ttimeRCtDef_PlayerTruckLogoffTickt GetLogoffTickRt
GetOwnerIDt PlayerTrucktDelTruck(    R tworldTruck_Listt truckManangerR¼ttruckt    truckTimetcurTimet disappearTimetcurTruck((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR|zs"       cCst|ƒdS(N(tDoLogic_GameWorldEvenByTime(R ((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRo³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(RRRˆRCtTYPE_EvenByTimeRRZR[thourtdayt isocalendartmonthtyearRtInitServerTimeRRt__Get_Can_OnDayExR/R2t__Get_Can_OnWeekExR5R7t__Get_Can_OnMonthExR;R=(R RR Rt curTimeHourt
curTimeDayt curTimeWeekt curTimeMontht curTimeYeart
serverHourt    serverDayt
serverWeekt serverMontht
serverYear((scE:\SnxxServerCode\ServerPython\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_DayExRZtdaystsecondsRtDef_OnEventHour(    Rat lastOndayExtlastOndayEx_YeartlastOndayEx_MonthtlastOndayEx_Dayt lastDatetimetpassTimetpassDayst passSeconds((scE:\SnxxServerCode\ServerPython\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/RZt    timedeltaRRRRtSetDBGSTrig_ByKeyR,RtDef_Notify_WorldKey_OnDayExR(t onDayDateTimet ondayExValue((scE:\SnxxServerCode\ServerPython\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+RZRRRtDef_Server_WeekExR8RRR/( RaRt dateTime_yeart dateTime_weekt dateTime_dayt lastOnWeekExtlastOnWeekEx_YeartlastOnWeekEx_WeektpreWeekDateTimet preWeek_yeart preWeek_weekt preWeek_day((scE:\SnxxServerCode\ServerPython\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+RZRRRR/R8RR9R=RtDef_Notify_WorldKey_OnWeekExR(tonWeekDateTimeRR>R?R@t onWeekExValue((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR4Vs 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/(    RaR@tdateTime_monthR>t lastOnMonthExtlastOnMonthEx_YeartlastOnMonthEx_MonthtpreMonth_montht preMonth_year((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR fs&             
 
 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/RRR9RKRtDef_Notify_WorldKey_OnMonthEx(tonMonthDateTimeR@RLR>tonMonthExValue((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR:”s             cCs7tjƒtjƒjtjƒtjƒjt    ƒdS(N(
R tInitServerBillboardRtGetTeamManagertSetMaxTeamMemberCountRCtDef_Team_MaxPlayerCountRt SetPreInitOKRÊ(R ((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytPreInitGameWorldªs
cCs–tjƒjtjttjƒƒƒtjƒjtjƒt    j
t    j ƒ}t    j
t    j ƒ}|dksw|dkrŸt    j |r‰|nttjƒƒƒntjƒjtjƒtjƒjƒjƒtjƒtjƒtjƒtjƒtjƒtjƒtƒtjƒt j!ƒt"j#ƒtj$ƒ}tj%ƒrtj&ƒ rtj'dƒi|d6}t(j)t*j+|ƒntj'd|ƒdS(Nis9֪ͨ¿ç·þÖ÷·þÎñÆ÷Æô¶¯³É¹¦, ¿É½ÓÊÕ×îпç·þ»î¶¯×´Ì¬¼°Êý¾Ý...t ServerGroupIDs ·þÎñÆ÷Æô¶¯³É¹¦: ServerGroupID=%s(,RRRERCRLR?R    tSetTickTypeCounttTYPE_Tick_CountRRtDef_InitOpenServerTimetDef_OpenServerWeekdaytSetInitOpenServerTimetGetFamilyManagertSetFamilyUpperLimitCounttDef_Family_MaxCnttGetDBGoldOrderFormMgrtSortR tClearBillboardOnServerInittSortServerBillboardR    t DoFamilySortRpRsR'tOnGameServerInitOKR…t InitDllAppIDt__DoMixServerInitR-RtLoadPlayerLVDataRwt OnServerStarttGetServerGroupIDtIsCrossRealmOpent IsCrossServerRt CrossRealmMsgtSendMsgToCrossServerRtClientServerMsg_ServerInitOK(R tinitOpenServerTimetopenServerWeekdayt serverGroupIDtdataMsg((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyt InitGameWorld¼s2%(
 
 
 
 
 
 
 
 
   cCsntjtjƒ}|sdStjtjƒ}||kr>dSttjƒƒ}||kr`dSt|ƒdS(N(RRtDef_SetOpenServerTimeR^R?R    tOnNewServerOpen(R tsetOpenServerTimetcurOpenServerTimeR((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRnï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"_#tj$|ƒt%j&ƒt'|ƒdS(sзþ¿ªÆôÐèÒª´¦ÀíµÄÂß¼­sÖ´ÐÐÕýʽ¿ª·þÖØÖÃÂß¼­...NsDeleteGameServerEventTrig %s=%sisClearBillboard %s, count=%ss"DeleteRecData recType=%s, count=%ssDeleteFamily familyID=%s((RRRRRyRtGetDBGameServerEventTrigManagerR®R‘R“RÄt
GetIsEventR^Rµt DeleteByKeyRtBillboardTypeListt GetBillboardt FindBillboardR tClearBillboardByIndextGetUniversalRecMgrtDef_UniversalGameRecTypeListt GetTypeListtCounttDeleteRaR¥tGetIDR    tDoLogic_DeleteFamilyR¯R'tDoFamilyWarResetRftg_sortBOSSRefreshListR`Rt ReloadConfigtAllMapServerInitOK(R R{tdbgsTrigKeyDicttgsEventTrigManagerR™tgsEventR¡tvaluetbillboardIndext    billBoardtcounttuniversalRecMgrtrecTypet
recordListt recordCountt
familyListt    familyMgrtfamily((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRzÿsT         
     
 
cCstjtjƒS(N(RRR_(((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytGetOpenServerWeekday<sc
CsÙ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 t jƒ}tjtj|ƒt j tjƒ}tjtj|ƒt j tjƒ}tjtj|ƒtjƒjtjƒ}    tjtj |    ƒt!j"ƒt#j"ƒt$ƒt%t&ƒt'j(ƒdS(N()RRtNotify_AllMapServerInitOKRt__SetWorldExpRatet__SetWorldDropRateAddt__NotifyMapServerEventRpt!SendMapServerOperationActionStatetSendMapServerDailyActionStatetSendMapServerFBFuncStatet__NotifyMissionPubEventRRRt"Def_Notify_WorldKey_WorldAverageLvRRRR_t%Def_Notify_WorldKey_OpenServerWeekdayRRRRtDef_LastMixServerDayt$Def_Notify_WorldKey_LastMixServerDayt&Def_Notify_WorldKey_ClearBillboardSignt*Def_Notify_WorldKey_FamilyActivityDayStateRBRCRLt%Def_Notify_WorldKey_InitGameWorldTimeRRtOnMapServerInitOKR'tSendAllMapGlobalDropInfoR`RÊR    tRandomFakeFamily(
R tworldLvR(RuR)R*tlastMixServerDaytlastSigntfadStatetinitGameWorldTime((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRŽBs@
 
 
 
 
 
 
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    ºÏ·þÊ×´ÎÆô¶¯¼ÓÔØ³É¹¦...(RRRRRhtDef_IsMixServerInitOKR„Rt%Def_UniversalGameRecType_ManorWarInfotstrRˆt__DelOutofdayRecDataR'R‹R9RR¨(R)tisMixServerInitOKR–tdelRecTypeListt
delRecTypeR'((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRkš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€Þ(( R?R    RRRt&Def_UniversalGameRecType_MergeRegisterRµR†R‡R®tAttGetTimeRˆ( R–RtdelOutofdayRecDataDictt otDayRecTypetotTimet otRecDataListtdelCntttotalCntR¼tdelIndext    otRecData((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR¸¿s" 
 cCsqtjƒ}|jtjƒ}|s0tj}n*|jƒsHtj}nt|jƒƒ}tj    ƒj
|ƒdS(N( RRÁRýRCRÝRìRÈR?RËRRè(RÓt expRateEventRê((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRŸØs    cCsgtjƒ}|jtjƒ}|s1ttƒn2|jƒsJttƒnttt    |j
ƒƒƒdS(N( RRÁRýRCRßRàRlRÈRÊR?RË(RÓRÖ((scE:\SnxxServerCode\ServerPython\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Ö((scE:\SnxxServerCode\ServerPython\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    GetLineIDtGetCurPlayerCounttGetMaxPlayerCountRRtGetMapServerStateManagertSetZoneServerStateRftg_commMapLineRouteDictRiR´RÊRg(    R¼R tpacktrouteServerIndexRötlineIDtcurPlayerCounttmaxPlayerCounttlinePlayerCountDict((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytMapServer_RefreshStates      %
  cCsgtjƒ}tjƒjƒ}|j|jƒƒ}|j|jƒƒ|j    |j
ƒƒ|j ƒdS(N( RðtIPY_GMissionPubRRtGetDBMissionPubManagertAddDBMissionPubt GetMissionIDtSetMissinoPubTypetGetMissinoPubTypetSetPubIDtGetPubIDRä(R¼R RÑtmissionPubManagert curMissionPub((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytMapServer_MissionPub>s 
cCs tjƒjƒ}|jƒdS(N(RRRÙt#NotifyAllMapServerMissionPubProcess(Rà((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR¥Ks
cCsitjƒ}|jƒ}|jƒ}|jƒ}t|||ƒ|tjkrettj||ƒndS(N(RðtIPY_GTreasureDropt    GetItemIDt GetItemCounttGetDropFunctionTypet__ProcessFunctionTypeDroptdfdAll(R¼R RÑtitemIDt    itemCounttdropFunctionType((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytMapServer_TreasureDropcs    cCswtjƒjƒ}|j||ƒ}|dkr4dS|jƒ|}|j|ƒ||jƒkrs|jdƒndS(Ni(    RRtGetDBGameWorldDropManagertFindGameWorldDropR¯tGetCurrentCounttSetCurrentCountt GetDropCounttNotify_AllMapServerDropState(RìRêRët dropManagertcurDropt
finalCount((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRèvs  cCsYtjƒjƒ}x6t|jƒƒD]"}|j|ƒ}|jdƒq%W|jƒdS(Ni(RRRîR’R‘R“Rñt%Notify_AllMapServerClearForbiddenDrop(RôR™Rõ((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyt__ClearTreasureDropCount‰s 
cCstjddƒ}tjddƒ}tjdƒ}x@|jƒD]2}tj|}tj|ƒ}tj||ƒq@Wx@|jƒD]2}tj    |}tj|ƒ}tj||ƒqƒWx@|jƒD]2}tj
|}tj|ƒ}tj||ƒqÆWdS(Nt GlobalDropCDiitNPCGlobalDropRate( t IpyGameDataPYtGetFuncEvalCfgtkeysRt Def_Notify_WorldKey_LastDropTimeRRRRt$Def_Notify_WorldKey_DropNPCKilledCntt"Def_Notify_WorldKey_NPCKilledCount(tglobalDropCDDicttglobalKilledCountDropDicttglobalDropRateDictRêR¡tdropTimet    killedCnttnpcID((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR®“s    cCs=|\}}tj|}tj||ƒtj||ƒdS(N(RRþRR9RR(tmsgListRêRR¡((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytUpdGlobalDropCD©s
  cCs=|\}}tj|}tj||ƒtj||ƒdS(N(RRÿRR9RR(RRêt updKilledCntR¡((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytUpdGlobalDropRate±s
  cCs=|\}}tj|}tj||ƒtj||ƒdS(N(RRRR9RR(RRR    R¡((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytUpdGlobalKillCount¹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((scE:\SnxxServerCode\ServerPython\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ËRR¯RRtSetPlayerCounttGetPlayerCount(R¼R RÑtfbEventRR((scE:\SnxxServerCode\ServerPython\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((scE:\SnxxServerCode\ServerPython\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(RtSetWorldDictKeyRCtTYPE_MapServerRunningStateRR"R’R‘R“R%RðtmssNonetGetRefreshTicktDef_Tick_MapServer_MssNoneR$(R R(R™R)((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR‚1scCs&tjƒ}|jƒ}t|ƒdS(N(RðtIPY_GMapServerMsgtGetMsgt RunEventFunc(R¼R RÑRæ((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytMapServer_MapServerMsgVs  
cCs?d|}tƒj|ƒr*tƒ|ƒStjd|ƒdS(Nt RunEventFunc_s"Error : RunEventFunc funcName = %s(tglobalsthas_keyRR(tfuncName((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR2bs
 
cCsBtj|ƒtjƒtjƒtjdƒtjƒjƒdS(Ns ֪ͨC++¹Ø·þ£¡(RVt OnServerCloseRtSavePlayerLVDataRwRRR(R ((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyt BeforeCloseps
 
 
 (jRRZRCR RR±R”RR    RRpR RðRÍR    R¶RRtRXR#RRR!RR…RqRPRwRRûRMR'R-RVRfRRRR/R2R5R7R;R=RRKRJRlR`R_R{RzR„RƒR€R RR§RR~RÌRÐRâRìRÞRàRíR÷RãR}R|RoRRR,RR4R R:RZRxRnRzRRŽRkR¸RŸR R¡R×RâR¥RíRèRøR®RR
R RR R*R‚R3R2R:(((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyt<module>AsÎ                                           (                                              *             (                    #        \    6                          2    9    
    9    '         ,        .            3        =        X    %                    +                     
                "         %        %