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] Jaki jest ID ( ent'a ) naboju?


Najlepsza odpowiedź R3X, 20.10.2013 16:05

Wystrzelone pociski nie mają bytu ani modelu w przypadku broni palnej. Silnik gry zakłada, że takie pociski poruszają się na tyle szybko by przemieścić się w dowolnej miejsce bez żadnego opóźnienia i używa Trace. W momencie strzału wywoływane jest HAM_TraceAttack i na podstawie przekazanego tam `traceresult` określane jest miejsce gdzie uderza pocisk. Jeśli to miejsce należy do zniszczalnego bytu lub potwora (np. gracza ) wtedy mamy uszkodzenia.

 

Masz więc 2 opcje:

 - złap HAM_TraceAttack i sprawdz z traceresult czy uderzony byt to Twoja ściana

 - [jeśli tylko ściana jest zniszczalna,] złap HAM_TakeDamage i sprawdź kto próbował uszkodzić Twoją ścianę

 

Kod nie mogę dołączyć bo od dawna już nie mam narzędzi amxxowych na kompie :P ale przyda Ci się <hamsadwich> i <fakemeta> + RegisterHam + get_tr2() do sprwadzenia wyniku `traceresult`

Przejdź do postu


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

#1 GT Team

    Ten lepszy xD

  • Zbanowany

Reputacja: 321
Wszechpomocny

  • Postów:1435
  • GG:
  • Imię:Tomasz i Grzegorz
  • Lokalizacja:Wojkowice
Offline

Napisano 18.10.2013 12:06

Tak jak w temacie. I do tego pytanie, czy gdy nabój dotknie ciało solidne, to ShouldCollide je wykryje ? Jak sprawdzić czy dany ent jest nabojem. Może jakaś specjalna nazwa klasy ?

Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości

 


#2 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 18.10.2013 13:21

O ile nie złapiesz naboju po modelu (pointer pod m_iShell)
//wiki.alliedmods.net/CBasePlayerWeapon_(CS)#Entity_Data

stock bool:is_entity_shell(ent){
	if(pev_valid(ent)){
		new model[32];
		entity_get_string(ent, EV_SZ_model, model, 31);
		return (
				equal(model, "models/rshell.mdl")
			||	equal(model, "models/pshell.mdl")
			||	equal(model, "models/rshell_big.mdl")
			||	equal(model, "models/shotgunshell.mdl")
			//	custom weapons shell
			||	equal(model, "models/shell.mdl")
		);
	}
}

To możesz wychwycić event Brass, który zawiera przydatny parametr ModelIndex, którego wartość odpowiada wspomnianej m_iShell w zależności od typu broni.



#3 GT Team

    Ten lepszy xD

  • Autor tematu
  • Zbanowany

Reputacja: 321
Wszechpomocny

  • Postów:1435
  • GG:
  • Imię:Tomasz i Grzegorz
  • Lokalizacja:Wojkowice
Offline

Napisano 18.10.2013 14:39

Odpisałeś mi bardzo dobrze, za co bardzo dziekuje, jednak ja źle powiedziałem. Może jeszcze raz: Strzeliłem np. z USP albo GLOCK18 i chce sprawdzić jakiego ent'a dotnkął ten strzał, chodzi o to, że chcę by ten nabój przeleciał przez wyznaczony przeze mnie func_wall.

Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości

 


#4 R3X

    Godlike

  • Przyjaciel

Reputacja: 2960
Godlike

  • Postów:4247
  • Lokalizacja:Nie
Offline

Napisano 20.10.2013 16:05   Najlepsza odpowiedź

Wystrzelone pociski nie mają bytu ani modelu w przypadku broni palnej. Silnik gry zakłada, że takie pociski poruszają się na tyle szybko by przemieścić się w dowolnej miejsce bez żadnego opóźnienia i używa Trace. W momencie strzału wywoływane jest HAM_TraceAttack i na podstawie przekazanego tam `traceresult` określane jest miejsce gdzie uderza pocisk. Jeśli to miejsce należy do zniszczalnego bytu lub potwora (np. gracza ) wtedy mamy uszkodzenia.

 

Masz więc 2 opcje:

 - złap HAM_TraceAttack i sprawdz z traceresult czy uderzony byt to Twoja ściana

 - [jeśli tylko ściana jest zniszczalna,] złap HAM_TakeDamage i sprawdź kto próbował uszkodzić Twoją ścianę

 

Kod nie mogę dołączyć bo od dawna już nie mam narzędzi amxxowych na kompie :P ale przyda Ci się <hamsadwich> i <fakemeta> + RegisterHam + get_tr2() do sprwadzenia wyniku `traceresult`


  • +
  • -
  • 3

#5 GT Team

    Ten lepszy xD

  • Autor tematu
  • Zbanowany

Reputacja: 321
Wszechpomocny

  • Postów:1435
  • GG:
  • Imię:Tomasz i Grzegorz
  • Lokalizacja:Wojkowice
Offline

Napisano 20.10.2013 17:31

Dziękuję ci drogi panie i wladco za odpowiedź. O to mi chodzilo, temat do zamkniecia

Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości

 


#6 MarWit

    The Chosen One

  • Przyjaciel

Reputacja: 840
Czempion

  • Postów:1485
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Bystrzyca
Offline

Napisano 20.10.2013 18:34

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

marwit-0.png





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

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