#include #include #include #include #include #include #include new const gNazwaPluginu[] = "VIP Naku"; new const gWersjaPluginu[] = "1.0"; new const gAutorPluginu[] = "Nakupenda."; /* -=[ Lista graczy ktorzy posiadaja status V.i.P - Kolor ]=- */ static const COLOR[] = "^x04"; /* -=[ Lista Kolorow ]=- * ^x01 - Info wyswietlane jest na zolto * ^x03 - Info wyswietlane jest na zielono * ^x04 - Info wyswietlane jest na kolor teamu (czerwono - TT / niebiesko - CT) */ new gPcvarFlaga[3] new gMaxPlayers, gMSGSayText //new gPcvarHe, gPcvarSmoke, gPcvarFlash, //gPcvarHP new bool:ciche[33], bool:grav[33], bool:deagle[33], bool:jump[33], bool:speed[33]; public plugin_init() { register_plugin(gNazwaPluginu, gWersjaPluginu, gAutorPluginu); register_clcmd("say /vips","ViPLista"); register_clcmd("say_team /vips","ViPLista"); register_clcmd("say /vip","ViPInfo"); register_clcmd("say_team /vip","ViPInfo"); register_clcmd("say /vipmenu","ViPMenu"); register_clcmd("say_team /vipmenu","ViPMenu"); //register_event("DeathMsg", "hook_death", "a", "1>0"); //register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0"); register_logevent("RoundStart", 2, "0=World triggered", "1=Round_Start") //register_event("Damage","Damage","b"); register_event("CurWeapon", "CurWeaponEvent", "be", "1=1"); register_clcmd("awp","PlayerCmd"); gMaxPlayers = get_maxplayers(); gMSGSayText = get_user_msgid("SayText"); register_cvar("vip_max_health", "130"); register_cvar("vip_max_he", "1"); register_cvar("vip_max_smoke", "1"); register_cvar("vip_max_flash", "2"); register_cvar("vip_flaga", "t"); get_cvar_string("vip_flaga", gPcvarFlaga, sizeof gPcvarFlaga -1) } public ViPMenu(id) { if(!has_flags(id, gPcvarFlaga)) { ColorChat(id, GREEN, "[VIP]x^01 Nie masz odpowiednich uprawnien do tej komendy !") return PLUGIN_HANDLED; } new menu = menu_create("Menu VIP'a:", "Menu_handler"); new t_ciche[128]; format(t_ciche, 127, "y1. wCiche bieganie: r%s",(!ciche[id]?"ON":"OFF")) menu_additem(menu,t_ciche,"1") new t_grav[128]; format(t_grav, 127, "y1. wMniejsza grawitacja: r%s",(!grav[id]?"ON":"OFF")) menu_additem(menu,t_grav,"2") new t_deagle[128]; format(t_deagle, 127, "y1. wDeagle z ammo: r%s",(!deagle[id]?"ON":"OFF")) menu_additem(menu,t_deagle,"3") new t_jump[128]; format(t_jump, 127, "y1. wDodatkowy skok: r%s",(!jump[id]?"ON":"OFF")) menu_additem(menu,t_jump,"4") new t_speed[128]; format(t_speed, 127, "y1. wWiekszy speed: r%s",(!speed[id]?"ON":"OFF")) menu_additem(menu,t_speed,"5") menu_setprop(menu, MPROP_EXITNAME, "Wyjdz"); menu_display(id, menu); return PLUGIN_HANDLED; } public Menu_handler(id, menu, item) { if(!is_user_connected(id)) return PLUGIN_CONTINUE; if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_CONTINUE; } set_hudmessage(92, 172, 238, 0.3, 0.3,0, 6.0, 5.0) switch(item) { case 0: { if(is_user_alive(id)) { if(!ciche[id]) ciche[id]=true; else ciche[id]=false; set_cichekroki(id) } else show_hudmessage(id, "Musisz byc zywy aby wlaczyc/wylaczyc ciche chodzenie !") } case 1: { if(!grav[id]) grav[id]=true; else grav[id]=false; if(is_user_alive(id)) { set_gravitychange(id) grav[id]?ColorChat(id, GREEN, "[VIP]x^01 Mniejsza gravitacja: x^04wlaczona !"):ColorChat(id, GREEN, "[VIP]x^01 Mniejsza gravitacja: x^04wylaczona !") } else grav[id]?ColorChat(id, GREEN, "[VIP]x^01 Mniejsza gravitacja: x^04wlaczona x^01 od nowej rundy !"):ColorChat(id, GREEN, "[VIP]x^01 Mniejsza gravitacja: x^04wylaczona x^01 od nowej rundy !") } case 2: { if(!deagle[id]) { deagle[id]=true show_hudmessage(id, "Dostaniesz deagle'a z ammo w nowej rundzie") } else deagle[id]=false; ColorChat(id, GREEN, "[VIP]x^01 Deagle w nowej rundzie: x^04wylaczone !") } case 3: { if(is_user_alive(id)) { if(!jump[id]) jump[id]=true; else jump[id]=false; jump[id]?ColorChat(id, GREEN, "[VIP]x^01 Wlaczyles podwojny skok !"):ColorChat(id, GREEN, "[VIP]x^01 Wylaczyles podwojny skok !") } else show_hudmessage(id, "Musisz byc zywy aby wlaczyc/wylaczyc ciche chodzenie !") } case 4: { if(is_user_alive(id)) { if(!deagle[id]) deagle[id]=true; else deagle[id]=false; } else { set_hudmessage(92, 172, 238, 0.3, 0.3,0, 6.0, 5.0) show_hudmessage(id, "Musisz byc zywy !") } } } return PLUGIN_CONTINUE; } public PlayerCmd(id) { if(!has_flags(id, gPcvarFlaga)) { set_hudmessage(255, 0, 0, 0.5, 0.7, 0, 6.0, 15.0); show_hudmessage(id, "AWP tylko dla VIP'ow!"); ham_strip_weapon(id, "weapon_awp") } return PLUGIN_HANDLED; } public CurWeaponEvent(id) { if(read_data(1) == CSW_AWP && !has_flags(id, gPcvarFlaga)) { set_hudmessage(255, 0, 0, 0.5, 0.7, 0, 6.0, 15.0); show_hudmessage(id, "AWP tylko dla VIP'ow!"); ham_strip_weapon(id, "weapon_awp") } set_speedchange(id) set_gravitychange(id) set_cichekroki(id) return PLUGIN_HANDLED; } stock ham_strip_weapon(id, weapon[]) { if(!equal(weapon, "weapon_", 7)) return 0; new wId = get_weaponid(weapon); if(!wId) return 0; new wEnt; while((wEnt = engfunc(EngFunc_FindEntityByString,wEnt,"classname", weapon)) && pev(wEnt, pev_owner) != id) {} if(!wEnt) return 0; if(get_user_weapon(id) == wId) ExecuteHamB(Ham_Weapon_RetireWeapon, wEnt); if(!ExecuteHamB(Ham_RemovePlayerItem, id, wEnt)) return 0; ExecuteHamB(Ham_Item_Kill, wEnt); set_pev(id, pev_weapons, pev(id, pev_weapons) & ~(1<0; a--) give_item(id, "weapon_hegrenade") for(a=get_cvar_num("vip_max_flash"); a>0; a--) give_item(id, "weapon_flashbang") for(a=get_cvar_num("vip_max_smoke"); a>0; a--) give_item(id, "weapon_smokegrenade") if(deagle[id]) { give_item(id, "weapon_deagle") give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") } } } } public ViPInfo(id) { show_motd(id, "ViP.txt"); return PLUGIN_CONTINUE } public ViPLista(id) { new nazwy_vip[33][32]; new message[256]; new count, x, len; for(new i = 1 ; i <= gMaxPlayers ; i++) { if(is_user_connected(i)) { if(has_flags(i, gPcvarFlaga)) { get_user_name(i, nazwy_vip[count++], 31); } } } len = format(message, 255, "%s ViP'y ONLINE: ",COLOR); if(count > 0) { for(x = 0 ; x < count ; x++) { len += format(message[len], 255-len, "%s%s%s ", COLOR, nazwy_vip[x], x < (count-1) ? "^x01, ":""); if(len > 96 ) { print_message(id, message); len = format(message, 255, "%s ",COLOR); } } print_message(id, message); } else { len += format(message[len], 255-len, "Brak ViP'ow Online"); print_message(id, message); } return PLUGIN_CONTINUE } print_message(id, msg[]) { message_begin(MSG_ONE, gMSGSayText, {0,0,0}, id); write_byte(id); write_string(msg); message_end(); } public has_flags(id,string[]) { new ret=1 new byte new len = strlen(string) new p_flag = get_user_flags(id) for(new i=0;i<=len;i++) { if(string[i]>='a' && string[i]<='z') byte = (1<<(string[i]-'a')) else if(string[i]>='A' && string[i]<='Z') byte = (1<<(string[i]-'A')) else if(string[i]==',' && ret==1) return 1 else if(string[i]==',') ret=1 if(byte!=0 && !(p_flag & byte)) ret=0 byte=0 } return ret } public client_PreThink( id ) { if(!is_user_alive(id)||is_user_bot(id)) return PLUGIN_CONTINUE if(ciche[id]) entity_set_int(id, EV_INT_flTimeStepSound, 300) return PLUGIN_CONTINUE } public set_speedchange(id) { if(is_user_connected(id)) { new Float:speeds = get_user_maxspeed(id) if(speed[id]) speeds *= 1.3 set_user_maxspeed(id, speeds) } } public set_gravitychange(id) { if(is_user_connected(id)) { new Float:gravity = 800.0 if(grav[id]) gravity = gravity / 8 * 7 set_user_gravity(id, gravity) } } public set_cichekroki(id) { if(is_user_connected(id)) { if(ciche[id]) set_user_footsteps(id, 1) else set_user_footsteps(id, 0) } } public client_putinserver(id) { if(has_flags(id, gPcvarFlaga)) { new name[32] get_user_name(id,name,31) set_hudmessage(250, 50, 50, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.2, 2); show_hudmessage(0, "Przychodzi Vip^n %s^n Witamy!!!",name) } return PLUGIN_CONTINUE } public client_disconnect(id) { if(has_flags(id, gPcvarFlaga)) { new name[32] get_user_name(id,name,31) set_hudmessage(250, 50, 50, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.2, 2); show_hudmessage(0, "Odchodzi Vip^n %s",name) } return PLUGIN_CONTINUE }