Добрый день. Не могу понять, почему не работает выдача оружия. Помогите пожалуйста
выдаваться должно обычному игроку, который вводит команду в консоль, без прав админа
C-подобный:
#include <sourcemod>
#include <sdktools>
#pragma semicolon 1
#define MAX_WEAPONS 29
public Plugin:myinfo = {
name = "Test",
author = "Test",
description = "Test",
version = "1.0",
url = "http://www.sourcemod.net/"
};
new const String:g_weapons[MAX_WEAPONS][] = {
"weapon_glock", "weapon_usp", "weapon_p228", "weapon_deagle", "weapon_elite", "weapon_fiveseven", "weapon_m3", "weapon_xm1014", "weapon_galil",
"weapon_ak47", "weapon_scout", "weapon_sg552", "weapon_awp", "weapon_g3sg1", "weapon_famas", "weapon_m4a1", "weapon_aug", "weapon_sg550",
"weapon_mac10", "weapon_tmp", "weapon_mp5navy", "weapon_ump45", "weapon_p90", "weapon_m249", "item_assaultsuit", "weapon_flashbang", "weapon_hegrenade", "weapon_smokegrenade",
"item_defuser", "weapon_c4"
};
public OnPluginStart()
{
RegConsoleCmd("sm_gw", smGW, "- <target> <weaponname>", FCVAR_NONE);
RegConsoleCmd("sm_gwl", smGWL, "- list of the weapon names", FCVAR_NONE);
}
public Action:smGW(id, args)
{
if(args < 2)
{
ReplyToCommand(id, "[SM] Usage: sm_weapon <name | #userid> <weaponname>");
return Plugin_Handled;
}
decl String:sArg[256];
decl String:sTempArg[32];
decl String:sWeaponName[32];
decl String:sWeaponNameTemp[32];
decl iL;
decl iNL;
GetCmdArgString(sArg, sizeof(sArg));
iL = BreakString(sArg, sTempArg, sizeof(sTempArg));
if((iNL = BreakString(sArg[iL], sWeaponName, sizeof(sWeaponName))) != -1)
iL += iNL;
new i;
new iValid = 0;
if(StrContains(sWeaponName, "weapon_") == -1)
{
FormatEx(sWeaponNameTemp, 31, "weapon_");
StrCat(sWeaponNameTemp, 31, sWeaponName);
strcopy(sWeaponName, 31, sWeaponNameTemp);
}
for(i = 0; i < MAX_WEAPONS; ++i)
{
if(StrEqual(sWeaponName, g_weapons[i]))
{
iValid = 1;
break;
}
}
if(!iValid)
{
ReplyToCommand(id, "[SM] The weaponname (%s) isn't valid", sWeaponName);
return Plugin_Handled;
}
decl String:sTargetName[MAX_TARGET_LENGTH];
decl sTargetList[1];
decl bool:bTN_IsML;
new iTarget = -1;
if(ProcessTargetString(sTempArg, id, sTargetList, 1, COMMAND_FILTER_ALIVE|COMMAND_FILTER_NO_MULTI, sTargetName, sizeof(sTargetName), bTN_IsML) > 0)
iTarget = sTargetList[0];
if(iTarget != -1 && !IsFakeClient(iTarget))
GivePlayerItem(iTarget, sWeaponName);
return Plugin_Handled;
}
public Action:smGWL(id, args)
{
new i;
for(i = 0; i < MAX_WEAPONS; ++i)
ReplyToCommand(id, "%s", g_weapons[i]);
ReplyToCommand(id, "");
ReplyToCommand(id, "* No need to put weapon_ in the <weaponname>");
return Plugin_Handled;
}
выдаваться должно обычному игроку, который вводит команду в консоль, без прав админа