Доступ к готовым решениям

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Мануал Рабочая система "рекорд онлайна" от Presskey ( второй nick - scred ).

scred

Начинающий
Пользователь
Регистрация
2 Ноя 2019
Сообщения
17
Лучшие ответы
0
Репутация
1
На некоторых серверах замечал эту систему, но она была с багами, там считался не рекордный онлайн, а
кол-во подключений к серверу, вот сделал свою, доработанную.

В начало мода:​
PHP:
new online, ronline;
В onplayerconnect:​
PHP:
OnPlayerConnect(playerid)
{
	online += 1;
	return 1;
}
В onplayerdisconnect:​
PHP:
OnPlayerDisconnect(playerid, reason)
{
	online -= 1;
	return 1;
}
В ongamemodeinit и ongamemodeexit:
PHP:
OnGameModeInit()
{
	online = 0;
	return 1;
}
PHP:
OnGameModeExit()
{
	online = 0;
	return 1;
}
Таким образом мы сделали переменную, в которую будет записываться онлайн.
Теперь нам нужен UpdateTimer, если у вас его нет, то:
В ongamemodeinit:​
PHP:
OnGameModeInit()
{
	SetTimer("UpdateTimer", 1000, 1);
	return 1;
}
Теперь в конце мода создаем fpublic:​
PHP:
fpublic UpdateTimer()
{
	return 1;
}
Все, теперь у вас есть UpdateTimer, продолжаем:
В UpdateTimer():​
PHP:
fpublic UpdateTimer()
{
	if(online > ronline) ronline = online;
	return 1;
}
Вот и все!, теперь у нас есть переменная, в которой записан рекордный онлайн.
Вот применение:
В onplayerconnect:​
PHP:
OnPlayerConnect(playerid)
{
	new string[128];
	format(string, sizeof string, "Рекорд онлайна: %d", ronline);
	SendClientMessage(playerid, COLOR_WHITE, string);
	return 1;
}
Но после перезапуска сервера рекордный онлайн сброситься, что делать?:
В конец мода:​
PHP:
stock GetRonline()
{
	new asd;
	new inif = ini_openFile("other.ini");
	ini_getInteger(inif, "ronline", asd);
	ini_closeFile(inif);
	return asd;
}
Еще в конец:​
PHP:
stock SetRonline(ro)
{
	new inif = ini_openFile("other.ini");
	ini_setInteger(inif, "ronline", ro);
	ini_closeFile(inif);
	return true;
}
Теперь обновляем updatetimer:​
PHP:
fpublic UpdateTimer()
{
	if(online > ronline)
	{
		ronline = online;
		SetRonline(ronline);
	}
	return 1;
}
И в ongamemodeinit ( после ronline = 0 ):​
PHP:
OnGameModeInit()
{
	// тут ronline = 0; уже можно убрать
	ronline = GetRonline();
	return 1;
}
Вот и все!, надеюсь на плюсик..
Автор - я;
 
Сверху Снизу