PDA

Просмотр полной версии : [Вопрос] Глобальные и индивидуальные ежесекундные оюновления



Simlish
27.04.2015, 18:02
Здравствуйте обитатели Pro-pawn.ru.

Я не совсем уверен в практичности моих действий, а именно в обновлениях игрока. Вот что я сделал на данный момент. Вот таким образом я создал индивидуальные таймеры

enum PlayerInfo
{
// тут у меня и другое :D
pTimer
};
new pInfo[MAX_PLAYERS][PlayerInfo];

public OnPlayerConnect(playerid)
{
//
pInfo[playerid][pTimer] = SetTimerEx("OnIndividualUpdate", 250, 1, "d", playerid);
return true;
}

public OnPlayerDisconnect(playerid, reason)
{
//
KillTimer(pInfo[playerid][pTimer]);
return true;
}

forward OnIndividualUpdate(playerid);
public OnIndividualUpdate(playerid)
{
foreach(Player, p)
{
// бла бла бла
}
return true;
}
а таким глобальные

public OnGameModeInit()
{
SetTimer("OnGlobalUpdate", 1000, true);
return true;
}

forward OnGlobalUpdate();
public OnGlobalUpdate()
{
foreach(Player, p)
{
// asdasdas
}
return true;
}
Я правильно делаю? Или такой вариант не практичен в использовании + я не имею представления, что и когда использовать. :(

#Vito
28.04.2015, 22:00
Говорят, что индивидуальные таймеры лучше глобальных, хотя я не уверен..


forward OnIndividualUpdate(playerid);
public OnIndividualUpdate(playerid)
{
foreach(Player, p)
{
// бла бла бла
}
return true;
}
Здесь
foreach(Player, p) лишний, т.к. таймер будет для каждого игрока создаваться и делать там цикл не нужно.

Simlish
29.04.2015, 10:59
Спасибо. Доверюсь твоему предчувствию и буду юзать индивидуальные. Что мне в них нравится, что они при выходе игрока удаляются :)