示例#1
0
void ClientCore::Tick(void)
{
	nm.Tick();
#if defined (FMP_CONSOLE_CLIENT)
	conscreen.CheckUserInput();
	Sleep(100);
#endif
}
示例#2
0
void ServerCore::Tick(void)
{
	conscreen.CheckUserInput();
	nm.Tick();
	gametime.tickcount++;

	curtime = time(0);

	if (gametime.tickcount == gametime.ticksperminute)
	{
		gametime.tickcount = 0;
		this->IncrementGameTime();
		this->UpdateCaption();
	}
	if(curtime - lastcheck >= 30000)
	{
		lastcheck = curtime;
		nm.CheckClients();
	}
	if (!lan)
	{
		if (curtime - lastmasterservercheck >= 3600000)
		{
			lastmasterservercheck = curtime;
			if (!msm.RegisterServer(port, hostname, gamemodename, L"World", maxplayers, password))
			{
				Log::Warning(L"Unable to register server.");
			}
		}
	}
	long curmtime = msec_time();
	for(int i = 0; i < MAX_TIMERS; i++)
	{
		if(scripttimers[i].timeout > 0)
		{
			if(curmtime >= scripttimers[i].time)
			{
				if(!vmm.CallSomeCallback(scripttimers[i].callback, scripttimers[i].param))
				{
					KillTimer(i);
				}
				else
					scripttimers[i].time = curmtime + scripttimers[i].timeout;
			}
		}
	}
	Sleep(sleepcount);
}