PDA

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



Skyline
14.04.2017, 23:24
При PayDay выдается почему то ЗП 2 раза..
Подскажите, почему выдается 2 раза?

В Секундном таймере:

if(minute == 0 && second == 0)
{
PayDay();
}


forward PayDay();
public PayDay()
{
foreach(Player, i)
{
new string[100];
pInfo[i][pExp] += 2;
new zp = pInfo[i][pPayCheck];
GivePlayerMoney(i, zp);
format(string, sizeof string, "Вы получили зарплату $%d", pInfo[i][pPayCheck]);
SendClientMessage(i,0xFFFFFFAA, string);
pInfo[i][pPayCheck] = 0;
return 0;
}
return 0;
}

#Johnson
14.04.2017, 23:44
замени

if(minute == 0 && second == 0)
на

if(minute == 00 && second == 00)

ziggi
14.04.2017, 23:55
замени

if(minute == 0 && second == 0)
на

if(minute == 00 && second == 00)

Не поможет, надо так:

if(minute == 000 && second == 000)

А если серьёзно: таймер успевает сработать за секунду дважды, поэтому и срабатывает дважды.

P.S. Ты же в курсе, что твой PayDay выдаётся только одному игроку?

Skyline
15.04.2017, 00:28
Не поможет, надо так:

if(minute == 000 && second == 000)

А если серьёзно: таймер успевает сработать за секунду дважды, поэтому и срабатывает дважды.

P.S. Ты же в курсе, что твой PayDay выдаётся только одному игроку?

Да нет, выдается всем, просто при срабатывании по 2 раза.

Geebrox
15.04.2017, 13:46
тогда ищи функцию PayDay, возможно ты еще где нибудь используешь его.

Nash_Brigers
15.04.2017, 14:04
Да нет, выдается всем, просто при срабатывании по 2 раза.
ziggi правильно сказал, что таймер успевает дважды сработать.. Таймеры в pawn далеко не идеальны и могут по-быстрее тикать, нежели часы на компе, типа чекнул время в 0.1 секунды и в 0.9..
p.s. return в цикле лишний)