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
 

ZajOnDz - zdjęcie

ZajOnDz

Rejestracja: 07.06.2010
Aktualnie: Nieaktywny
Poza forum Ostatnio: 03.10.2019 21:45
-----

#761731 [ROZWIĄZANE] Odbijanie obrażeń w atakującego.

Napisane przez AwIlL^^ w 30.09.2019 08:34

public odbicie_obrazen(ofiara, idinflictor, atakujacy, Float:obrazenia, damagebits)
{
        new iClip, iAmmo;
        new iWeapon = get_user_weapon(ofiara, iClip, iAmmo);
	
	if( random_num( 5, 100 ) <= 5 )
        {
                ExecuteHamB(Ham_TakeDamage, atakujacy, iWeapon, ofiara, obrazenia, (1<<1));
                return HAM_SUPERCEDE;
        }

	return HAM_HANDLED;	
}

Może tak? :)

 

jeżeli chcesz aby bytem atakującym była broń, którą trzyma atakujący to należy podać id atakującego, bo w takim przypadku on sam jest bytem atakującym :)


  • +
  • -
  • 1


#761732 [ROZWIĄZANE] Odbijanie obrażeń w atakującego.

Napisane przez Rivit w 30.09.2019 10:42

No nie dokońca, bytem atakującym w tym przypadku jest jakiś randomowy ent z przedziału [1-30], bo get_user_weapon zwraca nam id broni, a nie id entity:

Spoiler

 

+ generalnie nie polecałbym używać ExecuteHamB w funkcji od RegisterHam, bo możemy się zapętlić.

 

Wrzucam swój stary kod z codmoda:

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
	if(!is_user_connected(idattacker) || get_user_team(this) == get_user_team(idattacker))
		return HAM_IGNORED;
		
      if(!random(7))
            ExecuteHam(Ham_TakeDamage, idattacker, idinflictor, this, dmg, damagebits);

	return HAM_IGNORED;
}

  • +
  • -
  • 1


#761777 [ROZWIĄZANE] Odbijanie obrażeń w atakującego.

Napisane przez wonsz żeczny w 02.10.2019 14:30

public odbicie_obrazen(ofiara, idinflictor, atakujacy, Float:obrazenia, damagebits){
	
	SetHamParamInteger(1, atakujacy);
	SetHamParamInteger(3, ofiara);

	return HAM_HANDLED;	
}

A tak?:

public odbicie_obrazen(ofiara, idinflictor, atakujacy, Float:obrazenia, damagebits){
	
	SetHamParamEntity(1, atakujacy);
	SetHamParamEntity(3, ofiara);

	return HAM_HANDLED;	
}

  • +
  • -
  • 2