Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

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

[ROZWIĄZANE] Sprawdzanie czy ent jest w ścianie czy w ziemi.


  • Zamknięty Temat jest zamknięty
4 odpowiedzi w tym temacie

#1 Czaso Umilacz

    Profesjonalista

  • Użytkownik

Reputacja: 33
Życzliwy

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

Napisano 24.12.2013 20:33

Witam,

jak w temacie, jak sprawdzić czy ent jest w ścianie (|), czy w podłodze (_).


  • +
  • -
  • 0

#2 GwynBleidD

    Godlike

  • Administrator

Reputacja: 1849
Godlike

  • Postów:3066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 24.12.2013 22:24

Nie da się tego sprawdzić... tym bardziej, że blok na ścianie może być równocześnie i ścianą i sufitem/podłogą. Możesz ewentualnie sprawdzić gdzie dany ent ma bliżej, do bocznej ściany, górnej czy do dolnej.
  • +
  • -
  • 0
NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark

#3 Czaso Umilacz

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 33
Życzliwy

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

Napisano 24.12.2013 22:43

A może tak, wbijam ent w ścianę, i chcę wyświetlić na nim sprite (a dokładniej stworzyć drugi ent (wyżej o 20 jednostek) z modelem sprita), niestety sprite jest tez w ścianie i chciał bym go z tej ściany o kilka jednostek wyłonić bo kiepski efekt jest, na ziemi to wygląda pięknie, w ścianie już nie bardzo :/

 

@EDIT
Oto efekt:

g33FL5P.gif?1?8892

 

I chciał bym wydobyć tego enta (z modelem sprite) z zafajdanej ściany by był ładnie widoczny :)


Użytkownik Czaso Umilacz edytował ten post 24.12.2013 22:55

  • +
  • -
  • 0

#4 Czaso Umilacz

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 33
Życzliwy

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

Napisano 25.12.2013 11:56

Znalazłem pseudo rozwiązanie, może komuś się kiedyś przyda (jak będzie chciał rysować sprite na encie wbitym w ściane/podłogę), postanowiłem wysunąć ent z ściany (wcześniej ustawiłem vangle tak by nie oglądał ściany - obrót v_angle o 180*)), następnie zapisałem jego origin w 2 zmienne, w jednej zwiększyłem wysokość o 1, w drogiej zmniejszyłem o 1, jeśli znajdzie się cos miezy dwoma originami to najprawdopodobniej podłoga (pomija oczywiście ent który badamy), jeśli nie ściana (o ile ent jest wbity w ścianę na odpowiednią wysokość, około 2 jednostki wyżej od ściany), u mnie to działa, podaje kod:

stock bool:is_ent_in_floor(ent){
	static Float:origin[3], Float:velocity[3];
	entity_get_vector(ent, EV_VEC_origin, origin);  // Pobranie położenia bytu
	VelocityByAim(ent, 16, velocity);               // Nie wiem co to robi, ale wiem że jak się doda tego wynik do originu, otrzymamy origin w pewnej odległości od pierwszego
	
	static Float:temp[3], Float:ret[3];
	xs_vec_add(velocity, origin, origin);           // Otrzymanie originu bytu po wysunięciu z ściany
	xs_vec_copy(origin, temp);                      // Zapisanie wyniku do drugiej zmiennej
	
	origin[2] += 1.0;                               // Manipulacja położeniem (1 w górę i jeden w dół)
	temp[2] -= 1.0;
	
	if(trace_normal(ent, origin, temp, ret) == 1)   // Sprawdzenie czy coś miedzy dwoma origanami się znajduje
		return true;
		
	return false;
}

Następnie po sprawdzaniu znowu wysuwam ent z ściany ale juz w funkcji która ustawia jego położenie :)

 

Sorki za spam ale nie ma opcji edytuj (chyba się wyłącza po czasie), oraz proszę o zamknięcie tematu :)


Użytkownik Czaso Umilacz edytował ten post 25.12.2013 12:00

  • +
  • -
  • 0

#5 GwynBleidD

    Godlike

  • Administrator

Reputacja: 1849
Godlike

  • Postów:3066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 25.12.2013 15:56

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, report.png raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0
NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark




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

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