Nexd írta:
Zendor20000 írta:
És azt megtudom valahogy oldani, hogy a fegyvermenü felülírja azt a fegyvert ami jelenleg a játékosnál van? Ne dobja le a földre.
Ha elveszed tőle a fegyvert előtte, akkor nem fogja kidobni
Kód:
stock void RemovePlayerPistol(int client) {
    int fegya;
    for (int i = 0; i < 6; i++)
    {
      fegya = GetPlayerWeaponSlot(client, i);
      if(IsValidEntity(fegya) && i == 1)
      {
         RemovePlayerItem(client, fegya);
      }
   }
}
stock void RemovePlayerPrimary(int client) {
    int fegya;
    for (int i = 0; i < 6; i++)
    {
      fegya = GetPlayerWeaponSlot(client, i);
      if(IsValidEntity(fegya) && i == 0)
      {
         RemovePlayerItem(client, fegya);
      }
   }
}
stock void RemovePlayerKnife(int client) {
    int fegya;
    for (int i = 0; i < 6; i++)
    {
      fegya = GetPlayerWeaponSlot(client, i);
      if(IsValidEntity(fegya) && i == 2)
      {
         RemovePlayerItem(client, fegya);
      }
   }
}
stock bool IsThisKnife(char[] knifename)
{
   if(IsStrContains(knifename, "knife") || 
       IsStrContains(knifename, "bayonet"))
       return true;
   return false;
}
stock bool IsSMG(char[] weapon)
{
   return (IsStrContains(weapon, "mp9") ||
         IsStrContains(weapon, "p90") ||
         IsStrContains(weapon, "mac10") ||
         IsStrContains(weapon, "ump45") ||
         IsStrContains(weapon, "mp7") ||
         IsStrContains(weapon, "mp5sd") ||
         IsStrContains(weapon, "bizon"))
}
stock bool IsHeavy(char[] weapon)
{
   return (IsStrContains(weapon, "nova") ||
         IsStrContains(weapon, "xm1014") ||
         IsStrContains(weapon, "mag7") ||
         IsStrContains(weapon, "negev") ||
         IsStrContains(weapon, "sawedoff"))
}
stock bool IsPistol(char[] weapon)
{
   return (IsStrContains(weapon, "deagle") ||
         IsStrContains(weapon, "usp_silencer") ||
         IsStrContains(weapon, "hkp2000") ||
         IsStrContains(weapon, "glock") ||
         IsStrContains(weapon, "elite") ||
         IsStrContains(weapon, "p250") ||
         IsStrContains(weapon, "cz75a") ||
         IsStrContains(weapon, "fiveseven") ||
         IsStrContains(weapon, "tec9") ||
         IsStrContains(weapon, "revolver"))
}
stock bool IsRifle(char[] weapon)
{
   return (IsStrContains(weapon, "awp") ||
         IsStrContains(weapon, "ak47") ||
         IsStrContains(weapon, "m4a1") ||
         IsStrContains(weapon, "famas") ||
         IsStrContains(weapon, "galilar") ||
         IsStrContains(weapon, "ssg08") ||
         IsStrContains(weapon, "sg556") ||
         IsStrContains(weapon, "aug") ||
         IsStrContains(weapon, "scar20") ||
         IsStrContains(weapon, "g3sg1"))
}
stock bool IsStrContains(char[] String, char[] Text, bool caseSensitive = false)
{
   if((StrContains(String, Text, caseSensitive) != -1))
      return true;
   return false;
}
Ezekkel szerintem megtudod oldani
Nagyon szépen köszönöm! Sikerült is! 
Jelenleg így néz ki a plugin: 
Kód:
#include <sourcemod>
#include <sdktools>
#include <sdkhooks>
#include <cstrike>
#include <multicolors>
#include <smlib>
#pragma semicolon 1
#pragma newdecls required
#define DATA "2.0"
#define VIP_PREFIX " ★ \x02[VIP]\x04"
#define ADMIN_PREFIX " ★ \x02[ADMIN]\x04"
#define TULAJ_PREFIX " ★ \x02[TULAJDONOS]\x04"
public Plugin myinfo =
{
   name = "VIP",
   author = "Zendor",
   description = "VIP PLUGIN",
   version = "0.1",
   url = "http://stat.erack.hu"
};
char PrimaryWeapon[MAXPLAYERS + 1][24];
char SecondaryWeapon[MAXPLAYERS + 1][24];
bool PrimarySelected[MAXPLAYERS+1];
bool SecondarySelected[MAXPLAYERS+1];
bool Remember[MAXPLAYERS+1];
Handle HP,
Flashbang,
Smokegrenade,
Hegrenade,
Molotov,
Armorvalue,
Bhashelmet,
Defuser,
Remove_grenade,
Taser,
trie_armas;
// Welcome_message;
char g_sGrenadeNames[][] = { 
    "weapon_tagrenade",
    "weapon_smokegrenade",
    "weapon_decoy",
    "weapon_healthshot",
    "weapon_flashbang",
    "weapon_incgrenade"
};
int m_iGrenadeOffsets[sizeof(g_sGrenadeNames)];
Handle timers[MAXPLAYERS + 1];
int RoundCount = 1;
public void OnPluginStart()
{
   HP = CreateConVar("vip_hp_start", "100", "Hány HP-n kezdjenek a VIP-k.", FCVAR_NOTIFY);
   Flashbang = CreateConVar("vip_grenade_flashbang", "1", "Kapjon a VIP flash gránátot a kör elején? (1-2))", FCVAR_NOTIFY, true, 0.0, true, 2.0);
   Smokegrenade = CreateConVar("vip_grenade_smokegrenade", "0", "Kapjon a VIP smoke-t a kör elején?", FCVAR_NONE, true, 0.0, true, 1.0);
   Hegrenade = CreateConVar("vip_grenade_hegrenade", "1", "Kapján a VIP gránátot a kör elején?", FCVAR_NONE, true, 0.0, true, 1.0);
   Molotov = CreateConVar("vip_grenade_molotov", "0", "Kapján a VIP molót a kör elején? ",FCVAR_NONE, true, 0.0, true, 1.0);
   Armorvalue = CreateConVar("vip_armorvalue", "100", "Mennyi armor-t kapjonak a VIP-k", FCVAR_NONE, true, 0.0, true, 1.0);
   Remove_grenade = CreateConVar("vip_grenade_remove", "0", "A kör elején eltávolítja az összes gránátot", FCVAR_NONE, true, 0.0, true, 1.0);
   Defuser = CreateConVar("vip_defuser", "1", "CT-ben kapjanak a VIP-k defusert?", FCVAR_NONE, true, 0.0, true, 1.0);
   Bhashelmet = CreateConVar("vip_bhashelmet", "1", "Legyen sisakjuk a VIP-knak?", FCVAR_NONE, true, 0.0, true, 1.0);
   Taser = CreateConVar("vip_taser", "1.0", "Zeust ad minden körben.", FCVAR_NONE, true, 0.0, true, 1.0);
//   Welcome_message = CreateConVar("vip_welcome", "1", "Üdvözlő üzenet.", FCVAR_NONE, true, 0.0, true, 1.0);
   
   
   trie_armas = CreateTrie();
   
   AutoExecConfig(true, "VIPBETA");
   HookEvent("player_spawn", Spawn);
   HookEvent("round_start", Event_RoundStart);
   HookEvent("announce_phase_end", ResetAfterTeamChange);
   HookEvent("cs_intermission", ResetAfterTeamChange);
   RegAdminCmd("sm_guns", GunsMenu, ADMFLAG_CUSTOM1);
   RegAdminCmd("sm_gunsmenu", GunsMenu, ADMFLAG_CUSTOM1);
   for (int i = 1; i <= MaxClients; i++) {
      if (IsClientInGame(i))
      OnClientPutInServer(i);
      OnClientPostAdminCheck(i);
   }
   
}
public void OnMapStart()
{
   RoundCount = 0;
   
}
public Action Event_RoundStart(Event hEvent, const char[] chName, bool bDontBroadcast)
{
      RoundCount = RoundCount + 1;
}
public void OnClientPutInServer(int client)
{
   SDKHook(client, SDKHook_WeaponEquipPost, EventItemPickup2);
   ResetClientSettings(client);
}
void ResetClientSettings(int client)
{
    PrimarySelected[client] = false;
    SecondarySelected[client] = false;
    Remember[client] = false;
    PrimaryWeapon[client] = "weapon_m4a1";
    SecondaryWeapon[client] = "weapon_glock";
}
public void OnClientPostAdminCheck(int client)
{
    if(IsOwner(client))
    {
        PrintToChatAll("╔════════════════════════╗");
        PrintToChatAll("%s %N csatlakozott a szerverre", TULAJ_PREFIX, client);
        PrintToChatAll("╚════════════════════════╝");
    }
    else if(IsAdmin(client))
    {
        PrintToChatAll("╔════════════════════════╗");
        PrintToChatAll("%s %N csatlakozott a szerverre", ADMIN_PREFIX, client);
        PrintToChatAll("╚════════════════════════╝");
    }
    else if (IsVIP(client)) 
    {
        timers[client] = CreateTimer(3.0, Darm, client, TIMER_REPEAT);
        PrintToChatAll("╔════════════════════════╗");
        PrintToChatAll("%s %N csatlakozott a szerverre", VIP_PREFIX, client);
        PrintToChatAll("╚════════════════════════╝");
    }
    else
    {
        return;
    }
}
public void OnClientDisconnect(int client)
{
   if(timers[client] != INVALID_HANDLE)
   {
      KillTimer(timers[client]);
      timers[client] = INVALID_HANDLE;
   }
}
public Action Darm(Handle timer, any client)
{
   if(IsPlayerAlive(client))
   {
      int weapon = GetEntPropEnt(client, Prop_Send, "m_hActiveWeapon");
      if(weapon > 0 && (weapon == GetPlayerWeaponSlot(client, CS_SLOT_PRIMARY) || weapon == GetPlayerWeaponSlot(client, CS_SLOT_SECONDARY)))
      {
         int warray;
         char classname[4];
         Format(classname, 4, "%i", GetEntProp(weapon, Prop_Send, "m_iItemDefinitionIndex"));
         
         if(GetTrieValue(trie_armas, classname, warray))
         {
            if(GetReserveAmmo(weapon) != warray) SetEntProp(weapon, Prop_Send, "m_iPrimaryReserveAmmoCount", warray);
         }
      }
   }
}
public Action ResetAfterTeamChange(Event hEvent, const char[] chName, bool bDontBroadcast)
{
   RoundCount = 1;
}
stock int GetReserveAmmo(int weapon)
{
    return GetEntProp(weapon, Prop_Send, "m_iPrimaryReserveAmmoCount");
}
public Action EventItemPickup2(int client,int weapon)
{
   if(weapon == GetPlayerWeaponSlot(client, CS_SLOT_PRIMARY) || weapon == GetPlayerWeaponSlot(client, CS_SLOT_SECONDARY))
   {
      int warray;
      char classname[4];
      Format(classname, 4, "%i", GetEntProp(weapon, Prop_Send, "m_iItemDefinitionIndex"));
   
      if(!GetTrieValue(trie_armas, classname, warray))
      {
         warray = GetEntProp(weapon, Prop_Send, "m_iPrimaryReserveAmmoCount");
      
         SetTrieValue(trie_armas, classname, warray);
      }
      else
      {
         if(IsVIP(client)) SetEntProp(weapon, Prop_Send, "m_iPrimaryReserveAmmoCount", warray);
      }
   }
}
public Action Spawn(Event event, const char[] name, bool dontBroadcast)
{
   int client = GetClientOfUserId(GetEventInt(event, "userid")),
      team = GetClientTeam(client),
      g_HP = GetConVarInt(HP),
      g_Flashbang = GetConVarInt(Flashbang);
      
   
   if(client > 0 && IsPlayerAlive(client) && IsVIP(client))
   {
      SetEntityHealth(client, g_HP);
      
      if(GetConVarBool(Remove_grenade)) StripNades(client);
      if(GetConVarBool(Smokegrenade)) GivePlayerItem(client, "weapon_smokegrenade");
      if(GetConVarBool(Hegrenade)) GivePlayerItem(client, "weapon_hegrenade");
      if(GetConVarBool(Molotov) && team == CS_TEAM_T) GivePlayerItem(client, "weapon_molotov");
      if(GetConVarBool(Molotov) && team == CS_TEAM_CT) GivePlayerItem(client, "weapon_incgrenade");
      if(GetConVarBool(Armorvalue) && RoundCount > 1) SetEntProp(client, Prop_Send, "m_ArmorValue", 100);
      if(GetConVarBool(Taser)) GivePlayerItem(client, "weapon_taser");
      if(GetConVarBool(Bhashelmet) && RoundCount > 1) SetEntProp(client, Prop_Send, "m_bHasHelmet", 1);
      
      if(RoundCount > 1)
   { 
      if(Remember[client])
      {
         GiveLastWeapons(client);
      }
      else
      {
         Weapons(client);
      }
   }
         
      if(GetConVarBool(Flashbang))
      {
         for (int i = 1; i <= g_Flashbang; i++)
         GivePlayerItem(client, "weapon_flashbang");
      }
      if(team == CS_TEAM_CT)
      {
         if(GetConVarBool(Defuser) && GetEntProp(client, Prop_Send, "m_bHasDefuser") == 0) GivePlayerItem(client, "item_defuser"); 
      }
   }
} 
public void Weapons(int client)
{
    Menu menu = new Menu(Weapon_Menu);
    menu.SetTitle("[VIP] Fegyvermenü");
    menu.AddItem("new", "Új fegyvert választok");
    menu.AddItem("old", "Az előzőt használom");
    menu.AddItem("olddontask", "Az előzőt használom[Ne kérdezze meg újra]");
    menu.ExitButton = false;
    menu.Display(client, 15);
}
stock void StripNades(int client)
{
    while(RemoveWeaponBySlot(client, 3)){}
    for(int i = 0; i < 6; i++)
   SetEntProp(client, Prop_Send, "m_iAmmo", 0, _, m_iGrenadeOffsets[i]);
}
stock bool RemoveWeaponBySlot(int client, int iSlot)
{
    int iEntity = GetPlayerWeaponSlot(client, iSlot);
    if(IsValidEdict(iEntity))
   {
        RemovePlayerItem(client, iEntity);
        AcceptEntityInput(iEntity, "Kill");
        return true;
    }
    return false;
}
stock void StripAllWeapons(int client)
{
   int iEnt;
   for (int i = 0; i <= 2; i++)
   {
      while ((iEnt = GetPlayerWeaponSlot(client, i)) != -1)
      {
         RemovePlayerItem(client, iEnt);
         AcceptEntityInput(iEnt, "Kill");
      }
   }
}
stock bool IsValidClient(int client, bool alive = false)
{
   if(client <= 0) return false;
   if(client > MaxClients) return false;
   if(!IsClientConnected(client)) return false;
   if(IsFakeClient(client)) return false;
   if(IsClientSourceTV(client)) return false;
   return IsClientInGame(client);
} 
stock bool IsVIP(int client)
{
   return (CheckCommandAccess(client, "sm_vipjog", ADMFLAG_CUSTOM1));
}
stock bool IsAdmin(int client)
{
   return (CheckCommandAccess(client, "sm_adminjog", ADMFLAG_GENERIC));
}
stock bool IsOwner(int client)
{
   return (CheckCommandAccess(client, "sm_tulaj", ADMFLAG_ROOT));
}
public Action GunsMenu(int client, int args)
{
    if(!IsPlayerAlive(client))
    {
        return Plugin_Handled;
    }
    if(Remember[client])
    {
        Remember[client] = false;
        CPrintToChat(client, "[{lightred}VIP{default}] Újrabekapcsoltad a fegyvermenüt!");
        if(RoundCount > 1) {
        PrimarySelected[client] = true;
        }
        SecondarySelected[client] = true;
        return Plugin_Handled;
    }
    if(!PrimarySelected[client] && !SecondarySelected[client])
    {
        Weapons(client);
    }
    else
    {
        CPrintToChat(client, "[{lightred}VIP{default}] Már kiválasztottad a fegyvered!");
        return Plugin_Handled;
    }
    return Plugin_Continue;
}
public int Weapon_Menu(Menu menu, MenuAction action, int client, int param2)
{
    switch(action)
    {
        case MenuAction_Select:
        {
            char info[32];
            menu.GetItem(param2, info, sizeof(info));
            if (StrEqual(info, "new"))
            {
                SelectPrimaryWeapon(client);
                Remember[client] = false;  
            }
            else if (StrEqual(info, "old"))
            {
                GiveLastWeapons(client);
                Remember[client] = false; 
            }
            else if (StrEqual(info, "olddontask"))
            {
                CPrintToChat(client, "[{lightred}VIP{default}] Visszakapcsolhatod a fegyvermenüt ha újra beírod a chatbe {green}!guns{default}.");
                GiveLastWeapons(client);
                Remember[client] = true;
            }
        }
        case MenuAction_End:{delete menu;}
    }
    return 0;
}
public void SelectPrimaryWeapon(int client)
{
    Menu menu = new Menu(PrimaryWeapon_Menu);
    menu.SetTitle("Elsődleges fegyver");
    menu.AddItem("ak", "AK-47");
    menu.AddItem("mka", "M4A4");
    menu.AddItem("zagmka", "M4A1-S");
    menu.AddItem("awp", "AWP");
    menu.AddItem("sig553", "Sig 553");
    menu.AddItem("aug", "Aug");
    menu.AddItem("famas", "Famas");
    menu.AddItem("galil", "Galil AR");
    menu.AddItem("scout", "Scout");
    menu.AddItem("negev", "Negev");
    menu.AddItem("mac10", "Mac-10");
    menu.AddItem("pro90", "P90");
    menu.AddItem("nova", "Nova");
    menu.AddItem("xm1014", "XM1014");
    menu.AddItem("mag7", "MAG-7");
    menu.ExitButton = false;
    menu.Display(client, 15);
}
public int PrimaryWeapon_Menu(Menu menu, MenuAction action, int client, int param2)
{
    switch(action)
    {
        case MenuAction_Select:
        {
            char info[32];
            menu.GetItem(param2, info, sizeof(info));
            if (StrEqual(info, "ak"))
            {
                RemovePlayerPrimary(client);
                PrimarySelected[client] = true;
                GivePlayerItem(client, "weapon_ak47");
                PrimaryWeapon[client] = "weapon_ak47";
                if(!SecondarySelected[client])
                {
                    SelectSecondaryWeapon(client);
                }
            }
            else if (StrEqual(info, "mka"))
            {
                RemovePlayerPrimary(client);
                PrimarySelected[client] = true;
                GivePlayerItem(client, "weapon_m4a1");
                PrimaryWeapon[client] = "weapon_m4a1";
                if(!SecondarySelected[client])
                {
                    SelectSecondaryWeapon(client);
                }
            }
            else if (StrEqual(info, "zagmka"))
            {
                RemovePlayerPrimary(client);
                PrimarySelected[client] = true;
                GivePlayerItem(client, "weapon_m4a1_silencer");
                PrimaryWeapon[client] = "weapon_m4a1_silencer"; 
                if(!SecondarySelected[client])
                {
                    SelectSecondaryWeapon(client);
                }
            }
            else if (StrEqual(info, "sig553"))
            {
                RemovePlayerPrimary(client);
                PrimarySelected[client] = true;
                GivePlayerItem(client, "weapon_sg556"); 
                PrimaryWeapon[client] = "weapon_sg556"; 
                if(!SecondarySelected[client])
                {
                    SelectSecondaryWeapon(client);
                }
            }
            else if (StrEqual(info, "aug"))
            {
                RemovePlayerPrimary(client);
                PrimarySelected[client] = true;
                GivePlayerItem(client, "weapon_aug"); 
                PrimaryWeapon[client] = "weapon_aug"; 
                if(!SecondarySelected[client])
                {
                    SelectSecondaryWeapon(client);
                }
            }
            else if (StrEqual(info, "famas"))
            {
                RemovePlayerPrimary(client);
                PrimarySelected[client] = true;
                GivePlayerItem(client, "weapon_famas");
                PrimaryWeapon[client] = "weapon_famas"; 
                if(!SecondarySelected[client])
                {
                    SelectSecondaryWeapon(client);
                }
            }
            else if (StrEqual(info, "galil"))
            {
                PrimarySelected[client] = true;
                RemovePlayerPrimary(client);
                GivePlayerItem(client, "weapon_galilar");
                PrimaryWeapon[client] = "weapon_galilar"; 
                if(!SecondarySelected[client])
                {
                    SelectSecondaryWeapon(client);
                }
            }
            else if (StrEqual(info, "negev"))
            {
                RemovePlayerPrimary(client);
                PrimarySelected[client] = true;
                GivePlayerItem(client, "weapon_negev");
                PrimaryWeapon[client] = "weapon_negev"; 
                if(!SecondarySelected[client])
                {
                    SelectSecondaryWeapon(client);
                }
            }
            else if (StrEqual(info, "mac10"))
            {
                RemovePlayerPrimary(client);
                PrimarySelected[client] = true;
                GivePlayerItem(client, "weapon_mac10"); 
                PrimaryWeapon[client] = "weapon_mac10"; 
                if(!SecondarySelected[client])
                {
                    SelectSecondaryWeapon(client);
                }
            }
            else if (StrEqual(info, "pro90"))
            {
                RemovePlayerPrimary(client);
                PrimarySelected[client] = true;
                GivePlayerItem(client, "weapon_p90"); 
                PrimaryWeapon[client] = "weapon_p90"; 
                if(!SecondarySelected[client])
                {
                    SelectSecondaryWeapon(client);
                }
            }
            else if (StrEqual(info, "nova"))
            {
                RemovePlayerPrimary(client);
                PrimarySelected[client] = true;
                GivePlayerItem(client, "weapon_nova"); 
                PrimaryWeapon[client] = "weapon_nova"; 
                if(!SecondarySelected[client])
                {
                    SelectSecondaryWeapon(client);
                }
            }
            else if (StrEqual(info, "xm1014"))
            {
                RemovePlayerPrimary(client);
                PrimarySelected[client] = true;
                GivePlayerItem(client, "weapon_xm1014"); 
                PrimaryWeapon[client] = "weapon_xm1014"; 
                if(!SecondarySelected[client])
                {
                    SelectSecondaryWeapon(client);
                }
            }
            else if (StrEqual(info, "mag7"))
            {
                RemovePlayerPrimary(client);
                PrimarySelected[client] = true;
                GivePlayerItem(client, "weapon_mag7"); 
                PrimaryWeapon[client] = "weapon_mag7"; 
                if(!SecondarySelected[client])
                {
                    SelectSecondaryWeapon(client);
                }
            }
            else if (StrEqual(info, "awp"))
            {
                RemovePlayerPrimary(client);
                PrimarySelected[client] = true;
                GivePlayerItem(client, "weapon_awp"); 
                PrimaryWeapon[client] = "weapon_awp"; 
                if(!SecondarySelected[client])
                {
                    SelectSecondaryWeapon(client);
                }
            }
            else if (StrEqual(info, "scout"))
            {
                RemovePlayerPrimary(client);
                PrimarySelected[client] = true;
                GivePlayerItem(client, "weapon_ssg08"); 
                PrimaryWeapon[client] = "weapon_ssg08"; 
                if(!SecondarySelected[client])
                {
                    SelectSecondaryWeapon(client);
                }
            }
        }
        case MenuAction_End:{delete menu;}
    }
    return 0;
}
public void SelectSecondaryWeapon(int client)
{
    Menu menu = new Menu(SecondaryWeapon_Menu);
    menu.SetTitle("Másodlagos fegyver");
    menu.AddItem("glock", "Glock-18");
    menu.AddItem("usps", "USP-S");
    menu.AddItem("usp", "P2000");
    menu.AddItem("p250", "P250");
    menu.AddItem("deagle", "Desert Eagle");
    menu.AddItem("revol", "R8 Revolver");
    menu.AddItem("f7", "Five-SeveN");
    menu.AddItem("dualbar", "Dual Berettas");
    menu.AddItem("tec9", "Tec-9");
    menu.AddItem("czauto", "CZ75-Auto");
    menu.ExitButton = false;
    menu.Display(client, 15);
}
public int SecondaryWeapon_Menu(Menu menu, MenuAction action, int client, int param2)
{
    switch(action)
    {
        case MenuAction_Select:
        {
            char info[32];
            menu.GetItem(param2, info, sizeof(info));
            if (StrEqual(info, "glock"))
            {
                RemovePlayerPistol(client);
                SecondarySelected[client] = true;
                GivePlayerItem(client, "weapon_glock"); 
                SecondaryWeapon[client] = "weapon_glock";
            }
            else if (StrEqual(info, "usps"))
            {
                RemovePlayerPistol(client);
                SecondarySelected[client] = true;
                GivePlayerItem(client, "weapon_usp_silencer"); 
                SecondaryWeapon[client] = "weapon_usp_silencer";
            }
            else if (StrEqual(info, "usp"))
            {
                RemovePlayerPistol(client);
                SecondarySelected[client] = true;
                GivePlayerItem(client, "weapon_hkp2000"); 
                SecondaryWeapon[client] = "weapon_hkp2000";
            }
            else if (StrEqual(info, "p250"))
            {
                RemovePlayerPistol(client);
                SecondarySelected[client] = true;
                GivePlayerItem(client, "weapon_p250"); 
                SecondaryWeapon[client] = "weapon_p250";
            }
            else if (StrEqual(info, "p250"))
            {
                RemovePlayerPistol(client);
                SecondarySelected[client] = true;
                GivePlayerItem(client, "weapon_p250"); 
                SecondaryWeapon[client] = "weapon_p250";
            }
            else if (StrEqual(info, "deagle"))
            {
                RemovePlayerPistol(client);
                SecondarySelected[client] = true;
                GivePlayerItem(client, "weapon_deagle"); 
                SecondaryWeapon[client] = "weapon_deagle";
            }
            else if (StrEqual(info, "revol"))
            {
                RemovePlayerPistol(client);
                SecondarySelected[client] = true;
                GivePlayerItem(client, "weapon_revolver"); 
                SecondaryWeapon[client] = "weapon_revolver";
            }
            else if (StrEqual(info, "f7"))
            {
                RemovePlayerPistol(client);
                SecondarySelected[client] = true;
                GivePlayerItem(client, "weapon_fiveseven"); 
                SecondaryWeapon[client] = "weapon_fiveseven";
            }
            else if (StrEqual(info, "dualbar"))
            {
                RemovePlayerPistol(client);
                SecondarySelected[client] = true;
                GivePlayerItem(client, "weapon_elite"); 
                SecondaryWeapon[client] = "weapon_elite";
            }
            else if (StrEqual(info, "tec9"))
            {
                RemovePlayerPistol(client);
                SecondarySelected[client] = true;
                GivePlayerItem(client, "weapon_tec9"); 
                SecondaryWeapon[client] = "weapon_tec9";
            }
            else if (StrEqual(info, "czauto"))
            {
                RemovePlayerPistol(client);
                SecondarySelected[client] = true;
                GivePlayerItem(client, "weapon_cz75a"); 
                SecondaryWeapon[client] = "weapon_cz75a";
                RemovePlayerPistol(client);
            }
        }
        case MenuAction_End:{delete menu;}
    }
    return 0;
}
void GiveLastWeapons(int client)
{
    GivePlayerItem(client, PrimaryWeapon[client]);
    GivePlayerItem(client, SecondaryWeapon[client]);
    PrimarySelected[client] = true;
    SecondarySelected[client] = true;
} 
stock void RemovePlayerPistol(int client) {
    int fegya;
    for (int i = 0; i < 6; i++)
    {
      fegya = GetPlayerWeaponSlot(client, i);
      if(IsValidEntity(fegya) && i == 1)
      {
         RemovePlayerItem(client, fegya);
      }
   }
}
stock void RemovePlayerPrimary(int client) {
    int fegya;
    for (int i = 0; i < 6; i++)
    {
      fegya = GetPlayerWeaponSlot(client, i);
      if(IsValidEntity(fegya) && i == 0)
      {
         RemovePlayerItem(client, fegya);
      }
   }
}
stock bool IsThisKnife(char[] knifename)
{
   if(IsStrContains(knifename, "knife") ||
       IsStrContains(knifename, "bayonet"))
       return true;
   return false;
}
stock bool IsSMG(char[] weapon)
{
   return (IsStrContains(weapon, "mp9") ||
         IsStrContains(weapon, "p90") ||
         IsStrContains(weapon, "mac10") ||
         IsStrContains(weapon, "ump45") ||
         IsStrContains(weapon, "mp7") ||
         IsStrContains(weapon, "mp5sd") ||
         IsStrContains(weapon, "bizon"))
}
stock bool IsHeavy(char[] weapon)
{
   return (IsStrContains(weapon, "nova") ||
         IsStrContains(weapon, "xm1014") ||
         IsStrContains(weapon, "mag7") ||
         IsStrContains(weapon, "negev") ||
         IsStrContains(weapon, "sawedoff"))
}
stock bool IsPistol(char[] weapon)
{
   return (IsStrContains(weapon, "deagle") ||
         IsStrContains(weapon, "usp_silencer") ||
         IsStrContains(weapon, "hkp2000") ||
         IsStrContains(weapon, "glock") ||
         IsStrContains(weapon, "elite") ||
         IsStrContains(weapon, "p250") ||
         IsStrContains(weapon, "cz75a") ||
         IsStrContains(weapon, "fiveseven") ||
         IsStrContains(weapon, "tec9") ||
         IsStrContains(weapon, "revolver"))
}
stock bool IsRifle(char[] weapon)
{
   return (IsStrContains(weapon, "awp") ||
         IsStrContains(weapon, "ak47") ||
         IsStrContains(weapon, "m4a1") ||
         IsStrContains(weapon, "famas") ||
         IsStrContains(weapon, "galilar") ||
         IsStrContains(weapon, "ssg08") ||
         IsStrContains(weapon, "sg556") ||
         IsStrContains(weapon, "aug") ||
         IsStrContains(weapon, "scar20") ||
         IsStrContains(weapon, "g3sg1"))
}
stock bool IsStrContains(char[] String, char[] Text, bool caseSensitive = false)
{
   if((StrContains(String, Text, caseSensitive) != -1))
      return true;
   return false;
}
Nélküled nem lett volna se motivációm se kedvem megcsinálni. Tudásom meg végképp. 
Elég sokat tanultam eme kis plugin megírása közben. 
Kezdve az old és a transitional syntax közti különbséget. Már engem is zavar az oldsyntax ha megnyitok egy plugint. Igaz nem tudom 100%-ban megkülönböztetni őket, de amiket ismerek az megy. 
 Ha van valami ötleted amit még beleírhatnék, hogy azzal is gyakoroljak nyugodtan írd le azt megpróbálkozom vele.
Én a menüt úgy csinálnám meg, hogy már eleve a weaponclasst adnám tovább (weapon_ak47, weapon_awp stb stb) és akkor nem kellene ennyi ifet használni, hanem közvetlen GivePlayerItem, stb.., És mivel a két menü teljesen külön van így nincs szükség az IsThisKnife, IsRifle, stb dolgokra (Ezáltal az IsStrContains-ra sem mivel az meg csak az előbb említettekhez kellett volna, csak mivel "stock"-ok ezért a fordító nem szól hogy nincsenek használva)
És a menu.ExitButton = true; még mindig ott van, amikor nem változtat semmit (Mivel csak akkor nincs exitbutton ha előtte át lett állítva falsera)
OnClientPostAdminCheck-nél az utolsó else fölösleges, ha egyik feltétel sem teljesül akkor nem történik semmi.
Nemtudom, hogy melyik programban szerkeszted a kódot, de ha lehet akkor minél jobban figyelj oda, hogy hogyan "tabolsz"
Amit én még bele raknék az az, hogy a beállításokat mentse el hosszú távon is (clientprefs), amiben szintén segíthetek ha gondolod de előtte a fent említett dolgokat nézd át és mérlegeld