Смена карты по времени

Кирюха

Участник
Сообщения
152
Реакции
9
Всем привет...Задался вопросом - возможно ли сделать так,чтобы карты менялись по времени сервера???Пример: на сервере 3 карты - дд2,2000,авп_лего2 ..Надо сделать так,чтобы карты менялись по времени...Карта $2000$ - с 23.00-9.00,карта авп_лего - 9.00-15.00,карта дд2 - 15.00-23.00 ...Вроде пояснил понятно...Как бы такое чудо осуществить???Помогите пожалуйста...:beer:
 
Последнее редактирование:

The Slavik

Участник
Сообщения
437
Реакции
49
например такой вариант.
выставляешь длительность времени карты ( среднее для них) например по 9 часов(540), и ставишь плагин который будет менять не след. - когда на сервере будет написано 00:00 до конца карты.
 

Кирюха

Участник
Сообщения
152
Реакции
9
например такой вариант.
выставляешь длительность времени карты ( среднее для них) например по 9 часов(540), и ставишь плагин который будет менять не след. - когда на сервере будет написано 00:00 до конца карты.
Если бы мне нужно было бы так,то я бы даже и не открывал данную тему=)))Но как видите я указал временные рамки для каждой карты и мне интересно,чтобы карты менялись самостоятельно в таком временном промежутке: Карта $2000$ - с 23.00-9.00,карта авп_лего - 9.00-15.00,карта дд2 - 15.00-23.00 ...
 

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691
PHP:
#include <sourcemod>

// При запуске карты
public OnMapStart()
{
	// Запускаешь таймер
	CreateTimer(60.0, Timer, _, TIMER_FLAG_NO_MAPCHANGE|TIMER_REPEAT);
}

// Обрабатываешь таймер
public Action:Timer(Handle:timer)
{
	// Получаешь текущее время
	// %H - Часы
	// %M - Минуты
	decl String:time[25];
	FormatTime(time, sizeof(time), "%H%M", GetTime());

	// Преобразуешь число из строки
	new int = StringToInt(time);

	// Выставляешь "временные рамки"
	// 0000 - Двенадцать часов ночи
	// 1345 - Без пятнадцати два
	// И так далее
	if (0000 <= int <= 0200)
	{
		// Условие выполнится, если текущее время в пределах от двенадцати часов до двух часов ночи
	}
	else if (1200 <= int <= 1300)
	{
		// Условие выполнится, если текущее время в пределах от двенадцати часов до часу дня
	}
}

Небольшой примерчик
PHP:
#include <sourcemod>

new String:CurrentMap[50];

public OnMapStart()
{
	decl String:map[50];
	GetCurrentMap(map, sizeof(map));

	strcopy(CurrentMap, sizeof(CurrentMap), map);

	CreateTimer(60.0, Timer, _, TIMER_FLAG_NO_MAPCHANGE|TIMER_REPEAT);
}

public Action:Timer(Handle:timer)
{
	decl String:time[25];
	FormatTime(time, sizeof(time), "%H%M", GetTime());

	new int = StringToInt(time);

	if (0900 <= int <= 1500 && strcmp(CurrentMap, "awp_lego", false) != 0)
	{
		// AWP_LEGO будет в пределах от 9 до 15 часов
		ServerCommand("changelevel awp_lego");
	}
	else if (1500 <= int <= 2300 && strcmp(CurrentMap, "de_dust2", false) != 0)
	{
		// DE_DUST2 будет в пределах от 15 до 23 часов
		ServerCommand("changelevel de_dust2");
	}
}
 

Кирюха

Участник
Сообщения
152
Реакции
9
Благодарю!Скомпилирую - опробую...=)))А как быть , если у меня стоит автоперезагрузка сервера в 5 утра и начальная карта дд2 ???Плагин сменит карту на ту ,которая указана в данном временном промежутке сам или как быть,так как автоматический перезапуск сервера не хочу убирать???
 

Кирюха

Участник
Сообщения
152
Реакции
9
не получается скомпилировать((Чего за ерунда???Сорсмод 1.5.0. - жму на компил ,в папке компилед не появляется файл((В чём косяк,ребята???
 
Сверху Снизу