Инуструкция по написанию макросов в EasyUO
Инструкция по написанию макросов EasyUO.
Макрос в игре состоит из повторений какого-либо действия. По этому, макрос
должен выглядеть так:Макрос состоит из процедур, каждая из которых вмещает в себя
одно или несколько действий.
Процедура объявляется так:А закрывается пропуском строки.
В EasyUO объявляется командой Event macro. То есть, команда, потом номер
действия.
color=red]![/color Список номеров можно посмотреть по ссылкам раз и два .
Далее идет несколько действий с предметами игры (мышкой, клавиатурой, самой игрой), а именно:
Event drag (переменная, код предмета) – перетаскивание предмета.
Click (x,y) - щелчок кнопкой мыши по экранными координатам (координаты
можно посмотреть в нижней части окна EasyUO). Если после координат добавить букву
d – будет двойной щелчок.
Move (x,y,z) – команда идти чару по такой-то координате в игре. Координаты
можно посмотреть в нижней части окна EasyUO рядом с экранными координатами.
Key (любая клавиша) – нажатие на клавишу клавиатуры.
If (условие) – указание программе, что делать, если…
Finditem (код предмета) - поиск в открытой сумке какого-либо предмета.
Set (что-то чему-то) - присвоение переменной\константе определенного
значения. Можно вводить цифры, буквы, названия констант\переменных.
Goto (название процедуры) – после этой команды программа начинает выполнять
заданную процедуру.
Wait (время в секундах) – задержка в скрипте на заданное время.
Практика:
Теперь рассмотрим употребление этих команд на практике в различных
ситуациях.
Код предмета
Откуда можно взять код предмета для использования в других командах?
Делаем двойной щелчок на нужном предмете в игре, потом смотрим в окно
переменных, а именно "Last Action"(строка #LOBJECTTYPE). Берем оттуда 3 символа и вписываем их в
скрипт. Все, код предмета у нас есть. Так же можно посмотреть ID предмета в строке #LOBJECTID.
Перетаскивание предмета
Почему после команды Event drag предмет никуда не перетаскивается?
Потому, что эта команда обозначает начало процедуры перетаскивание (грубо
говоря, получается так, что игрок зажал кнопку мыши и повел в сторону, но
кроме этого ничего не сделал).
Делается это так:Команда if
Как использовать команду if?
Для начала, после if задаем условие выполнения действия (к примеру, если чара
убили и он гост)Далее, если мы хотим после этой команды сделать одно действие (чар бежит к
хилеру и тот сам его оживляет), то на следующей строке пишем действие:А если действий более одного (чар бежит к кресту, то есть надо еще и кликать
на крест), то блок команд, который должен выполняться, берется в скобки:Использование журнала в добыче ресурсов
Итак, как заставить программу понимать сообщение игры "Рыбы здесь
нет…" - или соответственно сообщение для ламбера и майнинга. Делается это
так – вылавливается одна точка (до появления сообщения), потом открывается
окно переменных и смотрится переменная #sysmsg (важно успеть это сделать, пока системное сообщение видно на экране ультимы. Пропадает сообщение на экране - пропадает значение #sysmsg). Копируется в буфер обмена “сообщение” которое является значением этой переменной (не обязательно полностью, можно лишь часть), после этого пишется:
Макрос в игре состоит из повторений какого-либо действия. По этому, макрос
должен выглядеть так:
Initevents
<сам макрос>
Return
одно или несколько действий.
Процедура объявляется так:
<имя процедуры>:
В EasyUO объявляется командой Event macro. То есть, команда, потом номер
действия.
color=red]![/color Список номеров можно посмотреть по ссылкам раз и два .
Далее идет несколько действий с предметами игры (мышкой, клавиатурой, самой игрой), а именно:
Event drag (переменная, код предмета) – перетаскивание предмета.
Click (x,y) - щелчок кнопкой мыши по экранными координатам (координаты
можно посмотреть в нижней части окна EasyUO). Если после координат добавить букву
d – будет двойной щелчок.
Move (x,y,z) – команда идти чару по такой-то координате в игре. Координаты
можно посмотреть в нижней части окна EasyUO рядом с экранными координатами.
Key (любая клавиша) – нажатие на клавишу клавиатуры.
If (условие) – указание программе, что делать, если…
Finditem (код предмета) - поиск в открытой сумке какого-либо предмета.
Set (что-то чему-то) - присвоение переменной\константе определенного
значения. Можно вводить цифры, буквы, названия констант\переменных.
Goto (название процедуры) – после этой команды программа начинает выполнять
заданную процедуру.
Wait (время в секундах) – задержка в скрипте на заданное время.
Практика:
Теперь рассмотрим употребление этих команд на практике в различных
ситуациях.
Код предмета
Откуда можно взять код предмета для использования в других командах?
Делаем двойной щелчок на нужном предмете в игре, потом смотрим в окно
переменных, а именно "Last Action"(строка #LOBJECTTYPE). Берем оттуда 3 символа и вписываем их в
скрипт. Все, код предмета у нас есть. Так же можно посмотреть ID предмета в строке #LOBJECTID.
Перетаскивание предмета
Почему после команды Event drag предмет никуда не перетаскивается?
Потому, что эта команда обозначает начало процедуры перетаскивание (грубо
говоря, получается так, что игрок зажал кнопку мыши и повел в сторону, но
кроме этого ничего не сделал).
Делается это так:
Event drag <код предмета>
Wait 1s
Key (Цифра,если нужно вводить количество,если нет, то эту строку
пропускаем)
Key Enter
Click (x,y) – координаты той экранной точки, куда вам нужно что-то кинуть
Как использовать команду if?
Для начала, после if задаем условие выполнения действия (к примеру, если чара
убили и он гост)
If #charghost = yes
хилеру и тот сам его оживляет), то на следующей строке пишем действие:
If #charghost = yes
Move (x,y) – координаты хиллера
на крест), то блок команд, который должен выполняться, берется в скобки:
If #charghost = yes
{
Move (x,y) – координаты креста
Click (x,y) - экранные координаты креста
}
Итак, как заставить программу понимать сообщение игры "Рыбы здесь
нет…" - или соответственно сообщение для ламбера и майнинга. Делается это
так – вылавливается одна точка (до появления сообщения), потом открывается
окно переменных и смотрится переменная #sysmsg (важно успеть это сделать, пока системное сообщение видно на экране ультимы. Пропадает сообщение на экране - пропадает значение #sysmsg). Копируется в буфер обмена “сообщение” которое является значением этой переменной (не обязательно полностью, можно лишь часть), после этого пишется:
If <сообщение> in #journal
Goto next (название процедуры следующей точки).
>_<
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
В первой части был список команд, которые наиболее часто
используются при написании макросов. Теперь посмотрим более полный
список, с объяснением назначения каждой из команд.
Команды контроля скрипта:
call – Включает макрос, расположенный в другом файле.
cmpPix – Вставляет выбранный пиксель на место предыдущего.
exit – Останавливает макрос.
for – Создает счетчик.
gosub – Переводит скрипт на другой sub.
goto – Переводит исполнение скрипта на указанную процедуру.
halt – Заканчивает скрипт.
if – Команда задания условия.
pause – Задает паузу в скрипте.
return – Возвращает выполнение скрипта на предыдущее место после sub.
stop – Заканчивает скрипт.
Команды клиента:
chooseSkill – Показывает значение определенного умения (скилла).
click – Делает щелчок мышкой на определенные экранные координаты в клиенте.
deleteJournal – Стирает содержимое журнала.
findItem – Ищет вещи, монстров, НПЦ по их ID.
getUOTitle – возвращает текст, написанный на заглавии окна клиента.
hideItem – «прячет» предмет (его не видно в окне клиента).
ignoreItem – Стирает код предмета из списка finditem.
key – Имитирует нажатие клавиши.
move – Указание персонажу двигаться в определенные координаты.
msg – Выдает сообщение в окне клиента (в качестве речи).
nextCPos – Определяет, где откроется следующий контейнер.
onHotKey – Указывает, какие действия будут произведены, если нажать
определенную клавишу.
savePix – Сохраняет цвет указанного пикселя.
setUOTitle – Устанавливает текст на заглавии окна клиента.
scanJournal – ищет какую-либо информацию в журнале игрока.
sleep – Ожидает указанное количество времени.
target – Ожидает, когда появится значок цели.
terminate – Закрывает выбранный клиент.
uoXL – Запускает\выбирает клиенты.
wait – Ожидает указанное количество времени.
Команды Event:
event Drag – Переносит объект.
event ExMsg – Показывает сообщение над определенным предметом.
event Macro – Выполняет event macro.
event PathFind – двигает чара по определенным координатам.
event Property – Читает описание предмета.
event SkillLock – Лочит\разлочивает определенные умения.
event Sleep – Ждет указанное количество времени.
event SysMessage – Выдает сообщение в окне клиента (как системное).
initEvents – Включает все команды event.
Команды, используемые в магазине:
getShopInfo – Выдает информацию о товаре, имеющемся у определенного продавца.
setShopItem – Задает количество покупаемых вещей (по коду предмета).
Menu Commands:
menu Activate – Включает меню в окне программы.
menu Button – Создает кнопку по определенным координатам в меню программы.
menu Clear – Очищает все меню.
menu Delete – Стирает окно в EasyUO.
menu Edit – Создает меню редактирования по указанным координатам указанной
ширины.
menu Font Align – Меняет вид шрифта.
menu Font BGColor – Задает цвет фона в программе.
menu Font Color – Меняет цвет шрифта.
menu Font Name – Меняет тип шрифта.
menu Font Size – Меняет размер шрифта.
menu Font Style – Меняет стиль шрифта.
menu Get – Вставляет текст в меню редактирования.
menu GetNum – Возвращает количество меню редактирования.
menu Hide – Сворачивает окошко меню EasyUO.
menu HideEUO – Сворачивает основное окно.
menu Show – Показывает окно меню.
menu Text – Создает текст в меню.
menu Window Color – Меняет цвет окна.
menu Window Size – Меняет размер окна.
menu Window Title – Меняет заголовок окна.
Различные команды:
deleteVar – Стирает значение переменной.
display – Показывает сообщение.
execute – Включает определенную программу.
linesPerCycle – Меняет скорость работы программы.
playCD – Начинает проигрывать диск в сдроме.
set – Присваевает переменной значение.
send – Посылает на сервер запрос и выводит полученный ответ.
shutDown – Выключает компьютер.
sound – Проигрывает звуковой файл.
используются при написании макросов. Теперь посмотрим более полный
список, с объяснением назначения каждой из команд.
Команды контроля скрипта:
call – Включает макрос, расположенный в другом файле.
cmpPix – Вставляет выбранный пиксель на место предыдущего.
exit – Останавливает макрос.
for – Создает счетчик.
gosub – Переводит скрипт на другой sub.
goto – Переводит исполнение скрипта на указанную процедуру.
halt – Заканчивает скрипт.
if – Команда задания условия.
pause – Задает паузу в скрипте.
return – Возвращает выполнение скрипта на предыдущее место после sub.
stop – Заканчивает скрипт.
Команды клиента:
chooseSkill – Показывает значение определенного умения (скилла).
click – Делает щелчок мышкой на определенные экранные координаты в клиенте.
deleteJournal – Стирает содержимое журнала.
findItem – Ищет вещи, монстров, НПЦ по их ID.
getUOTitle – возвращает текст, написанный на заглавии окна клиента.
hideItem – «прячет» предмет (его не видно в окне клиента).
ignoreItem – Стирает код предмета из списка finditem.
key – Имитирует нажатие клавиши.
move – Указание персонажу двигаться в определенные координаты.
msg – Выдает сообщение в окне клиента (в качестве речи).
nextCPos – Определяет, где откроется следующий контейнер.
onHotKey – Указывает, какие действия будут произведены, если нажать
определенную клавишу.
savePix – Сохраняет цвет указанного пикселя.
setUOTitle – Устанавливает текст на заглавии окна клиента.
scanJournal – ищет какую-либо информацию в журнале игрока.
sleep – Ожидает указанное количество времени.
target – Ожидает, когда появится значок цели.
terminate – Закрывает выбранный клиент.
uoXL – Запускает\выбирает клиенты.
wait – Ожидает указанное количество времени.
Команды Event:
event Drag – Переносит объект.
event ExMsg – Показывает сообщение над определенным предметом.
event Macro – Выполняет event macro.
event PathFind – двигает чара по определенным координатам.
event Property – Читает описание предмета.
event SkillLock – Лочит\разлочивает определенные умения.
event Sleep – Ждет указанное количество времени.
event SysMessage – Выдает сообщение в окне клиента (как системное).
initEvents – Включает все команды event.
Команды, используемые в магазине:
getShopInfo – Выдает информацию о товаре, имеющемся у определенного продавца.
setShopItem – Задает количество покупаемых вещей (по коду предмета).
Menu Commands:
menu Activate – Включает меню в окне программы.
menu Button – Создает кнопку по определенным координатам в меню программы.
menu Clear – Очищает все меню.
menu Delete – Стирает окно в EasyUO.
menu Edit – Создает меню редактирования по указанным координатам указанной
ширины.
menu Font Align – Меняет вид шрифта.
menu Font BGColor – Задает цвет фона в программе.
menu Font Color – Меняет цвет шрифта.
menu Font Name – Меняет тип шрифта.
menu Font Size – Меняет размер шрифта.
menu Font Style – Меняет стиль шрифта.
menu Get – Вставляет текст в меню редактирования.
menu GetNum – Возвращает количество меню редактирования.
menu Hide – Сворачивает окошко меню EasyUO.
menu HideEUO – Сворачивает основное окно.
menu Show – Показывает окно меню.
menu Text – Создает текст в меню.
menu Window Color – Меняет цвет окна.
menu Window Size – Меняет размер окна.
menu Window Title – Меняет заголовок окна.
Различные команды:
deleteVar – Стирает значение переменной.
display – Показывает сообщение.
execute – Включает определенную программу.
linesPerCycle – Меняет скорость работы программы.
playCD – Начинает проигрывать диск в сдроме.
set – Присваевает переменной значение.
send – Посылает на сервер запрос и выводит полученный ответ.
shutDown – Выключает компьютер.
sound – Проигрывает звуковой файл.
>_<
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
CALL
Синтаксис: CALL FILENAME [(Var1) (Var2) (VarX)]
CALL вызывает другой скрипт из текстового файла и потом возвращается к главному скрипту. Обычное расширение скрипт-файла: .txt Если вы работаете со сложным скриптом - возможно с сотнями линий кода, мы настоятельно рекомендуем разбить скрипт на файлы.
См. также: EXIT - как выйти из скрипта вызванного "CALL". Команда CALL поддерживает параметры. Параметры хранятся в переменных: %1 %2 %3 и т.д.
Пример:
CHOOSESKILL
Синтаксис: CHOOSESKILL SKILL [REAL]
Используйте CHOOSESKILL, чтобы выбрать навык, который появится в системной переменной #skill. Вам необходимо ввести первые 4 знака названия навыка, так вместо magery вы можете использовать mage или magenta Исключения: AnimalLore и Stealth названы anil и stlt.
CLICK
Синтаксис: CLICK x y [r d g p n]
Кроме обычного щелчка вы можете использовать: правый щелчок(r), двойной щелчок(d), тянуть(g), положить(p), или не делать ничего кроме перемещение курсора. Найти координаты курсора можно в нижней части окна EasyUO, справа от положения вашего персонажа. Используйте тянуть и положить для перемещения объектов. Если вы любите сёрфинг в интернете (или делаете что-то еще на своей машине, во время работы скрипта) выберите
опцию в EasyUO - не перемещать курсор, чтобы предотвратить ультимный курсор от перемещения. Эта опция не всегда работает.
При перемещении кучки вы можете тянуть, нажать ентер, и затем нажать на конечное местоположение.
Пример:
CMPPIX
Синтаксис: CMPPIX {Number} {t f}
cmppix сравнивает цвет двух сохраненных точек (см. SAVEPIX). Если они равняются, то следующая линия обрабатывается. Используйте f (false), чтобы изменить эффект наоборот.
Пример:
CONTPOS
Синтаксис: CONTPOS xcord ycord
Перемещает последний открытый контейнер в позицию x , y. Использование этой функции в людных местах подобно Бритбанку не рекомендуется, но это должно работать в вашей шахтерской лачуге. При использовании UOA выключите опцию Display/Show Container Count.
Пример:
DELETEJOURNAL
Синтаксис: DELETEJOURNAL
Эта команда заставляет scanjournal игнорировать прошлую читаемую линию и все линии выше.
Пример:
Если вы или кто-то еще говорит “привет”, вы ответите
“Прощай” только однажды.
EVENT DRAG
Синтаксис: EVENT DRAG dragid
Эта команда тянет определенный предмет без использования мыши. Не имеет значения, находится предмет на земле или в сумке. С этой командой нельзя использовать переменную #ndmod. Чтобы отпустить вещь - используйте команду CLICK.
Пожалуйста, обратите внимание: прежде чем использовать событийные команды, вы должны инициализировать их с помощью InitEvents в начале скрипта.
Пример:
EVENT SKILLLOCK
Синтаксис: EVENT SKILLLOCK SKILLNAME UP DOWN LOCKED
Эта команда изменяет статус замка данного навыка (вверх, вниз или заперто).
Пример:
EVENT SYSMESSAGE
Синтаксис:
Создает системное сообщение, которое появляется в левом нижнем углу экрана. Другие люди не могут видеть его. Чтобы изменить цвет сообщения, вы можете использовать переменную #SYSMSGCOL.
Пример:
EXECUTE
Синтаксис: EXECUTE command
Используйте EXECUTE, чтобы запустить внешние программы. Вы можете также определить параметры командной строки. Чтобы использовать execute, вы должны разрешить это в EasyUO.
Пример:
EXIT
Синтаксис: EXIT
Выход из подскрипта. Если вы используете команду выхода в главном скрипте,
выполнение будет повторно начато в первой линии.
FINDITEM
Синтаксис: FINDITEM [itemid itemtype]
Находит предметы определенного типа. Определите тип изделия которое вы будете искать. Вы можете получить тип каждого объекта двойным щелчком на него и последующей проверкой переменной #LObjectType. Если вы хотите найти больше одного объекта определенного типа, используйте индекс, чтобы определить о каком именно объекте вы хотите получить информацию. Например, ища Katana, которых в сумке 2 штуки, вы получаете первый используемый индекс = 1, и второй используемый индекс = 2.
Возвращаемые значения:
Дополнительная информация:
Предметы, которые вы ищете, должны быть на экране. Мешки, в которых они могут быть, должны быть открыты.
Если вы указали неверный индекс FindKind, он становится –1.
FindBagID показывает ID мешка, предмет - внутри.
FindItem сортирует предметы по их ID. Предметы должны сохранять свои индексы даже когда перемещены в другой мешок (кроме случаев когда вы добавляете новые предметы или удаляете их).
FindItem: использовать IDs чтобы найти предмет очень полезно, если вы знаете что вы ищите (например NPC Продавец). Только определите ID этого типа. Вы можете легко определять тип монстров или животных. Нажмите на них мишенью, получите Id из LTargetID и сделайте FindItem по определенному ID. Тип записан в новую переменную #FindType.
FindItem: несколько типов, Ids и wildcards (*)
Одновременно можно определять больше чем одного типа или IDat. Их можно смешивать.
Это необходимо, чтобы определить тип найденного предмета (при определении нескольких разных типов).
FindItem: #FindMod может быть задействована после нахождения. Необходим при использовании нескольких разных типов, поскольку у них разные модификаторы.
FOR
Синтаксис: FOR variable value1 value2 lines
Используйте FOR, чтобы создавать классический цикл FOR/NEXT, который вы так любите в бейсике.
Переменная = индекс цикла
Может использоваться в вашей программе
Value1 = начальное значение
Value2 = конечное значение
Используйте структуру блоков с { скобками, или определите число линий, которые будут обработаны.
Пример:
GOSUB
Синтаксис: GOSUB subroutine
Можно использовать подпрограмму, если это секция кода, которая часто используется.
Например, у вас есть часть кода, которая называется Z. Оствльные к примеру назовем A, B, C. Подпрограмма (процедура) позволяет легко сделать такую структуру: A, Z, B, Z, C, Z
К примеру, есть скрипт по майнингу. Чар перемещается в разные места и в каждом копает. У меня есть процедура копания. В каждом месте я просто запускаю эту процедуру...
Команды, которые вы должны знать - sub, gosub, и return. Процедура начинается с sub и названия (например sub dig), и заканчиваются словом return. Вызывать процедуру можно используя команду gosub, сопровождающуюся названием процедуры.
Пример:
В этом макросе чар сначала пойдет в локацию 1, покапает. Затем перейдет в локацию 2, покапает. Затем пойдет в локацию 3, покапает и остановится.
GOTO
Синтаксис: GOTO label
Используйте GOTO, чтобы перейти к определенной метке в вашем коде. Метки должны закончиться двоеточием (старый добрый DOS)
Пример:
HALT
Синтаксис: HALT
ОСТАНАВЛИВАЕТ программу подобно выбору остановки в меню. Для полного перезапуска скрипта.
IF
Синтаксис: IF var1 Operator var2 [NrOfLines]
При использовании IF следующая линия будет обработана толко в случае получения TRUE. Необходимо использовать пробелы до и после оператора. Операторы: =, >, <, <>, =, < =. Блочная структура: Вместо определения числа линий, которые будут обработаны вы можете использовать { образные скобки чтобы отмечать линии, которые будут обработаны.
Новые операторы: IN и NOTIN
( См. также выражение scanjournal )
Пример:
IGNOREITEM
Синтаксис: IGNOREITEM id type reset
INITEVENTS
Синтаксис: initevents
Чтобы использовать событийные команды, initevents должен быть выполнен однажды. 'Однажды' относится к случаям клиента. Это означает, каждый раз когда вы стартуете клиент, вы должны использовать команду initevents. Один пример был бы в начале вашего главного скрипта, с поздними запусками некоторых процедур в цикле.
Пример:
KEY
Синтаксис: KEY key [alt] [ctrl] [shift]
Функция KEY посылает нажатия клавиш в UO. Вы можете использовать A-Z, 0-9, F1 к F12, и некоторые другие специальные клавиши. Дополнительные комбинации с ctrl, alt или shift также могут быть реализованы. Дополнительная информация: При запуске больше чем одной UO, может случаться что спец. клавиши ( ctrl, alt, shift) не работает. В этом случае используйте F1 - F12, чтобы избежать этой проблемы.
Специальные клавиши - ESC, BACK, TAB, ENTER, PAUSE, CAPSLOCK, SPACE, PGUP,
PGDN, END, HOME, LEFT, RIGHT, UP, DOWN, PRNSCR, INSERT, DELETE,
NUMLOCK и SCROLLLOCK.
Пример:
MOVE
Синтаксис: MOVE x y [tolerance] [maxtime]
MOVE перемещает ваш персонаж в данные целевые координаты, которые могут быть замечены в первой колонке статусбара. Tolerance определяет расстояние от чара к объекту. Если tolerance нет, она определяется стандартным значением 2.
Есть также параметр ограничения времени maxtime, после прохождения которого ход отменяется, если цель не была достигнута.
Пример:
MSG
Синтаксис: MSG message [$]
Команда MSG посылает текст в UO, как будто это было набрано с клавиатуры. Знак доллара – то же самое что нажатие Enter.
Пример:
NEXTCPOS
Синтаксис: NEXTCPOS xcord ycord
Используйте NEXTCPOS, чтобы установить координаты для следующего открытого контейнера к x y. Вы можете определить отрицательные значения, но будьте осторожны и не размещайте ваш контейнер вне поля зрения. Это может (в отличие от contpos) использоваться в людных местах.
Пример:
ONHOTKEY
Синтаксис: ONHOTKEY key [strg alt shift]
Команда OnHotKey - полезна для выполнения действий при нажатии кнопки, типа питья микстуры или использовании бинтов. Команда OnHotKey выполняет лишь следующую линию после себя. Так что лучше использовать goto или gosub. Я предпочитаю goto.
Чтобы эти кнопки были доступны, необходимо создать цикл.
Пример:
PAUSE
Синтаксис: PAUSE
Команда PAUSE прерывает выполнение скипта. Выполнение может быть продолжено со старой позиции снова, после нажатия кнопки Play.
Пример:
PLAYCD
Синтаксис: PLAYCD диск
Проигрывает диск. Удобен когда небходимо вернуть ваше внимание к игре.
Пример:
SAVEPIX
Синтаксис: SAVEPIX xcord ycord memory
Savepix сохраняет цвет в данных координатах. В целом, вы можете сохранять до тысячи разных точек. Системная переменная #pixcol всегда показывает цвет последней сохраненной точки.
Пример:
SCANJOURNAL
Синтаксис: scanjournal [entry index]
При использовании scanjournal [entry index] вы можете увидеть линию журнала нумерованною [entry index] в переменной #journal.
scanjournal 1 = последняя строчка журнала
scanjournal 2 = строчка перед последней
Вы можете проверять строковое значение в #journal, используя операторы IN и NOTIN.
#journal не обновляется, вы должны сделать цикл.
Пример:
SET
Синтаксис: SET variable value [+ - * / [value]]
Используйте SET, чтобы установить или изменить переменные. EUO Версии большее чем 1.11b позволяет использование операторов +,-, *,/ и % . Числа в Изи всегда положительны, так что 4 равняется -4. Это может использоваться, чтобы вычислить расстояние к объектам и т.д.
Пример:
SHUTDOWN
Синтаксис: SHUTDOWN [FORCE]
Этой командой вы можете выключать ваш компьютер. При выборе force закрываются неотвечающие задачи.
Пример:
STOP
Синтаксис: STOP
Останавливает программу подобно выбору остановки в меню. Происходит полный рестарт скрипта.
Пример:
TARGET
Синтаксис: TARGET [maxtime]
Target останавливает выполнение скрипта, пока не появляется targetcursor. Maxtime определяется максимальным временем, которое может пройти перед отменой команды Target. Стандартное значение для maxtime – 2 секунды.
Пример:
Variables
Синтаксис: нет.
В EasyUO есть два разных типа переменных: системные и определенные пользователем. Системные переменные непосредственно взаимодействуют с UO и главным образом только читаются. Просмотреть список этих переменных вы можете в окне переменных. Системные переменные отождествляют с префиксом (#). Кроме того, есть два разных типа пользовательских переменных, которые могут быть используемыми и измененными свободно, чтобы хранить числа и строки. Возможны простые вычисления, что позволяет строить циклы FOR-NEXT. Вы можете посмотреть короткий пример в описании команды SET. Глобальные пользовательские переменные создаются с номером от 1 до 100 и (*) символом впереди. Они глобальны, что означает что они доступны во всех случаях EUO. Содержание этих переменных занесено в реестр Windows и все еще доступно после перезагрузки. Локальные пользовательские переменные имеют силу в конкретном моменте EUO, построены с идентификатором на ваш выбор и символа (%) впереди.
Пример:
WAIT
Синтаксис: WAIT time [randomtime]
Функция WAIT останавливает выполнение скрипта до тех пор пока не пройдет указаное время. Вы можете определить
продолжительность в секундах или в шагах по 50ms. Ждать 1s = ждать 20. Если есть randomtime, то он прибавляется к времени ожидания.
Пример:
Синтаксис: CALL FILENAME [(Var1) (Var2) (VarX)]
CALL вызывает другой скрипт из текстового файла и потом возвращается к главному скрипту. Обычное расширение скрипт-файла: .txt Если вы работаете со сложным скриптом - возможно с сотнями линий кода, мы настоятельно рекомендуем разбить скрипт на файлы.
См. также: EXIT - как выйти из скрипта вызванного "CALL". Команда CALL поддерживает параметры. Параметры хранятся в переменных: %1 %2 %3 и т.д.
Пример:
call macromine
call macromine.scr
call mminer\macromine
call c:\scripts\mminer\macromine.txt
call test.txt hail and farewell
halt
***test.txt***
msg %1 %2 %3 $
***end***
CHOOSESKILL
Синтаксис: CHOOSESKILL SKILL [REAL]
Используйте CHOOSESKILL, чтобы выбрать навык, который появится в системной переменной #skill. Вам необходимо ввести первые 4 знака названия навыка, так вместо magery вы можете использовать mage или magenta Исключения: AnimalLore и Stealth названы anil и stlt.
CLICK
Синтаксис: CLICK x y [r d g p n]
Кроме обычного щелчка вы можете использовать: правый щелчок(r), двойной щелчок(d), тянуть(g), положить(p), или не делать ничего кроме перемещение курсора. Найти координаты курсора можно в нижней части окна EasyUO, справа от положения вашего персонажа. Используйте тянуть и положить для перемещения объектов. Если вы любите сёрфинг в интернете (или делаете что-то еще на своей машине, во время работы скрипта) выберите
опцию в EasyUO - не перемещать курсор, чтобы предотвратить ультимный курсор от перемещения. Эта опция не всегда работает.
При перемещении кучки вы можете тянуть, нажать ентер, и затем нажать на конечное местоположение.
Пример:
click 639 479
click 200 70 d
click 300 50 g
click 300 100 p
click 300 100 r
click 300 50 g
msg $
click 300 100 p
CMPPIX
Синтаксис: CMPPIX {Number} {t f}
cmppix сравнивает цвет двух сохраненных точек (см. SAVEPIX). Если они равняются, то следующая линия обрабатывается. Используйте f (false), чтобы изменить эффект наоборот.
Пример:
cmppix 1
cmppix 1 t
cmppix 50 t 5
cmppix 50 f 5
CONTPOS
Синтаксис: CONTPOS xcord ycord
Перемещает последний открытый контейнер в позицию x , y. Использование этой функции в людных местах подобно Бритбанку не рекомендуется, но это должно работать в вашей шахтерской лачуге. При использовании UOA выключите опцию Display/Show Container Count.
Пример:
msg bank $
wait 20 10
contpos 10 10
halt
DELETEJOURNAL
Синтаксис: DELETEJOURNAL
Эта команда заставляет scanjournal игнорировать прошлую читаемую линию и все линии выше.
Пример:
for %cnt 10 1
{
scanjournal %cnt
if hail in \#journal
{
msg farewell!$
deletejournal
}
}
Если вы или кто-то еще говорит “привет”, вы ответите
“Прощай” только однажды.
EVENT DRAG
Синтаксис: EVENT DRAG dragid
Эта команда тянет определенный предмет без использования мыши. Не имеет значения, находится предмет на земле или в сумке. С этой командой нельзя использовать переменную #ndmod. Чтобы отпустить вещь - используйте команду CLICK.
Пожалуйста, обратите внимание: прежде чем использовать событийные команды, вы должны инициализировать их с помощью InitEvents в начале скрипта.
Пример:
initevents
event drag #lobjectid
msg $
click 123 456 p
EVENT SKILLLOCK
Синтаксис: EVENT SKILLLOCK SKILLNAME UP DOWN LOCKED
Эта команда изменяет статус замка данного навыка (вверх, вниз или заперто).
Пример:
EVENT SKILLLOCK MAGE DOWN
;this sets your magery skill down
EVENT SKILLLOCK ARMS LOCKED
;this sets your Arms Lore Skill locked
EVENT SYSMESSAGE
Синтаксис:
Создает системное сообщение, которое появляется в левом нижнем углу экрана. Другие люди не могут видеть его. Чтобы изменить цвет сообщения, вы можете использовать переменную #SYSMSGCOL.
Пример:
EVENT SYSMESSAGE This is a Systemmessage
EXECUTE
Синтаксис: EXECUTE command
Используйте EXECUTE, чтобы запустить внешние программы. Вы можете также определить параметры командной строки. Чтобы использовать execute, вы должны разрешить это в EasyUO.
Пример:
execute easyuo.exe anotherscript.txt
execute http://www.uogames.ru
execute mailto:[email protected]
EXIT
Синтаксис: EXIT
Выход из подскрипта. Если вы используете команду выхода в главном скрипте,
выполнение будет повторно начато в первой линии.
FINDITEM
Синтаксис: FINDITEM [itemid itemtype]
Находит предметы определенного типа. Определите тип изделия которое вы будете искать. Вы можете получить тип каждого объекта двойным щелчком на него и последующей проверкой переменной #LObjectType. Если вы хотите найти больше одного объекта определенного типа, используйте индекс, чтобы определить о каком именно объекте вы хотите получить информацию. Например, ища Katana, которых в сумке 2 штуки, вы получаете первый используемый индекс = 1, и второй используемый индекс = 2.
Возвращаемые значения:
#FindID,
Id найденного предмета. Пишите это в #LTargetID, и используйте это с вашим UO last target macro. (Работает также с #LObjectID)
#FindX
X позиция предмета
#FindY
Y позиция предмета
Внимание: они должны быть приспособлены для использования #ndmod для операции тащить и класть.
#FindKind
В эту переменную функция возвращает код :
Возможные значения:
0 = предмет находится в рюкзаке
1 = предмет находится на полу
-1 = предметы не были найдены
Дополнительная информация:
Предметы, которые вы ищете, должны быть на экране. Мешки, в которых они могут быть, должны быть открыты.
Если вы указали неверный индекс FindKind, он становится –1.
FindBagID показывает ID мешка, предмет - внутри.
FindItem сортирует предметы по их ID. Предметы должны сохранять свои индексы даже когда перемещены в другой мешок (кроме случаев когда вы добавляете новые предметы или удаляете их).
FindItem: использовать IDs чтобы найти предмет очень полезно, если вы знаете что вы ищите (например NPC Продавец). Только определите ID этого типа. Вы можете легко определять тип монстров или животных. Нажмите на них мишенью, получите Id из LTargetID и сделайте FindItem по определенному ID. Тип записан в новую переменную #FindType.
FindItem: несколько типов, Ids и wildcards (*)
Одновременно можно определять больше чем одного типа или IDat. Их можно смешивать.
;Typ1 = XYY, Typ2 = XYZ, ID = ABCDEFG
nditem XYY XYZ ABCDEFG
; IS = Male, HS = Female
nditem HS IS
FindItem: #FindType
Это необходимо, чтобы определить тип найденного предмета (при определении нескольких разных типов).
FindItem: #FindMod может быть задействована после нахождения. Необходим при использовании нескольких разных типов, поскольку у них разные модификаторы.
FOR
Синтаксис: FOR variable value1 value2 lines
Используйте FOR, чтобы создавать классический цикл FOR/NEXT, который вы так любите в бейсике.
Переменная = индекс цикла
Может использоваться в вашей программе
Value1 = начальное значение
Value2 = конечное значение
Используйте структуру блоков с { скобками, или определите число линий, которые будут обработаны.
Пример:
Bsp1:
for %cnt 1 10 2
msg %cnt $
wait 20
halt
Bsp2:
for %cnt 1 10
msg %cnt
msg $
halt
Bsp3:
for %cnt 1 10
{
msg %cnt $
wait 20
}
halt
Bsp4:
msg backward: $
for %cnt 10 1
{
msg %cnt $
wait 20
}
halt
Bsp5:
msg verschachtelt$
for %cnt1 2 0
{
for %cnt2 9 0
{
msg %cnt1 %cnt2 $
wait 20
}
}
halt
msg verschachtelt$
for %cnt1 2 0
{
for %cnt2 9 0
{
msg %cnt1 %cnt2 $
wait 20
}
}
halt
GOSUB
Синтаксис: GOSUB subroutine
Можно использовать подпрограмму, если это секция кода, которая часто используется.
Например, у вас есть часть кода, которая называется Z. Оствльные к примеру назовем A, B, C. Подпрограмма (процедура) позволяет легко сделать такую структуру: A, Z, B, Z, C, Z
К примеру, есть скрипт по майнингу. Чар перемещается в разные места и в каждом копает. У меня есть процедура копания. В каждом месте я просто запускаю эту процедуру...
Команды, которые вы должны знать - sub, gosub, и return. Процедура начинается с sub и названия (например sub dig), и заканчиваются словом return. Вызывать процедуру можно используя команду gosub, сопровождающуюся названием процедуры.
Пример:
В этом макросе чар сначала пойдет в локацию 1, покапает. Затем перейдет в локацию 2, покапает. Затем пойдет в локацию 3, покапает и остановится.
location1:
move 2000 1500 a 10s
gosub dig
location 2:
move 2005 1505 a 10s
gosub dig
location 3:
move 2010 1510 a 10s
gosub dig
HALT
sub dig
set #lobjectid %shovel
key %lastobjectkey
click 400 400
return
GOTO
Синтаксис: GOTO label
Используйте GOTO, чтобы перейти к определенной метке в вашем коде. Метки должны закончиться двоеточием (старый добрый DOS)
Пример:
Beginning:
call run_only_once.txt
Continue:
call important.txt
.....
goto Continue
HALT
Синтаксис: HALT
ОСТАНАВЛИВАЕТ программу подобно выбору остановки в меню. Для полного перезапуска скрипта.
IF
Синтаксис: IF var1 Operator var2 [NrOfLines]
При использовании IF следующая линия будет обработана толко в случае получения TRUE. Необходимо использовать пробелы до и после оператора. Операторы: =, >, <, <>, =, < =. Блочная структура: Вместо определения числа линий, которые будут обработаны вы можете использовать { образные скобки чтобы отмечать линии, которые будут обработаны.
Новые операторы: IN и NOTIN
( См. также выражение scanjournal )
Пример:
if #weight > 390
msg overloaded!!!$
if 1 > 2 2
msg not processed$
msg not processed$
msg continued here$
halt
IGNOREITEM
Синтаксис: IGNOREITEM id type reset
-
Первоначально IgnorItem был задуман, чтобы справляться с некоторыми проблемами при FindItem. Но это оказалось очень полезным для навыков подобно Провокации. Когда вы игнорируете предмет/человека, это больше не замечается FindItem. Это может, например, использоваться для отравления, чтобы избежать отравления того же оружия дважды.
Пример:
IGNOREITEM id
IGNOREITEM reset
;IgnLists.txt
;This script will demonstrate
;the use of several ignoreitem
;lists. Press the start button,
;go to a shop, and target two
;NPCs of your choice!
msg; Take a dagger and target NPC 1$
wait 3s
msg; (Press play to continue)$
pause
set %npc1 #ltargetid
msg; Take a dagger and target NPC 2$
wait 3s
msg; (Press play to continue)$
pause
set %npc2 #ltargetid
msg; ---Start---$
ignoreitem %npc1 1
ignoreitem %npc2 2
msg; Nothing will be found$
finditem %npc1
msg; 1: #findid $
wait 3s
finditem %npc2
msg; 2: #findid $
wait 3s
ignoreitem reset 1
msg; NPC 1 will be found$
finditem %npc1
msg; 1: #findid $
wait 3s
finditem %npc2
msg; 2: #findid $
wait 3s
ignoreitem %npc1 1
2 (ENGLISH) COMMANDS 20
ignoreitem reset 2
msg; NPC 2 will be found$
finditem %npc1
msg; 1: #findid $
wait 3s
finditem %npc2
msg; 2: #findid $
wait 3s
msg; ---End---$
halt
INITEVENTS
Синтаксис: initevents
Чтобы использовать событийные команды, initevents должен быть выполнен однажды. 'Однажды' относится к случаям клиента. Это означает, каждый раз когда вы стартуете клиент, вы должны использовать команду initevents. Один пример был бы в начале вашего главного скрипта, с поздними запусками некоторых процедур в цикле.
Пример:
initevents
KEY
Синтаксис: KEY key [alt] [ctrl] [shift]
Функция KEY посылает нажатия клавиш в UO. Вы можете использовать A-Z, 0-9, F1 к F12, и некоторые другие специальные клавиши. Дополнительные комбинации с ctrl, alt или shift также могут быть реализованы. Дополнительная информация: При запуске больше чем одной UO, может случаться что спец. клавиши ( ctrl, alt, shift) не работает. В этом случае используйте F1 - F12, чтобы избежать этой проблемы.
Специальные клавиши - ESC, BACK, TAB, ENTER, PAUSE, CAPSLOCK, SPACE, PGUP,
PGDN, END, HOME, LEFT, RIGHT, UP, DOWN, PRNSCR, INSERT, DELETE,
NUMLOCK и SCROLLLOCK.
Пример:
key f1
key a ctrl
key esc
key f4 alt (Well ... You wouldn't use this one, would you?)
MOVE
Синтаксис: MOVE x y [tolerance] [maxtime]
MOVE перемещает ваш персонаж в данные целевые координаты, которые могут быть замечены в первой колонке статусбара. Tolerance определяет расстояние от чара к объекту. Если tolerance нет, она определяется стандартным значением 2.
Есть также параметр ограничения времени maxtime, после прохождения которого ход отменяется, если цель не была достигнута.
Пример:
move 1418 1697
move 1439 1693 1
move 1439 1693 0 15s
MSG
Синтаксис: MSG message [$]
Команда MSG посылает текст в UO, как будто это было набрано с клавиатуры. Знак доллара – то же самое что нажатие Enter.
Пример:
msg forward $
msg hail $and $farewell $
Last update 10-28-01 by Cheffe
NEXTCPOS
Синтаксис: NEXTCPOS xcord ycord
Используйте NEXTCPOS, чтобы установить координаты для следующего открытого контейнера к x y. Вы можете определить отрицательные значения, но будьте осторожны и не размещайте ваш контейнер вне поля зрения. Это может (в отличие от contpos) использоваться в людных местах.
Пример:
nextcpos 10 10
wait 10
msg bank $
ONHOTKEY
Синтаксис: ONHOTKEY key [strg alt shift]
Команда OnHotKey - полезна для выполнения действий при нажатии кнопки, типа питья микстуры или использовании бинтов. Команда OnHotKey выполняет лишь следующую линию после себя. Так что лучше использовать goto или gosub. Я предпочитаю goto.
Чтобы эти кнопки были доступны, необходимо создать цикл.
Пример:
HotkeyLoop:
OnHotKey F1
GOTO MessageOne
OnHotKey F2
GOTO MessageTwo
GOTO HotkeyLoop
MessageOne:
msg Congrats, you pressed F1 $
goto HotkeyLoop
MessageTwo:
msg Congrats, you pressed F2 $
goto HotkeyLoop
PAUSE
Синтаксис: PAUSE
Команда PAUSE прерывает выполнение скипта. Выполнение может быть продолжено со старой позиции снова, после нажатия кнопки Play.
Пример:
PAUSE
PLAYCD
Синтаксис: PLAYCD диск
Проигрывает диск. Удобен когда небходимо вернуть ваше внимание к игре.
Пример:
if #hits < 90
playcd d:
if #hits < 30
call rescue.txt
SAVEPIX
Синтаксис: SAVEPIX xcord ycord memory
Savepix сохраняет цвет в данных координатах. В целом, вы можете сохранять до тысячи разных точек. Системная переменная #pixcol всегда показывает цвет последней сохраненной точки.
Пример:
savepix 620 400 1
savepix 430 210 2
SCANJOURNAL
Синтаксис: scanjournal [entry index]
При использовании scanjournal [entry index] вы можете увидеть линию журнала нумерованною [entry index] в переменной #journal.
scanjournal 1 = последняя строчка журнала
scanjournal 2 = строчка перед последней
Вы можете проверять строковое значение в #journal, используя операторы IN и NOTIN.
#journal не обновляется, вы должны сделать цикл.
Пример:
Example:
scanjournal 1
if is_attacking_you in #journal
{
msg Guards ! $
call recallme
}
goto Example
SET
Синтаксис: SET variable value [+ - * / [value]]
Используйте SET, чтобы установить или изменить переменные. EUO Версии большее чем 1.11b позволяет использование операторов +,-, *,/ и % . Числа в Изи всегда положительны, так что 4 равняется -4. Это может использоваться, чтобы вычислить расстояние к объектам и т.д.
Пример:
Syntax1: SET variable value [operator value]
Syntax2: SET variable value [+ - * / [value]]
set #lspell 40
set #lspell #lskill
set *1 #weight2
set *1 *1 - 1
set *1 *1 +
set *1 #mana + 5
Example of an FOR NEXT loop:
set *1 30
N1:
set *1 *1 - 1
msg; *1 $
wait 20
if *1 > 0
goto N1
msg done$
halt
SHUTDOWN
Синтаксис: SHUTDOWN [FORCE]
Этой командой вы можете выключать ваш компьютер. При выборе force закрываются неотвечающие задачи.
Пример:
if #time = 1900
{
shutdown force
}
STOP
Синтаксис: STOP
Останавливает программу подобно выбору остановки в меню. Происходит полный рестарт скрипта.
Пример:
if #time = 2300
{
msg go home $
stop
}
TARGET
Синтаксис: TARGET [maxtime]
Target останавливает выполнение скрипта, пока не появляется targetcursor. Maxtime определяется максимальным временем, которое может пройти перед отменой команды Target. Стандартное значение для maxtime – 2 секунды.
Пример:
target 7s
Variables
Синтаксис: нет.
В EasyUO есть два разных типа переменных: системные и определенные пользователем. Системные переменные непосредственно взаимодействуют с UO и главным образом только читаются. Просмотреть список этих переменных вы можете в окне переменных. Системные переменные отождествляют с префиксом (#). Кроме того, есть два разных типа пользовательских переменных, которые могут быть используемыми и измененными свободно, чтобы хранить числа и строки. Возможны простые вычисления, что позволяет строить циклы FOR-NEXT. Вы можете посмотреть короткий пример в описании команды SET. Глобальные пользовательские переменные создаются с номером от 1 до 100 и (*) символом впереди. Они глобальны, что означает что они доступны во всех случаях EUO. Содержание этих переменных занесено в реестр Windows и все еще доступно после перезагрузки. Локальные пользовательские переменные имеют силу в конкретном моменте EUO, построены с идентификатором на ваш выбор и символа (%) впереди.
Пример:
( ObjectIDs железной двери первого банка Brit, Felucca, Drachenfels):
Если #lobjectid = KKEGUND
goto sayit
Если OPNGUND < > #lobjectid
exit
sayit:
msg; I'm going into britbank now!$
halt
WAIT
Синтаксис: WAIT time [randomtime]
Функция WAIT останавливает выполнение скрипта до тех пор пока не пройдет указаное время. Вы можете определить
продолжительность в секундах или в шагах по 50ms. Ждать 1s = ждать 20. Если есть randomtime, то он прибавляется к времени ожидания.
Пример:
wait 5s
wait 2s 1s
>_<
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Теперь посмотрим на сами переменные:
Описание системных переменных EasyUO.
#CHARDIR
Определяет направление в которое смотрит чар.
Возможные значения:
0 = facing North
1 = facing NorthEast
2 = facing East
3 = facing SouthEast
4 = facing South
5 = facing SouthWest
6 = facing West
7 = facing NorthWest
Пример:
#CHARPOSX
В этих двух переменных - текущее положение чара. Значения соответствуют x/y координатам UO auto map.
Пример:
#CHARSTATUS
В #CHARSTATUS - текущий статус чара:
C = poisend
H = hidden
CH = poisend and hidden
Пример:
#CONTID
Эта переменная содержит id активного в настоящее время контейнера. Это означает, что если вы открываете ваш рюкзак, #contid будет EGKTIND как в примере. Если вы теперь открываете другой контейнер, id изменится на id нового открытого контейнера (JHBVFTZ как в примере). Если вы теперь тянете предмет из вашего рюкзака, #contid изменится назад на EGKTIND, если вы теперь кладете предмет в другой контейнер, #contid изменится на JHBVFTZ. Команда contpos установит позицию активного контейнера. Это означает, что contpos использует #contid, чтобы установить его в новую позицию.
Пример:
#CONTPOSX
В этих переменных сохранено x/y положение контейнера. Эти переменные лучше всего опишет команда NETXCPOS, которая устанавливает обе переменные.
#CONTTYPE
Эта переменная показывает тип контейнера, который в настоящее время открыт и находится в фокусе/активнен.
Пример:
#CURSORX
Координаты курсора мыши.
#DEX
В этой переменной числовое значение ловкости.
#FINDBAGID
Когда вы ищете предмет с помощью finditem, и тот предмет находится в контейнере или мешке, то в этой переменной будет id этого мешка.
#FINDDIST
Эта переменная позволяет ограничивать расстояние с котороым EasyUo будет искать цель, указаную в команде target (next target). Самый легкий пример в макро provoke , который ищет цели, чтобы provoke на них.
Пример:
#FINDID
Если вы ищет предмет с использованием nditem, переменная #ndid будет содержать ID предмета, который вы найдете.
Пример:
#FINDKIND
Показывает, где предмет был найден.
#findkind -1 = Предмет не найден.
#findkind 0 = Предмет находится в мешке.
#findkind 1 = Предмет находится на земле.
#FINDREP
1 : Innocent
2 : Friend
3 : Gray
4 : Criminal
5 : Enemy
6 : Murderer
У серого (3) более высокий приоритет чем у остальных.
#FINDSTACK
Эта переменная показывает кол-во изделий в стеке, который найден командой finditem.
#FINDX
Показывает значение X предмета, который найден finditem. Также читается #FINDMOD
Пример:
#GOLD
В этой переменной показано сколько золота ваш чар имеет в рюкзаке. Чтобы это значение было верно, то необходимо, чтобы полоса статуса была открыта.
#HITS
Показывает кол-во хитов чара. Чтобы эта переменная была определена правильно, полоса статуса должна быть открыта.
Пример:
#INT
Значение интеллекта вашего чара.
#JOURNAL
Когда вы используете команду scanjournal в этой переменной будет хранится значение сканированой линии.
Пример:
#LHANDID
Эти переменные содержат id последнего предмета/оружия/щита, который вы носили. #lhandid предназначен для левой руки, а #rhandid - для правой. Можно использовать это в UO Makro вооружаться/разоружаться.
Пример:
#LLIFTEDID
Эта переменная содержит id последнего тянутого/поднятого объекта.
Пример:
#LOBJECTID
В этой переменной хранится уникальный id предмета, который вы использовали в последний раз. Если вы нажмете дабл-кликом на молоток кузнеца, id этого молотка будет показываться здесь.
#LSKILL
Тут хранится последний навык, который вы использовали. В эту переменную можно записывать.
#LSPELL
Тут хранится последний спелл, который вы использовали. В эту переменную можно записывать.
#LTARGETID
Тут хранится id последнего предмета/чара/животного, которое вы выбирали. Использовать можно чтобы найти id предмета или можно записывать в эту переменную, чтобы установить последнюю цель.
#LTARGETKIND
Здесь видно, является ли ваша последняя цель ресурсом подобно дереву или объекту. Эта переменная может быть перезаписана.
#MANA
Тут показанна мана чара. Чтобы эта переменная была определена правильно, полоса статуса должна быть открыта.
#NEXTCPOSX
С помощью этой переменной можно контролировать где откроется следующий контейнер.
#PIXCOL
Если вы сохраняете код цвета точки с помощью savepix x y 0, он показан в этой переменной.
#RHANDID
Также есть #LHANDID
#SCNT
Таймер в секундах. Начинается с 0, с запуска окна.
#SHARD
Название текущего шарда.
#SHOPCNT
Количество изделий у вендора.
#SHOPCURPOS
Номер верхнего предмета в списке вендора. Переменная обновляется командой GETSHOPINFO.
#SHOPITEMID
ID верхнего предмета в списке вендора. Переменная обновляется командой GETSHOPINFO.
#SHOPITEMMAX
Кол-во верхнего предмета в списке вендора. Переменная обновляется командой GETSHOPINFO.
#SHOPITEMNAME
Название верхнего предмета в списке вендора. Переменная обновляется командой GETSHOPINFO. Иногда это работает, иногда нет.
#SHOPITEMPRIZE
Цена верхнего предмета в списке вендора. Переменная обновляется командой GETSHOPINFO.
#SHOPITEMTYPE
Тип верхнего предмета в списке вендора. Переменная обновляется командой GETSHOPINFO.
Тот же самый тип, который вы найдете в переменных #LOBJECTTYPE и #FINDTYPE.
#SKILL
Показывает текущий уровень навыка, который был выбран командой CHOOSESKILL.
#SKILLLOCK
Показывает текущее состояние замка навыка, который вы выбрали командой CHOOSESKILL.
Пример:
#STAMINA
В этой переменной записана текущая стамина вашего чара. Чтобы эта переменная была определена правильно, окно статуса должно быть открыто.
#STR
В этой переменной записана сила вашего чара.
#SYSMSG
Эта переменная содержит текущее системное сообщение. Системное сообщение - сообщения в низком левом углу экрана.
Пример:
#SYSMSGCOL
Этой переменной вы можете изменять цвет системного сообщения.
Пример:
[small]Найдено на просторах интернета, видоизменено, исправлено и дополнено.[/small]
Описание системных переменных EasyUO.
#CHARDIR
Определяет направление в которое смотрит чар.
Возможные значения:
0 = facing North
1 = facing NorthEast
2 = facing East
3 = facing SouthEast
4 = facing South
5 = facing SouthWest
6 = facing West
7 = facing NorthWest
Пример:
top:
if #CHARDIR = 0
msg : Looking North $
wait 2s
goto top
#CHARPOSX
В этих двух переменных - текущее положение чара. Значения соответствуют x/y координатам UO auto map.
Пример:
msg #CHARPOSX $
msg #CHARPOSY $
halt
#CHARSTATUS
В #CHARSTATUS - текущий статус чара:
C = poisend
H = hidden
CH = poisend and hidden
Пример:
if C in #CHARSTATUS
{
call cureme.txt
}
#CONTID
Эта переменная содержит id активного в настоящее время контейнера. Это означает, что если вы открываете ваш рюкзак, #contid будет EGKTIND как в примере. Если вы теперь открываете другой контейнер, id изменится на id нового открытого контейнера (JHBVFTZ как в примере). Если вы теперь тянете предмет из вашего рюкзака, #contid изменится назад на EGKTIND, если вы теперь кладете предмет в другой контейнер, #contid изменится на JHBVFTZ. Команда contpos установит позицию активного контейнера. Это означает, что contpos использует #contid, чтобы установить его в новую позицию.
Пример:
key i alt
msg #contid Dies ist meine eigene Rucksack ID $
contpos 200 200
#CONTPOSX
В этих переменных сохранено x/y положение контейнера. Эти переменные лучше всего опишет команда NETXCPOS, которая устанавливает обе переменные.
#CONTTYPE
Эта переменная показывает тип контейнера, который в настоящее время открыт и находится в фокусе/активнен.
Пример:
key i alt
wait 20
msg #conttype ist der Type meines Rucksacks.$
#CURSORX
Координаты курсора мыши.
#DEX
В этой переменной числовое значение ловкости.
#FINDBAGID
Когда вы ищете предмет с помощью finditem, и тот предмет находится в контейнере или мешке, то в этой переменной будет id этого мешка.
#FINDDIST
Эта переменная позволяет ограничивать расстояние с котороым EasyUo будет искать цель, указаную в команде target (next target). Самый легкий пример в макро provoke , который ищет цели, чтобы provoke на них.
Пример:
initevents
initevents
;use skill event macro provoke
event macro 13 22
target
;section for first provoked animal
;section or marker id
x:
;target next event macro command
event macro 26 0
wait 10
finditem #ltargetid
;to not target blues when provoking
if #findrep < 3
goto x
;the part of the macro that this example
;Provoke does not work if targets are too
;far away so the macro is made more
;efficient by limiting the search areas to
;10 tiles in any direction.
if #finddist > 10
;you need to loop back to the target next
;command to choose a new target
goto x
;if the target is within 10 tiles you need
;to use the last target key to apply the
;target
;here is the event macro for last target
event macro 22 0
;this is the section for the second target
;to provoke on, it is the same as the
;previous section.
y:
event macro 26 0
wait 10
finditem #ltargetid
if #findrep < 3
goto y
if #finddist > 10
goto y
event macro 22 0
wait 10s
if yes in #charghost
halt
#FINDID
Если вы ищет предмет с использованием nditem, переменная #ndid будет содержать ID предмета, который вы найдете.
Пример:
nochmal:
finditem POF
if #findkind = 1 2
ignoreitem #findid
goto nochmal
if findkind = -1 1
halt
msg #findid is the ID of the gold in my bag.I have exactly #findstack gold on me.$
#FINDKIND
Показывает, где предмет был найден.
#findkind -1 = Предмет не найден.
#findkind 0 = Предмет находится в мешке.
#findkind 1 = Предмет находится на земле.
#FINDREP
1 : Innocent
2 : Friend
3 : Gray
4 : Criminal
5 : Enemy
6 : Murderer
У серого (3) более высокий приоритет чем у остальных.
#FINDSTACK
Эта переменная показывает кол-во изделий в стеке, который найден командой finditem.
#FINDX
Показывает значение X предмета, который найден finditem. Также читается #FINDMOD
Пример:
finditem %forgeid
if #findkind = 1
{
msg The Forge is at X #findx $
msg The Forge is at Y #findy $
ignoreitem %forgeid
halt
}
#GOLD
В этой переменной показано сколько золота ваш чар имеет в рюкзаке. Чтобы это значение было верно, то необходимо, чтобы полоса статуса была открыта.
#HITS
Показывает кол-во хитов чара. Чтобы эта переменная была определена правильно, полоса статуса должна быть открыта.
Пример:
if #hits < #str
{
msg i need healing $
call healme.txt
}
#INT
Значение интеллекта вашего чара.
#JOURNAL
Когда вы используете команду scanjournal в этой переменной будет хранится значение сканированой линии.
Пример:
scanjournal 1
if YOU_SEE_LORD_BRITISH in #journal 1
msg Hail to thee, Mylord!$
#LHANDID
Эти переменные содержат id последнего предмета/оружия/щита, который вы носили. #lhandid предназначен для левой руки, а #rhandid - для правой. Можно использовать это в UO Makro вооружаться/разоружаться.
Пример:
set %waffe;
nochmal:
finditem %waffe %cnt
if #findkind = -1 1
halt
set #lhandid #findid
key f5;UO Makro for arm/disarm
wait 1s
key f5;UO Makro for arm/disarm
wait 1s
ignoreitem #findid
goto nochmal
#LLIFTEDID
Эта переменная содержит id последнего тянутого/поднятого объекта.
Пример:
initevents
finditem JTL
event drag #findid
wait 20
msg $
wait 20
msg Der Gegenstand hat die ID #lliftedid $
#LOBJECTID
В этой переменной хранится уникальный id предмета, который вы использовали в последний раз. Если вы нажмете дабл-кликом на молоток кузнеца, id этого молотка будет показываться здесь.
#LSKILL
Тут хранится последний навык, который вы использовали. В эту переменную можно записывать.
#LSPELL
Тут хранится последний спелл, который вы использовали. В эту переменную можно записывать.
#LTARGETID
Тут хранится id последнего предмета/чара/животного, которое вы выбирали. Использовать можно чтобы найти id предмета или можно записывать в эту переменную, чтобы установить последнюю цель.
#LTARGETKIND
Здесь видно, является ли ваша последняя цель ресурсом подобно дереву или объекту. Эта переменная может быть перезаписана.
#MANA
Тут показанна мана чара. Чтобы эта переменная была определена правильно, полоса статуса должна быть открыта.
#NEXTCPOSX
С помощью этой переменной можно контролировать где откроется следующий контейнер.
#PIXCOL
Если вы сохраняете код цвета точки с помощью savepix x y 0, он показан в этой переменной.
#RHANDID
Также есть #LHANDID
#SCNT
Таймер в секундах. Начинается с 0, с запуска окна.
#SHARD
Название текущего шарда.
#SHOPCNT
Количество изделий у вендора.
#SHOPCURPOS
Номер верхнего предмета в списке вендора. Переменная обновляется командой GETSHOPINFO.
#SHOPITEMID
ID верхнего предмета в списке вендора. Переменная обновляется командой GETSHOPINFO.
#SHOPITEMMAX
Кол-во верхнего предмета в списке вендора. Переменная обновляется командой GETSHOPINFO.
#SHOPITEMNAME
Название верхнего предмета в списке вендора. Переменная обновляется командой GETSHOPINFO. Иногда это работает, иногда нет.
#SHOPITEMPRIZE
Цена верхнего предмета в списке вендора. Переменная обновляется командой GETSHOPINFO.
#SHOPITEMTYPE
Тип верхнего предмета в списке вендора. Переменная обновляется командой GETSHOPINFO.
Тот же самый тип, который вы найдете в переменных #LOBJECTTYPE и #FINDTYPE.
#SKILL
Показывает текущий уровень навыка, который был выбран командой CHOOSESKILL.
#SKILLLOCK
Показывает текущее состояние замка навыка, который вы выбрали командой CHOOSESKILL.
Пример:
CHOOSESKILL MAGE REAL
msg Currently magery is set \#skilllock$
<hr>
#STAMINA
В этой переменной записана текущая стамина вашего чара. Чтобы эта переменная была определена правильно, окно статуса должно быть открыто.
#STR
В этой переменной записана сила вашего чара.
#SYSMSG
Эта переменная содержит текущее системное сообщение. Системное сообщение - сообщения в низком левом углу экрана.
Пример:
if DU_BIST_ZU_MOUDE in #sysmsg 1
msg Ich leg mich jetzt schlafen!!!$
#SYSMSGCOL
Этой переменной вы можете изменять цвет системного сообщения.
Пример:
initevents
for %i 1 1000
{
set #sysmsgcol %i
event sysmessage HELLO %i
wait 10
>_<
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.