PDA

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



Mi-Zaft
27.04.2014, 04:57
И снова всем привет! :)
Суть такова. В паблике OnPlayerGiveDamage я делаю заморозку игроку, который получает урон (damagedid)
И ставлю таймер.
По истечении таймера, должен срабатывать паблик

forward UnTazerTimer(damagedid);
public UnTazerTimer(damagedid)
{
TogglePlayerControllable(damagedid, true);
return 1;
}
Но он срабатывает не на того, кто получил урон, а на того, кто нанес этот урон.
как это исправить?
Заранее большое спасибо! :)

Salvacore
27.04.2014, 05:13
forward UnTazerTimer(playerid);
public UnTazerTimer(playerid)
{
return TogglePlayerControllable(playerid, true);
}
Проверяй.

- - - Добавлено - - -

Вызывайте как playerid

Mi-Zaft
27.04.2014, 05:32
Теперь вообще никого не размораживает :)

Salvacore
27.04.2014, 05:36
Теперь вообще никого не размораживает :)
как вызываете? Покажите паблик тот, и всё его содержимое.

Mi-Zaft
27.04.2014, 05:42
public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid)
TogglePlayerControllable(damagedid, false);
SetTimer("UnTazerTimer", 3000, 0); //Таймер до разморозки подозреваемого

forward UnTazerTimer(playerid);
public UnTazerTimer(playerid)
{
return TogglePlayerControllable(playerid, true);
}

DeimoS
27.04.2014, 05:49
SetTimer("UnTazerTimer", 3000, 0); //Таймер до разморозки подозреваемого
на

SetTimerEx("UnTazerTimer", 3000, 0, "i", damagedid); //Таймер до разморозки подозреваемого

Функция, которая вызывается пабликом, не знала откуда брать ID игрока и аргумент по стандарту был равен нулю. То есть, она всегда размораживала ID 0

Mi-Zaft
27.04.2014, 06:10
Огромное спасибо, ребят!)
Все отлично работает!)

Salvacore
27.04.2014, 06:57
Closed.