Русское сообщество по скриптингу

[INS] Guns Menu - модификация

Все вопросы по скриптингу для SourceMod, помощь в редактировании плагинов.
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптингу для SourceMod.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [pawn], в противном случае, если тег [pawn] не отображает ваш код, можно использовать тег [code].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sp плагина.

[INS] Guns Menu - модификация

Сообщение puma133 » 12 фев 2018, 20:06

Здравствуйте всем! Хочу модифицировать плагин который выдает оружие в игре Insurgency, сервер работает на sourcemod сам плагин вот:

Код: Выделить всё
#pragma semicolon 1
#include <sourcemod>

#define PLUGIN_VERSION "1.0"

new MARINES = 1;
new INSURGENTS = 2;

public OnPluginStart()
{
    RegConsoleCmd("sm_guns", WeaponMenu);
    RegConsoleCmd("guns", WeaponMenu);

    CreateConVar("ins_guns2_version", PLUGIN_VERSION, "INS Gun Menu Version", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY);
    OnMapStart();
}

public OnMapStart()
{
    decl String:mapname[64];
    GetCurrentMap(mapname, sizeof(mapname));
    if (strcmp(mapname, "ins_karam") == 0 || strcmp(mapname, "ins_baghdad") == 0)
    {
        INSURGENTS = 1;
        MARINES = 2;
    }
    else
    
{
        MARINES = 1;
        INSURGENTS = 2;
    }
}

public Action:WeaponMenu(client,args)
{
    Weapons(client);
    
    return Plugin_Handled
;
}

public Action:Weapons(clientId) {

    new team = GetClientTeam(clientId);
    if (team == INSURGENTS)
    {
        new Handle:menu = CreateMenu(WeaponMenuHandlerINS);
        SetMenuTitle(menu, "Marines Gun Menu");
        AddMenuItem(menu, "option1", "M4A1");
        AddMenuItem(menu, "option2", "M16A4");
        AddMenuItem(menu, "option3", "M40A1");
        AddMenuItem(menu, "option4", "M249");
        AddMenuItem(menu, "option5", "M590");
        AddMenuItem(menu, "option6", "MK18");
        AddMenuItem(menu, "option7", "MP5K");
        SetMenuExitButton(menu, true);
        DisplayMenu(menu, clientId, 15);
    }
    else if (team == MARINES)
    {
        new Handle:menu = CreateMenu(WeaponMenuHandlerUS);
        SetMenuTitle(menu, "Insurgents Gun Menu");
        AddMenuItem(menu, "option1", "AKM");
        AddMenuItem(menu, "option2", "FAL");
        AddMenuItem(menu, "option2", "AKS-74U");
        AddMenuItem(menu, "option3", "RPK");
        AddMenuItem(menu, "option4", "TOZ");
        AddMenuItem(menu, "option5", "AK-74");
        AddMenuItem(menu, "option7", "Mosin");
        SetMenuExitButton(menu, true);
        DisplayMenu(menu, clientId, 15);
    }
        return Plugin_Handled;
}

public WeaponMenuHandlerUS(Handle:menu, MenuAction:action, client, itemNum)
{
        SetConVarBool(FindConVar("sv_cheats"), true, false);

        if ( action == MenuAction_Select ) {
        
        switch 
(itemNum)
        {
            case 0: 
            
{
                 FakeClientCommand(client, "give_weapon m4a1");
            }
            case 1: 
            
{
                FakeClientCommand(client, "give_weapon m16a4");
            }
         case 2: 
            
{
                FakeClientCommand(client, "give_weapon m40a1");
            }
         case 3: 
            
{
                FakeClientCommand(client, "give_weapon m249");
            }
         case 4:
            {
                FakeClientCommand(client, "give_weapon m590");
            }
         case 5:
            {
                FakeClientCommand(client, "give_weapon mk18");
            }
         case 6:
            {
                FakeClientCommand(client, "give_weapon mp5k");
            }
        }
    }
        SetConVarBool(FindConVar("sv_cheats"), false, false);
}

public WeaponMenuHandlerINS(Handle:menu, MenuAction:action, client, itemNum)
{
        SetConVarBool(FindConVar("sv_cheats"), true, false);

        if ( action == MenuAction_Select ) {
        
        switch 
(itemNum)
        {
            case 0: 
            
{
                FakeClientCommand(client, "give_weapon akm");
            }
         case 1: 
            
{
                FakeClientCommand(client, "give_weapon fal");
            }
         case 2: 
            
{
                FakeClientCommand(client, "give_weapon aks74u");
            }
         case 3:
            {
                FakeClientCommand(client, "give_weapon rpk");
            }
         case 4:
            {
                FakeClientCommand(client, "give_weapon toz");
            }
         case 5:
            {
                FakeClientCommand(client, "give_weapon ak74");
            }
         case 6:
            {
                FakeClientCommand(client, "give_weapon mosin");
            }
        }
    }
        SetConVarBool(FindConVar("sv_cheats"), false, false);
}


Так вот, плагин выдает оружие если ввести команду !guns. Но в игре можно на оружие ставить модификации разние: глушитель, оптику, бронебойные патроны. Мне нужно дописать код чтобы оружие выдавалась не дефолтные, а с теми модификациями с которыми я пропишу уже в коде. Беда в том что я не знаю кодировку этих модификаций, есть знающие люди ?
Я не скриптер, я только учусь!
Аватара пользователя
puma133
 
Сообщения: 106
Зарегистрирован: 21 окт 2009, 10:05
Откуда: Украина
Благодарил (а): 18 раз.
Поблагодарили: 8 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike 1.6
HTML
Valve Hammer Editor 3.4

Re: [INS] Guns Menu - модификация

Сообщение артист666 » 15 мар 2018, 19:32

Это на CS:GO?

Все модификации нужно запоминать в массив какой-нибудь.
При выдаче проверять.
А для начала отловить все эти модификации.
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron