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] Czy musze sprawdzać damagebits jeżeli sprawdzam broń?


Najlepsza odpowiedź BlackPerfum, 29.06.2014 16:25

Kod na celu ma: 1/6 na natychmiastowe zabicie z p228 i +10 obrazen z niego

Powinno być lub na +10 dmg haha.gif
 

koro broń gracza to p228 to damagebits musi byd DMG_BULLET

Nie musi a rzuć HE i zmień broń na p228 następnie zobacz jakią wykryło twoją broń a jakie damagebits
 

Co zwrocic po zabiciu?

Dużej różnicy to nie robi zwracaj między 1 a 3 haha.gif Tzn wybierz sobie między:
HAM_IGNORED
HAM_HANDLED
HAM_OVERRIDE
Ale już jest różnica co zwrócisz po SetHamParamFloat. Osobiście polecam operowanie nad zmienną nagłówkową damage a dopiero na sam koniec funkcji ustawiać dmg xD Przejdź do postu


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

#1 TibacK

    Diler pod gimnazjum dla niepełnosprawnych dzieci

  • Power User

Reputacja: 466
Wszechobecny

  • Postów:2448
Offline

Napisano 29.06.2014 15:47

Witam.

 

Czy w tym:

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
	if(!is_user_connected(idattacker))
		return HAM_IGNORED;

	if(!ma_perk[idattacker])
		return HAM_IGNORED;
		
      if(get_user_weapon(idattacker) != CSW_P228)
		return HAM_IGNORED;

	if(!random(6))
	{
		ExecuteHamB(Ham_Killed, this, idattacker, 1)
		return PLUGIN_HANDLED //CO TU ZWROCIC?
	}
	else
            SetHamParamFloat(4, damage+10)
		
	return HAM_IGNORED	
}

Kod na celu ma: 1/6 na natychmiastowe zabicie z p228 i +10 obrazen z niego

 

Skoro broń gracza to p228 to damagebits musi byd DMG_BULLET

 

+ Co zwrocic po zabiciu?


  • +
  • -
  • 0

Sprzedam Paczkę CoD pod CS 1.6 (JEST WIELE WERSJI DO WYBORU TEJ PACZKI) na lvl od 201 - 601

Silnik (8 nowych statystyk, poprawiony zapis, dodatkowy exp, pozbyto się CurWeapon). Ponad 100 perków (do wyboru do koloru). Sklep, NOWE MISJE (QUESTY), premium i super premium, AUKCJE, KLANY, zapis nVault, 4 zestawy modeli bronii do wyboru!

JESTEŚ ZAINTERESOWANY KUPNEM? NAPISZ WIADOMOŚĆ DO MNIE!


#2 BlackPerfum

    Pseudo interakcja??

  • Power User

Reputacja: 453
Wszechobecny

  • Postów:575
  • Lokalizacja:...
Offline

Napisano 29.06.2014 16:25   Najlepsza odpowiedź

Kod na celu ma: 1/6 na natychmiastowe zabicie z p228 i +10 obrazen z niego

Powinno być lub na +10 dmg haha.gif
 

koro broń gracza to p228 to damagebits musi byd DMG_BULLET

Nie musi a rzuć HE i zmień broń na p228 następnie zobacz jakią wykryło twoją broń a jakie damagebits
 

Co zwrocic po zabiciu?

Dużej różnicy to nie robi zwracaj między 1 a 3 haha.gif Tzn wybierz sobie między:
HAM_IGNORED
HAM_HANDLED
HAM_OVERRIDE
Ale już jest różnica co zwrócisz po SetHamParamFloat. Osobiście polecam operowanie nad zmienną nagłówkową damage a dopiero na sam koniec funkcji ustawiać dmg xD

Użytkownik BlackPerfum edytował ten post 29.06.2014 16:27

  • +
  • -
  • 1
Chcesz napisać do mnie na PW to:
Spoiler

Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!

Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji Dołączona grafika
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują Dołączona grafika

#3 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6032
Godlike

  • Postów:10825
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 29.06.2014 16:32

Tak musisz sprawdzać


  • +
  • -
  • 1

#4 TibacK

    Diler pod gimnazjum dla niepełnosprawnych dzieci

  • Autor tematu
  • Power User

Reputacja: 466
Wszechobecny

  • Postów:2448
Offline

Napisano 29.06.2014 18:25

Dobra wiem. Jestem debilem :) Ten HE zawsze sprawia problemy/komplikuje

@BlackPerfum
Uzywam SetHamParamFloat w srodku i co mam zwrocic? A czasem na koncu i co wtedy?
  • +
  • -
  • 0

Sprzedam Paczkę CoD pod CS 1.6 (JEST WIELE WERSJI DO WYBORU TEJ PACZKI) na lvl od 201 - 601

Silnik (8 nowych statystyk, poprawiony zapis, dodatkowy exp, pozbyto się CurWeapon). Ponad 100 perków (do wyboru do koloru). Sklep, NOWE MISJE (QUESTY), premium i super premium, AUKCJE, KLANY, zapis nVault, 4 zestawy modeli bronii do wyboru!

JESTEŚ ZAINTERESOWANY KUPNEM? NAPISZ WIADOMOŚĆ DO MNIE!


#5 BlackPerfum

    Pseudo interakcja??

  • Power User

Reputacja: 453
Wszechobecny

  • Postów:575
  • Lokalizacja:...
Offline

Napisano 01.07.2014 09:19

Uzywam SetHamParamFloat w srodku i co mam zwrocic? A czasem na koncu i co wtedy?

Polecam używanie tego na samym końcu gdyż nie ma się problemów z zakańczaniem na parę sposobów funkcji ;D
Najlepiej pokaż przykładowy kod
  • +
  • -
  • 0
Chcesz napisać do mnie na PW to:
Spoiler

Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!

Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji Dołączona grafika
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują Dołączona grafika

#6 TibacK

    Diler pod gimnazjum dla niepełnosprawnych dzieci

  • Autor tematu
  • Power User

Reputacja: 466
Wszechobecny

  • Postów:2448
Offline

Napisano 01.07.2014 10:06

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!is_user_connected(idattacker)|| !ma_perk[idattacker] || get_user_weapon(idattacker) != CSW_P228 || !(damagebits & DMG_BULLET)) return HAM_IGNORED;


if(!random(6))
{
   SetHamParamFloat(4, float(get_user_health))
   return  //CO TU ZWROCIC?
}
else
{
   SetHamParamFloat(4, damage+10)
   return  //CO TU ZWROCIC?
}

return HAM_IGNORED
}
Kurde. Sam nie wiem. W tutorialu 'wplywanie na obrazenia' pisze zeby zwracac HAM_HANDLED zeby zatwierdzic zmiany. Wiec jak to jest?
  • +
  • -
  • 0

Sprzedam Paczkę CoD pod CS 1.6 (JEST WIELE WERSJI DO WYBORU TEJ PACZKI) na lvl od 201 - 601

Silnik (8 nowych statystyk, poprawiony zapis, dodatkowy exp, pozbyto się CurWeapon). Ponad 100 perków (do wyboru do koloru). Sklep, NOWE MISJE (QUESTY), premium i super premium, AUKCJE, KLANY, zapis nVault, 4 zestawy modeli bronii do wyboru!

JESTEŚ ZAINTERESOWANY KUPNEM? NAPISZ WIADOMOŚĆ DO MNIE!


#7 szelbi

    Hero

  • Power User

Reputacja: 363
Wszechpomocny

  • Postów:1032
  • Steam:steam
  • Imię:Norbert
  • Lokalizacja:Częstochowa
Offline

Napisano 01.07.2014 10:22

Ja bym to zrobił tak, ale nie wiem czy zadziała:

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
	if(!is_user_connected(idattacker)|| !ma_perk[idattacker] || get_user_weapon(idattacker) != CSW_P228 || !(damagebits & DMG_BULLET))
	return HAM_IGNORED;
	
	if(!random(6))
	damage = float(get_user_health(id)); // zapomniales o id
	else
	damage += 10.0;

	SetHamParamFloat(4, damage);
	return HAM_IGNORED;
}

//edit

 

Tak btw. to stosując to, co napisałeś wyżej, możesz równie dobrze nic nie zwracać i powinno działać ;)


  • +
  • -
  • 1

#8 TibacK

    Diler pod gimnazjum dla niepełnosprawnych dzieci

  • Autor tematu
  • Power User

Reputacja: 466
Wszechobecny

  • Postów:2448
Offline

Napisano 01.07.2014 10:27

Aaaa no tak tez mozna.

Ale jestes pewien ze obrazenia zostana dodane/ustawienie? Potem zwracasz IGNORED.

amxx.pl/topic/14829-wplywanie-na-obrazenia/
  • +
  • -
  • 0

Sprzedam Paczkę CoD pod CS 1.6 (JEST WIELE WERSJI DO WYBORU TEJ PACZKI) na lvl od 201 - 601

Silnik (8 nowych statystyk, poprawiony zapis, dodatkowy exp, pozbyto się CurWeapon). Ponad 100 perków (do wyboru do koloru). Sklep, NOWE MISJE (QUESTY), premium i super premium, AUKCJE, KLANY, zapis nVault, 4 zestawy modeli bronii do wyboru!

JESTEŚ ZAINTERESOWANY KUPNEM? NAPISZ WIADOMOŚĆ DO MNIE!


#9 szelbi

    Hero

  • Power User

Reputacja: 363
Wszechpomocny

  • Postów:1032
  • Steam:steam
  • Imię:Norbert
  • Lokalizacja:Częstochowa
Offline

Napisano 01.07.2014 10:29

Stosuję identyczny patent w innym pluginie i tam działa bez problemu. Co do tych poradników, to ja przy pisaniu pluginów używam tylko HAM_IGNORED oraz HAM_SUPERCEDE i jakoś nigdy nie miałem problemu :D


  • +
  • -
  • 1

#10 TibacK

    Diler pod gimnazjum dla niepełnosprawnych dzieci

  • Autor tematu
  • Power User

Reputacja: 466
Wszechobecny

  • Postów:2448
Offline

Napisano 01.07.2014 10:32

Do czego supercede?

Moglbys rzucic jakis kod? Przykladowy, dzialajacy plugin.
  • +
  • -
  • 0

Sprzedam Paczkę CoD pod CS 1.6 (JEST WIELE WERSJI DO WYBORU TEJ PACZKI) na lvl od 201 - 601

Silnik (8 nowych statystyk, poprawiony zapis, dodatkowy exp, pozbyto się CurWeapon). Ponad 100 perków (do wyboru do koloru). Sklep, NOWE MISJE (QUESTY), premium i super premium, AUKCJE, KLANY, zapis nVault, 4 zestawy modeli bronii do wyboru!

JESTEŚ ZAINTERESOWANY KUPNEM? NAPISZ WIADOMOŚĆ DO MNIE!


#11 szelbi

    Hero

  • Power User

Reputacja: 363
Wszechpomocny

  • Postów:1032
  • Steam:steam
  • Imię:Norbert
  • Lokalizacja:Częstochowa
Offline

Napisano 01.07.2014 10:37

HAM_SUPERCEDE używałem w silniku JB, kiedy chciałem całkowicie zatrzymać zadawanie obrażeń, np. żeby CT nie mogło bić TT w danym przypadku itp.

public player_damage(victim, ent, attacker, Float:damage, bits)
{	
	if(victim == attacker || !is_user_connected(attacker))
	return HAM_IGNORED;
	
	/* Gracz majacy FreeDay'a nie zadaje obrazen CT */
	if(cs_get_user_team(victim) == CS_TEAM_CT && FreeDayGracz[attacker])
	return HAM_SUPERCEDE;
	
	/* CT nie zadaje obrazen TT, jesli zmienna nieaktywna */
	if(cs_get_user_team(attacker) == CS_TEAM_CT && cs_get_user_team(victim) == CS_TEAM_T && !zmienna[CT_HIT_TT])
	return HAM_SUPERCEDE;
	
	/* TT nie zadaje sobie nawzajem obrazen, jesli zmienna nieaktywna */
	if(cs_get_user_team(attacker) == CS_TEAM_T && cs_get_user_team(victim) == CS_TEAM_T && !zmienna[WALKA])
	return HAM_SUPERCEDE;
}

  • +
  • -
  • 1

#12 TibacK

    Diler pod gimnazjum dla niepełnosprawnych dzieci

  • Autor tematu
  • Power User

Reputacja: 466
Wszechobecny

  • Postów:2448
Offline

Napisano 01.07.2014 10:41

Dobra.
Czyli SUPERCEDE blokuje tak ze inne pluginy nie moga tego wychwycic?

To dlaczego R3X pisal ze HANDLED zatwierdza zmiany?
Chce zeby to wylapywaly inne pluginy...
  • +
  • -
  • 0

Sprzedam Paczkę CoD pod CS 1.6 (JEST WIELE WERSJI DO WYBORU TEJ PACZKI) na lvl od 201 - 601

Silnik (8 nowych statystyk, poprawiony zapis, dodatkowy exp, pozbyto się CurWeapon). Ponad 100 perków (do wyboru do koloru). Sklep, NOWE MISJE (QUESTY), premium i super premium, AUKCJE, KLANY, zapis nVault, 4 zestawy modeli bronii do wyboru!

JESTEŚ ZAINTERESOWANY KUPNEM? NAPISZ WIADOMOŚĆ DO MNIE!


#13 BlackPerfum

    Pseudo interakcja??

  • Power User

Reputacja: 453
Wszechobecny

  • Postów:575
  • Lokalizacja:...
Offline

Napisano 01.07.2014 11:36

W tutorialu 'wplywanie na obrazenia' pisze zeby zwracac HAM_HANDLED zeby zatwierdzic zmiany

I dobrze tam prawią ;D
 

możesz równie dobrze nic nie zwracać i powinno działać

Tylko że pisząc wszyscy powinniśmy być pewni że nasz kod zadziała ;D
Oczywiście szansa na to że metamod czegoś nieogarnie wynosi 1/d245777abca64ece2d5d7ca0d19fddb6.png
Ale powinniśmy się bać tej malutkiej szansy i to bardzo :D

Dobra.
Czyli SUPERCEDE blokuje tak ze inne pluginy nie moga tego wychwycic?

Zawsze się w jakiś sposób da wychwycić albo po prostu info o dmg najpierw doszło do jakiegoś pluginu potem do pluginu blokującego :(
Czyli pewni nie jesteśmy że nie dojdzie ale ogułem zwrócenie tej wartości równa się z zablokowaniem funkcji

To dlaczego R3X pisal ze HANDLED zatwierdza zmiany?
Chce zeby to wylapywaly inne pluginy...

Żeby inny pluginy łapały zmienione dmg ;D
  • +
  • -
  • 1
Chcesz napisać do mnie na PW to:
Spoiler

Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!

Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji Dołączona grafika
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują Dołączona grafika

#14 TibacK

    Diler pod gimnazjum dla niepełnosprawnych dzieci

  • Autor tematu
  • Power User

Reputacja: 466
Wszechobecny

  • Postów:2448
Offline

Napisano 01.07.2014 12:13

Popatrz na kod ktory dal norbi :)

Jak tam wepchnac return HAM_HANDLED ?

Do mojego jest prosto bo dajesz miedzy klamrami.
  • +
  • -
  • 0

Sprzedam Paczkę CoD pod CS 1.6 (JEST WIELE WERSJI DO WYBORU TEJ PACZKI) na lvl od 201 - 601

Silnik (8 nowych statystyk, poprawiony zapis, dodatkowy exp, pozbyto się CurWeapon). Ponad 100 perków (do wyboru do koloru). Sklep, NOWE MISJE (QUESTY), premium i super premium, AUKCJE, KLANY, zapis nVault, 4 zestawy modeli bronii do wyboru!

JESTEŚ ZAINTERESOWANY KUPNEM? NAPISZ WIADOMOŚĆ DO MNIE!


#15 BlackPerfum

    Pseudo interakcja??

  • Power User

Reputacja: 453
Wszechobecny

  • Postów:575
  • Lokalizacja:...
Offline

Napisano 01.07.2014 13:15

Tam jest jeszcze prościej daj po SetHamParamFloat
  • +
  • -
  • 0
Chcesz napisać do mnie na PW to:
Spoiler

Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!

Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji Dołączona grafika
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują Dołączona grafika

#16 TibacK

    Diler pod gimnazjum dla niepełnosprawnych dzieci

  • Autor tematu
  • Power User

Reputacja: 466
Wszechobecny

  • Postów:2448
Offline

Napisano 01.07.2014 16:58

chodzi Ci o zamienienie IGNORED na HANDLED ??
  • +
  • -
  • 0

Sprzedam Paczkę CoD pod CS 1.6 (JEST WIELE WERSJI DO WYBORU TEJ PACZKI) na lvl od 201 - 601

Silnik (8 nowych statystyk, poprawiony zapis, dodatkowy exp, pozbyto się CurWeapon). Ponad 100 perków (do wyboru do koloru). Sklep, NOWE MISJE (QUESTY), premium i super premium, AUKCJE, KLANY, zapis nVault, 4 zestawy modeli bronii do wyboru!

JESTEŚ ZAINTERESOWANY KUPNEM? NAPISZ WIADOMOŚĆ DO MNIE!


#17 BlackPerfum

    Pseudo interakcja??

  • Power User

Reputacja: 453
Wszechobecny

  • Postów:575
  • Lokalizacja:...
Offline

Napisano 01.07.2014 17:53

Tak xD
  • +
  • -
  • 1
Chcesz napisać do mnie na PW to:
Spoiler

Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!

Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji Dołączona grafika
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują Dołączona grafika

#18 TibacK

    Diler pod gimnazjum dla niepełnosprawnych dzieci

  • Autor tematu
  • Power User

Reputacja: 466
Wszechobecny

  • Postów:2448
Offline

Napisano 01.07.2014 18:00

Hmmm ale to na pewno tak?

Chociaz faktycznie. Jesli nie spelnia warunkow to zwroci sie IGNORED a jesli spelni to SetHamParamFloat.

Dobra dzięki wam :) plusy rozdam pozniej
  • +
  • -
  • 0

Sprzedam Paczkę CoD pod CS 1.6 (JEST WIELE WERSJI DO WYBORU TEJ PACZKI) na lvl od 201 - 601

Silnik (8 nowych statystyk, poprawiony zapis, dodatkowy exp, pozbyto się CurWeapon). Ponad 100 perków (do wyboru do koloru). Sklep, NOWE MISJE (QUESTY), premium i super premium, AUKCJE, KLANY, zapis nVault, 4 zestawy modeli bronii do wyboru!

JESTEŚ ZAINTERESOWANY KUPNEM? NAPISZ WIADOMOŚĆ DO MNIE!





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

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