←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

[ROZWIĄZANE] Wykrycie gracza na ziemi (nie...


Najlepsza odpowiedź MAGNET 14.08.2014 08:55

@CheQ

 

W moim przypadku wystarcza sprawdzać, czy id enta jest równe 0 - nie ma właściciela, ale to pasuje pod BaseBuildera - nie wiem dalej, jak to by wyglądało na innych modyfikacjach. Żmudniejszym rozwiązaniem byłoby stworzenie jakiegoś bytu/bytów na ziemi - jest to rozwiązanie ale strasznie czasochłonne. Jeśli teren byłby równy (nie ma górek itp) można sprawdzać origin wysokości na początku rundy i na nim bazując, sprawdzać czy gracz jest na ziemi. Innych wyjść nie widzę

 

Przejdź do postu
Zablokowany

  • +
  • -
MAGNET - zdjęcie MAGNET 14.08.2014

Witam

 

Jak sprawdzić, czy gracz stoi na ziemi w znaczeniu normalnej ziemi?

 

Dzięki za odpowiedź

Odpowiedz

^Technik^ - zdjęcie ^Technik^ 14.08.2014


is_user_crouching(id) - true jeżeli gracz kuca
is_user_moving(id) - true jeżeli gracz jest w ruchu (nie locie)
is_user_onground(id, targetentity=0) - true jeżeli gracz jest na ziemi, przy uwzględnionym parametrze targetentity wykrywa czy podłożem jest dany index
is_near_target(id, idtarget, Float:distance) - true jeżeli gracz sie znajduje w odległości distance obok podanego idtarget
is_user_jumping(id) - true jeżeli gracz skacze (jest w powietrzu)

 

Stocki zwracające liczby w postaci int

 

 

getClosestPlayer(id, Type:ignoreteammates) - zwraca najbliższego gracza obok danego id, przy uwzględnionym IGNORUJ_SWOICH bedzie zwracać tylko przeciwników

 

Załączone pliki

  • Załączony plik  posmv.inc   1,92 KB   20 Ilość pobrań

Użytkownik ^Technik^ edytował ten post 14.08.2014 01:42
Odpowiedz

  • +
  • -
MAGNET - zdjęcie MAGNET 14.08.2014

I gdzie tutaj jest na ziemi? Zwraca tylko czy stoi, bądź stoi na jakimś id

Odpowiedz

^Technik^ - zdjęcie ^Technik^ 14.08.2014

PRZEPRASZAM ZLE ZROZUMIAŁEM 

 

 

 

if(pev(id, pev_flags) & FL_ONGROUND){

//Gracz stoi na "czymś(ZIEMI)"

}

 

Jak chcesz sprawdzić czy stoi na danym bycie to w touchu

 

if(pev(id, pev_flags) & FL_ONGROUND && pev(id, pev_groundentity) == ent){

//Gracz stoi na bycie

}

 

lub

 

 

if(pev(id,pev_flags)&FL_ONGROUND || pev(id,pev_flags)&FL_PARTIALGROUND)

 

 

gracz może stać tylko częściowo na ziemi 

 

 


Użytkownik ^Technik^ edytował ten post 14.08.2014 02:00
Odpowiedz

  • +
  • -
MAGNET - zdjęcie MAGNET 14.08.2014

Nie, to bedzie sprawdzalo, czy gracz wogole na czyms stoi, a mnie interesuje ziemia.

Mniejsza o to, juz wykminilem jak to rozwiazac.

Dzieki za probe pomocy
dasiek (14.08.2014 07:03):
podzielisz się jak rozwiązałeś to zanim zamkniemy? ;)
Odpowiedz

  • +
  • -
Najlepsza odpowiedź MAGNET - zdjęcie MAGNET 14.08.2014

@CheQ

 

W moim przypadku wystarcza sprawdzać, czy id enta jest równe 0 - nie ma właściciela, ale to pasuje pod BaseBuildera - nie wiem dalej, jak to by wyglądało na innych modyfikacjach. Żmudniejszym rozwiązaniem byłoby stworzenie jakiegoś bytu/bytów na ziemi - jest to rozwiązanie ale strasznie czasochłonne. Jeśli teren byłby równy (nie ma górek itp) można sprawdzać origin wysokości na początku rundy i na nim bazując, sprawdzać czy gracz jest na ziemi. Innych wyjść nie widzę

 

Odpowiedz
Zablokowany