CzarOfScripts
Новичок
В pawno я копаюсь всего меньше суток и хотелось бы разобраться с расположением таймера.
Я делаю систему сытости, и не совсем понимаю, где должен быть объявлен таймер и нужно ли его удалять.
Данная функция должна вызывать каждые допустим 10 секунд:
Дальше нам нужно запустить таймер, но в какой именно функции это делать?
Я делаю систему сытости, и не совсем понимаю, где должен быть объявлен таймер и нужно ли его удалять.
Данная функция должна вызывать каждые допустим 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;
}
- OnPlayerConnect? Допустим. Почему в нем? Игрок же еще не авторизовался. Нужно ли будет удалять таймер при дисконекте? Получается таймер будет создан для каждого игрока, правильно понимаю? Хорошая ли это идея?
- OnPlayerSpawn? Не будет ли создано при спавне несколько таймеров на функцию и они будут работать "наложено"? Нужно ли его удалять при смерти? Получается таймер будет создан для каждого игрока, правильно понимаю? Хорошая ли это идея?
- OnGameModeInit? Но как мы поймем, над каким игроком будет действие, или может придется "пробегаться" по всем игрокам и делать действия?
- После "авторизации" (персонажа спавнит, если он есть в базе), вопросы те же. Таймер будет для каждого игрока, это накладно? Нужно ли удалять таймер при дисконекте?
