/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <hamsandwich>
#include <engine>
#include <colorchat>
#define PLUGIN "VIP"
#define AUTHOR "glut"
#define VERSION "1.7e"
#define USES_PER_ROUND 1
#define flaga ADMIN_LEVEL_H
#define SCOREATTRIB_NONE 0
#define SCOREATTRIB_DEAD (1<<0)
#define SCOREATTRIB_BOMB (1<<1)
#define SCOREATTRIB_VIP (1<<2)
new bool:HasC4[33];
new bool:bSpeed[33];
new bool:bGrava[33];
new bool:HPstart[33];
new bool:bNiewidka[33];
new raz[33];
new raz2[33];
new cvar,cvar2,cvar3,cvar4,cvar5,cvar6,cvar7,cvar10,cvar11,cvar12
new name[33]
new gRound=0;
new const modeltt[] = "viptt";
new const model_pathtt[] = "models/player/viptt/viptt.mdl";
new const modelct[] = "vipct";
new const model_pathct[] = "models/player/vipct/vipct.mdl";
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /vip","opis_vipa");
register_clcmd("say /mv","menu_vipa",flaga);
register_clcmd("say /sklep","sklep",flaga);
register_clcmd("say /vips","vips");
register_logevent("Round_Start",2,"1=Round_Start");
register_event("HLTV", "event_new_round", "a", "1=0", "2=0");
register_event("CurWeapon","CurWeapon","be", "1=1")
register_event("DeathMsg", "DeathMsg", "a")
register_message(get_user_msgid("SayText"),"handleSayText");
register_message(get_user_msgid("ScoreAttrib"), "MessageScoreAttrib");
RegisterHam(Ham_Spawn, "player", "Spawn", 1);
cvar = register_cvar("gv_block_bronie","0")
cvar2 = register_cvar("gv_block_sklep","0")
cvar3 = register_cvar("gv_kill_hs","20")
cvar4 = register_cvar("gv_kill","10")
cvar5 = register_cvar("gv_start_hp","100")
cvar6 = register_cvar("gv_kasa_hs","500")
cvar7 = register_cvar("gv_kasa","300")
cvar10 = register_cvar("gv_widocznosc","255")
cvar11 = register_cvar("gv_kasastart","1000")
cvar12 = register_cvar("gv_przywitanie","1")
}
public plugin_precache()
{
precache_model(model_pathtt);
precache_model(model_pathct);
}
public client_putinserver(id)
{
if(is_user_connected(id) && get_user_flags(id) & flaga)
{
if(get_pcvar_num(cvar12) == 1)
{
get_user_name(id,name,31);
set_hudmessage(0, 255, 0, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.2, 2);
show_hudmessage(id,"Vip %s Wszedl Na Serwer",name);
}
}
}
public Spawn(id)
{
if(!is_user_alive(id))
return HAM_IGNORED;
cs_reset_user_model(id);
if(get_user_flags(id) & flaga)
{
switch(get_user_team(id))
{
case 1: cs_set_user_model(id, modeltt);
case 2: cs_set_user_model(id, modelct);
default: cs_reset_user_model(id);
}
}
return HAM_IGNORED;
}
public Round_Start()
{
for (new id=1; id < 33; id++)
{
if(is_user_alive(id) && (get_user_flags(id) & flaga)){
set_user_rendering(id, kRenderFxNone, 0,0,0, kRenderTransAlpha, get_pcvar_num(cvar10))
set_user_footsteps(id, 0)
cs_set_user_money(id,cs_get_user_money(id)+get_pcvar_num(cvar11))
bSpeed[id] = false;
raz[id] = 0;
raz2[id] = 0;
if(bGrava[id] == false)
{entity_set_float(id, EV_FL_gravity, 1.0);}
HPstart[id] = true;
bNiewidka[id] = false;
if(HPstart[id]){
set_user_health(id,get_pcvar_num(cvar5))
}
}
}
}
public DeathMsg()
{
new kid = read_data(1) //zabojca
new hs = read_data(3) // HeadShot (1 == true)
if(hs && (get_user_flags(kid) & flaga))
{
cs_set_user_money(kid,cs_get_user_money(kid)+get_pcvar_num(cvar6))
set_user_health(kid,get_user_health(kid)+get_pcvar_num(cvar3)) //HP za HS
set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
show_hudmessage(kid, "Otrzymales +%d do hp", get_pcvar_num(cvar3))
}
else
{
if(get_user_flags(kid) & flaga)
{
cs_set_user_money(kid,cs_get_user_money(kid)+get_pcvar_num(cvar7))
set_user_health(kid,get_user_health(kid)+get_pcvar_num(cvar4)) // HP za killa
set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
show_hudmessage(kid, "Otrzymales +%d do hp", get_pcvar_num(cvar4))
}
}
return PLUGIN_CONTINUE;
}
public CurWeapon(id)
{
if(bSpeed[id]){
set_user_maxspeed(id,get_user_maxspeed(id)*2)
}
if(bGrava[id]){
entity_set_float(id, EV_FL_gravity, 400.0/800.0)
}
if(bNiewidka[id]){
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 100)
}
return PLUGIN_CONTINUE;
}
public opis_vipa(id)
{
show_motd(id, "vip.txt")
}
public menu_vipa(id)
{
if(gRound >= 2) //tutaj zmienisz od ktorej rundy ma byc menu
if(get_user_flags(id) & flaga)
{
new Menu_Vipa=menu_create("Menu Vipa:","cbmenu_vipa");
menu_additem(Menu_Vipa,"Bronie");
menu_additem(Menu_Vipa,"Sklep");
menu_setprop(Menu_Vipa,MPROP_EXITNAME,"Wyjscie");
menu_setprop(Menu_Vipa,MPROP_EXIT,MEXIT_ALL);
menu_display(id,Menu_Vipa,0);
}
return PLUGIN_HANDLED;
}
public cbmenu_vipa(id,menu,item)
{
switch(item)
{
case 0:
{
bronie(id)
}
case 1:
{
sklep(id)
}
}
}
public bronie(id)
{
if(get_pcvar_num(cvar) == 0)
{
if(is_user_alive(id) && (get_user_flags(id) & flaga))
{
if(raz[id] >= USES_PER_ROUND){
client_print(id, print_chat, "* W tej rundzie juz wybrales bron");
return PLUGIN_HANDLED;
}
raz[id]++;
new Bronie=menu_create("Wybierz bron:","cbbronie");
menu_additem(Bronie,"M4A1+DEAGLE");
menu_additem(Bronie,"AK47+DEAGLE");
menu_additem(Bronie,"AWP+DEAGLE");
menu_additem(Bronie,"MP5+DEAGLE");
menu_additem(Bronie,"SHOTGUN+DEAGLE");
menu_setprop(Bronie,MPROP_EXITNAME,"Wyjscie");
menu_setprop(Bronie,MPROP_EXIT,MEXIT_ALL);
menu_display(id,Bronie,0);
}
else
return PLUGIN_HANDLED;
}
return PLUGIN_HANDLED;
}
public cbbronie(id,menu,item)
{
switch(item)
{
case 0:
{
if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)
HasC4[id] = true;
else
HasC4[id] = false;
strip_user_weapons (id)
give_item(id, "weapon_m4a1")
give_item(id, "ammo_556nato")
give_item(id, "ammo_556nato")
give_item(id, "ammo_556nato")
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")
give_item(id, "weapon_knife")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
give_item(id, "item_thighpack")
give_item(id, "item_assaultsuit")
client_print(id,print_chat,"Wybrales M4A1,DEAGLE i wszystkie granaty!!!");
if (HasC4[id])
{
give_item(id, "weapon_c4");
cs_set_user_plant( id );
}
}
case 1:
{
if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)
HasC4[id] = true;
else
HasC4[id] = false;
strip_user_weapons (id)
give_item(id, "weapon_ak47")
give_item(id, "ammo_762nato")
give_item(id, "ammo_762nato")
give_item(id, "ammo_762nato")
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")
give_item(id, "weapon_knife")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
give_item(id, "item_thighpack")
give_item(id, "item_assaultsuit")
client_print(id,print_chat,"Wybrales AK47,DEAGLE i wszystkie granaty!!!");
if (HasC4[id])
{
give_item(id, "weapon_c4");
cs_set_user_plant( id );
}
}
case 2:
{
if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)
HasC4[id] = true;
else
HasC4[id] = false;
strip_user_weapons (id)
give_item(id, "weapon_awp")
give_item(id, "ammo_338magnum")
give_item(id, "ammo_338magnum")
give_item(id, "ammo_338magnum")
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")
give_item(id, "weapon_knife")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
give_item(id, "item_thighpack")
give_item(id, "item_assaultsuit")
client_print(id,print_chat,"Wybrales AWP,DEAGLE i wszystkie granaty!!!");
if (HasC4[id])
{
give_item(id, "weapon_c4");
cs_set_user_plant( id );
}
}
case 3:
{
if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)
HasC4[id] = true;
else
HasC4[id] = false;
strip_user_weapons (id)
give_item(id, "weapon_mp5navy")
give_item(id, "ammo_9mm")
give_item(id, "ammo_9mm")
give_item(id, "ammo_9mm")
give_item(id, "ammo_9mm")
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")
give_item(id, "weapon_knife")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
give_item(id, "item_thighpack")
give_item(id, "item_assaultsuit")
client_print(id,print_chat,"Wybrales MP5,DEAGLE i wszystkie granaty!!!");
if (HasC4[id])
{
give_item(id, "weapon_c4");
cs_set_user_plant( id );
}
}
case 4:
{
if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)
HasC4[id] = true;
else
HasC4[id] = false;
strip_user_weapons (id)
give_item(id,"weapon_xm1014")
give_item(id, "ammo_buckshot")
give_item(id, "ammo_buckshot")
give_item(id, "ammo_buckshot")
give_item(id, "ammo_buckshot")
give_item(id, "ammo_buckshot")
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")
give_item(id, "weapon_knife")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
give_item(id, "item_thighpack")
give_item(id, "item_assaultsuit")
client_print(id,print_chat,"Wybrales SHOTGUN,DEAGLE i wszystkie granaty!!!");
if (HasC4[id])
{
give_item(id, "weapon_c4");
cs_set_user_plant( id );
}
}
}
}
public sklep(id)
{
if(get_pcvar_num(cvar2) == 0)
{
if(get_user_flags(id) & flaga)
{
if(is_user_alive(id))
{
new Sklep=menu_create("Kup cos:","cbsklep");
menu_additem(Sklep,"Dodatkowe 50HP\y:Koszt 10000");
menu_additem(Sklep,"Zmniejszona grawitacja\y:Koszt 8000");
menu_additem(Sklep,"Zmniejszona widocznosc\y:Koszt 8000");
menu_additem(Sklep,"Ciche Chodzenie\y:Koszt 5000");
menu_setprop(Sklep,MPROP_EXITNAME,"Wyjscie");
menu_setprop(Sklep,MPROP_EXIT,MEXIT_ALL);
menu_display(id,Sklep,0);
}
else
return PLUGIN_HANDLED;
}
else
{
client_print(id,print_chat,"Brak Vip'a")
}
}
return PLUGIN_HANDLED;
}
public cbsklep(id,menu,item)
{
switch(item)
{
case 0:
{
if(cs_get_user_money(id) >= 10000)
{
cs_set_user_money(id,cs_get_user_money(id)-10000)
set_user_health(id,get_user_health(id)+50)
client_print(id,print_chat,"Kupiles dodatkowe 50HP");
}
else
{
client_print(id,print_chat,"Nie masz tyle kasy")
}
}
case 1:
{
if(cs_get_user_money(id) >= 8000)
{
cs_set_user_money(id,cs_get_user_money(id)-8000)
bGrava[id] = true;
client_print(id,print_chat,"Twoja grawitacja zostala zmniejszona do 400");
}
else
{
client_print(id,print_chat,"Nie masz tyle kasy")
}
}
case 2:
{
if(cs_get_user_money(id) >= 8000)
{
cs_set_user_money(id,cs_get_user_money(id)-8000)
bNiewidka[id] = true;
client_print(id,print_chat,"Twoja widocznosc zostala zmniejszona do 100");
}
else
{
client_print(id,print_chat,"Nie masz tyle kasy")
}
}
case 3:
{
if(cs_get_user_money(id) >= 5000)
{
cs_set_user_money(id,cs_get_user_money(id)-5000)
set_user_footsteps(id, 1)
client_print(id,print_chat,"Nie slychac twoich krokow");
}
else
{
client_print(id,print_chat,"Nie masz tyle kasy")
}
}
case 4:
{
if(cs_get_user_money(id) >= 5000)
{
cs_set_user_money(id,cs_get_user_money(id)-5000)
bSpeed[id] = true;
client_print(id,print_chat,"Szybkosc zwiekszona dwukrotnie")
}
else
{
client_print(id,print_chat,"Nie masz tyle kasy")
}
}
}
}
public handleSayText(msgId,msgDest,msgEnt){
new id = get_msg_arg_int(1);
if(!is_user_connected(id)) return PLUGIN_CONTINUE;
if(get_user_flags(id) & flaga)
{
new szTmp[256],szTmp2[256];
get_msg_arg_string(2,szTmp, charsmax( szTmp ) )
new szPrefix[64] = "^x04[VIP]";
if(!equal(szTmp,"#Cstrike_Chat_All")){
add(szTmp2,charsmax(szTmp2),szPrefix);
add(szTmp2,charsmax(szTmp2)," ");
add(szTmp2,charsmax(szTmp2),szTmp);
}
else{
add(szTmp2,charsmax(szTmp2),szPrefix);
add(szTmp2,charsmax(szTmp2),"^x03 %s1^x01 : %s2");
}
set_msg_arg_string(2,szTmp2);
}
return PLUGIN_CONTINUE;
}
public vips(id)
{
new vipy[33][32];
new str[1024];
new count=0;
new i,n=get_maxplayers();
for(i=1; i<=n; ++i){
if(is_user_connected(i) && (get_user_flags(i) & flaga)){
get_user_name(i, vipy[count], 31);
++count;
}
}
if(count){
format(str,1023, "VIP%s online:^x01 ",str, vipy[i], (count>1?"y":""));
for(i=0; i<count; ++i){
format(str,1023,"%s%s%s",str, vipy[i], (i<count-1?"^x04,^x01 ":"^x04."));
}
ColorChat(id,GREEN, str);
} else {
ColorChat(id,RED, "Na serwerze nie ma aktualnie Vip'ow.");
}
return PLUGIN_HANDLED;
}
public MessageScoreAttrib(iMsgID, iDest, iReceiver){
// status VIP w tabeli punktow
new id = get_msg_arg_int(1);
if(is_user_connected(id) && get_user_flags(id) & flaga){
if(is_user_alive(id)){
if(cs_get_user_team(id)==CS_TEAM_T && user_has_weapon(id, CSW_C4) && cs_get_user_plant(id)){
set_msg_arg_int(2, ARG_BYTE, SCOREATTRIB_BOMB);
} else {
set_msg_arg_int(2, ARG_BYTE, SCOREATTRIB_VIP);
}
} else {
set_msg_arg_int(2, ARG_BYTE, SCOREATTRIB_DEAD);
}
}
}