#include #include #include #include #define FLAGA ADMIN_LEVEL_H stock is_user_vip(id) { return (get_user_flags(id) & FLAGA) ? true : false; } enum _:cvars { KASA_PAKA, KASA_DEFUS, HS, KASA_HS, SPADOCHRON, BD, HE } new gCvars[cvars]; new gEnt[33]; new SyncHud; public plugin_precache() { precache_model("models/parachute.mdl"); precache_sound("items/9mmclip1.wav"); } public client_connect(id) { parachute_reset(id); } public client_disconnect(id) { parachute_reset(id); } public plugin_init() { register_plugin("VIP", "1.0", "byCZEK"); register_event("DeathMsg", "DeathMsg", "a"); register_event("ResetHUD", "ResetHUD", "be"); register_event("Damage", "Damage", "b", "2!0", "3=0", "4!0"); register_clcmd("say /vip", "MotdVip") register_clcmd("say_team /vip", "MotdVip"); // Lapanie kupna HE register_menucmd(register_menuid("BuyItem") , (1<<3) , "he_buy"); register_menucmd(-34 , (1<<3), "he_buy"); register_clcmd("hegren" , "he_buy"); // END gCvars[KASA_PAKA] = register_cvar("vip_kasapaka", "100"); gCvars[KASA_DEFUS] = register_cvar("vip_kasadefus", "200"); gCvars[KASA_HS] = register_cvar("vip_kasahs", "80"); gCvars[SPADOCHRON] = register_cvar("vip_spadocrhon", "1"); gCvars[BD] = register_cvar("vip_bulletdmg", "1"); gCvars[HE] = register_cvar("vip_2he", "1"); SyncHud = CreateHudSyncObj(); } public bomb_planted(id) { new kasa = get_pcvar_num(gCvars[KASA_PAKA]); if(kasa && is_user_vip(id)) add_user_money(id, kasa); } public bomb_defused(id) { new kasa = get_pcvar_num(gCvars[KASA_DEFUS]); if(kasa && is_user_vip(id)) add_user_money(id, kasa); } public MotdVip(id) show_motd(id, "vip.html", "Kup Vipa"); public DeathMsg() { new kid = read_data(1); new hs = read_data(3); new kasa = get_pcvar_num(gCvars[KASA_HS]); if(hs && kasa && is_user_vip(kid)) add_user_money(kid, kasa); parachute_reset(read_data(2)); } public ResetHUD(id) { if(gEnt[id] > 0) { fm_remove_entity(gEnt[id]); set_pev(id, pev_gravity, 1.0); gEnt[id] = 0; } } public Damage(id) { new attacker = get_user_attacker(id); if(is_user_connected(id) && is_user_connected(attacker) && is_user_vip(attacker) && get_pcvar_num(gCvars[BD])) { new damage = read_data(2); set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1); ShowSyncHudMsg(attacker, SyncHud , "%i^n", damage); } } public he_buy(id) { new ammo = cs_get_user_bpammo(id, CSW_HEGRENADE); if(!ammo || !cs_get_user_buyzone(id) || !is_user_vip(id)) return PLUGIN_CONTINUE; if(ammo == 2) { client_print(id, print_center, "You cannot carry anymore!"); return PLUGIN_HANDLED; } if(cs_get_user_money(id) - 300 <= 0) { client_print(id, print_center, "You have insufficient funds!"); return PLUGIN_HANDLED; } cs_set_user_bpammo(id, CSW_HEGRENADE, ammo + 1); emit_sound(id, CHAN_WEAPON , "items/9mmclip1.wav" , 1.0 , ATTN_NORM , 0 , PITCH_NORM); cs_set_user_money(id, cs_get_user_money(id) - 300); return PLUGIN_CONTINUE; } public client_PreThink(id) { if(!get_pcvar_num(gCvars[SPADOCHRON]) || !is_user_alive(id) || !is_user_vip(id)) return; new Float:frame, Float:fallspeed = -100.0; new button = pev(id, pev_button); new oldbutton = pev(id, pev_oldbuttons); new flags = pev(id, pev_flags); if(gEnt[id] > 0 && (flags & FL_ONGROUND)) { set_pev(id, pev_gravity, 1.0); if(pev(gEnt[id], pev_sequence) != 2) { set_pev(gEnt[id], pev_sequence, 2); set_pev(gEnt[id], pev_gaitsequence, 1); set_pev(gEnt[id], pev_frame, 0.0); set_pev(gEnt[id], pev_fuser1, 0.0); set_pev(gEnt[id], pev_animtime, 0.0); set_pev(gEnt[id], pev_framerate, 0.0); return; } frame = pev(gEnt[id], pev_fuser1) + 2.0; set_pev(gEnt[id], pev_fuser1, frame); set_pev(gEnt[id], pev_frame, frame); if (frame > 254.0) { fm_remove_entity(gEnt[id]); gEnt[id] = 0; } return; } if(button & IN_USE) { new Float:velocity[3]; pev(id, pev_velocity, velocity); if(velocity[2] < 0.0) { if(gEnt[id] <= 0) { gEnt[id] = fm_create_entity("info_target"); if(gEnt[id] > 0) { engfunc(EngFunc_SetModel, gEnt[id], "models/parachute.mdl"); set_pev(gEnt[id], pev_classname, "parachute"); set_pev(gEnt[id], pev_aiment, id); set_pev(gEnt[id], pev_owner, id); set_pev(gEnt[id], pev_movetype, MOVETYPE_FOLLOW); set_pev(gEnt[id], pev_sequence, 0); set_pev(gEnt[id], pev_gaitsequence, 1); set_pev(gEnt[id], pev_frame, 0.0); set_pev(gEnt[id], pev_fuser1, 0.0); } } if(gEnt[id] > 0) { set_pev(id, pev_sequence, 3); set_pev(id, pev_gaitsequence, 1); set_pev(id, pev_frame, 1.0); set_pev(id, pev_framerate, 1.0); set_pev(id, pev_gravity, 0.1); velocity[2] = (velocity[2] + 40.0 < fallspeed) ? velocity[2] + 40.0 : fallspeed; set_pev(id, pev_velocity, velocity); if(!pev(gEnt[id], pev_sequence)) { frame = pev(gEnt[id], pev_fuser1) + 1.0; set_pev(gEnt[id], pev_fuser1, frame); set_pev(gEnt[id], pev_frame, frame); if(frame > 100.0) { set_pev(gEnt[id], pev_animtime, 0.0); set_pev(gEnt[id], pev_framerate, 0.4); set_pev(gEnt[id], pev_sequence, 1); set_pev(gEnt[id], pev_gaitsequence, 1); set_pev(gEnt[id], pev_frame, 0.0); set_pev(gEnt[id], pev_fuser1, 0.0); } } } } else if(gEnt[id] > 0) { fm_remove_entity(gEnt[id]) set_pev(id, pev_gravity, 1.0); gEnt[id] = 0 } } else if ((oldbutton & IN_USE) && gEnt[id] > 0 ) { fm_remove_entity(gEnt[id]) set_pev(id, pev_gravity, 1.0); gEnt[id] = 0; } } stock parachute_reset(id) { if(gEnt[id] > 0) { if (pev_valid(gEnt[id])) { fm_remove_entity(gEnt[id]); } } if(is_user_alive(id)) set_pev(id, pev_gravity, 1.0); gEnt[id] = 0; } stock add_user_money(id, money) { new ma = cs_get_user_money(id); cs_set_user_money(id, ma + money); }