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 find_ent_in_sphere.


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

#1 NiczegoWinien

    Wszechpomocny

  • Użytkownik

Reputacja: 64
Pomocny

  • Postów:334
  • Lokalizacja:No Disc
Offline

Napisano 31.12.2014 00:17

Witam. Moglby ktos poprawic to co jest w dokumentacji badz wytlumaczyc mi jak to uzyc. Bo juz golym okiem widac ze to nie dziala. Probowalem pozmieniac wedlug siebie poprawic ale tylko konczylo sie na crashach serwera. Dziekuje


Użytkownik NiczegoWinien edytował ten post 31.12.2014 00:21

  • +
  • -
  • 0

#2 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 981
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 31.12.2014 01:07

Jak używałeś ?
  • +
  • -
  • 0

#3 t!ck3r.

    Nowy

  • Nowy

Reputacja: 0
Nowy

  • Postów:1
  • Imię:Grzegorz
  • Lokalizacja:Warszawa
Offline

Napisano 31.12.2014 02:11

1.Jak używałeś 2. coś zepsułes.


  • +
  • -
  • 0

#4 NiczegoWinien

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 64
Pomocny

  • Postów:334
  • Lokalizacja:No Disc
Offline

Napisano 31.12.2014 11:25

1.Jak używałeś 2. coś zepsułes.

 

Jak mozna zepsuc cos co nie dziala ? Takie posty sa tutaj zbedne.

 

 

Moj kod wyglada tak.

public destroy_ent(id)
{
    new Float:origin[3];
    entity_get_vector(id, EV_VEC_origin, origin);
    new ent = -1
    while((ent = find_ent_in_sphere(ent,origin,50.0)) != 0) {
        remove_entity(ent)
    }
}

Czytalem  pare tematow na ten temat i wynika to ze po prostu usuwam sam siebie. Potrzebny jest jakis warunek zeby nie szukalo graczy od 1 do 32.

 

 

 


  • +
  • -
  • 0

#5 NoLiFeR

    Wszechobecny

  • Użytkownik

Reputacja: 103
Zaawansowany

  • Postów:483
  • GG:
  • Imię:Adrian
  • Lokalizacja:Sosnowiec
Offline

Napisano 31.12.2014 12:11

remove_entity(ent) zamieniasz na

if(ent > 32)
remove_entity(ent)

  • +
  • -
  • 0

#6 NiczegoWinien

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 64
Pomocny

  • Postów:334
  • Lokalizacja:No Disc
Offline

Napisano 31.12.2014 12:36

Wlasnie juz troche kodu napisalem i twoj sposob tez nie zadziala poniewaz pobierze wszystkie enty dookola mnie. Oczywiscie warunek sie spelni ale i tak zacznie usuwac te enty ktore znalazl ,zaczynajac ode mnie.

public destroy_ent(id)
{
	new Float:origin[3]; 
	entity_get_vector(id, EV_VEC_origin, origin);
	new ent = -1
	while((ent = find_ent_in_sphere(ent,origin,200.0)) !=0)
	{
		if(ent > 32)
		{
			new b = find_ent_by_class(-1,"Moja_nazwa");
			server_print("%d", b); 
			new nazwa_klasy[32]
			entity_get_string(bulba, EV_SZ_classname, nazwa_klasy, 31);
			server_print("%s", nazwa_klasy); 
			if(ent == b)
				remove_entity(b); 
		}
	} 
}

Ten kod dziala ale nie za bardzo mi on odpowiada. Bo tworzac 4 takie same byty musze je usuwac po kolei. Nie moge zaczac usuwanie od konca poniewaz ent != b.


  • +
  • -
  • 0

#7 NoLiFeR

    Wszechobecny

  • Użytkownik

Reputacja: 103
Zaawansowany

  • Postów:483
  • GG:
  • Imię:Adrian
  • Lokalizacja:Sosnowiec
Offline

Napisano 31.12.2014 12:52

Chcesz usuwać po classname ?

 

public find_ents_around(id){
	new Float:fOrigin[3]; // tworzymy tablicę na współrzędne bytu
	entity_get_vector(id, EV_VEC_origin, origin); // pobieramy współrzędne gracza
	
	while((ent = find_ent_in_sphere(-1, fOrigin, 200.0)) != 0) 
	{
                   new x[33]
                   pev(ent,pev_classname,x)
		if(equal(x,"Twoja_Nazwa"))
                {
                remove_entity(ent)
                }
	}
}

Użytkownik NoLiFeR edytował ten post 31.12.2014 12:52

  • +
  • -
  • 1




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

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