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

    Всего на сайте: 14
    Гостей: 7
    Пользователи: Rizzjacqus, nurbol99
    Роботы: crawl Bot, robot Bot, Yandex Bot, Yandex Bot, Yandex Bot

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

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

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 26-03-2012, 09:40 Просмотров: 4297

    ham_give_weapon Функция выдает определенное оружие игроку с помощью weapon_ констант

    Из заголовка уже понятно что делает функция и думаю что нет необходимости в пояснении важности момента выдачи оружия игроку.

    Исходный код функции:
    stock ham_give_weapon(id,weapon[])
    {
        if(!equal(weapon,"weapon_",7)) return 0

        new wEnt = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,weapon));
        if(!pev_valid(wEnt)) return 0

        set_pev(wEnt,pev_spawnflags,SF_NORESPAWN);
        dllfunc(DLLFunc_Spawn,wEnt)
        
        if(!ExecuteHamB(Ham_AddPlayerItem,id,wEnt))
        {
            if(pev_valid(wEnt)) set_pev(wEnt,pev_flags,pev(wEnt,pev_flags) | FL_KILLME);
            return 0
        }

        ExecuteHamB(Ham_Item_AttachToPlayer,wEnt,id)
        return 1
    }


    Синтаксис:
    ham_give_weapon(id,weapon[])

    • id - Индекс игрока
    • weapon[] - Имя выдаваемого оружия (weapon_*)
    Функция вернет 1 если все ок

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

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

    #include <amxmodx>
    #include <amxmisc>

    #include <fakemeta>
    #include <hamsandwich>


    #define PLUGIN "[The useful functions] ham_give_weapon"
    #define VERSION "1.0"
    #define AUTHOR "Admin"


    public plugin_init() {
        register_plugin(PLUGIN, VERSION, AUTHOR)
        
        register_clcmd("say AWP","give_AWP")
        register_clcmd("say AK","give_AK")
        
    }
    public give_AK(id){
        
        ham_give_weapon(id,"weapon_ak47")
        
    }
    public give_AWP(id){
        
        ham_give_weapon(id,"weapon_awp")
        
    }
    stock ham_give_weapon(id,weapon[])
    {
        if(!equal(weapon,"weapon_",7)) return 0

        new wEnt = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,weapon));
        if(!pev_valid(wEnt)) return 0

        set_pev(wEnt,pev_spawnflags,SF_NORESPAWN);
        dllfunc(DLLFunc_Spawn,wEnt)
        
        if(!ExecuteHamB(Ham_AddPlayerItem,id,wEnt))
        {
            if(pev_valid(wEnt)) set_pev(wEnt,pev_flags,pev(wEnt,pev_flags) | FL_KILLME);
            return 0
        }

        ExecuteHamB(Ham_Item_AttachToPlayer,wEnt,id)
        return 1
    }


    Описание:
    И так есть 2 команды:
    say AK и say AWP обе они выдают оружие игроку, в примере показано как использовать функцию, а данное пояснение написано только к тому что, выполнив поочередно эти две команды у вас будет 2 оружия одновременно, по этому если вы хотите поменять игроку оружие, то придется сначала забрать то, которое у него было.
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
    arwel

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

    Не совсем хам получается))
    Nesquik

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

    Очень интересная функция
    wink
    kolobok1

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

    А где можно найди индексы оружия,то есть weapon_ak47 и тд?
    артист

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

    Индекс - это число, например 29
    А weapon_knife - это класснейм.

    Найти их можно в интернете.

    new const weapons_name[][] =
    {
        "", "weapon_p228", "", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4", "weapon_mac10", "weapon_aug",
        "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550", "weapon_galil", "weapon_famas",
        "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249", "weapon_m3", "weapon_m4a1", "weapon_tmp",
        "weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552", "weapon_ak47", "weapon_knife", "weapon_p90"
    }
    Radius

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

    Не рекомендуется использовать данную функцию. Она из разряда "Смотрите, а оказывается и так можно". give_item из fun.inc выполняет свою задачу и по функциональности и по производительности.
    --------------------

    Информация

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

Реклама