Your code doesn't work.
I did through
GivePlayerItem and work, but doesn't want to issue modifications
Who help ?
Code:
#include <sourcemod>
#include <sdktools>
#pragma newdecls required
char CurrentGameMode[30];
public Plugin myinfo =
{
name = "[INS] Guns Menu",
author = "",
description = "Guns Menu",
version = "0.4",
url = ""
};
public void OnPluginStart()
{
RegConsoleCmd("guns", WeaponMenu);
LoadTranslations("common.phrases");
}
public void OnConfigsExecuted()
{
ConVar mp_gamemode = FindConVar("mp_gamemode");
if (mp_gamemode != null)
{
mp_gamemode.GetString(CurrentGameMode, sizeof(CurrentGameMode));
delete mp_gamemode;
return;
}
CurrentGameMode[0] = '\0';
}
public Action WeaponMenu(int client, int args)
{
if (IsClientInGame(client))
{
if (!IsFakeClient(client))
{
Weapons(client);
}
}
return Plugin_Handled;
}
public Action Weapons(int client)
{
if (client > 0)
{
Menu menu = new Menu(AdminWeaponMenuHandlerUS);
menu.SetTitle("Guns Menu");
menu.AddItem("1", "AT4");
menu.AddItem("2", "RPG");
menu.AddItem("3", "MK18");
menu.ExitButton = false;
menu.Display(client, 15);
}
return Plugin_Handled;
}
public int AdminWeaponMenuHandlerUS(Menu menu, MenuAction action, int client, int itemNum)
{
switch (action)
{
case MenuAction_End:
{
delete menu;
}
case MenuAction_Select:
{
char info[32];
menu.GetItem(itemNum, info, sizeof(info));
if (strcmp(info, "1") == 0)
{
GivePlayerItem(client, "weapon_at4");
}
if (strcmp(info, "2") == 0)
{
GivePlayerItem(client, "weapon_rpg7");
}
if (strcmp(info, "3") == 0)
{
GivePlayerItem(client, "weapon_mk18");
GivePlayerItem(client, "upgrade_optic_aimpoint"); //modifications !!!
}
GivePlayerItem(client, "ammo 5");
}
}
}
stock void HxFakeCHEAT(int &client, char[] sCmd, char[] sArg)
{
int iFlags = GetCommandFlags(sCmd);
SetCommandFlags(sCmd, iFlags & ~FCVAR_CHEAT);
FakeClientCommand(client, "%s %s", sCmd, sArg);
SetCommandFlags(sCmd, iFlags);
}