Код:
/*
5.0.2 Более удобное расположение пунктов меню
5.0.1 Фикс бага с условием сброса скорости
change if (g_iHasSpeed[id]) to if (g_iHasSpeed[id] != -1)
*/
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <fun>
/*===============================================================================
=
[Defines & Variables]
================================================================================
=*/
// Plugin Info
#define PLUGIN_NAME "CS Shop"
#define PLUGIN_VERS "5.0.2"
#define PLUGIN_AUTH "iNeedHelp" // Old Name :(
// Weapons BitSum (drop stocks)
#define PRIMARY_WEAPONS_BITSUM ((1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90))
// Max Players
#define MAX_PLAYERS 32
#define set_user_money(%1,%2) cs_set_user_money(%1,%2)
#define get_user_money(%1) cs_get_user_money(%1)
#define MAX_HP 900
#define MAX_AP 900
#define DISC_FLAG ADMIN_LEVEL_B
// Pointers
new g_pGravityCvarPointer
// Main Cvars
new g_pCvarPrefix
// Menu Cvars
new g_pMenuEnableCvars[6]
new g_pTeGunsMenuCvars[8]
new g_pInvisibilityMenuCvars[3]
new g_pGravityMenuCvars[4]
new g_pHealthMenuCvars[6]
new g_pArmorMenuCvars[6]
new g_pSpeedMenuCvars[5]
// Menu vars
new g_iHasSpeed[MAX_PLAYERS+1] = { -1, ... }
new g_iHasGravity[MAX_PLAYERS+1] = { -1, ... }
new g_iHasInvis[MAX_PLAYERS+1] = { -1, ... }
// Menus Items
new g_szMainShopMenu[][] =
{
"Меню здоровья",
"Меню брони",
"Меню гравитации",
"Меню невидимости",
"Меню скорости",
"Меню оружия"
}
new g_szTGunsMenu[][] =
{
"АК-47",
"М4А1",
"АВП",
"Фамас",
"Галил",
"Дигл",
"Юсп",
"Глок"
}
new g_szInvisibilityMenu[][] =
{
"Высокая",
"Средняя",
"Слабая"
}
new g_szGravityMenu[][] =
{
"Гравитация 400",
"Гравитация 500",
"Гравитация 600",
"Гравитация 700"
}
new g_szHealthMenu[][] =
{
"Здоровье +450",
"Здоровье +200",
"Здоровье +95",
"Здоровье +65",
"Здоровье +35",
"Здоровье +15"
}
new g_szArmorMenu[][] =
{
"Броня +450",
"Броня +200",
"Броня +95",
"Броня +65",
"Броня +35",
"Броня +15"
}
new g_szSpeedMenu[][] =
{
"Скорость 420",
"Скорость 380",
"Скорость 340",
"Скорость 300",
"Скорость 260"
}
new g_szTGunsWeapons[][] =
{
"weapon_ak47",
"weapon_m4a1",
"weapon_awp",
"weapon_famas",
"weapon_galil",
"weapon_deagle",
"weapon_usp",
"weapon_glock18"
}
new g_szTGunsAmmo[][] = { "762nato", "556nato", "338magnum", "556nato", "556nato", "50ae", "45acp", "9mm"}
new g_iTGunsLoad[] = { 90, 90, 30, 90, 90, 35, 100, 120 }
new g_iTGunsMaxAmmo[] = { 90, 90, 30, 90, 90, 35, 100, 120 }
new g_iInvisibilityLevel[] = { 40, 100, 150 }
new g_iHealthLevel[] = { 450, 200, 95, 65, 35, 15 }
new g_iArmorLevel[] = { 450, 200, 95, 65, 35, 15 }
new Float:g_flGravityLevel[] = { 400.0, 500.0, 600.0, 700.0 }
new Float:g_flSpeedLevel[] = { 420.0, 380.0, 340.0, 300.0, 260.0 }
// Message Hooks
new g_iMsgSayText
/*===============================================================================
=
[Init]
================================================================================
=*/
public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERS, PLUGIN_AUTH)
// Multi-Lingual
register_dictionary("shop.txt")
// Commands
register_clcmd("say /shop", "ClCmd_Say")
register_clcmd("shop", "ClCmd_Say")
// Ham Forwards
RegisterHam(Ham_Spawn, "player", "Fwd_PlayerSpawn_Post", 1)
// Events
register_event("CurWeapon", "Event_CurWeapon", "be", "1=1")
// Messages Hooks
g_iMsgSayText = get_user_msgid("SayText")
// Cvars
g_pGravityCvarPointer = get_cvar_pointer("sv_gravity")
g_pCvarPrefix = register_cvar("amx_shop_prefix", "[Магазин]")
g_pMenuEnableCvars[0] = register_cvar("amx_shop_hp", "1")
g_pHealthMenuCvars[0] = register_cvar("amx_shop_450hp", "5500")
g_pHealthMenuCvars[1] = register_cvar("amx_shop_200hp", "2800")
g_pHealthMenuCvars[2] = register_cvar("amx_shop_95hp", "1500")
g_pHealthMenuCvars[3] = register_cvar("amx_shop_65hp", "1000")
g_pHealthMenuCvars[4] = register_cvar("amx_shop_35hp", "700")
g_pHealthMenuCvars[5] = register_cvar("amx_shop_15hp", "400")
g_pMenuEnableCvars[1] = register_cvar("amx_shop_ap", "1")
g_pArmorMenuCvars[0] = register_cvar("amx_shop_450ap", "5500")
g_pArmorMenuCvars[1] = register_cvar("amx_shop_200ap", "2800")
g_pArmorMenuCvars[2] = register_cvar("amx_shop_95ap", "1500")
g_pArmorMenuCvars[3] = register_cvar("amx_shop_65ap", "1000")
g_pArmorMenuCvars[4] = register_cvar("amx_shop_35ap", "700")
g_pArmorMenuCvars[5] = register_cvar("amx_shop_15ap", "400")
g_pMenuEnableCvars[2] = register_cvar("amx_shop_grav", "1")
g_pGravityMenuCvars[0] = register_cvar("amx_shop_g400", "4500")
g_pGravityMenuCvars[1] = register_cvar("amx_shop_g500", "3500")
g_pGravityMenuCvars[2] = register_cvar("amx_shop_g600", "2500")
g_pGravityMenuCvars[3] = register_cvar("amx_shop_g700", "1500")
g_pMenuEnableCvars[3] = register_cvar("amx_shop_invis", "1")
g_pInvisibilityMenuCvars[0] = register_cvar("amx_shop_high", "13000")
g_pInvisibilityMenuCvars[1] = register_cvar("amx_shop_medium", "10000")
g_pInvisibilityMenuCvars[2] = register_cvar("amx_shop_low", "6000")
g_pMenuEnableCvars[4] = register_cvar("amx_shop_speed", "1")
g_pSpeedMenuCvars[0] = register_cvar("amx_shop_420speed", "12000")
g_pSpeedMenuCvars[1] = register_cvar("amx_shop_380speed", "10000")
g_pSpeedMenuCvars[2] = register_cvar("amx_shop_340speed", "8000")
g_pSpeedMenuCvars[3] = register_cvar("amx_shop_300speed", "6000")
g_pSpeedMenuCvars[4] = register_cvar("amx_shop_260speed", "4000")
g_pMenuEnableCvars[5] = register_cvar("amx_shop_weapon", "1")
g_pTeGunsMenuCvars[0] = register_cvar("amx_shop_ak47", "500")
g_pTeGunsMenuCvars[1] = register_cvar("amx_shop_m4a1", "400")
g_pTeGunsMenuCvars[2] = register_cvar("amx_shop_awp", "600")
g_pTeGunsMenuCvars[3] = register_cvar("amx_shop_famas", "300")
g_pTeGunsMenuCvars[4] = register_cvar("amx_shop_galil", "300")
g_pTeGunsMenuCvars[5] = register_cvar("amx_shop_deagle", "200")
g_pTeGunsMenuCvars[6] = register_cvar("amx_shop_usp", "200")
g_pTeGunsMenuCvars[7] = register_cvar("amx_shop_glock", "200")
}
//public plugin_precache ()
//{
// precache_sound ( "dmsentries/menu_click.wav" )
// precache_sound ( "dmsentries/error.wav" )
//}
/*===============================================================================
=
[Menus]
================================================================================
=*/
public ClCmd_Say(id)
{
if (!is_user_alive(id))
{
client_print_c(id, "%L", id, "SHOP_DEAD")
return PLUGIN_HANDLED
}
Create_Menu(id)
return PLUGIN_HANDLED
}
Create_Menu(id)
{
new Menu = menu_create("\rМеню прокачки", "MainMenu_Handler")
new Items[32], Position[3]
for (new i = 0; i < sizeof(g_szMainShopMenu); i++)
{
formatex(Items, charsmax(Items), "%s%s", get_pcvar_num(g_pMenuEnableCvars[i]) ? "\w" : "\d", g_szMainShopMenu[i])
num_to_str(i, Position, charsmax(Position))
menu_additem(Menu, Items, Position)
}
menu_setprop(Menu, MPROP_NEXTNAME, "Далее")
menu_setprop(Menu, MPROP_BACKNAME, "Назад")
menu_setprop(Menu, MPROP_EXITNAME, "Выход")
menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, Menu, 0)
}
public MainMenu_Handler(id, Menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(Menu)
return PLUGIN_HANDLED
}
new Data[6], Name[64];
new Access, Callback;
menu_item_getinfo(Menu, item, Access, Data, 5, Name, 63, Callback)
new Key = str_to_num(Data);
new bal, Price
switch (Key)
{
case 0:
{
new Hp_Menu = menu_create("\rМеню здоровья", "HealthMenu_Handler")
new Items[40], PriceString[40], Position[3]
for (new i = 0; i < sizeof(g_szHealthMenu); i++)
{
Price = get_pcvar_num(g_pArmorMenuCvars[i])
if(get_user_flags(id) & DISC_FLAG)
{
Price = floatround(Price*0.8)
if(Price > 100)
bal = (Price % 100)
Price = Price - bal + 100
}
formatex(PriceString, charsmax(PriceString), "- \y$%d", Price)
formatex(Items, charsmax(Items), "%s%s %s", Price > 0 ? "\w" : "\d", g_szHealthMenu[i], Price > 0 ? PriceString : "")
num_to_str(i, Position, charsmax(Position))
menu_additem(Hp_Menu, Items, Position)
}
menu_setprop(Hp_Menu, MPROP_NEXTNAME, "Далее")
menu_setprop(Hp_Menu, MPROP_BACKNAME, "Назад")
menu_setprop(Hp_Menu, MPROP_EXITNAME, "Выход")
menu_setprop(Hp_Menu, MPROP_EXIT, MEXIT_ALL)
if (!get_pcvar_num(g_pMenuEnableCvars[3]))
{
client_print_c(id, "%L", id, "SHOP_HEALTH_OFF")
return PLUGIN_HANDLED
}
else
menu_display(id, Hp_Menu, 0)
}
case 1:
{
new Ap_Menu = menu_create("\rМеню брони", "ArmorMenu_Handler")
new Items[40], PriceString[40], Position[3]
for (new i = 0; i < sizeof(g_szArmorMenu); i++)
{
Price = get_pcvar_num(g_pArmorMenuCvars[i])
if(get_user_flags(id) & DISC_FLAG)
{
Price = floatround(Price*0.8)
if(Price > 100)
bal = (Price % 100)
Price = Price - bal + 100
}
formatex(PriceString, charsmax(PriceString), "- \y$%d", Price)
formatex(Items, charsmax(Items), "%s%s %s", Price > 0 ? "\w" : "\d", g_szArmorMenu[i], Price > 0 ? PriceString : "")
num_to_str(i, Position, charsmax(Position))
menu_additem(Ap_Menu, Items, Position)
}
menu_setprop(Ap_Menu, MPROP_NEXTNAME, "Далее")
menu_setprop(Ap_Menu, MPROP_BACKNAME, "Назад")
menu_setprop(Ap_Menu, MPROP_EXITNAME, "Выход")
menu_setprop(Ap_Menu, MPROP_EXIT, MEXIT_ALL)
if (!get_pcvar_num(g_pMenuEnableCvars[4]))
{
client_print_c(id, "%L", id, "SHOP_ARMOR_OFF")
return PLUGIN_HANDLED
}
else
menu_display(id, Ap_Menu, 0)
}
case 2:
{
new Grav_Menu = menu_create("\rМеню гравитации", "GravityMenu_Handler")
new Items[40], PriceString[40], Position[3]
for (new i = 0; i < sizeof(g_szGravityMenu); i++)
{
if(g_iHasGravity[id] != -1 && i >= g_iHasGravity[id])
continue
Price = get_pcvar_num(g_pGravityMenuCvars[i])
if(get_user_flags(id) & DISC_FLAG)
{
Price = floatround(Price*0.8)
if(Price > 100)
bal = (Price % 100)
Price = Price - bal + 100
}
formatex(PriceString, charsmax(PriceString), "- \y$%d", Price)
formatex(Items, charsmax(Items), "%s%s %s", Price > 0 ? "\w" : "\d", g_szGravityMenu[i], Price > 0 ? PriceString : "")
num_to_str(i, Position, charsmax(Position))
menu_additem(Grav_Menu, Items, Position)
}
menu_setprop(Grav_Menu, MPROP_NEXTNAME, "Далее")
menu_setprop(Grav_Menu, MPROP_BACKNAME, "Назад")
menu_setprop(Grav_Menu, MPROP_EXITNAME, "Выход")
menu_setprop(Grav_Menu, MPROP_EXIT, MEXIT_ALL)
new iItems = menu_items(Grav_Menu)
if (!get_pcvar_num(g_pMenuEnableCvars[2]))
{
client_print_c(id, "%L", id, "SHOP_GRAV_OFF")
return PLUGIN_HANDLED
}
else if(!iItems)
{
client_print_c(id, "У вас максимальная гравитация")
return PLUGIN_HANDLED
}
else
menu_display(id, Grav_Menu, 0)
}
case 3:
{
new Inv_Menu = menu_create("\rМеню невидимости", "InvisibilityMenu_Handler")
new Items[40], PriceString[40], Position[5]
for (new i = 0; i < sizeof(g_szInvisibilityMenu); i++)
{
if(g_iHasInvis[id] != -1 && i >= g_iHasInvis[id])
continue
Price = get_pcvar_num(g_pInvisibilityMenuCvars[i])
if(get_user_flags(id) & DISC_FLAG)
{
Price = floatround(Price*0.8)
if(Price > 100)
bal = (Price % 100)
Price = Price - bal + 100
}
formatex(PriceString, charsmax(PriceString), "- \y$%d", Price)
formatex(Items, charsmax(Items), "%s%s %s", Price > 0 ? "\w" : "\d", g_szInvisibilityMenu[i], Price > 0 ? PriceString : "")
num_to_str(i, Position, charsmax(Position))
menu_additem(Inv_Menu, Items, Position)
}
menu_setprop(Inv_Menu, MPROP_NEXTNAME, "Далее")
menu_setprop(Inv_Menu, MPROP_BACKNAME, "Назад")
menu_setprop(Inv_Menu, MPROP_EXITNAME, "Выход")
menu_setprop(Inv_Menu, MPROP_EXIT, MEXIT_ALL)
new iItems = menu_items(Inv_Menu)
if (!get_pcvar_num(g_pMenuEnableCvars[1]))
{
client_print_c(id, "%L", id, "SHOP_INVIS_OFF")
return PLUGIN_HANDLED
}
else if(!iItems)
{
client_print_c(id, "У вас максимальная невидимость")
return PLUGIN_HANDLED
}
else
menu_display(id, Inv_Menu, 0)
}
case 4:
{
new Speed_Menu = menu_create("\rМеню скорости", "SpeedMenu_Handler")
new Items[40], PriceString[40], Position[3], Price
for (new i = 0; i < sizeof(g_szSpeedMenu); i++)
{
if(g_iHasSpeed[id] != -1 && i >= g_iHasSpeed[id])
continue
Price = get_pcvar_num(g_pSpeedMenuCvars[i])
if(get_user_flags(id) & DISC_FLAG)
{
Price = floatround(Price*0.8)
if(Price > 100)
bal = (Price % 100)
Price = Price - bal + 100
}
formatex(PriceString, charsmax(PriceString), "- \y$%d", Price)
formatex(Items, charsmax(Items), "%s%s %s", Price > 0 ? "\w" : "\d", g_szSpeedMenu[i], Price > 0 ? PriceString : "")
num_to_str(i, Position, charsmax(Position))
menu_additem(Speed_Menu, Items, Position)
}
menu_setprop(Speed_Menu, MPROP_NEXTNAME, "Далее")
menu_setprop(Speed_Menu, MPROP_BACKNAME, "Назад")
menu_setprop(Speed_Menu, MPROP_EXITNAME, "Выход")
menu_setprop(Speed_Menu, MPROP_EXIT, MEXIT_ALL)
new iItems = menu_items(Speed_Menu)
if (!get_pcvar_num(g_pMenuEnableCvars[5]))
{
client_print_c(id, "%L", id, "SHOP_SPEED_OFF")
return PLUGIN_HANDLED
}
else if(!iItems)
{
client_print_c(id, "У вас максимальная скорость")
return PLUGIN_HANDLED
}
else
menu_display(id, Speed_Menu, 0)
}
case 5:
{
new Ts_Menu = menu_create("\rОружие", "TeMenu_Handler")
new Items[40], PriceString[40], Position[3]
for (new i = 0; i < sizeof(g_szTGunsMenu); i++)
{
Price = get_pcvar_num(g_pTeGunsMenuCvars[i])
if(get_user_flags(id) & DISC_FLAG)
{
Price = floatround(Price*0.8)
if(Price > 100)
bal = (Price % 100)
Price = Price - bal + 100
}
formatex(PriceString, charsmax(PriceString), "- \y$%d", Price)
formatex(Items, charsmax(Items), "%s%s %s", Price > 0 ? "\w" : "\d", g_szTGunsMenu[i], Price > 0 ? PriceString : "")
num_to_str(i, Position, charsmax(Position))
menu_additem(Ts_Menu, Items, Position)
}
menu_setprop(Ts_Menu, MPROP_NEXTNAME, "Далее")
menu_setprop(Ts_Menu, MPROP_BACKNAME, "Назад")
menu_setprop(Ts_Menu, MPROP_EXITNAME, "Выход")
menu_setprop(Ts_Menu, MPROP_EXIT, MEXIT_ALL)
if (!get_pcvar_num(g_pMenuEnableCvars[0]))
{
client_print_c(id, "%L", id, "SHOP_T_OFF")
return PLUGIN_HANDLED
}
else
menu_display(id, Ts_Menu, 0)
}
}
menu_destroy(Menu)
return PLUGIN_HANDLED
}
public TeMenu_Handler(id, Tts_Menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(Tts_Menu)
return PLUGIN_HANDLED
}
new Data[6], Name[64]
new Access, Callback;
menu_item_getinfo(Tts_Menu, item, Access, Data, 5, Name, 63, Callback)
new Key = str_to_num(Data)
new Money = get_user_money(id)
new Pcvar = get_pcvar_num(g_pTeGunsMenuCvars[Key])
new bal
if(get_user_flags(id) & DISC_FLAG)
{
Pcvar = floatround(Pcvar*0.8)
if(Pcvar > 100)
bal = (Pcvar % 100)
Pcvar = Pcvar - bal + 100
}
if (!Pcvar)
{
client_print_c(id, "%L", id, "SHOP_ITEM_DISABLED")
//client_cmd ( id, "spk dmsentries/error.wav" )
return PLUGIN_HANDLED
}
if (Money < Pcvar)
{
client_print_c(id, "%L", id, "SHOP_ITEM_MONEY")
//client_cmd ( id, "spk dmsentries/error.wav" )
} else
{
client_print_c(id, "%L", id, "SHOP_ITEM_BUY", g_szTGunsMenu[Key])
//client_cmd ( id, "spk dmsentries/menu_click.wav" )
set_user_money(id, Money-Pcvar)
give_item(id, g_szTGunsWeapons[Key])
ExecuteHamB(Ham_GiveAmmo, id, g_iTGunsLoad[Key], g_szTGunsAmmo[Key], g_iTGunsMaxAmmo[Key])
}
menu_destroy(Tts_Menu)
return PLUGIN_HANDLED
}
public InvisibilityMenu_Handler(id, Inv_Menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(Inv_Menu)
return PLUGIN_HANDLED
}
new Data[6], Name[64]
new Access, Callback;
menu_item_getinfo(Inv_Menu, item, Access, Data, 5, Name, 63, Callback)
new Key = str_to_num(Data)
new Money = get_user_money(id)
new Pcvar = get_pcvar_num(g_pInvisibilityMenuCvars[Key])
new bal
if(get_user_flags(id) & DISC_FLAG)
{
Pcvar = floatround(Pcvar*0.8)
if(Pcvar > 100)
bal = (Pcvar % 100)
Pcvar = Pcvar - bal + 100
}
if (!Pcvar)
{
client_print_c(id, "%L", id, "SHOP_ITEM_DISABLED")
//client_cmd ( id, "spk dmsentries/error.wav" )
return PLUGIN_HANDLED
}
if (Money < Pcvar)
{
client_print_c(id, "%L", id, "SHOP_ITEM_MONEY")
//client_cmd ( id, "spk dmsentries/error.wav" )
} else
{
g_iHasInvis[id] = Key
client_print_c(id, "%L", id, "SHOP_ITEM_BUY", g_szInvisibilityMenu[Key])
//client_cmd ( id, "spk dmsentries/menu_click.wav" )
set_user_money(id, Money-Pcvar)
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, g_iInvisibilityLevel[Key])
}
menu_destroy(Inv_Menu)
return PLUGIN_HANDLED
}
public GravityMenu_Handler(id, Grav_Menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(Grav_Menu)
return PLUGIN_HANDLED
}
new Data[6], Name[64]
new Access, Callback;
menu_item_getinfo(Grav_Menu, item, Access, Data, 5, Name, 63, Callback)
new Key = str_to_num(Data)
new Money = get_user_money(id)
new Pcvar = get_pcvar_num(g_pGravityMenuCvars[Key])
new bal
if(get_user_flags(id) & DISC_FLAG)
{
Pcvar = floatround(Pcvar*0.8)
if(Pcvar > 100)
bal = (Pcvar % 100)
Pcvar = Pcvar - bal + 100
}
if (!Pcvar)
{
client_print_c(id, "%L", id, "SHOP_ITEM_DISABLED")
//client_cmd ( id, "spk dmsentries/error.wav" )
return PLUGIN_HANDLED
}
if (Money < Pcvar)
{
client_print_c(id, "%L", id, "SHOP_ITEM_MONEY")
//client_cmd ( id, "spk dmsentries/error.wav" )
}
else
{
g_iHasGravity[id] = Key
client_print_c(id, "%L", id, "SHOP_ITEM_BUY", g_szGravityMenu[Key])
//client_cmd ( id, "spk dmsentries/menu_click.wav" )
set_user_money(id, Money-Pcvar)
set_user_gravity(id, (g_flGravityLevel[Key] / get_pcvar_float(g_pGravityCvarPointer)))
}
menu_destroy(Grav_Menu)
return PLUGIN_HANDLED
}
public HealthMenu_Handler(id, Hp_Menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(Hp_Menu)
return PLUGIN_HANDLED
}
new Data[6], Name[64]
new Access, Callback
menu_item_getinfo(Hp_Menu, item, Access, Data, 5, Name, 63, Callback)
new Key = str_to_num(Data)
new Money = get_user_money(id)
new Pcvar = get_pcvar_num(g_pHealthMenuCvars[Key])
new Health = get_user_health(id)
new bal
if(get_user_flags(id) & DISC_FLAG)
{
Pcvar = floatround(Pcvar*0.8)
if(Pcvar > 100)
bal = (Pcvar % 100)
Pcvar = Pcvar - bal + 100
}
if (!Pcvar)
{
client_print_c(id, "%L", id, "SHOP_ITEM_DISABLED")
//client_cmd ( id, "spk dmsentries/error.wav" )
return PLUGIN_HANDLED
}
if(Health >= MAX_HP)
{
client_print_c(id, "У вас максимальное кол-во ХП")
//client_cmd ( id, "spk dmsentries/error.wav" )
return PLUGIN_HANDLED
}
if (Money < Pcvar)
{
client_print_c(id, "%L", id, "SHOP_ITEM_MONEY")
//client_cmd ( id, "spk dmsentries/error.wav" )
} else
{
client_print_c(id, "%L", id, "SHOP_ITEM_BUY", g_szHealthMenu[Key])
//client_cmd ( id, "spk dmsentries/menu_click.wav" )
if(Health+g_iHealthLevel[Key] > MAX_HP)
{
set_user_health(id, MAX_HP)
set_user_money(id, Money-Pcvar)
return PLUGIN_HANDLED
}
set_user_money(id, Money-Pcvar)
set_user_health(id, Health+g_iHealthLevel[Key])
}
menu_destroy(Hp_Menu)
return PLUGIN_HANDLED
}
public ArmorMenu_Handler(id, Ap_Menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(Ap_Menu)
return PLUGIN_HANDLED
}
new Data[6], Name[64]
new Access, Callback
menu_item_getinfo(Ap_Menu, item, Access, Data, 5, Name, 63, Callback)
new Key = str_to_num(Data)
new Money = get_user_money(id)
new Pcvar = get_pcvar_num(g_pArmorMenuCvars[Key])
new Armor = get_user_armor(id)
new bal
if(get_user_flags(id) & DISC_FLAG)
{
Pcvar = floatround(Pcvar*0.8)
if(Pcvar > 100)
bal = (Pcvar % 100)
Pcvar = Pcvar - bal + 100
}
if (!Pcvar)
{
client_print_c(id, "%L", id, "SHOP_ITEM_DISABLED")
//client_cmd ( id, "spk dmsentries/error.wav" )
return PLUGIN_HANDLED
}
if(Armor >= MAX_AP)
{
client_print_c(id, "У вас максимальное кол-во брони")
//client_cmd ( id, "spk dmsentries/error.wav" )
return PLUGIN_HANDLED
}
if (Money < Pcvar)
{
client_print_c(id, "%L", id, "SHOP_ITEM_MONEY")
//client_cmd ( id, "spk dmsentries/error.wav" )
} else
{
client_print_c(id, "%L", id, "SHOP_ITEM_BUY", g_szArmorMenu[Key])
//client_cmd ( id, "spk dmsentries/menu_click.wav" )
if(Armor+g_iArmorLevel[Key] > MAX_AP)
{
cs_set_user_armor(id,MAX_AP,CS_ARMOR_VESTHELM)
set_user_money(id, Money-Pcvar)
return PLUGIN_HANDLED
}
set_user_money(id, Money-Pcvar)
cs_set_user_armor(id,Armor+g_iArmorLevel[Key],CS_ARMOR_VESTHELM)
}
menu_destroy(Ap_Menu)
return PLUGIN_HANDLED
}
public SpeedMenu_Handler(id, Speed_Menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(Speed_Menu)
return PLUGIN_HANDLED
}
new Data[6], Name[64]
new Access, Callback;
menu_item_getinfo(Speed_Menu, item, Access, Data, 5, Name, 63, Callback)
new Key = str_to_num(Data)
new Money = get_user_money(id)
new Pcvar = get_pcvar_num(g_pSpeedMenuCvars[Key])
new bal
if(get_user_flags(id) & DISC_FLAG)
{
Pcvar = floatround(Pcvar*0.8)
if(Pcvar > 100)
bal = (Pcvar % 100)
Pcvar = Pcvar - bal + 100
}
if (!Pcvar)
{
client_print_c(id, "%L", id, "SHOP_ITEM_DISABLED")
//client_cmd ( id, "spk dmsentries/error.wav" )
return PLUGIN_HANDLED
}
if (Money < Pcvar)
{
client_print_c(id, "%L", id, "SHOP_ITEM_MONEY")
//client_cmd ( id, "spk dmsentries/error.wav" )
} else
{
g_iHasSpeed[id] = Key
client_print_c(id, "%L", id, "SHOP_ITEM_BUY", g_szSpeedMenu[Key])
//client_cmd ( id, "spk dmsentries/menu_click.wav" )
set_user_money(id, Money-Pcvar)
set_user_maxspeed(id, g_flSpeedLevel[Key])
}
menu_destroy(Speed_Menu)
return PLUGIN_HANDLED
}
/*===============================================================================
=
[Forwards]
================================================================================
=*/
public Fwd_PlayerSpawn_Post(id)
{
if (is_user_alive(id))
{
set_user_rendering(id)
set_user_gravity(id, 1.0)
set_user_maxspeed(id, 250.0)
g_iHasSpeed[id] = -1
g_iHasGravity[id] = -1
g_iHasInvis[id] = -1
}
}
public Event_CurWeapon(id)
{
if (!is_user_alive(id))
return
switch (g_iHasSpeed[id])
{
case 0: set_user_maxspeed(id, 420.0)
case 1: set_user_maxspeed(id, 380.0)
case 2: set_user_maxspeed(id, 340.0)
case 3: set_user_maxspeed(id, 300.0)
case 4: set_user_maxspeed(id, 260.0)
}
}
/*===============================================================================
=
[Stocks]
================================================================================
=*/
stock primary_wpn_drop(index)
{
new weapons[32], num, Weapon
get_user_weapons(index, weapons, num)
for (new i = 0; i < num; i++)
{
Weapon = weapons[i]
if (PRIMARY_WEAPONS_BITSUM & (1<<Weapon))
{
static wname[32]
get_weaponname(Weapon, wname, sizeof wname - 1)
engclient_cmd(index, "drop", wname)
}
}
}
stock secondary_wpn_drop(index)
{
new weapons[32], num, Weapon
get_user_weapons(index, weapons, num)
for (new i = 0; i < num; i++)
{
Weapon = weapons[i]
if (!(PRIMARY_WEAPONS_BITSUM & (1<<Weapon)))
{
static wname[32]
get_weaponname(Weapon, wname, sizeof wname - 1)
engclient_cmd(index, "drop", wname)
}
}
}
stock client_print_c(index, const Msg[], {Float, Sql, Result,_}:...)
{
if (!is_user_connected(index))
return;
new Buffer[512], Buffer2[512], Prefix[32]
get_pcvar_string(g_pCvarPrefix, Prefix, charsmax(Prefix))
formatex(Buffer2, charsmax(Buffer2), "^x04%s ^x01%s", Prefix, Msg);
vformat(Buffer, charsmax(Buffer), Buffer2, 3);
message_begin(MSG_ONE_UNRELIABLE, g_iMsgSayText, _, index);
write_byte(index);
write_string(Buffer);
message_end();
}