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

    Всего на сайте: 3
    Гостей: 2
    Пользователи: - отсутствуют
    Роботы: crawl Bot

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

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

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 8-04-2012, 19:01 Просмотров: 11474

    get_user_weapon Функция получает id оружия игрока ( в руках)

    Важная часть игры Counter-Strike различные виды оружия и не редко возникает вопрос: "Как узнать какое оружие у игрока в руках?" ответом на этот вопрос является функция get_user_weapon, обратите внимание что функция возвращает не название оружия, а его id.

    Инфо из amxmodx.inc:
    /* Returns id of currently carried weapon. Gets also 
    * ammount of ammo in clip and backpack. */
    native get_user_weapon(index,&clip=0,&ammo=0);


    Синтаксис:
    get_user_weapon(index,&clip=0,&ammo=0)

    • index - id игрока
    • &clip=0 - Количество патронов в магазине
    • &ammo=0 - Количество патронов в запасе
    Функция вернет id оружия игрока:
    CS Weapon Constants: 
    CSW_P228 1
    CSW_SCOUT 3
    CSW_HEGRENADE 4
    CSW_XM1014 5
    CSW_C4 6
    CSW_MAC10 7
    CSW_AUG 8
    CSW_SMOKEGRENADE 9
    CSW_ELITE 10
    CSW_FIVESEVEN 11
    CSW_UMP45 12
    CSW_SG550 13
    CSW_GALIL 14
    CSW_FAMAS 15
    CSW_USP 16
    CSW_GLOCK18 17
    CSW_AWP 18
    CSW_MP5NAVY 19
    CSW_M249 20
    CSW_M3 21
    CSW_M4A1 22
    CSW_TMP 23
    CSW_G3SG1 24
    CSW_FLASHBANG 25
    CSW_DEAGLE 26
    CSW_SG552 27
    CSW_AK47 28
    CSW_KNIFE 29
    CSW_P90 30
    CSW_VEST 31
    CSW_VESTHELM 32


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

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

    #include <amxmodx>
    #include <amxmisc>

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

    public plugin_init() {
        register_plugin(PLUGIN, VERSION, AUTHOR)
        
        register_clcmd("say /get_weapon","get_my_weapon")

    }
    public get_my_weapon(id){
        new clip,ammo
        new weapon = get_user_weapon(id,clip,ammo)
        client_print(id,print_chat,"weapon[%d][%d][%d]",weapon,clip,ammo)
        
    }


    Описание:
    Функция get_user_weapon возвращает не только айди оружия, но и количество патронов в магазине и запасе.
    В данном примере игроку который выполнит команду say /get_weapon будет выведено сообщение с id оружия которое у него в руках и количество патронов.
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
    get_user_weapon Функция получает id оружия игрока ( в руках)
    Valer4

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

    Вообще игрок респавнится с тем оружием в руках, какое у него было в прошлом раунде, если не убили конечно.
    Но есть исключение, когда в прошлом раунде у него была бомба и он её не скинул до начала нового раунда. Тогда он респавнится с лучшим оружием, то есть с автоматом или пистолетом, хотя перед началом нового раунда у него был нож.
    И в этом случае функция возвращает неверный результат, она возвращает, что у него, нож, когда на самом деле АК47!
    get_pdata_int(get_pdata_cbase(id, 373, 5), 43, 4) возвращает верное значение.
    Valer4

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

    Имеется ввиду событие респавна игрока.
    Safety1st

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

    Valer4, а когда функция конкретно вызывается в новом раунде?
    --------------------
    Valer4

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

    В событии Ham_CS_RoundRespawn, в Ham_ Spawn по-моему тоже проверял, тоже самое. А get_user_weapons и has_user_weapon не могут в этих событиях определить есть ли у игрока бомба
    Safety1st

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

    Понятно, разговор сам с собой.
    --------------------
    Valer4

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

    Я не пойму что тебе надо)))

    Позже опубликую плагин "кровавый нож", в нём если заменить get_pdata_int(get_pdata_cbase(id, 373, 5), 43, 4) на get_user_weapon(id) после респавна можно стрелять с ножа если в прошлом раунде у тебя была бомба и ты от неё не избавился, а последним оружием которые ты держал в руках был нож.
    OtherWorld

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

    функция работает неправильно, если всё выбросить, а затем подобрать что либо (пистолет к примеру) то функция сообщает что в руках у нас нож, а не пистоле как на самом деле.

    За
    get_pdata_int(get_pdata_cbase(id, 373, 5), 43, 4)

    отдельное спасибо! Как раз то что нужно было))
    Radius

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

    Цитата: OtherWorld
    функция работает неправильно, если всё выбросить, а затем подобрать что либо (пистолет к примеру) то функция сообщает что в руках у нас нож, а не пистоле как на самом деле.

    За
    get_pdata_int(get_pdata_cbase(id, 373, 5), 43, 4)

    отдельное спасибо! Как раз то что нужно было))

    Не может быть такого. А вот неправильное применение и плагины с ошибками вполне могут быть.

    Информация

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

Реклама