I edited this code of sonic but the buymenu doesn t open...... Yeah i'd change the author in me bcs i edited it a lot for another money system but doesn t seem to work...
PHP Code:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <zombieplague>
#define PLUGIN "[CSO] Buymenu By DeclineD"
#define VERSION "1.0"
#define AUTHOR "DeclineD"
native GetUserMoney(id)
native SetUserMoney(id, amount)
const PRIMARY_WEAPONS_BIT_SUM = (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)
const SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE)
const ZOMBIE_ALLOWED_WEAPONS_BITSUM = (1<<CSW_KNIFE)|(1<<CSW_HEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_C4)
const PEV_ADDITIONAL_AMMO = pev_iuser1
const OFFSET_AWM_AMMO = 377
const OFFSET_SCOUT_AMMO = 378
const OFFSET_PARA_AMMO = 379
const OFFSET_FAMAS_AMMO = 380
const OFFSET_M3_AMMO = 381
const OFFSET_USP_AMMO = 382
const OFFSET_FIVESEVEN_AMMO = 383
const OFFSET_DEAGLE_AMMO = 384
const OFFSET_P228_AMMO = 385
const OFFSET_GLOCK_AMMO = 386
const OFFSET_FLASH_AMMO = 387
const OFFSET_HE_AMMO = 388
const OFFSET_SMOKE_AMMO = 389
const OFFSET_C4_AMMO = 390
const OFFSET_CLIPAMMO = 51
const OFFSET_TEAM = 114
const OFFSET_DEATHS = 444
const OFFSET_MONEY = 115
//wtf is unknown item ??? P228 unknown he gren xm1014 bomb mac10 aug smogegren elites fivesveen ump45 krieg500 galil famas usp glock awp mp5 m249 m3 m4a1 tmp g3sg1 flashgren deagle krieg552 ak47 ? p90
new const AMMOOFFSET[] = { -1, OFFSET_P228_AMMO, -1, OFFSET_SCOUT_AMMO, OFFSET_HE_AMMO, OFFSET_M3_AMMO, OFFSET_C4_AMMO, OFFSET_USP_AMMO, OFFSET_FAMAS_AMMO, OFFSET_SMOKE_AMMO, OFFSET_GLOCK_AMMO, OFFSET_FIVESEVEN_AMMO, OFFSET_USP_AMMO, OFFSET_FAMAS_AMMO, OFFSET_FAMAS_AMMO, OFFSET_FAMAS_AMMO,
OFFSET_USP_AMMO, OFFSET_GLOCK_AMMO, OFFSET_AWM_AMMO, OFFSET_GLOCK_AMMO, OFFSET_PARA_AMMO, OFFSET_M3_AMMO, OFFSET_FAMAS_AMMO, OFFSET_GLOCK_AMMO, OFFSET_SCOUT_AMMO, OFFSET_FLASH_AMMO, OFFSET_DEAGLE_AMMO, OFFSET_FAMAS_AMMO, OFFSET_SCOUT_AMMO, -1, OFFSET_FIVESEVEN_AMMO }
new const BUYAMMO[] = { -1, 13, -1, 30, -1, 7, -1, 12, 30, -1, 30, 20, 12, 20, 30, 30,
12, 30, 10, 30, 50, 8, 30, 30, 20, -1, 7, 30, 30, -1, 50 }
new const MAXBPAMMO[] = { -1, 52, -1, 90, 1, 32, 1, 100, 90, 1, 120, 100, 100, 90, 90, 90,
100, 120, 30, 120, 200, 32, 90, 120, 90, 2, 35, 90, 90, -1, 100 }
new const AMMOTYPE[][] = { "", "357sig", "", "762nato", "", "buckshot", "", "45acp", "556nato", "", "9mm", "57mm", "45acp",
"556nato", "556nato", "556nato", "45acp", "9mm", "338magnum", "9mm", "556natobox", "buckshot",
"556nato", "9mm", "762nato", "", "50ae", "556nato", "762nato", "", "57mm" }
const OFFSET_LINUX = 5
const OFFSET_LINUX_WEAPONS = 4
new const sound_buyammo[] = "items/9mmclip1.wav"
new g_maxplayers
const TASK_BUYTIME_END = 100;
const TASK_KILL_ASSIST = 300;
new cvar_zp_cs_buytime;
new cvar_zp_cs_nemesis_canbuy
new cvar_zp_cs_survivor_canbuy
new cvar_antidotelimit, cvar_madnesslimit, cvar_infbomblimit, antidoteused, madnessused, infbombused
new cvar_amx_mode
new cvar_zp_cs_zombie_nodeathscore
new cvar_zp_cs_buytime_pistol_mult;
new cvar_zp_cs_buytime_shotgun_mult;
new cvar_zp_cs_buytime_smgun_mult;
new cvar_zp_cs_buytime_rifle_mult;
new cvar_zp_cs_buytime_sniper_mult;
new cvar_zp_cs_buytime_biggun_mult;
new cvar_zp_cs_buytime_gren_mult;
new zp_cs_buytime_passed;
new g_msgIconStatus, g_msgScoreInfo, g_msgSayText, g_msgDeathMsg, g_MsgSyncObj1;
new PlayerOldName[33][32]
new const sound_buysuit[] = "items/tr_kevlar.wav"
new zp_cs_buymenu;
new zp_cs_submenuid[33];
new zp_cs_buymenu_pistol;
new zp_cs_buymenu_shotgun;
new zp_cs_buymenu_smgun;
new zp_cs_buymenu_rifle;
new zp_cs_buymenu_sniper;
new zp_cs_buymenu_biggun;
new zp_cs_buymenu_equiph;
new zp_cs_buymenu_equipz;
new zp_cs_buymenu_ready;
new cvar_zp_cs_buymenu_pistol_name[99];
new cvar_zp_cs_buymenu_pistol_cost[99];
new cvar_zp_cs_buymenu_pistol_todo[99];
new cvar_zp_cs_buymenu_shotgun_name[99];
new cvar_zp_cs_buymenu_shotgun_cost[99];
new cvar_zp_cs_buymenu_shotgun_todo[99];
new cvar_zp_cs_buymenu_smgun_name[99];
new cvar_zp_cs_buymenu_smgun_cost[99];
new cvar_zp_cs_buymenu_smgun_todo[99];
new cvar_zp_cs_buymenu_rifle_name[99];
new cvar_zp_cs_buymenu_rifle_cost[99];
new cvar_zp_cs_buymenu_rifle_todo[99];
new cvar_zp_cs_buymenu_sniper_name[99];
new cvar_zp_cs_buymenu_sniper_cost[99];
new cvar_zp_cs_buymenu_sniper_todo[99];
new cvar_zp_cs_buymenu_biggun_name[99];
new cvar_zp_cs_buymenu_biggun_cost[99];
new cvar_zp_cs_buymenu_biggun_todo[99];
new cvar_zp_cs_buymenu_equiph_name[99];
new cvar_zp_cs_buymenu_equiph_cost[99];
new cvar_zp_cs_buymenu_equiph_todo[99];
new cvar_zp_cs_buymenu_equipz_name[99];
new cvar_zp_cs_buymenu_equipz_cost[99];
new cvar_zp_cs_buymenu_equipz_todo[99];
public plugin_precache()
{
precache_sound(sound_buyammo)
precache_sound(sound_buysuit)
}
public plugin_init()
{
register_plugin(PLUGIN,VERSION,AUTHOR)
register_dictionary("zp_cs_buymenu.txt")
g_msgIconStatus = get_user_msgid("StatusIcon")
g_msgScoreInfo = get_user_msgid("ScoreInfo")
g_msgSayText = get_user_msgid("SayText")
g_msgDeathMsg = get_user_msgid("DeathMsg")
g_MsgSyncObj1 = CreateHudSyncObj()
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
RegisterHam(Ham_Spawn, "player", "ham_PlayerSpawn_Post", 1)
RegisterHam(Ham_TakeDamage, "player", "ham_TakeDamage")
RegisterHam(Ham_Killed, "player", "ham_PlayerKilled")
register_forward(FM_ClientConnect, "fw_ClientConnect_Post",1)
register_forward(FM_ClientDisconnect, "fw_ClientDisconnect")
register_clcmd("buy", "clcmd_zp_cs_buymenu")
register_clcmd("zp_cs_buymenu", "clcmd_zp_cs_buymenu")
cvar_zp_cs_nemesis_canbuy = register_cvar("zp_cs_nemesis_canbuy", "0")
cvar_zp_cs_survivor_canbuy = register_cvar("zp_cs_survivor_canbuy", "0")
cvar_antidotelimit = get_cvar_pointer("zp_extra_antidote_limit")
cvar_madnesslimit = get_cvar_pointer("zp_extra_madness_limit")
cvar_infbomblimit = get_cvar_pointer("zp_extra_infbomb_limit")
cvar_zp_cs_buytime = get_cvar_pointer("mp_buytime")
cvar_zp_cs_buytime_pistol_mult = register_cvar("zp_cs_buytime_pistol_mult", "1")
cvar_zp_cs_buytime_shotgun_mult = register_cvar("zp_cs_buytime_shotgun_mult", "1")
cvar_zp_cs_buytime_smgun_mult = register_cvar("zp_cs_buytime_smgun_mult", "1")
cvar_zp_cs_buytime_rifle_mult = register_cvar("zp_cs_buytime_rifle_mult", "1")
cvar_zp_cs_buytime_biggun_mult = register_cvar("zp_cs_buytime_biggun_mult", "1")
cvar_zp_cs_buytime_gren_mult = register_cvar("zp_cs_buytime_gren_mult", "1")
cvar_zp_cs_zombie_nodeathscore = register_cvar("zp_cs_zombie_nodeathscore", "1");
cvar_amx_mode = get_cvar_pointer("amx_mode")
g_maxplayers = get_maxplayers()
zp_cs_buymenu_ready = false;
new strtemp[2];
new strtemp2[32];
for(new i=0;i<99;i++)
{
num_to_str(i+1, strtemp, 2)
strtemp2 = "zp_cs_buymenu_pistol___name";
if (i>8)
{
strtemp2[20]=strtemp[0];
strtemp2[21]=strtemp[1];
}
else
{
strtemp2[20]='0';
strtemp2[21]=strtemp[0];
}
cvar_zp_cs_buymenu_pistol_name[i] = register_cvar(strtemp2, "-");
num_to_str(i+1, strtemp, 2)
strtemp2 = "zp_cs_buymenu_pistol___cost";
if (i>8)
{
strtemp2[20]=strtemp[0];
strtemp2[21]=strtemp[1];
}
else
{
strtemp2[20]='0';
strtemp2[21]=strtemp[0];
}
cvar_zp_cs_buymenu_pistol_cost[i] = register_cvar(strtemp2, "0");
num_to_str(i+1, strtemp, 2)
strtemp2 = "zp_cs_buymenu_pistol___todo";
if (i>8)
{
strtemp2[20]=strtemp[0];
strtemp2[21]=strtemp[1];
}
else
{
strtemp2[20]='0';
strtemp2[21]=strtemp[0];
}
cvar_zp_cs_buymenu_pistol_todo[i] = register_cvar(strtemp2, "do_nothing");
}
for(new i=0;i<99;i++)
{
num_to_str(i+1, strtemp, 2)
strtemp2 = "zp_cs_buymenu_shotgun___name";
if (i>8)
{
strtemp2[21]=strtemp[0];
strtemp2[22]=strtemp[1];
}
else
{
strtemp2[21]='0';
strtemp2[22]=strtemp[0];
}
cvar_zp_cs_buymenu_shotgun_name[i] = register_cvar(strtemp2, "-");
num_to_str(i+1, strtemp, 2)
strtemp2 = "zp_cs_buymenu_shotgun___cost";
if (i>8)
{
strtemp2[21]=strtemp[0];
strtemp2[22]=strtemp[1];
}
else
{
strtemp2[21]='0';
strtemp2[22]=strtemp[0];
}
cvar_zp_cs_buymenu_shotgun_cost[i] = register_cvar(strtemp2, "0");
num_to_str(i+1, strtemp, 2)
strtemp2 = "zp_cs_buymenu_shotgun___todo";
if (i>8)
{
strtemp2[21]=strtemp[0];
strtemp2[22]=strtemp[1];
}
else
{
strtemp2[21]='0';
strtemp2[22]=strtemp[0];
}
cvar_zp_cs_buymenu_shotgun_todo[i] = register_cvar(strtemp2, "do_nothing");
}
for(new i=0;i<99;i++)
{
num_to_str(i+1, strtemp, 2)
strtemp2 = "zp_cs_buymenu_smgun___name";
if (i>8)
{
strtemp2[19]=strtemp[0];
strtemp2[20]=strtemp[1];
}
else
{
strtemp2[19]='0';
strtemp2[20]=strtemp[0];
}
cvar_zp_cs_buymenu_smgun_name[i] = register_cvar(strtemp2, "-");
num_to_str(i+1, strtemp, 2)
strtemp2 = "zp_cs_buymenu_smgun___cost";
if (i>8)
{
strtemp2[19]=strtemp[0];
strtemp2[20]=strtemp[1];
}
else
{
strtemp2[19]='0';
strtemp2[20]=strtemp[0];
}
cvar_zp_cs_buymenu_smgun_cost[i] = register_cvar(strtemp2, "0");
num_to_str(i+1, strtemp, 2)
strtemp2 = "zp_cs_buymenu_smgun___todo";
if (i>8)
{
strtemp2[19]=strtemp[0];
strtemp2[20]=strtemp[1];
}
else
{
strtemp2[19]='0';
strtemp2[20]=strtemp[0];
}
cvar_zp_cs_buymenu_smgun_todo[i] = register_cvar(strtemp2, "do_nothing");
}
for(new i=0;i<99;i++)
{
num_to_str(i+1, strtemp, 2)
strtemp2 = "zp_cs_buymenu_rifle___name";
if (i>8)
{
strtemp2[19]=strtemp[0];
strtemp2[20]=strtemp[1];
}
else
{
strtemp2[19]='0';
strtemp2[20]=strtemp[0];
}
cvar_zp_cs_buymenu_rifle_name[i] = register_cvar(strtemp2, "-");
num_to_str(i+1, strtemp, 2)
strtemp2 = "zp_cs_buymenu_rifle___cost";
if (i>8)
{
strtemp2[19]=strtemp[0];
strtemp2[20]=strtemp[1];
}
else
{
strtemp2[19]='0';
strtemp2[20]=strtemp[0];
}
cvar_zp_cs_buymenu_rifle_cost[i] = register_cvar(strtemp2, "0");
num_to_str(i+1, strtemp, 2)
strtemp2 = "zp_cs_buymenu_rifle___todo";
if (i>8)
{
strtemp2[19]=strtemp[0];
strtemp2[20]=strtemp[1];
}
else
{
strtemp2[19]='0';
strtemp2[20]=strtemp[0];
}
cvar_zp_cs_buymenu_rifle_todo[i] = register_cvar(strtemp2, "do_nothing");
}
for(new i=0;i<99;i++)
{
num_to_str(i+1, strtemp, 2)
strtemp2 = "zp_cs_buymenu_sniper___name";
if (i>8)
{
strtemp2[19]=strtemp[0];
strtemp2[20]=strtemp[1];
}
else
{
strtemp2[19]='0';
strtemp2[20]=strtemp[0];
}
cvar_zp_cs_buymenu_sniper_name[i] = register_cvar(strtemp2, "-");
num_to_str(i+1, strtemp, 2)
strtemp2 = "zp_cs_buymenu_sniper___cost";
if (i>8)
{
strtemp2[19]=strtemp[0];
strtemp2[20]=strtemp[1];
}
else
{
strtemp2[19]='0';
strtemp2[20]=strtemp[0];
}
cvar_zp_cs_buymenu_sniper_cost[i] = register_cvar(strtemp2, "0");
num_to_str(i+1, strtemp, 2)
strtemp2 = "zp_cs_buymenu_sniper___todo";
if (i>8)
{
strtemp2[19]=strtemp[0];
strtemp2[20]=strtemp[1];
}
else
{
strtemp2[19]='0';
strtemp2[20]=strtemp[0];
}
cvar_zp_cs_buymenu_sniper_todo[i] = register_cvar(strtemp2, "do_nothing");
}
for(new i=0;i<99;i++)
{
num_to_str(i+1, strtemp, 2)
strtemp2 = "zp_cs_buymenu_biggun___name";
if (i>8)
{
strtemp2[20]=strtemp[0];
strtemp2[21]=strtemp[1];
}
else
{
strtemp2[20]='0';
strtemp2[21]=strtemp[0];
}
cvar_zp_cs_buymenu_biggun_name[i] = register_cvar(strtemp2, "-");
num_to_str(i+1, strtemp, 2)
strtemp2 = "zp_cs_buymenu_biggun___cost";
if (i>8)
{
strtemp2[20]=strtemp[0];
strtemp2[21]=strtemp[1];
}
else
{
strtemp2[20]='0';
strtemp2[21]=strtemp[0];
}
cvar_zp_cs_buymenu_biggun_cost[i] = register_cvar(strtemp2, "0");
num_to_str(i+1, strtemp, 2)
strtemp2 = "zp_cs_buymenu_biggun___todo";
if (i>8)
{
strtemp2[20]=strtemp[0];
strtemp2[21]=strtemp[1];
}
else
{
strtemp2[20]='0';
strtemp2[21]=strtemp[0];
}
cvar_zp_cs_buymenu_biggun_todo[i] = register_cvar(strtemp2, "do_nothing");
}
for(new i=0;i<99;i++)
{
num_to_str(i+1, strtemp, 2)
strtemp2 = "zp_cs_buymenu_equiph___name";
if (i>8)
{
strtemp2[20]=strtemp[0];
strtemp2[21]=strtemp[1];
}
else
{
strtemp2[20]='0';
strtemp2[21]=strtemp[0];
}
cvar_zp_cs_buymenu_equiph_name[i] = register_cvar(strtemp2, "-");
num_to_str(i+1, strtemp, 2)
strtemp2 = "zp_cs_buymenu_equiph___cost";
if (i>8)
{
strtemp2[20]=strtemp[0];
strtemp2[21]=strtemp[1];
}
else
{
strtemp2[20]='0';
strtemp2[21]=strtemp[0];
}
cvar_zp_cs_buymenu_equiph_cost[i] = register_cvar(strtemp2, "0");
num_to_str(i+1, strtemp, 2)
strtemp2 = "zp_cs_buymenu_equiph___todo";
if (i>8)
{
strtemp2[20]=strtemp[0];
strtemp2[21]=strtemp[1];
}
else
{
strtemp2[20]='0';
strtemp2[21]=strtemp[0];
}
cvar_zp_cs_buymenu_equiph_todo[i] = register_cvar(strtemp2, "do_nothing");
}
for(new i=0;i<99;i++)
{
num_to_str(i+1, strtemp, 2)
strtemp2 = "zp_cs_buymenu_equipz___name";
if (i>8)
{
strtemp2[20]=strtemp[0];
strtemp2[21]=strtemp[1];
}
else
{
strtemp2[20]='0';
strtemp2[21]=strtemp[0];
}
cvar_zp_cs_buymenu_equipz_name[i] = register_cvar(strtemp2, "-");
num_to_str(i+1, strtemp, 2)
strtemp2 = "zp_cs_buymenu_equipz___cost";
if (i>8)
{
strtemp2[20]=strtemp[0];
strtemp2[21]=strtemp[1];
}
else
{
strtemp2[20]='0';
strtemp2[21]=strtemp[0];
}
cvar_zp_cs_buymenu_equipz_cost[i] = register_cvar(strtemp2, "0");
num_to_str(i+1, strtemp, 2)
strtemp2 = "zp_cs_buymenu_equipz___todo";
if (i>8)
{
strtemp2[20]=strtemp[0];
strtemp2[21]=strtemp[1];
}
else
{
strtemp2[20]='0';
strtemp2[21]=strtemp[0];
}
cvar_zp_cs_buymenu_equipz_todo[i] = register_cvar(strtemp2, "do_nothing");
}
}
public plugin_cfg()
{
new cfgdir[32]
get_localinfo("amxx_configsdir",cfgdir,sizeof cfgdir)
server_cmd("exec %s/zp_cs_buymenu.cfg", cfgdir)
build_menu();
}
public fw_ClientConnect_Post(id)
{
get_user_name(id,PlayerOldName[id],31)
client_cmd(id,"bind b zp_cs_buymenu");
return FMRES_IGNORED;
}
public event_round_start()
{
set_hudmessage(0, 255, 0, -1.0, 0.9, 2, 1.0, 4.5,0.1,0.1,-1)
ShowSyncHudMsg(0, g_MsgSyncObj1, "%L", LANG_PLAYER, "BUYMENU_INFO1")
zp_cs_buymenu_ready = false;
antidoteused = 0
madnessused = 0
infbombused = 0
static Float:armor
for (new id=1;id<=g_maxplayers;id++)
{
if (!is_user_connected(id)) continue;
menu_cancel(id);
pev(id, pev_armorvalue, armor)
if (armor > 0.0)
if (armor < 36.0)
set_task(0.1, "zp_cs_hevsuitstatusiconblink", id)
else
set_task(0.1, "zp_cs_hevsuitstatusiconshow", id)
}
zp_cs_buytime_passed=false;
set_task(0.1, "build_menu");
if (task_exists(TASK_BUYTIME_END)) remove_task(TASK_BUYTIME_END);
set_task(60.0 * get_pcvar_float(cvar_zp_cs_buytime),"rebuild_menu",TASK_BUYTIME_END);
}
public update_scoreboard(id)
{
message_begin(MSG_BROADCAST, g_msgScoreInfo)
write_byte(id)
write_short(pev(id, pev_frags))
write_short(get_pdata_int(id, OFFSET_DEATHS, OFFSET_LINUX))
write_short(0)
write_short(get_pdata_int(id, OFFSET_TEAM, OFFSET_LINUX))
message_end()
}
public rebuild_menu()
{
for (new id=1;id<=g_maxplayers;id++)
if (!is_user_connected(id))
continue;
else
menu_cancel(id);
zp_cs_buytime_passed=true;
build_menu;
set_hudmessage(0, 255, 0, -1.0, 0.9, 2, 1.0, 4.5,0.1,0.1,-1)
ShowSyncHudMsg(0, g_MsgSyncObj1, "%L", LANG_PLAYER, "BUYMENU_INFO2")
}
public build_menu()
{
if (zp_cs_buymenu_ready)
{
menu_destroy(zp_cs_buymenu)
menu_destroy(zp_cs_buymenu_pistol)
menu_destroy(zp_cs_buymenu_shotgun)
menu_destroy(zp_cs_buymenu_smgun)
menu_destroy(zp_cs_buymenu_rifle)
menu_destroy(zp_cs_buymenu_biggun)
menu_destroy(zp_cs_buymenu_equiph)
menu_destroy(zp_cs_buymenu_equipz)
}
//register menus
zp_cs_buymenu = menu_create("Buy-Menu By DeclineD","zp_cs_buymenu_handle")
zp_cs_buymenu_pistol = menu_create("Pistol","zp_cs_subbuymenu_handle")
zp_cs_buymenu_shotgun = menu_create("Shotgun","zp_cs_subbuymenu_handle")
zp_cs_buymenu_smgun = menu_create("Sub-Machinegun","zp_cs_subbuymenu_handle")
zp_cs_buymenu_rifle = menu_create("Assault Rifle","zp_cs_subbuymenu_handle")
zp_cs_buymenu_sniper = menu_create("Sniper Rifle", "zp_cs_subbuymenu_handle")
zp_cs_buymenu_biggun = menu_create("Machinegun","zp_cs_subbuymenu_handle")
zp_cs_buymenu_equiph = menu_create("Equipment","zp_cs_subbuymenu_handle")
zp_cs_buymenu_equipz = menu_create("Equipemnt","zp_cs_subbuymenu_handle")
new strtemp0[100];
formatex(strtemp0, charsmax(strtemp0), "%L", LANG_PLAYER, "BUYMENU_MENU1")
menu_additem(zp_cs_buymenu, strtemp0, "1");
formatex(strtemp0, charsmax(strtemp0), "%L", LANG_PLAYER, "BUYMENU_MENU2")
menu_additem(zp_cs_buymenu, strtemp0, "2");
formatex(strtemp0, charsmax(strtemp0), "%L", LANG_PLAYER, "BUYMENU_MENU3")
menu_additem(zp_cs_buymenu, strtemp0, "3");
formatex(strtemp0, charsmax(strtemp0), "%L", LANG_PLAYER, "BUYMENU_MENU4")
menu_additem(zp_cs_buymenu, strtemp0, "4");
formatex(strtemp0, charsmax(strtemp0), "%L^n", LANG_PLAYER, "BUYMENU_MENU5")
menu_additem(zp_cs_buymenu, strtemp0, "5");
formatex(strtemp0, charsmax(strtemp0), "%L", LANG_PLAYER, "BUYMENU_MENU6")
menu_additem(zp_cs_buymenu, strtemp0, "6");
formatex(strtemp0, charsmax(strtemp0), "%L^n", LANG_PLAYER, "BUYMENU_MENU7")
menu_additem(zp_cs_buymenu, strtemp0, "7");
formatex(strtemp0, charsmax(strtemp0), "%L^n", LANG_PLAYER, "BUYMENU_MENU8")
menu_additem(zp_cs_buymenu, strtemp0, "8");
formatex(strtemp0, charsmax(strtemp0), "%L", LANG_PLAYER, "BUYMENU_MENU9")
menu_additem(zp_cs_buymenu, strtemp0, "9");
formatex(strtemp0, charsmax(strtemp0), "%L", LANG_PLAYER, "BUYMENU_MENU0")
menu_additem(zp_cs_buymenu, strtemp0, "0");
menu_setprop(zp_cs_buymenu, MPROP_PERPAGE, 0);
menu_setprop(zp_cs_buymenu, MPROP_NUMBER_COLOR, "\w");
new strtemp[100];
new strtemp2[100];
new strtemp3[100];
for(new i=0;i<99;i++)
{
get_cvar_string(cvar_zp_cs_buymenu_pistol_name[i], strtemp , 32)
if (strtemp[0] != '-')
{
get_cvar_string(cvar_zp_cs_buymenu_pistol_todo[i], strtemp3 , 32)
if (!zp_cs_buytime_passed)
num_to_str(get_pcvar_num(cvar_zp_cs_buymenu_pistol_cost[i]), strtemp2, 32)
else
num_to_str((get_pcvar_num(cvar_zp_cs_buymenu_pistol_cost[i])*get_pcvar_num(cvar_zp_cs_buytime_pistol_mult)), strtemp2, 32)
add(strtemp,sizeof strtemp, "\R \y",4)
add(strtemp,sizeof strtemp, strtemp2, sizeof strtemp2)
menu_additem(zp_cs_buymenu_pistol, strtemp, strtemp3)
}
}
menu_setprop(zp_cs_buymenu_pistol, MPROP_NUMBER_COLOR, "\w");
formatex(strtemp0, charsmax(strtemp0), "%L", LANG_PLAYER, "BUYMENU_BACK")
menu_setprop(zp_cs_buymenu_pistol, MPROP_BACKNAME, strtemp0)
formatex(strtemp0, charsmax(strtemp0), "%L", LANG_PLAYER, "BUYMENU_NEXT")
menu_setprop(zp_cs_buymenu_pistol, MPROP_NEXTNAME, strtemp0)
formatex(strtemp0, charsmax(strtemp0), "%L", LANG_PLAYER, "BUYMENU_EXIT")
menu_setprop(zp_cs_buymenu_pistol, MPROP_EXITNAME, strtemp0)
for(new i=0;i<99;i++)
{
get_pcvar_string(cvar_zp_cs_buymenu_shotgun_name[i], strtemp , 32)
if (strtemp[0] != '-')
{
get_pcvar_string(cvar_zp_cs_buymenu_shotgun_todo[i], strtemp3 , 32)
if (!zp_cs_buytime_passed)
num_to_str(get_pcvar_num(cvar_zp_cs_buymenu_shotgun_cost[i]), strtemp2, 32)
else
num_to_str((get_pcvar_num(cvar_zp_cs_buymenu_shotgun_cost[i])*get_pcvar_num(cvar_zp_cs_buytime_shotgun_mult)), strtemp2, 32)
add(strtemp,sizeof strtemp, "\R \y",4)
add(strtemp,sizeof strtemp, strtemp2, sizeof strtemp2)
menu_additem(zp_cs_buymenu_shotgun, strtemp, strtemp3)
}
}
menu_setprop(zp_cs_buymenu_shotgun, MPROP_NUMBER_COLOR, "\w");
formatex(strtemp0, charsmax(strtemp0), "%L", LANG_PLAYER, "BUYMENU_BACK")
menu_setprop(zp_cs_buymenu_shotgun, MPROP_BACKNAME, strtemp0)
formatex(strtemp0, charsmax(strtemp0), "%L", LANG_PLAYER, "BUYMENU_NEXT")
menu_setprop(zp_cs_buymenu_shotgun, MPROP_NEXTNAME, strtemp0)
formatex(strtemp0, charsmax(strtemp0), "%L", LANG_PLAYER, "BUYMENU_EXIT")
menu_setprop(zp_cs_buymenu_shotgun, MPROP_EXITNAME, strtemp0)
for(new i=0;i<99;i++)
{
get_pcvar_string(cvar_zp_cs_buymenu_smgun_name[i], strtemp , 32)
if (strtemp[0] != '-')
{
get_pcvar_string(cvar_zp_cs_buymenu_smgun_todo[i], strtemp3 , 32)
if (!zp_cs_buytime_passed)
num_to_str(get_pcvar_num(cvar_zp_cs_buymenu_smgun_cost[i]), strtemp2, 32)
else
num_to_str((get_pcvar_num(cvar_zp_cs_buymenu_smgun_cost[i])*get_pcvar_num(cvar_zp_cs_buytime_smgun_mult)), strtemp2, 32)
add(strtemp,sizeof strtemp, "\R \y",4)
add(strtemp,sizeof strtemp, strtemp2, sizeof strtemp2)
menu_additem(zp_cs_buymenu_smgun, strtemp, strtemp3)
}
}
menu_setprop(zp_cs_buymenu_smgun, MPROP_NUMBER_COLOR, "\w");
formatex(strtemp0, charsmax(strtemp0), "%L", LANG_PLAYER, "BUYMENU_BACK")
menu_setprop(zp_cs_buymenu_smgun, MPROP_BACKNAME, strtemp0)
formatex(strtemp0, charsmax(strtemp0), "%L", LANG_PLAYER, "BUYMENU_NEXT")
menu_setprop(zp_cs_buymenu_smgun, MPROP_NEXTNAME, strtemp0)
formatex(strtemp0, charsmax(strtemp0), "%L", LANG_PLAYER, "BUYMENU_EXIT")
menu_setprop(zp_cs_buymenu_smgun, MPROP_EXITNAME, strtemp0)
for(new i=0;i<99;i++)
{
get_pcvar_string(cvar_zp_cs_buymenu_rifle_name[i], strtemp , 32)
if (strtemp[0] != '-')
{
get_pcvar_string(cvar_zp_cs_buymenu_rifle_todo[i], strtemp3 , 32)
if (!zp_cs_buytime_passed)
num_to_str(get_pcvar_num(cvar_zp_cs_buymenu_rifle_cost[i]), strtemp2, 32)
else
num_to_str((get_pcvar_num(cvar_zp_cs_buymenu_rifle_cost[i])*get_pcvar_num(cvar_zp_cs_buytime_rifle_mult)), strtemp2, 32)
add(strtemp,sizeof strtemp, "\R \y",4)
add(strtemp,sizeof strtemp, strtemp2, sizeof strtemp2)
menu_additem(zp_cs_buymenu_rifle, strtemp, strtemp3)
}
}
menu_setprop(zp_cs_buymenu_rifle, MPROP_NUMBER_COLOR, "\w");
formatex(strtemp0, charsmax(strtemp0), "%L", LANG_PLAYER, "BUYMENU_BACK")
menu_setprop(zp_cs_buymenu_rifle, MPROP_BACKNAME, strtemp0)
formatex(strtemp0, charsmax(strtemp0), "%L", LANG_PLAYER, "BUYMENU_NEXT")
menu_setprop(zp_cs_buymenu_rifle, MPROP_NEXTNAME, strtemp0)
formatex(strtemp0, charsmax(strtemp0), "%L", LANG_PLAYER, "BUYMENU_EXIT")
menu_setprop(zp_cs_buymenu_rifle, MPROP_EXITNAME, strtemp0)
for(new i=0;i<99;i++)
{
get_pcvar_string(cvar_zp_cs_buymenu_sniper_name[i], strtemp , 32)
if (strtemp[0] != '-')
{
get_pcvar_string(cvar_zp_cs_buymenu_sniper_todo[i], strtemp3 , 32)
if (!zp_cs_buytime_passed)
num_to_str(get_pcvar_num(cvar_zp_cs_buymenu_sniper_cost[i]), strtemp2, 32)
else
num_to_str((get_pcvar_num(cvar_zp_cs_buymenu_sniper_cost[i])*get_pcvar_num(cvar_zp_cs_buytime_sniper_mult)), strtemp2, 32)
add(strtemp,sizeof strtemp, "\R \y",4)
add(strtemp,sizeof strtemp, strtemp2, sizeof strtemp2)
menu_additem(zp_cs_buymenu_sniper, strtemp, strtemp3)
}
}
menu_setprop(zp_cs_buymenu_sniper, MPROP_NUMBER_COLOR, "\w");
formatex(strtemp0, charsmax(strtemp0), "%L", LANG_PLAYER, "BUYMENU_BACK")
menu_setprop(zp_cs_buymenu_sniper, MPROP_BACKNAME, strtemp0)
formatex(strtemp0, charsmax(strtemp0), "%L", LANG_PLAYER, "BUYMENU_NEXT")
menu_setprop(zp_cs_buymenu_sniper, MPROP_NEXTNAME, strtemp0)
formatex(strtemp0, charsmax(strtemp0), "%L", LANG_PLAYER, "BUYMENU_EXIT")
menu_setprop(zp_cs_buymenu_sniper, MPROP_EXITNAME, strtemp0)
for(new i=0;i<99;i++)
{
get_pcvar_string(cvar_zp_cs_buymenu_biggun_name[i], strtemp , 32)
if (strtemp[0] != '-')
{
get_pcvar_string(cvar_zp_cs_buymenu_biggun_todo[i], strtemp3 , 32)
if (!zp_cs_buytime_passed)
num_to_str(get_pcvar_num(cvar_zp_cs_buymenu_biggun_cost[i]), strtemp2, 32)
else
num_to_str((get_pcvar_num(cvar_zp_cs_buymenu_biggun_cost[i])*get_pcvar_num(cvar_zp_cs_buytime_biggun_mult)), strtemp2, 32)
add(strtemp,sizeof strtemp, "\R \y",4)
add(strtemp,sizeof strtemp, strtemp2, sizeof strtemp2)
menu_additem(zp_cs_buymenu_biggun, strtemp, strtemp3)
}
}
menu_setprop(zp_cs_buymenu_biggun, MPROP_NUMBER_COLOR, "\w");
formatex(strtemp0, charsmax(strtemp0), "%L", LANG_PLAYER, "BUYMENU_BACK")
menu_setprop(zp_cs_buymenu_biggun, MPROP_BACKNAME, strtemp0)
formatex(strtemp0, charsmax(strtemp0), "%L", LANG_PLAYER, "BUYMENU_NEXT")
menu_setprop(zp_cs_buymenu_biggun, MPROP_NEXTNAME, strtemp0)
formatex(strtemp0, charsmax(strtemp0), "%L", LANG_PLAYER, "BUYMENU_EXIT")
menu_setprop(zp_cs_buymenu_biggun, MPROP_EXITNAME, strtemp0)
for(new i=0;i<99;i++)
{
get_pcvar_string(cvar_zp_cs_buymenu_equiph_name[i], strtemp , 32)
if (strtemp[0] != '-')
{
get_pcvar_string(cvar_zp_cs_buymenu_equiph_todo[i], strtemp3 , 32)
num_to_str(get_pcvar_num(cvar_zp_cs_buymenu_equiph_cost[i]), strtemp2, 32)
if (((strfind(strtemp3, "zp_cs_buy_flashbang") == 0)||(strfind(strtemp3, "zp_cs_buy_hegrenade") == 0)||(strfind(strtemp3, "zp_cs_buy_smokegrenade") == 0))&&(zp_cs_buytime_passed))
num_to_str((get_pcvar_num(cvar_zp_cs_buymenu_equiph_cost[i])*get_pcvar_num(cvar_zp_cs_buytime_gren_mult)), strtemp2, 32)
add(strtemp,sizeof strtemp, "\R \y",4)
add(strtemp,sizeof strtemp, strtemp2, sizeof strtemp2)
menu_additem(zp_cs_buymenu_equiph, strtemp, strtemp3)
}
}
menu_setprop(zp_cs_buymenu_equiph, MPROP_NUMBER_COLOR, "\w");
formatex(strtemp0, charsmax(strtemp0), "%L", LANG_PLAYER, "BUYMENU_BACK")
menu_setprop(zp_cs_buymenu_equiph, MPROP_BACKNAME, strtemp0)
formatex(strtemp0, charsmax(strtemp0), "%L", LANG_PLAYER, "BUYMENU_NEXT")
menu_setprop(zp_cs_buymenu_equiph, MPROP_NEXTNAME, strtemp0)
formatex(strtemp0, charsmax(strtemp0), "%L", LANG_PLAYER, "BUYMENU_EXIT")
menu_setprop(zp_cs_buymenu_equiph, MPROP_EXITNAME, strtemp0)
for(new i=0;i<99;i++)
{
get_pcvar_string(cvar_zp_cs_buymenu_equipz_name[i], strtemp , 32)
if (strtemp[0] != '-')
{
get_pcvar_string(cvar_zp_cs_buymenu_equipz_todo[i], strtemp3 , 32)
num_to_str(get_pcvar_num(cvar_zp_cs_buymenu_equipz_cost[i]), strtemp2, 32)
add(strtemp,sizeof strtemp, "\R \y",4)
add(strtemp,sizeof strtemp, strtemp2, sizeof strtemp2)
menu_additem(zp_cs_buymenu_equipz, strtemp, strtemp3)
}
}
menu_setprop(zp_cs_buymenu_equipz, MPROP_NUMBER_COLOR, "\w");
formatex(strtemp0, charsmax(strtemp0), "%L", LANG_PLAYER, "BUYMENU_BACK")
menu_setprop(zp_cs_buymenu_equipz, MPROP_BACKNAME, strtemp0)
formatex(strtemp0, charsmax(strtemp0), "%L", LANG_PLAYER, "BUYMENU_NEXT")
menu_setprop(zp_cs_buymenu_equipz, MPROP_NEXTNAME, strtemp0)
formatex(strtemp0, charsmax(strtemp0), "%L", LANG_PLAYER, "BUYMENU_EXIT")
menu_setprop(zp_cs_buymenu_equipz, MPROP_EXITNAME, strtemp0)
zp_cs_buymenu_ready=true;
}
stock fm_give_item(id, const item[])
{
static ent
ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, item))
if (!pev_valid(ent))
return;
static Float:originF[3]
pev(id, pev_origin, originF)
set_pev(ent, pev_origin, originF)
set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN)
dllfunc(DLLFunc_Spawn, ent)
static save
save = pev(ent, pev_solid)
dllfunc(DLLFunc_Touch, ent, id)
if (pev(ent, pev_solid) != save)
return;
engfunc(EngFunc_RemoveEntity, ent)
}
stock drop_weapons(id, dropwhat)
{
static weapons[32], num, i, weaponid
num = 0
get_user_weapons(id, weapons, num)
for (i = 0; i < num; i++)
{
weaponid = weapons[i]
if ((dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
{
static wname[32], weapon_ent
get_weaponname(weaponid, wname, sizeof wname - 1)
weapon_ent = fm_find_ent_by_owner(-1, wname, id);
set_pev(weapon_ent, PEV_ADDITIONAL_AMMO, fm_get_user_bpammo(id, weaponid))
engclient_cmd(id, "drop", wname)
fm_set_user_bpammo(id, weaponid, 0)
}
}
}
stock fm_find_ent_by_owner(entity, const classname[], owner)
{
while ((entity = engfunc(EngFunc_FindEntityByString, entity, "classname", classname)) && pev(entity, pev_owner) != owner) {}
return entity;
}
stock fm_get_user_bpammo(id, weapon)
{
return get_pdata_int(id, AMMOOFFSET[weapon], OFFSET_LINUX);
}
stock fm_set_user_bpammo(id, weapon, amount)
{
set_pdata_int(id, AMMOOFFSET[weapon], amount, OFFSET_LINUX)
}
public clcmd_zp_cs_buymenu(id)
{
if (!is_user_alive(id))
return PLUGIN_HANDLED;
if ((zp_get_user_nemesis(id))&&(!get_pcvar_num(cvar_zp_cs_nemesis_canbuy)))
{
client_print(id,print_center,"%L", LANG_PLAYER, "BUYMENU_CANTBUY_NEMESIS")
return PLUGIN_HANDLED;
}
if ((zp_get_user_survivor(id))&&(!get_pcvar_num(cvar_zp_cs_survivor_canbuy)))
{
client_print(id,print_center,"%L", LANG_PLAYER, "BUYMENU_CANTBUY_SURVIVOR")
return PLUGIN_HANDLED;
}
if (zp_cs_buymenu_ready)
menu_display(id, zp_cs_buymenu)
return PLUGIN_HANDLED;
}
public zp_cs_buymenu_handle(id, menu, item)
{
new cmd[32];
new access, callback;
menu_item_getinfo(menu, item, access, cmd,2,_,_, callback);
zp_cs_submenuid[id] = str_to_num(cmd);
if (zp_cs_submenuid[id] == 0)
return PLUGIN_HANDLED;
if ((zp_get_user_zombie(id))&&(zp_cs_submenuid[id] != 8))
{
client_print(id,print_center,"%L", LANG_PLAYER, "BUYMENU_ONLY_HUMAH");
return PLUGIN_HANDLED;
}
if (zp_cs_submenuid[id] == 1)
menu_display(id, zp_cs_buymenu_pistol, 0);
if (zp_cs_submenuid[id] == 2)
menu_display(id, zp_cs_buymenu_shotgun, 0);
if (zp_cs_submenuid[id] == 3)
menu_display(id, zp_cs_buymenu_smgun, 0);
if (zp_cs_submenuid[id] == 4)
menu_display(id, zp_cs_buymenu_rifle, 0);
if (zp_cs_submenuid[id] == 5)
menu_display(id, zp_cs_buymenu_sniper,0);
if (zp_cs_submenuid[id] == 6)
menu_display(id, zp_cs_buymenu_biggun, 0);
if (zp_cs_submenuid[id] == 8)
if (zp_get_user_zombie(id))
{
zp_cs_submenuid[id] = 82
menu_display(id, zp_cs_buymenu_equipz, 0);
}
else
{
zp_cs_submenuid[id] = 81
menu_display(id, zp_cs_buymenu_equiph, 0);
}
if (zp_cs_submenuid[id] == 9)
{
client_cmd(id, "knife_menu")
}
if (zp_cs_submenuid[id] == 7)
{
static weapons[32], num, i, currentammo, weaponid
num = 0
get_user_weapons(id, weapons, num)
for (i = 0; i < num; i++)
{
weaponid = weapons[i]
if ((((weaponid != 17)&&(weaponid != 16)&&(weaponid != 1)&&(weaponid != 26)&&(weaponid != 0)&&(weaponid != 11)&&(weaponid != 10)&&(zp_cs_submenuid[id] == 6))||(((weaponid == 17)||(weaponid == 16)||(weaponid == 1)||(weaponid == 26)||(weaponid == 0)||(weaponid == 11)||(weaponid == 10))&&(zp_cs_submenuid[id] == 7)))&&(MAXBPAMMO[weaponid] > 2))
{
currentammo = fm_get_user_bpammo(id, weaponid)
while((currentammo < MAXBPAMMO[weaponid]))
{
currentammo += BUYAMMO[weaponid]
ExecuteHamB(Ham_GiveAmmo, id, BUYAMMO[weaponid], AMMOTYPE[weaponid], MAXBPAMMO[weaponid])
}
}
}
}
return PLUGIN_HANDLED;
}
public zp_cs_subbuymenu_handle(id, menu, item)
{
new cmd[32];
cmd [0] = '-';
new access, callback;
menu_item_getinfo(menu, item, access, cmd, charsmax(cmd),_,_, callback);
if (cmd[0]=='-') return PLUGIN_HANDLED;
new strtemp[100];
new itemcost;
if (strfind(cmd, "do_nothing") != 0)
for (new i=0;i<99;i++)
{
if (zp_cs_submenuid[id] == 1)
get_pcvar_string(cvar_zp_cs_buymenu_pistol_todo[i], strtemp , 32)
if (zp_cs_submenuid[id] == 2)
get_pcvar_string(cvar_zp_cs_buymenu_shotgun_todo[i], strtemp , 32)
if (zp_cs_submenuid[id] == 3)
get_pcvar_string(cvar_zp_cs_buymenu_smgun_todo[i], strtemp , 32)
if (zp_cs_submenuid[id] == 4)
get_pcvar_string(cvar_zp_cs_buymenu_rifle_todo[i], strtemp , 32)
if (zp_cs_submenuid[id] == 5)
get_pcvar_string(cvar_zp_cs_buymenu_sniper_todo[i], strtemp , 32)
if (zp_cs_submenuid[id] == 6)
get_pcvar_string(cvar_zp_cs_buymenu_biggun_todo[i], strtemp , 32)
if (zp_cs_submenuid[id] == 81)
get_pcvar_string(cvar_zp_cs_buymenu_equiph_todo[i], strtemp , 32)
if (zp_cs_submenuid[id] == 82)
get_pcvar_string(cvar_zp_cs_buymenu_equipz_todo[i], strtemp , 32)
if (strfind(cmd, strtemp) == 0)
{
if (zp_cs_submenuid[id] == 1)
itemcost = get_pcvar_num(cvar_zp_cs_buymenu_pistol_cost[i])
if (zp_cs_submenuid[id] == 2)
itemcost = get_pcvar_num(cvar_zp_cs_buymenu_shotgun_cost[i])
if (zp_cs_submenuid[id] == 3)
itemcost = get_pcvar_num(cvar_zp_cs_buymenu_smgun_cost[i])
if (zp_cs_submenuid[id] == 4)
itemcost = get_pcvar_num(cvar_zp_cs_buymenu_rifle_cost[i])
if (zp_cs_submenuid[id] == 5)
itemcost = get_pcvar_num(cvar_zp_cs_buymenu_sniper_cost[i])
if (zp_cs_submenuid[id] == 6)
itemcost = get_pcvar_num(cvar_zp_cs_buymenu_biggun_cost[i])
if (zp_cs_submenuid[id] == 81)
itemcost = get_pcvar_num(cvar_zp_cs_buymenu_equiph_cost[i])
if (zp_cs_submenuid[id] == 82)
itemcost = get_pcvar_num(cvar_zp_cs_buymenu_equipz_cost[i])
if (zp_cs_buytime_passed)
{
if (zp_cs_submenuid[id] == 1)
itemcost = itemcost * get_pcvar_num(cvar_zp_cs_buytime_pistol_mult)
if (zp_cs_submenuid[id] == 2)
itemcost = itemcost * get_pcvar_num(cvar_zp_cs_buytime_shotgun_mult)
if (zp_cs_submenuid[id] == 3)
itemcost = itemcost * get_pcvar_num(cvar_zp_cs_buytime_smgun_mult)
if (zp_cs_submenuid[id] == 4)
itemcost = itemcost * get_pcvar_num(cvar_zp_cs_buytime_rifle_mult)
if (zp_cs_submenuid[id] == 5)
itemcost = itemcost * get_pcvar_num(cvar_zp_cs_buytime_sniper_mult)
if (zp_cs_submenuid[id] == 6)
itemcost = itemcost * get_pcvar_num(cvar_zp_cs_buytime_biggun_mult)
if (((strfind(cmd, "zp_cs_buy_flashbang") == 0)||(strfind(cmd, "zp_cs_buy_hegrenade") == 0)||(strfind(cmd, "zp_cs_buy_smokegrenade") == 0))&&(zp_cs_submenuid[id] == 81))
itemcost = itemcost * get_pcvar_num(cvar_zp_cs_buytime_gren_mult)
}
if (GetUserMoney(id) < itemcost) //check if player has enough money
{
return PLUGIN_HANDLED;
}
else break;
}
}
if (strfind(cmd, "zp_cs_buy") == 0)
{
if ((user_has_weapon(id, CSW_HEGRENADE))&&(strfind(cmd, "zp_cs_buy_hegrenade") == 0))
if (fm_get_user_bpammo(id, CSW_HEGRENADE)>=MAXBPAMMO[CSW_HEGRENADE])
{
if ((zp_get_user_zombie(id))||(zp_get_user_nemesis(id))) client_print(id,print_center,"%L", LANG_PLAYER, "BUYMENU_NOMORE_INFECTGREN")
else client_print(id,print_center,"%L", LANG_PLAYER, "BUYMENU_ALREADYHAVE_NAPALM")
return PLUGIN_HANDLED;
}
else if (zp_get_user_zombie(id))
if (infbombused>=get_pcvar_num(cvar_infbomblimit))
{
client_print(id,print_center,"%L", LANG_PLAYER, "BUYMENU_RANOUTOF_INFECTGREN")
return PLUGIN_HANDLED;
}
else infbombused++;
if ((user_has_weapon(id, CSW_FLASHBANG))&&(strfind(cmd, "zp_cs_buy_flashbang") == 0))
if (fm_get_user_bpammo(id, CSW_FLASHBANG)>=MAXBPAMMO[CSW_FLASHBANG])
{
client_print(id,print_center,"%L", LANG_PLAYER, "BUYMENU_ALREADYHAVE_FREEZE")
return PLUGIN_HANDLED;
}
if ((user_has_weapon(id, CSW_SMOKEGRENADE))&&(strfind(cmd, "zp_cs_buy_smokegrenade") == 0))
if (fm_get_user_bpammo(id, CSW_SMOKEGRENADE)>=MAXBPAMMO[CSW_SMOKEGRENADE])
{
client_print(id,print_center,"%L", LANG_PLAYER, "BUYMENU_ALREADYHAVE_FLARES")
return PLUGIN_HANDLED;
}
replace(cmd,charsmax(cmd),"zp_cs_buy_","weapon_")
if ((strfind(cmd, "flashbang") == -1)&&(strfind(cmd, "hegrenade") == -1)&&(strfind(cmd, "smokegrenade") == -1))
if ((strfind(cmd, "glock18") > -1)||(strfind(cmd, "usp") > -1)||(strfind(cmd, "p228") > -1)||(strfind(cmd, "deagle") > -1)||(strfind(cmd, "elite") > -1)||(strfind(cmd, "fiveseven") > -1))
drop_weapons(id, 2);
else
drop_weapons(id, 1);
fm_give_item(id, cmd);
replace(cmd,charsmax(cmd),"weapon_","zp_cs_buy_")
}
if (strfind(cmd, "zp_cs_HEVsuit") == 0)
{ static Float:armor
pev(id, pev_armorvalue, armor)
if (armor >= 100.0)
{
client_print(id, print_center, "%L", LANG_PLAYER, "BUYMENU_ALREADYHAVE_ARMOR")
return PLUGIN_HANDLED;
}
set_pev(id, pev_armorvalue, 100.0)
set_task(0.1, "zp_cs_hevsuitstatusiconblink", id)
set_task(1.0, "zp_cs_hevsuitstatusiconshow", id)
engfunc(EngFunc_EmitSound, id, CHAN_ITEM, sound_buysuit, 1.0, ATTN_NORM, 0, PITCH_NORM)
}
if (strfind(cmd, "zp_cs_moarHEVsuit") == 0)
{
static Float:armor
pev(id, pev_armorvalue, armor)
armor+=100.0;
set_pev(id, pev_armorvalue, armor)
set_task(0.1, "zp_cs_hevsuitstatusiconblink", id)
set_task(1.0, "zp_cs_hevsuitstatusiconshow", id)
engfunc(EngFunc_EmitSound, id, CHAN_ITEM, sound_buysuit, 1.0, ATTN_NORM, 0, PITCH_NORM)
}
if (strfind(cmd, "zp_cs_nightvision") == 0)
if (!zp_get_user_nightvision(id))
zp_force_buy_extra_item(id,0,1);
else
{
client_print(id,print_center,"%L", LANG_PLAYER, "BUYMENU_ALREADYHAVE_NIGHTVISION");
return PLUGIN_HANDLED;
}
if (strfind(cmd, "zp_cs_antidote") == 0)
if (antidoteused<get_pcvar_num(cvar_antidotelimit))
if (!zp_disinfect_user(id))
{
client_print(id,print_center,"%L", LANG_PLAYER, "BUYMENU_CANTBUY_ANTIDOTE");
return PLUGIN_HANDLED;
}
else antidoteused++;
else
{
client_print(id,print_center,"%L", LANG_PLAYER, "BUYMENU_RANOUTOF_ANTIDOTE");
return PLUGIN_HANDLED;
}
if (strfind(cmd, "zp_cs_zombie_madness") == 0)
if (madnessused<get_pcvar_num(cvar_madnesslimit))
zp_force_buy_extra_item(id,2,1);
else
{
client_print(id,print_center,"%L", LANG_PLAYER, "BUYMENU_RANOUTOF_MADNESS");
return PLUGIN_HANDLED;
}
if (strfind(cmd, "zp_cs_") != 0)
{
new temp_itemid=zp_get_extra_item_id(cmd);
if (temp_itemid>-1)
(zp_force_buy_extra_item(id,temp_itemid,1))
else
{
client_print(id, print_chat, "[zp_cs_buymenu]: ERROR! ITEM %s NOT FOUND!",cmd)
}
}
if (strfind(cmd, "do_nothing") == 0) client_print(id, print_chat, "[zp_cs_buymenu]: This item does nothing.")
SetUserMoney(id, GetUserMoney(id) - itemcost)
return PLUGIN_HANDLED;
}
public ham_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type)
{
if ((attacker<1)||(attacker>g_maxplayers)||(victim == attacker)||(!is_user_connected(attacker)))
return HAM_IGNORED;
if (zp_get_user_zombie(attacker)||zp_get_user_nemesis(attacker))
{
static Float:armor
pev(victim, pev_armorvalue, armor)
if (armor < 36.0) set_task(0.1, "zp_cs_hevsuitstatusiconblink", victim);
if (armor < 1.0) set_task(0.1, "zp_cs_hevsuitstatusiconhide", victim);
return HAM_IGNORED;
}
return HAM_IGNORED;
}
public ham_PlayerKilled(victim, attacker, shouldgib)
{
if ((attacker<1)||(attacker>g_maxplayers)||(attacker==victim)) return HAM_IGNORED;
if (zp_get_user_zombie(attacker)&&!zp_get_user_nemesis(attacker))
{
menu_cancel(victim);
set_task(0.1, "zp_cs_hevsuitstatusiconhide", victim);
}
else if (zp_get_user_nemesis(attacker))
{
menu_cancel(victim);
set_task(0.1, "zp_cs_hevsuitstatusiconhide", victim);
}
if (zp_get_user_zombie(attacker)&&!zp_get_user_nemesis(attacker))
{
if (get_pcvar_num(cvar_zp_cs_zombie_nodeathscore)) set_pdata_int(victim, OFFSET_DEATHS, get_pdata_int(victim, OFFSET_DEATHS, OFFSET_LINUX)-1, OFFSET_LINUX)
}
return PLUGIN_HANDLED;
}
public zp_user_humanized_pre(id,survivor)
{
if (survivor)
menu_cancel(id);
return PLUGIN_CONTINUE;
}
public zp_cs_kill_assist(arg[])
{
static weapon_name[32]
get_weaponname(arg[3], weapon_name, charsmax(weapon_name))
replace(weapon_name, charsmax(weapon_name), "weapon_", "")
message_begin(MSG_ALL, g_msgDeathMsg)
write_byte(arg[0])
write_byte(arg[1])
write_byte(arg[2])
write_string(weapon_name)
message_end()
new temp1 = get_pcvar_num(cvar_amx_mode)
set_pcvar_num(cvar_amx_mode,0)
set_msg_block(g_msgSayText, BLOCK_ONCE)
set_user_info(arg[0],"name",PlayerOldName[arg[0]])
set_pcvar_num(cvar_amx_mode,temp1)
}
public zp_user_infected_pre(id,infector,nemesis)
{
if (zp_get_user_nemesis(id)||(infector!=0))
return PLUGIN_CONTINUE;
static strtemp1[100],strtemp2[100], weapons[32], num, i
num = 0
get_user_weapons(id, weapons, num)
for (i = 0; i < num; i++)
{
strtemp1 = ""
get_weaponname(weapons[i],strtemp1,charsmax(strtemp1));
replace(strtemp1,charsmax(strtemp1),"weapon_","zp_cs_buy_")
for(new i=0;i<99;i++)
{
strtemp2 = ""
get_pcvar_string(cvar_zp_cs_buymenu_pistol_todo[i], strtemp2 , charsmax(strtemp2))
if (equal(strtemp1,strtemp2)) SetUserMoney(id, GetUserMoney(id) + get_pcvar_num(cvar_zp_cs_buymenu_pistol_cost[i]))
}
for(new i=0;i<99;i++)
{
strtemp2 = ""
get_pcvar_string(cvar_zp_cs_buymenu_shotgun_todo[i], strtemp2 , charsmax(strtemp2))
if (equal(strtemp1,strtemp2)) SetUserMoney(id, GetUserMoney(id) + get_pcvar_num(cvar_zp_cs_buymenu_shotgun_cost[i]))
}
for(new i=0;i<99;i++)
{
strtemp2 = ""
get_pcvar_string(cvar_zp_cs_buymenu_smgun_todo[i], strtemp2 , charsmax(strtemp2))
if (equal(strtemp1,strtemp2)) SetUserMoney(id, GetUserMoney(id) + get_pcvar_num(cvar_zp_cs_buymenu_smgun_cost[i]))
}
for(new i=0;i<99;i++)
{
strtemp2 = ""
get_pcvar_string(cvar_zp_cs_buymenu_rifle_todo[i], strtemp2 , charsmax(strtemp2))
if (equal(strtemp1,strtemp2)) SetUserMoney(id, GetUserMoney(id) + get_pcvar_num(cvar_zp_cs_buymenu_rifle_cost[i]))
}
for(new i=0;i<99;i++)
{
strtemp2 = ""
get_pcvar_string(cvar_zp_cs_buymenu_sniper_todo[i], strtemp2 , charsmax(strtemp2))
if (equal(strtemp1,strtemp2)) SetUserMoney(id, GetUserMoney(id) + get_pcvar_num(cvar_zp_cs_buymenu_sniper_cost[i]))
}
for(new i=0;i<99;i++)
{
strtemp2 = ""
get_pcvar_string(cvar_zp_cs_buymenu_biggun_todo[i], strtemp2 , charsmax(strtemp2))
if (equal(strtemp1,strtemp2)) SetUserMoney(id, GetUserMoney(id) + get_pcvar_num(cvar_zp_cs_buymenu_biggun_cost[i]))
}
}
client_print(id,print_chat,"%L", LANG_PLAYER, "BUYMENU_MONEYBACK")
return PLUGIN_CONTINUE;
}
public zp_user_infected_post(id, infector)
{
if ((id<1)||(id>g_maxplayers))
return PLUGIN_CONTINUE;
menu_cancel(id)
set_task(0.1, "zp_cs_hevsuitstatusiconhide", id)
return PLUGIN_CONTINUE;
}
public fm_strip_user_weapons(id)
{
static ent
ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "player_weaponstrip"))
if (!pev_valid(ent)) return;
dllfunc(DLLFunc_Spawn, ent)
dllfunc(DLLFunc_Use, ent, id)
engfunc(EngFunc_RemoveEntity, ent)
}
public zp_cs_hevsuitstatusiconshow(id)
{
message_begin(MSG_ONE,g_msgIconStatus,{0,0,0},id)
write_byte(1)
write_string("item_battery")
write_byte(150)
write_byte(150)
write_byte(100)
message_end();
}
public zp_cs_hevsuitstatusiconhide(id)
{
message_begin(MSG_ONE,g_msgIconStatus,{0,0,0},id)
write_byte(0)
write_string("item_battery")
write_byte(150)
write_byte(150)
write_byte(100)
message_end();
}
public zp_cs_hevsuitstatusiconblink(id)
{
message_begin(MSG_ONE,g_msgIconStatus,{0,0,0},id)
write_byte(2)
write_string("item_battery")
write_byte(150)
write_byte(150)
write_byte(100)
message_end();
}