Skocz do zawartości

Zablokowane <span class="ipsBadge ipsBadge_red">Zamknięte</span> Dodatki do klas


Play

Rekomendowane odpowiedzi

Witam, już wam pokazałem jak napisać własną klasę, więc teraz przejdziemy do etapu dodawania umiejętności.

 

a więc zaczynajmy.

 

Nasza klasa CSowicz, bez dodatków :

#include <amxmodx>
#include <codmod>


new const nazwa[] = "CSowicz";
new const opis[] = "Brak";
new const bronie = 1<<CSW_AWP | 1<<CSW_DEAGLE | 2<<CSW_HEGRENADE;
new const zdrowie = 43;
new const kondycja = 19;
new const inteligencja = 6;
new const wytrzymalosc = 19;


public plugin_init() { 
	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
	
}

1. Widocznosc dla klasy

 

 

Dodajemy bibliotekę czyli :

#include <engine>

pod

#include <codmod>

następnie pod

new const wytrzymalosc = 19;

dodajemy

new ma_klase[33];

jeżeli mamy więcej dodatków w klasie które wykorzystują ma_klase[33]; to dodajemy w tej formie new bool: ma_klase[33];

 

no i na koniec klasy dodajemy :

public cod_class_enabled(id)
{
	ma_klase[id] = true;
	set_rendering(id,kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 0);
}
	  
public cod_class_disabled(id)
{
	ma_klase[id] = false;
	set_rendering(id,kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255);
}

W public cod_class_enabled(id) określamy ile niewidzialności ma mieć nasza klasa.

od 0 do 255

- 0 to całkowita niewidzialność

- 255 całkowita widzialność

 

Efekt końcowy :

 

 

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


new const nazwa[] = "CSowicz";
new const opis[] = "Nasza klasa jest niewidzialna";
new const bronie = 1<<CSW_AWP | 1<<CSW_DEAGLE | 2<<CSW_HEGRENADE;
new const zdrowie = 43;
new const kondycja = 19;
new const inteligencja = 6;
new const wytrzymalosc = 19;

new ma_klase[33];

public plugin_init() {
    cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
    
}
public cod_class_enabled(id)
{
    ma_klase[id] = true;
    set_rendering(id,kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 0);
}
      
public cod_class_disabled(id)
{
    ma_klase[id] = false;
    set_rendering(id,kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255);
}

 

 

 

 

 

2. 1/x szansa na natychmiastowe zabicie z broni

 

 

Dodajemy bibliotekę czyli pod

#include <codmod>

dodajemy

#include <hamsandwich>

następnie pod naszą biblioteką dodajemy:

#define DMG_BULLET (1<<1)

następnie pod

new const wytrzymalosc = 19;

dodajemy

new ma_klase[33];

do

public plugin_init()

dodajemy

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

no i na koniec naszej klasy dodajemy:

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
	if(!is_user_connected(idattacker))
		return HAM_IGNORED; 
	
	if(!ma_klase[idattacker])
		return HAM_IGNORED;
	
	if(damagebits & DMG_BULLET)
	{
		new weapon = get_user_weapon(idattacker);
		
		if(weapon == CSW_BRON && 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;
}

CSW_BRON - Zmieniamy na nazwe broni z której chcemy mieć szanse "X" na natychmiastowe zabicie.

random_num(1,X) - tu określamy jaką szanse na natychmiastowe zabicie z danej broni ma mieć nasza klasa (w miejsce X wstawiamy naszą wartość)
.

 

Efekt końcowy

 

 

#include <amxmodx>
#include <codmod>
#include <hamsandwich>
 
#define DMG_BULLET (1<<1)

new const nazwa[] = "CSowicz";
new const opis[] = "Nasza klasa ma 1/1 szansa na natychmiastowe zabicie z broni";
new const bronie = 1<<CSW_AWP | 1<<CSW_DEAGLE | 2<<CSW_HEGRENADE;
new const zdrowie = 43;
new const kondycja = 19;
new const inteligencja = 6;
new const wytrzymalosc = 19;

new ma_klase[33];

public plugin_init() {
    cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
        
    RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
    
}
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
    if(!is_user_connected(idattacker))
        return HAM_IGNORED;
    
    if(!ma_klase[idattacker])
        return HAM_IGNORED;
    
    if(damagebits & DMG_BULLET)
    {
        new weapon = get_user_weapon(idattacker);
        
        if(weapon == CSW_AWP && random_num(1,1) == 1)
            cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
            
    }
    
    return HAM_IGNORED;
}

 

 

 

3. 1/x szansa na odbicie pocisku

 

 

Dodajemy bibliotekę czyli pod


#include <codmod>

dodajemy

#include <hamsandwich>

następnie pod naszą biblioteką dodajemy:

#define DMG_BULLET (1<<1)

następnie pod

new const wytrzymalosc = 19;

dodajemy

new ma_klase[33];

do

public plugin_init()

dodajemy

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

No i na sam koniec naszej klasy dodajemy :

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
	if(!is_user_connected(idattacker))
		return HAM_IGNORED;
		
	if(!ma_klase[this] || random_num(1,X) == 1)
		return HAM_IGNORED;
		
	cod_inflict_damage(this, idattacker, damage, 0.0, idinflictor, damagebits);
	return HAM_SUPERCEDE;
}

random_num(1,X) - tu określamy ile na ile nasza klasa ma szanse na odbicie pocisku, chyba każdy rozumie (w miejsce X wstawiamy naszą wartość).

 

Efekt Końcowy:

 

 

#include <amxmodx>
#include <codmod>
#include <hamsandwich>
 
#define DMG_BULLET (1<<1)

new const nazwa[] = "CSowicz";
new const opis[] = "Nasza klasa ma 1/5 szansa na odbicie pocisku.";
new const bronie = 1<<CSW_AWP | 1<<CSW_DEAGLE | 2<<CSW_HEGRENADE;
new const zdrowie = 43;
new const kondycja = 19;
new const inteligencja = 6;
new const wytrzymalosc = 19;

new ma_klase[33];

public plugin_init() {
    cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
        
    RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
    
}
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
    if(!is_user_connected(idattacker))
        return HAM_IGNORED;
        
    if(!ma_klase[this] || random_num(1,5) == 1)
        return HAM_IGNORED;
        
    cod_inflict_damage(this, idattacker, damage, 0.0, idinflictor, damagebits);
    return HAM_SUPERCEDE;
}

 

 

 

4. Większa Grawitacja

 

 

Dodajemy bibliotekę czyli :

#include <engine>

pod

#include <codmod>

następnie pod

new const wytrzymalosc = 19;

dodajemy

new ma_klase[33];

następnie do

public plugin_init()

dodajemy

register_event("ResetHUD", "ResetHUD", "abe");

no i na koniec klasy dodajemy :

public cod_class_enabled(id)
{
	ma_klase[id] = true;
	entity_set_float(id, EV_FL_gravity, 200.0/800.0);
}
	  
public cod_class_disabled(id)
{
	ma_klase[id] = false;
	entity_set_float(id, EV_FL_gravity, 800.0/800.0);
}

public ResetHUD(id)
{
	if(ma_klase[id])
		entity_set_float(id, EV_FL_gravity, 200.0/800.0);
}

W

public cod_class_enabled(id) i public ResetHUD(id)

ustawiamy jaką grawitacje ma mieć nasza klasa.

entity_set_float(id, EV_FL_gravity, 200.0/800.0); - 200 to taka grawtiacja naszej klasy 800 - to maksymalna grawitacja jaka obecnie jest wpisana.

 

 

 

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


new const nazwa[] = "CSowicz";
new const opis[] = "Nasza klasa ma 500 grawitacji wiecej";
new const bronie = 1<<CSW_AWP | 1<<CSW_DEAGLE | 2<<CSW_HEGRENADE;
new const zdrowie = 43;
new const kondycja = 19;
new const inteligencja = 6;
new const wytrzymalosc = 19;

new ma_klase[33];

public plugin_init() {
    cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
        
    register_event("ResetHUD", "ResetHUD", "abe");
    
}
public cod_class_enabled(id)
{
    ma_klase[id] = true;
    entity_set_float(id, EV_FL_gravity, 500.0/800.0);
}
      
public cod_class_disabled(id)
{
    ma_klase[id] = false;
    entity_set_float(id, EV_FL_gravity, 800.0/800.0);
}

public ResetHUD(id)
{
    if(ma_klase[id])
        entity_set_float(id, EV_FL_gravity, 500.0/800.0);
}

 

 

 

 

5. Klasa Premium

 

 

 

Dodajemy

new ma_klase[33];

pod

new const wytrzymalosc = 19;

na koniec klasy dodajemy

public cod_class_enabled(id)
{
	if(!(get_user_flags(id) & ADMIN_LEVEL_X))
	{
		client_print(id, print_center, "[%s], Nie masz uprawnien, aby uzywac tej klasy.", nazwa);
		return COD_STOP;
	}
	ma_klase[id] = true;
	return PLUGIN_CONTINUE
}
	  
public cod_class_disabled(id)
{
	ma_klase[id] = false;
}

ADMIN_LEVEL_X)) - tu ustawiamy flagę na jaką ma być nasza klasa

 

 

Efekt końcowy

 

 

#include <amxmodx>
#include <codmod>


new const nazwa[] = "CSowicz";
new const opis[] = "Nasza klasa Premium";
new const bronie = 1<<CSW_AWP | 1<<CSW_DEAGLE | 2<<CSW_HEGRENADE;
new const zdrowie = 43;
new const kondycja = 19;
new const inteligencja = 6;
new const wytrzymalosc = 19;

new ma_klase[33];

public plugin_init() {
    cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
    
}
public cod_class_enabled(id)
{
    if(!(get_user_flags(id) & ADMIN_LEVEL_H))
    {
        client_print(id, print_center, "[%s], Nie masz uprawnien, aby uzywac tej klasy.", nazwa);
        return COD_STOP;
    }
    ma_klase[id] = true;
    return PLUGIN_CONTINUE
}
      
public cod_class_disabled(id)
{
    ma_klase[id] = false;
}

 

 

 

6. Dodatkowe skoki dla klasy

 

 

Do naszej biblioteki dodajemy

#include <fakemeta>

pod

#include <codmod>

pod

new const wytrzymalosc = 19;

dodajemy

new ma_klase[33];
new skoki[33];

do

public plugin_init() 

dodajemy

register_forward(FM_CmdStart, "fwCmdStart_MultiJump");

no i na koniec klasy dodajemy

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] = X;

	return FMRES_IGNORED;
}

skoki[id] = X;     - tu ustawiamy ile nasza klasa ma mieć skoków (1skok jest już podsawowy).

 

Efekt końcowy

 

 

#include <amxmodx>
#include <codmod>
#include <fakemeta>

new const nazwa[] = "CSowicz";
new const opis[] = "Nasza klasa Posiada 5skokow";
new const bronie = 1<<CSW_AWP | 1<<CSW_DEAGLE | 2<<CSW_HEGRENADE;
new const zdrowie = 43;
new const kondycja = 19;
new const inteligencja = 6;
new const wytrzymalosc = 19;

new ma_klase[33];
new skoki[33];

public plugin_init() {
    cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
    register_forward(FM_CmdStart, "fwCmdStart_MultiJump");
}
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] = 5;

    return FMRES_IGNORED;
}

 

 

 

 

7. Nie tracimy hp po upadku

 

 

pod

#include <codmod>

dodajemy

#include <hamsandwich>

pod

new const wytrzymalosc = 19;

dodajemy

new ma_klase[33];

do

public plugin_init()

dodajemy

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

no i na koniec klasy dodajemy

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

		return HAM_IGNORED;

	if(!ma_klase[this])

		return HAM_IGNORED;  

	if(damagebits & (1<<5))

		SetHamParamFloat(4, 0.0);

	return HAM_IGNORED;

}

Efekt końcowy

 

 

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

 
new const nazwa[] = "CSowicz";
new const opis[] = "Nasza klasa nie traci hp po upadku";
new const bronie = 1<<CSW_AWP | 1<<CSW_DEAGLE | 2<<CSW_HEGRENADE;
new const zdrowie = 43;
new const kondycja = 19;
new const inteligencja = 6;
new const wytrzymalosc = 19;

new ma_klase[33];

public plugin_init() {
    cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
    RegisterHam(Ham_TakeDamage, "player","TakeDamage");
}
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
    
    if(!is_user_connected(this))

        return HAM_IGNORED;

    if(!ma_klase[this])

        return HAM_IGNORED;  

    if(damagebits & (1<<5))

        SetHamParamFloat(4, 0.0);

    return HAM_IGNORED;

}

 

 

 

8. 1/X na zrespienie się u wroga

 

 

Do biblioteki dodajemy

#include <hamsandwich>
#include <cstrike>

pod

#include <codmod>

pod

new const wytrzymalosc = 19;

dodajemy

new ma_klase[33];

do

public plugin_init()

dodajemy

RegisterHam(Ham_Spawn, "player", "Spawn", 1);

na koniec dodajemy

public Spawn(id)
{
        if(!is_user_alive(id))
                return;
                
        if(!ma_klase[id])
                return;
                
        if(random_num(1,X) == 1)
        {
                new CsTeams:team = cs_get_user_team(id);
                
                cs_set_user_team(id, (team == CS_TEAM_CT)? CS_TEAM_T: CS_TEAM_CT);
                ExecuteHam(Ham_CS_RoundRespawn, id);
                
                cs_set_user_team(id, team);
        }
}

if(random_num(1,X) - tu określamy szanse na zrespienie sie na respie wroga w miejsce (X) wpisujemy wartosc.

 

Efekt końcowy

 

 

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

 
new const nazwa[] = "CSowicz";
new const opis[] = "Nasza klasa ma 1/3 szanse na zrespienie sie na respie wroga";
new const bronie = 1<<CSW_AWP | 1<<CSW_DEAGLE | 2<<CSW_HEGRENADE;
new const zdrowie = 43;
new const kondycja = 19;
new const inteligencja = 6;
new const wytrzymalosc = 19;

new ma_klase[33];

public plugin_init() {
    cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
    RegisterHam(Ham_Spawn, "player", "Spawn", 1);
}
public Spawn(id)
{
        if(!is_user_alive(id))
                return;
                
        if(!ma_klase[id])
                return;
                
        if(random_num(1,3) == 1)
        {
                new CsTeams:team = cs_get_user_team(id);
                
                cs_set_user_team(id, (team == CS_TEAM_CT)? CS_TEAM_T: CS_TEAM_CT);
                ExecuteHam(Ham_CS_RoundRespawn, id);
                
                cs_set_user_team(id, team);
        }
}

 

 

 

9. Ciche kroki

 

 

Wystarczy dodać na koniec, czystej naszej klasy

public cod_class_enabled(id)
{
	set_user_footsteps(id, 1);
}
	
public cod_class_disabled(id)
{
	set_user_footsteps(id, 0);
}

 

 

 

10. Ubranie Wroga

 

 

 

Pod

#include <codmod>

dodajemy

#include <cstrike>

po naszych bibliotekach dodajemy

new bool: ma_klase[33];

new CT_Skins[4][] = {"sas","gsg9","urban","gign"};

new Terro_Skins[4][] = {"arctic","leet","guerilla","terror"};

na koniec naszej klasy dodajemy

public cod_class_enabled(id){

	ZmienUbranie(id, 0);
	ma_klase[id] = true;
}

public cod_class_disabled(id){

	ZmienUbranie(id, 1);
	ma_klase[id] = false;
}

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;

}

Efekt końcowy

 

 

#include <amxmodx>
#include <codmod>
#include <cstrike>

new bool: ma_klase[33];

new CT_Skins[4][] = {"sas","gsg9","urban","gign"};

new Terro_Skins[4][] = {"arctic","leet","guerilla","terror"};
 
new const nazwa[] = "CSowicz";
new const opis[] = "Nasza klasa ma Ubranie Wroga";
new const bronie = 1<<CSW_AWP | 1<<CSW_DEAGLE | 2<<CSW_HEGRENADE;
new const zdrowie = 43;
new const kondycja = 19;
new const inteligencja = 6;
new const wytrzymalosc = 19;


public plugin_init() {
    
    cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
}
public cod_class_enabled(id){

    ZmienUbranie(id, 0);
    ma_klase[id] = true;
}

public cod_class_disabled(id){

    ZmienUbranie(id, 1);
    ma_klase[id] = false;
}

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;

}

 

 

 

 

11. Widzisz Niewidzialnych

 

 

Do naszej biblioteki czyli pod

#include <codmod>

dodajemy

#include <fakemeta>

pod

new const wytrzymalosc = 19;

dodajemy

new ma_klase[33];

do

public plugin_init()

dodajemy

register_forward(FM_AddToFullPack, "FwdAddToFullPack", 1) 

na koniec naszego sma dodajemy

public FwdAddToFullPack(es_handle, e, ent, host, hostflags, player, pSet)

{

	if(!is_user_connected(host) || !is_user_connected(ent))

		return;

		

	if(!ma_klase[host])

		return;

		

	set_es(es_handle, ES_RenderAmt, 255.0);

}

Efekt końcowy

 

 

#include <amxmodx>
#include <codmod>
#include <fakemeta>


new const nazwa[] = "CSowicz";
new const opis[] = "Nasza klasa ma Widzisz Niewidzialnych";
new const bronie = 1<<CSW_AWP | 1<<CSW_DEAGLE | 2<<CSW_HEGRENADE;
new const zdrowie = 43;
new const kondycja = 19;
new const inteligencja = 6;
new const wytrzymalosc = 19;

new ma_klase[33];

public plugin_init() {
    
    cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
    register_forward(FM_AddToFullPack, "FwdAddToFullPack", 1)
}
public FwdAddToFullPack(es_handle, e, ent, host, hostflags, player, pSet)

{

    if(!is_user_connected(host) || !is_user_connected(ent))

        return;

        

    if(!ma_klase[host])

        return;

        

    set_es(es_handle, ES_RenderAmt, 255.0);

}

 

 

 

 

12. No Recoil (Brak Rozrzutu broni)

 

 

Do naszej biblioteki czyli pod

#include <codmod>

dodajemy

#include <fakemeta>

pod

new const wytrzymalosc = 19;

dodajemy

new ma_klase[33];

do

public plugin_init()

dodajemy

	register_forward(FM_PlayerPreThink, "PreThink");
	register_forward(FM_UpdateClientData, "UpdateClientData", 1)

na koniec dodajemy

public PreThink(id)

{

    if(ma_klase[id])

        set_pev(id, pev_punchangle, {0.0,0.0,0.0})

}

        

public UpdateClientData(id, sw, cd_handle)

{

    if(ma_klase[id])

        set_cd(cd_handle, CD_PunchAngle, {0.0,0.0,0.0})   

}

Efekt końcowy

 

 

#include <amxmodx>
#include <codmod>
#include <fakemeta>


new const nazwa[] = "CSowicz";
new const opis[] = "Nasza klasa ma No-Recoil (Brak Rozrzutu Broni)";
new const bronie = 1<<CSW_AWP | 1<<CSW_DEAGLE | 2<<CSW_HEGRENADE;
new const zdrowie = 43;
new const kondycja = 19;
new const inteligencja = 6;
new const wytrzymalosc = 19;

new ma_klase[33];

public plugin_init() {
    
    cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
    
    register_forward(FM_PlayerPreThink, "PreThink");
    register_forward(FM_UpdateClientData, "UpdateClientData", 1)
}
public PreThink(id)

{

    if(ma_klase[id])

        set_pev(id, pev_punchangle, {0.0,0.0,0.0})

}

        

public UpdateClientData(id, sw, cd_handle)

{

    if(ma_klase[id])

        set_cd(cd_handle, CD_PunchAngle, {0.0,0.0,0.0})   

}

 

 

 

 

13. Odporny na HeadShooty

 

 

Do naszej biblioteki czyli pod

#include <codmod>

dodajemy

#include <fakemeta>

pod

new const wytrzymalosc = 19;

dodajemy

new ma_klase[33];

do

public plugin_init()

dodajemy

register_forward(FM_TraceLine, "TraceLine");

na koniec dodajemy

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;
}

Efekt końcowy

 

 

#include <amxmodx>
#include <codmod>
#include <fakemeta>


new const nazwa[] = "CSowicz";
new const opis[] = "Nasza klasa ma Odpornosc na HeadShooty";
new const bronie = 1<<CSW_AWP | 1<<CSW_DEAGLE | 2<<CSW_HEGRENADE;
new const zdrowie = 43;
new const kondycja = 19;
new const inteligencja = 6;
new const wytrzymalosc = 19;

new ma_klase[33];

public plugin_init() {
    
    cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
    
    register_forward(FM_TraceLine, "TraceLine");
}
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;
}

 

 

http:

 

Jeżeli jesteś w czymś dobry, nigdy nie rób tego za darmo!

Odnośnik do komentarza
https://csowicze.pl/topic/1805-zamkni%C4%99te-dodatki-do-klas/
Udostępnij na innych stronach

  • 3 tygodnie później...
  • 2 tygodnie później...

Wiadomość wygenerowana automatycznie

Temat został zamknięty przez moderatora.

22178788237813265097.png

Jeżeli się z tym nie zgadzasz raportuj ten post a moderator lub administrator rozpatrzy go ponownie.

Z pozdrowieniami.

Administracja CSowicze.pl

Kontaktując się ze mną:

- Przedstaw się.

- Przejdź do sedna sprawy.

- Zawrzyj istotne informacje.

- Czekaj cierpliwie na odpowiedź.

 

TWORZENIE FOR SPOŁECZNOŚCIOWYCH | ZARZĄDZANIE STRONAMI INTERNETOWYMI

WSPARCIE TECHNICZNE SERWERÓW HLDS | MODERNIZACJA, OPTYMALIZACJA, ZABEZPIECZENIA

Odnośnik do komentarza
https://csowicze.pl/topic/1805-zamkni%C4%99te-dodatki-do-klas/#findComment-15523
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie