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
 

Zdjęcie

Problem z usuwaniem enta.


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
1 odpowiedź w tym temacie

#1 Czaso Umilacz

    Profesjonalista

  • Użytkownik

Reputacja: 38
Życzliwy

  • Postów:152
  • Imię:Olek
  • Lokalizacja:Leszno
Offline

Napisano 01.11.2012 14:34

Witam,
napisałem plugin który ma taska na usuwanie etów o danej nazwie, każdy "obrót" taska jest zliczany do zmiennej kolejka, a każdy ent co powstanie ma przypisaną kolejkę usówania ( ostatni "obrót" + 1, by nie zdażało sie że ent znika po utworzeniu ) do parametru:
entity_set_int(ent, EV_INT_iuser4, kolejka);

Kiedy przychodi do sprawdzenia kolejki ( usunąc enta czy nie ), serwer crashuje, nie daje żadnej informacji do logów ani do konsoli.
Poniżej zarzucam kod tego majstersztyku:
public RemoveBox(){
set_task(20.0, "RemoveBox", TASK_REMOVE_BOX);

new ent = -1;
while((ent = find_ent_by_class(ent, CLASNAME_AMMOPACK)){
SafeRemoveEntity(ent, 1);
}

kolejka++;

client_print(0, print_chat, "%i", kolejka);
}

stock SafeRemoveEntity(ent, sprawdzaj=0){
if(!is_valid_ent(ent))
return;

if(sprawdzaj){
new kolejka_enta = entity_get_int(ent, EV_INT_iuser4);

if(kolejka < kolejka_enta)
return;
}

remove_entity(ent);
}


Więc co jest powodem tego problemu, lub czy zna ktos jakieś inne rozwiązanie dla mojej mysli usuwania entów.

Użytkownik Czaso Umilacz edytował ten post 01.11.2012 14:35

  • +
  • -
  • 0

#2 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 02.11.2012 08:11

sprobuj tak



stock SafeRemoveEntity(ent, sprawdzaj=0)
{
if(!is_valid_ent(ent))
return -1;

if(sprawdzaj)
{
new kolejka_enta = entity_get_int(ent, EV_INT_iuser4);

if(kolejka < kolejka_enta)
return -1;
}

remove_entity(ent);
return 1;
}

  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych