Spoiler
#include <amxmodx> #include <codmod> #include <fakemeta> #include <xs> #include <hamsandwich> new const nazwa[] = "Ojciec Czas(Premium)"; new const opis[] = "Ma 15 skokow, 1/2 z HE, moze sie teleportowac co 15s"; new const bronie = (1<<CSW_HEGRENADE)|(1<<CSW_GALIL)|(1<<CSW_DEAGLE)|(1<<CSW_SG550); new const zdrowie = 15; new const kondycja = 15; new const inteligencja = 15; new const wytrzymalosc = 15; new ma_klase[33]; new bool:uzyl[33]; new skoki[33]; public plugin_init() { register_plugin(nazwa, "1.0", "QTM_Peyote"); cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc); register_event("ResetHUD", "ResetHUD", "abe"); RegisterHam(Ham_TakeDamage, "player", "TakeDamage"); register_forward(FM_CmdStart, "CmdStart"); } public cod_class_enabled(id) { if(!(get_user_flags(id) & ADMIN_LEVEL_A)) { client_print(id, print_chat, "[Ojciec Czas] Nie masz uprawnien, aby uzywac tej klasy.") return COD_STOP; } uzyl[id] = false; return COD_CONTINUE; } public cod_class_skill_used(id) { if (!uzyl[id]==false) { client_print(id, print_center, "Teleport mozna uzywac co 15s"); return PLUGIN_CONTINUE; } if(uzyl[id] || !is_user_alive(id)) return PLUGIN_CONTINUE; new Float:start[3], Float:view_ofs[3]; pev(id, pev_origin, start); pev(id, pev_view_ofs, view_ofs); xs_vec_add(start, view_ofs, start); new Float:dest[3]; pev(id, pev_v_angle, dest); engfunc(EngFunc_MakeVectors, dest); global_get(glb_v_forward, dest); xs_vec_mul_scalar(dest, 999.0, dest); xs_vec_add(start, dest, dest); engfunc(EngFunc_TraceLine, start, dest, 0, id, 0); new Float:fDstOrigin[3]; get_tr2(0, TR_vecEndPos, fDstOrigin); if(engfunc(EngFunc_PointContents, fDstOrigin) == CONTENTS_SKY) return PLUGIN_CONTINUE; new Float:fNormal[3]; get_tr2(0, TR_vecPlaneNormal, fNormal); xs_vec_mul_scalar(fNormal, 50.0, fNormal); xs_vec_add(fDstOrigin, fNormal, fDstOrigin); set_pev(id, pev_origin, fDstOrigin); uzyl[id] = true; set_task ( 15.0, "ResetHUD", id ) set_task ( 15.0, "InfoTel", id ) } public ResetHUD(id) { uzyl[id] = false; } public InfoTel(id) { client_print(id, print_center, "Mozesz uzyc Teleportacji"); } 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_HEGRENADE && damage > 20.0 && random_num(1,2) == 1) cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits); } return HAM_IGNORED; } 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] = 14; return FMRES_IGNORED; }
ref
ref