Senior Member
|
05-17-2018
, 17:11
Ammo spawn crashes server L4D2
|
#1
|
I been using this l4d2 weaponspawner for a longtime. Recently anytime you spawn ammo pile server crashes, everything else on plugin works fine. Linux server. Thought maybe was another plugin
so i removed all plugins except one's needed to run l4d2 weaponspawner. Also tried other versions,l4d2_weaponspawner_v10a.sp, l4d2_weaponspawner_v10.sp, With same results.
Thanks.
Code:
#include <sourcemod>
#include <sdktools>
#undef REQUIRE_PLUGIN
#include <adminmenu>
#define VERSION "1.0a"
/* TopMenu Handle */
new Handle:hAdminMenu = INVALID_HANDLE;
/* ConVar Handle */
new Handle:AssaultMaxAmmo = INVALID_HANDLE;
new Handle:SMGMaxAmmo = INVALID_HANDLE;
new Handle:ShotgunMaxAmmo = INVALID_HANDLE;
new Handle:AutoShotgunMaxAmmo = INVALID_HANDLE;
new Handle:HRMaxAmmo = INVALID_HANDLE;
new Handle:SniperRifleMaxAmmo = INVALID_HANDLE;
new Handle:GrenadeLauncherMaxAmmo = INVALID_HANDLE;
new Handle:AllowAllMeleeWeapons = INVALID_HANDLE;
new Handle:DebugInformations = INVALID_HANDLE;
new String:ChoosedWeapon[MAXPLAYERS+1][56];
new String:ChoosedMenuSpawn[MAXPLAYERS+1][56];
new String:ChoosedMenuGive[MAXPLAYERS+1][56];
new String:MapName[128];
new Float:g_pos[3];
public Plugin:myinfo =
{
name = "[L4D2] Weapon/Zombie Spawner",
author = "Zuko",
description = "Spawns weapons/zombies where your looking or give weapons to players.",
version = VERSION,
url = "http://zuko.isports.pl"
}
public OnPluginStart()
{
/* ConVars */
CreateConVar("sm_weaponspawner_version", VERSION, "Plugin Version", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY);
/* Admin Commands */
RegAdminCmd("sm_spawnweapon", Command_SpawnWeapon, ADMFLAG_SLAY, "Spawn weapon where you are looking.");
RegAdminCmd("sm_sw", Command_SpawnWeapon, ADMFLAG_SLAY, "Spawn weapon where you are looking.");
RegAdminCmd("sm_giveweapon", Command_GiveWeapon, ADMFLAG_SLAY, "Gives weapon to player.");
RegAdminCmd("sm_gw", Command_GiveWeapon, ADMFLAG_SLAY, "Gives weapon to player.");
RegAdminCmd("sm_zspawn", Command_SpawnZombie, ADMFLAG_SLAY, "Spawns special zombie where you are looking.");
/* Minugun Commands */
RegAdminCmd("sm_spawnmachinegun", Command_SpawnMinigun, ADMFLAG_SLAY, "Spawns Machine Gun.");
RegAdminCmd("sm_smg", Command_SpawnMinigun, ADMFLAG_SLAY, "Spawns Machine Gun.");
RegAdminCmd("sm_removemachinegun", Command_RemoveMinigun, ADMFLAG_SLAY, "Remove Machine Gun.");
RegAdminCmd("sm_rmg", Command_RemoveMinigun, ADMFLAG_SLAY, "Remove Machine Gun.");
/* Max Ammo ConVars */
AssaultMaxAmmo = CreateConVar("sm_spawnweapon_assaultammo", "360", "How much Ammo for AK74, M4A1, SG552, M60 and Desert Rifle.", FCVAR_PLUGIN, true, 0.0, true, 360.0);
SMGMaxAmmo = CreateConVar("sm_spawnweapon_smgammo", "650", "How much Ammo for SMG, Silenced SMG and MP5", FCVAR_PLUGIN, true, 0.0, true, 650.0);
ShotgunMaxAmmo = CreateConVar("sm_spawnweapon_shotgunammo", "56", "How much Ammo for Shotgun and Chrome Shotgun.", FCVAR_PLUGIN, true, 0.0, true, 56.0);
AutoShotgunMaxAmmo = CreateConVar("sm_spawnweapon_autoshotgunammo", "90", "How much Ammo for Autoshotgun and SPAS.", FCVAR_PLUGIN, true, 0.0, true, 90.0);
HRMaxAmmo = CreateConVar("sm_spawnweapon_huntingrifleammo", "150", "How much Ammo for the Hunting Rifle.", FCVAR_PLUGIN, true, 0.0, true, 150.0);
SniperRifleMaxAmmo = CreateConVar("sm_spawnweapon_sniperrifleammo", "180", "How much Ammo for the Military Sniper Rifle, AWP and Scout.", FCVAR_PLUGIN, true, 0.0, true, 180.0);
GrenadeLauncherMaxAmmo = CreateConVar("sm_spawnweapon_grenadelauncherammo", "30", "How much Ammo for the Grenade Launcher.", FCVAR_PLUGIN, true, 0.0, true, 30.0);
AllowAllMeleeWeapons = CreateConVar("sm_spawnweapon_allowallmeleeweapons", "0", "Allow or Disallow all melee weapons on all campaigns.", FCVAR_PLUGIN, true, 0.0, true, 1.0);
DebugInformations = CreateConVar("sm_spawnweapon_debug", "0", "Enable or Disable Debug Informations.", FCVAR_PLUGIN, true, 0.0, true, 1.0);
/* Config File */
AutoExecConfig(true, "l4d2_weaponspawner");
/*Menu Handler */
new Handle:topmenu
if (LibraryExists("adminmenu") && ((topmenu = GetAdminTopMenu()) != INVALID_HANDLE))
{
OnAdminMenuReady(topmenu)
}
/* Load translations */
LoadTranslations("common.phrases");
LoadTranslations("weaponspawner.phrases");
}
public OnMapStart()
{
/* Precache Models */
PrecacheModel("models/v_models/v_rif_sg552.mdl", true);
PrecacheModel("models/w_models/weapons/w_rifle_sg552.mdl", true);
PrecacheModel("models/v_models/v_snip_awp.mdl", true);
PrecacheModel("models/w_models/weapons/w_sniper_awp.mdl", true);
PrecacheModel("models/v_models/v_snip_scout.mdl", true);
PrecacheModel("models/w_models/weapons/w_sniper_scout.mdl", true);
PrecacheModel("models/v_models/v_smg_mp5.mdl", true);
PrecacheModel("models/w_models/weapons/w_smg_mp5.mdl", true);
PrecacheModel("models/w_models/weapons/50cal.mdl", true);
PrecacheModel("models/w_models/v_rif_m60.mdl", true);
PrecacheModel("models/w_models/weapons/w_m60.mdl", true);
PrecacheModel("models/v_models/v_m60.mdl", true);
PrecacheModel("models/infected/witch_bride.mdl", true);
PrecacheModel("models/props_industrial/barrel_fuel.mdl", true);
PrecacheModel("models/props_industrial/barrel_fuel_partb.mdl", true);
PrecacheModel("models/props_industrial/barrel_fuel_parta.mdl", true);
PrecacheModel("models/w_models/weapons/w_minigun.mdl", true);
PrecacheModel("models/w_models/weapons/50cal.mdl", true);
GetCurrentMap(MapName, sizeof(MapName));
}
/* Spawn Weapon */
public Action:Command_SpawnWeapon(client, args)
{
new amount;
decl String:weapon[40], String:arg1[40], String:arg2[5];
decl maxammo;
if (client == 0)
{
ReplyToCommand(client, "%t", "Command is in-game only", LANG_SERVER);
return Plugin_Handled;
}
if (args == 2)
{
GetCmdArg(1, arg1, sizeof(arg1));
GetCmdArg(2, arg2, sizeof(arg2));
Format(weapon, sizeof(weapon), "weapon_%s", arg1);
amount = StringToInt(arg2);
}
else if (args == 1)
{
GetCmdArg(1, arg1, sizeof(arg1));
Format(weapon, sizeof(weapon), "weapon_%s", arg1);
amount = 1
}
else
{
ReplyToCommand(client, "%t", "SpawnWeaponUsage", LANG_SERVER);
return Plugin_Handled;
}
if(!SetTeleportEndPoint(client))
{
ReplyToCommand(client, "[SM] %t", "SpawnError", LANG_SERVER);
return Plugin_Handled;
}
if (StrEqual(weapon, "rifle", false) || StrEqual(weapon, "rifle_ak47", false) || StrEqual(weapon, "rifle_desert", false) || StrEqual(weapon, "rifle_sg552", false) || StrEqual(weapon, "rifle_m60", false))
{
maxammo = GetConVarInt(AssaultMaxAmmo);
}
else if (StrContains(weapon, "smg", false))
{
maxammo = GetConVarInt(SMGMaxAmmo);
}
else if (StrEqual(weapon, "pumpshotgun", false) || StrEqual(weapon, "shotgun_chrome", false))
{
maxammo = GetConVarInt(ShotgunMaxAmmo);
}
else if (StrEqual(weapon, "autoshotgun", false) || StrEqual(weapon, "shotgun_spas", false))
{
maxammo = GetConVarInt(AutoShotgunMaxAmmo);
}
else if (StrEqual(weapon, "hunting_rifle", false))
{
maxammo = GetConVarInt(HRMaxAmmo);
}
else if (StrContains(weapon, "sniper", false))
{
maxammo = GetConVarInt(SniperRifleMaxAmmo);
}
else if (StrEqual(weapon, "grenade_launcher", false))
{
maxammo = GetConVarInt(GrenadeLauncherMaxAmmo);
}
new i=0
while (++i <= amount)
{
if(StrEqual(weapon, "weapon_explosive_barrel", false))
{
new ent = CreateEntityByName("prop_fuel_barrel");
DispatchKeyValue(ent, "model", "models/props_industrial/barrel_fuel.mdl");
DispatchKeyValue(ent, "BasePiece", "models/props_industrial/barrel_fuel_partb.mdl");
DispatchKeyValue(ent, "FlyingPiece01", "models/props_industrial/barrel_fuel_parta.mdl");
DispatchKeyValue(ent, "DetonateParticles", "weapon_pipebomb");
DispatchKeyValue(ent, "FlyingParticles", "barrel_fly");
DispatchKeyValue(ent, "DetonateSound", "BaseGrenade.Explode");
DispatchSpawn(ent);
g_pos[2] -= 10.0-(i*2);
TeleportEntity(ent, g_pos, NULL_VECTOR, NULL_VECTOR); //Teleport spawned weapon
}
else if(StrEqual(weapon, "weapon_laser_sight", false))
{
new String:position[64];
new ent = CreateEntityByName("upgrade_spawn");
DispatchKeyValue(ent, "count", "1");
DispatchKeyValue(ent, "laser_sight", "1");
Format(position, sizeof(position), "%1.1f %1.1f %1.1f", g_pos[0], g_pos[1], g_pos[2] -= 10.0-(i*2));
DispatchKeyValue(ent, "origin", position);
DispatchKeyValue(ent, "classname", "upgrade_spawn");
DispatchSpawn(ent);
}
else
{
new iWeapon = CreateEntityByName(weapon);
if(IsValidEntity(iWeapon))
{
DispatchSpawn(iWeapon); //Spawn weapon (entity)
if (!StrEqual(weapon, "weapon_ammo_spawn", false))
{
SetEntProp(iWeapon, Prop_Send, "m_iExtraPrimaryAmmo", maxammo ,4); //Adds max ammo for weapon
}
if (GetConVarInt(DebugInformations))
{
PrintToChat(client, "You spawned: %s", weapon)
}
g_pos[2] -= 10.0-(i*2);
TeleportEntity(iWeapon, g_pos, NULL_VECTOR, NULL_VECTOR); //Teleport spawned weapon
}
}
}
return Plugin_Handled;
}
/* >>> end of Spawn Weapon */
/* Give Weapon */
public Action:Command_GiveWeapon(client, args)
{
if (args < 2)
{
ReplyToCommand(client, "%t", "GiveWeaponUsage", LANG_SERVER)
return Plugin_Handled;
}
decl String:arg[65];
GetCmdArg(1, arg, sizeof(arg));
decl String:weapon[65];
GetCmdArg(2, weapon, sizeof(weapon));
decl String:target_name[MAX_TARGET_LENGTH];
decl target_list[MAXPLAYERS], target_count, bool:tn_is_ml;
if ((target_count = ProcessTargetString(
arg,
client,
target_list,
MAXPLAYERS,
COMMAND_FILTER_ALIVE,
target_name,
sizeof(target_name),
tn_is_ml)) <= 0)
{
ReplyToTargetError(client, target_count);
return Plugin_Handled;
}
for (new i = 0; i < target_count; i++)
{
if ((strcmp(weapon, "laser_sight") == 0) || (strcmp(weapon, "explosive_ammo") == 0) || (strcmp(weapon, "incendiary_ammo") == 0))
{
new flagsupgrade_add = GetCommandFlags("upgrade_add");
SetCommandFlags("upgrade_add", flagsupgrade_add & ~FCVAR_CHEAT);
if (IsClientInGame(target_list[i])) FakeClientCommand(target_list[i], "upgrade_add %s", weapon);
SetCommandFlags("upgrade_add", flagsupgrade_add|FCVAR_CHEAT);
}
else
{
new flagsgive = GetCommandFlags("give");
SetCommandFlags("give", flagsgive & ~FCVAR_CHEAT);
if (IsClientInGame(target_list[i])) FakeClientCommand(target_list[i], "give %s", weapon);
SetCommandFlags("give", flagsgive|FCVAR_CHEAT);
}
}
return Plugin_Handled;
}
/* >>> end of Give Weapon */
/* Spawn Zombie */
public Action:Command_SpawnZombie(client, args)
{
new amount
decl String:zombie[56], String:arg2[5];
if (client == 0)
{
GetCmdArg(1, zombie, sizeof(zombie));
if(!StrEqual(zombie, "mob", false))
{
ReplyToCommand(client, "%t", "Command is in-game only", LANG_SERVER)
return Plugin_Handled;
}
return Plugin_Handled;
}
if (args == 2)
{
GetCmdArg(1, zombie, sizeof(zombie));
GetCmdArg(2, arg2, sizeof(arg2));
amount = StringToInt(arg2);
}
else if (args == 1)
{
GetCmdArg(1, zombie, sizeof(zombie));
amount = 1
}
else
{
ReplyToCommand(client, "%t", "SpawnZombieUsage", LANG_SERVER)
return Plugin_Handled;
}
new i=0
while (++i <= amount)
{
if (IsClientConnected(client) && IsClientInGame(client))
{
new flags = GetCommandFlags("z_spawn");
SetCommandFlags("z_spawn", flags & ~FCVAR_CHEAT);
FakeClientCommand(client, "z_spawn %s", zombie);
SetCommandFlags("z_spawn", flags|FCVAR_CHEAT);
}
}
return Plugin_Handled;
}
/* >>> end of Spawn Zombie */
/* Minigun */
public Action:Command_SpawnMinigun(client, args)
{
if( !client )
{
ReplyToCommand(client, "%t", "Command is in-game only", LANG_SERVER);
return Plugin_Handled;
}
if(args == 1)
{
new String:arg1[40];
GetCmdArg(1, arg1, sizeof(arg1));
if(StringToInt(arg1) == 0) return Plugin_Handled;
switch(StringToInt(arg1))
{
case 1:
SpawnMiniGun(client, 1);
case 2:
SpawnMiniGun(client, 2);
}
}
return Plugin_Handled;
}
public SpawnMiniGun(client, type)
{
decl Float:VecOrigin[3], Float:VecAngles[3], Float:VecDirection[3];
new minigun;
switch(type)
{
case 1:
{
minigun = CreateEntityByName("prop_minigun");
if (minigun == -1)
{
ReplyToCommand(client, "[SM] %t", "MinigunFailed", LANG_SERVER);
}
DispatchKeyValue(minigun, "model", "models/w_models/weapons/50cal.mdl");
}
case 2:
{
minigun = CreateEntityByName("prop_minigun_l4d1");
if (minigun == -1)
{
ReplyToCommand(client, "[SM] %t", "MinigunFailed", LANG_SERVER);
}
DispatchKeyValue(minigun, "model", "models/w_models/weapons/w_minigun.mdl");
}
}
DispatchKeyValueFloat (minigun, "MaxPitch", 360.00);
DispatchKeyValueFloat (minigun, "MinPitch", -360.00);
DispatchKeyValueFloat (minigun, "MaxYaw", 90.00);
DispatchSpawn(minigun);
GetClientAbsOrigin(client, VecOrigin);
GetClientEyeAngles(client, VecAngles);
GetAngleVectors(VecAngles, VecDirection, NULL_VECTOR, NULL_VECTOR);
VecOrigin[0] += VecDirection[0] * 32;
VecOrigin[1] += VecDirection[1] * 32;
VecOrigin[2] += VecDirection[2] * 1;
VecAngles[0] = 0.0;
VecAngles[2] = 0.0;
DispatchKeyValueVector(minigun, "Angles", VecAngles);
DispatchSpawn(minigun);
TeleportEntity(minigun, VecOrigin, NULL_VECTOR, NULL_VECTOR);
}
public Action:Command_RemoveMinigun(client, args)
{
if(!client)
{
ReplyToCommand(client, "%t", "Command is in-game only", LANG_SERVER);
return Plugin_Handled;
}
RemoveMiniGun(client);
return Plugin_Handled;
}
public RemoveMiniGun(client)
{
decl String:Classname[128];
new minigun = GetClientAimTarget(client, false);
if ((minigun == -1) || (!IsValidEntity (minigun)))
{
ReplyToCommand (client, "[SM] %t","RemoveMinigunError_01");
return;
}
GetEdictClassname(minigun, Classname, sizeof(Classname));
if(StrEqual(Classname, "prop_minigun_l4d1", false) || StrEqual(Classname, "prop_minigun", false))
{
RemoveEdict(minigun);
}
else
{
ReplyToCommand (client, "[SM] %t", "RemoveMinigunError_02");
}
}
/* >>> end of Minigun */
/* Menu */
public OnAdminMenuReady(Handle:topmenu)
{
if (topmenu == hAdminMenu)
{
return;
}
hAdminMenu = topmenu
new TopMenuObject:menu_category = AddToTopMenu(hAdminMenu, "sm_ws_topmenu", TopMenuObject_Category, Handle_Category, INVALID_TOPMENUOBJECT);
if (menu_category != INVALID_TOPMENUOBJECT)
{
AddToTopMenu(hAdminMenu, "sm_sw_menu", TopMenuObject_Item, AdminMenu_WeaponSpawner, menu_category, "sm_sw_menu", ADMFLAG_SLAY);
AddToTopMenu(hAdminMenu, "sm_gw_menu", TopMenuObject_Item, AdminMenu_WeaponGive, menu_category, "sm_gw_menu", ADMFLAG_SLAY);
AddToTopMenu(hAdminMenu, "sm_spawn_menu", TopMenuObject_Item, AdminMenu_ZombieSpawnMenu, menu_category, "sm_spawn_menu", ADMFLAG_SLAY);
AddToTopMenu(hAdminMenu, "sm_smg_menu", TopMenuObject_Item, AdminMenu_MachineGunSpawnMenu, menu_category, "sm_smg_menu", ADMFLAG_SLAY);
}
}
public Handle_Category(Handle:topmenu, TopMenuAction:action, TopMenuObject:object_id, param, String:buffer[], maxlength)
{
switch(action)
{
case TopMenuAction_DisplayTitle:
Format(buffer, maxlength, "What do you want?");
case TopMenuAction_DisplayOption:
Format(buffer, maxlength, "%T", "WeaponSpawner", LANG_SERVER)
}
}
/* Weapon Spawn Menu */
public AdminMenu_WeaponSpawner(Handle:topmenu, TopMenuAction:action, TopMenuObject:object_id, param, String:buffer[], maxlength)
{
if (action == TopMenuAction_DisplayOption)
{
Format(buffer, maxlength, "%T", "SpawnWeapon", LANG_SERVER)
}
else if( action == TopMenuAction_SelectOption)
{
DisplayWeaponMenu(param)
}
}
DisplayWeaponMenu(client)
{
decl String:melee[40], String:bulletbased[40], String:shellbased[40], String:explosivebased[40], String:healthrelated[40], String:misc[40], String:title[40];
new Handle:menu = CreateMenu(MenuHandler_Weapons)
SetMenuExitBackButton(menu, true)
Format(melee, sizeof(melee),"%T", "MeleeWeapons", LANG_SERVER)
AddMenuItem(menu, "g_MeleeMenu", melee)
Format(bulletbased, sizeof(bulletbased),"%T", "BulletBased", LANG_SERVER)
AddMenuItem(menu, "g_BulletBasedMenu", bulletbased)
Format(shellbased, sizeof(shellbased),"%T", "ShellBased", LANG_SERVER)
AddMenuItem(menu, "g_ShellBasedMenu", shellbased)
Format(explosivebased, sizeof(explosivebased),"%T", "ExplosiveBased", LANG_SERVER)
AddMenuItem(menu, "g_ExplosiveBasedMenu", explosivebased)
Format(healthrelated, sizeof(healthrelated),"%T", "HealthRelated", LANG_SERVER)
AddMenuItem(menu, "g_HealthMenu", healthrelated)
Format(misc, sizeof(misc),"%T", "Misc", LANG_SERVER)
AddMenuItem(menu, "g_MiscMenu", misc)
Format(title, sizeof(title),"%T", "DisplayWeaponMenuTitle", LANG_SERVER)
SetMenuTitle(menu, title)
DisplayMenu(menu, client, MENU_TIME_FOREVER)
}
public MenuHandler_Weapons(Handle:menu, MenuAction:action, param1, param2)
{
switch(action)
{
case MenuAction_End:
CloseHandle(menu);
case MenuAction_Cancel:
{
if (param2 == MenuCancel_ExitBack && hAdminMenu != INVALID_HANDLE)
{
DisplayTopMenu(hAdminMenu, param1, TopMenuPosition_LastCategory);
}
}
case MenuAction_Select:
{
switch(param2)
{
case 0:
BuildMeleeMenu(param1);
case 1:
BuildBulletBasedMenu(param1);
case 2:
BuildShellBasedMenu(param1);
case 3:
BuildExplosiveBasedMenu(param1);
case 4:
BuildHealthMenu(param1);
case 5:
BuildMiscMenu(param1);
}
}
}
}
BuildMeleeMenu(client)
{
decl String:fireaxe[40], String:crowbar[40], String:tonfa[40], String:baseball_bat[40], String:cricket_bat[40];
decl String:electric_guitar[40], String:golfclub[40], String:katana[40], String:frying_pan[40], String:knife[40];
decl String:machete[40], String:title[40];
if (GetConVarInt(DebugInformations))
{
PrintToChat(client, "Map Name: %s", MapName)
}
if (GetConVarInt(AllowAllMeleeWeapons) == 0)
{
if ((StrEqual(MapName, "c1m1_hotel", false)) || (StrEqual(MapName, "c1m2_streets", false)) || (StrEqual(MapName, "c1m3_mall", false)) || (StrEqual(MapName, "c1m4_atrium", false)))
{
new Handle:menu = CreateMenu(MenuHandler_SpawnMelee);
Format(cricket_bat, sizeof(cricket_bat),"%T", "CricketBat", LANG_SERVER)
AddMenuItem(menu, "cricket_bat", "Cricket Bat")
Format(crowbar, sizeof(crowbar),"%T", "Crowbar", LANG_SERVER)
AddMenuItem(menu, "crowbar", crowbar)
Format(fireaxe, sizeof(fireaxe),"%T", "FireAxe", LANG_SERVER)
AddMenuItem(menu, "fireaxe", fireaxe)
Format(katana, sizeof(katana),"%T", "Katana", LANG_SERVER)
AddMenuItem(menu, "katana", katana)
Format(baseball_bat, sizeof(baseball_bat),"%T", "BaseballBat", LANG_SERVER)
AddMenuItem(menu, "baseball_bat", baseball_bat)
Format(knife, sizeof(knife),"%T", "Knife", LANG_SERVER)
AddMenuItem(menu, "knife", knife)
Format(title, sizeof(title),"%T", "MeleeMenuTitle", LANG_SERVER)
SetMenuTitle(menu, title)
SetMenuExitBackButton(menu, true)
ChoosedMenuSpawn[client] = "MeleeBasedSpawnMenu";
DisplayMenu(menu, client, MENU_TIME_FOREVER)
if (GetConVarInt(DebugInformations))
{
PrintToChat(client, "Campaign: Dead Center")
}
}
else if ((StrEqual(MapName, "c2m1_highway", false)) || (StrEqual(MapName, "c2m2_fairgrounds", false)) || (StrEqual(MapName, "c2m3_coaster", false)) || (StrEqual(MapName, "c2m4_barns", false)) || (StrEqual(MapName, "c2m5_concert", false)))
{
new Handle:menu = CreateMenu(MenuHandler_SpawnMelee);
Format(crowbar, sizeof(crowbar),"%T", "Crowbar", LANG_SERVER)
AddMenuItem(menu, "crowbar", crowbar)
Format(electric_guitar, sizeof(electric_guitar),"%T", "ElectricGuitar", LANG_SERVER)
AddMenuItem(menu, "electric_guitar", electric_guitar)
Format(fireaxe, sizeof(fireaxe),"%T", "FireAxe", LANG_SERVER)
AddMenuItem(menu, "fireaxe", fireaxe)
Format(katana, sizeof(katana),"%T", "Katana", LANG_SERVER)
AddMenuItem(menu, "katana", katana)
Format(baseball_bat, sizeof(baseball_bat),"%T", "BaseballBat", LANG_SERVER)
AddMenuItem(menu, "baseball_bat", baseball_bat)
Format(knife, sizeof(knife),"%T", "Knife", LANG_SERVER)
AddMenuItem(menu, "knife", knife)
Format(title, sizeof(title),"%T", "MeleeMenuTitle", LANG_SERVER)
SetMenuTitle(menu, title)
SetMenuExitBackButton(menu, true)
ChoosedMenuSpawn[client] = "MeleeBasedSpawnMenu";
DisplayMenu(menu, client, MENU_TIME_FOREVER)
if (GetConVarInt(DebugInformations))
{
PrintToChat(client, "Campaign: Dark Carnival")
}
}
else if ((StrEqual(MapName, "c3m1_plankcountry", false)) || (StrEqual(MapName, "c3m2_swamp", false)) || (StrEqual(MapName, "c3m3_shantytown", false)) || (StrEqual(MapName, "c3m4_plantation", false)))
{
new Handle:menu = CreateMenu(MenuHandler_SpawnMelee);
Format(cricket_bat, sizeof(cricket_bat),"%T", "CricketBat", LANG_SERVER)
AddMenuItem(menu, "cricket_bat", cricket_bat)
Format(fireaxe, sizeof(fireaxe),"%T", "FireAxe", LANG_SERVER)
AddMenuItem(menu, "fireaxe", fireaxe)
Format(frying_pan, sizeof(frying_pan),"%T", "FryingPan", LANG_SERVER)
AddMenuItem(menu, "frying_pan", frying_pan)
Format(machete, sizeof(machete),"%T", "Machete", LANG_SERVER)
AddMenuItem(menu, "machete", machete)
Format(baseball_bat, sizeof(baseball_bat),"%T", "BaseballBat", LANG_SERVER)
AddMenuItem(menu, "baseball_bat", baseball_bat)
Format(knife, sizeof(knife),"%T", "Knife", LANG_SERVER)
AddMenuItem(menu, "knife", knife)
Format(title, sizeof(title),"%T", "MeleeMenuTitle", LANG_SERVER)
SetMenuTitle(menu, title)
SetMenuExitBackButton(menu, true)
ChoosedMenuSpawn[client] = "MeleeBasedSpawnMenu";
DisplayMenu(menu, client, MENU_TIME_FOREVER)
if (GetConVarInt(DebugInformations))
{
PrintToChat(client, "Campaign: Swamp Fever")
}
}
else if ((StrEqual(MapName, "c4m1_milltown_a", false)) || (StrEqual(MapName, "c4m2_sugarmill_a", false)) || (StrEqual(MapName, "c4m3_sugarmill_b", false)) || (StrEqual(MapName, "c4m4_milltown_b", false)) || (StrEqual(MapName, "c4m5_milltown_escape", false)))
{
new Handle:menu = CreateMenu(MenuHandler_SpawnMelee);
Format(crowbar, sizeof(crowbar),"%T", "Crowbar", LANG_SERVER)
AddMenuItem(menu, "crowbar", crowbar)
Format(fireaxe, sizeof(fireaxe),"%T", "FireAxe", LANG_SERVER)
AddMenuItem(menu, "fireaxe", fireaxe)
Format(frying_pan, sizeof(frying_pan),"%T", "FryingPan", LANG_SERVER)
AddMenuItem(menu, "frying_pan", frying_pan)
Format(katana, sizeof(katana),"%T", "Katana", LANG_SERVER)
AddMenuItem(menu, "katana", katana)
Format(baseball_bat, sizeof(baseball_bat),"%T", "BaseballBat", LANG_SERVER)
AddMenuItem(menu, "baseball_bat", baseball_bat)
Format(knife, sizeof(knife),"%T", "Knife", LANG_SERVER)
AddMenuItem(menu, "knife", knife)
Format(title, sizeof(title),"%T", "MeleeMenuTitle", LANG_SERVER)
SetMenuTitle(menu, title)
SetMenuExitBackButton(menu, true)
ChoosedMenuSpawn[client] = "MeleeBasedSpawnMenu";
DisplayMenu(menu, client, MENU_TIME_FOREVER)
if (GetConVarInt(DebugInformations))
{
PrintToChat(client, "Campaign: Hard Rain")
}
}
else if ((StrEqual(MapName, "c5m1_waterfront", false)) || (StrEqual(MapName, "c5m1_waterfront_sndscape", false)) || (StrEqual(MapName, "c5m2_park", false)) || (StrEqual(MapName, "c5m3_cemetery", false)) || (StrEqual(MapName, "c5m4_quarter", false)) || (StrEqual(MapName, "c5m5_bridge", false)))
{
new Handle:menu = CreateMenu(MenuHandler_SpawnMelee);
Format(electric_guitar, sizeof(electric_guitar),"%T", "ElectricGuitar", LANG_SERVER)
AddMenuItem(menu, "electric_guitar", electric_guitar)
Format(frying_pan, sizeof(frying_pan),"%T", "FryingPan", LANG_SERVER)
AddMenuItem(menu, "frying_pan", frying_pan)
Format(machete, sizeof(machete),"%T", "Machete", LANG_SERVER)
AddMenuItem(menu, "machete", machete)
Format(tonfa, sizeof(tonfa),"%T", "Tonfa", LANG_SERVER)
AddMenuItem(menu, "tonfa", tonfa)
Format(baseball_bat, sizeof(baseball_bat),"%T", "BaseballBat", LANG_SERVER)
AddMenuItem(menu, "baseball_bat", baseball_bat)
Format(knife, sizeof(knife),"%T", "Knife", LANG_SERVER)
AddMenuItem(menu, "knife", knife)
Format(title, sizeof(title),"%T", "MeleeMenuTitle", LANG_SERVER)
SetMenuTitle(menu, title)
SetMenuExitBackButton(menu, true)
ChoosedMenuSpawn[client] = "MeleeBasedSpawnMenu";
DisplayMenu(menu, client, MENU_TIME_FOREVER)
if (GetConVarInt(DebugInformations))
{
PrintToChat(client, "Campaign: The Parish")
}
}
else if ((StrEqual(MapName, "c6m1_riverbank", false)) || (StrEqual(MapName, "c6m2_bedlam", false)) || (StrEqual(MapName, "c6m3_port", false)))
{
new Handle:menu = CreateMenu(MenuHandler_SpawnMelee);
Format(crowbar, sizeof(crowbar),"%T", "Crowbar", LANG_SERVER)
AddMenuItem(menu, "crowbar", crowbar)
Format(baseball_bat, sizeof(baseball_bat),"%T", "BaseballBat", LANG_SERVER)
AddMenuItem(menu, "baseball_bat", baseball_bat)
Format(katana, sizeof(katana),"%T", "Katana", LANG_SERVER)
AddMenuItem(menu, "katana", katana)
Format(fireaxe, sizeof(fireaxe),"%T", "FireAxe", LANG_SERVER)
AddMenuItem(menu, "fireaxe", fireaxe)
Format(knife, sizeof(knife),"%T", "Knife", LANG_SERVER)
AddMenuItem(menu, "knife", knife)
Format(golfclub, sizeof(golfclub),"%T", "Golfclub", LANG_SERVER)
AddMenuItem(menu, "golfclub", golfclub)
Format(title, sizeof(title),"%T", "MeleeMenuTitle", LANG_SERVER)
SetMenuTitle(menu, title)
SetMenuExitBackButton(menu, true)
ChoosedMenuSpawn[client] = "MeleeBasedSpawnMenu";
DisplayMenu(menu, client, MENU_TIME_FOREVER)
if (GetConVarInt(DebugInformations))
{
PrintToChat(client, "Campaign: The Passing")
}
}
else if ((StrEqual(MapName, "c7m1_docks", false)) || (StrEqual(MapName, "c7m2_barge", false)) || (StrEqual(MapName, "c7m3_port", false)))
{
new Handle:menu = CreateMenu(MenuHandler_SpawnMelee);
Format(crowbar, sizeof(crowbar),"%T", "Crowbar", LANG_SERVER)
AddMenuItem(menu, "crowbar", crowbar)
Format(baseball_bat, sizeof(baseball_bat),"%T", "BaseballBat", LANG_SERVER)
AddMenuItem(menu, "baseball_bat", baseball_bat)
Format(cricket_bat, sizeof(cricket_bat),"%T", "CricketBat", LANG_SERVER)
AddMenuItem(menu, "cricket_bat", cricket_bat)
Format(katana, sizeof(katana),"%T", "Katana", LANG_SERVER)
AddMenuItem(menu, "katana", katana)
Format(fireaxe, sizeof(fireaxe),"%T", "FireAxe", LANG_SERVER)
AddMenuItem(menu, "fireaxe", fireaxe)
Format(knife, sizeof(knife),"%T", "Knife", LANG_SERVER)
AddMenuItem(menu, "knife", knife)
Format(title, sizeof(title),"%T", "MeleeMenuTitle", LANG_SERVER)
SetMenuTitle(menu, title)
SetMenuExitBackButton(menu, true)
ChoosedMenuSpawn[client] = "MeleeBasedSpawnMenu";
DisplayMenu(menu, client, MENU_TIME_FOREVER)
if (GetConVarInt(DebugInformations))
{
PrintToChat(client, "Campaign: The Sacrifice")
}
}
else if ((StrEqual(MapName, "c8m1_apartment", false)) || (StrEqual(MapName, "c8m2_subway", false)) || (StrEqual(MapName, "c8m3_sewers", false)) || (StrEqual(MapName, "c8m4_interior", false)) || (StrEqual(MapName, "c8m5_rooftop", false)))
{
new Handle:menu = CreateMenu(MenuHandler_SpawnMelee);
Format(crowbar, sizeof(crowbar),"%T", "Crowbar", LANG_SERVER)
AddMenuItem(menu, "crowbar", crowbar)
Format(baseball_bat, sizeof(baseball_bat),"%T", "BaseballBat", LANG_SERVER)
AddMenuItem(menu, "baseball_bat", baseball_bat)
Format(cricket_bat, sizeof(cricket_bat),"%T", "CricketBat", LANG_SERVER)
AddMenuItem(menu, "cricket_bat", cricket_bat)
Format(katana, sizeof(katana),"%T", "Katana", LANG_SERVER)
AddMenuItem(menu, "katana", katana)
Format(fireaxe, sizeof(fireaxe),"%T", "FireAxe", LANG_SERVER)
AddMenuItem(menu, "fireaxe", fireaxe)
Format(knife, sizeof(knife),"%T", "Knife", LANG_SERVER)
AddMenuItem(menu, "knife", knife)
Format(title, sizeof(title),"%T", "MeleeMenuTitle", LANG_SERVER)
SetMenuTitle(menu, title)
SetMenuExitBackButton(menu, true)
ChoosedMenuSpawn[client] = "MeleeBasedSpawnMenu";
DisplayMenu(menu, client, MENU_TIME_FOREVER)
if (GetConVarInt(DebugInformations))
{
PrintToChat(client, "Campaign: No Mercy")
}
}
else
{
new Handle:menu = CreateMenu(MenuHandler_SpawnMelee);
Format(cricket_bat, sizeof(cricket_bat),"%T", "CricketBat", LANG_SERVER)
AddMenuItem(menu, "cricket_bat", "Cricket Bat")
Format(crowbar, sizeof(crowbar),"%T", "Crowbar", LANG_SERVER)
AddMenuItem(menu, "crowbar", crowbar)
Format(electric_guitar, sizeof(electric_guitar),"%T", "ElectricGuitar", LANG_SERVER)
AddMenuItem(menu, "electric_guitar", electric_guitar)
Format(fireaxe, sizeof(fireaxe),"%T", "FireAxe", LANG_SERVER)
AddMenuItem(menu, "fireaxe", fireaxe)
Format(frying_pan, sizeof(frying_pan),"%T", "FryingPan", LANG_SERVER)
AddMenuItem(menu, "frying_pan", frying_pan)
Format(katana, sizeof(katana),"%T", "Katana", LANG_SERVER)
AddMenuItem(menu, "katana", katana)
Format(machete, sizeof(machete),"%T", "Machete", LANG_SERVER)
AddMenuItem(menu, "machete", machete)
Format(tonfa, sizeof(tonfa),"%T", "Tonfa", LANG_SERVER)
AddMenuItem(menu, "tonfa", tonfa)
Format(baseball_bat, sizeof(baseball_bat),"%T", "BaseballBat", LANG_SERVER)
AddMenuItem(menu, "baseball_bat", baseball_bat)
Format(knife, sizeof(knife),"%T", "Knife", LANG_SERVER)
AddMenuItem(menu, "knife", knife)
Format(title, sizeof(title),"%T", "MeleeMenuTitle", LANG_SERVER)
SetMenuTitle(menu, title)
SetMenuExitBackButton(menu, true)
ChoosedMenuSpawn[client] = "MeleeBasedSpawnMenu";
DisplayMenu(menu, client, MENU_TIME_FOREVER)
if (GetConVarInt(DebugInformations))
{
PrintToChat(client, "Campaign: Custom")
}
}
}
}
BuildBulletBasedMenu(client)
{
decl String:hunting_rifle[40], String:pistol[40], String:pistol_magnum[40], String:rifle[40], String:title[40];
decl String:rifle_desert[40], String:smg[40], String:smg_silenced[40], String:sniper_military[40], String:rifle_ak47[40];
decl String:rifle_sg552[40], String:smg_mp5[40], String:sniper_awp[40], String:sniper_scout[40], String:rifle_m60[40];
new Handle:menu = CreateMenu(MenuHandler_SpawnWeapon);
Format(hunting_rifle, sizeof(hunting_rifle),"%T", "HuntingRifle", LANG_SERVER)
AddMenuItem(menu, "weapon_hunting_rifle", hunting_rifle)
Format(pistol, sizeof(pistol),"%T", "Pistol", LANG_SERVER)
AddMenuItem(menu, "weapon_pistol", pistol)
Format(pistol_magnum, sizeof(pistol_magnum),"%T", "DesertEagle", LANG_SERVER)
AddMenuItem(menu, "weapon_pistol_magnum", pistol_magnum)
Format(rifle, sizeof(rifle),"%T", "Rifle", LANG_SERVER)
AddMenuItem(menu, "weapon_rifle", rifle)
Format(rifle_desert, sizeof(rifle_desert),"%T", "DesertRifle", LANG_SERVER)
AddMenuItem(menu, "weapon_rifle_desert", rifle_desert)
Format(smg, sizeof(smg),"%T", "SubmachineGun", LANG_SERVER)
AddMenuItem(menu, "weapon_smg", smg)
Format(smg_silenced, sizeof(smg_silenced),"%T", "SilencedSubmachineGun", LANG_SERVER)
AddMenuItem(menu, "weapon_smg_silenced", smg_silenced)
Format(sniper_military, sizeof(sniper_military),"%T", "MilitarySniper", LANG_SERVER)
AddMenuItem(menu, "weapon_sniper_military", sniper_military)
Format(rifle_ak47, sizeof(rifle_ak47),"%T", "AvtomatKalashnikova", LANG_SERVER)
AddMenuItem(menu, "weapon_rifle_ak47", rifle_ak47)
Format(rifle_sg552, sizeof(rifle_sg552),"%T", "SIGSG550", LANG_SERVER)
AddMenuItem(menu, "weapon_rifle_sg552", rifle_sg552)
Format(smg_mp5, sizeof(smg_mp5),"%T", "SubmachineGunMP5", LANG_SERVER)
AddMenuItem(menu, "weapon_smg_mp5", smg_mp5)
Format(rifle_m60, sizeof(rifle_m60),"%T", "RifleM60", LANG_SERVER)
AddMenuItem(menu, "weapon_rifle_m60", rifle_m60)
Format(sniper_awp, sizeof(sniper_awp),"%T", "AWP", LANG_SERVER)
AddMenuItem(menu, "weapon_sniper_awp", sniper_awp)
Format(sniper_scout, sizeof(sniper_scout),"%T", "ScoutSniper", LANG_SERVER)
AddMenuItem(menu, "weapon_sniper_scout", sniper_scout)
Format(title, sizeof(title),"%T", "BulletBasedMenuTitle", LANG_SERVER)
SetMenuTitle(menu, title)
SetMenuExitBackButton(menu, true)
ChoosedMenuSpawn[client] = "BulletBasedSpawnMenu";
DisplayMenu(menu, client, MENU_TIME_FOREVER)
}
BuildShellBasedMenu(client)
{
decl String:autoshotgun[40], String:shotgun_chrome[40], String:shotgun_spas[40], String:pumpshotgun[40], String:title[40];
new Handle:menu = CreateMenu(MenuHandler_SpawnWeapon);
Format(autoshotgun, sizeof(autoshotgun),"%T", "AutoShotgun", LANG_SERVER)
AddMenuItem(menu, "weapon_autoshotgun", autoshotgun)
Format(shotgun_chrome, sizeof(shotgun_chrome),"%T", "ChromeShotgun", LANG_SERVER)
AddMenuItem(menu, "weapon_shotgun_chrome", shotgun_chrome)
Format(shotgun_spas, sizeof(shotgun_spas),"%T", "SpasShotgun", LANG_SERVER)
AddMenuItem(menu, "weapon_shotgun_spas", shotgun_spas)
Format(pumpshotgun, sizeof(pumpshotgun),"%T", "PumpShotgun", LANG_SERVER)
AddMenuItem(menu, "weapon_pumpshotgun", pumpshotgun)
Format(title, sizeof(title),"%T", "ShellBasedMenuTitle", LANG_SERVER)
SetMenuTitle(menu, title)
SetMenuExitBackButton(menu, true)
ChoosedMenuSpawn[client] = "ShellBasedSpawnMenu";
DisplayMenu(menu, client, MENU_TIME_FOREVER)
}
BuildExplosiveBasedMenu(client)
{
decl String:grenade_launcher[40], String:fireworkcrate[40], String:gascan[40], String:molotov[40], String:oxygentank[40], String:pipe_bomb[40], String:propanetank[40], String:explosivebarrel[40], String:title[40];
new Handle:menu = CreateMenu(MenuHandler_SpawnWeapon);
Format(grenade_launcher, sizeof(grenade_launcher),"%T", "GrenadeLauncher", LANG_SERVER)
AddMenuItem(menu, "weapon_grenade_launcher", grenade_launcher)
Format(explosivebarrel, sizeof(explosivebarrel),"%T", "ExplosiveBarrel", LANG_SERVER)
AddMenuItem(menu, "weapon_explosive_barrel", explosivebarrel)
Format(fireworkcrate, sizeof(fireworkcrate),"%T", "FireworksCrate", LANG_SERVER)
AddMenuItem(menu, "weapon_fireworkcrate", fireworkcrate)
Format(gascan, sizeof(gascan),"%T", "Gascan", LANG_SERVER)
AddMenuItem(menu, "weapon_gascan", gascan)
Format(molotov, sizeof(molotov),"%T", "Molotov", LANG_SERVER)
AddMenuItem(menu, "weapon_molotov", molotov)
Format(oxygentank, sizeof(oxygentank),"%T", "OxygenTank", LANG_SERVER)
AddMenuItem(menu, "weapon_oxygentank", oxygentank)
Format(pipe_bomb, sizeof(pipe_bomb),"%T", "PipeBomb", LANG_SERVER)
AddMenuItem(menu, "weapon_pipe_bomb", pipe_bomb)
Format(propanetank, sizeof(propanetank),"%T", "PropaneTank", LANG_SERVER)
AddMenuItem(menu, "weapon_propanetank", propanetank)
Format(title, sizeof(title),"%T", "ExplosiveBasedMenuTitle", LANG_SERVER)
SetMenuTitle(menu, title)
SetMenuExitBackButton(menu, true)
ChoosedMenuSpawn[client] = "ExplosiveBasedSpawnMenu";
DisplayMenu(menu, client, MENU_TIME_FOREVER)
}
BuildHealthMenu(client)
{
decl String:adrenaline[40], String:defibrillator[40], String:first_aid_kit[40], String:pain_pills[40], String:title[40];
new Handle:menu = CreateMenu(MenuHandler_SpawnWeapon);
Format(adrenaline, sizeof(adrenaline),"%T", "Adrenaline", LANG_SERVER)
AddMenuItem(menu, "weapon_adrenaline", adrenaline)
Format(defibrillator, sizeof(defibrillator),"%T", "Defibrillator", LANG_SERVER)
AddMenuItem(menu, "weapon_defibrillator", defibrillator)
Format(first_aid_kit, sizeof(first_aid_kit),"%T", "FirstAidKit", LANG_SERVER)
AddMenuItem(menu, "weapon_first_aid_kit", first_aid_kit)
Format(pain_pills, sizeof(pain_pills),"%T", "PainPills", LANG_SERVER)
AddMenuItem(menu, "weapon_pain_pills", "Pain Pills")
Format(title, sizeof(title),"%T", "HealthMenuTitle", LANG_SERVER)
SetMenuTitle(menu, title)
SetMenuExitBackButton(menu, true)
ChoosedMenuSpawn[client] = "HealthSpawnMenu";
DisplayMenu(menu, client, MENU_TIME_FOREVER)
}
BuildMiscMenu(client)
{
decl String:chainsaw[40], String:ammo_spawn[40], String:upgradepack_explosive[40], String:upgradepack_incendiary[40], String:vomitjar[40], String:gnome[40], String:cola[40], String:laser_sight_box[40], String:title[40];
new Handle:menu = CreateMenu(MenuHandler_SpawnWeapon);
Format(chainsaw, sizeof(chainsaw),"%T", "ChainSaw", LANG_SERVER)
AddMenuItem(menu, "weapon_chainsaw", chainsaw)
Format(ammo_spawn, sizeof(ammo_spawn),"%T", "AmmoStack", LANG_SERVER)
AddMenuItem(menu, "weapon_ammo_spawn", ammo_spawn)
Format(laser_sight_box, sizeof(laser_sight_box),"%T", "LaserSightBox", LANG_SERVER)
AddMenuItem(menu, "weapon_laser_sight", laser_sight_box)
Format(upgradepack_explosive, sizeof(upgradepack_explosive),"%T", "ExplosiveAmmoPack", LANG_SERVER)
AddMenuItem(menu, "weapon_upgradepack_explosive", upgradepack_explosive)
Format(upgradepack_incendiary, sizeof(upgradepack_incendiary),"%T", "IncendiaryAmmoPack", LANG_SERVER)
AddMenuItem(menu, "weapon_upgradepack_incendiary", upgradepack_incendiary)
Format(vomitjar, sizeof(vomitjar),"%T", "VomitJar", LANG_SERVER)
AddMenuItem(menu, "weapon_vomitjar", vomitjar)
Format(gnome, sizeof(gnome),"%T", "Gnome", LANG_SERVER)
AddMenuItem(menu, "weapon_gnome", gnome)
Format(cola, sizeof(cola),"%T", "Cola", LANG_SERVER)
AddMenuItem(menu, "weapon_cola_bottles", cola)
Format(title, sizeof(title),"%T", "MiscMenuTitle", LANG_SERVER)
SetMenuTitle(menu, title)
SetMenuExitBackButton(menu, true)
ChoosedMenuSpawn[client] = "MiscSpawnMenu";
DisplayMenu(menu, client, MENU_TIME_FOREVER)
}
public MenuHandler_SpawnWeapon(Handle:menu, MenuAction:action, param1, param2)
{
switch(action)
{
case MenuAction_End:
{
CloseHandle(menu);
}
case MenuAction_Cancel:
{
if (param2 == MenuCancel_ExitBack)
{
DisplayWeaponMenu(param1)
}
}
case MenuAction_Select:
{
new String:weapon[32];
decl maxammo;
GetMenuItem(menu, param2, weapon, sizeof(weapon));
if(!SetTeleportEndPoint(param1))
{
PrintToChat(param1, "[SM] %T", "SpawnError", LANG_SERVER);
}
if (StrEqual(weapon, "weapon_rifle", false) || StrEqual(weapon, "weapon_rifle_ak47", false) || StrEqual(weapon, "weapon_rifle_desert", false) || StrEqual(weapon, "weapon_rifle_m60", false) || StrEqual(weapon, "weapon_rifle_sg552", false))
{
maxammo = GetConVarInt(AssaultMaxAmmo);
}
else if (StrEqual(weapon, "weapon_smg", false) || StrEqual(weapon, "weapon_smg_silenced", false) || StrEqual(weapon, "weapon_smg_mp5", false))
{
maxammo = GetConVarInt(SMGMaxAmmo);
}
else if (StrEqual(weapon, "weapon_pumpshotgun", false) || StrEqual(weapon, "weapon_shotgun_chrome", false))
{
maxammo = GetConVarInt(ShotgunMaxAmmo);
}
else if (StrEqual(weapon, "weapon_autoshotgun", false) || StrEqual(weapon, "weapon_shotgun_spas", false))
{
maxammo = GetConVarInt(AutoShotgunMaxAmmo);
}
else if (StrEqual(weapon, "weapon_hunting_rifle", false))
{
maxammo = GetConVarInt(HRMaxAmmo);
}
else if (StrEqual(weapon, "weapon_sniper_military", false) || StrEqual(weapon, "weapon_sniper_awp", false) || StrEqual(weapon, "weapon_sniper_scout", false))
{
maxammo = GetConVarInt(SniperRifleMaxAmmo);
}
else if (StrEqual(weapon, "weapon_grenade_launcher", false))
{
maxammo = GetConVarInt(GrenadeLauncherMaxAmmo);
}
if(StrEqual(weapon, "weapon_explosive_barrel", false))
{
new ent = CreateEntityByName("prop_fuel_barrel");
DispatchKeyValue(ent, "model", "models/props_industrial/barrel_fuel.mdl");
DispatchKeyValue(ent, "BasePiece", "models/props_industrial/barrel_fuel_partb.mdl");
DispatchKeyValue(ent, "FlyingPiece01", "models/props_industrial/barrel_fuel_parta.mdl");
DispatchKeyValue(ent, "DetonateParticles", "weapon_pipebomb");
DispatchKeyValue(ent, "FlyingParticles", "barrel_fly");
DispatchKeyValue(ent, "DetonateSound", "BaseGrenade.Explode");
DispatchSpawn(ent);
g_pos[2] -= 10.0;
TeleportEntity(ent, g_pos, NULL_VECTOR, NULL_VECTOR); //Teleport spawned weapon
}
else if(StrEqual(weapon, "weapon_laser_sight", false))
{
new String:position[64];
new ent = CreateEntityByName("upgrade_spawn");
DispatchKeyValue(ent, "count", "1");
DispatchKeyValue(ent, "laser_sight", "1");
Format(position, sizeof(position), "%1.1f %1.1f %1.1f", g_pos[0], g_pos[1], g_pos[2] -= 10.0);
DispatchKeyValue(ent, "origin", position);
DispatchKeyValue(ent, "classname", "upgrade_spawn");
DispatchSpawn(ent);
}
else
{
new iWeapon = CreateEntityByName(weapon);
if(IsValidEntity(iWeapon))
{
DispatchSpawn(iWeapon); //Spawn weapon (entity)
if (!StrEqual(weapon, "weapon_ammo_spawn", false))
{
SetEntProp(iWeapon, Prop_Send, "m_iExtraPrimaryAmmo", maxammo ,4); //Adds max ammo for weapon
}
}
g_pos[2] -= 10.0;
TeleportEntity(iWeapon, g_pos, NULL_VECTOR, NULL_VECTOR); //Teleport spawned weapon
}
ChoosedSpawnMenuHistory(param1); //Redraw menu after item selection
}
}
}
public MenuHandler_SpawnMelee(Handle:menu, MenuAction:action, param1, param2)
{
switch(action)
{
case MenuAction_End:
{
CloseHandle(menu);
}
case MenuAction_Cancel:
{
if (param2 == MenuCancel_ExitBack)
{
DisplayWeaponMenu(param1)
}
}
case MenuAction_Select:
{
new String:weapon[32];
GetMenuItem(menu, param2, weapon, sizeof(weapon));
if(!SetTeleportEndPoint(param1))
{
PrintToChat(param1, "[SM] %T", "SpawnError", LANG_SERVER);
}
new iWeapon = CreateEntityByName("weapon_melee");
if(IsValidEntity(iWeapon))
{
DispatchKeyValue(iWeapon, "melee_script_name", weapon);
DispatchSpawn(iWeapon); //Spawn weapon (entity)
g_pos[2] -= 10.0;
TeleportEntity(iWeapon, g_pos, NULL_VECTOR, NULL_VECTOR); //Teleport spawned weapon
new String:ModelName[128];
GetEntPropString(iWeapon, Prop_Data, "m_ModelName", ModelName, 128);
if( StrContains( ModelName, "hunter", false ) != -1)
{
RemoveEdict(iWeapon);
}
if (GetConVarInt(DebugInformations))
{
PrintToChat(param1, "You spawned: %s", weapon)
}
}
ChoosedSpawnMenuHistory(param1); //Redraw menu after item selection
}
}
}
stock ChoosedSpawnMenuHistory(param1)
{
if (strcmp(ChoosedMenuSpawn[param1], "MeleeBasedSpawnMenu") == 0)
{
BuildMeleeMenu(param1);
}
if (strcmp(ChoosedMenuSpawn[param1], "BulletBasedSpawnMenu") == 0)
{
BuildBulletBasedMenu(param1);
}
else if (strcmp(ChoosedMenuSpawn[param1], "ShellBasedSpawnMenu") == 0)
{
BuildShellBasedMenu(param1);
}
else if (strcmp(ChoosedMenuSpawn[param1], "ExplosiveBasedSpawnMenu") == 0)
{
BuildExplosiveBasedMenu(param1);
}
else if (strcmp(ChoosedMenuSpawn[param1], "HealthSpawnMenu") == 0)
{
BuildHealthMenu(param1);
}
else if (strcmp(ChoosedMenuSpawn[param1], "MiscSpawnMenu") == 0)
{
BuildMiscMenu(param1);
}
}
/* >>> end of Weapon Spawn Menu */
/* Weapon Give Menu */
public AdminMenu_WeaponGive(Handle:topmenu, TopMenuAction:action, TopMenuObject:object_id, param, String:buffer[], maxlength)
{
switch(action)
{
case MenuAction_End:
CloseHandle(topmenu);
case TopMenuAction_DisplayOption:
Format(buffer, maxlength, "Give Weapon");
case TopMenuAction_SelectOption:
DisplayWeaponGiveMenu(param);
}
}
DisplayWeaponGiveMenu(client)
{
decl String:MeleeGiveMenu[40], String:BulletBasedGiveMenu[40], String:ShellBasedGiveMenu[40];
decl String:ExplosiveBasedGiveMenu[40], String:HealthGiveMenu[40], String:MiscGiveMenu[40], String:title[40];
new Handle:menu = CreateMenu(MenuHandler_GiveWeapons)
Format(MeleeGiveMenu, sizeof(MeleeGiveMenu),"%T", "MeleeWeapons", LANG_SERVER)
AddMenuItem(menu, "g_MeleeGiveMenu", MeleeGiveMenu)
Format(BulletBasedGiveMenu, sizeof(BulletBasedGiveMenu),"%T", "BulletBased", LANG_SERVER)
AddMenuItem(menu, "g_BulletBasedGiveMenu", BulletBasedGiveMenu)
Format(ShellBasedGiveMenu, sizeof(ShellBasedGiveMenu),"%T", "ShellBased", LANG_SERVER)
AddMenuItem(menu, "g_ShellBasedGiveMenu", ShellBasedGiveMenu)
Format(ExplosiveBasedGiveMenu, sizeof(ExplosiveBasedGiveMenu),"%T", "ExplosiveBased", LANG_SERVER)
AddMenuItem(menu, "g_ExplosiveBasedGiveMenu", ExplosiveBasedGiveMenu)
Format(HealthGiveMenu, sizeof(HealthGiveMenu),"%T", "HealthRelated", LANG_SERVER)
AddMenuItem(menu, "g_HealthGiveMenu", HealthGiveMenu)
Format(MiscGiveMenu, sizeof(MiscGiveMenu),"%T", "Misc", LANG_SERVER)
AddMenuItem(menu, "g_MiscGiveMenu", MiscGiveMenu)
Format(title, sizeof(title),"%T", "WeaponGiveMenuTitle", LANG_SERVER)
SetMenuTitle(menu, title)
SetMenuExitBackButton(menu, true)
DisplayMenu(menu, client, MENU_TIME_FOREVER)
}
public MenuHandler_GiveWeapons(Handle:menu, MenuAction:action, param1, param2)
{
switch(action)
{
case MenuAction_End:
CloseHandle(menu);
case MenuAction_Cancel:
{
if (param2 == MenuCancel_ExitBack && hAdminMenu != INVALID_HANDLE)
{
DisplayTopMenu(hAdminMenu, param1, TopMenuPosition_LastCategory);
}
}
case MenuAction_Select:
{
switch(param2)
{
case 0:
BuildMeleeGiveMenu(param1);
case 1:
BuildBulletBasedGiveMenu(param1);
case 2:
BuildShellBasedGiveMenu(param1);
case 3:
BuildExplosiveBasedGiveMenu(param1);
case 4:
BuildHealthGiveMenu(param1);
case 5:
BuildMiscGiveMenu(param1);
}
}
}
}
BuildMeleeGiveMenu(client)
{
decl String:baseball_bat[40], String:cricket_bat[40], String:crowbar[40], String:electric_guitar[40], String:fireaxe[40];
decl String:frying_pan[40], String:katana[40], String:machete[40], String:tonfa[40], String:knife[40], String:golfclub[40], String:title[40]
if (GetConVarInt(DebugInformations))
{
PrintToChat(client, "Map Name: %s", MapName)
}
if (GetConVarInt(AllowAllMeleeWeapons) == 0)
{
if ((StrEqual(MapName, "c1m1_hotel", false)) || (StrEqual(MapName, "c1m2_streets", false)) || (StrEqual(MapName, "c1m3_mall", false)) || (StrEqual(MapName, "c1m4_atrium", false)))
{
new Handle:menu = CreateMenu(MenuHandler_GiveWeapon);
Format(cricket_bat, sizeof(cricket_bat),"%T", "CricketBat", LANG_SERVER)
AddMenuItem(menu, "cricket_bat", "Cricket Bat")
Format(crowbar, sizeof(crowbar),"%T", "Crowbar", LANG_SERVER)
AddMenuItem(menu, "crowbar", crowbar)
Format(fireaxe, sizeof(fireaxe),"%T", "FireAxe", LANG_SERVER)
AddMenuItem(menu, "fireaxe", fireaxe)
Format(katana, sizeof(katana),"%T", "Katana", LANG_SERVER)
AddMenuItem(menu, "katana", katana)
Format(baseball_bat, sizeof(baseball_bat),"%T", "BaseballBat", LANG_SERVER)
AddMenuItem(menu, "baseball_bat", baseball_bat)
Format(knife, sizeof(knife),"%T", "Knife", LANG_SERVER)
AddMenuItem(menu, "knife", knife)
Format(title, sizeof(title),"%T", "MeleeMenuTitle", LANG_SERVER)
SetMenuTitle(menu, title)
SetMenuExitBackButton(menu, true)
ChoosedMenuGive[client] = "MeleeGiveMenu";
DisplayMenu(menu, client, MENU_TIME_FOREVER)
if (GetConVarInt(DebugInformations))
{
PrintToChat(client, "Campaign: Dead Center")
}
}
else if ((StrEqual(MapName, "c2m1_highway", false)) || (StrEqual(MapName, "c2m2_fairgrounds", false)) || (StrEqual(MapName, "c2m3_coaster", false)) || (StrEqual(MapName, "c2m4_barns", false)) || (StrEqual(MapName, "c2m5_concert", false)))
{
new Handle:menu = CreateMenu(MenuHandler_GiveWeapon);
Format(crowbar, sizeof(crowbar),"%T", "Crowbar", LANG_SERVER)
AddMenuItem(menu, "crowbar", crowbar)
Format(electric_guitar, sizeof(electric_guitar),"%T", "ElectricGuitar", LANG_SERVER)
AddMenuItem(menu, "electric_guitar", electric_guitar)
Format(fireaxe, sizeof(fireaxe),"%T", "FireAxe", LANG_SERVER)
AddMenuItem(menu, "fireaxe", fireaxe)
Format(katana, sizeof(katana),"%T", "Katana", LANG_SERVER)
AddMenuItem(menu, "katana", katana)
Format(baseball_bat, sizeof(baseball_bat),"%T", "BaseballBat", LANG_SERVER)
AddMenuItem(menu, "baseball_bat", baseball_bat)
Format(knife, sizeof(knife),"%T", "Knife", LANG_SERVER)
AddMenuItem(menu, "knife", knife)
Format(title, sizeof(title),"%T", "MeleeMenuTitle", LANG_SERVER)
SetMenuTitle(menu, title)
SetMenuExitBackButton(menu, true)
ChoosedMenuGive[client] = "MeleeGiveMenu";
DisplayMenu(menu, client, MENU_TIME_FOREVER)
if (GetConVarInt(DebugInformations))
{
PrintToChat(client, "Campaign: Dark Carnival")
}
}
else if ((StrEqual(MapName, "c3m1_plankcountry", false)) || (StrEqual(MapName, "c3m2_swamp", false)) || (StrEqual(MapName, "c3m3_shantytown", false)) || (StrEqual(MapName, "c3m4_plantation", false)))
{
new Handle:menu = CreateMenu(MenuHandler_GiveWeapon);
Format(cricket_bat, sizeof(cricket_bat),"%T", "CricketBat", LANG_SERVER)
AddMenuItem(menu, "cricket_bat", "Cricket Bat")
Format(fireaxe, sizeof(fireaxe),"%T", "FireAxe", LANG_SERVER)
AddMenuItem(menu, "fireaxe", fireaxe)
Format(frying_pan, sizeof(frying_pan),"%T", "FryingPan", LANG_SERVER)
AddMenuItem(menu, "frying_pan", frying_pan)
Format(machete, sizeof(machete),"%T", "Machete", LANG_SERVER)
AddMenuItem(menu, "machete", machete)
Format(baseball_bat, sizeof(baseball_bat),"%T", "BaseballBat", LANG_SERVER)
AddMenuItem(menu, "baseball_bat", baseball_bat)
Format(knife, sizeof(knife),"%T", "Knife", LANG_SERVER)
AddMenuItem(menu, "knife", knife)
Format(title, sizeof(title),"%T", "MeleeMenuTitle", LANG_SERVER)
SetMenuTitle(menu, title)
SetMenuExitBackButton(menu, true)
ChoosedMenuGive[client] = "MeleeGiveMenu";
DisplayMenu(menu, client, MENU_TIME_FOREVER)
if (GetConVarInt(DebugInformations))
{
PrintToChat(client, "Campaign: Swamp Fever")
}
}
else if ((StrEqual(MapName, "c4m1_milltown_a", false)) || (StrEqual(MapName, "c4m2_sugarmill_a", false)) || (StrEqual(MapName, "c4m3_sugarmill_b", false)) || (StrEqual(MapName, "c4m4_milltown_b", false)) || (StrEqual(MapName, "c4m5_milltown_escape", false)))
{
new Handle:menu = CreateMenu(MenuHandler_GiveWeapon);
Format(crowbar, sizeof(crowbar),"%T", "Crowbar", LANG_SERVER)
AddMenuItem(menu, "crowbar", crowbar)
Format(fireaxe, sizeof(fireaxe),"%T", "FireAxe", LANG_SERVER)
AddMenuItem(menu, "fireaxe", fireaxe)
Format(frying_pan, sizeof(frying_pan),"%T", "FryingPan", LANG_SERVER)
AddMenuItem(menu, "frying_pan", frying_pan)
Format(katana, sizeof(katana),"%T", "Katana", LANG_SERVER)
AddMenuItem(menu, "katana", katana)
Format(baseball_bat, sizeof(baseball_bat),"%T", "BaseballBat", LANG_SERVER)
AddMenuItem(menu, "baseball_bat", baseball_bat)
Format(knife, sizeof(knife),"%T", "Knife", LANG_SERVER)
AddMenuItem(menu, "knife", knife)
Format(title, sizeof(title),"%T", "MeleeMenuTitle", LANG_SERVER)
SetMenuTitle(menu, title)
SetMenuExitBackButton(menu, true)
ChoosedMenuGive[client] = "MeleeGiveMenu";
DisplayMenu(menu, client, MENU_TIME_FOREVER)
if (GetConVarInt(DebugInformations))
{
PrintToChat(client, "Campaign: Hard Rain")
}
}
else if ((StrEqual(MapName, "c5m1_waterfront", false)) || (StrEqual(MapName, "c5m1_waterfront_sndscape", false)) || (StrEqual(MapName, "c5m2_park", false)) || (StrEqual(MapName, "c5m3_cemetery", false)) || (StrEqual(MapName, "c5m4_quarter", false)) || (StrEqual(MapName, "c5m5_bridge", false)))
{
new Handle:menu = CreateMenu(MenuHandler_GiveWeapon);
Format(electric_guitar, sizeof(electric_guitar),"%T", "ElectricGuitar", LANG_SERVER)
AddMenuItem(menu, "electric_guitar", electric_guitar)
Format(frying_pan, sizeof(frying_pan),"%T", "FryingPan", LANG_SERVER)
AddMenuItem(menu, "frying_pan", frying_pan)
Format(machete, sizeof(machete),"%T", "Machete", LANG_SERVER)
AddMenuItem(menu, "machete", machete)
Format(tonfa, sizeof(tonfa),"%T", "Tonfa", LANG_SERVER)
AddMenuItem(menu, "tonfa", tonfa)
Format(baseball_bat, sizeof(baseball_bat),"%T", "BaseballBat", LANG_SERVER)
AddMenuItem(menu, "baseball_bat", baseball_bat)
Format(knife, sizeof(knife),"%T", "Knife", LANG_SERVER)
AddMenuItem(menu, "knife", knife)
Format(title, sizeof(title),"%T", "MeleeMenuTitle", LANG_SERVER)
SetMenuTitle(menu, title)
SetMenuExitBackButton(menu, true)
ChoosedMenuGive[client] = "MeleeGiveMenu";
DisplayMenu(menu, client, MENU_TIME_FOREVER)
if (GetConVarInt(DebugInformations))
{
PrintToChat(client, "Campaign: The Parish")
}
}
else if ((StrEqual(MapName, "c6m1_riverbank", false)) || (StrEqual(MapName, "c6m2_bedlam", false)) || (StrEqual(MapName, "c6m3_port", false)))
{
new Handle:menu = CreateMenu(MenuHandler_GiveWeapon);
Format(crowbar, sizeof(crowbar),"%T", "Crowbar", LANG_SERVER)
AddMenuItem(menu, "crowbar", crowbar)
Format(baseball_bat, sizeof(baseball_bat),"%T", "BaseballBat", LANG_SERVER)
AddMenuItem(menu, "baseball_bat", baseball_bat)
Format(katana, sizeof(katana),"%T", "Katana", LANG_SERVER)
AddMenuItem(menu, "katana", katana)
Format(fireaxe, sizeof(fireaxe),"%T", "FireAxe", LANG_SERVER)
AddMenuItem(menu, "fireaxe", fireaxe)
Format(knife, sizeof(knife),"%T", "Knife", LANG_SERVER)
AddMenuItem(menu, "knife", knife)
Format(golfclub, sizeof(golfclub),"%T", "Golfclub", LANG_SERVER)
AddMenuItem(menu, "golfclub", golfclub)
Format(title, sizeof(title),"%T", "MeleeMenuTitle", LANG_SERVER)
SetMenuTitle(menu, title)
SetMenuExitBackButton(menu, true)
ChoosedMenuGive[client] = "MeleeGiveMenu";
DisplayMenu(menu, client, MENU_TIME_FOREVER)
if (GetConVarInt(DebugInformations))
{
PrintToChat(client, "Campaign: The Passing")
}
}
else if ((StrEqual(MapName, "c7m1_docks", false)) || (StrEqual(MapName, "c7m2_barge", false)) || (StrEqual(MapName, "c7m3_port", false)))
{
new Handle:menu = CreateMenu(MenuHandler_GiveWeapon);
Format(crowbar, sizeof(crowbar),"%T", "Crowbar", LANG_SERVER)
AddMenuItem(menu, "crowbar", crowbar)
Format(baseball_bat, sizeof(baseball_bat),"%T", "BaseballBat", LANG_SERVER)
AddMenuItem(menu, "baseball_bat", baseball_bat)
Format(cricket_bat, sizeof(cricket_bat),"%T", "CricketBat", LANG_SERVER)
AddMenuItem(menu, "cricket_bat", cricket_bat)
Format(katana, sizeof(katana),"%T", "Katana", LANG_SERVER)
AddMenuItem(menu, "katana", katana)
Format(fireaxe, sizeof(fireaxe),"%T", "FireAxe", LANG_SERVER)
AddMenuItem(menu, "fireaxe", fireaxe)
Format(knife, sizeof(knife),"%T", "Knife", LANG_SERVER)
AddMenuItem(menu, "knife", knife)
Format(title, sizeof(title),"%T", "MeleeMenuTitle", LANG_SERVER)
SetMenuTitle(menu, title)
SetMenuExitBackButton(menu, true)
ChoosedMenuGive[client] = "MeleeGiveMenu";
DisplayMenu(menu, client, MENU_TIME_FOREVER)
if (GetConVarInt(DebugInformations))
{
PrintToChat(client, "Campaign: The Sacrifice")
}
}
else if ((StrEqual(MapName, "c8m1_apartment", false)) || (StrEqual(MapName, "c8m2_subway", false)) || (StrEqual(MapName, "c8m3_sewers", false)) || (StrEqual(MapName, "c8m4_interior", false)) || (StrEqual(MapName, "c8m5_rooftop", false)))
{
new Handle:menu = CreateMenu(MenuHandler_GiveWeapon);
Format(crowbar, sizeof(crowbar),"%T", "Crowbar", LANG_SERVER)
AddMenuItem(menu, "crowbar", crowbar)
Format(baseball_bat, sizeof(baseball_bat),"%T", "BaseballBat", LANG_SERVER)
AddMenuItem(menu, "baseball_bat", baseball_bat)
Format(cricket_bat, sizeof(cricket_bat),"%T", "CricketBat", LANG_SERVER)
AddMenuItem(menu, "cricket_bat", cricket_bat)
Format(katana, sizeof(katana),"%T", "Katana", LANG_SERVER)
AddMenuItem(menu, "katana", katana)
Format(fireaxe, sizeof(fireaxe),"%T", "FireAxe", LANG_SERVER)
AddMenuItem(menu, "fireaxe", fireaxe)
Format(knife, sizeof(knife),"%T", "Knife", LANG_SERVER)
AddMenuItem(menu, "knife", knife)
Format(title, sizeof(title),"%T", "MeleeMenuTitle", LANG_SERVER)
SetMenuTitle(menu, title)
SetMenuExitBackButton(menu, true)
ChoosedMenuGive[client] = "MeleeGiveMenu";
DisplayMenu(menu, client, MENU_TIME_FOREVER)
if (GetConVarInt(DebugInformations))
{
PrintToChat(client, "Campaign: No Mercy")
}
}
else
{
new Handle:menu = CreateMenu(MenuHandler_GiveWeapon);
Format(cricket_bat, sizeof(cricket_bat),"%T", "CricketBat", LANG_SERVER)
AddMenuItem(menu, "cricket_bat", "Cricket Bat")
Format(crowbar, sizeof(crowbar),"%T", "Crowbar", LANG_SERVER)
AddMenuItem(menu, "crowbar", crowbar)
Format(electric_guitar, sizeof(electric_guitar),"%T", "ElectricGuitar", LANG_SERVER)
AddMenuItem(menu, "electric_guitar", electric_guitar)
Format(fireaxe, sizeof(fireaxe),"%T", "FireAxe", LANG_SERVER)
AddMenuItem(menu, "fireaxe", fireaxe)
Format(frying_pan, sizeof(frying_pan),"%T", "FryingPan", LANG_SERVER)
AddMenuItem(menu, "frying_pan", frying_pan)
Format(katana, sizeof(katana),"%T", "Katana", LANG_SERVER)
AddMenuItem(menu, "katana", katana)
Format(machete, sizeof(machete),"%T", "Machete", LANG_SERVER)
AddMenuItem(menu, "machete", machete)
Format(tonfa, sizeof(tonfa),"%T", "Tonfa", LANG_SERVER)
AddMenuItem(menu, "tonfa", tonfa)
Format(baseball_bat, sizeof(baseball_bat),"%T", "BaseballBat", LANG_SERVER)
AddMenuItem(menu, "baseball_bat", baseball_bat)
Format(knife, sizeof(knife),"%T", "Knife", LANG_SERVER)
AddMenuItem(menu, "knife", knife)
Format(title, sizeof(title),"%T", "MeleeMenuTitle", LANG_SERVER)
SetMenuTitle(menu, title)
SetMenuExitBackButton(menu, true)
ChoosedMenuGive[client] = "MeleeGiveMenu";
DisplayMenu(menu, client, MENU_TIME_FOREVER)
if (GetConVarInt(DebugInformations))
{
PrintToChat(client, "Campaign: Custom")
}
}
}
else
{
new Handle:menu = CreateMenu(MenuHandler_GiveWeapon);
Format(cricket_bat, sizeof(cricket_bat),"%T", "CricketBat", LANG_SERVER)
AddMenuItem(menu, "cricket_bat", "Cricket Bat")
Format(crowbar, sizeof(crowbar),"%T", "Crowbar", LANG_SERVER)
AddMenuItem(menu, "crowbar", crowbar)
Format(electric_guitar, sizeof(electric_guitar),"%T", "ElectricGuitar", LANG_SERVER)
AddMenuItem(menu, "electric_guitar", electric_guitar)
Format(fireaxe, sizeof(fireaxe),"%T", "FireAxe", LANG_SERVER)
AddMenuItem(menu, "fireaxe", fireaxe)
Format(frying_pan, sizeof(frying_pan),"%T", "FryingPan", LANG_SERVER)
AddMenuItem(menu, "frying_pan", frying_pan)
Format(katana, sizeof(katana),"%T", "Katana", LANG_SERVER)
AddMenuItem(menu, "katana", katana)
Format(machete, sizeof(machete),"%T", "Machete", LANG_SERVER)
AddMenuItem(menu, "machete", machete)
Format(tonfa, sizeof(tonfa),"%T", "Tonfa", LANG_SERVER)
AddMenuItem(menu, "tonfa", tonfa)
Format(baseball_bat, sizeof(baseball_bat),"%T", "BaseballBat", LANG_SERVER)
AddMenuItem(menu, "baseball_bat", baseball_bat)
Format(knife, sizeof(knife),"%T", "Knife", LANG_SERVER)
AddMenuItem(menu, "knife", knife)
Format(title, sizeof(title),"%T", "MeleeMenuTitle", LANG_SERVER)
SetMenuTitle(menu, title)
SetMenuExitBackButton(menu, true)
ChoosedMenuGive[client] = "MeleeGiveMenu";
DisplayMenu(menu, client, MENU_TIME_FOREVER)
}
}
BuildBulletBasedGiveMenu(client)
{
decl String:hunting_rifle[40], String:pistol[40], String:pistol_magnum[40], String:rifle[40], String:rifle_desert[40];
decl String:smg[40], String:smg_silenced[40], String:sniper_military[40], String:rifle_ak47[40], String:rifle_sg552[40], String:rifle_m60[40];
decl String:smg_mp5[40], String:sniper_awp[40], String:sniper_scout[40], String:title[40];
new Handle:menu = CreateMenu(MenuHandler_GiveWeapon);
Format(hunting_rifle, sizeof(hunting_rifle),"%T", "HuntingRifle", LANG_SERVER)
AddMenuItem(menu, "hunting_rifle", hunting_rifle)
Format(pistol, sizeof(pistol),"%T", "Pistol", LANG_SERVER)
AddMenuItem(menu, "pistol", pistol)
Format(pistol_magnum, sizeof(pistol_magnum),"%T", "DesertEagle", LANG_SERVER)
AddMenuItem(menu, "pistol_magnum", pistol_magnum)
Format(rifle, sizeof(rifle),"%T", "Rifle", LANG_SERVER)
AddMenuItem(menu, "rifle", rifle)
Format(rifle_desert, sizeof(rifle_desert),"%T", "DesertRifle", LANG_SERVER)
AddMenuItem(menu, "rifle_desert", rifle_desert)
Format(smg, sizeof(smg),"%T", "SubmachineGun", LANG_SERVER)
AddMenuItem(menu, "smg", smg)
Format(smg_silenced, sizeof(smg_silenced),"%T", "SilencedSubmachineGun", LANG_SERVER)
AddMenuItem(menu, "smg_silenced", smg_silenced)
Format(sniper_military, sizeof(sniper_military),"%T", "MilitarySniper", LANG_SERVER)
AddMenuItem(menu, "sniper_military", sniper_military)
Format(rifle_ak47, sizeof(rifle_ak47),"%T", "AvtomatKalashnikova", LANG_SERVER)
AddMenuItem(menu, "rifle_ak47", rifle_ak47)
Format(rifle_sg552, sizeof(rifle_sg552),"%T", "SIGSG550", LANG_SERVER)
AddMenuItem(menu, "rifle_sg552", rifle_sg552)
Format(smg_mp5, sizeof(smg_mp5),"%T", "SubmachineGunMP5", LANG_SERVER)
AddMenuItem(menu, "smg_mp5", smg_mp5)
Format(rifle_m60, sizeof(rifle_m60),"%T", "RifleM60", LANG_SERVER)
AddMenuItem(menu, "rifle_m60", rifle_m60)
Format(sniper_awp, sizeof(sniper_awp),"%T", "AWP", LANG_SERVER)
AddMenuItem(menu, "sniper_awp", sniper_awp)
Format(sniper_scout, sizeof(sniper_scout),"%T", "ScoutSniper", LANG_SERVER)
AddMenuItem(menu, "sniper_scout", sniper_scout)
Format(title, sizeof(title),"%T", "BulletBasedMenuTitle", LANG_SERVER)
SetMenuTitle(menu, title)
SetMenuExitBackButton(menu, true)
ChoosedMenuGive[client] = "BulletBasedGiveMenu";
DisplayMenu(menu, client, MENU_TIME_FOREVER)
}
BuildShellBasedGiveMenu(client)
{
decl String:autoshotgun[40], String:shotgun_chrome[40], String:shotgun_spas[40], String:pumpshotgun[40], String:title[40];
new Handle:menu = CreateMenu(MenuHandler_GiveWeapon);
Format(autoshotgun, sizeof(autoshotgun),"%T", "AutoShotgun", LANG_SERVER)
AddMenuItem(menu, "autoshotgun", autoshotgun)
Format(shotgun_chrome, sizeof(shotgun_chrome),"%T", "ChromeShotgun", LANG_SERVER)
AddMenuItem(menu, "shotgun_chrome", shotgun_chrome)
Format(shotgun_spas, sizeof(shotgun_spas),"%T", "SpasShotgun", LANG_SERVER)
AddMenuItem(menu, "shotgun_spas", shotgun_spas)
Format(pumpshotgun, sizeof(pumpshotgun),"%T", "PumpShotgun", LANG_SERVER)
AddMenuItem(menu, "pumpshotgun", pumpshotgun)
Format(title, sizeof(title),"%T", "ShellBasedMenuTitle", LANG_SERVER)
SetMenuTitle(menu, title)
SetMenuExitBackButton(menu, true)
ChoosedMenuGive[client] = "ShellBasedGiveMenu";
DisplayMenu(menu, client, MENU_TIME_FOREVER)
}
BuildExplosiveBasedGiveMenu(client)
{
decl String:grenade_launcher[40], String:fireworkcrate[40], String:gascan[40], String:molotov[40], String:oxygentank[40];
decl String:pipe_bomb[40], String:propanetank[40], String:title[40];
new Handle:menu = CreateMenu(MenuHandler_GiveWeapon);
Format(grenade_launcher, sizeof(grenade_launcher),"%T", "GrenadeLauncher", LANG_SERVER)
AddMenuItem(menu, "grenade_launcher", grenade_launcher)
Format(fireworkcrate, sizeof(fireworkcrate),"%T", "FireworksCrate", LANG_SERVER)
AddMenuItem(menu, "fireworkcrate", fireworkcrate)
Format(gascan, sizeof(gascan),"%T", "Gascan", LANG_SERVER)
AddMenuItem(menu, "gascan", gascan)
Format(molotov, sizeof(molotov),"%T", "Molotov", LANG_SERVER)
AddMenuItem(menu, "molotov", molotov)
Format(oxygentank, sizeof(oxygentank),"%T", "OxygenTank", LANG_SERVER)
AddMenuItem(menu, "oxygentank", oxygentank)
Format(pipe_bomb, sizeof(pipe_bomb),"%T", "PipeBomb", LANG_SERVER)
AddMenuItem(menu, "pipe_bomb", pipe_bomb)
Format(propanetank, sizeof(propanetank),"%T", "PropaneTank", LANG_SERVER)
AddMenuItem(menu, "propanetank", propanetank)
Format(title, sizeof(title),"%T", "ExplosiveBasedMenuTitle", LANG_SERVER)
SetMenuTitle(menu, title)
SetMenuExitBackButton(menu, true)
ChoosedMenuGive[client] = "ExplosiveBasedGiveMenu";
DisplayMenu(menu, client, MENU_TIME_FOREVER)
}
BuildHealthGiveMenu(client)
{
decl String:adrenaline[40], String:defibrillator[40], String:first_aid_kit[40], String:pain_pills[40], String:health[40], String:title[40];
new Handle:menu = CreateMenu(MenuHandler_GiveWeapon);
Format(health, sizeof(health),"%T", "FullHealth", LANG_SERVER)
AddMenuItem(menu, "health", health)
Format(adrenaline, sizeof(adrenaline),"%T", "Adrenaline", LANG_SERVER)
AddMenuItem(menu, "adrenaline", adrenaline)
Format(defibrillator, sizeof(defibrillator),"%T", "Defibrillator", LANG_SERVER)
AddMenuItem(menu, "defibrillator", defibrillator)
Format(first_aid_kit, sizeof(first_aid_kit),"%T", "FirstAidKit", LANG_SERVER)
AddMenuItem(menu, "first_aid_kit", first_aid_kit)
Format(pain_pills, sizeof(pain_pills),"%T", "PainPills", LANG_SERVER)
AddMenuItem(menu, "pain_pills", "Pain Pills")
Format(title, sizeof(title),"%T", "HealthMenuTitle", LANG_SERVER)
SetMenuTitle(menu, title)
SetMenuExitBackButton(menu, true)
ChoosedMenuGive[client] = "HealthGiveMenu";
DisplayMenu(menu, client, MENU_TIME_FOREVER)
}
BuildMiscGiveMenu(client)
{
decl String:chainsaw[40], String:ammo[40], String:upgradepack_explosive[40], String:upgradepack_incendiary[40];
decl String:vomitjar[40], String:gnome[40], String:cola[40], String:title[40];
decl String:laser_sight[40], String:explosive_ammo[40], String:incendiary_ammo[40];
new Handle:menu = CreateMenu(MenuHandler_GiveWeapon);
Format(chainsaw, sizeof(chainsaw),"%T", "ChainSaw", LANG_SERVER)
AddMenuItem(menu, "chainsaw", chainsaw)
Format(ammo, sizeof(ammo),"%T", "Ammo", LANG_SERVER)
AddMenuItem(menu, "ammo", ammo)
Format(laser_sight, sizeof(laser_sight),"%T", "LaserSight", LANG_SERVER)
AddMenuItem(menu, "laser_sight", laser_sight)
Format(explosive_ammo, sizeof(explosive_ammo),"%T", "ExplosiveAmmo", LANG_SERVER)
AddMenuItem(menu, "explosive_ammo", explosive_ammo)
Format(incendiary_ammo, sizeof(incendiary_ammo),"%T", "IncendiaryAmmo", LANG_SERVER)
AddMenuItem(menu, "incendiary_ammo", incendiary_ammo)
Format(upgradepack_explosive, sizeof(upgradepack_explosive),"%T", "ExplosiveAmmoPack", LANG_SERVER)
AddMenuItem(menu, "upgradepack_explosive", upgradepack_explosive)
Format(upgradepack_incendiary, sizeof(upgradepack_incendiary),"%T", "IncendiaryAmmoPack", LANG_SERVER)
AddMenuItem(menu, "upgradepack_incendiary", upgradepack_incendiary)
Format(vomitjar, sizeof(vomitjar),"%T", "VomitJar", LANG_SERVER)
AddMenuItem(menu, "vomitjar", vomitjar)
Format(gnome, sizeof(gnome),"%T", "Gnome", LANG_SERVER)
AddMenuItem(menu, "gnome", gnome)
Format(cola, sizeof(cola),"%T", "Cola", LANG_SERVER)
AddMenuItem(menu, "weapon_cola_bottles", cola)
Format(title, sizeof(title),"%T", "MiscMenuTitle", LANG_SERVER)
SetMenuTitle(menu, title)
SetMenuExitBackButton(menu, true)
ChoosedMenuGive[client] = "MiscGiveMenu";
DisplayMenu(menu, client, MENU_TIME_FOREVER)
}
public MenuHandler_GiveWeapon(Handle:menu, MenuAction:action, param1, param2)
{
switch(action)
{
case MenuAction_End:
CloseHandle(menu);
case MenuAction_Cancel:
{
if (param2 == MenuCancel_ExitBack)
{
DisplayWeaponGiveMenu(param1);
}
}
case MenuAction_Select:
{
decl String:info[32];
GetMenuItem(menu, param2, info, sizeof(info));
/* Save choosed weapon */
ChoosedWeapon[param1] = info;
DisplaySelectPlayerMenu(param1);
}
}
}
DisplaySelectPlayerMenu(client)
{
new Handle:menu = CreateMenu(MenuHandler_PlayerSelect)
SetMenuTitle(menu, "Select Player")
SetMenuExitBackButton(menu, true)
AddTargetsToMenu2(menu, client, COMMAND_FILTER_NO_BOTS)
DisplayMenu(menu, client, MENU_TIME_FOREVER)
}
public MenuHandler_PlayerSelect(Handle:menu, MenuAction:action, param1, param2)
{
switch(action)
{
case MenuAction_End:
CloseHandle(menu);
case MenuAction_Cancel:
{
if (param2 == MenuCancel_ExitBack)
{
ChoosedGiveMenuHistory(param1);
}
}
case MenuAction_Select:
{
new String:info[56];
GetMenuItem(menu, param2, info, sizeof(info));
new target = GetClientOfUserId(StringToInt(info));
if ((target) == 0)
{
PrintToChat(param1, "Player no longer available");
}
else if (!CanUserTarget(param1, target))
{
PrintToChat(param1, "Unable to target");
}
if ((strcmp(ChoosedWeapon[param1], "laser_sight") == 0) || (strcmp(ChoosedWeapon[param1], "explosive_ammo") == 0) || (strcmp(ChoosedWeapon[param1], "incendiary_ammo") == 0))
{
new flagsupgrade_add = GetCommandFlags("upgrade_add");
SetCommandFlags("upgrade_add", flagsupgrade_add & ~FCVAR_CHEAT);
if (IsClientInGame(target)) FakeClientCommand(target, "upgrade_add %s", ChoosedWeapon[param1]);
SetCommandFlags("upgrade_add", flagsupgrade_add|FCVAR_CHEAT);
ChoosedGiveMenuHistory(param1);
}
else
{
new flagsgive = GetCommandFlags("give");
SetCommandFlags("give", flagsgive & ~FCVAR_CHEAT);
if (IsClientInGame(target)) FakeClientCommand(target, "give %s", ChoosedWeapon[param1]);
SetCommandFlags("give", flagsgive|FCVAR_CHEAT);
ChoosedGiveMenuHistory(param1);
}
}
}
}
stock ChoosedGiveMenuHistory(param1)
{
if (strcmp(ChoosedMenuGive[param1], "MeleeGiveMenu") == 0)
{
BuildMeleeGiveMenu(param1);
}
else if (strcmp(ChoosedMenuGive[param1], "BulletBasedGiveMenu") == 0)
{
BuildBulletBasedGiveMenu(param1);
}
else if (strcmp(ChoosedMenuGive[param1], "ShellBasedGiveMenu") == 0)
{
BuildShellBasedGiveMenu(param1);
}
else if (strcmp(ChoosedMenuGive[param1], "ExplosiveBasedGiveMenu") == 0)
{
BuildExplosiveBasedGiveMenu(param1);
}
else if (strcmp(ChoosedMenuGive[param1], "HealthGiveMenu") == 0)
{
BuildHealthGiveMenu(param1);
}
else if (strcmp(ChoosedMenuGive[param1], "MiscGiveMenu") == 0)
{
BuildMiscGiveMenu(param1);
}
}
/* >>> end of Weapon Give Menu */
/* Spawn Special Zombie Menu */
public AdminMenu_ZombieSpawnMenu(Handle:topmenu, TopMenuAction:action, TopMenuObject:object_id, param, String:buffer[], maxlength)
{
if (action == TopMenuAction_DisplayOption)
{
Format(buffer, maxlength, "Spawn Special Zombie")
}
else if( action == TopMenuAction_SelectOption)
{
DisplaySpecialZombieMenu(param)
}
}
DisplaySpecialZombieMenu(client)
{
new Handle:menu = CreateMenu(MenuHandler_SpecialZombie)
SetMenuExitBackButton(menu, true)
AddMenuItem(menu, "boomer", "Boomer")
AddMenuItem(menu, "charger", "Charger")
AddMenuItem(menu, "hunter", "Hunter")
AddMenuItem(menu, "smoker", "Smoker")
AddMenuItem(menu, "spitter", "Spitter")
AddMenuItem(menu, "tank", "Tank")
AddMenuItem(menu, "jockey", "Jockey")
AddMenuItem(menu, "witch", "Witch")
AddMenuItem(menu, "witch_bride", "Bride Witch")
AddMenuItem(menu, "zombie", "One Zombie ;-)")
AddMenuItem(menu, "mob", "Zombie Mob")
SetMenuTitle(menu, "Spawn Special Zombie")
DisplayMenu(menu, client, MENU_TIME_FOREVER)
}
public MenuHandler_SpecialZombie(Handle:menu, MenuAction:action, param1, param2)
{
switch(action)
{
case MenuAction_End:
CloseHandle(menu);
case MenuAction_Cancel:
{
if (param2 == MenuCancel_ExitBack && hAdminMenu != INVALID_HANDLE)
{
DisplayTopMenu(hAdminMenu, param1, TopMenuPosition_LastCategory);
}
}
case MenuAction_Select:
{
decl String:info[32];
GetMenuItem(menu, param2, info, sizeof(info));
if (IsClientConnected(param1) && IsClientInGame(param1))
{
new flagszspawn = GetCommandFlags("z_spawn");
SetCommandFlags("z_spawn", flagszspawn & ~FCVAR_CHEAT);
FakeClientCommand(param1, "z_spawn %s", info);
SetCommandFlags("z_spawn", flagszspawn|FCVAR_CHEAT);
DisplaySpecialZombieMenu(param1)
}
}
}
}
/* >>> end of Spawn Special Zombie Menu */
/* Minigun Menu */
public AdminMenu_MachineGunSpawnMenu (Handle:topmenu, TopMenuAction:action, TopMenuObject:object_id, param, String:buffer[], maxlength)
{
if (action == TopMenuAction_DisplayOption)
{
Format(buffer, maxlength, "MiniGun Menu")
}
else if( action == TopMenuAction_SelectOption)
{
DisplayMinigunMenu(param)
}
}
DisplayMinigunMenu(client)
{
decl String:spawnminigun[40], String:spawnminigun2[40], String:removeminigun[40];
new Handle:menu = CreateMenu(MenuHandler_MiniGun)
Format(spawnminigun, sizeof(spawnminigun),"%T", "SpawnMiniGun", LANG_SERVER)
AddMenuItem(menu, "spawnminigun", spawnminigun)
Format(spawnminigun2, sizeof(spawnminigun2),"%T", "SpawnMiniGun2", LANG_SERVER)
AddMenuItem(menu, "spawnminigun2", spawnminigun2)
Format(removeminigun, sizeof(removeminigun),"%T", "RemoveMiniGun", LANG_SERVER)
AddMenuItem(menu, "removeminigun", removeminigun)
SetMenuExitBackButton(menu, true)
DisplayMenu(menu, client, MENU_TIME_FOREVER)
}
public MenuHandler_MiniGun(Handle:menu, MenuAction:action, param1, param2)
{
switch(action)
{
case MenuAction_End:
CloseHandle(menu);
case MenuAction_Cancel:
{
if (param2 == MenuCancel_ExitBack && hAdminMenu != INVALID_HANDLE)
{
DisplayTopMenu(hAdminMenu, param1, TopMenuPosition_LastCategory);
}
}
case MenuAction_Select:
{
new String:selected_option[32]
GetMenuItem(menu, param2, selected_option, sizeof(selected_option));
if (StrEqual(selected_option, "spawnminigun", false))
{
SpawnMiniGun(param1, 1)
DisplayMinigunMenu(param1)
}
else if (StrEqual(selected_option, "spawnminigun2", false))
{
SpawnMiniGun(param1, 2)
DisplayMinigunMenu(param1)
}
else if (StrEqual(selected_option, "removeminigun", false))
{
RemoveMiniGun(param1)
DisplayMinigunMenu(param1)
}
}
}
}
/* >>> end of Minigun */
public Action:Command_DisplayMenu(client, args)
{
if (!client)
{
ReplyToCommand(client, "[SM] %t", "Command is in-game only");
return Plugin_Handled;
}
DisplayTopMenu(hAdminMenu, client, TopMenuPosition_Start);
return Plugin_Handled;
}
/* >>> end of Menu */
/* Teleport Entity */
SetTeleportEndPoint(client)
{
decl Float:vAngles[3];
decl Float:vOrigin[3];
decl Float:vBuffer[3];
decl Float:vStart[3];
decl Float:Distance;
GetClientEyePosition(client,vOrigin);
GetClientEyeAngles(client, vAngles);
//get endpoint for teleport
new Handle:trace = TR_TraceRayFilterEx(vOrigin, vAngles, MASK_SHOT, RayType_Infinite, TraceEntityFilterPlayer);
if(TR_DidHit(trace))
{
TR_GetEndPosition(vStart, trace);
GetVectorDistance(vOrigin, vStart, false);
Distance = -35.0;
GetAngleVectors(vAngles, vBuffer, NULL_VECTOR, NULL_VECTOR);
g_pos[0] = vStart[0] + (vBuffer[0]*Distance);
g_pos[1] = vStart[1] + (vBuffer[1]*Distance);
g_pos[2] = vStart[2] + (vBuffer[2]*Distance);
}
else
{
CloseHandle(trace);
return false;
}
CloseHandle(trace);
return true;
}
public bool:TraceEntityFilterPlayer(entity, contentsMask)
{
return entity > GetMaxClients() || !entity;
}
Last edited by ricksfishin; 05-18-2018 at 12:53.
|
|