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

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

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

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

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Diablo Дата: 17-01-2016, 23:08 Просмотров: 1066
    Плагин служит примером вычисления кол-ва минут и секунд из одних только секунд.

    #include <amxmodx>

    #pragma semicolon 1

    #define SECONDS_IN_MINUTE 60

    public plugin_init() {
            register_clcmd("say", "CmdSay");
    }

    public CmdSay(const id) {
            new szArgs[20];
            read_argv(1, szArgs, charsmax(szArgs));
            if(equal(szArgs, "/sec", 4)) { // cmd syntax: say /sec <num>
                    new szArg1[4], iMin, iSec;
                    parse(szArgs, szArg1, charsmax(szArg1), szArgs, charsmax(szArgs));
                    get_minutes(str_to_num(szArgs), iMin, iSec);
                    client_print(id, print_chat, "%d mim %d s", iMin, iSec); // output result in chat
                    return PLUGIN_HANDLED;
            }
            return PLUGIN_CONTINUE;
    }

    get_minutes(const in_sec, &out_min, &out_sec) {
            out_min = in_sec / SECONDS_IN_MINUTE;
            out_sec = in_sec % SECONDS_IN_MINUTE;
    }
    Автор: Diablo Дата: 9-08-2015, 13:48 Просмотров: 993
    Функция получает индекс объекта, на которого наведен прицел.

    Синтаксис:
    GetEntityFloorDistance(const nEntIndex)
    [quote][/quote]

    nEntIndex - индекс объекта, от которого будем определять расстояние до пола.

    Примечание: если объект на полу, то функция будет возвращать 0.
    Автор: Admin Дата: 7-12-2012, 14:11 Просмотров: 4904
    Многие согласны с мнением что игроков с лицензионным клиентом необходимо поощрять, что бы 100% определить со стима игрок или нет поможет функция is_user_steam ( для серверов с установленным dp_roto)

    stock bool:is_user_steam(id)
    {
    // Author Sh0oter
            static dp_pointer
            if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
            {
                server_cmd("dp_clientinfo %d", id)
                server_exec()
                return (get_pcvar_num(dp_pointer) == 2) ? true : false
            }
            return false
    }

    Новость отредактировал Safety1st - 12-08-2014, 17:05
    Автор: Admin Дата: 13-10-2012, 15:54 Просмотров: 2760
    Актуальность данной функции заключается в том, что если не выполнить проверку чем является точка куда перемещаем игрока, то он может оказаться в стене, полу или в другом игроке, что не даст возможность продолжать играть. Функция is_hull_vacant вернет результат проверки что вокруг проверяемой точки достаточно места для того что бы туда переместить игрока.
    Автор: Admin Дата: 9-07-2012, 00:01 Просмотров: 6931
    Достаточно часто встречается вопрос "как выдать патроны", но особая сложность возникает при выдачи их в магазин(обойму), не говоря уже о том, что используют зачастую целый модуль ради одной функции. Лично я предпочитаю писать палгины на fakemeta и hamsandwich так как они способны заменить сразу несколько других модулей.
    Автор: Admin Дата: 26-03-2012, 09:40 Просмотров: 4129
    Из заголовка уже понятно что делает функция и думаю что нет необходимости в пояснении важности момента выдачи оружия игроку.

    Исходный код функции:
    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
    }
    Автор: Admin Дата: 25-03-2012, 10:05 Просмотров: 6044
    В Counter-Strike оружие игрока - один из важнейших моментов, по этому с этим предметом работать приходится часто, а работа в основном связана с тем что бы удалить или выдать оружие. Функция ham_strip_weapon позволяет удалить конкретное оружие у игрока.

    Исходный код функции:

    #include <fakemeta>
    #include <hamsandwich>
    stock ham_strip_weapon(id,weapon[])
    {
        if(!equal(weapon,"weapon_",7)) return 0

        new wId = get_weaponid(weapon)
        if(!wId) return 0

        new wEnt
        while((wEnt = engfunc(EngFunc_FindEntityByString,wEnt,"classname",weapon)) && pev(wEnt,pev_owner) != id) {}
        if(!wEnt) return 0

        if(get_user_weapon(id) == wId) ExecuteHamB(Ham_Weapon_RetireWeapon,wEnt)

        if(!ExecuteHamB(Ham_RemovePlayerItem,id,wEnt)) return 0
        ExecuteHamB(Ham_Item_Kill,wEnt);

        set_pev(id,pev_weapons,pev(id,pev_weapons) & ~(1<<wId))
        
        return 1
    }
Наверх

Реклама