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

Ktos nam zadaje Obrazenia


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

#1 pfkers

    Banned

  • Zbanowany

Reputacja: 90
Zaawansowany

  • Postów:759
  • GG:
  • Imię:Krzysiek
  • Lokalizacja:Płock
Offline

Napisano 31.03.2012 02:15

Witam..chcialbym sie zapytac.. jak zapisac zdarzenie gdy ktos do nas strzela i wychwycic moment i zmienic jego wartosc Damage..Czyli w sumie chodzi o to gdy zostanie spelniony jakis warunek to damage przeciwnika zadawany mi maleje

#2 Trikolo

    Miszczu

  • Zbanowany

Reputacja: 111
Zaawansowany

  • Postów:348
  • GG:
  • Imię:Trikolo
  • Lokalizacja:Komputer
Offline

Napisano 31.03.2012 07:34

Nie zrozumiałem twojego pytania o_O

#3 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

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

Napisano 31.03.2012 09:21

RegisterHam(Ham_TakeDamage, "player", "ham_preTakeDamage", 0);


Tutaj info:
/**
	 * Description:		Usually called whenever an entity takes any kind of damage.
	 *					Inflictor is the entity that caused the damage (such as a gun).
	 *					Attacker is the entity that tirggered the damage (such as the gun's owner).
	 * Forward params:	function(this, idinflictor, idattacker, Float:damage, damagebits);
	 * Return type:		Integer.
	 * Execute params:	ExecuteHam(Ham_TakeDamage, this, idinflictor, idattacker, Float:damage, damagebits);
	 *

  • +
  • -
  • 1

#4 pfkers

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 90
Zaawansowany

  • Postów:759
  • GG:
  • Imię:Krzysiek
  • Lokalizacja:Płock
Offline

Napisano 31.03.2012 11:40

RegisterHam(Ham_TakeDamage, "player", "ham_preTakeDamage", 0);

Tutaj info:
/**
* Description: Usually called whenever an entity takes any kind of damage.
* Inflictor is the entity that caused the damage (such as a gun).
* Attacker is the entity that tirggered the damage (such as the gun's owner).
* Forward params: function(this, idinflictor, idattacker, Float:damage, damagebits);
* Return type: Integer.
* Execute params: ExecuteHam(Ham_TakeDamage, this, idinflictor, idattacker, Float:damage, damagebits);
*


No tak :D .. wczoraj siedzialem pol dnia na tym lecz nie moglem tego ustawic.. zmniejszalo damage ale moje :D nie przeciwnika

#5 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

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

Napisano 31.03.2012 12:25

Zmniejszało i twoje i przeciwnika, musisz sprawdzać, jeżeli this to ty to zmniejszasz dmg, a jeżeli nie ty to nie zmieniasz dmg.
  • +
  • -
  • 1

#6 pfkers

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 90
Zaawansowany

  • Postów:759
  • GG:
  • Imię:Krzysiek
  • Lokalizacja:Płock
Offline

Napisano 31.03.2012 12:30

hmm a chodzi mi o konkretny przyklad

if(informacja_przedmiotu_gracza[this][0] = 10)

Ze jezeli ja mam ten przedmiot to przeciwnikowi zmniejsza sie dmg.. i jak zapisac ze dmg sie zmniejsza nie mi tylko przeciwnikowi

Bo taki zapis mi zmniejsza:

damage-=50;

A tutaj mam przyklad Podwojnej i wzmocnionej kamizelki z Coda Starego

if(informacje_przedmiotu_gracza[this][0] == 2 || informacje_przedmiotu_gracza[this][0] == 3)
        damage-=(float(informacje_przedmiotu_gracza[this][1])<damage)? float(informacje_przedmiotu_gracza[this][1]): damage;

No i jej zadaniem jest zmniejszenie naszego obrazenie ( czyli = zmniejszenie dmg przeciwnika wobec nas)
Tylko ze robilem na przykladzie tego i tez nic to nie daje..

Użytkownik pfk92 edytował ten post 31.03.2012 12:33


#7 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

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

Napisano 31.03.2012 12:43

Zrozum że nie zmieniasz dmg, odbierającemu lub atakującemu oddzielnie tylko obu razem. Ten kod, który dałeś powinien być dobry, ale dla pewności daj całą funkcję.
  • +
  • -
  • 1

#8 pfkers

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 90
Zaawansowany

  • Postów:759
  • GG:
  • Imię:Krzysiek
  • Lokalizacja:Płock
Offline

Napisano 31.03.2012 12:54

dam ci wszystko do 1 itemu jak zrobic:


new informacje_przedmiotu_gracza_1[33][2];

new const nazwy_przedmiotow_1[][]={"Brak" ,

	"Gruba Kamizelka"

};


public Death(item,menu)


   	 if(!informacje_przedmiotu_gracza_1[attacker][0])
			DajPrzedmiot1(attacker, random_num(1, sizeof nazwy_przedmiotow_1-1));

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
	if(!is_user_alive(this) || !is_user_connected(this) || !is_user_connected(idattacker) || get_user_team(this) == get_user_team(idattacker) || !klasa_gracza[idattacker])
		return HAM_IGNORED;
		
	new health = get_user_health(this);
	new weapon = get_user_weapon(idattacker);
	
	if(health < 2)
		return HAM_IGNORED;
	
		
// I tutaj kod na zmniejszenie obrazenia jezeli sie ma item
			

		
		
	SetHamParamFloat(4, damage);
	return HAM_IGNORED;
}




public DajPrzedmiot1(id,przedmiot)
{
		
	informacje_przedmiotu_gracza_1[id][0] = przedmiot;
	client_print(id, print_chat, "[COD:MW] Zdobyles %s.", nazwy_przedmiotow_1[informacje_przedmiotu_gracza_1[id][0]]);	
	
	switch(przedmiot)
	{
		case 1:
		{
			informacje_przedmiotu_gracza_1[id][1] = 200;
		}
	}
}

chyba wszystko co potrzebne


A tu podam kolejny przyklad z coda:

if(wytrzymalosc_gracza[this]>0)
        damage -= redukcja_obrazen_gracza[this]*damage;

a wytrzymalosc gracza zmniejsza otrzymywane dmg ;/

no juz nie mam pojecia jak to ugryzc ;/

Użytkownik pfk92 edytował ten post 31.03.2012 12:58


#9 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

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

Napisano 31.03.2012 13:03

Masz perk, to otrzymujesz mnie obrażeń, w czym problem ?
  • +
  • -
  • 0

#10 pfkers

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 90
Zaawansowany

  • Postów:759
  • GG:
  • Imię:Krzysiek
  • Lokalizacja:Płock
Offline

Napisano 31.03.2012 13:06

no ale to nie dziala ;/ normalnie zadaja mi obrazenia....

o kurde :D....ale botow chyba nie czyta jako gracza wiec oni zadaja normalne obrazenia ?? bo ja sprawdzam to z botami i bd zal jak to dzialalo..

#11 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

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

Napisano 31.03.2012 13:09

Ale patrz jeżeli atakujący nie ma klasy to dajesz zwracasz 0, a może u cb boty nie wybierają klasy ?
  • +
  • -
  • 0

#12 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

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

Napisano 31.03.2012 13:11

boty to normalni graczae zadają "normalne" obrażenia
pokaż cała funkcje
może nie zwracasz tego co trzeba lub nie używasz SetHamParamFloat
a może masz zarejestrowany takedamamge jako post
  • +
  • -
  • 1

#13 pfkers

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 90
Zaawansowany

  • Postów:759
  • GG:
  • Imię:Krzysiek
  • Lokalizacja:Płock
Offline

Napisano 31.03.2012 13:30

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


public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
		if(!is_user_alive(this) || !is_user_connected(this) || !is_user_connected(idattacker) || get_user_team(this) == get_user_team(idattacker) || !klasa_gracza[idattacker])
				return HAM_IGNORED;
				
		new health = get_user_health(this);
		new weapon = get_user_weapon(idattacker);
		
		if(health < 2)
				return HAM_IGNORED;
		
				
// I tutaj kod na zmniejszenie obrazenia jezeli sie ma item
						

				
				
		SetHamParamFloat(4, damage);
		return HAM_IGNORED;
}

To jest moje cale Take Damage.. tak jak w codzie tylko ze nie ma itemow (bo chce wlasne wrzucic) moze czegos zapomnialem wrzucic badz skasowalem

To jest takie jak w codzie:

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!is_user_alive(this) || !is_user_connected(this) || informacje_przedmiotu_gracza[this][0] == 24 || !is_user_connected(idattacker) || get_user_team(this) == get_user_team(idattacker) || !klasa_gracza[idattacker])
return HAM_IGNORED;

new health = get_user_health(this);
new weapon = get_user_weapon(idattacker);

if(health < 2)
return HAM_IGNORED;

if(informacje_przedmiotu_gracza[this][0] == 27 && informacje_przedmiotu_gracza[this][1]>0)
{
informacje_przedmiotu_gracza[this][1]--;
return HAM_SUPERCEDE;
}
if(wytrzymalosc_gracza[this]>0)
damage -= redukcja_obrazen_gracza[this]*damage;

if(informacje_przedmiotu_gracza[this][0] == 2 || informacje_przedmiotu_gracza[this][0] == 3)
damage-=(float(informacje_przedmiotu_gracza[this][1])<damage)? float(informacje_przedmiotu_gracza[this][1]): damage;

if(informacje_przedmiotu_gracza[idattacker][0] == 5 && !UTIL_In_FOV(this, idattacker) && UTIL_In_FOV(idattacker, this))
damage*=2.0;

if(informacje_przedmiotu_gracza[idattacker][0] == 10)
damage+=informacje_przedmiotu_gracza[idattacker][1];

if(informacje_przedmiotu_gracza[this][0] == 12)
damage-=(5.0<damage)? 5.0: damage;

if(weapon == CSW_AWP && informacje_przedmiotu_gracza[idattacker][0] == 13)
damage=float(health);

if(informacje_przedmiotu_gracza[idattacker][0] == 21)
damage+=10;

if(informacje_przedmiotu_gracza[idattacker][0] == 22)
damage+=20;

if(idinflictor != idattacker && entity_get_int(idinflictor, EV_INT_movetype) != 5)
{
if((informacje_przedmiotu_gracza[idattacker][0] == 9 && random_num(1, informacje_przedmiotu_gracza[idattacker][1]) == 1) || informacje_przedmiotu_gracza[idattacker][0] == 10)
damage = float(health);
}
if(weapon == CSW_KNIFE)
{
if(informacje_przedmiotu_gracza[this][0] == 4)
damage=damage*1.4+inteligencja_gracza[idattacker];
if(informacje_przedmiotu_gracza[idattacker][0] == 8 || (klasa_gracza[idattacker] == Snajper && random(2) == 2) || klasa_gracza[idattacker] == Komandos && !(get_user_button(idattacker) & IN_ATTACK))
damage = float(health);
}

if(informacje_przedmiotu_gracza[this][0] == 26 && random_num(1, informacje_przedmiotu_gracza[this][1]) == 1)
{
SetHamParamEntity(3, this);
SetHamParamEntity(1, idattacker);
}


SetHamParamFloat(4, damage);
return HAM_IGNORED;
}


#14 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

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

Napisano 31.03.2012 13:43

zamiast HAM_IGNORED zwracaj HAM_HANDLED
  • +
  • -
  • 1

#15 pfkers

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 90
Zaawansowany

  • Postów:759
  • GG:
  • Imię:Krzysiek
  • Lokalizacja:Płock
Offline

Napisano 31.03.2012 14:32

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
	if(!is_user_alive(this) || !is_user_connected(this) || !is_user_connected(idattacker) || get_user_team(this) == get_user_team(idattacker) || !postac_gracza[idattacker])
		return HAM_IGNORED;
		
	new health = get_user_health(this);
	new weapon = get_user_weapon(idattacker);
	
	if(health < 2)
		return HAM_IGNORED;
	
		
	if(informacje_przedmiotu_gracza_1[this][0] == 1)
		damage-=(float(informacje_przedmiotu_gracza_1[this][1])<damage)? float(informacje_przedmiotu_gracza_1[this][1]): damage;
			

		
		
	SetHamParamFloat(4, damage);
	return HAM_HANDLED;
}


public DajPrzedmiot1(id,przedmiot)
{
		
	informacje_przedmiotu_gracza_1[id][0] = przedmiot;
	client_print(id, print_chat, "[COD:MW] Zdobyles %s.", nazwy_przedmiotow_1[informacje_przedmiotu_gracza_1[id][0]]);	
	
	switch(przedmiot)
	{
		case 1:
		{
			informacje_przedmiotu_gracza_1[id][1] = 2000;
		}
	}
}

zrobilem nawet tak zeby mi nie zadawali w ogóle dmg dla pewnosci.. ale nadal nie dziala ;/ co ja zle robie ?

nie no ja tego nie ogarniam.. chcialem nawet w codzie zrobic item (zeby zabieral nam mniej hp czyli jak wytrzymalosc ) no ale nie idzie.. poakze ktos wzor jak zrobic ze jak sie ma dany item to obrazenia (ktory nam zadaja) bd o polowe mniejsze...(Dark ty w metin modzie to miales.. patrzylem ale nie ogarnalem)

Użytkownik pfk92 edytował ten post 31.03.2012 14:32


#16 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

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

Napisano 31.03.2012 15:01

osoba która do ciebie strzela ma wybraną klasę ? jak testujesz na botach to one raczej nie mają wybranej klasy dlatego nie działa
  • +
  • -
  • 1

#17 pfkers

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 90
Zaawansowany

  • Postów:759
  • GG:
  • Imię:Krzysiek
  • Lokalizacja:Płock
Offline

Napisano 31.03.2012 15:29

a widzisz ;/ zaraz to sprawdze i dam znac

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
    if(!is_user_alive(this) || !is_user_connected(this) || !is_user_connected(idattacker) || get_user_team(this) == get_user_team(idattacker))
        return HAM_IGNORED;
        
    new health = get_user_health(this);
    new weapon = get_user_weapon(idattacker);
    

    
    if(informacje_przedmiotu_gracza_1[this][0] == 1)
        damage-=(float(informacje_przedmiotu_gracza_1[this][1])<damage)? float(informacje_przedmiotu_gracza_1[this][1]): damage;
            

        
        
    SetHamParamFloat(4, damage);
    return HAM_HANDLED ;
}

public DajPrzedmiot1(id,przedmiot)
{
        
    informacje_przedmiotu_gracza_1[id][0] = przedmiot;
    client_print(id, print_chat, "[COD:MW] Zdobyles %s.", nazwy_przedmiotow_1[informacje_przedmiotu_gracza_1[id][0]]);    
    
    switch(przedmiot)
    {    
        case 1:
        {
            informacje_przedmiotu_gracza_1[id][1] = random_num(3,6);
        }
    
    }
}

dalej nic

#18 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 31.03.2012 16:05

zamiast HAM_IGNORED zwracaj HAM_HANDLED


HAM_OVERRIDE

twoj ostatni kod zmniejsza obrazenia o losową liczbę od 3 do 6 więc tego mozesz nie zauwazyć przy strzale najlepiej zrob sobie wyswietlanie damage na początku i przed sethamparamfloat :D
  • +
  • -
  • 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

#19 pfkers

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 90
Zaawansowany

  • Postów:759
  • GG:
  • Imię:Krzysiek
  • Lokalizacja:Płock
Offline

Napisano 31.03.2012 16:32

informacje_przedmiotu_gracza_1[id][1] = 2000;

Probowalem nawet tak i nic xD

okej zaraz wszystko sprawdze i dam znac ;]

ehhh no nadal nic ;/

Czy ktos byl by w stanie napisac gotowy item z gotowym take damage ?? jezeli nie to podac przyklad.. zebym chociaz wiedzial jak to robic. .bo moze ja popelniam gdzies blad

Użytkownik pfk92 edytował ten post 31.03.2012 16:20


#20 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 31.03.2012 17:03

informacje_przedmiotu_gracza_1[id][1] = 2000;


Probowalem nawet tak i nic


bo wtedy podstawiane byly damage

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
    if(!is_user_alive(this) || !is_user_connected(this) || !is_user_connected(idattacker) || get_user_team(this) == get_user_team(idattacker))
        return HAM_IGNORED;
        
    new health = get_user_health(this);
    new weapon = get_user_weapon(idattacker);
    

    
    if(informacje_przedmiotu_gracza_1[this][0] == 1)
        damage/=2;
        
    SetHamParamFloat(4, damage);
    return HAM_OVERRIDE ;
}
jesli gracz ma item to bedzie dostawać polowe mniejsze dmg
  • +
  • -
  • 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




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

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