Синтакс: object
Тема: Символы Ключевые слова: symbol
Мир UO состоит из двух типов - обьекты и статики. Статики это как бы фоновое изображение, которое записывается у вас на компьютере, это мир состоящий из земли, воды, скал, деревьев, городских зданий. Эта часть (почти) неизменна на всех шардах Ultima Online.
Обьекты (objects) - это всё что создано трудами администрации и игроков. Это подвижные обьекты типа оружия, ресурсов, ящиков, дверей а так же дополнения типа домов игроков, разнообразных украшений и т.п. Легко проверить динамик то что вы видите или статик, если введёте команду ,hide и прицелом покажете на обьект. Если он исчезнет из виду то это динамик, если же нет или вообще прицел не нажимается - то статик.
Каждый обьект в игровом мире имеет уникальный номер, по которому вы можете сказать серверу, и сервер может сказать вам, что конкретно имеется в виду. Номер представляется обычно в виде длинного (8 знаков) шестнадцатеричноко числа вида 0x4010AF44. Не запрещено использовать десятичное число, например 1074835268 но это весьма экзотично.
Игроку не требуется знать все обьекты мира, но у него обычно есть несколько избранных обьектов с которыми он имеет дело. Чтобы запомнить такие обьекты для дальнейшего использования существует закладка Objects в окне Injection. Например серийный номер любимого крисса можно запомнить под именем mycryss. В дальнейшем под словом обьект и будем подразумевать его серийный номер или имя в закладке Objects.
Чтобы обратиться к обьекту можно указать прямо его номер например 0x12345678 (0 - ноль, x - икс латинская), либо его имя если он добавлен в закладку Objects.
Добавить именованый обьект можно так же специальной командой addobject. Дополнительная информация о обьекте доступна с помощью команды info.
Так как вещи, складывающиеся в стопки, например руда, имеют обыкновение менять свой серийный номер после некоторых действий над ними (так как сервер создаёт новые обьекты того же типа type например при разделении стопки на части) то нет смысла запоминать номера таких стопок под именами. Скорее всего скоро стопка поменяет номер и сервер никогда больше не использует его. Для работы с изменяющимися номерами используют типы обьектов type.
Есть некоторые обьекты которые легко узнать и часто используются всеми игроками, например бекпак (рюкзак персонажа). Такие обьекты запоминаются Injection автоматически и они доступны под специальными системными именами:
Указатель | Описание содержимого |
---|---|
lastobject | Последний использованый (двойным щелчком мыши) обьект |
lasttarget | Последний обьект, на который был наведён прицел (одинарный щелчок мыши в режиме прицеливания). Помните, что макрос Target Next клиента не оказывает влияния на lasttarget в Injection. |
backpack | Текущий бекпак вашего персонажа |
lastcontainer | Последний контейнер открытый сервером для вас |
laststatus | Последнее существо, на которое была запрошена информация о здоровье (см.
так же getstatus). Это происходит например если вы используете встроеный
в клиент макрос Target Next. При включеных установках внизу закладки
Display имя и здоровье существа пишется в консоли, например: a pack horse 100/100 HP <-17y> |
lastattack | Последнее существо, которое вы атаковали |
lastequip | Последний обьект, который был перемещён командами equip, equipt, unequip |
lasthorse | Последний обьект, использовав который вы оказались верхом. Может быть
это не лошадь но всё же скорее всего это так :) Если вы собрались использовать этот указатель, то не забудьте включить Permit vars loopback на закладке Main иначе долго указатель на лошади не продержится. |
lastcorpse | Последний появившийся в области радиусом два экрана труп. |
finditem | Обьект найденый командой findtype. |
self | Ваш чар (персонаж). |
lasttargetkey | Не обьект но приравняный к нему в следствие размера числа. Это число - уникальный номер последнего прицела, который вы послали серверу клиентом. Полезен для экспертов и тех кто пользуется командой target. |
Если у вас включена опция Permit Vars Loopback (разрешение обратной связи к переменным) то в числе прочего команды использующие обьекты будут менять значение вышеперечисленных переменных, иначе они будут меняться только от действий клиента.
P.S. В стандартной версии Injection (не Yoko Injection) из всего вышеперечисленого работает только lastobject и lasttarget а о совместимости с EasyUO и речи нет.
Injection может использовать литералы изиуо для укзания обьектов, например:
,useobject URQOC
Таким образом совместное использование EasyUO с Yoko Injection позволяет использовать
лучшие стороны обоих программных продуктов. Пример обращения к Injection из
EasyUO: msg $,grab 7 #finditem $
Обратная связь может осуществляться с помощью журнала, команды 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 |
Обьект (object) - уникальная игровая динамическая единица хранящаяся на сервере. К ней можно обратиться с помощью серийного номера в шестнадцатеричном (0x...) и десятичном форматах, по имени добавленого в список обьекта, через указатели (если вещь особая), и через модификаторы если известно местонахождение и тип вещи.