• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Правильное расположение SetTimer и удаление

CzarOfScripts

Новичок
В pawno я копаюсь всего меньше суток и хотелось бы разобраться с расположением таймера.
Я делаю систему сытости, и не совсем понимаю, где должен быть объявлен таймер и нужно ли его удалять.
Данная функция должна вызывать каждые допустим 10 секунд:
PHP:
foward satievityHandler(playerid);
public satievityHandler(playerid)
{
    new satievity = getPlayerInfo(playerid, playerSatievity);

    if (satievity > 0)
    {
        setPlayerInfo(playerid, playerSatievity, --satievity, true);
    }

    if (satievity <= 20)
    {
        new float:health = getPlayerInfoFloat(playerid, playerHealth);

        switch(satievity)
        {
            case 20, 15, 10:
            {
                GameTextForPlayer(playerid, "~r~You are hungry", 5000, 1);
            }
            case 5, 3, 1:
            {
                GameTextForPlayer(playerid, "~r~You are very hungry", 5000, 1);
                health -= 5;
            }
            case 0:
            {
                health -= 8;
            }
        }

        SetPlayerHealth(playerid, health);
        setPlayerInfoFloat(playerid, playerHealth, health, true);
    }

    return 1;
}
Дальше нам нужно запустить таймер, но в какой именно функции это делать?
  1. OnPlayerConnect? Допустим. Почему в нем? Игрок же еще не авторизовался. Нужно ли будет удалять таймер при дисконекте? Получается таймер будет создан для каждого игрока, правильно понимаю? Хорошая ли это идея?
  2. OnPlayerSpawn? Не будет ли создано при спавне несколько таймеров на функцию и они будут работать "наложено"? Нужно ли его удалять при смерти? Получается таймер будет создан для каждого игрока, правильно понимаю? Хорошая ли это идея?
  3. OnGameModeInit? Но как мы поймем, над каким игроком будет действие, или может придется "пробегаться" по всем игрокам и делать действия?
  4. После "авторизации" (персонажа спавнит, если он есть в базе), вопросы те же. Таймер будет для каждого игрока, это накладно? Нужно ли удалять таймер при дисконекте?
 
Сверху Снизу