Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Пожертвовать Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Нужно подкорректировать код
dases2003 Дата: Воскресенье, 21.09.2014, 07:57:00 | Сообщение # 1
Сообщений: 107
Репутация: 1 [ +/- ]
public start_hp_regen(Handle:event, const String:name[], bool:dontBroadcast) {
new client = GetClientOfUserId(GetEventInt(event, "userid"));
if (class[client] == 2) {
TimerHP[client] = true;
if (TimerHP[client] == true) {
CreateTimer(5.0, IntRegen, client, TIMER_REPEAT);
TimerHP[client] = false;
}
}
}

public Action:IntRegen(Handle:timer, any:client) {
if(hp_RegenTimer[client] == INVALID_HANDLE)
{
hp_RegenTimer[client] = CreateTimer(1.0, Regenerate, client, TIMER_REPEAT);
TimerHP[client] = true;
}
}

public Action:Regenerate(Handle:timer, any:client) {
new hp = GetClientHealth(client);
if(hp < 100)
{
SetClientHealth(client, hp + 5);
}
else
{
SetClientHealth(client, 100);
hp_RegenTimer[client] = INVALID_HANDLE;
KillTimer(timer);
}
}

Задача такова, если в игрока попали 1 раз, создается таймер 5 сек.
Если повторно попали в течении 5 сек нужно убить старую цепочку таймеров и создать поверх нее новую, такую же, чтобы не было регена во время стрельбы по игроку


Сообщение отредактировал dases2003 - Воскресенье, 21.09.2014, 08:01:06
 
Valeriks Дата: Воскресенье, 21.09.2014, 13:30:59 | Сообщение # 2
Сообщений: 100
Репутация: 3 [ +/- ]
dases2003 у вас нет определения того чего вы хотите. Допустим, если сделать подъем здоровья после попадания на 25 хп то тут проще добавить считалочку, и потом через условия останавливать таймер. Если же вы хотите поднимать здоровье до 100 то смысл вообще чего-то менять? у вас же стоит else SetClientHealth(client, 100); на случай если хп будет больше ста.
 
dases2003 Дата: Воскресенье, 21.09.2014, 16:49:52 | Сообщение # 3
Сообщений: 107
Репутация: 1 [ +/- ]
Мне нужно чтобы после попадания как в call of duty или bf
Во время попадания по игроку хп не регенилось, а если прекратили стрелять по нему то, ждем 5 сек, и начинаем регенить
А если во время регена или таймера попали ещё раз прерывалась регенирация и соответственно таймер 5 сек убивался


Сообщение отредактировал dases2003 - Воскресенье, 21.09.2014, 16:54:59
 
Samil Дата: Воскресенье, 21.09.2014, 17:16:05 | Сообщение # 4
Сообщений: 59
Репутация: 11 [ +/- ]
Проблема решена, спасибо BarD-у
 
  • Страница 1 из 1
  • 1
Поиск: