Поменять флаг

Rodion1488

Участник
Сообщения
151
Реакции
4
Ребят поменяйте флаг d,на какой нибудь q например,спасибо!
Или же расскажите как)
--- Добавлено позже ---
Так же если можете еще сделать что б он только себе мог выдавать))
 

Вложения

  • giveweapons.smx
    5.7 КБ · Просмотры: 2
  • giveweapons.sp
    2.8 КБ · Просмотры: 7

Black_Yuzia

Зарабатываю на жизнь Мемами про Крузю.
Сообщения
693
Реакции
372
@Rodion1488, Держи, по теме должно работать.
Оффтоп
 

Вложения

  • giveweapons.sp
    2.8 КБ · Просмотры: 2

Rodion1488

Участник
Сообщения
151
Реакции
4
Флаг я поменял сам,но как сделать что б он только себе мог выдавать? Просто я для VIP хочу сделать такую вещицу)) + как вставить в меню это все,вместо консольный команд)
 

Black_Yuzia

Зарабатываю на жизнь Мемами про Крузю.
Сообщения
693
Реакции
372
@Rodion1488, Если хочешь вставить в Админ меню - юзай сортировку, там это можно сделать.
Оффтоп

"Только себе" - если в плагине нет функции "только себе" то по теме надо дописывать его, обратись к RIKO он кодер, может поможет в этом простом (относительно) деле. = R1KO
 

Rodion1488

Участник
Сообщения
151
Реакции
4
@Rodion1488, Если хочешь вставить в Админ меню - юзай сортировку, там это можно сделать.
Оффтоп

"Только себе" - если в плагине нет функции "только себе" то по теме надо дописывать его, обратись к RIKO он кодер, может поможет в этом простом (относительно) деле. = R1KO
Уже рико отписал,мне не нужно в админ меню,мне нужно в вип меню))
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
только себе мог выдавать
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;
}
Это только к нему.
 

Rodion1488

Участник
Сообщения
151
Реакции
4
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;
}
Это только к нему.
такк,поставил вроде,пишу в консоли weapon для проверке вроде все нормально,но как пишу название оружия,то пишут нету команды
--- Добавлено позже ---
Ошибка в логах:
C-подобный:
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
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Это не вся ошибка. Да и строку показывает ту, где до этого код вообще не менялся, кроме количества аргументов.
И вообще, раз тебе обязательно только с VIP-меню, то сразу к автору последнего.
 

Rodion1488

Участник
Сообщения
151
Реакции
4
Это не вся ошибка. Да и строку показывает ту, где до этого код вообще не менялся, кроме количества аргументов.
И вообще, раз тебе обязательно только с VIP-меню, то сразу к автору последнего.
Да мне пока что не обязательно,просто ошибку б решить
--- Добавлено позже ---
Это не вся ошибка. Да и строку показывает ту, где до этого код вообще не менялся, кроме количества аргументов.
И вообще, раз тебе обязательно только с VIP-меню, то сразу к автору последнего.
C-подобный:
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
вооот
--- Добавлено позже ---
Если сделать только флаг,то все нормально,использовать можн)
 
Последнее редактирование:

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Array index is out of bounds
Копался в исходнике, судя по всему.
Я не собираюсь заниматься ерундой, проще переписать плагин без этого мусора:
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;
}
 

Rodion1488

Участник
Сообщения
151
Реакции
4
Копался в исходнике, судя по всему.
Я не собираюсь заниматься ерундой, проще переписать плагин без этого мусора:
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;
}
Теперь все отлично))0 спасибо))
 
Сверху Снизу