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

1/1 z He nie działa


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

#1 Karaj

    Zaawansowany

  • Zbanowany

Reputacja: 3
Nowy

  • Postów:83
  • Imię:Adi
  • Lokalizacja:Strzelce
Offline

Napisano 13.08.2011 09:09

Witam
Pomoże ktoś naprawić? bo 1/1 z He nie działa

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <codmod>
#include <hamsandwich>

#define DMG_BULLET (1<<1) 

#define DMG_HE (1<<24) 

new const perk_name[] = "Granat Gerala";
new const perk_desc[] = "Natychmiastowe zabicie z HE";

new ma_perk[33];

public plugin_init() 
{
        register_plugin(perk_name, "1.0", "MarWit")
        cod_register_perk(perk_name, perk_desc);
        RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}

public cod_perk_enabled(id)
{
	cod_give_weapon(id, CSW_HEGRENADE);
	ma_perk[id] = true;
}

public cod_perk_disabled(id)
{
	cod_take_weapon(id, CSW_HEGRENADE);
	ma_perk[id] = false;
}

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
        if(!is_user_connected(idattacker))
                return HAM_IGNORED; 
        
        if(!ma_perk[idattacker])
                return HAM_IGNORED;
        
        
        if(damagebits & DMG_BULLET)
        {
                new weapon = get_user_weapon(idattacker);
                if(weapon == CSW_HEGRENADE) 
                        cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
        }
        
        return HAM_IGNORED;
}



#2 Dwdov

    Profesjonalista

  • Zbanowany

Reputacja: 59
Pomocny

  • Postów:172
  • Imię:Dawid
  • Lokalizacja:Jawor
Offline

Napisano 13.08.2011 09:30

Błędy co najmniej 3.
1. Sprawdzasz czy dmg są od naboi

if(damagebits & DMG_BULLET)

2. Sprawdzasz czy gracz trzyma aktualnie HE w ręce, a nie czy dmg zostało zadane przy pomocy HE.

new weapon = get_user_weapon(idattacker);
if(weapon == CSW_HEGRENADE)

3. W sumie nie taki błąd, ale po co tego używać wystarczy SetHamParamFloat( 4, damage )

cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);

Powinno być tak (sposobem ze starego coda, trzeba jeszcze #include <engine> )




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

if( !ma_perk[idattacker] )
return HAM_IGNORED;


if( !( damagebits & DMG_BULLET ) // mozna tez chyba wj***c negacje ~DMG_BULLET
&& idinflictor != idattacker
&& entity_get_int(idinflictor, EV_INT_movetype) != 5 )
{
damage = get_user_health( this );
SetHamParamFloat(4, damage);
}

return HAM_IGNORED;
}

Użytkownik Dawedov edytował ten post 13.08.2011 09:31

Nie pomagam na PW, tylko na forum.


#3 Karaj

    Zaawansowany

  • Autor tematu
  • Zbanowany

Reputacja: 3
Nowy

  • Postów:83
  • Imię:Adi
  • Lokalizacja:Strzelce
Offline

Napisano 13.08.2011 09:39

a to gdzie mam dac?

new weapon = get_user_weapon(idattacker);
if(weapon == CSW_HEGRENADE)

#4 Dwdov

    Profesjonalista

  • Zbanowany

Reputacja: 59
Pomocny

  • Postów:172
  • Imię:Dawid
  • Lokalizacja:Jawor
Offline

Napisano 13.08.2011 09:54

Tak się tego nie sprawdza, get_user_weapon zwraca broń trzymaną, czyli rzucisz np. HE ale zanim on zada dmg to broń zmieni Ci się np. na m4a1 i wtedy get_user_weapon zwraca m4a1.

entity_get_int(idinflictor, EV_INT_movetype) != 5

To sprawdza czy sposob poruszania się enta jest inny niż 5 ( MOVETYPE_WALK - czyli gracza ) - o ile nie powaliłem numerków. Jeżeli jest inny to najprawdopodobniej to jest HE i tak też jest ; p



Nie pomagam na PW, tylko na forum.


#5 Karaj

    Zaawansowany

  • Autor tematu
  • Zbanowany

Reputacja: 3
Nowy

  • Postów:83
  • Imię:Adi
  • Lokalizacja:Strzelce
Offline

Napisano 13.08.2011 09:59

złóż mi całe sma dam plus

#6 Dwdov

    Profesjonalista

  • Zbanowany

Reputacja: 59
Pomocny

  • Postów:172
  • Imię:Dawid
  • Lokalizacja:Jawor
Offline

Napisano 13.08.2011 10:31

Masz wyżej jak powinna wyglądać funkcja takedamage, wklejasz ją zamiast swojej i dopisujesz na górze sma

#include <engine>

Nie pomagam na PW, tylko na forum.


#7 Karaj

    Zaawansowany

  • Autor tematu
  • Zbanowany

Reputacja: 3
Nowy

  • Postów:83
  • Imię:Adi
  • Lokalizacja:Strzelce
Offline

Napisano 13.08.2011 13:51

zrobiłem tak i nie działa;/

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <codmod>
#include <hamsandwich>
#include <engine>

#define DMG_BULLET (1<<1) 

#define DMG_HE (1<<24) 

new const perk_name[] = "Granat Gerala";
new const perk_desc[] = "Natychmiastowe zabicie z HE";

new ma_perk[33];

public plugin_init() 
{
        register_plugin(perk_name, "1.0", "MarWit")
        cod_register_perk(perk_name, perk_desc);
        RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}

public cod_perk_enabled(id)
{
	cod_give_weapon(id, CSW_HEGRENADE);
	ma_perk[id] = true;
}

public cod_perk_disabled(id)
{
	cod_take_weapon(id, CSW_HEGRENADE);
	ma_perk[id] = false;
}

public TakeDamage( this, idinflictor, idattacker, Float:damage, damagebits )
{
        if( !is_user_connected( idattacker ) )
                return HAM_IGNORED; 
        
        if( !ma_perk[idattacker] )
                return HAM_IGNORED;
        
        
        if( !( damagebits & DMG_BULLET ) // mozna tez chyba wj***c negacje ~DMG_BULLET
        && idinflictor != idattacker 
        && entity_get_int(idinflictor, EV_INT_movetype) != 5 ) 
        {
                damage = get_user_health( this );
                SetHamParamFloat(4, damage);
        }
        
        return HAM_IGNORED;
}


#8 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

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

Napisano 13.08.2011 13:59

sprawdz
#include <amxmodx>
#include <codmod>
#include <hamsandwich>

new const perk_name[] = "Granat Gerala";
new const perk_desc[] = "Natychmiastowe zabicie z HE";

new ma_perk[33];

public plugin_init() 
{
	register_plugin(perk_name, "1.0", "MarWit")
	cod_register_perk(perk_name, perk_desc);
	RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}

public cod_perk_enabled(id)
{
	cod_give_weapon(id, CSW_HEGRENADE);
	ma_perk[id] = true;
}

public cod_perk_disabled(id)
{
	cod_take_weapon(id, CSW_HEGRENADE);
	ma_perk[id] = false;
}

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
	if(!is_user_connected(idattacker) || !is_user_connected(this))
		return HAM_IGNORED; 
	
	if(!ma_perk[idattacker])
		return HAM_IGNORED;
	
	
	if(damagebits & (1 << 24) )
	{
		cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
	}
	
	return HAM_IGNORED;
}

  • +
  • -
  • 1

#9 Karaj

    Zaawansowany

  • Autor tematu
  • Zbanowany

Reputacja: 3
Nowy

  • Postów:83
  • Imię:Adi
  • Lokalizacja:Strzelce
Offline

Napisano 13.08.2011 14:06

dzięki działa:)

#10 Adminek AMXX.PL

    Admin :)

  • Bot

Reputacja: 156
Profesjonalista

  • Postów:7 492
  • Lokalizacja:AMXX.PL
Offline

Napisano 13.08.2011 14:09

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Rozwiązane

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL




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

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