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

Problem z DMG i 1/x z noza


Najlepsza odpowiedź Rivit, 14.07.2017 21:58

public TakeDamage(vid, infl, idinflictor, kid, Float:damage, damagebits)

Teraz to zauważyłem

Złe parametry są.

    public TakeDamage(vid, infl, kid, Float:damage, damagebits)
    {
    	if(!kid || !is_user_alive(vid) || !is_user_alive(kid) || SameTeam(vid, kid))
    		return HAM_IGNORED;
     
    	if(iObrazenia[kid] > 0.0)
    		damage += iObrazenia[kid];
    	
    	if((gClass[kid] == Ghost))
    		damage += 10;
     
    	if(get_user_weapon(kid) == CSW_KNIFE && damagebits & DMG_BULLET && get_pdata_float(get_pdata_cbase(kid, 373, 5), 47, 4) > 1.0)
    	{	
    		if((gClass[kid] == Ninja && !random(2)) || (gClass[kid] == Rambo && !random(4)) || (gClass[kid] == Nozownik && !random(2)) || gClass[kid] == Smierc)
    		{
                          KillPlayer(vid, infl, kid, (1<<1))
                          return HAM_IGNORED
                    }
    	}
     
    	SetHamParamFloat(4, damage);
    	
    	return HAM_HANDLED;
    }
     
    stock KillPlayer(id, inflictor, attacker, damagebits)
    {
    	static DeathMsgId
    	
    	new msgblock, effect
    	if (!DeathMsgId)	DeathMsgId = get_user_msgid("DeathMsg")
    	
    	msgblock = get_msg_block(DeathMsgId)
    	set_msg_block(DeathMsgId, BLOCK_ONCE)
    	
    	set_pdata_int(id, 75, HIT_CHEST , 5)
    	set_pdata_int(id, 76, damagebits, 5)
    	
    	ExecuteHamB(Ham_Killed, id, attacker, 1)
    	
    	set_pev(id, pev_dmg_inflictor, inflictor)
    	
    	effect = pev(id, pev_effects)
    	if(effect & 128)	set_pev(id, pev_effects, effect-128)
    	
    	set_msg_block(DeathMsgId, msgblock)
     
    	message_begin(MSG_ALL, DeathMsgId)
    	write_byte(attacker)
    	write_byte(id)
    	write_byte(0)
        write_string("knife")
    	message_end()
    }
Przejdź do postu


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

#1 WezZostan.

    Życzliwy

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:29
  • Imię:Przemyłsaw
  • Lokalizacja:Polska :)
Offline

Napisano 14.07.2017 21:03

Witam, otóż mam problem gdyż w paczce Deadhrun+Klasy od Mentosa nie działa mi statystyka obrażenia tzn. mam ją dodaną na MAX a zadawane obrażenia nic się nie zmieniają. Problem jest również gdy klasa posiada 1/x z noża, ponieważ kompletnie to nie działa. Czy jest ktoś w stanie mi pomóc?

public TakeDamage(vid, infl, idinflictor, kid, Float:damage, damagebits)
{
	if(!kid || !is_user_alive(vid) || !is_user_alive(kid) || SameTeam(vid, kid))
		return HAM_IGNORED;
	
	new health = get_user_health(vid)
	
	if(iObrazenia[kid] > 0.0)
		damage += iObrazenia[kid];
	
	if(get_user_weapon(kid) == CSW_KNIFE && damage > 20.0)
	{	
		if((gClass[kid] == Ninja) && random_num(1, 2) == 1 || (gClass[kid] == Rambo) && random_num(1, 4) == 1 || (gClass[kid] == Nozownik) && random_num(1, 2) == 1 || (gClass[kid] == Smierc))
			damage = float(health);
	}

	if((gClass[kid] == Ghost))
		damage+=10;
	
	SetHamParamFloat(4, damage);
	
	return HAM_IGNORED;
}

  • +
  • -
  • 1

#2 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 14.07.2017 21:19

public TakeDamage(vid, infl, idinflictor, kid, Float:damage, damagebits)
{
	if(!kid || !is_user_alive(vid) || !is_user_alive(kid) || SameTeam(vid, kid))
		return HAM_IGNORED;

	if(iObrazenia[kid] > 0.0)
		damage += iObrazenia[kid];
	
	if((gClass[kid] == Ghost))
		damage += 10;

	if(get_user_weapon(kid) == CSW_KNIFE && damagebits & DMG_BULLET && get_pdata_float(get_pdata_cbase(kid, 373, 5), 47, 4) > 1.0)
	{	
		if((gClass[kid] == Ninja && !random(2)) || (gClass[kid] == Rambo && !random(4)) || (gClass[kid] == Nozownik && !random(2)) || gClass[kid] == Smierc)
		{
                      KillPlayer(vid, infl, kid, (1<<1))
                      return HAM_IGNORED
                }
	}

	SetHamParamFloat(4, damage);
	
	return HAM_HANDLED;
}

stock KillPlayer(id, inflictor, attacker, damagebits)
{
	static DeathMsgId
	
	new msgblock, effect
	if (!DeathMsgId)	DeathMsgId = get_user_msgid("DeathMsg")
	
	msgblock = get_msg_block(DeathMsgId)
	set_msg_block(DeathMsgId, BLOCK_ONCE)
	
	set_pdata_int(id, 75, HIT_CHEST , 5)
	set_pdata_int(id, 76, damagebits, 5)
	
	ExecuteHamB(Ham_Killed, id, attacker, 1)
	
	set_pev(id, pev_dmg_inflictor, inflictor)
	
	effect = pev(id, pev_effects)
	if(effect & 128)	set_pev(id, pev_effects, effect-128)
	
	set_msg_block(DeathMsgId, msgblock)

	message_begin(MSG_ALL, DeathMsgId)
	write_byte(attacker)
	write_byte(id)
	write_byte(0)
        write_string("knife")
	message_end()
}

Pisane z telefonu, może nie działać, jeżeli sięnie kompiluje to zarzuć log z kompilatora. Jeżeli nie działa to wyjaśnij co i jak ;)


  • +
  • -
  • 2

#3 WezZostan.

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:29
  • Imię:Przemyłsaw
  • Lokalizacja:Polska :)
Offline

Napisano 14.07.2017 21:40

Nic się nie zmieniło ani statystyka na dmg nie działa ani 1/x z kosy. Może trzeba coś dopisać?


  • +
  • -
  • 0

#4 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 14.07.2017 21:58   Najlepsza odpowiedź

public TakeDamage(vid, infl, idinflictor, kid, Float:damage, damagebits)

Teraz to zauważyłem

Złe parametry są.

    public TakeDamage(vid, infl, kid, Float:damage, damagebits)
    {
    	if(!kid || !is_user_alive(vid) || !is_user_alive(kid) || SameTeam(vid, kid))
    		return HAM_IGNORED;
     
    	if(iObrazenia[kid] > 0.0)
    		damage += iObrazenia[kid];
    	
    	if((gClass[kid] == Ghost))
    		damage += 10;
     
    	if(get_user_weapon(kid) == CSW_KNIFE && damagebits & DMG_BULLET && get_pdata_float(get_pdata_cbase(kid, 373, 5), 47, 4) > 1.0)
    	{	
    		if((gClass[kid] == Ninja && !random(2)) || (gClass[kid] == Rambo && !random(4)) || (gClass[kid] == Nozownik && !random(2)) || gClass[kid] == Smierc)
    		{
                          KillPlayer(vid, infl, kid, (1<<1))
                          return HAM_IGNORED
                    }
    	}
     
    	SetHamParamFloat(4, damage);
    	
    	return HAM_HANDLED;
    }
     
    stock KillPlayer(id, inflictor, attacker, damagebits)
    {
    	static DeathMsgId
    	
    	new msgblock, effect
    	if (!DeathMsgId)	DeathMsgId = get_user_msgid("DeathMsg")
    	
    	msgblock = get_msg_block(DeathMsgId)
    	set_msg_block(DeathMsgId, BLOCK_ONCE)
    	
    	set_pdata_int(id, 75, HIT_CHEST , 5)
    	set_pdata_int(id, 76, damagebits, 5)
    	
    	ExecuteHamB(Ham_Killed, id, attacker, 1)
    	
    	set_pev(id, pev_dmg_inflictor, inflictor)
    	
    	effect = pev(id, pev_effects)
    	if(effect & 128)	set_pev(id, pev_effects, effect-128)
    	
    	set_msg_block(DeathMsgId, msgblock)
     
    	message_begin(MSG_ALL, DeathMsgId)
    	write_byte(attacker)
    	write_byte(id)
    	write_byte(0)
        write_string("knife")
    	message_end()
    }

  • +
  • -
  • 2

#5 WezZostan.

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:29
  • Imię:Przemyłsaw
  • Lokalizacja:Polska :)
Offline

Napisano 14.07.2017 22:23

Działa idealnie, dzięki wielkie kumplu :D


  • +
  • -
  • 0




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

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