←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

fm_find_ent_by_owner - możliwe, że zwraca 0?


Najlepsza odpowiedź GwynBleidD 18.07.2015 23:01

Oczywiście, że może. Z logicznego punktu widzenia: pętla iteruje po bytach dopóki nie trafi na:

1. byt mający właściciela X

2. koniec listy bytów

 

Więc jeśli nie ma żadnego bytu spełniajacego kryteria (czyli bytu o klasie X mającego właściciela Y) to dostaniesz oczywiście zero.

 

I szczerze powiedziawszy jest to nienajlepsza metoda... W engine istnieje funkcja find_ent_by_owner, służy do tego samego i robi to ciut szybciej. Może też filtrować po czymś innym niż klasie bytu.

Przejdź do postu

  • +
  • -
Rivit - zdjęcie Rivit 18.07.2015

Witam, czy jest możliwość, żeby ten stock zwracał zero? oO

stock fm_find_ent_by_owner(index, const classname[], owner)
{
	ent = index;

	while ((ent = engfunc(EngFunc_FindEntityByString, ent, "classname", classname)) && pev(ent, pev_owner) != owner) {}

	return ent;
}

Odpowiedz

  • +
  • -
MAGNET - zdjęcie MAGNET 18.07.2015

Wydaje mi się, że gdy robiłem grupy pod BaseBuildera, to próba odnalezienia właściciela ściany kończyła się zwróceniem zera.

Odpowiedz

  • +
  • -
Najlepsza odpowiedź GwynBleidD - zdjęcie GwynBleidD 18.07.2015

Oczywiście, że może. Z logicznego punktu widzenia: pętla iteruje po bytach dopóki nie trafi na:

1. byt mający właściciela X

2. koniec listy bytów

 

Więc jeśli nie ma żadnego bytu spełniajacego kryteria (czyli bytu o klasie X mającego właściciela Y) to dostaniesz oczywiście zero.

 

I szczerze powiedziawszy jest to nienajlepsza metoda... W engine istnieje funkcja find_ent_by_owner, służy do tego samego i robi to ciut szybciej. Może też filtrować po czymś innym niż klasie bytu.

Odpowiedz

  • +
  • -
Rivit - zdjęcie Rivit 19.07.2015

Głównie używam to do znalezienia broni u gracza, polecasz coś lepszego do tego? (mam id, CSW_, weapon_)

Odpowiedz