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
CoD Nowy

1HP dla klasy na stałeCzyli mimo wzrostu witalności, hp nie rośnie

cod nowy

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
24 odpowiedzi w tym temacie

#1 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 31.10.2011 19:08

*
Popularny

W tym tutku pokażę jak zrobić aby klasa miała 1hp, lecz mimo wzrostu witalności ono nie rośnie

1. Tworzymy przykładową klasę :

#include <amxmodx>
#include <codmod>

new bool:ma_klase[33];


new const nazwa[] = "Cwaniak";
new const opis[] = "Tylko 1 hp";
new const bronie = 0;
new const zdrowie = 0;
new const kondycja = 15;
new const inteligencja = 15;
new const wytrzymalosc = 15;


public plugin_init()
{
register_plugin(nazwa, "1.0", "d0n tHe Pr0oo");

cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
}


2. Na koniec dodajemy

public cod_class_enabled(id)
{
ma_klase[id] = true;
}

public cod_class_disabled(id)
{
ma_klase[id] = false;
}



3. Pod

#include <codmod>


Dodajemy

#include <fun>


4. Oraz do public cod_class_enabled dodajemy :

set_user_health(id, 1); //cyfra jeden ustala hp na start

Aby wyglądało tak :

public cod_class_enabled(id)
{
ma_klase[id] = true;
set_user_health(id, 1);
}


5. Do public plugin init dodajemy :
register_event("Health", "Health", "be")


U mnie to bedzie wyglądać tak :

public plugin_init()
{
register_plugin(nazwa, "1.0", "d0n tHe Pr0oo");

cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);

register_event("Health", "Health", "be")
}


6. I na koniec pluginu należy jeszcze dodać :

public Health(id)
{
if(ma_klase[id] && is_user_alive(id) && read_data(1) > 1)
{
set_user_health(id, 1); //Tutaj cyfra 1, także ustala hp
}
}




Kompilujemy i gotowe !

Użytkownik d0n tHe Pr0oo edytował ten post 04.07.2012 09:10

  • +
  • -
  • 7

#2 xxdrago

    Zaawansowany

  • Użytkownik

Reputacja: 5
Nowy

  • Postów:124
  • GG:
  • Imię:Tomasz
  • Lokalizacja:Jaworzno
Offline

Napisano 31.10.2011 19:29

Mój pomysł :D

http://amxx.pl/topic...lasa-stale-1hp/

Poradnik bardzo dobrze opisany.

Użytkownik xxdrago edytował ten post 31.10.2011 19:33

  • +
  • -
  • 0

Dołączona grafika

Zapraszam na dobry serwer na dobrym hostingu.


IP: 80.72.43.106:27022

http://jaworskill.tk


#3 d0naciak

    Godlike

  • Autor tematu
  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 31.10.2011 19:37

Pomysły już dawno były, więc tutek w końcu wyszedł :]
  • +
  • -
  • 0

#4 pixel

    Pomocny

  • Użytkownik

Reputacja: 9
Nowy

  • Postów:53
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:k. krakowa
Offline

Napisano 31.10.2011 20:24

Poradnik napisany estetycznie, ale nie ma to jak zobaczyć coś w problemach co jest rozwiązane i od razu pisać poradnik; podoba mi się, reput.
  • +
  • -
  • 0
Oferta o pracę nieaktualna; mody w przygotowaniu:
-new mega cod
-new mega diablo

#5 nns

    Życzliwy

  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:33
  • GG:
  • Lokalizacja:****
Offline

Napisano 01.11.2011 13:51

A to przypadkiem nie jest tak ,że zmieni hp tylko w rundzie w której ktoś wybrał klasę??

Forward wysylany do pluginu z ktorego zarejestrowana jest kasa w momencie aktywacji
  • +
  • -
  • 0

#6 Muzzi

    Guru

  • Przyjaciel

Reputacja: 228
Wszechwidzący

  • Postów:772
  • Lokalizacja:Kraków
Offline

Napisano 01.11.2011 14:21

A gdy ktoś się 'uleczy' za pomocą totemu ? To jego HP wzrośnie, może aby taki mini fix do tego ?
  • +
  • -
  • 0

#7 radim

    Godlike

  • Moderator

Reputacja: 939
Master

  • Postów:2 725
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Janów Lub.
Offline

Napisano 01.11.2011 18:45

Trzeba zastosować resethud, bądź settask
  • +
  • -
  • 0

Chcąc napisać do mnie prywatną wiadomość, wpierw zapoznaj się ze stroną "O mnie" w moim profilu użytkownika [ radim ] !


#8 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Junior Admin

Reputacja: 2 077
Godlike

  • Postów:5 706
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 01.11.2011 19:14

albo po prostu w Prethink.

Dodać <engine> i może tak

public client_PreThink(id)
{
if(is_user_alive(id) && get_user_health(id) <1)
				  set_user_health(id, 1)
}

  • +
  • -
  • 0

#9 d0naciak

    Godlike

  • Autor tematu
  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 06.11.2011 12:20

Mogę dodać, ale jednak wolę mieć sprawdzony kod ;) Poczekajcie do piątku :D

Ok, przerobiłem już i działa w 100% bo sam testowałem
  • +
  • -
  • 0

#10 Gość_Sangre_*

  • Gość

Reputacja: 0

Offline

Napisano 20.11.2011 11:33

nie działa mi żadna z tych metod
daje wam sm'a i niech mi ktoś pokaże jak to ma być
raz - klasa nie ma 1hp
dwa - jak ma 1hp to pokazuje ,ze ma więcej, a po zmianie klasy następna klasa ma też 1hp a wyśiwetla więcej




#include <amxmodx>
#include <ColorChat>
#include <codmod>
#include <engine>
#include <fun>
#include <hamsandwich>
#include <fakemeta>

#define DMG_BULLET (1<<1)


new bool:ma_klase[33];

new const nazwa[] = "Lekki Snajper";
new const opis[] = "Klasa posiada 1/3 szansy na zabicie ze scouta, jest prawie niewidoczny";
new const bronie = 1<<CSW_SCOUT | 1<<CSW_ELITE | 1<<CSW_FLASHBANG;
new const zdrowie = 0;
new const kondycja = 25;
new const inteligencja = 0;
new const wytrzymalosc = 10;

public plugin_init()
{  
  cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);

  RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}

public cod_class_enabled(id)
{
	ColorChat(id, GREEN, "Klasa stworzona przez Sangre Asesino");
	ma_klase[id] = true;
	set_rendering(id,kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 10);
	set_user_health(id, 1);
	return COD_CONTINUE;
}
	
public cod_class_disabled(id)
{
	ma_klase[id] = false;
	set_rendering(id,kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255);
}

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
	if(!is_user_connected(idattacker))
		return HAM_IGNORED;
	
	if(!ma_klase[idattacker])
		return HAM_IGNORED;
	
	if(damagebits & DMG_BULLET)
	{
		new weapon = get_user_weapon(idattacker);
			
		if(weapon == CSW_SCOUT && damage > 20.0 && random_num(1,3) == 1)
			cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
	}
	
	return HAM_IGNORED;
}

Użytkownik Sangre edytował ten post 20.11.2011 11:41


#11 d0naciak

    Godlike

  • Autor tematu
  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 20.11.2011 17:21

@up zapomniałeś dodać punkt 5 i 6, a i to działa, jak masz dodane hp w hud to pisze ze masz 1hp

#include <amxmodx>
#include <ColorChat>
#include <codmod>
#include <engine>
#include <fun>
#include <hamsandwich>
#include <fakemeta>

#define DMG_BULLET (1<<1)


new bool:ma_klase[33];

new const nazwa[] = "Lekki Snajper";
new const opis[] = "Klasa posiada 1/3 szansy na zabicie ze scouta, jest prawie niewidoczny";
new const bronie = 1<<CSW_SCOUT | 1<<CSW_ELITE | 1<<CSW_FLASHBANG;
new const zdrowie = 0;
new const kondycja = 25;
new const inteligencja = 0;
new const wytrzymalosc = 10;

public plugin_init()
{
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);

RegisterHam(Ham_TakeDamage, "player", "TakeDamage");

register_event("Health", "Health", "be")
}

public cod_class_enabled(id)
{
ColorChat(id, GREEN, "Klasa stworzona przez Sangre Asesino");
ma_klase[id] = true;
set_rendering(id,kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 10);
set_user_health(id, 1);
return COD_CONTINUE;
}

public cod_class_disabled(id)
{
ma_klase[id] = false;
set_rendering(id,kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255);
}

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

if(!ma_klase[idattacker])
return HAM_IGNORED;

if(damagebits & DMG_BULLET)
{
new weapon = get_user_weapon(idattacker);

if(weapon == CSW_SCOUT && damage > 20.0 && random_num(1,3) == 1)
cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
}

return HAM_IGNORED;
}
public Health(id)
{
if(!is_user_alive(id))
if(!ma_klase[id])
{
set_user_health(id, 1); //Tutaj cyfra 1, także ustala hp
}
}

Użytkownik d0n tHe Pr0oo edytował ten post 20.11.2011 17:36

  • +
  • -
  • 0

#12 Najkon

    Profesjonalista

  • Użytkownik

Reputacja: 60
Pomocny

  • Postów:161
Offline

Napisano 15.12.2011 18:31

EE zaczekaj ...

public Health(id)
{
    if(!is_user_alive(id))
    if(!ma_klase[id])
    {
        set_user_health(id, 1);  //Tutaj cyfra 1, także ustala hp
    }
}

Może i ***** sie znam, ale skoro
if(!is_user_alive(id))
oznacza że gracz jest martwy, to jak ma ustawiac hp ?

Poza tym
if(!ma_klase[id])
też oznacza ze gracz nie ma klasy .. :o


Jak to ma działać ? :)
  • +
  • -
  • 0

#13 d0naciak

    Godlike

  • Autor tematu
  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 15.12.2011 20:49

if(!is_user_alive(id))


To powoduje że funkcja jest wywołana tylko wtedy kiedy gracz jest żywy

if(!ma_klase[id])


To powoduje że funkcja jest wywołana tylko wtedy kiedy ma_klase jest na true


public cod_class_enabled(id)
{
ma_klase[id] = true;
}

jest na true jak widzisz ;)
Goliath (15.12.2011 21:00):
Mylisz się. Podana przez ciebie funkcja wykona się tylko wtedy, gdy gracz będzie martwy i gdy nie będzie mieć klasy. A że event został zarejestrowany z flagą "e", będzie on wysyłany tylko do żywych graczy (co jest sprzeczne z warunkiem wewnątrz funkcji). Podsumowanie: funkcja nigdy się nie wykona.

  • +
  • -
  • 0

#14 Najkon

    Profesjonalista

  • Użytkownik

Reputacja: 60
Pomocny

  • Postów:161
Offline

Napisano 16.12.2011 21:27

Tak jak goliath napisał - to nie działa.

! <- Wykrzynik przed funkcja oznacza zaprzeczenie .. :) Więc popraw.. Poza tym po co piszesz bzdury 'mi to działa bo sprawdzałem' skoro to nie ma prawa działac :)

Użytkownik Najkon edytował ten post 16.12.2011 21:28

  • +
  • -
  • 0

#15 Gość_Sangre_*

  • Gość

Reputacja: 0

Offline

Napisano 16.12.2011 21:43

powiem wam tak czy inaczej na serwerze nie działa i nie chciało działać.

#16 Najkon

    Profesjonalista

  • Użytkownik

Reputacja: 60
Pomocny

  • Postów:161
Offline

Napisano 17.12.2011 14:09

sprobuj to http://amxx.pl/topic...555#entry316555
  • +
  • -
  • 0

#17 d0naciak

    Godlike

  • Autor tematu
  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 17.12.2011 21:33

może kody pomyliłem ale mi działało !

Użytkownik Goliath edytował ten post 17.12.2011 22:10
Kultura...

  • +
  • -
  • -1

#18 Gość_Sangre_*

  • Gość

Reputacja: 0

Offline

Napisano 18.12.2011 12:59

dobra zrobiłem bez tych "!" ale w pierwszej rundzie po wybraniu klasy klasa ma niewidzialność ale ma 1HP

#19 radim

    Godlike

  • Moderator

Reputacja: 939
Master

  • Postów:2 725
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Janów Lub.
Offline

Napisano 18.12.2011 13:33

może kody pomyliłem ale mi działało !


Z tym kodem na pewno Ci nie działało. Daje się sprawdzony kod, który musi podlec kilku próbom

może kody pomyliłem ale mi działało !


Z tym kodem na pewno Ci nie działało. Daje się sprawdzony kod, który musi podlec kilku próbom


if(!is_user_alive(id))


To powoduje że funkcja jest wywołana tylko wtedy kiedy gracz jest żywy

if(!ma_klase[id])


To powoduje że funkcja jest wywołana tylko wtedy kiedy ma_klase jest na true


public cod_class_enabled(id)
{
ma_klase[id] = true;
}

jest na true jak widzisz ;)

Tak jak Goliath napisał, funkcja wykona się w tym przypadku tylko wtedy gdy gracz będzie nie żywy i nie będzie miał klasy. Ten "!" działa jak słowo "nie", czyli jak jest "if(!is_user_alive(id))" to tłumacząc będzie "jeżeli(nie_jest_żywy(id))" to samo z if(!ma_klase[id]) będzie "jeżeli(niema_klasy[id]))"
  • +
  • -
  • 0

Chcąc napisać do mnie prywatną wiadomość, wpierw zapoznaj się ze stroną "O mnie" w moim profilu użytkownika [ radim ] !


#20 Gość_Sangre_*

  • Gość

Reputacja: 0

Offline

Napisano 18.12.2011 13:57

no ludzie.
skasowałem w tych punktach te "!" działa fanie, ale dla czego klasa w pierwszej rundzie po tym jak zostanie wybrana ma 100hp?
a witalność mam na "0"





Również z jednym lub większą ilością słów kluczowych: cod nowy

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

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