Главная | Комментарии | О проекте
Чтение RSS
Суперсайт
Главная Контакты Карта сайта Добавить в избранное
  • Кто OnLine

    Всего на сайте: 5
    Гостей: 2
    Пользователи: Neshropl
    Роботы: crawl Bot, crawl Bot

    Опрос пользователей

    Для какого мода Вы пишите плагины?

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 12-03-2012, 17:52 Просмотров: 5489

    user_has_weapon Функция проверяет наличие определенного оружия у игрока.

    Когда в плагине речь заходит об оружии, сразу же встает вопрос: Как узнать есть ли у игрока оружие?
    Ответом является простая в использовании функция user_has_weapon, которая проверяет если у игрока определенное оружие.
    Обратите внимание, что идет проверка именно на наличии в инвентаре, а не какое в данный момент оружие находится у игрока в руках.

    Инфо из amxmodx.inc:
    /* Returns if the player has the weapon or not in their pev->weapons field.
       set "setweapon" to 0 to turn the bit off, set to 1 to turn it on. */
    native user_has_weapon(index,weapon,setweapon=-1);


    Синтаксис:
    user_has_weapon(index,weapon,setweapon=-1)

    • index - Айди игрока
    • weapon - Айди оружия:
      /* Id of weapons in CS */
      #define CSW_P228            1
      #define CSW_SCOUT        3
      #define CSW_HEGRENADE        4
      #define CSW_XM1014        5
      #define CSW_C4            6
      #define CSW_MAC10        7
      #define CSW_AUG            8
      #define CSW_SMOKEGRENADE    9
      #define CSW_ELITE        10
      #define CSW_FIVESEVEN        11
      #define CSW_UMP45        12
      #define CSW_SG550        13
      #define CSW_GALI            14
      #define CSW_GALIL        14
      #define CSW_FAMAS        15
      #define CSW_USP            16
      #define CSW_GLOCK18        17
      #define CSW_AWP            18
      #define CSW_MP5NAVY        19
      #define CSW_M249        20
      #define CSW_M3            21
      #define CSW_M4A1        22
      #define CSW_TMP            23
      #define CSW_G3SG1        24
      #define CSW_FLASHBANG        25
      #define CSW_DEAGLE        26
      #define CSW_SG552        27
      #define CSW_AK47        28
      #define CSW_KNIFE        29
      #define CSW_P90            30
      #define CSW_VEST        31
      #define CSW_VESTHELM        32

    • setweapon=-1 - Можно поставить флаг что у игрок оружие есть, хотя на самом деле его нет и на оборот.
    Функция возвращает 1 если оружие есть и 0 если нет.

    Тип функции:
    Native

    Пример:
    /* Plugin generated by AMXX-Studio */

    #include <amxmodx>
    #include <amxmisc>

    #define PLUGIN "[amxmodx.inc] user_has_weapon"
    #define VERSION "1.0"
    #define AUTHOR "Admin"


    public plugin_init() {
        register_plugin(PLUGIN, VERSION, AUTHOR)

        register_clcmd("say /has_usp","f_has_weapon")
        

    }
    public f_has_weapon(id){

        client_print(id,print_chat,"You have usp? %s",user_has_weapon(id,CSW_USP) ? "Yes" : "No")
        
    }


    Описание:
    В данном примере есть команда say /has_usp, которая вызывает функцию f_has_weapon, в теле которой мы выводим сообщение в чат игроку, воспользовавшись тернарной условной операцией и функцией user_has_weapon, в которой проверяли если у игрока USP или нет.

    Думаю вам и без объяснений понятно как получить другой тип оружия у игрока.
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
    sibas

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Меня заинтересовало а что это за оружие #define CSW_GALI 14 не первый раз уже вижу galil и gali
    Safety1st

    5.08.2014
    ICQ: --
    Публикаций: 7
    Комментариев: 42
    Репутация: -  10  +

    Видимо, осталось в AMXX со старых времён. Не беспокойтесь: id-то одинаковый c CSW_GALIL ;) Надо бы в статье затереть эту строку, чтобы народ не смущала ;)
    --------------------
    Maksovich

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Хм. А если мне нужно проверить что у игрока 2 флешки в инвентаре или нет. Я так понимаю если будет хотя бы одна то функция уже сработает.
    Maksovich

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    А, кажется понял.
    if (user_has_weapon(id, CSW_FLASHBANG) && get_user_bpammo(id, CSW_FLASHBANG) == 2)
    Или вместо get_user_bpammo можно cs_get_user_bpammo если использовать #include <cstrike>

    Информация

    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Наверх

Реклама