I tried to add menu 3 for grenades but it gave me an error.
PHP Code:
char g_LastPrimaryWeapon[MAXPLAYERS + 1][50];
char g_LastSecondaryWeapon[MAXPLAYERS + 1][50];
public Action CMD_Guns(int client, int args)
{
if(GetClientTeam(client) == BUILDERS && !IsPrepTime() && !IsBuildTime())
{
int weapon = GetPlayerWeaponSlot(client, CS_SLOT_PRIMARY);
if(!IsValidEntity(weapon))
{
ShowWeaponMenu(client);
}
}
}
public void Weapons_OnClientPutInServer(int client)
{
g_LastPrimaryWeapon[client] = "";
g_LastSecondaryWeapon[client] = "";
}
public void RemoveAllPlayerWeapons(int client)
{
//Removing primary weapon
int weapon = GetPlayerWeaponSlot(client, CS_SLOT_PRIMARY);
if(weapon > 0) {
RemovePlayerItem(client, weapon);
RemoveEdict(weapon);
}
//Removing secondary weapon
int weapon2 = GetPlayerWeaponSlot(client, CS_SLOT_SECONDARY);
if(weapon2 > 0) {
RemovePlayerItem(client, weapon2);
RemoveEdict(weapon2);
}
//Removing grenades
int weapon3 = GetPlayerWeaponSlot(client, CS_SLOT_GRENADE);
if(weapon3 > 0) {
RemovePlayerItem(client, weapon3);
RemoveEdict(weapon3);
}
}
public void Weapons_OnPrepTimeStart()
{
LoopAllPlayers(i)
{
if(GetClientTeam(i) == BUILDERS)
{
ShowWeaponMenu(i);
//Anti cheat stuff
CreateTimer(0.2, Remove_Knife, i);
}
}
}
public Action Remove_Knife(Handle tmr, any client)
{
int knife = GetPlayerWeaponSlot(client, CS_SLOT_KNIFE);
if(knife > -1)
{
RemovePlayerItem(client, knife);
RemoveEdict(knife);
}
}
public void Weapons_OnPrepTimeEnd()
{
LoopAllPlayers(i)
{
if(GetClientTeam(i) == BUILDERS)
{
GivePlayerItem(i, "weapon_knife");
if(!StrEqual(g_LastPrimaryWeapon[i], "") && !StrEqual(g_LastSecondaryWeapon[i], ""))
{
GivePlayerItem(i, g_LastSecondaryWeapon[i]);
GivePlayerItem(i, g_LastPrimaryWeapon[i]);
}
}
}
}
void ShowWeaponMenu(int client)
{
Menu menu = new Menu(MenuHandlers_PrimaryWeapon);
menu.SetTitle("Arme BBGO.WESTCS.RO");
if(!StrEqual(g_LastPrimaryWeapon[client], "") && !StrEqual(g_LastSecondaryWeapon[client], ""))
menu.AddItem("last", "Last weapons");
menu.AddItem("weapon_ak47", "AK-47");
menu.AddItem("weapon_m4a1_silencer", "M4A1-S");
menu.AddItem("weapon_xm1014", "XM1014");
SetMenuExitButton(menu, false);
menu.Display(client, 0);
}
public int MenuHandlers_PrimaryWeapon(Menu menu, MenuAction action, int client, int item)
{
switch(action)
{
case MenuAction_Select:
{
if(GetClientTeam(client) == BUILDERS && IsPlayerAlive(client) && !IsBuildTime())
{
char info[32];
GetMenuItem(menu, item, info, sizeof(info));
if (StrEqual(info, "last"))
return false;
//Set new last weapon
g_LastPrimaryWeapon[client] = info;
if(!IsPrepTime() && StrEqual(g_LastPrimaryWeapon[client], ""))
GivePlayerItem(client, info);
Menu menu2 = new Menu(MenuHandlers_SecondaryWeapon);
menu2.SetTitle("Secondary weapon");
menu2.AddItem("weapon_glock", "glock");
menu2.AddItem("weapon_hkp2000", "USP");
SetMenuExitButton(menu2, false);
menu2.Display(client, 0);
}
}
}
return false;
}
public int MenuHandlers_SecondaryWeapon(Menu menu2, MenuAction action, int client, int item)
{
switch(action)
{
case MenuAction_Select:
{
if(GetClientTeam(client) == CS_TEAM_CT && IsPlayerAlive(client))
{
char info[32];
GetMenuItem(menu2, item, info, sizeof(info));
g_LastSecondaryWeapon[client] = info;
if(!IsPrepTime() && StrEqual(g_LastSecondaryWeapon[client], ""))
GivePlayerItem(client, info);
}
}
}
}