Здравствуйте !
У меня не хватает фантазии как можно отследить зажатие кнопки (use button)
Дело в том что если кнопка зажата должно выполняться одно действие непрерывно !
А если кнопка отпущена , то другая функция .
Нашел на форуме пример но он не подходит
Цитата (_wS_)
new bool:g_Hold[MAXPLAYERS + 1];
public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon)
{
if (buttons & IN_ATTACK)
{
if (!g_Hold[client])
{
// зажал
g_Hold[client] = true;
}
}
else if (g_Hold[client]) /// Функция прерывается
{
// отпустил
g_Hold[client] = false;
}
}
Так как там функция будет прерываться !
И запускаться заново ...
У меня была идея сделать через таймеры
Код
new bool:g_Hold[MAXPLAYERS + 1];
public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon)
{
if (buttons & IN_ATTACK)
{
if (!g_Hold[client])
{
// зажал
g_Hold[client] = true;
Timer[client] = CreateTimer(0.5, Timer_EndBarTimer, client);/// Таймер закончит функцию если его не убить
}
}
else if (g_Hold[client])
{
// отпустил
KillTimer(Timer[client]); ///Убиваем таймер
g_Hold[client] = false;///Но игрок может отпустить кнопку во время удаления таймера и функция будет продолжать работать .
}
}
Есть идеи как сделать по другому ?