cehua-HWJ35
2019-03-07 cd6fbfa9dce9c101fe7a819c811036cfbbefab8d
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
»‚|\c@sQddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl!Z!ddl"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/e0d „Z1d„Z2d„Z3d„Z4d„Z5d„Z6d„Z7d„Z8d„Z9d„Z:d„Z;d„Z<d„Z=d„Z>d„Z?ej@d„ZAdd„ZBd„ZCd „ZDd!dd"„ZEd#„ZFd$„ZGd%„ZHd&„ZId'„ZJd(„ZKd)„ZLd*„ZMd+„ZNd,„ZOd-„ZPd.„ZQd/„ZRd0„ZSd1„ZTd2„ZUd3„ZVd4„ZWd5„ZXd6„ZYd7„ZZd8„Z[d9„Z\d:„Z]d;„Z^d<„Z_d=„Z`d>„Zad?„Zbd@„ZcdA„ZddB„ZedC„ZfdD„ZgdE„ZhdF„ZidG„ZjdH„ZkdI„ZldJ„ZmdS(Kiÿÿÿÿ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.pyRws  
 
 
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.pytHighPrecisionProcessscCsFtjƒjtjƒsdSttjƒƒ}tj|ƒt    j
|ƒt j |ƒt j|ƒtj|ƒtj|ƒtj|ƒtj|ƒtj|ƒtj|ƒtjjƒ}|j}|j}|d}tjƒjtjƒ}||kr(tjƒjtj|ƒt ||ƒn|ddkrBt!ƒndS(Nii
i("RRRBRCtDef_WorldKey_IsGameWorldInitR?ttimetPlayerFamilyPartytFamilyParty_ProcessR    tOnLeaderImpeachTicktCrossRealmPlayertOnCrossProcesst CrossRealmPKtOnPKMatchProcesst GameWorldBosstDoCheckWorldBossReborntProcessBossGeTuiR#tProcessNewGuyCallBackGeTuit
PlayerTeamt DoTeamProcesst PlayerDBOpert PyDBProccesst AuctionHousetOnAuctionItemTimeProcesstdatetimettodaytminutetsecondtDef_WorldKey_ProcessMinuteREtGameWorldProcessOnMinutetSendMapCommMapLinePlayerCount(R tcurTimet curDateTimet    curMinutet    curSecondt processMinutetlastProcessMinute((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRJ s0                  
 
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.pyReLs        cCsˆt|ƒt|ƒtjƒtjƒtjƒtjƒtj    ƒt
j |ƒt jƒt jƒ|ddkr„tjƒndS(Nii(tDoCheckNewServerOpentDisposeGameWorldEvenByTimetGameWorldActionControltDispose_OperationActionStatetDispose_DailyActionStatetDispose_FBStateTimeRStOnMinuteProcesstGameWorldAverageLvtOpenWorldAverageLvRYtDoCountdownLeaveTeamLogictPlayerFBHelpBattleRtOnRedPacketMinuteProcessR    tUpdFamilyTotalFightPower(RhR ((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRdYs
 
 
 
 
 
 
 
 
 cCstjtƒ|ƒdS(N(RRIt__Func_OnGameWorldProcess(R ((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytOnGameWorldProcessyscCsut|ƒt|ƒt|ƒt|ƒt|ƒt|ƒt|ƒt|ƒt|ƒt    j
ƒt j |ƒdS(N( tDisposeGameWorldEvenByTrucktDisposeGameWorldBroadcasttDisposeGameWorldGametDisposeGameActivePlayertDispose_MapServer_TimetDispose_MapServer_PlayerSavetDisposeMapServerRunningStatetDispose_DataBase_GMShelltDispose_SendMsg_RouteServert EventReporttOnTimeCloseScribeTxtRUtCalcGameWorldBossOnlineCnt(R ((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR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(RRRBRCRDR_R`RatGetPlayerManagerR™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 Csltjƒ}tjjƒj}|ddkr2dS|jdƒ}||krQdS|jd|ƒi}d}tjƒ}|jƒ}xŠt    |ƒD]|}|j
|ƒ}    |    dks’|    j ƒ rÆq’nt j|    ƒrå|d7}q’ntj|    ƒ}
|j|
dƒd||
<q’Wx@|jƒD]2\}
} tj| |
|ƒtj| d|
ƒqWtj|i|ƒdS(Niit
OnlineCntMi(RRR_R`RaRBRER©RªtxrangeR«tNonet    GetInitOKt PlayerControltGetIsTJGtGetPlayerPlatformtgettitemstDataRecordPacktDR_OnLinePlayerCountRŒtWriteEvent_concurrency( R RHRhtnoteDatatplatformOLDictt tjgOnlineCntR±tactivePlayerCounttindextplayertplatformt    playerCnt((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR†+s4    
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(RtGetGameWorldEventManagerR_R`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çRrRè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ì+s     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„Cs     $ 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?RMRCtDef_PlayerTruckLogoffTickt GetLogoffTickRt
GetOwnerIDt PlayerTrucktDelTruck(    R tworldTruck_Listt truckManangerRÅttruckt    truckTimeRft disappearTimetcurTruck((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRƒus"       cCst|ƒdS(N(tDoLogic_GameWorldEvenByTime(R ((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRu®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¤R_R`thourtdayt isocalendartmonthtyearRtInitServerTimeRRt__Get_Can_OnDayExR/R2t__Get_Can_OnWeekExR5R7t__Get_Can_OnMonthExR;R=(R R”R Rft 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_DayExR_tdaystsecondsRtDef_OnEventHour(    Rgt 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(NR4ii'ids!Set_Server_DayEx, OnDayExValue=%s(RR2RRR6R_t    timedeltaR#R"R RtSetDBGSTrig_ByKeyR3RtDef_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-¿ÉÒÔ
    idiiR4i( RR2R_R!RRtDef_Server_WeekExR?RRR6( RgR!t 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(NiR4iids#Set_Server_WeekEx, OnWeekExValue=%s(RR2R_R!RRR6R?RR@RDRtDef_Notify_WorldKey_OnWeekExR(tonWeekDateTimeR!RERFRGt onWeekExValue((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR4Qs 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 ( RR2R R"R#RRtDef_Server_MonthExRRR6(    RgRGtdateTime_monthREt lastOnMonthExtlastOnMonthEx_YeartlastOnMonthEx_MonthtpreMonth_montht preMonth_year((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR'as&             
 
 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(RR2R R"R#RRR6RRR@RRRtDef_Notify_WorldKey_OnMonthEx(tonMonthDateTimeRGRSREtonMonthExValue((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ƒtƒtjƒtj ƒt!j"ƒt#jƒt$|ƒtj%dƒtj&ƒ}|r²t    j
t    j'ƒ}|rsdnd}tjƒjt(j)|ƒtj%d|tj*ƒfƒntj+ƒ}tj%d|ƒtjƒjtj,dƒt-jƒdS(NisR=============================== ·þÎñÆ÷Æô¶¯³É¹¦ ===================================is4¿ç·þ·þÎñÆ÷Æô¶¯³É¹¦: isServerOpen=%s,crossZoneName=%ss ·þÎñÆ÷Æô¶¯³É¹¦: ServerGroupID=%s(.RRRERCRLR?RMtSetTickTypeCounttTYPE_Tick_CountRRtDef_InitOpenServerTimetDef_OpenServerWeekdaytSetInitOpenServerTimetGetFamilyManagertSetFamilyUpperLimitCounttDef_Family_MaxCnttGetDBGoldOrderFormMgrtSortR tSortServerBillboardR    t DoFamilySortRvRyR'tOnGameServerInitOKRŒt InitDllAppIDt__DoMixServerInitR-RtLoadPlayerLVDataR~t OnServerStartRSRJRt IsCrossServertDef_CrossServerCloseRt#Def_Notify_WorldKey_CrossServerOpentGetCrossZoneNametGetServerGroupIDtDef_WorldKey_GameWorldInitOKt CrossRealmMsg(R tinitOpenServerTimetopenServerWeekdayt isCrossServert isServerCloset isServerOpent serverGroupID((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyt InitGameWorld·s>%(
 
 
 
 
 
 
 
 
 
    
cCsntjtjƒ}|sdStjtjƒ}||kr>dSttjƒƒ}||kr`dSt|ƒdS(N(RRtDef_SetOpenServerTimeRdR?RMtOnNewServerOpen(R tsetOpenServerTimetcurOpenServerTimeRf((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRtô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((RRRRRRtGetDBGameServerEventTrigManagerR¶R˜RšRÍt
GetIsEventRdR½t DeleteByKeyRtBillboardTypeListt GetBillboardt FindBillboardR tClearBillboardByIndextGetUniversalRecMgrtDef_UniversalGameRecTypeListt GetTypeListtCounttDeleteRgR¬tGetIDR    tDoLogic_DeleteFamilyR·R'tDoFamilyWarResetRltg_sortBOSSRefreshListRfRt ReloadConfigtAllMapServerInitOK(R RƒtdbgsTrigKeyDicttgsEventTrigManagerR tgsEventR¨tvaluetbillboardIndext    billBoardtcounttuniversalRecMgrtrecTypet
recordListt recordCountt
familyListt    familyMgrtfamily((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR‚sT         
     
 
cCstjtjƒS(N(RRRe(((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytGetOpenServerWeekdayAsc Csrtjƒ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 t jƒ}tjtj|ƒt j tjƒ}tjtj|ƒtjƒjtj ƒ}    tjtj!|    ƒt"j#ƒt$j#ƒtjƒjtj%ƒ}
tjtj%|
ƒtjtj&t'j(ƒt)j#ƒt*ƒt+t,ƒt-j.ƒt/j0ddƒdtjƒj1ƒj2ƒ} tjƒj3ddddd| ƒdS(NRŒt OpenStateUrls?Type=MapInit&MapCount=%sRÉi(4RRtNotify_AllMapServerInitOKR¤t__SetWorldExpRatet__SetWorldDropRateAddt__NotifyMapServerEventRvt!SendMapServerOperationActionStatetSendMapServerDailyActionStatetSendMapServerFBFuncStatet__NotifyMissionPubEventRRRt"Def_Notify_WorldKey_WorldAverageLvRRRRet%Def_Notify_WorldKey_OpenServerWeekdayRRRRtDef_LastMixServerDayt$Def_Notify_WorldKey_LastMixServerDaytDef_LastMixServerWorldLVt(Def_Notify_WorldKey_LastMixServerWorldLVt*Def_Notify_WorldKey_FamilyActivityDayStateRBRCRLt%Def_Notify_WorldKey_InitGameWorldTimeRUtOnMapServerInitOKR'Rut!Def_Notify_WorldKey_CrossZoneNameRltg_crossZoneNameRStSendAllMapGlobalDropInfoReRÓR    tRandomFakeFamilyRtGetPyMongoConfigtGetGameMapManagerR˜tEventReport_EventReport( R tworldLvR(R{R)R*tlastMixServerDaytlastMixServerWorldLVtfadStatetinitGameWorldTimetisCrossServerOpentgetUrl((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR–GsL
 
 
 
 
 
 
 
,"c
Cs„tjtjƒ}|s)tjdƒdStjtjƒ}|rRtjdƒdStjdƒtjƒ}g}tjdt|ƒƒx|D]}|j    |ƒqWt
|ƒt j ƒtj ƒ}x9t|jƒƒD]%}|j|ƒ}tj|dƒqÙWtjƒtjtjdƒtjtjƒ}tjtj|ƒtjtjƒ}    tjtj|    ƒtjd||    fƒdS(Ns$·ÇºÏ·þ£¬²»´¦ÀíºÏ·þÊ×´ÎÆô¶¯Êý¾Ý¼ÓÔØ£¡sºÏ·þÊ×´ÎÆô¶¯¼ÓÔØÒѾ­´¦Àí¹ý£¡sºÏ·þÊ×´ÎÆô¶¯¼ÓÔØ´¦Àí...s"Çå³ýÖ¸¶¨Í¨ÓÃÊý¾Ý delRecTypeList=%siis1    ºÏ·þÊ×´ÎÆô¶¯¼ÓÔØ³É¹¦! serverDay=%s,worldLV=%s(RRRRRntDef_IsMixServerInitOKRRŒtstrRt__DelOutofdayRecDataR'R“RgR¶R˜RšR    tSetFamilyWarRankRmR@RR±RR¯R³(
R)tisMixServerInitOKRžtdelRecTypeListt
delRecTypet familyManagerR R¤R.tworldLV((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyRp¤s8     
 
 
c Cs÷ttjƒƒ}i}tjd||fƒxÁ|jƒD]³\}}|j|ƒ}|scq<nd}|jƒ}x]t|ƒD]O}||}    |j|    ƒ}
||
j    ƒ|kr‚|j
|    ƒ|d7}q‚q‚Wtjd|||fƒq<WdS(Ns<Ö´ÐÐɾ³ý¹ýÆÚµÄͨÓÃÊý¾Ý, curTime=%s,delOutofdayRecDataDict=%siis2    É¾³ý¹ýÆÚÌõÊý: recType=%s,totalCnt=%s,delCnt=%s( R?RMRRR½RŽRR¶tAttGetTimeR( RžRftdelOutofdayRecDataDictt 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ÊRRCRæ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ÊRRCRèRéRrRÑ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    GetLineIDtGetCurPlayerCounttGetMaxPlayerCountRRtGetMapServerStateManagertSetZoneServerStateRltg_commMapLineRouteDictRoR¼RÓRm(    RÅR tpacktrouteServerIndexRÿtlineIDtcurPlayerCounttmaxPlayerCounttlinePlayerCountDict((scE:\SnxxServerCode\ServerPython\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((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytMapServer_MissionPubNs 
cCs tjƒjƒ}|jƒdS(N(RRRët#NotifyAllMapServerMissionPubProcess(Rò((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR®[s
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_TreasureDropss    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ú†s  cCsYtjƒjƒ}x6t|jƒƒD]"}|j|ƒ}|jdƒq%W|jƒdS(Ni(RRRR™R˜RšRt%Notify_AllMapServerClearForbiddenDrop(RR 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(RRRR@RR(tmsgListRüRR¨((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytUpdGlobalDropCD¹s
  cCs=|\}}tj|}tj||ƒtj||ƒdS(N(RRRR@RR(RRüt updKilledCntR¨((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytUpdGlobalDropRateÁs
  cCs=|\}}tj|}tj||ƒtj||ƒdS(N(RRRR@RR(RRRR¨((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_GFbInfoRefreshRRRtFindGameFbEventRÝR!R·R"R#tSetPlayerCounttGetPlayerCount(RÅR RãtfbEventR*R+((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytMapServer_FbInfoRefresh s  cCsÜtjƒ}tjƒjƒ}|j|jƒ|jƒƒ}|dkrLdS|j    ƒdkr¸|j    ƒ|j    ƒkr¸tj
d|j    ƒ|j    ƒ|jƒ|j ƒgƒt dƒn|j |j    ƒƒ|j|ƒdS(Niiiis"MapServer_RunningStateRefresh--_%stMapError(iiii(RùtIPY_GMapServerRunningStateRRR½tFindRÛRÜR·tGetStateRnR‘t SendGameErrortSetStatetSetRefreshTick(RÅR t mapServerPacktgameMapManagertcurMap((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytMapServer_RunningStateRefresh0s  *5  cCsstjddƒ}tjddƒ}tjddƒ}|d|||f}tjƒjddddd    |ƒdS(
NRŒR¦RÇtGroupIDtconnectt USER_DB_NAMEs!?Type=%s&groupID=%s&userDBName=%sRÉi(RR¼RRR¾(tstateRÅtgroupIDt
userDBName((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR7Cs
cCsÇtjtj|ƒsdStjƒjƒ}t}xtd|jƒƒD]x}|j    |ƒ}|j
ƒt j krwqGn||j ƒtjkr–qGn|jt j ƒ|sGtdƒt}qGqGWdS(Nit MapDisconnect(RtSetWorldDictKeyRCtTYPE_MapServerRunningStateRR½RrR™R˜RšR6RùtmssNonetGetRefreshTicktDef_Tick_MapServer_MssNoneR8R7RÓ(R R;tisSendMapCloseR R<((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyR‰Ns
 cCs&tjƒ}|jƒ}t|ƒdS(N(RùtIPY_GMapServerMsgtGetMsgt RunEventFunc(RÅR RãRï((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytMapServer_MapServerMsgxs  
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.pyRM„s
 
cCsBtj|ƒtjƒtjƒtjdƒtjƒjƒdS(Ns ֪ͨC++¹Ø·þ£¡(RYt OnServerCloseRtSavePlayerLVDataR~RRR(R ((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyt BeforeClose’s
 
 
 cCstjd|ƒtdƒdS(NsChangeGameServerState:%stGameServerError(RRnR7(RA((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pytChangeGameServerStatešs(nRR_RCRRR¹R›RR    RRvR RùRÖRMR¾RR{R[R#RUR!RRŒRSRyRQR~RR RNR'R]R-RYRlRRRR/R2R5R7R;R=RRKRJRrReRdR‚RR‹RŠR‡R§RˆR®R†R…RÕRÙRëRõRçRéRöRRìR„RƒRuRR%R,R&R4R'R:RaR€RtR‚R¥R–RpRÈR¨R©RªRéRôR®RÿRúR
RºRRRR,R2R=R7R‰RNRMRURW(((scE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldProcess.pyt<module>AsÖ                                             (                                              ,              &                    #        V    6                          2    9    
    9    '         ,        .            =        =        ]    +                    +                     
                "         %             *