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 wykryciem bytu przez find_sphere_class


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

#1 MAGNET

    SourceLearned ;)

  • Moderator

Reputacja: 661
Wszechmogący

  • Postów:1 535
  • GG:
  • Imię:Olek
  • Lokalizacja:Dalekoo
Offline

Napisano 07.08.2014 01:16

Witam

 

Przed chwilą postanowiłem, że machnę na szybko plugin, który będzie wykrywał, czy klocek, który opuściłem, jest w x odległości od bramy, to coś tam się dzieje. Jednak nie wiem dlaczego, ale nic się nie wywołuje

 

Krótkie wyjaśnienie:

 

bb_grab_post - wywoływany, kiedy gracz podniesie klocek

 

bb_drop_post - wywoływany, gdy gracz opuści klocek

 

#define GetLastMover(%1)   ( entity_get_int( %1, EV_INT_iuser4     ) )

 

fragment SMA:

public bb_grab_post(id,ent)
{
if(GetLastMover(ent) != id && GetLastMover(ent) != 0)
{
static iLast;
iLast = pev(ent,pev_iuser4);
 
wlasciciel[id] = iLast;
klocek[id] = ent;
}
}
 
public bb_drop_pre(id, ent)
set_task(0.3, "Odblokowanie", id+2128);
 
 
public Odblokowanie(id)
{
id -= 2128;
 
new entlist[33];
new numfound = find_sphere_class(klocek[id], "barrier", 250.0, entlist, 32)
 
for (new i=0; i < numfound; i++)
{
new pid = entlist[i];
 
set_pev( pid, pev_origin, origin[pid] );
ColorChat(id, GREEN, "[BaseBuilder]^x01 Nie blokuj wejscia!");
}
 
}

Liczę na szybką pomoc i oczywiście standardowo pozdrawiam :3


  • +
  • -
  • 0

#2 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

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

Napisano 07.08.2014 08:56

Tablica klocek nie jest Ci potrzebna
 

Która z tych funkcji się nie wywołuje ? 

 

Napewno podałeś poprawny classname ?


  • +
  • -
  • 1

#3 MAGNET

    SourceLearned ;)

  • Autor tematu
  • Moderator

Reputacja: 661
Wszechmogący

  • Postów:1 535
  • GG:
  • Imię:Olek
  • Lokalizacja:Dalekoo
Offline

Napisano 07.08.2014 09:06

tablica klocek jest z innego jeszcze fragmentu kody - zapomnialem jej wywalic

 

Nie wywołuje się ani przenoszenie klocka ani ColorChat

 

Szczerze powiedziawszy to nie mam pewności, czy nazwa barrier jest poprawna, ale wziąłem to w kodu HideObject

if( equal( szTargetname, "ignore" ) )
continue;
if( equal( szTargetname, "barrier" ) )
continue;

 

Więc mniemam, że nazwa bramy to właśnie barrier. Darku,  napisałem kiedyś dokładniee taki sam plugin, tylko nie ma go już na forum. Może przypominasz sobie, jaką nazwę miała brama?


  • +
  • -
  • 0

#4 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

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

Napisano 07.08.2014 09:10

bb_drop_pre a nie powinno być bb_drop_post ?

 

Sprawdź czy napewno forward jest wykonywany


  • +
  • -
  • 1

#5 MAGNET

    SourceLearned ;)

  • Autor tematu
  • Moderator

Reputacja: 661
Wszechmogący

  • Postów:1 535
  • GG:
  • Imię:Olek
  • Lokalizacja:Dalekoo
Offline

Napisano 07.08.2014 09:33

próbowałem tak i tak

tak, jest wykonywany, bo sprawdzałem


  • +
  • -
  • 0

#6 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

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

Napisano 07.08.2014 09:36

Wszystko jasne find_sphere_class szuka po classname a powinniśmy szukać po targetname

 

barrier zmień na func_wall i dodaj warunek

new szTargetname[32];
pev( pid, pev_targetname, szTargetname, 31 );
if( equal( szTargetname, "ignore" ) )
continue;
if( equal( szTargetname, "barrier" ) )
continue;

  • +
  • -
  • 1

#7 MAGNET

    SourceLearned ;)

  • Autor tematu
  • Moderator

Reputacja: 661
Wszechmogący

  • Postów:1 535
  • GG:
  • Imię:Olek
  • Lokalizacja:Dalekoo
Offline

Napisano 07.08.2014 19:57

chyba raczej

if( equal( szTargetname, "barrier" ) )
{
cos tam
}

 

?


  • +
  • -
  • 0




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

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