PDA

Просмотр полной версии : [Вопрос] Отсчет времени.



Skyline
26.04.2017, 01:27
При подачи команды отсчет происходить должен так, 5, 4, 3, 2, 1, ПОГНАЛИ.
Происходит таким образом 5, 4, 3, 2, ПОГНАЛИ.

Почему то 1 пропускает, не могу понять почему, подскажите пожалуйста.

if(InZone[i] == true)
{
new string[3];
if(DMTime[i] < 1) continue;
format(string, sizeof(string), "%d",DMTime[i]);
GameTextForPlayer(i, string, 500, 6);
PlayerPlaySound(i, 1057, 0, 0, 0);
DMTime[i] --;
if(DMTime[i] == 0)
{
GameTextForPlayer(i, "ÏÎÃÍÀËÈ", 900, 6);
PlayerPlaySound(i, 1057, 0, 0, 0);
TogglePlayerControllable(i, 1);
}
}

DeimoS
26.04.2017, 02:56
Ты сначала показываешь, потом отнимаешь и потом проверяешь.
То бишь, когда у тебя на экране показано 2, переменная ровна 1. Соответственно, на экране должно быть 1, переменная ровна 0 и срабатывает проверка, в которой второй текст с "ПОГНАЛИ" показывается, перекрывая единицу.

Вот

if(InZone[i] == true)
{
if((DMTime[i]--) < 1)
continue;
if(DMTime[i])
{
new string[3];
format(string, sizeof(string), "%d", DMTime[i]);
GameTextForPlayer(i, string, 500, 6);
}
else
{
GameTextForPlayer(i, "ПОГНАЛИ", 900, 6);
TogglePlayerControllable(i, 1);
}
PlayerPlaySound(i, 1057, 0, 0, 0);
}
Только DMTime присваивай 6, а не 5, дабы в GameTextForPlayer отсчёт шел с 5 до 1

Skyline
26.04.2017, 10:49
Спасибо огромное) Можно закрывать.