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
Klasa

Modyfikacja klasy

klasa podpalenie

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

#1 Lajonek

    Nowy

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:9
  • Imię:Marcin
  • Lokalizacja:Iłowo
Offline

Napisano 15.04.2013 16:48

Witam.

Mam otóż taki problem.

Zrobiłem klasę, która może podpalić wroga. Nie wiem, co zrobić, by podpalenie zadawało 200 obrażeń. Wpisałem niewidzialność klasy na 60 pkt. i jest całkowicie widzialny.

Proszę o jak najszybszą pomoc w sprawie podpalenia i widoczności.

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

#define DMG_BULLET (1<<1)

#define MAX 32

new const nazwa[] = "(Premium)HellBoy";
new const opis[] = "Masz 1/5 na podpalenie wroga, 1/6 z M4A1, Widocznosc spada do 60, +2 skoki";
new const bronie = 1<<CSW_M4A1;
new const zdrowie = 20;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 20;

new sprite_fire, sprite_smoke;
new skoki[33];
new ma_klase[MAX+1], palenie_gracza[MAX+1];

public plugin_init()
{
        register_plugin(nazwa, "1.0", "Lajon");
        cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);

	register_event("Damage", "Damage", "b", "2!=0");
	
	RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
	
	register_forward(FM_CmdStart, "fwCmdStart_MultiJump");
}

public plugin_precache()
{
	sprite_fire = precache_model("sprites/fire.spr")
	sprite_smoke = precache_model("sprites/steam1.spr")
}

public cod_class_enabled(id)
{
	if(!(get_user_flags(id) & ADMIN_LEVEL_E))
	{
        client_print(id, print_chat, "[(Premium)HellBoy] Nie masz uprawnien, aby uzywac tej klasy.")
        return COD_STOP;

		set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 60);
	}
	ma_klase[id] = true;
	
	return COD_CONTINUE;
}
public cod_class_disabled(id)
{
	set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255);
    	ma_klase[id] = false;
}

public Damage(id)
{
        new attacker = get_user_attacker(id);
        if(!is_user_alive(attacker))
                return PLUGIN_CONTINUE;
        
        if(id == attacker)
                return PLUGIN_CONTINUE;
        
        if(ma_klase[attacker] && random_num(1, 5) == 1)
        {
                if(task_exists(id+2936))
                        remove_task(id+2936);
                palenie_gracza[id] = 500;
                new data[2]
                data[0] = id
                data[1] = attacker
                set_task(0.2, "burning_flame", id+2936, data, 2, "b");
        }
        return PLUGIN_CONTINUE;
}

public burning_flame(data[2])
{
	new id = data[0]
	
	if(!is_user_alive(id))
	{
		palenie_gracza[id] = 0
		remove_task(id+2936);
		return PLUGIN_CONTINUE;
	}
	
	new origin[3], flags = pev(id, pev_flags)
	get_user_origin(id, origin)
	
	if(flags & FL_INWATER || palenie_gracza[id] < 1 || !get_user_health(id))
	{
		message_begin(MSG_PVS, SVC_TEMPENTITY, origin)
		write_byte(TE_SMOKE)
		write_coord(origin[0])
		write_coord(origin[1])
		write_coord(origin[2]-50)
		write_short(sprite_smoke)
		write_byte(random_num(15,20))
		write_byte(random_num(10,20))
		message_end()
		
		remove_task(id+2936);
		return PLUGIN_CONTINUE;
	}
	
	if(flags & FL_ONGROUND)
	{
		static Float:velocity[3]
		pev(id, pev_velocity, velocity)
		xs_vec_mul_scalar(velocity, 0.5, velocity)
		set_pev(id, pev_velocity, velocity)
	}
	cod_inflict_damage(data[1], id, 1.0, 1.0, 0, DMG_BURN);
	
	message_begin(MSG_PVS, SVC_TEMPENTITY, origin)
	write_byte(TE_SPRITE)
	write_coord(origin[0]+random_num(-5,5))
	write_coord(origin[1]+random_num(-5,5))
	write_coord(origin[2]+random_num(-10,10))
	write_short(sprite_fire)
	write_byte(random_num(5,10))
	write_byte(200)
	message_end()
	
	palenie_gracza[id]--
	return PLUGIN_CONTINUE;
}	

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
        if(!is_user_connected(idattacker))
                return HAM_IGNORED;
        
        if(!ma_klase[idattacker])
                return HAM_IGNORED;
        
        if(get_user_weapon(idattacker) == CSW_M4A1 && random_num(1,6) == 1)
                cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);

        return HAM_IGNORED;
}

public fwCmdStart_MultiJump(id, uc_handle)
{
	if(!is_user_alive(id) || !ma_klase[id])
		return FMRES_IGNORED;

	new flags = pev(id, pev_flags);

	if((get_uc(uc_handle, UC_Buttons) & IN_JUMP) && !(flags & FL_ONGROUND) && !(pev(id, pev_oldbuttons) & IN_JUMP) && skoki[id])
	{
		skoki[id]--;
		new Float:velocity[3];
		pev(id, pev_velocity,velocity);
		velocity[2] = random_float(265.0,285.0);
		set_pev(id, pev_velocity,velocity);
	}
	else if(flags & FL_ONGROUND)
		skoki[id] = 2;

	return FMRES_IGNORED;
}

Załączone pliki


  • +
  • -
  • 0
b_350_20_FFAD41_E98100_000000_591F11.png

#2 Pan Marian

    Banned

  • Zbanowany

Reputacja: 89
Zaawansowany

  • Postów:283
  • Imię:Marian
  • Lokalizacja:इंटरनेट
Offline

Napisano 15.04.2013 16:52

Z ogniem chcesz, żeby co turę zabierało 200 hp, czy, żeby w ciągu iluś tur zabierało?

Co do niewidzialności:

set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 60);

Wytnij ten kod pod to:

ma_klase[id] = true;

Użytkownik Pan Marian edytował ten post 15.04.2013 16:53


#3 Lajonek

    Nowy

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:9
  • Imię:Marcin
  • Lokalizacja:Iłowo
Offline

Napisano 16.04.2013 05:00

Chcę, żeby raz na podpalenie zadawało 200 obrażeń. Co próbuję zmienić, to i tak te podpalenie bije po 10-25 na jedno podpalenie.

 

A niewidoczność już działa, za co dziękuję :)

 

Jeszcze pozostała sprawa z tym podpaleniem. ;/


Użytkownik Lajonek edytował ten post 16.04.2013 05:03

  • +
  • -
  • 0
b_350_20_FFAD41_E98100_000000_591F11.png





Również z jednym lub większą ilością słów kluczowych: klasa, podpalenie

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

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