Дата: Воскресенье, 30.03.2014, 17:17 | Сообщение # 1
Боец
Сообщений: 104
Статус: Offline
AHKCMD v1:
Думаю,что многим хотелось дабы скрипт активировался по команде в чат.Многие пытались это сделать,но удавалось это не многим. Сегодня я хочу поделиться с вами одним из спосбов.
Этот инклуд позволит вам сделать активацию скрипта на команду,которую игрок ввел в чат.
Функции: AddCmd(command, label) command - команда,которую игрок должен ввести в чат. label - метка к которой будет переходить скрипт,если игрок введет данную команду Пример: AddCmd("/menu", "TLabel")
также переменная params содержит параметры,введенные после команды Для отделения параметров используйте
Код
StringSplit, cmdparams, params , %A_Space%
Отделенные параметры будут сохранятся в массиве cmdparams
OnScriptInit: SetTimer, OnScriptInit, Off AddCmd("/menu", "TLabel") Return
TLabel: StringSplit, cmdparams, params , %A_Space% MsgBox, %cmdparams1% return ;Если игрок введет в чат команду "/menu",то ему покажет MsgBox с первым параметром,если параметров нет,то просто покажет команду
P.S. данный способ подойдет только для введенных команд.Если команда будет скопирована,то скрипт не будет реагировать P.P.S.На данный момент можно использовать только 10 команд P.P.P.S.В икнлуде,скорее всего, остались лишние строки после моих тестов в момент написания
AHKCMD v2: В данном обновлении кол-во команд увеличено до бесконечности,инклуд был упрощен,как и его использование.
Функции: OnPlayerCommandText(cmdtext, params) - "колбэк",который вызывается при введении команды пользователем. cmdtext - содержит саму команду без параметров. params - содержит параметры,если они были введены,иначе содержит саму команду
Если ты про команду, которая мол активирует скрипт. Я уже понял как это делается, но делал иным способом Простая функция автозамены + #Hotstring B0 (Что-бы скрипт не срабатывал сразу после наведения команды, а после Enter или прочего) Не знаю, что лучше, твой способ или мой, но не мне судить. Плюс кинул
Kulibiaka, да.Но тут еще и можно извлекать параметры,введенные игроком. Например
Код
/antiafktime 15000
где 15000 - первый параметр. А извлечь его можно через
Код
StringSplit, cmdparams, params , %A_Space%
И тогда он будет записан в cmdparams1 Но если параметра нет,то в cmdparams1 попадет команда,введенная игроком.Если такое не нужно,то тогда в инклуде заменить
Слушай, не мог ли ты в подробностях описать как работает штука "где 15000 - первый параметр. А извлечь его можно через " А то я сейчас использую копирование, потом в переменную, потом в буфер обмена то что было до копирования.