Esempio n. 1
0
void zTCPClientTask::checkConn()
{
	//Zebra::logger->debug("zTCPClientTask::checkConn");
	zRTime currentTime;
	if (_ten_min(currentTime))
	{
		Cmd::t_NullCmd tNullCmd;    
		sendCmd(&tNullCmd,sizeof(tNullCmd));
	}
}
Esempio n. 2
0
void LTCPClientTask::checkConn()
{
	LRTime currentTime;
	if (_ten_min(currentTime))
	{
#ifdef _NULCMD
		Cmd::t_NullCmd tNullCmd;		
		sendCmd(&tNullCmd, sizeof(tNullCmd));
#endif
	}
}
Esempio n. 3
0
void SessionTimeTick::run()
{
	//int rush = 0;
	while(!isFinal())
	{
		zThread::msleep(50);

		//获取当前时间
		currentTime.now();

		recordClient->doCmd();
		SessionTaskManager::getInstance().execEvery();
		if (_five_sec(currentTime))
		{
		    HeroCardManager::getMe().timer();	//��������ƥ��
		}
#if 0
		if (_five_sec(currentTime)) {
			CDareM::getMe().timer();
			CNpcDareM::getMe().timer();
			CCityM::getMe().timer();
			CArmyM::getMe().timer();
		}

		if (_one_sec(currentTime))
		{
			CQuizM::getMe().timer();
			CUnionM::getMe().timer();
			CAllyM::getMe().timer();
			CArenaManager::getInstance().Arena_timer();
		}

		if (_ten_min(currentTime))
		{
			AuctionService::getMe().checkDB();
		}
#endif
		// [ranqd Add] Session每五分钟同步一次服务器在线状态
		if( _five_min(currentTime) )
		{
			UserSessionManager::getInstance()->notifyOnlineToGate();
		}

		if (_one_min(currentTime))
		{
			SessionService::getInstance().checkShutdown();
#if 0
			//SessionService::getInstance().checkGumu();
			CCountryM::getMe().timer();
			//CGemM::getMe().timer();
			CartoonPetService::getMe().writeAllToDB();
			EmperorForbid::getMe().timer();
#endif
			//定时动作
			time_t timValue = time(NULL);
			struct tm tmValue;
			zRTime::getLocalTime(tmValue,timValue);
			SessionService::getInstance().checkCountry(tmValue);

			//GM公告
			for (int i=0; i<=5; i++)
			{
				if (SessionService::wMsg[i].time)
				{
					if (SessionService::wMsg[i].count)
						SessionService::wMsg[i].count--;
					else
					{
						if (SessionService::wMsg[i].country)
							if (SessionService::wMsg[i].mapID)//区域公告
							{
								SceneSession *scene = SceneSessionManager::getInstance()
									->getSceneByID((SessionService::wMsg[i].country<<16)+SessionService::wMsg[i].mapID);
								if (scene)
								{
									Cmd::Session::t_broadcastScene_SceneSession send;
									strncpy(send.info,SessionService::wMsg[i].msg,MAX_CHATINFO);
									strncpy(send.GM,SessionService::wMsg[i].GM,MAX_NAMESIZE);
									send.mapID = (SessionService::wMsg[i].country<<16)+SessionService::wMsg[i].mapID;
									scene->sendCmd(&send,sizeof(send));
#ifdef _DEBUG
									Zebra::logger->debug("GM公告:%s:%s mapID=%u",send.GM,send.info,send.mapID);
#endif
								}
							}
							else//国家公告
								SessionChannel::sendCountryInfo(Cmd::INFO_TYPE_SCROLL,SessionService::wMsg[i].country,SessionService::wMsg[i].msg);
						else//世界公告
							SessionChannel::sendAllInfo(Cmd::INFO_TYPE_SCROLL,SessionService::wMsg[i].msg);

						SessionService::wMsg[i].count = SessionService::wMsg[i].interval;
						SessionService::wMsg[i].time--;
					}
				}
				if (0==SessionService::wMsg[i].time)
					SessionService::wMsg.erase(i);
			}
		}
#if 0
		if (_one_hour(currentTime))
		{
			MailService::getMe().checkDB();
			CVoteM::getMe().timer();
			CCountryM::getMe().timerPerHour();
			CCountryM::getMe().save();
		}
#endif
	}
}