#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