[INC] cmd_targetex(): @all, @ct, @t, @me, @view & more!

В този раздел можете да намерите полезни кодове и уроци свързани с PAWN скриптинга.
Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

[INC] cmd_targetex(): @all, @ct, @t, @me, @view & more!

Мнение от OciXCrom » 02 Мар 2021, 21:27

Изображение

cmd_targetex() - Advanced Command Targeting

Изображение
Описание
  • Този .inc файл добавя напреднала версия на cmd_target() функцията която ви позволява да създавате администраторски команди с които можете да таргетирате групи от играчи.
API документация
Достъпни аргументи
  • По-долу ще намерите списък с всички аргументи които администраторите може да ползват при команди направени с cmd_targetex().
  • Глобалният образец за аргументите е: @[!]<аргумент>[отбор]
    • @aim - таргетира играча към когото администратора си е насочил мерника
    • @all - таргетира всички играчи
    • @alive - таргетира всички живи играчи
    • @bots - таргетира всички ботове
    • @dead - таргетира всички мъртви играчи
    • @humans - таргетира всички истински играчи
    • @me - таргетира себе си
    • @spectating - таргетира играча когото администратора спектира
    • @view - таргетира всички играчи на екрана на администратора
  • Допълнително, можете да зададете и отбор при който да е аргумент който се отнася за група от играчи, на пример @alivect или @viewt.
  • Администраторът може да ползва ! за да се изключи себе си от таргетираната група, на пример @!all ще таргетира всички играчи освен администратора който е ползвал командата.
Таргетиращи флагове
  • Подобно на обикновената cmd_target() функция, cmd_targetex() също разполага с различни флагове които може да се добавят в flags аргумента ѝ.
    • TARGETEX_NONE - не ползва специални флагове
    • TARGETEX_OBEY_IMM_SINGLE - спазва имунитета на играчите при ползване на аргумент който таргетира 1 играч
    • TARGETEX_OBEY_IMM_GROUP - спазва имунитета на играчите при ползване на аргумент който таргетира повече играчи
    • TARGETEX_NO_SELF - не позволява таргетиране себе си
    • TARGETEX_NO_GROUPS - не позволвяа таргетиране на групи от играчи
    • TARGETEX_NO_BOTS - не позволява таргетиране ботове
    • TARGETEX_NO_ALIVE - не позволява таргетиране живи играчи
    • TARGETEX_NO_DEAD - не позволява таргетиране мъртви играчи
  • Повече флагове може да бъдат зададени наведнъж, на пример TARGETEX_NO_SELF|TARGETEX_NO_ALIVE|TARGETEX_OBEY_IMM_SINGLE
Пример
  • По-долу е предоставен пример за направа на проста slap команда която поддържа специалните аргументи.

    Код за потвърждение: Избери целия код

    #include <amxmodx>
    #include <amxmisc>
    #include <targetex>
    
    public plugin_init()
    {
        register_plugin("MyPlugin", "1.0", "OciXCrom")
        register_clcmd("test_slap", "Cmd_Slap", ADMIN_SLAY, "<player|group>")
    }
    
    public Cmd_Slap(id, iLevel, iCid)
    {
        if(!cmd_access(id, iLevel, iCid, 2))
        {
            return PLUGIN_HANDLED
        }
    
        new szArg[32], szTarget[32]
        read_argv(1, szArg, charsmax(szArg))
    
        new iPlayers[32], iPnum = cmd_targetex(id, szArg, iPlayers, szTarget, charsmax(szTarget), TARGETEX_OBEY_IMM_SINGLE)
    
        if(!iPnum)
        {
            return PLUGIN_HANDLED
        }
        
        for(new i; i < iPnum; i++)
        {
            user_slap(iPlayers[i], 0)
        }
    
        new szName[32]
        get_user_name(id, szName, charsmax(szName))
        client_print(0, print_chat, "ADMIN %s slapped %s", szName, szTarget)
        return PLUGIN_HANDLED
    }
  • Примери за нейното ползване:
    • test_slap @me
    • test_slap @all
    • test_slap OciXCrom
    • test_slap "STEAM_ID"
    • test_slap #userid
    • test_slap @!alivect
Допълнителна информация и линк за теглене

Изображение
Изображение

  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Полезни кодове/уроци”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 5 госта