←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Dana funkcja co x sekund / Czas trwania.

Zablokowany

  • +
  • -
Onyke - zdjęcie Onyke 28.11.2010

Witam.
Jak zrobić żeby
a) Daną funkcję można było wykonywać co x sekund. (Np. zrobiłbym funkcję co leczy ileś tam hp)
B) Dana funkcję można było wykonywać co x sekund i trwała y sekund. (Np. Zrobić niewidzialność co trwa ileś tam sek.)
c) Daną funkcję można było wykonywać x razy na rundę. (Np. teleport na resp)

Pozdrawiam.
Odpowiedz

GoldeN - zdjęcie GoldeN 28.11.2010

c)

new uzyl_przedmiot[33];


public function(id)
{
if(uzyl_przedmiot[id] == 2)
{
client_print(id, print_center, "Tej funkcji mozesz uzyc maksymalnie 2 razy na runde")
return PLUGIN_CONTINUE;
}

set_user_health(id, 200)
uzyl_przedmiot[id]++

return PLUGIN_CONTINUE;

}


W evencie nowej rundy:

uzyl_przedmiot[id] = 0


a)

new timer[33];


public function2(id)
{
if (halflife_time()-timer[id] <= 5)
{
client_print(id, print_center, "Tej funkcji mozesz uzyc co 5 sekund")
return PLUGIN_CONTINUE;
}

timer[id] = floatround(halflife_time())

set_user_health(id, 200)
return PLUGIN_CONTINUE;
}


W evencie nowe rundy:

timer[id] = 0


Powinno działać.



B)

public function2(id)
{
if (halflife_time()-timer[id] <= 15)
{
client_print(id, print_center, "Tej funkcji mozesz uzyc co 15 sekund")
return PLUGIN_CONTINUE;
}
timer[id] = floatround(halflife_time())
set_task(0.1, "function_action", id+666)
return PLUGIN_CONTINUE;
}


public function_action(id)
{
id-=666

set_user_noclip(id, 1)
set_Task(5.0, "function_end", id+333)
return PLUGIN_CONTINUE;
}


public function_end(id)
{
id -= 333
set_user_noclip(id, 0)
}


Czyli da noclip na 5 sekund i wyłączy. Co 15 sekund można noclipu użyć.

Do evewntu startu rundy:

timer[id] = 0


Przepraszam za jakość, pisane na forum.
Użytkownik GoldeNx3 edytował ten post 28.11.2010 16:01
Odpowiedz
Zablokowany