Witam.
Staram się stworzyć klasę, która ładuje na nożu pancerz.
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <fakemeta>
#include <cstrike>
#include <engine>
#include <dhudmessage>
#define TIME 5.0
#define UNIKAT 2013
new const nazwa[] = "Szeregowiec";
new const opis[] = "Na nozu ladujesz 7 pociskow";
new const bronie = 1<<CSW_GALIL | 1<<CSW_FIVESEVEN | 1<<CSW_HEGRENADE | 1<<CSW_SMOKEGRENADE | 1<<CSW_FLASHBANG;
new const zdrowie = 0;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;
new bool:ma_klase[33], ultra_armor[33];
new msgBarTime;
public plugin_init()
{
register_plugin(nazwa, "1.0", "1stADXionC");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
register_forward(FM_TraceLine,"fw_traceline");
msgBarTime = get_user_msgid("BarTime");
}
public cod_class_enabled(id)
{
ma_klase[id] = true;
ultra_armor[id] = true;
}
public cod_class_disabled(id)
{
ma_klase[id] = false;
ultra_armor[id] = false;
}
public client_PreThink(id)
{
if(!is_user_alive(id) || !ma_klase[id])
return;
if(task_exists(id+UNIKAT) && !get_entity_flags(id) & FL_ONGROUND || task_exists(id+UNIKAT) && get_user_weapon(id)!=CSW_KNIFE)
{
remove_task(id+UNIKAT)
bartime(id,0)
return;
}
if(!task_exists(id+UNIKAT) && get_entity_flags(id) & FL_ONGROUND && get_user_weapon(id)==CSW_KNIFE)
{
set_task(5.0,"fw_traceline",id+UNIKAT)
bartime(id,5)
return;
}
}
public dodaj_przycisk(id)
{
set_dhudmessage(60, 200, 25, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.2, 2)
ultra_armor[id]++
if(ultra_armor[id]>7)
{
ultra_armor[id]=7
show_dhudmessage(id, "[Barbarzynca] Maksymalna wartosc pancerza to 7",ultra_armor[id])
}
else show_dhudmessage(id, "[Barbarzynca] Magiczny pancerz wytrzyma %i strzalow",ultra_armor[id])
}
public fw_traceline(Float:vecStart[3],Float:vecEnd[3],ignoreM,id,trace)
{
if(!is_user_connected(id))
return FMRES_IGNORED;
if(!is_user_alive(id))
return FMRES_IGNORED;
new hit = get_tr2(trace, TR_pHit)
if(!(pev(id,pev_button) & IN_ATTACK))
return FMRES_IGNORED;
if(is_user_alive(hit))
{
if( ultra_armor[hit]>0 )
{
ultra_armor[hit]--
set_tr2(trace, TR_iHitgroup, 8)
}
return FMRES_IGNORED
}
return FMRES_IGNORED;
}
stock bartime(id, czas)
{
message_begin(MSG_ONE_UNRELIABLE, msgBarTime,_, id);
write_short(czas);
message_end();
}


Dodatki SourceMod







codclass_szeregowiec.amxx






