I'm getting this annoying error, so firstly it was showing line 160 I deleted it now 159, like seriously? No idea where I've mistaken the cvar.
PHP Code:
//////////////////////////////////////////////////////////////////////////////////////////
/* INCLUDES & DEFINES */
//////////////////////////////////////////////////////////////////////////////////////////
#include <amxmodx>
#include <fun>
#include <stripweapons>
#include <fakemeta>
#include <engine>
#include <dhudmessage>
#include <cstrike>
#include <hamsandwich>
#include <xs>
#define PLUGIN "Elite Surf Mod [ESM]"
#define VERSION "1.0"
#define AUTHOR "DoNii"
#define IsValidPlayer(%1) (1<=%1<=g_maxplayers)
#define DMG_GRENADE ( 1 << 24 ) // grenade bits
#define RefreshPlayersList() get_players(g_iPlayers, g_iNum, g_szAliveFlags)
#define MAXPLAYERS 32
//////////////////////////////////////////////////////////////////////////////////////////
/* VARIABLES */
//////////////////////////////////////////////////////////////////////////////////////////
new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame
/* ..... Rewards ..... */
/////////////////////////
new speed_used[33];
new gravity_used[33];
new godmode_used[33];
new invisibility_used[33];
new deagle_used[33];
new ak47_used[33];
new armor_used[33];
new hp_used[33];
new norecoil_used[33];
new sniper_used[33];
new ak47_zoom[33];
new deagle_zoom[33];
/////////////////////////
// Classes
new g_player_class_soldier[33];
new g_player_class_bomber[33];
new g_player_class_knifer[33];
new g_player_class_sniper[33];
// CVARS
////////////////////
new esm_airaccelerate
new esm_airmove
new esm_shoot_buttons
// shop
new esm_shop_use
new esm_shop_gravity_price
new esm_shop_speed_price
new esm_shop_godmode_price
new esm_shop_godmode_duration
new esm_shop_invisibility_price
new esm_shop_invisibility_duration
new esm_shop_goldendeagle_price
new esm_shop_goldendeagle_damage
new esm_shop_goldenak47_price
new esm_shop_goldenak47_damage
new esm_shop_goldendeagle_zoom
new esm_shop_goldenak47_zoom
// vshop
new esm_vshop_sniper_damage
new esm_vshop_sniper_price
// gameplay
new esm_parachute
new esm_semiclip
new esm_ignore_falldamage
new esm_strip_weapons
new esm_no_owner_damage
new esm_damage_print
new esm_knife_custom
////////////////////
new g_iPlayers[MAXPLAYERS];
new g_iNum;
new g_iPlayer;
new i;
new g_player_has_vip[33];
new g_maxplayers
new const g_szAliveFlags[] = "a"
static TASK_GODMODE = 222
static TASK_INVISIBILITY = 333
/* Special Weapon Models */
new const GOLDEN_DEAGLE_V[64] = "models/esm/v_golden_deagle.mdl"
new const GOLDEN_DEAGLE_P[64] = "models/esm/p_golden_deagle.mdl"
new const GOLDEN_AK47_V[64] = "models/esm/v_golden_ak47.mdl"
new const GOLDEN_AK47_P[64] = "models/esm/p_golden_ak47.mdl"
new const SNIPER_V[64] = "models/esm/sniper_v.mdl"
new const SNIPER_P[64] = "models/esm/sniper_p.mdl"
new const KNIFE_V[64] = "models/esm/knife_new_v.mdl"
new const KNIFE_P[64] = "models/esm/knife_new_p.mdl"
new const SOLDIER_CLASS[64] = "models/esm/soldier_model.mdl"
new const BOMBER_CLASS[64] = "models/esm/bomber_model.mdl"
new const KNIFER_CLASS[64] = "models/esm/knifer_model.mdl"
new const SNIPER_CLASS[64] = "models/esm/sniper_model.mdl"
new Float: cl_pushangle[33][3]
const WEAPONS_BITSUM = (1<<CSW_KNIFE|1<<CSW_HEGRENADE|1<<CSW_FLASHBANG|1<<CSW_SMOKEGRENADE|1<<CSW_C4)
new const surf_shop_cmds[][] = {
"say shop",
"say /shop",
"say_team shop",
"say_team /shop"
}
new const vip_shop_cmds[][] = {
"say vshop",
"say /vshop",
"say_team vshop",
"say_team /vshop"
}
new const func_list[][] = {
"func_button",
"func_door_rotating",
"func_door"
}
//////////////////////////////////////////////////////////////////////////////////////////
/* Main */
//////////////////////////////////////////////////////////////////////////////////////////
public plugin_init() {
// Plugin register
register_plugin(PLUGIN, VERSION, AUTHOR)
g_maxplayers = get_maxplayers()
// Set Cvars
set_cvar_num("sv_airaccelerate", get_pcvar_num(esm_airaccelerate))
set_cvar_num("sv_airmove", get_pcvar_num(esm_airmove))
/* Cvar List */
// server
esm_airaccelerate = register_cvar("esm_airaccelerate", "100") // air accelerate cvar
esm_airmove = register_cvar("esm_airmove", "100") // air move cvar
// shop
esm_shop_use = register_cvar("esm_shop_use", "2") // who can use shop, 0 - CT only | 1 - T only | 2 - Both (CT, T)
esm_shop_gravity_price = register_cvar("esm_shop_gravity_price", "2000") // gravity price
esm_shop_speed_price = register_cvar("esm_shop_speed_price", "4000") // speed price
esm_shop_godmode_price = register_cvar("esm_shop_godmode_price", "6000") // godmode price
esm_shop_godmode_duration = register_cvar("esm_shop_godmode_duration", "10.0") // godmode duration
esm_shop_invisibility_price = register_cvar("esm_shop_invisibility_price", "8000") // invisibility price
esm_shop_invisibility_duration = register_cvar("esm_shop_invisibility_duration", "5.0") // invisibility duration
esm_shop_goldendeagle_price = register_cvar("esm_shop_goldendeagle_price", "10000") // golden deagle price
esm_shop_goldendeagle_damage = register_cvar("esm_shop_goldendeagle_damage", "2") // golden deagle damage
esm_shop_goldendeagle_zoom = register_cvar("esm_goldendeagle_zoom", "1") // zoom for golden deagle, 0 - off | 1 - on
esm_shop_goldenak47_price = register_cvar("esm_shop_goldenak47_price", "12000") // golden ak47 price
esm_shop_goldenak47_damage = register_cvar("esm_shop_goldenak47_damage", "3") // golden ak47 damage
esm_shop_goldenak47_zoom = register_cvar("esm_shop_goldenak47_zoom ", "1") // zoom for golden ak47, 0 - off | 1 - on
// vshop
esm_vshop_sniper_damage = register_cvar("esm_vshop_sniper_damage", "4") // VIP Shop sniper damage multiplier
esm_vshop_sniper_price = register_cvar("esm_vshop_sniper_price", "10000") // sniper price
// gameplay
esm_shoot_buttons = register_cvar("esm_shoot_buttons", "1") // open jail by shooting button, 0 - off | 1 - on
esm_parachute = register_cvar("esm_parachute", "1") // parachute , 0 - off | 1 - on
esm_semiclip = register_cvar("esm_semiclip", "1") // semiclip, 0 - off | 1 - on
esm_ignore_falldamage = register_cvar("esm_ignore_falldamage", "1") // 0 - allow fall damage | 1 - no fall damage
esm_strip_weapons = register_cvar("esm_strip_weapons", "1") // strip weapons on spawn, 0 - off | 1 - on
esm_no_owner_damage = register_cvar("esm_no_owner_damage", "1") // no damage to HE grenade owner, 0 - off | 1 - on
esm_damage_print = register_cvar("esm_damage_print", "1") // print damage, 0 - off | 1 - chat | 2 - HUD | 3 - DHUD
esm_knife_custom = register_cvar("esm_knife_custom", "1") // enable custom knife models, 0 - off | 1 - on
// Ham Hooks
for ( new i; i < sizeof func_list; i++ )
RegisterHam(Ham_TraceAttack, func_list[i], "fw_ButtonFunc")
new weapon_name[24]
for (new i = 1; i <= 30; i++)
{
if (!(WEAPONS_BITSUM & 1 << i) && get_weaponname(i, weapon_name, 23))
{
RegisterHam(Ham_Weapon_PrimaryAttack, weapon_name, "fw_Weapon_PrimaryAttack_Pre")
RegisterHam(Ham_Weapon_PrimaryAttack, weapon_name, "fw_Weapon_PrimaryAttack_Post", 1)
}
}
RegisterHam(Ham_Item_Deploy, "weapon_deagle", "fw_HamDeployDeagle", 1)
RegisterHam(Ham_Item_Deploy, "weapon_ak47", "fw_HamDeployAk47", 1)
RegisterHam(Ham_Item_Deploy, "weapon_awp", "fw_HamDeploySniper", 1)
RegisterHam(Ham_Item_Deploy, "weapon_knife", "fw_HamDeployKnife", 1)
RegisterHam(Ham_Spawn, "player", "fw_HamSpawnPost", 1)
RegisterHam(Ham_TakeDamage, "player", "fw_HamTakeDamagePre")
RegisterHam(Ham_Player_ResetMaxSpeed, "player", "playerResetMaxSpeed", 1)
RegisterHam(Ham_Player_PreThink, "player", "Ham_CBasePlayer_PreThink_Post", 1)
// Client cmds
for ( new i; i < sizeof surf_shop_cmds; i++ )
register_clcmd(surf_shop_cmds[i], "esm_shop_open")
for ( new i; i < sizeof vip_shop_cmds; i++ )
register_clcmd(vip_shop_cmds[i], "vip_shop_open")
register_clcmd("chooseteam", "main_menu")
// Fakemeta forwards
register_forward(FM_CmdStart, "fw_CmdStart")
register_forward(FM_AddToFullPack, "FM_client_AddToFullPack_Post", 1)
}
//////////////////////////////////////////////////////////////////////////////////////////
/* PRECACHING */
//////////////////////////////////////////////////////////////////////////////////////////
public plugin_precache() {
precache_model(GOLDEN_DEAGLE_V)
precache_model(GOLDEN_DEAGLE_P)
precache_model(GOLDEN_AK47_V)
precache_model(GOLDEN_AK47_P)
precache_model(SNIPER_V)
precache_model(SNIPER_P)
precache_model(KNIFE_V)
precache_model(KNIFE_P)
precache_model(SOLDIER_CLASS)
precache_model(BOMBER_CLASS)
precache_model(KNIFER_CLASS)
precache_model(SNIPER_CLASS)
}
//////////////////////////////////////////////////////////////////////////////////////////
/* STOCKS */
//////////////////////////////////////////////////////////////////////////////////////////
SetDeagleModel(id) {
set_pev(id, pev_viewmodel2, GOLDEN_DEAGLE_V)
set_pev(id, pev_weaponmodel2, GOLDEN_DEAGLE_P)
}
SetAk47Model(id) {
set_pev(id, pev_viewmodel2, GOLDEN_AK47_V)
set_pev(id, pev_weaponmodel2, GOLDEN_AK47_P)
}
SetSniperModel(id) {
set_pev(id, pev_viewmodel2, SNIPER_V)
set_pev(id, pev_weaponmodel2, SNIPER_P)
}
SetKnifeModel(id) {
set_pev(id, pev_viewmodel2, KNIFE_V)
set_pev(id, pev_weaponmodel2, KNIFE_P)
}
SetSoldierClass(id) {
g_player_class_soldier[id] = true
g_player_class_bomber[id] = false
g_player_class_knifer[id] = false
g_player_class_sniper[id] = false
}
SetBomberClass(id) {
g_player_class_soldier[id] = false
g_player_class_bomber[id] = true
g_player_class_knifer[id] = false
g_player_class_sniper[id] = false
}
SetKniferClass(id) {
g_player_class_soldier[id] = false
g_player_class_bomber[id] = false
g_player_class_knifer[id] = true
g_player_class_sniper[id] = false
}
SetSniperClass(id) {
g_player_class_soldier[id] = false
g_player_class_bomber[id] = false
g_player_class_knifer[id] = false
g_player_class_sniper[id] = true
}
SetClassModel(id) {
if(g_player_class_soldier[id]) cs_set_user_model(id, SOLDIER_CLASS)
else if(g_player_class_bomber[id]) cs_set_user_model(id, BOMBER_CLASS)
else if(g_player_class_knifer[id]) cs_set_user_model(id, KNIFER_CLASS)
else if(g_player_class_sniper[id]) cs_set_user_model(id, SNIPER_CLASS)
}
SetClassAbilities(id) {
new CsTeams:team = cs_get_user_team(id)
if(g_player_class_soldier[id]) {
set_user_health(id, 150)
strip_user_weapons(id)
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
if(team == CS_TEAM_T) {
give_item(id, "weapon_ak47")
cs_set_user_bpammo(id, CSW_AK47, 90)
}
else if(team == CS_TEAM_CT) {
give_item(id, "weapon_m4a1");
cs_set_user_bpammo(id, CSW_M4A1, 90)
}
set_user_rendering(id, kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 60);
}
else if(g_player_class_bomber[id]) {
set_user_health(id, 200)
strip_user_weapons(id)
give_item(id, "weapon_hegrenade")
cs_set_user_bpammo(id, CSW_HEGRENADE, 50)
set_user_rendering(id, kRenderFxGlowShell, 255, 0, 0, kRenderNormal, 60);
}
else if(g_player_class_knifer[id]) {
set_user_health(id, 250)
strip_user_weapons(id)
give_item(id, "weapon_knife")
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha,40)
}
else if(g_player_class_sniper[id]) {
set_user_health(id, 300)
strip_user_weapons(id)
give_item(id, "weapon_awp")
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 255, kRenderNormal, 60);
}
}
ResetVariables(id) {
speed_used[id] = false
gravity_used[id] = false
godmode_used[id] = false
invisibility_used[id] = false
deagle_used[id] = false
ak47_used[id] = false
armor_used[id] = false
hp_used[id] = false
norecoil_used[id] = false
sniper_used[id] = false
}
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<<wId));
return 1;
}
//////////////////////////////////////////////////////////////////////////////////////////
/* FUNCTIONS */
//////////////////////////////////////////////////////////////////////////////////////////
public esm_shop_open(id) {
new menu = menu_create( "\r[ESM] \wSurf Shop :", "surf_shop" );
menu_additem( menu, "\w[\r1 \wRound] \wLess Gravity \y[\r$\w2000\y]", "", 0 );
menu_additem( menu, "\w[\r1 \wRound] \wMore Speed \y[\r$\w4000\y]", "", 0 );
menu_additem( menu, "\w[\r5 \wSec] \wGodmode \y[\r$\w6000\y]", "", 0 );
menu_additem( menu, "\w[\r10 \wSec] \wInvisibility \y[\r$\w8000\y]", "", 0 );
menu_additem( menu, "\w[\r1 \wRound] \wGolden Deagle \y[\r$\w10000\y]", "", 0 );
menu_additem( menu, "\w[\r1 \wRound] \wGolden AK47 \y[\r$\w12000\y]", "", 0 );
menu_setprop( menu, MPROP_EXIT, MEXIT_ALL );
if(is_user_alive(id)) {
new CsTeams:team = cs_get_user_team(id)
if(get_pcvar_num(esm_shop_use) == 0) {
if(team != CS_TEAM_CT) {
client_print(id, print_chat, "[ESM] Only CT Players Can Use")
return PLUGIN_HANDLED;
}
else if(team == CS_TEAM_CT) {
menu_display( id, menu, 0 );
}
}
else if(get_pcvar_num(esm_shop_use) == 1) {
if(team != CS_TEAM_T) {
client_print(id, print_chat, "[ESM] Only T Players Can Use")
return PLUGIN_HANDLED;
}
else if(team == CS_TEAM_T) {
menu_display( id, menu, 0 );
}
}
else if(get_pcvar_num(esm_shop_use) == 2) {
if(team != CS_TEAM_SPECTATOR) {
menu_display( id, menu, 0 );
}
}
}
else {
client_print(id, print_chat, "[ESM] Dead Players Can't Use")
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public surf_shop( id, menu, item )
{
if(!is_user_alive(id)) {
client_print(id, print_chat, "[ESM] You Can't Buy While Dead")
menu_destroy(menu)
return PLUGIN_HANDLED;
}
switch( item )
{
case 0:
{
if(cs_get_user_money(id) >= get_pcvar_num(esm_shop_gravity_price) && !gravity_used[id]) {
set_user_gravity(id, 0.7)
client_print( id, print_chat, "[ESM] You Just Bought ^"Less Gravity^"" );
cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(esm_shop_gravity_price))
gravity_used[id] = true
}
else if(gravity_used[id]) {
client_print(id, print_chat, "[ESM] You Can Only Buy Once Per Round")
return PLUGIN_HANDLED;
}
else if(cs_get_user_money(id) < get_pcvar_num(esm_shop_gravity_price)) {
client_print(id, print_chat, "[ESM] Insufficient Funds")
return PLUGIN_HANDLED;
}
}
case 1:
{
if(cs_get_user_money(id) >= get_pcvar_num(esm_shop_speed_price) && !speed_used[id]) {
set_user_maxspeed(id, 350.0)
client_print( id, print_chat, "[ESM] You Just Bought ^"More Speed^"" );
cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(esm_shop_speed_price))
speed_used[id] = true
}
else if(speed_used[id]) {
client_print(id, print_chat, "[ESM] You Can Only Buy Once Per Round")
menu_destroy(menu)
return PLUGIN_HANDLED;
}
else if(cs_get_user_money(id) < get_pcvar_num(esm_shop_speed_price)) {
client_print(id, print_chat, "[ESM] Insufficient Funds")
menu_destroy(menu)
return PLUGIN_HANDLED;
}
}
case 2:
{
if(cs_get_user_money(id) >= get_pcvar_num(esm_shop_godmode_price) && !godmode_used[id]) {
set_user_godmode(id, 1)
client_print( id, print_chat, "[ESM] You Just Bought ^"Godmode^"" );
cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(esm_shop_godmode_price))
godmode_used[id] = true
set_task(get_pcvar_float(esm_shop_godmode_duration), "remove_godmode", id+TASK_GODMODE)
}
else if(godmode_used[id]) {
client_print(id, print_chat, "[ESM] You Can Only Buy Once Per Round")
menu_destroy(menu)
return PLUGIN_HANDLED;
}
else if(cs_get_user_money(id) < get_pcvar_num(esm_shop_godmode_price)) {
client_print(id, print_chat, "[ESM] Insufficient Funds")
return PLUGIN_HANDLED;
}
}
case 3:
{
if(cs_get_user_money(id) >= get_pcvar_num(esm_shop_invisibility_price) && !invisibility_used[id]) {
set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderTransAlpha,40)
client_print( id, print_chat, "[ESM] You Just Bought ^"Invisibility^"" );
cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(esm_shop_invisibility_price))
invisibility_used[id] = true
set_task(get_pcvar_float(esm_shop_invisibility_duration), "remove_invisibility", id+TASK_INVISIBILITY)
}
else if(invisibility_used[id]) {
client_print(id, print_chat, "[ESM] You Can Only Buy Once Per Round")
return PLUGIN_HANDLED;
}
else if(cs_get_user_money(id) < get_pcvar_num(esm_shop_invisibility_price)) {
client_print(id, print_chat, "[ESM] Insufficient Funds")
return PLUGIN_HANDLED;
}
}
case 4:
{
if(cs_get_user_money(id) >= get_pcvar_num(esm_shop_goldendeagle_price) && !deagle_used[id]) {
client_print( id, print_chat, "[ESM] You Just Bought ^"Golden Deagle^"" );
cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(esm_shop_goldendeagle_price))
deagle_used[id] = true
StripWeapons(id, Primary);
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
SetDeagleModel(id)
}
else if(deagle_used[id]) {
client_print(id, print_chat, "[ESM] You Can Only Buy Once Per Round")
return PLUGIN_HANDLED;
}
else if(cs_get_user_money(id) < get_pcvar_num(esm_shop_goldendeagle_price)) {
client_print(id, print_chat, "[ESM] Insufficient Funds")
return PLUGIN_HANDLED;
}
}
case 5:
{
if(cs_get_user_money(id) >= get_pcvar_num(esm_shop_goldenak47_price) && !ak47_used[id]) {
client_print( id, print_chat, "[ESM] You Just Bought ^"Golden AK47^"" );
cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(esm_shop_goldenak47_price))
ak47_used[id] = true
StripWeapons(id, Primary)
give_item(id, "weapon_ak47")
cs_set_user_bpammo(id, CSW_AK47, 90)
SetAk47Model(id)
}
else if(ak47_used[id]) {
client_print(id, print_chat, "[ESM] You Can Only Buy Once Per Round")
return PLUGIN_HANDLED;
}
else if(cs_get_user_money(id) < get_pcvar_num(esm_shop_goldenak47_price)) {
client_print(id, print_chat, "[ESM] Insufficient Funds")
return PLUGIN_HANDLED;
}
}
}
return PLUGIN_HANDLED;
}
public class_menu(id) {
new menu = menu_create( "\r[ESM] \wClass Menu:", "menu_handler_class" );
menu_additem( menu, "\wSoldier \r[M4A1|AK47 + Deagle]", "", 0 );
menu_additem( menu, "\wBomber \r[HE Grenades]", "", 0 );
menu_additem( menu, "\wKnifer \r[Ultra Knife]", "", 0 );
menu_additem( menu, "\wSniper \r[AWP + Glock|USP]", "", 0 );
menu_setprop( menu, MPROP_EXIT, MEXIT_ALL );
menu_display( id, menu, 0 );
}
public menu_handler_class(id, menu, item) {
if(is_user_alive(id)) {
switch( item )
{
case 0:
{
SetSoldierClass(id)
client_print(id, print_chat, "You Selected Soldier Class")
}
case 1:
{
SetBomberClass(id)
client_print(id, print_chat, "You Selected Bomber Class")
}
case 2:
{
SetKniferClass(id)
client_print(id, print_chat, "You Selected Knifer Class")
}
case 3:
{
SetSniperClass(id)
client_print(id, print_chat, "You Selected Sniper Class")
}
default:
{
SetSoldierClass(id)
client_print(id, print_chat, "You Didn't Select Any Class, Default Class Is Soldier Class")
}
}
}
menu_destroy( menu );
return PLUGIN_HANDLED;
}
public main_menu(id) {
new menu = menu_create( "\r[ESM] \wMain Menu:", "menu_handler_main" );
menu_additem( menu, "\wSurf Shop", "", 0 );
menu_additem( menu, "\rVIP \wMenu", "", 0 );
menu_additem( menu, "\rADMIN \wMenu^n^n", "", 0 );
menu_additem( menu, "\wHelp MOTD", "", 0 );
menu_setprop( menu, MPROP_EXIT, MEXIT_ALL );
menu_display( id, menu, 0 );
}
public menu_handler_main( id, menu, item )
{
switch( item ) {
case 0:
{
if(is_user_alive(id)) {
client_cmd(id, "say /shop")
}
}
case 1:
{
if(is_user_alive(id) && get_user_flags(id) & ADMIN_LEVEL_H) {
client_cmd(id, "say /vshop")
}
}
case 2:
{
if(is_user_alive(id) && get_user_flags(id) & ADMIN_KICK) {
client_cmd(id, "say /ashop")
}
}
case 3:
{
show_motd(id, "esm_motd.txt")
}
}
menu_destroy( menu );
return PLUGIN_HANDLED;
}
public FM_client_AddToFullPack_Post(es, e, iEnt, id, hostflags, player, pSet) {
if(esm_semiclip == 1) {
if( player && id != iEnt && get_orig_retval() && is_user_alive(id) )
{
set_es(es, ES_Solid, SOLID_NOT)
}
}
}
public Ham_CBasePlayer_PreThink_Post(id) {
if(esm_semiclip == 1) {
if( !is_user_alive(id) )
{
return
}
RefreshPlayersList()
for(i = 0; i<g_iNum; i++)
{
g_iPlayer = g_iPlayers[i]
if( id != g_iPlayer && get_user_team(id) == get_user_team(g_iPlayer))
{
set_pev(g_iPlayer, pev_solid, SOLID_NOT)
}
}
}
}
public client_PostThink(id) {
if(esm_semiclip == 1) {
if( !is_user_alive(id) )
{
return
}
RefreshPlayersList()
for(i = 0; i<g_iNum; i++)
{
g_iPlayer = g_iPlayers[i]
if( g_iPlayer != id && get_user_team(id) == get_user_team(g_iPlayer))
{
set_pev(g_iPlayer, pev_solid, SOLID_SLIDEBOX)
}
}
}
}
public playerResetMaxSpeed(id) {
if(speed_used[id])
{
set_user_maxspeed(id, 350.0)
}
}
public fw_HamDeployDeagle(ent) {
new id = get_pdata_cbase(ent, 41, 4);
if(deagle_used[id]) {
SetDeagleModel(id)
}
}
public fw_HamDeployAk47(ent) {
new id = get_pdata_cbase(ent, 41, 4);
if(ak47_used[id]) {
SetAk47Model(id)
}
}
public fw_HamDeploySniper(ent) {
new id = get_pdata_cbase(ent, 41, 4);
if(sniper_used[id]) {
SetSniperModel(id)
}
}
public fw_HamDeployKnife(ent) {
new id = get_pdata_cbase(ent, 41, 4);
if(get_pcvar_num(esm_knife_custom) == 1) {
SetKnifeModel(id)
}
}
public fw_HamSpawnPost(id) {
ResetVariables(id)
give_item(id, "weapon_knife") // because it strips everything
if(IsValidPlayer(id) && is_user_alive(id) && get_pcvar_num(esm_strip_weapons) == 1)
strip_user_weapons(id)
SetClassModel(id)
SetClassAbilities(id)
}
public fw_HamTakeDamagePre(victim, inflictor, attacker, Float:damage, damagebit) {
new Float:dmg = damage // thanks Jimmy !
if(IsValidPlayer(victim) && damagebit & DMG_FALL && get_pcvar_num(esm_ignore_falldamage) == 1) {
return HAM_SUPERCEDE // don't take damage
}
if(IsValidPlayer(attacker)) {
if(get_user_weapon(attacker) == CSW_DEAGLE && deagle_used[attacker]) {
dmg *= get_pcvar_num(esm_shop_goldendeagle_damage)
SetHamParamFloat(4, dmg)
}
if(IsValidPlayer(attacker) && get_user_weapon(attacker) == CSW_AK47 && ak47_used[attacker]) {
dmg *= get_pcvar_num(esm_shop_goldenak47_damage)
SetHamParamFloat(4, dmg)
}
if(IsValidPlayer(attacker) && get_user_weapon(attacker) == CSW_AWP && sniper_used[attacker]) {
dmg *= get_pcvar_num(esm_vshop_sniper_damage)
SetHamParamFloat(4, dmg)
}
if(attacker == victim && damagebit & DMG_GRENADE && get_pcvar_num(esm_no_owner_damage) == 1) {
return HAM_SUPERCEDE // no damage to owner of HE
}
if(attacker != victim && cs_get_user_team(attacker) != cs_get_user_team(victim)) {
if(get_pcvar_num(esm_damage_print) == 1) {
set_hudmessage(random_num(50,255), random_num(50,255), random_num(50,255), 0.50, random_float(0.30, 0.70), 0, 6.0, 0.5)
show_hudmessage(attacker, "%d", floatround(dmg))
}
else if(get_pcvar_num(esm_damage_print) == 2) {
set_dhudmessage(random_num(50,255), random_num(50,255), random_num(50,255), 0.50, random_float(0.30, 0.70), 0, 6.0, 0.5)
show_dhudmessage(attacker, "%d", floatround(dmg))
}
}
}
return HAM_IGNORED;
}
public fw_CmdStart(id, uc_handle)
{
if( !is_user_alive( id ) )
return PLUGIN_HANDLED
static Button, OldButtons;
Button = get_uc(uc_handle, UC_Buttons);
OldButtons = pev(id, pev_oldbuttons);
if( ( Button & IN_ATTACK2 ) && !(OldButtons & IN_ATTACK2 ) ) {
new szWeapID = get_user_weapon( id )
if( szWeapID == CSW_DEAGLE && get_pcvar_num(esm_shop_goldendeagle_zoom) == 1) {
if(deagle_used[id]) {
if(!deagle_zoom[id]) {
deagle_zoom[id] = true
cs_set_user_zoom( id, CS_SET_AUGSG552_ZOOM, 0 )
emit_sound( id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100 )
}
else {
deagle_zoom[id] = false
cs_set_user_zoom( id, CS_RESET_ZOOM, 0 )
}
}
}
else if( szWeapID == CSW_AK47 && get_pcvar_num(esm_shop_goldenak47_zoom) == 1) {
if(ak47_used[id]) {
if(!ak47_zoom[id]) {
ak47_zoom[id] = true
cs_set_user_zoom( id, CS_SET_AUGSG552_ZOOM, 0 )
emit_sound( id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100 )
}
else {
ak47_zoom[id] = false
cs_set_user_zoom( id, CS_RESET_ZOOM, 0 )
}
}
}
}
if((Button & IN_USE) && (OldButtons & IN_USE) && get_pcvar_num(esm_parachute) == 1)
{
static Float:fVelocity[3]; pev(id, pev_velocity, fVelocity);
if(fVelocity[2] < 0.0)
{
fVelocity[2] = -60.0
set_pev(id, pev_velocity, fVelocity)
}
}
return PLUGIN_CONTINUE;
}
public vip_shop_open(id) {
if(!g_player_has_vip[id]) {
client_print(id, print_chat, "[ESM] No Access To This Shop")
return PLUGIN_HANDLED;
}
new menu = menu_create( "\r[ESM] \wVIP Shop", "vip_shop_handler" );
menu_additem( menu, "\r+\w50 Armor \r[\w$\r1500\r]", "", 0 );
menu_additem( menu, "\r+\w50 HP \r[\w$\r3500\r]", "", 0 );
menu_additem( menu, "\r[\w1 Round\r] \wNo-Recoil \r[\w$\r6000\r] ", "", 0 );
menu_additem( menu, "\rHigh-Damage \wSniper \r[\w$\r10000\r]", "", 0 );
menu_setprop( menu, MPROP_EXIT, MEXIT_ALL );
if(is_user_alive(id)) {
menu_display( id, menu, 0 );
}
return PLUGIN_HANDLED;
}
public vip_shop_handler( id, menu, item )
{
if(!is_user_alive(id)) {
client_print(id, print_chat, "[VSHOP] Only Alive [VIP] Players Can Use")
menu_destroy( menu );
return PLUGIN_HANDLED;
}
new money = cs_get_user_money(id)
switch( item )
{
case 0:
{
if(money >= 1500 && !armor_used[id]) {
set_user_armor(id, get_user_armor(id) + 50)
client_print(id, print_chat, "You Just Bought +50 Armor")
}
else if(money < 1500) {
client_print(id, print_chat, "[VSHOP] Insufficient Funds")
return PLUGIN_HANDLED
}
else if(armor_used[id]) {
client_print(id, print_chat, "[VSHOP] You Can Only Buy Once A Round")
return PLUGIN_HANDLED
}
}
case 1:
{
if(money >= 3500 && !hp_used[id]) {
set_user_health(id, get_user_health(id) + 50)
client_print(id, print_chat, "You Just Bought +50 HP")
}
else if(money < 3500) {
client_print(id, print_chat, "[VSHOP] Insufficient Funds")
return PLUGIN_HANDLED
}
else if(hp_used[id]) {
client_print(id, print_chat, "[VSHOP] You Can Only Buy Once A Round")
return PLUGIN_HANDLED
}
}
case 2:
{
if(money >= 6000 && !norecoil_used[id]) {
norecoil_used[id] = true
client_print(id, print_chat, "You Just Bought No Recoil")
}
else if(money < 6000) {
client_print(id, print_chat, "[VSHOP] Insufficient Funds")
return PLUGIN_HANDLED
}
else if(norecoil_used[id]) {
client_print(id, print_chat, "[VSHOP] You Can Only Buy Once A Round")
return PLUGIN_HANDLED
}
}
case 3:
{
if(cs_get_user_money(id) >= get_pcvar_num(esm_vshop_sniper_price) && !sniper_used[id]) {
sniper_used[id] = true
client_print(id, print_chat, "You Just Bought High-Damage Sniper")
StripWeapons(id, Primary);
give_item(id, "weapon_awp")
cs_set_user_bpammo(id, CSW_AWP, 30)
SetSniperModel(id)
}
else if(money < get_pcvar_num(esm_vshop_sniper_price)) {
client_print(id, print_chat, "[VSHOP] Insufficient Funds")
return PLUGIN_HANDLED
}
else if(sniper_used[id]) {
client_print(id, print_chat, "[VSHOP] You Can Only Buy Once A Round")
return PLUGIN_HANDLED
}
}
}
menu_destroy( menu );
return PLUGIN_HANDLED;
}
public fw_ButtonFunc(iEnt, iAttacker, Float:fDamage, Float:vDirection[3], TraceHandle, iDamageBits ) {
if(get_pcvar_num(esm_shoot_buttons) == 1)
dllfunc(DLLFunc_Use, iEnt, iAttacker)
}
public client_putinserver(id) {
if(is_user_connected(id) && get_user_flags(id) & ADMIN_LEVEL_H) {
g_player_has_vip[id] = true
}
}
public client_disconnect(id) {
ResetVariables(id)
}
public fw_Weapon_PrimaryAttack_Pre(ent) {
new id = pev(ent, pev_owner)
if (IsValidPlayer(id) && is_user_alive(id) && norecoil_used[id])
{
pev(id, pev_punchangle, cl_pushangle[id])
}
return HAM_IGNORED;
}
public fw_Weapon_PrimaryAttack_Post(ent)
{
new id = pev(ent, pev_owner)
if (IsValidPlayer(id) && is_user_alive(id) && norecoil_used[id])
{
new Float: push[3]
pev(id, pev_punchangle, push)
xs_vec_sub(push, cl_pushangle[id], push)
xs_vec_mul_scalar(push, 0.0, push)
xs_vec_add(push, cl_pushangle[id], push)
set_pev(id, pev_punchangle, push)
}
return HAM_IGNORED;
}
public remove_godmode(id) {
id -= TASK_GODMODE
set_user_godmode(id, 0)
}
public remove_invisibility(id) {
id -= TASK_INVISIBILITY
set_user_rendering(id)
}