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
Œ\hc@sÏddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd    „Zd
„Zd „Zd „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z!d„Z"d„Z#d„Z$d„Z%d„Z&d„Z'd„Z(d„Z)d„Z*d„Z+d„Z,d „Z-dS(!iÿÿÿÿNcCstjƒjtjƒS(N(t    DBDataMgrtGetEventTrigMgrtGetValuet ShareDefinetDef_Server_Year(((suD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldEvent.pytGet_Server_Year#scCs)tjƒjtjtjjƒjƒdS(N(RRtSetValueRRtdatetimettodaytyear(((suD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldEvent.pytSet_Server_Year$s%cCstjƒjtjƒS(N(RRRRtDef_Server_Month(((suD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldEvent.pytGet_Server_Month'scCs)tjƒjtjtjjƒjƒdS(N(RRRRR RRtmonth(((suD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldEvent.pytSet_Server_Month(s%cCstjƒjtjƒS(N(RRRRtDef_Server_Week(((suD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldEvent.pytGet_Server_Week+scCs6tjƒjtjtjjtjjƒƒdƒdS(Ni(RRRRRRt isocalendarR(((suD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldEvent.pytSet_Server_Week,s2cCstjƒjtjƒS(N(RRRRtDef_Server_Day(((suD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldEvent.pytGet_Server_Day/scCs)tjƒjtjtjjƒjƒdS(N(RRRRRRRtday(((suD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldEvent.pytSet_Server_Day0s%cCstjƒjtjƒS(N(RRRRtDef_Server_Hour(((suD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldEvent.pytGet_Server_Hour3scCs)tjƒjtjtjjƒjƒdS(N(RRRRRRRthour(((suD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldEvent.pytSet_Server_Hour4s%cCs^tƒs<tƒtƒtƒtƒtƒtjdƒntƒt    ƒt
ƒt ƒtƒfS(Ns!###·þÎñÆ÷пª, ³õʼ»¯·þÎñÆ÷ʱ¼ä !( RRRRRR
t    GameWorldtLogRRRR (((suD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldEvent.pytInitServerTime8s    cCs(ddlm}|jƒt|ƒdS(Niÿÿÿÿ(t PyMongoMain(t    PyMongoDBRtStartDBt InitGameWorld(ttickR((suD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldEvent.pyR Es
 
cCs0tjr dStjƒjƒ}tjd|ƒtjƒtƒt    t
j
ƒƒt_tj ƒj t jƒ}tj ƒj t jƒ}|dksž|dkrÃt|r­|nt    t
j
ƒƒƒntƒt|ƒt|ƒtjdƒtjƒ}|rn#tjƒ}tjd||fƒtt_dS(Ns*·þÎñÆ÷Æô¶¯³õʼ»¯InitGameWorld: serverID=%sisR=============================== ·þÎñÆ÷Æô¶¯³É¹¦ ===================================s,·þÎñÆ÷Æô¶¯³É¹¦: ServerGroupID=%s,serverID=%s(t
PyGameDatatg_initGameTimeRt GetGameWorldt GetServerIDRRt OnServerStartt LoadDBPlayertintttimeRRRtDef_InitOpenServerTimetDef_OpenServerWeekdaytSetInitOpenServerTimet__DoMixServerInitt OnHighProcesstOnMinutet IsCrossServertGetServerGroupIDtTruetg_serverInitOK(R"tserverIDtinitOpenServerTimetopenServerWeekdayt isCrossServert serverGroupID((suD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldEvent.pyR!Ls,    
%
 
       cCsdS(N((R"((suD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldEvent.pytAllMapServerInitOKpscCstjƒrdSdS(N(RR1(((suD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldEvent.pyR(ss cCsétjƒjƒ}ttjƒƒ}||krEtjd|ƒdStjƒjt    j
ƒ}|r„||kr„tjd|ƒdStjƒj t    j
|ƒtj d|tj |ƒ|fƒ||kråttjƒjƒƒndS(s…GMÉèÖÿª·þʱ¼ä
    @param openServerTime: ¿ª·þʱ¼ä´Á
    @return: 1-³É¹¦£»-1-ÉèÖõÄʱ¼äÒì³££»-2-ÒѾ­ÉèÖùýÇÒ¿ª·þÁË£¬²»ÄÜÖØ¸´ÉèÖÃ
    s5µ±Ç°Ê±¼äÒѾ­³¬¹ýÉèÖõĿª·þʱ¼ä£¬²»ÄÜÉèÖÃ! serverID=%siÿÿÿÿs-ÒѾ­ÉèÖùýÇÒ¿ª·þÁË£¬²»ÄÜÖØ¸´ÉèÖÃ! serverID=%siþÿÿÿs"GMÉèÖÿª·þʱ¼ä£º serverID=%s,%s,%si(RR%R&R)R*tErrLogRRRRtDef_SetOpenServerTimeRRtChangeTimeNumToStrtOnNewServerOpentGetTick(topenServerTimeR5tcurTimetsetOpenServerTime((suD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldEvent.pytGMSetOpenServerTimeys # cCsztjƒjtjƒ}|s"dStjƒjtjƒ}||krJdSttjƒƒ}||krldSt|ƒdS(N(    RRRRR<R+R)R*R>(R"RBtcurOpenServerTimeRA((suD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldEvent.pytDoCheckNewServerOpen‘s  
cCsÏtjƒjƒ}tjd|ƒtjƒjtjƒ}|sEdStj    tjg}tjƒj
|ƒtj ƒj ƒtj ƒjƒtjƒjƒt|ƒt|ƒtjƒjƒtjdƒdS(sзþ¿ªÆôÐèÒª´¦ÀíµÄÂß¼­s#Ö´ÐÐÕýʽ¿ª·þÖØÖÃÂß¼­... serverID=%sNtClearOpenServerOK(RR%R&RRRRRR<R+t    DelAllKeyt GetFamilyMgrt DelAllFamilyt
GetMailMgrt
DelAllMailtGetPlayerViewCacheMgrt DelAllCacheR-R:tSaveGameServerDatat SendGameError(R"R5RBt excludeList((suD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldEvent.pyR>¡s
 
 cCsÆtj|ƒ}|jƒd}tjƒjtj|ƒtjƒjtj|ƒtj    d|||fƒtjƒj
tj ƒ}|rÂ||krÂtjƒjtj |ƒtj    d|ƒndS(NisÉèÖÿª·þʱ¼ä: %s(%s), ÖÜ%ss%    Í¬²½¸üРDef_SetOpenServerTime=%s( RtChangeTimeNumToDatetimetweekdayRRRRR+R,RRR<(tinitTimet openDatetimeR7RB((suD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldEvent.pyR-»scCsÊtjƒjtjƒ}|s/tjdƒdStjƒjtjƒ}|r^tjdƒdStjdƒtjƒj    tjdƒtjƒjtj
ƒ}tjƒj    tj |ƒtjd|ƒdS(Ns$·ÇºÏ·þ£¬²»´¦ÀíºÏ·þÊ×´ÎÆô¶¯Êý¾Ý¼ÓÔØ£¡sºÏ·þÊ×´ÎÆô¶¯¼ÓÔØÒѾ­´¦Àí¹ý£¡sºÏ·þÊ×´ÎÆô¶¯¼ÓÔØ´¦Àí...is&    ºÏ·þÊ×´ÎÆô¶¯¼ÓÔØ³É¹¦! serverDay=%s( RRRRtDef_IsMixServerRtDebugLogtDef_IsMixServerInitOKRRt Def_ServerDaytDef_LastMixServerDay(t isMixServertisMixServerInitOKt    serverDay((suD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldEvent.pyR.Ès   cCsOtjs dS|tjdkr$dS|t_tjrAtƒdSt|ƒdS(Niè(R#R$tg_highProcessTicktg_serverClosingtCheckCloseMapOKR0(R"((suD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldEvent.pyR/ès            
cCs‹tjƒ}|j}|tjkr(dS|t_t|ƒtj|ƒt|ƒt    jƒt
jƒt jƒt j |ƒt|ƒdS(N(RtGetCurrentTimetminuteR#tg_minuteProcessRERR0tDoLogic_GameWorldEvenByTimet PlayerOnlinet    BattleObjtObjPoolt
PlayerTeamt"OnCheckTeamPlayerDisconnectTimeoutt__CheckIpyDataRecycle(R"RAt    curMinute((suD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldEvent.pyR0üs         
 
 
 
 
 
c CsMtjjƒ}|j}|j}tjj|ƒd}|j}|j}tƒ\}}}    }
} ||ks‘||ks‘|
|ks‘| |kr¥tƒt    |ƒn||ksÉ|
|ksÉ| |krÝt
ƒt |ƒn|    |krýt ƒt |ƒn|
|ks| |kr)tƒt|ƒn| |krItƒt|ƒndS(Ni(RRRRRR R    RRtOnHourRtOnDayRtOnWeekRtOnMonthR
tOnYear( R"RAt curTimeHourt
curTimeDayt curTimeWeekt curTimeMontht curTimeYeart
serverHourR\t
serverWeekt serverMontht
serverYear((suD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldEvent.pyRcs.                0 $      cCstjdƒtj|ƒdS(NsServer -> OnHour!(RRtPlayerEventCountertDoLogic_OnHour(R"((suD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldEvent.pyRk>s  cCsetjdƒtjƒ}|jtjƒ|jtjƒ}|rT|jtj    ƒnt
j |ƒdS(NsServer -> OnDay!( RRRRtSetValueIncrementRRXRRUtDef_MixServerDayRyt DoLogic_OnDay(R"teventMgrRZ((suD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldEvent.pyRlCs   cCs:tjdƒtjƒ}|jtjƒtj|ƒdS(NsServer -> OnWeek!(    RRRRR{RtDef_ServerWeekRytDoLogic_OnWeek(R"R~((suD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldEvent.pyRmOs
   cCstjdƒtj|ƒdS(NsServer -> OnMonth!(RRRytDoLogic_OnMonth(R"((suD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldEvent.pyRnWs  cCstjdƒtj|ƒdS(NsServer -> OnYear!(RRRytDoLogic_OnYear(R"((suD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldEvent.pyRo\s  cCsŽtjƒjƒ}|r%dt_dStj|ƒ}tjsJ|t_dStjdkr]dS|tjdkrtdSdt_tjjƒdS(Niiiii€Q(    RtGetPlayerManagert OnlineCountR#tg_ipyDataRecycleCheckTimetChangeDatetimeToNumt IpyGameDataPYtIPYDatatRecycle(ttimeNowt playerCountRA((suD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldEvent.pyRibs                 cCsÌtjƒjƒ}tjd|ƒdt_tjƒ}xƒt|jƒƒD]o}|j    |ƒ}| sK|j
ƒdksK|j ƒr‹qKntj |ƒrªt j|ƒqK|jtjƒqKWtjƒdS(Ns'µØÍ¼·þÎñÆ÷¹Ø±Õ¿ªÊ¼±£´æÊý¾Ý! serverID=%sii(RR%R&RR#R^RƒtxrangetGetPlayerCounttGetPlayerByIndextGetIDtIsEmptytIsMirrorPlayert PlayerControlt DeleteMirrortKickt IPY_GameWorldtdisMapServerCloseRt OnServerClose(R"R5t playerManagertit    curPlayer((suD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldEvent.pytCloseMap~s     %
cCs«tjdkrdStjs dStjƒjƒr6dStjƒddlm    }ddl
m }d}|j ||j ƒ}tj|t|ƒƒtjdƒdt_dS(    sB¼ì²éµÈ´ý¹Ø·þÊý¾Ý´¦ÀíÍê±Ï
    Ã»ÓÐÍæ¼ÒÁË£¬ÇÒ¹«¹²Êý¾ÝÒÑÈë¿âÍê±Ï
    iNiÿÿÿÿ(t CommonDefine(tCommFunctspython ÒÑ´¦ÀíµØÍ¼¹Ø±ÕÂß¼­i(R#R^tg_closeSaveDataOKRRƒR„RtClearBackupFiletPyMongoDB.DBCommonRœtPyMongoDB.CommonRt    WriteBYTEtdgPlayerSaveGameServerDatat NetPackCommontSendPyPackToMapServerSelftlenR(RœRtdata((suD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldEvent.pyR_’s    
     (.RRR‡R•RyR’R¥RdRRgR#ReRfRR*RR
R RRRRRRRRR R!R:R(RCRER>R-R.R/R0RcRkRlRmRnRoRiR›R_(((suD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldEvent.pyt<module>sZ                                                                    $                                          )