Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Sizar32 - zdjęcie

Sizar32

Rejestracja: 25.06.2009
Aktualnie: Nieaktywny
Poza forum Ostatnio: 17.07.2012 14:02
-----

#425881 [ROZWIĄZANE] Plugin anty-camp zombie

Napisane przez Pan PrO w 29.06.2012 20:12

napisz w zmiennych globalnych

new infec;

i zmien zp_user_infected_post(id, infector) na ten

public zp_user_infected_post(id, infector)
infec = infector

i zmienna infec będzie ci zwracać id osoby która zaraziła człowieka
  • +
  • -
  • 1


#425885 [ROZWIĄZANE] Plugin anty-camp zombie

Napisane przez Gość w 29.06.2012 20:22

To zmienna infec nie działała jako infector

Inicjując zmienną wewnątrz funkcji zp_user_infected_post(), inicjujesz ją lokalnie, a zmienne lokalne nie są dostępne nigdzie poza funkcją, w której zostały zainicjowane.
Należy użyć zmiennej globalnej, tzn. zainicjować ją na zewnątrz jakiejkolwiek funkcji. Wówczas wystarczy zmienić jej wartość, a będzie możliwe odczytanie jej wartości wszędzie.


#425477 [ROZWIĄZANE] Plugin anty-camp zombie

Napisane przez Pan PrO w 28.06.2012 18:44

Powinno działać



#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <zombieplague>

new Odliczaniemadmg[33]

public plugin_init()
{
register_event("Damage", "Damage", "b", "2!=0")
}
public Damage(id, infector)
{
new vid = read_data(0) // vid == id
new kid = get_user_attacker(id) // Gracz atakujacy
if((zp_get_user_zombie(id) && is_user_alive(id)) && (vid || kid))
{
set_task ( 1.0, "madmg", id )
}
}
public madmg(id)
{
Odliczaniemadmg[id] = 60 // Czas kampienia

if(task_exists(id + 3431))
{
remove_task(id + 3431)
}
set_task(1.0, "koniecdmg", id + 3431, _, _, "b")

return PLUGIN_CONTINUE
}
public koniecdmg(task_id)
{
new id = task_id - 3431

set_hudmessage(255, 255, 255, -1.00, 0.25, 2, 0.02, 1.0, 0.01)
show_hudmessage(id, "Masz %d sekund na zatakowanie ludzi.", Odliczaniemadmg[id])
Odliczaniemadmg[id] -= 1

if(!is_user_connected(id) || !is_user_alive(id) || Odliczaniemadmg[id] <= 0)
{
if(task_exists(task_id))
{
user_kill(id)
remove_task(task_id)
}
}
if(!zp_get_user_zombie(id) || !is_user_connected(id) || !is_user_alive(id) || Odliczaniemadmg[id] <= 0)
{
if(task_exists(task_id))
{
remove_task(task_id)
}
}

}

public zp_user_infected_post(id, infector)
{
Odliczaniemadmg[infector] = 0
remove_task(task_id)
return PLUGIN_CONTINUE
}

  • +
  • -
  • 1