Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).
Стол заказов:
Мои работы:
А ещё можно создать новый итератор в foreach и проверять только тех, кто действительно авторизируется :3 Но это уж совсем для извращенцев.
Я бы всё же остановился на варианте с индивидуальными таймерами или убивал бы таймер, если на данный момент никто не авторизируется. Как-то попусту гонять цикл, как по мне, не комильфо
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Итератор займёт 4004 байта (MAX_PLAYERS + 1 ячеек). Сомнительная польза, особенно на фоне того, что Londlem изначально решил сэкономить с размером массива под время.
PHP код:
static auth_countdown_time[MAX_PLAYERS char];
static auth_countdown_total_players = 0;
static auth_countdown_func_name[] = !"@__AuthCountdownTimer";
static auth_countdown_timer;
StartAuthCountdown(playerid, time)
{
auth_countdown_time{playerid} = time;
if (auth_countdown_total_players++ == 0)
auth_countdown_timer = SetTimer(auth_countdown_func_name, 1000, true);
}
StopAuthCountdown(playerid)
{
auth_countdown_time{playerid} = 0;
if (--auth_countdown_total_players == 0)
KillTimer(auth_countdown_timer);
}
@__AuthCountdownTimer();
@__AuthCountdownTimer()
{
#if defined foreach && !defined FOREACH_NO_PLAYERS
foreach(Player:i)
#else
static i;
for (i = GetPlayerPoolSize() + 1; i-- != 0;) if (IsPlayerConnected(i))
#endif
{
if ((auth_countdown_time{i} != 0) && (--auth_countdown_time{i} == 0))
{
SendClientMessage(i,-1,"Время на регистрацию/авторизацию истекло.");
Kick(i);
}
}
}
И так я случайно изобрёл новый инклуд. Опять.
Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).
Стол заказов:
Мои работы:
Nurick (03.05.2016)
Ну, во-первых, зависит от того, какое число скрывается за MAX_PLAYERS :D
Во-вторых, если ставить перед собой цель сделать максимально "лёгкий" код, боясь выделить пару лишних байт, то да - такой метод не подойдёт. Но, как по мне, быстродействие и минимальна нагрузка оправдывают подобный жор памяти.
Тем более, что такой итератор можно использовать не только для цикла, но и реализовать другие системы (например, проверку на авторизацию сделать более функциональней, проверяя наличие игрока в итераторе). Зависит от конкретной ситуации
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)