I tried to modify this with a menu. The menu displays, but crashes upon selection. Here's what I have, see if you can implement it (fixed, obviously).
Code:
public OnPluginStart()
RegAdminCmd("sm_spawnweapon", concmd_spawnweapon, ADMFLAG_BAN)
public Action:concmd_spawnweapon(id, args)
{
decl String:szWeapon[48]
if (args != 1)
{
new Handle:hSpawnWeaponMenu = CreateMenu(fnSpawnWeaponMenu)
SetMenuTitle(hSpawnWeaponMenu, "Weapon Selection")
AddMenuItem(hSpawnWeaponMenu, "weapon_adrenaline", "Adrenaline")
AddMenuItem(hSpawnWeaponMenu, "weapon_autoshotgun", "Auto Shotgun")
AddMenuItem(hSpawnWeaponMenu, "weapon_chainsaw", "Chainsaw")
AddMenuItem(hSpawnWeaponMenu, "weapon_defibrillator", "Defibrillator")
AddMenuItem(hSpawnWeaponMenu, "weapon_fireworkcrate", "Fireworks Crate")
AddMenuItem(hSpawnWeaponMenu, "weapon_firstaidkit", "First Aid Kit")
AddMenuItem(hSpawnWeaponMenu, "weapon_gascan", "Gas Can")
AddMenuItem(hSpawnWeaponMenu, "weapon_gnome", "Gnome")
AddMenuItem(hSpawnWeaponMenu, "weapon_grenadelauncher", "Grenade Launcher")
AddMenuItem(hSpawnWeaponMenu, "weapon_huntingrifle", "Hunting Rifle")
AddMenuItem(hSpawnWeaponMenu, "weapon_molotov", "Molotov Cocktail")
AddMenuItem(hSpawnWeaponMenu, "weapon_oxygentank", "Oxygen Tank")
AddMenuItem(hSpawnWeaponMenu, "weapon_painpills", "Pain Pills")
AddMenuItem(hSpawnWeaponMenu, "weapon_pipebomb", "Pipebomb")
AddMenuItem(hSpawnWeaponMenu, "weapon_pistol", "Pistol")
AddMenuItem(hSpawnWeaponMenu, "weapon_pistol_magnum", "Magnum")
AddMenuItem(hSpawnWeaponMenu, "weapon_propanetank", "Propane Tank")
AddMenuItem(hSpawnWeaponMenu, "weapon_pumpshotgun", "Pump Shotgun")
AddMenuItem(hSpawnWeaponMenu, "weapon_rifle", "M16")
AddMenuItem(hSpawnWeaponMenu, "weapon_rifle_ak47", "AK47")
AddMenuItem(hSpawnWeaponMenu, "weapon_rifle_desert", "Desert Rifle")
AddMenuItem(hSpawnWeaponMenu, "weapon_rifle_sg552", "SG552")
AddMenuItem(hSpawnWeaponMenu, "weapon_shotgun_chrome", "Chrome Shotgun")
AddMenuItem(hSpawnWeaponMenu, "weapon_shotgun_spas", "Spas Shotgun")
AddMenuItem(hSpawnWeaponMenu, "weapon_smg", "Uzi")
AddMenuItem(hSpawnWeaponMenu, "weapon_smg_mp5", "MP5")
AddMenuItem(hSpawnWeaponMenu, "weapon_smg_silenced", "Silenced Uzi")
AddMenuItem(hSpawnWeaponMenu, "weapon_sniper_awp", "AWP Sniper")
AddMenuItem(hSpawnWeaponMenu, "weapon_sniper_military", "Military Sniper")
AddMenuItem(hSpawnWeaponMenu, "weapon_sniper_scout", "Scout Sniper")
SetMenuExitButton(hSpawnWeaponMenu, true)
DisplayMenu(hSpawnWeaponMenu, id, 20)
return Plugin_Handled
}
else
GetCmdArg(1, szWeapon, 47)
if (!fnSetTeleportEndPoint(id))
{
PrintToChat(id, "[SM] Could not find spawn point.")
return Plugin_Handled
}
new const iWeapon = CreateEntityByName(szWeapon)
if (IsValidEntity(iWeapon))
{
DispatchSpawn(iWeapon)
g_fpPosition[2] -= 10.0
TeleportEntity(iWeapon, g_fpPosition, NULL_VECTOR, NULL_VECTOR)
}
return Plugin_Handled
}
public fnSpawnWeaponMenu(Handle:hSpawnWeaponMenu, MenuAction:mAction, iParam1, iParam2)
{
if (mAction == MenuAction_Select)
{
decl String:szWeapon[48]
GetMenuItem(hSpawnWeaponMenu, iParam2, szWeapon, 47)
if (!fnSetTeleportEndPoint(iParam1))
{
PrintToChat(iParam1, "[SM] Could not find spawn point.")
CloseHandle(hSpawnWeaponMenu)
return
}
new const iWeapon = CreateEntityByName(szWeapon)
if (IsValidEntity(iWeapon))
{
DispatchSpawn(iWeapon)
g_fpPosition[2] -= 10.0
TeleportEntity(iWeapon, g_fpPosition, NULL_VECTOR, NULL_VECTOR)
}
}
CloseHandle(hSpawnWeaponMenu)
}