#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
#include <fakemeta>
#include <engine>
#include <hamsandwich>
#include <colorchat>
#define PLUGIN "SmartVip"
#define VERSION "1.0"
#define AUTHOR "CheQ"
#define DSPEED 255.0
#define VIP_FLAG ADMIN_LEVEL_H
//------- Itemy Vipa
//new bool:biega[33];
new bool:graw[33];
new bool:deagl[33];
//new bool:skok[33];
//new bool:speed[33];
new bool:MaPrefix[33];
new prefix[32];
//new ilosc_skokow_gracza[33];
new bool:jest_vipem[33];
//cvary
new hp,he,fl,sm,awka;
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1);
RegisterHam(Ham_Touch, "weaponbox", "DotykBroni");
register_event("CurWeapon","CurWeapon","be", "1=1");
//register_forward(FM_CmdStart, "CmdStart");
register_clcmd("say /vipmenu","MenuVipa");
register_clcmd("say /
vip","InfoVipa");
register_clcmd("say /vips","PokazVipow");
register_clcmd("say /vipss","PokazVipowChat");
register_clcmd("say","PokazPrefix")
register_clcmd("say_team","PokazPrefix")
register_cvar("vip_hpstart","20")
register_cvar("vip_hestart","0")
register_cvar("vip_flstart","0")
register_cvar("vip_smstart","1")
register_cvar("vip_prefix","[
VIP]")
hp = get_cvar_num("vip_hpstart")
fl = get_cvar_num("vip_flstart")
sm = get_cvar_num("vip_smstart")
he = get_cvar_num("vip_hestart")
get_cvar_string("vip_prefix",prefix,31);
}
public Odrodzenie(id)
{
if(!is_user_alive(id) || !jest_vipem[id])
return PLUGIN_CONTINUE;
if(deagl[id])
{
give_item(id,"weapon_scout");
cs_set_user_bpammo(id,CSW_SCOUT,21);
}
/*
if(biega[id])
{
set_user_footsteps(id,0)
}
else
{
set_user_footsteps(id,1)
}
if(speed[id])
{
set_user_maxspeed(id,DSPEED * 1.3)
}
else
{
set_user_maxspeed(id,DSPEED * 1.0)
}*/
if(graw[id])
{
set_user_gravity(id,0.7)
}
else
{
set_user_gravity(id,1.0)
}
set_user_health(id,get_user_health(id) + hp);
if(he)
give_item(id,"weapon_hegrenade")
if(fl)
give_item(id,"weapon_flashbang")
if(sm)
give_item(id,"weapon_smokegrenade")
return PLUGIN_CONTINUE;
}
/*
public CmdStart(id, uc_handle)
{
if(!is_user_alive(id))
return FMRES_IGNORED;
new button = get_uc(uc_handle, UC_Buttons);
new oldbutton = get_user_oldbutton(id);
new flags = get_entity_flags(id);
if(skok[id])
{
if((button & IN_JUMP) && !(flags & FL_ONGROUND) && !(oldbutton & IN_JUMP) && ilosc_skokow_gracza[id] > 0)
{
ilosc_skokow_gracza[id]--;
new Float:velocity[3];
entity_get_vector(id,EV_VEC_velocity,velocity);
velocity[2] = random_float(265.0,285.0);
entity_set_vector(id,EV_VEC_velocity,velocity);
}
else if(flags & FL_ONGROUND)
{
ilosc_skokow_gracza[id] = 0;
if(skok[id])
ilosc_skokow_gracza[id]++;
}
}
return FMRES_IGNORED;
}*/
public client_putinserver(id)
{
//Zeruje wszystko
//biega[id]=false;
graw[id]=false;
deagl[id]=false
//skok[id]=false;
//speed[id]=false;
jest_vipem[id] = false;
if(get_user_flags(id) & VIP_FLAG)
{
new name[32];
get_user_name(id,name,31)
set_hudmessage(255, 0, 0, 0.1, 0.70, 0, 1.0, 5.0, 0.01, 0.01, 1)
show_hudmessage(0,"Wchodzi
VIP!^n %s",name);
jest_vipem[id] = true;
}
}
public client_disconnect(id)
{
//biega[id]=false;
graw[id]=false;
deagl[id]=false
//skok[id]=false;
//speed[id]=false;
if(jest_vipem[id])
{
new name[32];
get_user_name(id,name,31)
set_hudmessage(255, 0, 0, 0.1, 0.70, 0, 1.0, 5.0, 0.01, 0.01, 1)
show_hudmessage(0, "Odchodzi
VIP!^n %s",name);
}
jest_vipem[id] = false;
}
public MenuVipa(id)
{
if(!jest_vipem[id])
return PLUGIN_CONTINUE;
new menu = menu_create("Menu Vipa:", "MenuVipa_Handle");
new /*tbieganie[32],*/tgrawitacja[32],tdeagl[32]/*,tskok[32]*/,/*tspeed[32],*/tpref[32];
/*
if(biega[id])
format(tbieganie,31,"Ciche bieganie On/-")
else
format(tbieganie,31,"Ciche bieganie -/Off")
*/
if(graw[id])
format(tgrawitacja,31,"Mniejsza grawitacja On/-")
else
format(tgrawitacja,31,"Mniejsza grawitacja -/Off")
if(deagl[id])
format(tdeagl,31,"Scout na spawnie On/-")
else
format(tdeagl,31,"Scout na spawnie -/Off")
/*
if(skok[id])
format(tskok,31,"Podwojny skok On/-")
else
format(tskok,31,"Podwojny skok -/Off")
if(speed[id])
format(tspeed,31,"Wieksza predkosc On/-")
else
format(tspeed,31,"Wieksza predkosc -/Off")
*/
if(MaPrefix[id])
format(tpref,31,"Prefix %s On/-",prefix)
else
format(tpref,31,"Prefix %s -/Off",prefix)
//menu_additem(menu, tbieganie);
menu_additem(menu, tgrawitacja);
menu_additem(menu, tdeagl);
//menu_additem(menu, tskok);
//menu_additem(menu, tspeed);
menu_additem(menu, tpref);
menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
menu_display(id, menu);
return PLUGIN_CONTINUE;
}
public MenuVipa_Handle(id,menu,item)
{
if(item == MENU_EXIT)
{
client_print(id,print_chat,"[VipMenu] Zmiany Zostaly zapisane.")
menu_destroy(menu)
return PLUGIN_CONTINUE;
}
switch(item)
{
/*
case 0:
{
if(!biega[id])
{
biega[id] = true;
}
else
{
biega[id] = false;
}
}*/
case 0:
{
if(!graw[id])
{
graw[id] = true;
set_user_gravity(id,0.7)
}
else
{
graw[id] = false;
set_user_gravity(id,1.0)
}
}
case 1:
{
if(!deagl[id])
{
deagl[id] = true;
}
else
{
deagl[id] = false;
}
}
/*case 3:
{
if(!skok[id])
{
skok[id] = true;
}
else
{
skok[id] = false;
}
}
case 2:
{
if(!speed[id])
{
speed[id] = true;
}
else
{
speed[id] = false;
}
}*/
case 2:
{
if(!MaPrefix[id])
{
MaPrefix[id] = true;
}
else
{
MaPrefix[id] = false;
}
}
}
menu_destroy(menu);
MenuVipa(id);
return PLUGIN_CONTINUE;
}
public CurWeapon(id)
{
new weapon = get_user_weapon(id)
if(weapon == CSW_ELITE && !jest_vipem[id])
{
client_cmd(id,"drop")
client_print(id,print_chat,"Tylko
VIP moze posiadac ten pistolet")
}/*
if(speed[id] && jest_vipem[id])
{
set_user_maxspeed(id,DSPEED * 1.3)
}*/
}
public PokazVipow(id)
{
new Players[32],num;
new g_ItemFile[32],Data[768];
new bool:sa = false;
get_players(Players,num)
format(g_ItemFile,63,"vipt.txt")
if(file_exists(g_ItemFile))
delete_file(g_ItemFile)
format(Data, 50, "<
html><p align=^"center^">Vipy OnLine <br /><br />");
write_file(g_ItemFile,Data,-1)
for(new ajdi = 1;ajdi<num+1;ajdi++)
{
if(jest_vipem[ajdi])
{
new name[32];
get_user_name(ajdi,name,31)
formatex(Data,50, "<b>%s</b><br />",name)
write_file(g_ItemFile,Data,-1)
sa=true;
}
}
if(!sa)
{
formatex(Data,50, "<b>Aktualnie brak Vipow na serwerze</b><br />")
write_file(g_ItemFile,Data,-1)
}
format(Data,50,"</p></
html>")
write_file(g_ItemFile,Data,-1)
show_motd(id, g_ItemFile, "Vipy") // Pokazanie motd
return PLUGIN_HANDLED;
}
public PokazVipowChat(id)
{
new Players[32],num;
new Data[768];
new bool:sa = false;
get_players(Players,num)
format(Data,768,"Vipy na serwerze : ")
for(new ajdi = 1;ajdi<num+1;ajdi++)
{
if(jest_vipem[ajdi])
{
new name[32];
get_user_name(ajdi,name,31)
format(Data,768,"%s %s ",Data,name);
sa=true;
}
}
if(!sa)
{
client_print(id,print_chat,"Aktualnie nie ma VIPow na serwerze");
return PLUGIN_CONTINUE;
}
client_print(id,print_chat,"%s",Data);
return PLUGIN_HANDLED;
}
public InfoVipa(id)
{
new g_ItemFile[32],Data[768];
format(g_ItemFile,63,"
vip.txt")
if(file_exists(g_ItemFile))
{
show_motd(id, g_ItemFile, "Co ma
Vip?")
return PLUGIN_HANDLED;
}
format(g_ItemFile,63,"vipinfo.txt")
delete_file(g_ItemFile)
format(Data, 50, "<
html><p align=^"center^">Co ma
Vip? <br /><br />");
write_file(g_ItemFile,Data,-1)
formatex(Data,50, "<b>Dodatkowe %i HP na start</b><br />",hp)
write_file(g_ItemFile,Data,-1)
if(he)
{
formatex(Data,50, "<b>HE na strat</b><br />")
write_file(g_ItemFile,Data,-1)
}
if(sm)
{
formatex(Data,50, "<b>Smoke'a na strat</b><br />")
write_file(g_ItemFile,Data,-1)
}
if(fl)
{
formatex(Data,50, "<b>Flasha na strat</b><br />")
write_file(g_ItemFile,Data,-1)
}
formatex(Data,300, "<b>VipMen ua w nim <br />*Podwojny skok<br />*Scout na start<br />*Mniejsza Grawitacja<br />*Cichy chod<br />*130% szybkosci<br />Ustawienie Prefixu przed nickiem %s<br /></b><br />",prefix)
write_file(g_ItemFile,Data,-1)
show_motd(id, g_ItemFile, "Co ma
Vip?") // Pokazanie motd
return PLUGIN_HANDLED;
}
public DotykBroni(weapon,id)
{
if(awka)
return HAM_IGNORED;
new model[23];
entity_get_string(weapon, EV_SZ_model, model, 22);
if(equal(model, "models/w_awp.mdl") && !jest_vipem[id])
return HAM_SUPERCEDE;
return HAM_IGNORED;
}
public PokazPrefix(id)
{
if(!MaPrefix[id] || !jest_vipem[id])
return PLUGIN_CONTINUE;
new szCommand[256]
read_args(szCommand,charsmax(szCommand));
remove_quotes(szCommand);
new NickGracza[33];
get_user_name(id,NickGracza,31);
if(MaPrefix[id])
{
switch(get_user_team(id))
{
case 1:
ColorChat(id, RED,"%s %s ^x01%s",prefix,NickGracza,szCommand);
case 2:
ColorChat(id, BLUE,"%s %s ^x01%s",prefix,NickGracza,szCommand);
case 3:
ColorChat(id, GREY,"%s %s ^x01%s",prefix,NickGracza,szCommand);
}
}
return PLUGIN_HANDLED;
}