←  Prośby o modyfikacje silników/klas/perków

AMXX.pl: Support AMX Mod X i SourceMod

»

Klasa
Prosba o przerobienie 2 klas na lvl'owe

  • +
  • -
SevSon-'s Photo SevSon- 07.06.2014

Witam. Tak jak w temacie...

 

proszę aby klasa Nozownik byla dostepna od 45 poziomu

+ Jezeli ktos ja wybieze a nie ma owego poziomu to aby pisalo na say: "Klasa Nozownik jest dostepna od 45 lvl"

sma nozownika:

#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <engine>
#include <fakemeta>
        
new const nazwa[]   = "Nozownik (45lvl)";
new const opis[]    = "Posiada 2 skoki oraz jest slabo widoczny na nozu (dostepny od 45lvl)";
new const bronie    = (1<<CSW_ELITE);
new const zdrowie   = 10;
new const kondycja  = 30;
new const inteligencja = 0;
new const wytrzymalosc = 0;
    
new skoki[33];

new ma_klase[33];

public plugin_init()
{
	register_plugin(nazwa, "1.0", "amxx.pl");

	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);

	register_event("CurWeapon", "eventKnife_Niewidzialnosc", "be", "1=1");

   
	register_forward(FM_CmdStart, "fwCmdStart_MultiJump");

}

public cod_class_enabled(id)
{
	ma_klase[id] = true;

}

public cod_class_disabled(id)
{
	set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255);
    	ma_klase[id] = false;

}

public eventKnife_Niewidzialnosc(id)
{
	if(!ma_klase[id])
		return;

	if( read_data(2) == CSW_KNIFE )
	{
		set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 16);
	}
	else
	{
		set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255);
	}
}

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

	return FMRES_IGNORED;
}

Oraz druga klasa a mianowicie Punisher - tak samo tyle ze od 130lvl

sma punishera:

#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <fakemeta>
#include <hamsandwich>
#include <cstrike>
#include <fun>
        
new const nazwa[]   = "Punisher (130lvl)";
new const opis[]    = "1/10 na natychmiastowe zabicie z wszystkich broni, 3 skoki (dostepny od 130lvl)";
new const bronie    = (1<<CSW_HEGRENADE)|(1<<CSW_XM1014)|(1<<CSW_DEAGLE);
new const zdrowie   = 30;
new const kondycja  = 25;
new const inteligencja = 10;
new const wytrzymalosc = 10;
    
new skoki[33];

new ma_klase[33];

public plugin_init()
{
	register_plugin(nazwa, "1.0", "amxx.pl");

	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
   
	register_forward(FM_CmdStart, "fwCmdStart_MultiJump");

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

}

public cod_class_enabled(id)
{
	give_item(id, "weapon_hegrenade");
	ma_klase[id] = true;

}

public cod_class_disabled(id)
{
	ma_klase[id] = false;

}

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

public fwTakeDamage_JedenZ(this, idInf, idAtt, Float:fDmg, dmgBits){
	if(!is_user_alive(idAtt) || !ma_klase[idAtt] || !(dmgBits & (1<<1) ) || random_num(1, 10) != 1 )
		return HAM_IGNORED;

	cs_set_user_armor(this, 0, CS_ARMOR_NONE);
	SetHamParamFloat(4, float(get_user_health(this) + 1));

	return HAM_HANDLED;
}
Quote

  • +
  • -
Alelluja's Photo Alelluja 08.06.2014

proszę nożownik

 

#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <engine>
#include <fakemeta>
        
new const nazwa[]   = "Nozownik (45lvl)";
new const opis[]    = "Posiada 2 skoki oraz jest slabo widoczny na nozu (dostepny od 45lvl)";
new const bronie    = (1<<CSW_ELITE);
new const zdrowie   = 10;
new const kondycja  = 30;
new const inteligencja = 0;
new const wytrzymalosc = 0;
    
new skoki[33];

new ma_klase[33];

public plugin_init()
{
    register_plugin(nazwa, "1.0", "amxx.pl");

    cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);

    register_event("CurWeapon", "eventKnife_Niewidzialnosc", "be", "1=1");

   
    register_forward(FM_CmdStart, "fwCmdStart_MultiJump");

}

public cod_class_enabled(id)
{       

        new dostepna = 45;

        new level = cod_get_user_level(id);

        if(level =< 45)

        {

                client_print(id, print_chat, "[Nozownik]Klasa dostepna od 45 poziomu.", nazwa, dostepna)

                return COD_STOP;

        }

        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 eventKnife_Niewidzialnosc(id)
{
    if(!ma_klase[id])
        return;

    if( read_data(2) == CSW_KNIFE )
    {
        set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 16);
    }
    else
    {
        set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255);
    }
}

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

    return FMRES_IGNORED;
}

 

A tutaj Punisher

 

#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <fakemeta>
#include <hamsandwich>
#include <cstrike>
#include <fun>
        
new const nazwa[]   = "Punisher (130lvl)";
new const opis[]    = "1/10 na natychmiastowe zabicie z wszystkich broni, 3 skoki (dostepny od 130lvl)";
new const bronie    = (1<<CSW_HEGRENADE)|(1<<CSW_XM1014)|(1<<CSW_DEAGLE);
new const zdrowie   = 30;
new const kondycja  = 25;
new const inteligencja = 10;
new const wytrzymalosc = 10;
    
new skoki[33];

new ma_klase[33];

public plugin_init()
{
    register_plugin(nazwa, "1.0", "amxx.pl");

    cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
   
    register_forward(FM_CmdStart, "fwCmdStart_MultiJump");

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

}

public cod_class_enabled(id)
{       

        new dostepna = 130;

        new level = cod_get_user_level(id);

        if(level =< 130)

        {

                client_print(id, print_chat, "[Punisher]Klasa dostepna od 130 poziomu.", nazwa, dostepna)

                return COD_STOP;

        }

        give_item(id, "weapon_hegrenade");
        ma_klase[id] = true;

        return COD_CONTINUE;

}

public cod_class_disabled(id)
{
    ma_klase[id] = false;

}

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

public fwTakeDamage_JedenZ(this, idInf, idAtt, Float:fDmg, dmgBits){
    if(!is_user_alive(idAtt) || !ma_klase[idAtt] || !(dmgBits & (1<<1) ) || random_num(1, 10) != 1 )
        return HAM_IGNORED;

    cs_set_user_armor(this, 0, CS_ARMOR_NONE);
    SetHamParamFloat(4, float(get_user_health(this) + 1));

    return HAM_HANDLED;
}

Quote

  • +
  • -
SevSon-'s Photo SevSon- 08.06.2014

Obydwie klasy nie da sie kompilowac - errory:

 

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2006 ITB CompuPhase, AMX Mod X Team
 
codclass_predator.sma(72) : warning 211: possibly unintended assignment
codclass_predator.sma(72) : error 029: invalid expression, assumed zero
codclass_predator.sma(72) : warning 215: expression has no effect
codclass_predator.sma(72) : error 001: expected token: ";", but found ")"
codclass_predator.sma(72) : error 029: invalid expression, assumed zero
codclass_predator.sma(72) : fatal error 107: too many error messages on one line
 
Compilation aborted.
4 Errors.
Quote

  • +
  • -
Alelluja's Photo Alelluja 09.06.2014

Teraz all działa

Punisher:

 

#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <fakemeta>
#include <hamsandwich>
#include <cstrike>
#include <fun>

new const nazwa[]   = "Punisher (130lvl)";
new const opis[]    = "1/10 na natychmiastowe zabicie z wszystkich broni, 3 skoki (dostepny od 130lvl)";
new const bronie    = (1<<CSW_HEGRENADE)|(1<<CSW_XM1014)|(1<<CSW_DEAGLE);
new const zdrowie   = 30;
new const kondycja  = 25;
new const inteligencja = 10;
new const wytrzymalosc = 10;

new skoki[33];

new ma_klase[33];

public plugin_init()
{
    register_plugin(nazwa, "1.0", "amxx.pl");
    
    cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
    
    register_forward(FM_CmdStart, "fwCmdStart_MultiJump");
    
    
    RegisterHam(Ham_TakeDamage, "player", "fwTakeDamage_JedenZ");
    
}

public cod_class_enabled(id)
{
    
    if(cod_get_user_level(id) < 130) // xx jako numer lvla
    
    {
        
        /// komunikat o dostępie klasy
        
        return COD_STOP
        
    }
    
    // wykonuje się dalsza część (ma_klase i te inne priedy)
    
    give_item(id, "weapon_hegrenade");
    ma_klase[id] = true;
    
    return COD_CONTINUE;
    
}

public cod_class_disabled(id)
{
    ma_klase[id] = false;
    
}

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

public fwTakeDamage_JedenZ(this, idInf, idAtt, Float:fDmg, dmgBits){
    if(!is_user_alive(idAtt) || !ma_klase[idAtt] || !(dmgBits & (1<<1) ) || random_num(1, 10) != 1 )
        return HAM_IGNORED;
    
    cs_set_user_armor(this, 0, CS_ARMOR_NONE);
    SetHamParamFloat(4, float(get_user_health(this) + 1));
    
    return HAM_HANDLED;
}

 

A tutaj Nożownik

 

#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <engine>
#include <fakemeta>

new const nazwa[]   = "Nozownik (45lvl)";
new const opis[]    = "Posiada 2 skoki oraz jest slabo widoczny na nozu (dostepny od 45lvl)";
new const bronie    = (1<<CSW_ELITE);
new const zdrowie   = 10;
new const kondycja  = 30;
new const inteligencja = 0;
new const wytrzymalosc = 0;

new skoki[33];

new ma_klase[33];

public plugin_init()
{
    register_plugin(nazwa, "1.0", "amxx.pl");
    
    cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
    
    register_event("CurWeapon", "eventKnife_Niewidzialnosc", "be", "1=1");
    
    
    register_forward(FM_CmdStart, "fwCmdStart_MultiJump");
    
}

public cod_class_enabled(id)
{
    
    if(cod_get_user_level(id) < 45) // xx jako numer lvla
    
    {
        
        /// komunikat o dostępie klasy
        
        return COD_STOP
        
    }
    
    // wykonuje się dalsza część (ma_klase i te inne priedy)
    
    ma_klase[id] = true;
    
}

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

public eventKnife_Niewidzialnosc(id)
{
    if(!ma_klase[id])
        return;
    
    if( read_data(2) == CSW_KNIFE )
    {
        set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 16);
    }
    else
    {
        set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255);
    }
}

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] = 1;
    
    return FMRES_IGNORED;
}


Edited by Alelluja, 09.06.2014 13:36.
Quote

  • +
  • -
SevSon-'s Photo SevSon- 09.06.2014

Ok. Dziala - dzięki.

Tam gdzie: /// komunikat o dostepie klasy

To tu wpisuje jaka ma wyskoczyc informacja jesli gracz wybierze klase a nie ma wymagajacego lvl?
Edited by SevSon-, 09.06.2014 18:58.
Quote

  • +
  • -
Alelluja's Photo Alelluja 13.06.2014

możesz ale nie trzeba :D

Quote

Gryzon's Photo Gryzon 13.06.2014

Jakby od kolegi nie działały, łap ode mnie 

new dostepna = 45;

oraz 

if(level < 45)

Zmieniasz poziom od którego można jej używać.

Attached Files

Quote