Синтакс: type
Тема: Символы Ключевые слова: symbol, objhandling
Мир UO состоит из двух типов - обьекты и статики. Статики это как бы фоновое изображение, которое записывается у вас на компьютере, это мир состоящий из земли, воды, скал, деревьев, городских зданий. Эта часть (почти) неизменна на всех шардах Ultima Online.
Обьекты (objects) - это всё что создано трудами администрации и игроков. Это подвижные обьекты типа оружия, ресурсов, ящиков, дверей а так же дополнения типа домов игроков, разнообразных украшений и т.п. Легко проверить динамик то что вы видите или статик, если введёте команду ,hide и прицелом покажете на обьект. Если он исчезнет из виду то это динамик, если же нет или вообще прицел не нажимается - то статик.
Все обьекты в Ультиме имеют тип (type) обозначающийся обычно четырёхзначным шестнадцатеричным числом вида 0x1234. Тип так же называется graphic (изображение). Это связано с тем что тип совпадает с номером рисунка в базе Ультимы.
Игроку не требуется знать номера всех типов мира, но у него обычно есть несколько избранных типов с которыми он имеет дело. Чтобы запомнить их номера для дальнейшего использования существует закладка Object Types в окне Injection. Например тип руды можно запомнить под именем ore. В дальнейшем под словом тип и будем подразумевать его номер или имя в закладке Object Types.
Чтобы обратиться к обьекту по типу можно указать прямо его номер например 0x1234 (0 - ноль, x - икс латинская), либо его имя если он добавлен в закладку Object Types.
Добавить именованый тип можно так же специальной командой addtype. Дополнительная информация о типе обьекта доступна с помощью команды info.
На шардах распространено использование покрашеных в разные цвета обьектов. Тем не менее они имеют один и тот же тип. Чтобы "на глаз" сравнить типы двух обьектов мысленно покрасьте оба в серый цвет. Если они выглядят одинаково то и тип одинаковый. Точно узнать вы это можете с помощью команды ,info.
Типы некоторых обьектов найболее вероятно могут понадобится игроку запоминаются Injection автоматически и они доступны под специальными системными именами:
Указатель | Описание содержимого |
---|---|
lastobject | Тип последнего использованного (двойным щелчком мыши) обьекта |
lasttarget | Тип последнего обьекта, на который был наведён прицел (одинарный щелчок мыши в режиме прицеливания). Помните, что макрос Target Next клиента не оказывает влияния на lasttarget в Injection. |
lastequipgraphic | Тип последнего обьекта, который был перемещён командами equip, equipt, unequip |
Если у вас включена опция Permit Vars Loopback (разрешение обратной связи к переменным) то в числе прочего команды использующие обьекты будут менять значение вышеперечисленных переменных, иначе они будут меняться только от действий клиента.
Injection может использовать литералы изиуо для укзания типов, например: ,usetype NPF
Таким образом совместное использование EasyUO с Yoko Injection позволяет использовать
лучшие стороны обоих программных продуктов. Пример обращения к Injection из
EasyUO: msg $,equipt Rhand #findtype $
Обратная связь может осуществляться с помощью журнала, команды easyobject,
нескольких команд скриптов. В отличае от Injection программа EasyUO не настроена
сотрудничать и прямой связи не существует.
Черезвычайно гибким и полезным инструментом может оказаться для макросника средство по автопреобразованию типа в обьект. Выглядит это как односимвользый модификатор слитно написаный с типом, в результате которого связка считается командами Injection обьектом. Так как большинство команд работают с обьектами это позволяет уменьшить количество и размер скриптов. Пример: ,grab 0 ~POF будет работать как "поднять кучку золота с пола и положить в бекпак" (POF - type золотых монет в нотации EasyUO).
Символ | Синтакс | Описание преобразования | Получение того же обьекта в указателе finditem | Пример | |
---|---|---|---|---|---|
_ | подчерк | _type | Ищет по типу на чаре, в бекпаке, подсумках | findtype type -1 my | ,click _POF |
^ | крышка | ^type | Ищет в бекпаке без подсумок | findtype type -1 backpack | ,click ^POF |
~ | тильда | ~type | Ищет на земле в некотором радиусе (см. set finddist) | findtype type -1 ground | ,grab 0 ~POF |
< | меньше | <type | Ищет по типу в последнем открытом контейнере | findtype type -1 lastcontainer | ,grab 0 <POF |
. | точка | object.type | Ищет по типу type в указанном контейнере object. | findtype type -1 object | ,moveitem lastcorpse.gold |
Тип (type) - описывает обьекты одинакового вида. К ней можно обратиться с помощью номера типа в шестнадцатеричном (0x...) и десятичном форматах, по имени добавленого в список обьекта, через указатели типов.