Witam czy może ktoś dodać tutaj anty HeadShoot?
#include <amxmodx> #include <amxmisc> #include <codmod> #include <cstrike> #include <fun> #include <hamsandwich> #include <fakemeta> #define DMG_BULLET (1<<1) #define DMG_HEGRENADE (1<<24) new const nazwa[] = "VIP"; new const opis[] = "Wszystko dowiesz sie co ma pod komenda /vip"; new const bronie = (1<<CSW_AUG)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE)|(1<<CSW_P90); new const zdrowie = 60; new const kondycja = 35; new const inteligencja = 10; new const wytrzymalosc = 30; new bool:ma_klase[33]; new CT_Skins[4][] = {"sas","gsg9","urban","gign"}; new Terro_Skins[4][] = {"arctic","leet","guerilla","terror"}; new skoki[33]; public plugin_init() { register_plugin(nazwa, "1.0", "Alelluja"); cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc); register_clcmd("say /vip", "ShowMotd"); register_event("DeathMsg", "Death", "ade"); RegisterHam(Ham_TakeDamage, "player", "TakeDamage"); register_forward(FM_CmdStart, "fwCmdStart_MultiJump"); } public cod_class_enabled(id) { if(!(get_user_flags(id) & ADMIN_LEVEL_F)) { client_print(id, print_chat, "[VIP] Nie masz uprawnien, aby uzywac tej klasy.") return COD_STOP; } ZmienUbranie(id, 0); cs_set_user_defuse(id, 1); ma_klase[id] = true; set_task(20.0, "DajHE", id+857, _, _, "b") return COD_CONTINUE; } public cod_class_disabled(id){ ZmienUbranie(id, 1); ma_klase[id] = false; remove_task(id+857); } public DajHE(id) { id-=857 new granat[] = { CSW_HEGRENADE } if(!ma_klase[id] || !is_user_alive(id) || sprawdz_bronie(id, granat)) return PLUGIN_CONTINUE cod_give_weapon(id, CSW_HEGRENADE) return PLUGIN_CONTINUE } stock bool:sprawdz_bronie(id, disallowed[], ile = sizeof(disallowed)) { new weapons[32], num, pwpns, bool:has = false; pwpns = get_user_weapons(id, weapons, num); for(new i=0; i<ile; i++) { if(pwpns & (1<<disallowed[i])) { has = true; break; } } return has; } public Death(id) //Oto nasz event { new attacker = read_data(1); if(!is_user_connected(attacker)) return PLUGIN_CONTINUE; if(!ma_klase[attacker]) return PLUGIN_CONTINUE; if(get_user_team(id) != get_user_team(attacker)) cod_set_user_xp(id, cod_get_user_xp(id)+5); //wartosc 20 zmieniamy (Tyle dodatkowego expa) return PLUGIN_CONTINUE; } 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_team(this) != get_user_team(idattacker) && get_user_weapon(idattacker) == CSW_AUG && damagebits & DMG_BULLET) cod_inflict_damage(idattacker, this, 10.0, 0.1, idinflictor, damagebits); 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 ShowMotd(id){ show_motd(id, "vip.txt", "Informacje o Klasie VIP"); } 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; } 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;///Tu zmieniamy ilosc skokow return FMRES_IGNORED; }