Помогите с выдачей оружия всем!

Тема в разделе "Counter-Strike: Global Offensive", создана пользователем MIV, 28 фев 2015.

  1. MIV

    MIV

    Сообщения:
    633
    Симпатии:
    26
    Помогите с выдачей оружия всей команде КТ либо команде Т, либо выдать всем игрокам определенное оружие, с помощью плагина выдается только определенному игроку, как сделать чтоб всей команде, либо всем!?
     
  2. Tallanvor

    Tallanvor Красноглазый

    Сообщения:
    1.087
    Симпатии:
    306
    MIV, тебе при каких условиях надо выдавать оружие то?
     
  3. MIV

    MIV

    Сообщения:
    633
    Симпатии:
    26
    Админом, ну просто вот играют на ножах на 35hp к примеру и одной из команд выдать тазеры к примеру или гранаты, но сразу всей команде! Либо всем игрокам, но не прописывать каждому поотдельности!
     
  4. AlmazON

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

    Сообщения:
    4.533
    Симпатии:
    1.980
    MIV, чем выдаёшь одному? Сделать циклом по всем игрокам и всё.
     
  5. MIV

    MIV

    Сообщения:
    633
    Симпатии:
    26
    Дак вот как это сделать?
     
  6. diller110

    diller110

    Сообщения:
    138
    Симпатии:
    48
    Исправленная рабочая версия:
    Посмотреть вложение ac-weapontoall.smx

    Посмотреть вложение ac-weapontoall.sp

    Командой sm_wta <CT/T/ALL> <Weapon>

    Список оружия: Оффтоп

    Правда у меня в упор не хочет работать, AlmazON, помоги, что с этими клиентами? Сначала на блоке ALL не хотел работать, хотя первые if CT и if T вроде как независимы, теперь или только T или CT.
     
    Последнее редактирование: 1 мар 2015
  7. The End Is Near...

    The End Is Near... Russian Roulette

    Сообщения:
    893
    Симпатии:
    659
    diller110
    У тебя ошибка в for(new i = 1; i>GetClientCount(); i++). используй i <= MaxClients
    PHP:
    // 1 - ALL; 2 - T; 3 - CT
    stock Function_GiveWeapon(team, const String:weapon[], const String:info[])
    {
        for (new 
    1<= MaxClientsi++)
        {
            if (
    IsClientInGame(i))
            {
                if ((
    GetClientTeam(i) == team) || team == 1)
                {
                    if (
    IsPlayerAlive(i))
                    {                
                        
    GiveWeapon(iweapon);
                    }
                }

                
    PrintToChat(i"\x01\x05[SM] \x01%s выдано оружие \x05%s"infoweapon);
            }
        }
    }
     
    diller110 нравится это.
  8. diller110

    diller110

    Сообщения:
    138
    Симпатии:
    48
    The End Is Near..., Ясно.. А почему правильно использовать MaxClients, не лучше ли цикл использовать столько сколько игроков, а не 64 каждый раз?
    Или maxclients итак высчитывает кол-во игроков?
     
  9. The End Is Near...

    The End Is Near... Russian Roulette

    Сообщения:
    893
    Симпатии:
    659
    diller110 нравится это.
  10. diller110

    diller110

    Сообщения:
    138
    Симпатии:
    48
    The End Is Near..., Использовал твою функцию выше, там GiveWeapon просто для примера написал, или есть такая функция? (заменил на giveplayeritem)


    Оффтоп
     
    Последнее редактирование: 1 мар 2015
  11. AlmazON

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

    Сообщения:
    4.533
    Симпатии:
    1.980
    WeaponToAll v1.0

    diller110, чтобы не писать постоянно weapon_:
    PHP:
    #include <sdktools_functions>

    /* Список оружия:

        "glock", "p250", "fiveseven", "deagle", "elite", "hkp2000", "tec9",
        "nova", "xm1014", "mag7", "sawedoff", "m249", "negev", 
        "mp9", "mac10", "mp7", "ump45", "p90", "bizon",
        "famas", "m4a1", "galilar", "ak47", "ssg08",    "aug", "sg556", "awp", "scar20", "g3sg1",
        "taser", "knife", "decoy", "flashbang", "hegrenade", "incgrenade", "molotov", "smokegrenade"  };
    */

    public Plugin:myinfo =
    {
        
    name "WeaponToAll",
        
    author "",
        
    description "Provides !wta command",
        
    version "1.0",
        
    url ""
    }

    public 
    OnPluginStart() {
        
    RegAdminCmd("sm_wta"Command_WTAADMFLAG_KICK"Gives weapon for all team");
    }

    public 
    Action:Command_WTA(clientargs) {
        if(
    args 2) {
            
    ReplyToCommand(client"[WTA] Дать оружие: /wta <ct/t/all> <Weapon>");
        } else {
            
    decl String:team[4];
            
    GetCmdArg(1team4);
            if (
    strcmp(team"ALL"false) == 0) {
                
    decl String:weapon[14];
                
    GetCmdArg(2weapon14);
                
    Function_GiveWeapon(1weapon"Всем")
            } else if (
    strcmp(team"CT"false) == 0) {
                
    decl String:weapon[14];
                
    GetCmdArg(2weapon14);
                
    Function_GiveWeapon(3weapon"Контрам")
            } else if (
    strcmp(team"T"false) == 0) {
                
    decl String:weapon[14];
                
    GetCmdArg(2weapon14);
                
    Function_GiveWeapon(2weapon"Террористам")
            } else 
    ReplyToCommand(client"[WTA] Выберите корректную команду: CT, T, ALL");
        }
        return 
    Plugin_Handled;
    }

    // 1 - ALL; 2 - T; 3 - CT
    stock Function_GiveWeapon(team, const String:weapon[], const String:info[])
    {
        new 
    strlen(weapon)+8;
        
    decl String:give_weapon[i];
        
    FormatEx(give_weaponi"weapon_%s"weapon);
        for (
    1<= MaxClientsi++) {
            if (
    IsClientInGame(i) && IsPlayerAlive(i) && (team == || GetClientTeam(i) == team))
            {
                if (
    GivePlayerItem(igive_weapon) != -1PrintToChat(i"\x01\x05[SM] \x01%s выдано оружие \x05%s"infogive_weapon);
                else break;
            }
        }
    }  
     
  12. The End Is Near...

    The End Is Near... Russian Roulette

    Сообщения:
    893
    Симпатии:
    659
    AlmazON
    1. Каждый раз получаешь 2 аргумент

    2. Цикл не должен пройти у тебя (break остановит цикл ведь полностью, т.е. первый игрок получит оружие и все)

    3. Format(weapon, 16, "weapon_%s", weapon) ?

    4. Сообщение не все увидят, а лишь те, кто получит оружие

    верно. 3. strlen(weapon) + N
     
    Последнее редактирование: 1 мар 2015
  13. MIV

    MIV

    Сообщения:
    633
    Симпатии:
    26
    Скиньте рабочий уже плагин))) или исходник) А можно ли написать менюшку к этому плагину? чтоб выбирать оружие с меню?
     
  14. AlmazON

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

    Сообщения:
    4.533
    Симпатии:
    1.980
    The End Is Near..., Оффтоп
     
  15. MIV

    MIV

    Сообщения:
    633
    Симпатии:
    26
    Скиньте уже верный код!
     
  16. diller110

    diller110

    Сообщения:
    138
    Симпатии:
    48
    Версия скинутая мною в начале, проверенная и протестированная. Возможно там нету плюшек о которых говорят AlmazOn и TEIN, но плагин работает.
     
    MIV нравится это.