Среда, 03.12.2008, 00:39
 
 
Приветствую Вас Проезжий | RSS
[ Новые сообщения · Участники · Правила форума · Поиск! · RSS ]
Статистика Форума
Последние ответы Популярные темы Лучшие пользователи TOP 7
  • GTA 4 уже можно с... [GTA 4]
  • [MAP] Rafaybot X7... [Моды SAMP]
  • [FS] Дроп оружия ... [Скрипты]
  • Что нас ждёт в са... [Новости]
  • Top's 100 bt ... [Юмор]
  • Урок BY Ars [Графика и дизайн]
  • Кто лучше делает ... [Графика и дизайн]
  • Вопрос - Ответ (Ответов: 962)
  • Обсуждение мода CityLi... (Ответов: 923)
  • Задавайте сюда ваши во... (Ответов: 921)
  • Помощь новечкам по скр... (Ответов: 613)
  • Пошли всех на хуй тут! (Ответов: 513)
  • Обратный отщёт от 500 (Ответов: 512)
  • GTA 4 уже можно скачат... (Ответов: 488)
  • MiX (Сообщений: 2621)
  • AXE (Сообщений: 2272)
  • OKStyle™ (Сообщений: 1934)
  • fAkm4n (Сообщений: 1728)
  • RockStarGamer (Сообщений: 1608)
  • DarkByte (Сообщений: 1317)
  • MAK (Сообщений: 1295)
  • Страница 1 из 11
    Модератор форума: MAK 
    Форум о GTA Multiplayers. GTA SA-MP, MTA, VC-MP, IV-MP. » San Andreas MultiPlayer » Вопросы и Проблемы » Получение оружия на респе при вводе команды)
    Получение оружия на респе при вводе команды)
    Inf1203Дата: Суббота, 16.08.2008, 17:54 | Сообщение # 1
    Уверенный

    Группа: Продвинутые
    Сообщений: 221
    Статус: status
    Как такое сделать? Команда /gang при её вводе пишется текст: "Мы отомстим врагам" но повторно команду можно использовать только через минуту...
    Оружие - пистолет(id 22 вроде), mp5(id 29) и бита(ид 5)

    PS: такое наверно мне потом придется добавлять к каждой банде...

    Добавлено (16.08.2008, 17:54)
    ---------------------------------------------
    Если надо могу дать координаты респы


    Пусто тут...Фантазия в отпуске!
     
    OKStyle™Дата: Суббота, 16.08.2008, 20:33 | Сообщение # 2
    Джэдай

    Группа: Разработчики
    Сообщений: 1934
    Город: Оренбург
    Статус: status
    В начало:
    Code
    new UsedCom[MAX_PLAYERS]; // by Neo-Rus (поскольку он первый написал такое решение)

    В OnPlayerCommandText:

    Code
    if(!strcmp(cmdtext,"/gang",true))
    {
    UsedCom[playerid]=60;
       if(UsedCom[playerid]>0)
       {
        SendClientMessage(playerid,0xFF0000AA," Эта команда доступна только 1 раз в минуту.");
       }
       else
       {
        GivePlayerWeapon(playerid,5);
        GivePlayerWeapon(playerid,22);
        GivePlayerWeapon(playerid,29);
        SendClientMessageToAll(0xFFFF00AA," Мы отомстим врагам!");
       }
    return 1;
    }




    Мои работы

    * Меню цветов

    Слова окстайла всегда правда © HITMAN07

    Сообщение отредактировал OKStyle™ - Суббота, 16.08.2008, 20:34
     
    Inf1203Дата: Суббота, 16.08.2008, 21:35 | Сообщение # 3
    Уверенный

    Группа: Продвинутые
    Сообщений: 221
    Статус: status
    И всё? а как сделать это только определенным бандам? Например у ментов, фбр, репортеров, медиков, армии, лицензеров, мэра и хитманов этого быть не должно...
    Может там где-нить дописать id'ы банд? crazy

    Пусто тут...Фантазия в отпуске!
     
    OKStyle™Дата: Воскресенье, 17.08.2008, 08:43 | Сообщение # 4
    Джэдай

    Группа: Разработчики
    Сообщений: 1934
    Город: Оренбург
    Статус: status
    Inf1203, есть 3 варианта:

    Пусть функции определения фракций будут такими (твоего определения я не знаю):

    IsAMedic();
    IsACop();
    IsAFBI(); и так далее

    Первый

    Указываем определение франкции при вводе команды. Сработает только для указанных, остальным напишет, что неизвестная команда.

    Code
    if(!strcmp(cmdtext,"/gang",true) && IsAMedic(playerid)) // если одинаковый результат для нескольких фракций, то: && (IsAMedic(playerid) || IsACop(playerid) || IsAFBI(playerid)) ...
    {
    UsedCom[playerid]=60;
    if(UsedCom[playerid]>0)
    {
    SendClientMessage(playerid,0xFF0000AA," Эта команда доступна только 1 раз в минуту.");
    }
    else
    {
    GivePlayerWeapon(playerid,5);
    GivePlayerWeapon(playerid,22);
    GivePlayerWeapon(playerid,29);
    SendClientMessageToAll(0xFFFF00AA," Мы отомстим врагам!");
    }
    return 1;
    }

    Второй

    Указываем в самом коде. Сработает только для медиков, остальным напишет, что он не медик.

    Code
    if(!strcmp(cmdtext,"/gang",true))
    {
    if(IsAMedic(playerid)
    {
    UsedCom[playerid]=60;
    if(UsedCom[playerid]>0)
    {
    SendClientMessage(playerid,0xFF0000AA," Эта команда доступна только 1 раз в минуту.");
    }
    else
    {
    GivePlayerWeapon(playerid,5);
    GivePlayerWeapon(playerid,22);
    GivePlayerWeapon(playerid,29);
    SendClientMessageToAll(0xFFFF00AA," Мы отомстим врагам!");
    }
    }
    else
    {
    SendClientMessageToAll(0xFF0000AA," Вы не медик!");
    }
    return 1;
    }

    Третий

    Универсализируем код для нескольких фракций одновременно, но с различным результатом.

    Code
    if(!strcmp(cmdtext,"/gang",true))
    {
    UsedCom[playerid]=60;
    if(UsedCom[playerid]>0)
    {
    SendClientMessage(playerid,0xFF0000AA," Эта команда доступна только 1 раз в минуту.");
    }
    else
    {
    if(IsAMedic(playerid)
    {
    GivePlayerWeapon(playerid,5);
    GivePlayerWeapon(playerid,22);
    GivePlayerWeapon(playerid,29);
    SendClientMessageToAll(0xFFFF00AA," Мы отомстим врагам!");
    }
    else if(IsACop(playerid))
    {
    GivePlayerWeapon(playerid,5); // тут можно другое оружие
    GivePlayerWeapon(playerid,22); // и тут
    GivePlayerWeapon(playerid,29); // и здесь
    SendClientMessageToAll(0xFFFF00AA," Мы отомстим врагам!");
    }
    else
    {
    SendClientMessageToAll(0xFF0000AA," Вы не работаете!"); // не коп, не медик, не фбр и т.п. Объедини одним словом =)
    }
    }
    return 1;
    }




    Мои работы

    * Меню цветов

    Слова окстайла всегда правда © HITMAN07

    Сообщение отредактировал OKStyle™ - Воскресенье, 17.08.2008, 08:58
     
    Inf1203Дата: Воскресенье, 17.08.2008, 10:15 | Сообщение # 5
    Уверенный

    Группа: Продвинутые
    Сообщений: 221
    Статус: status
    А можно где-нить просто прописать иды банд и только для них эта команда будет работать?

    Пусто тут...Фантазия в отпуске!
     
    OKStyle™Дата: Воскресенье, 17.08.2008, 10:18 | Сообщение # 6
    Джэдай

    Группа: Разработчики
    Сообщений: 1934
    Город: Оренбург
    Статус: status
    Inf1203, 1 способ.



    Мои работы

    * Меню цветов

    Слова окстайла всегда правда © HITMAN07

     
    Inf1203Дата: Пятница, 22.08.2008, 12:30 | Сообщение # 7
    Уверенный

    Группа: Продвинутые
    Сообщений: 221
    Статус: status
    OKStyle™, сделал значит я вот так:
    В OnPlayerCommandText:
    Code
    if(!strcmp(cmdtext,"/gang",true) && PlayerInfo[playerid][pLeader] == 5 || PlayerInfo[playerid][pLeader] == 6 ||  PlayerInfo[playerid][pLeader] == 8 || PlayerInfo[playerid][pLeader] == 12 || PlayerInfo[playerid][pLeader] == 13 || PlayerInfo[playerid][pLeader] == 14 || PlayerInfo[playerid][pLeader] == 15 ||
    PlayerInfo[playerid][pLeader] == 16 ||
    PlayerInfo[playerid][pLeader] == 17 ||
    PlayerInfo[playerid][pMember] == 5 ||
    PlayerInfo[playerid][pMember] == 6 ||
    PlayerInfo[playerid][pMember] == 8 ||
    PlayerInfo[playerid][pMember] == 12 ||
    PlayerInfo[playerid][pMember] == 13 ||
    PlayerInfo[playerid][pMember] == 14 ||
    PlayerInfo[playerid][pMember] == 15 ||
    PlayerInfo[playerid][pMember] == 16 ||
    PlayerInfo[playerid][pMember] == 17)
    {
    UsedCom[playerid]=60;
    if(UsedCom[playerid]>0)
    {
    SendClientMessage(playerid,0xFF0000AA," Подожди брат, аммуницию скоро принесут.");
    }
    else
    {
    GivePlayerWeapon(playerid,5);
    GivePlayerWeapon(playerid,22);
    GivePlayerWeapon(playerid,29);
    SendClientMessageToAll(0xFFFF00AA," Грядет расплата нашим врагам!");
    }
    return 1;
    }

    Но после этого у мну на все команда стало реагировать "Подожди брат, аммуницию скоро принесут", абсолятно на все, даже на /kick и /ban crazy

    Может что-то где-то неверно?

    Добавлено (22.08.2008, 12:30)
    ---------------------------------------------
    да и ещё надо добавить чтоб при вводе этой команды ещё добавлялось +100 хр и брони)


    Пусто тут...Фантазия в отпуске!
     
    SpiritДата: Пятница, 22.08.2008, 19:14 | Сообщение # 8
    Освоившийся

    Группа: Продвинутые
    Сообщений: 129
    Город: Омск
    Статус: status
    OKStyle™, за неимением собственных мозгов приписываем чужие алгоритмы другим... Написал не полностью.
    Решения не очень классные.

    Code

    new UsCom[MAX_PLAYERS];//Так же пишем массив   
    //Так же нам понадобится ещё одна функция которая собсна позволит писать команду только раз в минуту
    forward Gbljhs(playerid);//По своему надеюсь обзавёте
    public Gbljhs(playerid)
    {
    UsCom[playerid] = 0;
    }

    Прописываем команду

    Code

    if(!strcmp(cmdtext,"/gang",true))
    {
    if(UsedCom[playerid] == 1)
         {
          SendClientMessage(playerid,0xFF0000AA," Эта команда доступна только 1 раз в минуту.");
         }
         else
         {
           if(PlayerTeam[playerid] == Cop)//массив и переменную меняем на своё
          {      
          GivePlayerWeapon(playerid,5);
          GivePlayerWeapon(playerid,22);
          GivePlayerWeapon(playerid,29);
          SendClientMessageToAll(0xFFFF00AA," Мы отомстим врагам!");
          }
          UsCom[playerid]  = 1;
          SetTimerEx("Gbljhs",60*1000,0,"d",playerid);//Создаём таймер котрый позволит игроку написать команду через минуту
         }
    return 1;
    }


    Любиш садизм люби и мазахизм :)

    Сообщение отредактировал Spirit - Пятница, 22.08.2008, 19:16
     
    LOGOTiPiKДата: Воскресенье, 24.08.2008, 00:00 | Сообщение # 9
    Уважаемый

    Группа: Продвинутые
    Сообщений: 831
    Статус: status
    А не легче сделать так, что при респе хэлсы, броня, оружие сами появляются без ввода команды, чем заморачиваться :)

     
    Inf1203Дата: Воскресенье, 24.08.2008, 10:38 | Сообщение # 10
    Уверенный

    Группа: Продвинутые
    Сообщений: 221
    Статус: status
    LOgotipik, не, ввод команды - более реалистичнее wink

    Пусто тут...Фантазия в отпуске!
     
    OKStyle™Дата: Вторник, 26.08.2008, 12:12 | Сообщение # 11
    Джэдай

    Группа: Разработчики
    Сообщений: 1934
    Город: Оренбург
    Статус: status
    Quote (Inf1203)
    при вводе этой команды ещё добавлялось +100 хр и брони

    Code
    SetPlayerHealth(playeird,0.0);
    SetPlayerArmour(playerid,100.0);




    Мои работы

    * Меню цветов

    Слова окстайла всегда правда © HITMAN07

     
    Форум о GTA Multiplayers. GTA SA-MP, MTA, VC-MP, IV-MP. » San Andreas MultiPlayer » Вопросы и Проблемы » Получение оружия на респе при вводе команды)
    Страница 1 из 11
    Поиск:

    Copyright SAMP-RUS© 2008