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

Jak dodać klasie 1/x podpalenie przeciwnika z każdej broni ?

cod nowy

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

#1 Hans Landa

    Banned

  • Zbanowany

Reputacja: 0
Nowy

  • Postów:40
  • Imię:Mateusz
  • Lokalizacja:Małopolska
Offline

Napisano 07.02.2014 15:09

Witam, chciałbym prosić o dokładny poradnik jak dodać klasie 1/x na podpalenie wroga przy każdym strzale i z każdej broni. 

 

Z góry dzięki.



#2 Drago36

    Profesjonalista - if you know what i mean

  • Power User

Reputacja: 561
Wszechwiedzący

  • Postów:707
  • GG:
  • Imię:Mów mi D.ave
  • Lokalizacja:Polska
Offline

Napisano 07.02.2014 15:38

Kod by Cypis'

Poradnik by Drago36

 

Do bibliotek dodajesz:

#include <fakemeta>
#include <xs>

Pod bibliotekami dodajesz:

#define MAX 32

new sprite_fire,
    sprite_smoke;

new ma_klase[MAX+1] ,wartosc_perku[MAX+1], palenie_gracza[MAX+1];

Rejestrujesz:

register_event("Damage", "Damage", "b", "2!=0");

I na sam koniec pluginu dajesz:

public plugin_precache()
{
    sprite_fire = precache_model("sprites/fire.spr")
    sprite_smoke = precache_model("sprites/steam1.spr")
}
// JESLI MASZ JUZ W KLASIE PLUGIN_PRECACHE TO SKOPIUJ TYLKO TE DWIE LINIJKI I DODAJ JE

public Damage(id)
{
    new attacker = get_user_attacker(id);
    if(!is_user_alive(attacker))
        return PLUGIN_CONTINUE;
    
    if(ma_klase[attacker] && random_num(1, x) == 1) // za x wstawiasz swoją wartość
    {
        if(task_exists(id+2936))
            remove_task(id+2936);
        palenie_gracza[id] = 25;
        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, 0.0, 0, 1<<24);
    
    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;
}   

  • +
  • -
  • 0

#3 Hans Landa

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 0
Nowy

  • Postów:40
  • Imię:Mateusz
  • Lokalizacja:Małopolska
Offline

Napisano 09.02.2014 16:51

Ok wszystko działa, ale gdy podpale przeciwnika to zabiera mu pancerz i to w małym stopniu. Można by było to przerobić aby zabierało HP i pancerz = 1hp w ciągu 1 sek i to do końca rundy ? Jeśli tak to bardzo o to proszę.



#4 Drago36

    Profesjonalista - if you know what i mean

  • Power User

Reputacja: 561
Wszechwiedzący

  • Postów:707
  • GG:
  • Imię:Mów mi D.ave
  • Lokalizacja:Polska
Offline

Napisano 09.02.2014 17:32

Chodzi ci o to, że jak podpali się wroga to ma palić się dotąd aż umrze?
  • +
  • -
  • 0

#5 Hans Landa

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 0
Nowy

  • Postów:40
  • Imię:Mateusz
  • Lokalizacja:Małopolska
Offline

Napisano 09.02.2014 17:40

Tak, i żeby brało hp i pancerz wraz a nie sam pancerz. I 1hp=1sek z taką prędkością.



#6 Hans Landa

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 0
Nowy

  • Postów:40
  • Imię:Mateusz
  • Lokalizacja:Małopolska
Offline

Napisano 10.02.2014 19:14

Ref



#7 Drago36

    Profesjonalista - if you know what i mean

  • Power User

Reputacja: 561
Wszechwiedzący

  • Postów:707
  • GG:
  • Imię:Mów mi D.ave
  • Lokalizacja:Polska
Offline

Napisano 12.02.2014 15:15

Wszystko zostaw co było, wykonuj kolejne kroki.

 

Zamiast biblioteki:

#include <fakemeta>

Daj:

#include <fakemeta_util>

Dodaj zmienną:

new cvar_firedamage

I zarejestruj ją:

cvar_firedamage = register_cvar("cod_dmg_podpalenie", "1") // ile zabierac dmg (co 1sec)

Zamiast tamtych public'ów daj te:

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, x) == 1) // za x wstawiasz swoja wartosc
    {
        if(task_exists(id+2936))
            remove_task(id+2936);
        palenie_gracza[id] = 999999;
        new data[2]
        data[0] = id
        data[1] = attacker
        set_task(1.0, "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)
    }
    static health
    health = pev(id, pev_health)

    static armor
    armor = pev(id, pev_armortype)
    
    if (health - floatround(get_pcvar_float(cvar_firedamage), floatround_ceil) > 0)
        fm_set_user_health(id, health - floatround(get_pcvar_float(cvar_firedamage), floatround_ceil))

    if (armor - floatround(get_pcvar_float(cvar_firedamage), floatround_ceil) > 0)
        fm_set_user_armor(id, armor - floatround(get_pcvar_float(cvar_firedamage), floatround_ceil))
    
    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;
}   

Użytkownik Drago36 edytował ten post 12.02.2014 15:18

  • +
  • -
  • 0

#8 glut

    Godlike

  • Przyjaciel

Reputacja: 954
Master

  • Postów:2 086
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Namysłów
Offline

Napisano 18.02.2014 08:39

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Autor tematu zbanowany

Jeśli się z tym nie zgadzasz, report.png raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0

Nie pomagam za darmo na PW/GG/Steam od tego jest forum

 

TP Game + RR

 

Znak rozpoznawczy :coto:






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