#include <amxmodx>
#include <hamsandwich>
#include <codmod>
#define DMG_HEGRENADE (1<<24)
new const nazwa[] = "Tygrys";
new const opis[] = "Posiada 1/6 szans ze wrog wyrzuci bron po strzale oraz 1/5 na natychmaistowe zabicie z HE";
new const bronie = 1<<CSW_FAMAS | 1<<CSW_DEAGLE | 1<<CSW_HEGRENADE;
new const zdrowie = 20;
new const kondycja = 15;
new const inteligencja = 45;
new const wytrzymalosc = 10;
new bool:ma_klase[33];
public plugin_init(){
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
register_event("Damage", "Damage", "b", "2!=0");
}
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_HEGRENADE && random_num(1, 5) == 1)
{
cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
}
return HAM_IGNORED;
}
public Damage(id)
{
new idattacker = get_user_attacker(id);
if(!is_user_connected(idattacker) || get_user_team(id) == get_user_team(idattacker))
return PLUGIN_CONTINUE;
if(ma_klase[idattacker] && random_num(1,6) == 1)
client_cmd(id, "drop");
return PLUGIN_CONTINUE;
}
Dodałem na swój serwer taka klasę ale jej specjalna moc wyrzucania przedmiotów nie działa, dlaczego?I kolejny błąd
Klasa posiada no clip an 5sek, ale może go używać cały czas nawet gdy czas się skończy jak to wyeliminować?
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <fun>
#include <hamsandwich>
#include <codmod>
#include <colorchat>
#include <fakemeta>
#define CZAS_NOCLIP 5 //SEKUND
#define DMG_BULLET (1<<1)
new const nazwa[] = "Predator";
new const opis[] = "Ma 5 sekund noclip co runde, 10 % wiecej obrazen z M4 oraz podwojny skok";
new const bronie = 1<<CSW_M4A1;
new const zdrowie = 40;
new const kondycja = 50;
new const inteligencja = 30;
new const wytrzymalosc = 20;
new bool:wykorzystal[33];
new bool:ma_klase[33];
new bool:moze_skoczyc[33];
new msg_bartime;
public plugin_init() {
register_plugin(nazwa, "1.0", "QTM_Peyote");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
register_logevent("PoczatekRundy", 2, "1=Round_Start");
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
msg_bartime = get_user_msgid("BarTime");
register_forward(FM_CmdStart, "CmdStart");
}
public cod_class_enabled(id)
{
ColorChat(id, GREEN, "Klasa %s zostala stworzona przez DeXi", nazwa);
if(!(get_user_flags(id) & ADMIN_LEVEL_G))
{
client_print(id, print_chat, "[Predator] Nie masz uprawnien, aby uzywac tej klasy.")
return COD_STOP;
}
ma_klase[id] = true;
return COD_CONTINUE;
}
public cod_class_disabled(id)
ma_klase[id] = false;
public CmdStart(id, uc_handle)
{
if(!ma_klase[id])
return FMRES_IGNORED;
new button = get_uc(uc_handle, UC_Buttons);
new oldbutton = pev(id, pev_oldbuttons);
new flags = pev(id, pev_flags);
if((button & IN_JUMP) && !(flags & FL_ONGROUND) && !(oldbutton & IN_JUMP) && moze_skoczyc[id])
{
moze_skoczyc[id] = false;
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)
moze_skoczyc[id] = true;
return FMRES_IGNORED;
}
public cod_class_skill_used(id)
{
if(!is_user_alive(id))
return;
if(wykorzystal[id])
{
ColorChat(id, RED, "Wykorzystales juz swoje przechodzenie przez sciany.");
return;
}
wykorzystal[id] = true;
set_user_noclip(id, 1);
set_user_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, 255);
set_task(CZAS_NOCLIP.0, "WylaczNoclip", id);
message_begin(MSG_ONE, msg_bartime, _, id)
write_short(CZAS_NOCLIP)
message_end()
}
public Wylacznoclip(id)
{
if(!is_user_connected(id)) return;
set_user_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, 10);
set_user_noclip(id, 0);
}
public PoczatekRundy()
{
for(new id=0;id<=32;id++)
{
wykorzystal[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(get_user_weapon(idattacker) == CSW_M4A1 && damagebits & (1<<1) & DMG_BULLET && damage > 20.0)
cod_inflict_damage(idattacker, this, damage*0.08, 0.0, idinflictor, damagebits);
return HAM_IGNORED;
}z góry dziękuję za pomoc


Dodatki SourceMod



Temat jest zamknięty








