Модуль плагина [ ARMY ] Оружие/Weapons 1.3

Модуль добавляет для звания основное оружие и пистолет!

  1. Саша Шеин

    Саша Шеин

    Сообщения:
    1.259
    Симпатии:
    191
    Пользователь Саша Шеин разместил новый ресурс:

    [ ARMY ] Оружие/Weapons - Модуль добавляет для звания основное оружие и пистолет!

    Узнать больше об этом ресурсе...
     
  2. L\O\R\D

    L\O\R\D

    Сообщения:
    14
    Симпатии:
    0
    Минус модуля в том что каждый новый раунд появляется меню с тем оружием которое предназначенодля определённого звания, лучше б сделали возможность откл. этого меню либо авто установка оружия.
     
  3. Monomizer

    Monomizer Мимо пробегал Супер-модератор

    Сообщения:
    1.528
    Симпатии:
    201
    Поидее должно работать

    PHP:
    #include <army_ranks>
    #include <sdktools>

    #define CS_SLOT_PRIMARY        0 /* AWP | Ak47 | AUG ... */
    #define CS_SLOT_SECONDARY    1 /* USP | DEAGLE ... */
    #define CS_SLOT_KNIFE        2
    #define CS_SLOT_C4            4

    new Count[MAXPLAYERS+1] = 0;

    public 
    Plugin:myinfo =
    {
        
    name "[ ARMY ] Оружие/Weapons",
        
    author "sahapro33",
        
    description "",
        
    version "1.3"
    }

    public 
    ARMY_OnLoad() LoadTranslations("army_ranks/modules.phrases.txt");

    public 
    ARMY_PlayerConnect(client,g_sRank[],g_iKills[],g_iDeaths[])
    {
        if(
    Army_GetNumAtributes(client,"WeaponCount",-1) > 0)
        {
            
    decl String:Buffer[100];
            
    FormatEx(Buffer,sizeof(Buffer),"%t","WEAPON");
            
    Army_RegisterItem(client,"Weapon",Buffer);
        }
    }

    public 
    OnPluginStart()
    {
        
    RegConsoleCmd("sm_armyweapon",armyweapon);
    }

    public 
    ARMY_ArmyUp(client)
    {
        if(
    Army_GetNumAtributes(client,"WeaponCount",-1) > 0)
        {
            
    decl String:Buffer[100];
            
    FormatEx(Buffer,sizeof(Buffer),"%t","WEAPON");
            
    Army_RegisterItem(client,"Weapon",Buffer);
        }
    }

    /*public ARMY_PlayerSpawn(client)
    {
        Count[client] = Army_GetNumAtributes(client,"WeaponCount",0);
        if(Count[client]>0)ShowMenu(client);
    }*/
    public Action:armyweapon(clientargs)
    {
        if (
    client && IsPlayerAlive(client))
        {
            
    ShowMenu(client);
        }
        return 
    Plugin_Handled;
    }

    ShowMenu(client)
    {
        
    decl String:buffer[2][256];
        new 
    0;
        new 
    Handle:menu CreateMenu(Handle_WeaponMenu);
        
    SetMenuTitle(menu,"[-ARMY-] Оружие\n\n ");
       
        if(
    Army_GetStringAtributes(client,"WeaponPrimary","0",buffer[0],256))
        {
            if(
    strcmp(buffer[0],"0") && ExplodeString(buffer[0],":",buffer,2,256))
            {
                
    Format(buffer[0],sizeof(buffer[]),"0|%s",buffer[0]);
                
    AddMenuItem(menu,buffer[0],buffer[1]);
                
    i++;
            }
        }
       
        if(
    Army_GetStringAtributes(client,"WeaponSecondary","0",buffer[0],256))
        {
            if(
    strcmp(buffer[0],"0") && ExplodeString(buffer[0],":",buffer,2,256))
            {
                
    Format(buffer[0],sizeof(buffer[]),"1|%s",buffer[0]);
                
    AddMenuItem(menu,buffer[0],buffer[1]);
                
    i++;
            }
        }
        if(
    i>0)DisplayMenu(menu,client,0);
    }
    public 
    Handle_WeaponMenu(Handle:menuMenuAction:actionclientiSlot)
    {
        if(
    action == MenuAction_Select)
        {
            
    decl String:info[2][256];
            
    GetMenuItem(menu,iSlot,info[0],sizeof(info[]));
            
    ExplodeString(info[0],"|",info,sizeof(info),sizeof(info[]));
           
            
    Format(info[1],sizeof(info[]),"weapon_%s",info[1]);
           
            
    ChangeWeapon(clientStringToInt(info[0]), info[1])
            
    Count[client]--;
            if(
    Count[client]>0)ShowMenu(client);
        }
    }
    ChangeWeapon(clientslotString:WP[])
    {
        new 
    weaponIdx;
        if ((
    weaponIdx GetPlayerWeaponSlot(clientslot)) > 0)
        {
            
    decl String:classname[20];
            
    GetEdictClassname(weaponIdxclassnamesizeof(classname));
            if (
    strcmp(WPclassname) == 0)
            {
                
    // PrintToChat(client, "У вас уже есть %s",classname);
                
    GivePlayerItem(clientWP);
            }
            else
            {
                
    RemovePlayerItem(clientweaponIdx);
                
    AcceptEntityInput(weaponIdx"Kill");
                
    GivePlayerItem(clientWP);
                
    // PrintToChat(client, "У вас есть %s=нужно %s изменим",classname,WP);
            
    }
        }
        else
        {
            
    GivePlayerItem(clientWP);
            
    // PrintToChat(client, "У вас ничего нет в слоте №%d выдадим %s",slot,WP);
        
    }
    }
    sm_armyweapon вызовет меню
    ----
    Пните кто там знающий, если накосячил
     
  4. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.515
    Симпатии:
    1.969
    Уже не скомпилируется, т.к. такая функция-вызов уже существует (в самом ядре army_ranks). Судя по всему, вместо этого есть ARMY_OnLoad(). Оффтоп
     
    Monomizer нравится это.
  5. Monomizer

    Monomizer Мимо пробегал Супер-модератор

    Сообщения:
    1.528
    Симпатии:
    201
    [​IMG]
     
  6. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.515
    Симпатии:
    1.969
    Типа, без исправлений? Всё равно, для такого должна быть своя функция. Мало ли, ядро не запустится или рано запустится модуль, а ядро ещё нет .
     
  7. Monomizer

    Monomizer Мимо пробегал Супер-модератор

    Сообщения:
    1.528
    Симпатии:
    201
    Верно
    Да не спорю, у него тип такого есть
    OnArmyLoad = CreateGlobalForward("ARMY_OnLoad", ET_Hook);