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

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

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

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

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Felix_Font Дата: 14-03-2014, 23:21 Просмотров: 2053

    cs_set_armoury_type Функция устанавливает тип оружия обьекту

    Информация из cstrike.inc:
    /* Set an armoury_entity to be of specified type. You will have to set the appropriate model.
    * The second argument, type, should be a CSW_* constant. Not all weapons are supported by Counter-strike.
    * Supported weapons/items: CSW_MP5NAVY, CSW_TMP, CSW_P90, CSW_MAC10, CSW_AK47, CSW_SG552, CSW_M4A1, CSW_AUG, CSW_SCOUT
    * CSW_G3SG1, CSW_AWP, CSW_M3, CSW_XM1014, CSW_M249, CSW_FLASHBANG, CSW_HEGRENADE, CSW_VEST, CSW_VESTHELM, CSW_SMOKEGRENADE
    */
    native cs_set_armoury_type(index, type);


    • index - Индекс оружия
    • type - Тип брони


    Список доступных типов:


    Синтаксис:
    cs_set_armoury_type(index, type)


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

    Пример:
    #include <amxmodx>
    #include <cstrike>

    /* engine.inc */
    native find_ent_by_class(iIndex, const szClass[]);
    native entity_set_model(iIndex, const szModel[]);

    public plugin_init() {
        register_plugin("cs_set_armoury_type", "0.1", "Felix_Font")
        armoury_ent()
    }

    public armoury_ent()
    {
        new iEnt // Создаем переменую для хранения индексов ентити

        while ((iEnt = find_ent_by_class(iEnt, "armoury_entity")) > 0)  // Выполняем функцию изменения свойств обьекта пока iEnt > 0
        {
            new armoury_type = cs_get_armoury_type(iEnt) // Получаем тип брони
            if(armoury_type != CSW_SCOUT) // Если ентити обьект не Scout
            {
                cs_set_armoury_type(iEnt, CSW_SCOUT)  // Устанавливаем обьекту свойства Scout
                entity_set_model(iEnt, "models/w_scout.mdl") // Изменяем w_ модель на модель соответствующую самим свойствам обьекта
            }
        }
        return PLUGIN_CONTINUE;
    }


    Описание:
    В данном примере я изменил все стандартные оружия которые лежать на земле, на Scout's. Обратите внимание что данная функция не трогает оружия которые выбрасивають игроки, и также ее можно использовать в процессе игры, даже допустим через
    register_clcmd("say /change_armoury", "armoury_ent")

    Все обьекти меняють свою модель буквально за 0,5 секунд. При зтом ничего не лагает.

    Вот собственно результат плагина (тест):

    cs_set_armoury_type Функция устанавливает тип оружия обьекту

    Также данную функцию можно использовать для удаления пушек с карт и т.д.
    Вобшем на все что только взбредет вам в голову.

    Строго не судите. Первая статья.
    Попытался максимально ясно обьяснить что и как.
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
    cs_set_armoury_type Функция устанавливает тип оружия обьекту
    Nesquik

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

    Ух ты интересно !!!
    Спасибо
    Felix_Font

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

    Кстаты по поводу заголовка статьи, что-то я сомневаюсь что он подходит.
    Я название взял с "cs_get_armoury_type Функция получает тип брони объекта".
    Но как-то причем тут то броня?
    Решил не называть подругому. Админ если захочешь поправь.
    Как зто правильно назвать незнаю точно.
    Nesquik

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

    armoury = переводится с английского как оружие =))
    gavrilyuc

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

    Интересно, как же удалить оружие?
    назначить его ножом, и не устанавливать ему модель ?
    или я что-то не доганяю...
    артист

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

    Раз интересно, загугли ))
    Felix_Font

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

    gavrilyuc,
    Изучай http://amxxmodx.ru/engine/engineinc/137-remove_entity-funkciya-udalyaet-obekt.html
    В данном случае индекс ентити обьекта "iEnt"
    Получиться так:
    #include <amxmodx>
    #include <cstrike>

    /* engine.inc */
    native find_ent_by_class(iIndex, const szClass[]);
    native remove_entity(index)

    public plugin_init() {
        register_plugin("Delete armoury weapons", "0.1", "Felix_Font")
        
        new iEnt
        while ((iEnt = find_ent_by_class(iEnt, "armoury_entity")) > 0) remove_entity(iEnt)
    }


    Результат:
    http://i.imgur.com/HCrSq0S.jpg

    Для тех кто не понял:
    Данный пример удаляет все предметы на земле (оружия).
    Можно сделать условие на удаление определеных пушек.
    gavrilyuc

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

    Felix_Font,
    Спасибо. Буду мудрить со своим DeathMatch мод-ом.

    Информация

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

Реклама