←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Gdy ktoś dostanie w tarcze odbija pocisk

Zablokowany

  • +
  • -
Szymek^ - zdjęcie Szymek^ 17.08.2011

Witam jak w temacie. Wiem jak odbić obrażenia ale nie wiem jak zrobić, żeby odbijało pociski trafione w Tarcze.
Pomoże ktoś lub wytłumaczy.?
Odpowiedz

  • +
  • -
alc0 - zdjęcie alc0 17.08.2011

Czy odbicie pocisku od tarczy to nie ten sam efekt co odpisie obrażeń?
Zależy o co dokładnie ci chodzi... Jeśli o efekt wizualny to nie wiem jak pomóc...
Odpowiedz

  • +
  • -
Szymek^ - zdjęcie Szymek^ 17.08.2011

Chodzi o to, że jak w trafisz w czyjąś tarcze to dostajesz te obrażenia ty..
Odpowiedz

  • +
  • -
Barto_12_SAS - zdjęcie Barto_12_SAS 18.08.2011

Czyli przeróbka pancerza nomexowego - tylko , że 1/1 i pod warunkiem , że ma sie tarcze i się nia zasłoni ?
Odpowiedz

Dwdov - zdjęcie Dwdov 18.08.2011

Napisał po polsku że chce odbicie pocisku jeżeli ktoś trafi W TARCZE. Da się to zrobić tylko trochę kombinowania. Nie wiem czy jak się zmieni w traceline HIT_SHIELD na HIT_GENERIC to zada dmg czy nie. Jeszcze później odbić ten pocisk. Troche srania z tym jest, ale jak chcesz to zrobić to musisz użyć albo traceline albo komibnować z emitsound ; p
Odpowiedz

  • +
  • -
Szymek^ - zdjęcie Szymek^ 18.08.2011

właśnie rozmyślałem nad TraceLine i na miejscach obrażeń, czytałem też definicje na dokumentacji ale nie było definicji strzału związanej z tarczą...;/
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 18.08.2011

nie ma czegoś takiego jak HIT_SHIELD
Odpowiedz

  • +
  • -
Barto_12_SAS - zdjęcie Barto_12_SAS 18.08.2011

Ale możnaby tozrobić na zasadzie pancerza nomexowego tylko przekierować z postaci na tarcze ?
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 18.08.2011

pancerz nomexowy nie wykrywa uderzenia w tarczę
Odpowiedz

Dwdov - zdjęcie Dwdov 18.08.2011

HIT_SHIELD odpowiada liczbie 8. Nie ma tego dopisanego do standardowych nagłówków, ale to nie znaczy że coś takiego nie istnieje, gdzieś w necie była cała lista. Dokładnie jest to wartość zwracana przez get_tr2( id, TR_pHit ) // <- tu mój błąd TR_iHitgroup dopiero jak Change napisał post popatrzyłem co za głupote napisałem xD
Użytkownik Dawedov edytował ten post 19.08.2011 12:45
Odpowiedz

  • +
  • -
Change - zdjęcie Change 19.08.2011


#include <amxmodx>
#include <amxmisc>
#include <fakemeta>

#define HIT_SHIELD 8

public plugin_init()
{
register_plugin("PLUGIN", "VERSION", "AUTHOR")
register_forward(FM_TraceLine, "fw_Traceline", 1)
}

public fw_Traceline(Float:start[3], Float:end[3], nomonsters, id, trace)
{
if(!is_user_connected(id))
return FMRES_IGNORED;

static victim, hitgroup
victim = get_tr2(trace, TR_pHit);
hitgroup = get_tr2(trace, TR_iHitgroup);

if(!is_user_connected(victim))
return FMRES_IGNORED;

if (hitgroup == HIT_SHIELD)
//DOSTAŁ W TARCZE

return FMRES_IGNORED;
}

Odpowiedz

  • +
  • -
Szymek^ - zdjęcie Szymek^ 19.08.2011

Zaraz przetestuję. Mam pytanie. Czy w TraceLine da się pobrać id atakującego ? Potrzebne mi to do pancerza nomexowego :)
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 19.08.2011

sprawdź
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>

#define HIT_SHIELD 8

public plugin_init()
{
	register_plugin("PLUGIN", "VERSION", "AUTHOR")
	register_forward(FM_TraceLine, "fw_Traceline", 1)
}

public fw_Traceline(Float:start[3], Float:end[3], nomonsters, id, trace)
{
	if(!is_user_connected(id))
		return FMRES_IGNORED;
	
	static victim
	victim = get_tr2(trace, TR_pHit);
	
	if(!is_user_connected(victim))
		return FMRES_IGNORED;
	
	new iAttacker = get_user_attacker(victim);
	
	if(!is_user_connected(iAttacker))
		return FMRES_IGNORED;
	
	if (get_tr2(trace, TR_iHitgroup) == HIT_SHIELD)
		set_tr2(trace,TR_pHit,iAttacker)
	
	return FMRES_IGNORED;
}
Odpowiedz

Dwdov - zdjęcie Dwdov 19.08.2011

Dostajesz do forwardu argument id ;P
Odpowiedz

  • +
  • -
A może sma? - zdjęcie A może sma? 19.08.2011

id to id atakującego, victim = get_tr2(trace, TR_pHit); - id tego, który oberwał
Odpowiedz
Zablokowany