- Този .inc файл добавя напреднала версия на cmd_target() функцията която ви позволява да създавате администраторски команди с които можете да таргетирате групи от играчи.
- За повече информация и по-лесно позлване на функцията, вижте този линк - api/targetex/cmd_targetex
- Подал съм заявка в Github, така че файлът един ден може да бъде вграден в AMXX - https://github.com/alliedmodders/amxmodx/pull/515
- По-долу ще намерите списък с всички аргументи които администраторите може да ползват при команди направени с 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