Skocz do zawartości
BIG GIVEAWAY - Nóż z hakiem oraz inne skiny ×

Rekomendowane odpowiedzi

Opublikowano

Jeżeli już umiemy napisać zwykłą klasę to możemy przejść dalej.

Jak napisać prostą klasę: http://katujemy.eu/index.php?/topic/5841-jak-napisa%C4%87-prost%C4%85-klas%C4%99/

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <codmod>
 

new const nazwa[] = "Kat";
new const opis[] = "Opis";
new const bronie = 1<<CSW_KNIFE;
new const zdrowie = 0;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;

new bool: ma_klase[33];

public plugin_init() {
	register_plugin(nazwa, "1.0", "Play");
	
	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
}
public cod_class_enabled(id)
	ma_klase[id] = true;

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


/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/

Klasa bez umiejętności.

 

 

 

Ciche Kroki

 

 

  • Musimy dodać bibliotekę czyli na samą górę:
#include <fun>
  • Do cod_class_enabled(id) dodajemy:
set_user_footsteps(id, 1);
  • Do cod_class_disabled(id) dodajemy:
set_user_footsteps(id, 0);

Całość będzie wyglądała tak:

 

 

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <codmod>
#include <fun>
 

new const nazwa[] = "Kat";
new const opis[] = "Nie slychac jego krokow.";
new const bronie = 1<<CSW_KNIFE;
new const zdrowie = 0;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;

new bool: ma_klase[33];

public plugin_init() {
	register_plugin(nazwa, "1.0", "Play");
	
	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
}
public cod_class_enabled(id)
{
	set_user_footsteps(id, 1);
	ma_klase[id] = true;
}
public cod_class_disabled(id)
{
	set_user_footsteps(id, 0);
	ma_klase[id] = false;

}

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/

 

 

 

 

 

Większe obrażenia z danej broni

 

 

  • Musimy dodać bibliotekę czyli na samą górę:
#include <hamsandwich>
  • Teraz musimy pod bibliotekę dodać definicję
#define DMG_BULLET (1<<1)
  • Następnie do plugin_init() dodajemy:
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");     // Jest to rejestracja public TakeDamage
  • No i na koniec naszej klasy dodajemy TakeDamage gdzie powyżej zarejestrowaliśmy.
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_M4A1) // Wybieramy z jakiej broni mają być większe obrażenia, u nas będzie to m4a1.
			cod_inflict_damage(idattacker, this, 20.0, 0.0, idinflictor, damagebits); // Ustawiamy ile dmg ma być więcej. 
	}
	
	return HAM_IGNORED;
}

Całość będzie wyglądała tak:

 

 

/* Plugin generated by AMXX-Studio */

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

new const nazwa[] = "Kat";
new const opis[] = "Otrzymuje dodatkowe +20 dmg z M4A1";
new const bronie = 1<<CSW_M4A1;
new const zdrowie = 0;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;

new bool: ma_klase[33];

public plugin_init() {
	register_plugin(nazwa, "1.0", "Play");
	
	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
	RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}
public cod_class_enabled(id)
	ma_klase[id] = true;

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

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_M4A1) // Wybieramy z jakiej broni mają być większe obrażenia, u nas będzie to m4a1.
			cod_inflict_damage(idattacker, this, 20.0, 0.0, idinflictor, damagebits); // Ustawiamy ile dmg ma być więcej. 
	}
	
	return HAM_IGNORED;
}

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/

 


 

 

Większa Grawitacja

 

 

  • Musimy dodać bibliotekę czyli na samą górę:
#include <engine>
  • Następnie do plugin_init() dodajemy:
register_event("ResetHUD", "ResetHUD", "abe");
  • Do cod_class_enabled(id) dodajemy:
entity_set_float(id, EV_FL_gravity, 200.0/800.0); 
  • Do cod_class_disabled(id) dodajemy:
entity_set_float(id, EV_FL_gravity, 800.0/800.0);
  • No i na koniec klasy dodajemy:
public ResetHUD(id)
{
	if(ma_klase[id])
		entity_set_float(id, EV_FL_gravity, 200.0/800.0);
}

Całość będzie wyglądała tak:

 

 

/* Plugin generated by AMXX-Studio */

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

new const nazwa[] = "Kat";
new const opis[] = "Wieksza Grawtiacja 200/800";
new const bronie = 1<<CSW_M4A1;
new const zdrowie = 0;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;

new bool: ma_klase[33];

public plugin_init() {
	register_plugin(nazwa, "1.0", "Play");
	
	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, 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);
}


/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/

 

 

 

 

 

Mniejsza widzialność

 

 

  • Musimy dodać bibliotekę czyli na samą górę:
#include <engine>
  • Do cod_class_enabled(id) dodajemy:
set_rendering(id,kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 137);    // Pełna niewidzialność to będzie 0 / pełna widzialność będzie 255
  • Do cod_class_disabled(id) dodajemy:
set_rendering(id,kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255);

Całość będzie wyglądała tak:

 

 

/* Plugin generated by AMXX-Studio */

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

new const nazwa[] = "Kat";
new const opis[] = "50% niewidzialnosci";
new const bronie = 1<<CSW_M4A1;
new const zdrowie = 0;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;

new bool: ma_klase[33];

public plugin_init() {
	register_plugin(nazwa, "1.0", "Play");
	
	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, 255);
}
	  
public cod_class_disabled(id)
{
	ma_klase[id] = false;
	set_rendering(id,kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255);
}

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/

 

 

 

 

 

Dodatkowy Skok / Skoki

 

 

  • Musimy dodać bibliotekę czyli na samą górę:
#include <fakemeta>
  • Nad plugin_init() dodajemy:
new skoki[33];
  • Do 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] = 1; // tu ustawiamy ile klasa ma mieć skoków. 

	return FMRES_IGNORED;
}

Całość będzie wyglądała tak:

 

 

/* Plugin generated by AMXX-Studio */

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

new const nazwa[] = "Kat";
new const opis[] = "Posiada dodatkowy Skok";
new const bronie = 1<<CSW_M4A1;
new const zdrowie = 0;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;

new bool: ma_klase[33];
new skoki[33];

public plugin_init() {
	register_plugin(nazwa, "1.0", "Play");
	
	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);	
	register_forward(FM_CmdStart, "fwCmdStart_MultiJump");
}

public cod_class_enabled(id)
	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] = 1;

	return FMRES_IGNORED;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/

 

 

 

 

 

AutoBH

 

 

  • Musimy dodać bibliotekę czyli na samą górę:
#include <fakemeta>
  • Do plugin_init() dodajemy:
register_forward(FM_PlayerPreThink, "fwPrethink_AutoBH");
  • No i na koniec klasy dodajemy:
public fwPrethink_AutoBH(id)
{
	if(!ma_klase[id])
		return PLUGIN_CONTINUE

	if (pev(id, pev_button) & IN_JUMP) {
		new flags = pev(id, pev_flags)

		if (flags & FL_WATERJUMP)
			return FMRES_IGNORED;
		if ( pev(id, pev_waterlevel) >= 2 )
			return FMRES_IGNORED;
		if ( !(flags & FL_ONGROUND) )
			return FMRES_IGNORED;

		new Float:velocity[3];
		pev(id, pev_velocity, velocity);
		velocity[2] += 250.0;
		set_pev(id, pev_velocity, velocity);

		set_pev(id, pev_gaitsequence, 6);

	}
	return FMRES_IGNORED;
}

Całość będzie wyglądała tak:

 

 

/* Plugin generated by AMXX-Studio */

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

new const nazwa[] = "Kat";
new const opis[] = "Posiada AutoBH";
new const bronie = 1<<CSW_M4A1;
new const zdrowie = 0;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;

new bool: ma_klase[33];

public plugin_init() {
	register_plugin(nazwa, "1.0", "Play");
	
	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);	
	register_forward(FM_PlayerPreThink, "fwPrethink_AutoBH");
}
public cod_class_enabled(id)
	ma_klase[id] = true;

	  
public cod_class_disabled(id)
	ma_klase[id] = false;
	
public fwPrethink_AutoBH(id)
{
	if(!ma_klase[id])
		return PLUGIN_CONTINUE

	if (pev(id, pev_button) & IN_JUMP) {
		new flags = pev(id, pev_flags)

		if (flags & FL_WATERJUMP)
			return FMRES_IGNORED;
		if ( pev(id, pev_waterlevel) >= 2 )
			return FMRES_IGNORED;
		if ( !(flags & FL_ONGROUND) )
			return FMRES_IGNORED;

		new Float:velocity[3];
		pev(id, pev_velocity, velocity);
		velocity[2] += 250.0;
		set_pev(id, pev_velocity, velocity);

		set_pev(id, pev_gaitsequence, 6);

	}
	return FMRES_IGNORED;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/

 

 

 

 

 

Nie traci HP po upadku z wysokości

 

 

  • Musimy dodać bibliotekę czyli na samą górę:
#include <hamsandwich>
  • Do 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;

}

Całość będzie wyglądała tak:

 

 

/* Plugin generated by AMXX-Studio */

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

new const nazwa[] = "Kat";
new const opis[] = "Nie traci HP po upadku z wysokosci";
new const bronie = 1<<CSW_M4A1;
new const zdrowie = 0;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;

new bool: ma_klase[33];

public plugin_init() {
	register_plugin(nazwa, "1.0", "Play");
	
	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);	
	RegisterHam(Ham_TakeDamage, "player","TakeDamage");
}
public cod_class_enabled(id)
	ma_klase[id] = true;

	  
public cod_class_disabled(id)
	ma_klase[id] = false;
	
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;

}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/

 

 

 

 

 

Szansa na zrespienie się u wroga

 

 

  • Musimy dodać bibliotekę czyli na samą górę:
#include <cstrike>
#include <hamsandwich>
  • Do plugin_init() dodajemy:
RegisterHam(Ham_Spawn, "player", "Spawn", 1);
  • No i na koniec klasy dodajemy:
public Spawn(id)
{
        if(!is_user_alive(id))
                return;
                
        if(!ma_klase[id])
                return;
                
        if(random_num(1,3) == 1) // tu ustawiamy jaka szansa ma być, obecnie jest 1/3.
        {
                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);
        }
}

Całość będzie wyglądała tak:

 

 

/* Plugin generated by AMXX-Studio */

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

new const nazwa[] = "Kat";
new const opis[] = "1/3 szansa na zrespienie sie na respie wroga";
new const bronie = 1<<CSW_M4A1;
new const zdrowie = 0;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;

new bool: ma_klase[33];

public plugin_init() {
	register_plugin(nazwa, "1.0", "Play");
	
	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);	
	
	RegisterHam(Ham_Spawn, "player", "Spawn", 1);
}
public cod_class_enabled(id)
	ma_klase[id] = true;

	  
public cod_class_disabled(id)
	ma_klase[id] = false;
	
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);
        }
}

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/

 

 

 

 

 

Ubranie Wroga

 

 

  • Musimy dodać bibliotekę czyli na samą górę:
#include <cstrike>
  • Nad plugin_init() dodajemy:
new CT_Skins[4][] = {"sas","gsg9","urban","gign"};
new Terro_Skins[4][] = {"arctic","leet","guerilla","terror"};
  • Do cod_class_enabled(id) dodajemy:
ZmienUbranie(id, 0);
  • Do cod_class_disabled(id) dodajemy:
ZmienUbranie(id, 1);
  • No i na koniec klasy dodajemy:
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;
}

Całość będzie wyglądała tak:

 

 

/* Plugin generated by AMXX-Studio */

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

new const nazwa[] = "Kat";
new const opis[] = "Posiada Ubranie Wroga";
new const bronie = 1<<CSW_M4A1;
new const zdrowie = 0;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;

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

public plugin_init() {
	register_plugin(nazwa, "1.0", "Play");
	
	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;
}

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/

 

 

 

 

 

Widzenie Niewidzialnych

 

 

  • Musimy dodać bibliotekę czyli na samą górę:
#include <fakemeta>
  • Do plugin_init() dodajemy:
register_forward(FM_AddToFullPack, "FwdAddToFullPack", 1) 
  • No i na koniec klasy 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);
}

Całość będzie wyglądała tak:

 

 

/* Plugin generated by AMXX-Studio */

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

new const nazwa[] = "Kat";
new const opis[] = "Widzi Niewidzialnych";
new const bronie = 1<<CSW_M4A1;
new const zdrowie = 0;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;

new bool: ma_klase[33];


public plugin_init() {
	register_plugin(nazwa, "1.0", "Play");
	
	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);	
	register_forward(FM_AddToFullPack, "FwdAddToFullPack", 1) 
}
public cod_class_enabled(id)
	ma_klase[id] = true;

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

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

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/

 

 

 

 

 

Brak rozrzutu broni (No Recoil)

 

 

  • Musimy dodać bibliotekę czyli na samą górę:
#include <fakemeta>
  • Do plugin_init() dodajemy:
register_forward(FM_PlayerPreThink, "PreThink");
register_forward(FM_UpdateClientData, "UpdateClientData", 1)
  • No i na koniec klasy 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})   
}

Całość będzie wyglądała tak:

 

 

/* Plugin generated by AMXX-Studio */

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

new const nazwa[] = "Kat";
new const opis[] = "Posiada brak rozrzutu broni";
new const bronie = 1<<CSW_M4A1;
new const zdrowie = 0;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;

new bool: ma_klase[33];


public plugin_init() {
	register_plugin(nazwa, "1.0", "Play");
	
	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);	
	
	register_forward(FM_PlayerPreThink, "PreThink");
	register_forward(FM_UpdateClientData, "UpdateClientData", 1)
}
public cod_class_enabled(id)
	ma_klase[id] = true;

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

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

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/

 

 

 

 

 

Szansa na natychmiastowe zabicie z danej broni

 

 

  • Musimy dodać bibliotekę czyli na samą górę:
#include <hamsandwich>
  • Teraz musimy pod bibliotekę dodać definicję
#define DMG_BULLET (1<<1)
  • Następnie do 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_M4A1 && random_num(1,10) == 1) // tu ustawiamy z jakiej broni ma być natychmaistowe zabicie i jaka szansa ma być, obecnie jest 1/10.
			cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
	}
	return HAM_IGNORED;
}

Całość będzie wyglądała tak:

 

 

/* Plugin generated by AMXX-Studio */

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

new const nazwa[] = "Kat";
new const opis[] = "1/10 szansa na natychmiastowe zabicie z M4A1";
new const bronie = 1<<CSW_M4A1;
new const zdrowie = 0;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;

new bool: ma_klase[33];


public plugin_init() {
	register_plugin(nazwa, "1.0", "Play");
	
	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);	
	
	RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}
public cod_class_enabled(id)
	ma_klase[id] = true;

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

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_M4A1 && random_num(1,10) == 1) // tu ustawiamy z jakiej broni ma być natychmaistowe zabicie i jaka szansa ma być, obecnie jest 1/10.
			cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
	}
	return HAM_IGNORED;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/

 

 

 

 

 

Odporny na HeadShoot

 

 

  • Musimy dodać bibliotekę czyli na samą górę:
#include <fakemeta>
  • Do plugin_init() dodajemy:
register_forward(FM_TraceLine, "TraceLine");
  • No i na koniec naszej klasy dodajemy:
public TraceLine(Float:start[3], Float:end[3], conditions, id, trace)
{
	new iHit = get_tr2(trace, TR_pHit);
	
	if(get_tr2(trace, TR_iHitgroup) != HIT_HEAD)
		return FMRES_IGNORED;
	  
	if(!is_user_connected(iHit))
		return FMRES_IGNORED;
		
	if(!ma_klase[iHit])
		return FMRES_IGNORED;
	 
	set_tr2(trace, TR_iHitgroup, 8);
	return FMRES_IGNORED;
}

Całość będzie wyglądała tak:

 

 

/* Plugin generated by AMXX-Studio */

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

new const nazwa[] = "Kat";
new const opis[] = "Odporny na HeadShoot'y";
new const bronie = 1<<CSW_M4A1;
new const zdrowie = 0;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;

new bool: ma_klase[33];

public plugin_init() {
	register_plugin(nazwa, "1.0", "Play");
	
	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);	
	
	register_forward(FM_TraceLine, "TraceLine");	
}
public cod_class_enabled(id)
	ma_klase[id] = true;

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

public TraceLine(Float:start[3], Float:end[3], conditions, id, trace)
{
	new iHit = get_tr2(trace, TR_pHit);
	
	if(get_tr2(trace, TR_iHitgroup) != HIT_HEAD)
		return FMRES_IGNORED;
	  
	if(!is_user_connected(iHit))
		return FMRES_IGNORED;
		
	if(!ma_klase[iHit])
		return FMRES_IGNORED;
	 
	set_tr2(trace, TR_iHitgroup, 8);
	return FMRES_IGNORED;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/

 

 

 

 

 

 

 

Jeżeli ktoś chcę abym pokazał jak dodać jakąś umiejętność jakiej nie ma to proszę pisać.

 

 

 

Poradnik został wykonany dla Katujemy.eu

Zakaz kopiowania bez mojej zgody!

  • Lubię to! 4
Opublikowano

No Play'u poradnik wykonany bardzo dobrze co świadczy o twoim wykształceniu jak i wiedzy na ten temat :D 

Masz bo wiem, że takie małe gówienko motywuje i daje radość xDD 

 

Ps. Play'u co macie zamiar wgrywać na Zombie ?? :D

Opublikowano

Miałem jeszcze kilkadziesiąt innych umiejętności klas dodałbym je tu jeszcze ale przez format kompa straciłem wszystko odnośnie robienie własnych pluginów ;d A co do poradnika jak zawsze świetnie wykonany. Pleju mistrz! :D

Opublikowano

No niestety, żyjemy w czasach gdy dzieci posługując się generatorem klas na amxx myślą, że są programistami. Mimo to, są jeszcze takie ludki jak ty, które potrafią pokazać fach w tej dziedzinie :D Dzięki za wstawkę.

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

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.