PDA

Просмотр полной версии : [Вопрос] Нужен перевод.



AlexDizaro
26.08.2015, 23:27
Нужно перевести на более "простой" язык). Речь идет про индивидуальные таймеры для каждого игрока ( PlayerUpdate ).
OnPlayerDisconnect не вызывается при дудосе, ох уж эти дудосиры...


отсальное обновляй через
типа
static tick_timer[MAX_PLAYERS];

if tick_timer(source) < 4
tick_timer(source) += 1
if tick
и так до 4х
обновляем то что нужно обновить за секунду
но
анти-читы туда не пихаем
это раз
в начале лучше делать проверку на коннект
если её нет
обнуляем все переменные
и убиваем таймер
таймер лучше создать через пвар
пример: SetPVarInt(playerid,"SourceTimer",SetTimerEx("UpdatePlayer","d",playerid));
убивать так: KillTimer(GetPVarInt(playerid,"SourceTimer"));
что ещё может освободить память в стеке
Особо интересны вот эти моменты :
tick_timer(source)

таймер лучше создать через пвар
пример: SetPVarInt(playerid,"SourceTimer",SetTimerEx("UpdatePlayer","d",playerid));
убивать так: KillTimer(GetPVarInt(playerid,"SourceTimer"));

#Vito
28.08.2015, 23:30
"Простой" - язык Pawn?

В начало мода:

static tick_timer[MAX_PLAYERS];
В OnPlayerConnect

SetPVarInt(playerid,"SourceTimer",SetTimerEx("UpdatePlayer", 250, true, "i", playerid));

public UpdatePlayer(playerid)
{
if(!IsPlayerConnected(playerid)) return KillTimer(GetPVarInt(playerid,"SourceTimer"));
if(tick_timer[playerid] < 4) tick_timer[playerid]++;
else if(tick_timer[playerid] >= 4)
{
tick_timer[playerid] = 0;
//Твой код
}
return 1;
}