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

Ciągły problem z wpływaniem na damage


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

#1 slowly

    Wszechwidzący

  • Zbanowany

Reputacja: 14
Początkujący

  • Postów:270
  • Steam:steam
  • Lokalizacja:Warszawa
Offline

Napisano 24.08.2010 17:41

Witam.
Posłuchałem się rady Simir'a z tego tematu, lecz w dalszym ciągu ten lustrzany pocisk mi nie działa.
public lustrzanypocisk(this, idinflictor, idattacker, Float:damage, damagebits)
{
	if(damagebits&(1<<1) && lustrzany_pocisk[this] == 1)
	{
		SetHamParamInteger(1, idattacker);
		return HAM_IGNORED;
	}
	return HAM_IGNORED;
}
Funckja ta miała polegać na tym, że dana osoba z tą mocą, gdy zostanie uderzona odbija pocisk i wraca on do atakującego w takich samych dmg co miał zaatakować osobę z tym lustrzanym pociskiem. Proszę o poprawę kodu i poinformowanie mnie co mam źle.
Z góry pozdro, Slowly

Użytkownik slowly edytował ten post 24.08.2010 17:42


#2 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 24.08.2010 18:03

public lustrzanypocisk(this, idinflictor, idattacker, Float:damage, damagebits)
{
	if(d lustrzany_pocisk[this] == 1)
	{
		SetHamParamInteger(1, idattacker);
                SetHamParamInteger(2,this );
                SetHamParamInteger(3,this );
		return HAM_HANDLED

	}
	return HAM_IGNORED;
}

check it aczkolwiek twoje tez powinno dzialac jesli event zarejestrowales jako pre a nie post
  • +
  • -
  • 1
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#3 slowly

    Wszechwidzący

  • Autor tematu
  • Zbanowany

Reputacja: 14
Początkujący

  • Postów:270
  • Steam:steam
  • Lokalizacja:Warszawa
Offline

Napisano 24.08.2010 18:31

Ja zrobiłem coś takiego.
Dodałem nową zmienną:
new lustrzany_pocisk[33] = 1
Potem w public RoundStart() dodałem:
lustrzany_pocisk[i]=0
Nastepnie w client_connect(id) dodałem:
lustrzany_pocisk[id] = 0
Dalej w public reset_item_skills(id) dodałem:
lustrzany_pocisk[id] = 0
I na końcu sma:
public lustrzanypocisk(this, idinflictor, idattacker, Float:damage, damagebits)
{
	if(damagebits&(1<<1) && lustrzany_pocisk[this] == 1)
	{
		SetHamParamInteger(1, idattacker);
		return HAM_IGNORED;
	}
	return HAM_IGNORED;
}
I nie wiem dlaczego, ale nie działało. Możesz mi powiedzieć co źle robię i podać w szczegółach gdzie, co wpisać?

#4 Siemir

    Profesjonalista

  • Użytkownik

Reputacja: 113
Zaawansowany

  • Postów:204
  • Steam:steam
  • Lokalizacja:nie znana
Offline

Napisano 24.08.2010 18:40

Jeśli to wszystko co zrobiłeś, to zapominałeś o czymś w miarę ważnym - rejestracji eventu. Dodaj do plugin_init
RegisterHam(Ham_TakeDamage, "player", "lustrzanypocisk")
No i zapomniałem, że w hamsandwich przy zmianie danych powinno się zwrócić
return HAM_OVERRIDE;

  • +
  • -
  • 0

#5 slowly

    Wszechwidzący

  • Autor tematu
  • Zbanowany

Reputacja: 14
Początkujący

  • Postów:270
  • Steam:steam
  • Lokalizacja:Warszawa
Offline

Napisano 24.08.2010 19:16

Czyli jak cały kod od lustrzanego pocisku powinien wyglądać?

PS. To też dodałem:
RegisterHam(Ham_TakeDamage, "player", "lustrzanypocisk")

Użytkownik slowly edytował ten post 24.08.2010 19:17


#6 Siemir

    Profesjonalista

  • Użytkownik

Reputacja: 113
Zaawansowany

  • Postów:204
  • Steam:steam
  • Lokalizacja:nie znana
Offline

Napisano 24.08.2010 20:21

Dobra, przetestowałem i tak nie zadziała ale po kilku testach rozwiązanie okazuje się banalne:
public lustrzanypocisk(this, idinflictor, idattacker, Float:damage, damagebits)

{

	if(damagebits&(1<<1) && lustrzany_pocisk[this] == 1)

	{

		SetHamParamEntity(1, idattacker);

                SetHamParamEntity(2,this );

                SetHamParamEntity(3,this );

		return HAM_HANDLED;

	}

	return HAM_IGNORED;

}


Użytkownik Siemir edytował ten post 24.08.2010 21:01

  • +
  • -
  • 0

#7 slowly

    Wszechwidzący

  • Autor tematu
  • Zbanowany

Reputacja: 14
Początkujący

  • Postów:270
  • Steam:steam
  • Lokalizacja:Warszawa
Offline

Napisano 25.08.2010 11:25

To w dalszym ciągu nie działa... :/

#8 Siemir

    Profesjonalista

  • Użytkownik

Reputacja: 113
Zaawansowany

  • Postów:204
  • Steam:steam
  • Lokalizacja:nie znana
Offline

Napisano 25.08.2010 11:32

W takim razie problem może sprawiać damagebits, bo testowałem odbijanie wszelkich obrażeń i działało.
  • +
  • -
  • 0

#9 slowly

    Wszechwidzący

  • Autor tematu
  • Zbanowany

Reputacja: 14
Początkujący

  • Postów:270
  • Steam:steam
  • Lokalizacja:Warszawa
Offline

Napisano 25.08.2010 12:41

Czyli jak ma wyglądać poprawny kod?




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

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