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
 

Zdjęcie

[ROZWIĄZANE] Jaki kod na odbijanie 50% obrażeń?

odbijanie 50% obrażeń cs 1.6 kod

Najlepsza odpowiedź Fili:P, 15.04.2014 08:04

Ustawiasz obecne obrażenia na 50% ( *0.5 ) i używasz ExecuteHam/B do wywołania drugich obrażeń na przeciwnych osobach.

Przejdź do postu


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

#1 Drago36

    Profesjonalista - if you know what i mean

  • Power User

Reputacja: 561
Wszechwiedzący

  • Postów:707
  • GG:
  • Imię:Mów mi D.ave
  • Lokalizacja:Polska
Offline

Napisano 14.04.2014 14:29

Witam!

Potrzebuje kodu na odbijanie 50% obrażeń w atakującego i drugie 50%  w ofiarę.

Czyli ktoś strzela do mnie z M4 która zada 34 dmg, więc 17dmg otrzyma atakujący, a drugie 17dmg otrzymam ja (ofiara).

Stosuje tego kodu, ale on powoduje, że ofiara nie otrzymuje żadnych obrażeń, a atakujący otrzymuje te 50% obrażeń.

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
	if(get_user_weapon(this) == CSW_KNIFE)
	{
		SetHamParamEntity(1, idattacker)
		SetHamParamEntity(3, this)
		SetHamParamFloat(4, damage*0.5)
	}
}

  • +
  • -
  • 0

#2 0-0-0

    ● 600 punktów ostrzeżeń

  • Power User

Reputacja: 222
Profesjonalista

  • Postów:599
  • Imię:___
  • Lokalizacja:___
Offline

Napisano 14.04.2014 14:51

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
	if(get_user_weapon(this) == CSW_KNIFE)
	{
		SetHamParamEntity(1, idattacker);
		SetHamParamEntity(2,this );
		SetHamParamEntity(3,this );
		SetHamParamFloat(4, damage*0.5)
		
		return HAM_HANDLED;
	}
	return HAM_IGNORED;
}
hmm?
  • +
  • -
  • 0
b_350_20_692108_381007_FFFFFF_000000.png - CS:GO [4FUN][Ruletka]
b_350_20_692108_381007_FFFFFF_000000.png - CS:GO [DM]
b_350_20_692108_381007_FFFFFF_000000.png - CS:GO [FFA]
b_350_20_692108_381007_FFFFFF_000000.png - CS:GO [Only Dust2]
b_350_20_692108_381007_FFFFFF_000000.png - CS:GO [Call of Duty]

#3 Drago36

    Profesjonalista - if you know what i mean

  • Autor tematu
  • Power User

Reputacja: 561
Wszechwiedzący

  • Postów:707
  • GG:
  • Imię:Mów mi D.ave
  • Lokalizacja:Polska
Offline

Napisano 14.04.2014 19:50

Niestety nadal to samo.


  • +
  • -
  • 0

#4 ^Grzyboo

    Wszechobecny

  • Użytkownik

Reputacja: 246
Wszechwidzący

  • Postów:461
  • Imię:Grzyboo
  • Lokalizacja:Tak
Offline

Napisano 14.04.2014 21:32

Nie da się w ten sposób odbić obrażeń.

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
	if(get_user_weapon(this) == CSW_KNIFE && !(damagebits & DMG_PARALYZE))
	{
		SetHamParamFloat(4, damage*0.5); // Zmniejsz obrażenia na graczu o 50%
		SetHamParamInteger(5, damagebits|DMG_PARALYZE); // Zabezpieczenie
		
		ExecuteHamB(Ham_TakeDamage, idattacker, "", this, damage*0.5, DMG_PARALYZE); // Zadaj obrażenia atakującemu
	}
}
!(damagebits & DMG_PARALYZE)

Jest to raczej konieczne zabezpieczenie, żeby obrażenia nie odbijały się w nieskończoność.


  • +
  • -
  • 0

#5 Drago36

    Profesjonalista - if you know what i mean

  • Autor tematu
  • Power User

Reputacja: 561
Wszechwiedzący

  • Postów:707
  • GG:
  • Imię:Mów mi D.ave
  • Lokalizacja:Polska
Offline

Napisano 14.04.2014 22:15

Niestety ten kod nie działa - nie odbija obrażeń i ofiara otrzymuje 100% obrażeń, a atakujący 0%.


  • +
  • -
  • 0

#6 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 15.04.2014 08:04   Najlepsza odpowiedź

Ustawiasz obecne obrażenia na 50% ( *0.5 ) i używasz ExecuteHam/B do wywołania drugich obrażeń na przeciwnych osobach.


  • +
  • -
  • 1

#7 Drago36

    Profesjonalista - if you know what i mean

  • Autor tematu
  • Power User

Reputacja: 561
Wszechwiedzący

  • Postów:707
  • GG:
  • Imię:Mów mi D.ave
  • Lokalizacja:Polska
Offline

Napisano 16.04.2014 09:03

Dzięki Fili:P oraz dzięki   ^Grzyboo i TrzyRazyZero za starania.

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
	if(get_user_weapon(this) == CSW_KNIFE)
	{
		SetHamParamFloat(4, damage*0.5)
		ExecuteHamB(Ham_TakeDamage, idattacker, idinflictor, this, damage*0.5, (1<<1))
	}
	return HAM_IGNORED
}

  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: odbijanie, 50% obrażeń, cs 1.6, kod

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

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