Rodion1488
Участник
- Сообщения
- 151
- Реакции
- 4
Уже рико отписал,мне не нужно в админ меню,мне нужно в вип меню))@Rodion1488, Если хочешь вставить в Админ меню - юзай сортировку, там это можно сделать.
ОффтопЕсли ты хочешь в меню по команде (типо !weapon) - то кажется там есть такое либо же просто дописать пару строчек...
"Только себе" - если в плагине нет функции "только себе" то по теме надо дописывать его, обратись к RIKO он кодер, может поможет в этом простом (относительно) деле. = R1KO
только себе мог выдавать
#include <sourcemod>
#include <sdktools>
#pragma semicolon 1
#define MAX_WEAPONS 38
public Plugin:myinfo = {
name = "Give Weapon",
author = "Kiske",
description = "Give a weapon to a player from a command",
version = "1.0myself",
url = "http://www.sourcemod.net/"
};
new const String:g_weapons[MAX_WEAPONS][] = {
"weapon_ak47", "weapon_aug", "weapon_bizon", "weapon_deagle", "weapon_decoy", "weapon_elite", "weapon_famas", "weapon_fiveseven", "weapon_flashbang",
"weapon_g3sg1", "weapon_galilar", "weapon_glock", "weapon_hegrenade", "weapon_hkp2000", "weapon_incgrenade", "weapon_knife", "weapon_m249", "weapon_m4a1",
"weapon_mac10", "weapon_mag7", "weapon_molotov", "weapon_mp7", "weapon_mp9", "weapon_negev", "weapon_nova", "weapon_p250", "weapon_p90", "weapon_sawedoff",
"weapon_scar20", "weapon_sg556", "weapon_smokegrenade", "weapon_ssg08", "weapon_taser", "weapon_tec9", "weapon_ump45", "weapon_xm1014", "weapon_awp", "weapon_m4a1_silencer"
};
public OnPluginStart()
{
RegAdminCmd("sm_weapon", smWeapon, ADMFLAG_CUSTOM3, "- <target> <weaponname>");
RegAdminCmd("sm_weaponlist", smWeaponList, ADMFLAG_CUSTOM3, "- list of the weapon names");
}
public Action:smWeapon(id, args)
{
if(args != 1)
{
ReplyToCommand(id, "[SM] Usage: sm_weapon <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 || GivePlayerItem(id, sWeaponName) == -1)
{
ReplyToCommand(id, "[SM] The weaponname (%s) isn't valid", sWeaponName);
return Plugin_Handled;
}
return Plugin_Handled;
}
public Action:smWeaponList(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;
}
Это только к нему.в вип меню
такк,поставил вроде,пишу в консоли weapon для проверке вроде все нормально,но как пишу название оружия,то пишут нету командыЭто только к нему.PHP:#include <sourcemod> #include <sdktools> #pragma semicolon 1 #define MAX_WEAPONS 38 public Plugin:myinfo = { name = "Give Weapon", author = "Kiske", description = "Give a weapon to a player from a command", version = "1.0myself", url = "http://www.sourcemod.net/" }; new const String:g_weapons[MAX_WEAPONS][] = { "weapon_ak47", "weapon_aug", "weapon_bizon", "weapon_deagle", "weapon_decoy", "weapon_elite", "weapon_famas", "weapon_fiveseven", "weapon_flashbang", "weapon_g3sg1", "weapon_galilar", "weapon_glock", "weapon_hegrenade", "weapon_hkp2000", "weapon_incgrenade", "weapon_knife", "weapon_m249", "weapon_m4a1", "weapon_mac10", "weapon_mag7", "weapon_molotov", "weapon_mp7", "weapon_mp9", "weapon_negev", "weapon_nova", "weapon_p250", "weapon_p90", "weapon_sawedoff", "weapon_scar20", "weapon_sg556", "weapon_smokegrenade", "weapon_ssg08", "weapon_taser", "weapon_tec9", "weapon_ump45", "weapon_xm1014", "weapon_awp", "weapon_m4a1_silencer" }; public OnPluginStart() { RegAdminCmd("sm_weapon", smWeapon, ADMFLAG_CUSTOM3, "- <target> <weaponname>"); RegAdminCmd("sm_weaponlist", smWeaponList, ADMFLAG_CUSTOM3, "- list of the weapon names"); } public Action:smWeapon(id, args) { if(args != 1) { ReplyToCommand(id, "[SM] Usage: sm_weapon <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 || GivePlayerItem(id, sWeaponName) == -1) { ReplyToCommand(id, "[SM] The weaponname (%s) isn't valid", sWeaponName); return Plugin_Handled; } return Plugin_Handled; } public Action:smWeaponList(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; }
L 03/09/2017 - 14:46:36: [SM] Blaming: giveweapons.smx
L 03/09/2017 - 14:46:36: [SM] Call stack trace:
L 03/09/2017 - 14:46:36: [SM] [1] Line 47, /home/groups/sourcemod/upload_tmp/phpYbsv3I.sp::smWeapon
Это не вся ошибка. Да и строку показывает ту, где до этого код вообще не менялся, кроме количества аргументов.Ошибка в логах
Да мне пока что не обязательно,просто ошибку б решитьЭто не вся ошибка. Да и строку показывает ту, где до этого код вообще не менялся, кроме количества аргументов.
И вообще, раз тебе обязательно только с VIP-меню, то сразу к автору последнего.
Это не вся ошибка. Да и строку показывает ту, где до этого код вообще не менялся, кроме количества аргументов.
И вообще, раз тебе обязательно только с VIP-меню, то сразу к автору последнего.
L 03/09/2017 - 14:51:18: SourceMod error session started
L 03/09/2017 - 14:51:18: Info (map "de_dust2") (file "errors_20170309.log")
L 03/09/2017 - 14:51:18: [SM] Exception reported: Array index is out of bounds
L 03/09/2017 - 14:51:18: [SM] Blaming: giveweapons.smx
L 03/09/2017 - 14:51:18: [SM] Call stack trace:
L 03/09/2017 - 14:51:18: [SM] [1] Line 47, /home/groups/sourcemod/upload_tmp/phpKLBUg6.sp::smWeapon
Копался в исходнике, судя по всему.Array index is out of bounds
#include <sourcemod>
#include <sdktools>
#pragma semicolon 1
public Plugin:myinfo = {
name = "Give Weapon",
author = "Kiske & AlmazON edition",
description = "Give a weapon to a player from a command",
version = "1.0myself",
url = "http://www.sourcemod.net/"
};
new const String:g_weapons[][] = {
"ak47", "aug", "bizon", "deagle", "decoy", "elite", "famas", "fiveseven", "flashbang", "g3sg1", "galilar", "glock", "hegrenade", "hkp2000", "incgrenade",
"knife", "m249", "m4a1", "mac10", "mag7", "molotov", "mp7", "mp9", "negev", "nova", "p250", "p90", "sawedoff", "scar20", "sg556", "smokegrenade", "ssg08",
"taser", "tec9", "ump45", "xm1014", "awp", "m4a1_silencer", "knifegg"
};
public OnPluginStart()
{
RegAdminCmd("sm_weapon", smWeapon, ADMFLAG_CUSTOM3, "Specify the name of the weapon <weaponname>");
RegAdminCmd("sm_weaponlist", smWeaponList, ADMFLAG_CUSTOM3, "List of the weapon names.");
}
public Action:smWeapon(id, args)
{
if(id)
{
if(args == 1)
{
decl String:weapon[32];
GetCmdArg(1, weapon, sizeof(weapon));
for(new i; i < sizeof(g_weapons); ++i)
{
if(!strcmp(weapon, g_weapons[i]))
{
FormatEx(weapon, sizeof(weapon), "weapon_%s", g_weapons[i]);
if(GivePlayerItem(id, weapon) == -1) PrintToChat(id, "Оружие %s не поддерживается текущей игрой.", weapon);
return Plugin_Handled;
}
}
PrintToChat(id, "[SM] Необозначенное имя оружия (%s)", weapon);
}
else PrintToChat(id, "[SM] Используйте: sm_weapon <weaponname>");
}
return Plugin_Handled;
}
public Action:smWeaponList(id, args)
{
for(new i; i < sizeof(g_weapons); ++i)
ReplyToCommand(id, "%s", g_weapons[i]);
return Plugin_Handled;
}
Теперь все отлично))0 спасибо))Копался в исходнике, судя по всему.
Я не собираюсь заниматься ерундой, проще переписать плагин без этого мусора:PHP:#include <sourcemod> #include <sdktools> #pragma semicolon 1 public Plugin:myinfo = { name = "Give Weapon", author = "Kiske & AlmazON edition", description = "Give a weapon to a player from a command", version = "1.0myself", url = "http://www.sourcemod.net/" }; new const String:g_weapons[][] = { "ak47", "aug", "bizon", "deagle", "decoy", "elite", "famas", "fiveseven", "flashbang", "g3sg1", "galilar", "glock", "hegrenade", "hkp2000", "incgrenade", "knife", "m249", "m4a1", "mac10", "mag7", "molotov", "mp7", "mp9", "negev", "nova", "p250", "p90", "sawedoff", "scar20", "sg556", "smokegrenade", "ssg08", "taser", "tec9", "ump45", "xm1014", "awp", "m4a1_silencer", "knifegg" }; public OnPluginStart() { RegAdminCmd("sm_weapon", smWeapon, ADMFLAG_CUSTOM3, "Specify the name of the weapon <weaponname>"); RegAdminCmd("sm_weaponlist", smWeaponList, ADMFLAG_CUSTOM3, "List of the weapon names."); } public Action:smWeapon(id, args) { if(id) { if(args == 1) { decl String:weapon[32]; GetCmdArg(1, weapon, sizeof(weapon)); for(new i; i < sizeof(g_weapons); ++i) { if(!strcmp(weapon, g_weapons[i])) { FormatEx(weapon, sizeof(weapon), "weapon_%s", g_weapons[i]); if(GivePlayerItem(id, weapon) == -1) PrintToChat(id, "Оружие %s не поддерживается текущей игрой.", weapon); return Plugin_Handled; } } PrintToChat(id, "[SM] Необозначенное имя оружия (%s)", weapon); } else PrintToChat(id, "[SM] Используйте: sm_weapon <weaponname>"); } return Plugin_Handled; } public Action:smWeaponList(id, args) { for(new i; i < sizeof(g_weapons); ++i) ReplyToCommand(id, "%s", g_weapons[i]); return Plugin_Handled; }