Skocz do zawartości
Szukaj w
  • Więcej opcji...
Znajdź wyniki...
Szukaj wyników w...
Zaloguj się, aby obserwować  
Nieznajomy

[Poradnik] Klasy codmod

Rekomendowane odpowiedzi

1.Jak napisać najprostszą klasę?

#include <amxmodx>
#include <amxmisc>
#include <codmod>
        
new const nazwa[]   = "Klasa"; //Nazwa klasy
new const opis[]    = "blablabla"; //dodatkowe informacje wyświetlające się pod komendą /klasy
new const bronie    = 0; //bronie otrzymane po wybraniu tej klasy (w przypadku 0 nie dostaniemy żadnej broni)
new const zdrowie   = 1; //dodatkowe zdrowie po wybraniu klasy
new const kondycja  = 1; //dodatkowa kondycja po wybraniu klasy
new const inteligencja = 1; //dodatkowa inteligencja po wybraniu klasy
new const wytrzymalosc = 1; //dodatkowa wytrzymałość po wybraniu klasy
    
public plugin_init()
{
    register_plugin(nazwa, "1.0", "amxx.pl");

    cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
}
public cod_class_enabled(id)
{
    ma_klase[id] = true;
    return COD_CONTINUE;    
}
public cod_class_disabled(id)
{
        ma_klase[id] = false;
}

2.Jak ustawić 1/x na natychmiastowe zabicie z danej broni?

 

Pod #include <codmod> dopisuje:

#include <hamsandwich>

 

Pod #include:

#define DMG_BULLET (1<<1)

 

Pod  "cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);" dopisujemy:

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

 

Na samym końcu dopisujemy:

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_team(this) != get_user_team(idattacker) && get_user_weapon(idattacker) == CSW_BRON && damagebits & DMG_BULLET && random_num(1, x) == 1)
        cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
            
    return HAM_IGNORED;
}

W miejsce "BRON" wpisujemy broń z której będzie szansa na natychmiastowe zabicie np. AWP. W miejsce "x" wyznaczamy szansę na natychmiastowe zabicie np. random_num(1, 5) == 1) - szansa na natychmiastowe zabicie wynosi 1/5.

 

3. Jak ustawić strój przeciwnej drużyny na danej klasie?

 

Pod "new const wytrzymalosc" dopisujemy:

new CT_Skins[4][] = {"sas","gsg9","urban","gign"};
new Terro_Skins[4][] = {"arctic","leet","guerilla","terror"};

 

Pod "ma_klase[id] = true;" dopisujemy:

    ZmienUbranie(id, 0);

 

Pod "ma_klase[id] = false;" dopisujemy:

    ZmienUbranie(id, 1);

 

Na sam koniec dopisujemy:

}

public ZmienUbranie(id,reset)

{

if (!is_user_connected(id))

return PLUGIN_CONTINUE;



if (reset)

cs_reset_user_model(id);

else

{

  new num = random_num(0,3);

  cs_set_user_model(id, (get_user_team(id) == 1)? CT_Skins[num]: Terro_Skins[num]);

}



return PLUGIN_CONTINUE;

}

public Spawn(id)

{

if(ma_klase[id])

ZmienUbranie(id, 0);

}

4. Jak ustawić odporność na HS?

 

Pod #include <codmod> dopisujemy:

#include <fakemeta>

 

Pod "cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);" dopisujemy:

register_forward(FM_TraceLine, "TraceLine");

 

Na sam koniec dopisujemy:

public TraceLine(Float:start[3], Float:end[3], conditions, id, trace)
{
    if(get_tr2(trace, TR_iHitgroup) != HIT_HEAD)    
    return FMRES_IGNORED;
    
    new iHit = get_tr2(trace, TR_pHit);
    
    if(!is_user_connected(iHit))    
    return FMRES_IGNORED;
    
    if(!ma_klase[iHit])
    return FMRES_IGNORED;
    
    set_tr2(trace, TR_iHitgroup, 8);
    
    return FMRES_IGNORED;
}

 

! Dodatkowe rzeczy możemy znaleźć tutaj https://amxx.pl/generator-klas/ obsługa jest tak prosta, że instrukcja nie jest konieczna.

 

Źródło: AMXX.pl

 

 

  • Piwko 2

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość
Temat jest zablokowany i nie można w nim pisać.
Zaloguj się, aby obserwować  

  • Kto przegląda   0 użytkowników

    Brak zalogowanych użytkowników przeglądających tę stronę.

×