Injection 
Форум где вы можете узнать больше: http://yoko.calpha.com/forum
Injection является весьма неплохой альтернативой для коммерческого
продукта UO Assist. Штука злая и багерская в умелых руках. Но, пожалуй, только
с использованием Injection можно написать толковый макрос на крафт.
Официальная страница: http://injection.sourceforge.net
Найболее распространённые причины отказа от запуска (ilpatch error)
описаны здесь: http://yoko.calpha.com/forum/index.php?t=msg&th=206
Конкретно для клиента 3.0.0c и YA MUU можете скачать этот
ilpatch.cfg
Кроме нескольких багфиксов основное направление работы сделать
его максимально удобным и полезным средством.

Сперва вам нужно скачать оригинальный Injection тут: http://sourceforge.net/project/showfiles.php?group_id=30523
На момент написания статьи последней версией была 0.3.30.4 (попробовать
скачать место1) (попробовать
скачать место2)
Затем скачайте это обновление, старый Injection.dll на всякий
случай сохраните. (Даже GLASSMAN уже понял, что сперва качать нужно тот
что написан выше!!!)
Скачать Injection.dll (zip-архив)
Скачать script.dll с автозагрузкой (zip)
Скачать исходники 303.22
Build 303.22
- Новые команды скриптов:
object - строка описывающая обьект (сериал, имя или указатель), по
умолчанию - ваш персонаж
linenumber - номер строки в журнале сообщений сервера, 0 - последнее
pattern - строковой образец поиска, например "weak from starvation"
* предупреждение1: ккординаты сейчас рассчитываются не олностью корректно;
каждый раз при повороте на ходу накапливается ошибка. Надеюсь скоро исправлю.
* предупреждение2: журнал один и тот же для всех скриптов; очистка его в одном
скрипте приводит к тому что он пуст и для других запущеных скриптов.
- UO.GetX([object]), UO.GetY([object]), UO.GetZ([object])
- возвращает координаты X Y Z integer (*)
- UO.GetLayer([object]) - возвращает слой обьекта string
- UO.GetGraphic([object]) - возвращает тип обьекта string
- UO.GetColor([object]) - возвращает цвет обьекта string
- UO.GetName([object]) - возвращает название обьекта (если известно;
пробуйте сперва использовать click для его получения) string
- UO.GetQuantity([object]) - возвращает количество обьекта в стопке
integer
- UO.GetDistance([object]) - возвращает расстояние до обьекта
(больший катет) integer (*)
- UO.LastMessage() - возвращает последнее сообщение, посланое
сервером (то же что и Journal(0)) string
- UO.GetDir([object]) - возвращает направленность обьекта integer
- UO.GetRun([object]) - возвращает статус бега обьекта integer
(не думаю что оно комуто нужно для других обьектов кроме игрока)
- UO.Poisoned() - отравлен ли персонаж integer
- UO.Hidden() - спрятался ли персонаж integer
- UO.Dead() - дохлость :) integer
- UO.StealthCnt() - текущее значение счётчика шагов стелса integer
- UO.Journal([linenumber]) - аозвращает указанную строку в журнале
сообщений, 0 то же что и LastMessage. Журнал содержит до 100 последних
сообщений. Очищается командой DeleteJournal. string
- UO.DeleteJournal() - очищает журнал (нет возвращаемого значения)
- UO.InJournal(pattern) - ищет указанную часть строки в последних
сообщениях сервера. integer
- UO.ObjAtLayer(layer) - возвращает сериал обьекта в указанном
слое string
названия слоёв (для всех команд со слоями):
- Rhand, Lhand, Shoes, Pants, Shirt, Hat, Gloves, Ring, Neck, Hair,
Waist, Torso, Brace, Beard, TorsoH, Ear, Arms, Cloak, Bpack, Robe,
Eggs, Legs, Horse, Bank
- Теперь правильно сохраняются расширеные кодировки
- Исправлено 2 глюка в отсчёте стелса
- Relay server IP теперь правильно записывается в лог
- Команда cast теперь работает с любыми частями названий и любыми обьектами
- Команда useskill теперь работает с любыми частями названий и любыми
обьектами
- Новый указатель обьекта lastequip - указывает на последний обьект
задействованый в equip, equipt, unequip
- Новый указатель типа lastequipgraphic - указывает на последний тип
обьекта задействованый в equip, equipt, unequip
- Новый указатель обьекта lasthorse - указывает на последний обьект,
задействовав который вы сели верхом. В большинстве случаев это лошадь :)
- Новый указатель обьекта self - указывает на свой персонаж
- Команды addtype и addobject теперь правильно работают со всеми
обьектами, типами и укзазателями.
- Новая команда forget object - удаляет обьект из памяти Injection
- Новая команда opendoor - ищет поблизости дверь и пытается её открыть
(предупреждение о координатах смотрите выше)
- Новая команда set переменная значение
список допустимых переменных:
- distance - расстояние на котором waittargetground ищет вещи значение=number
- lasttarget - устанавливает вручную значение lasttarget значение=object
- prefix - устанавливает символ командного префикса (по умолчанию ,
) значение=символ
- bankhack - включает банкхак значение=0 или 1
- safeequip - отключает проверки беопасности для команд equip значение=0
или 1
- Новая команда equip layer [object] - одевает указаный обьект (по
умолчанию выдаётся мишень) на указаный слой
- Новая команда equipt layer graphic - одевает обьект указаного типа
на указаный слой
- Новая команда unequip layer - снимает обьект с указаного слоя
- Команда getname переименована в click.
- Из скриптов теперь доступны команды: set forget equip unequip equipt
opendoor
Build 302.14
- Добавлено terminate all | script_name
Используйте all чтобы прекратить все скрипты или имя скрипта (процедуры)
которую хотите прервать.
- Добавлена поддержка внешнего фйла ключей UO, поддерживается формат uoinjection.
Таким образом добавлено около 30 новых кодировок. Теперь кодировки
могут добавляться легко - всего лишь добавить строку в UOKeys.cfg. (Если,
конечно, найти что именно добавить.)
- Отныне Injection может использовать литералы EasyUOв качестве сериалов и
типов!
Пример: ,usetype HND схавать фишстейк
Пример: msg $,grab 1 #findid $ берёт 1 предмет из стопки, найденой
EasyUO (синтакс макроса EasyUO)
- Теперь можно одновременно запускать несколько команд в одной строке если
они разделены ;
Пример: ,waittargetself;useobject bandage
- grab починен, правильно берёт стопки с земли
- Новые переменные сохраняются: TargXYZ, PoisonRevert, TrackWorld, ConColor,
UnsetSet которые соответствуют пунктам закладки Main.
- Исправлена ошибка вызывавшая появление exception в лог файле каждый запуск
- Добавлена кнопка URL на форум Yoko Injection назакладке Main (http://yoko.calpha.com/forum)
- Добавлено текстовое поле чтобы отображать доступную информацию о обьекте
в закладке Objects. Она отображает либо выделеный обьект, либо то на
что показали ,info или ,infotile. Совет: используйте
чтобы копировать данные прямо в скрипты.
- Добавлено ,massmove delay [maxquantity] Используйте её, затем перетащите
чтото. Все вещи такого же типа из этого же контейнера будут положены туда
же куда и первый предмет. Особо полезно для сортировки предметов по типу,
или вытаскивания предметов заданого типа из сумки, или заполнения сумки заданным
количеством предметов.
- Новый чекбокс Track world на закладке Main исправляет проблему
с неправильными параметрами вещей на земле. Лучше всего включить.
- Последний прицел на статике теперь хранится в lasttile и может быть
использован в infotile и waittargettile
- Новый описатель обьекта lastattack - указывает на персонаж, которого
вы последнего атаковали
- Новый описатель обьекта laststatus - указывает на персонаж, статус
которого вы получили последним
- Новый описатель обьекта backpack - указывает на ваш бекпак (осторожно,
не гарантирую)
- Отсчёт добавлен в заголовке окошка инжекта для emptycontainer
и massmove
- Новая команда infocolor [object] - возвращает цвет обьекта (может
быть использована для скриптов EasyUO)
- Новая команда easyobject object - возвращает литерал обьекта (может
быть использована для скриптов EasyUO)
- Новая команда getstatus object - запрашивает статус указаного игрока
- Новая команда getname object - кликает на обьекте чтобы высветилось
имя
- Новая команда concolor color - устанавливает цвет текста консоли
инжекта.
- Новая команда infotile [lasttile] аналог info только для статиков
типа деревьев, шахты or клеток воды.
Вывод совпадает со вводом waittargettile Выводит так же в тесктовое
поле закладки Objects так что можно копировать прямо в скрипт.
- Новая команда waittargettile (lasttile)|(tile [x] [y] [z]) посылает
целью статик типа деревьев, шахты or клеток
воды. Используйте infotile чтобы узнать параметры статика.
- Новая команда attack object - атакует обьект
- Ваш пароль НЕ отображается в лог-файле. Это сделано чтобы спокойно играть
в клубе (Запомните - только с билда 302.* Старым инжектом воруют пароли.).
- Теперь расстояние до перснажа показывается в < > когда получается
его статус (например при Target Next в клиенте)
- Исправлено пару мелких погрешностей в мишенях
- (Status bars fix на закладке Main:была попытка сделать панельки статуса
незакрывающимися, но увы)
- Разделитель альтернатив встроеной помощи | изменён на /, похоже
клиент игнорирует | внося путаницу в подсказку синтаксиса
- Новый чекбокс Unset before set на закладке Main. С ним меньше
глюков клиента, так как правильно запоминаются наборы одежды и оружия.
- grab теперь не пытается чтото поднять при отмене мишени
- Новый чекбокс Poison: bottle then obj на закладке Main. Если
на вашем шарде при Poisoning сперва запрашивается бутылка с ядом то включите.
- Исправлено отслеживание трупа при включённом Undead
- Исправлена ошибка в drop, при которой отрицательные относительные
координаты неправильно интерпретировались
Пример: ,drop 1 -1 -1 0 должен бросить 1 предмет из стопки которую
укажут клеткой выше персонажа (-1 и -1 означает мойX-1 и мойY-1)
- Ограничитель счёта вещей при buy и sell уменшьен с 50 до 40
Build 212.08
- Исправлено waittargettype
- Особая фишка Target XYZ на закладке Main чтобы мишени Injection были
точно такими же как у клиента (пофикшены макросы на инскрипт на АоПе)
- Новая комманда fontcolor dye/color/graphic_name, с параметром dye
показывается цветовой диалог
- Новый чекбокс Font color на закладке Main и кнопка Dye
- Правильно читаются некоторые переменные из конфига
- Пофикшено (как минимум частично) VarsLoopback но лучше пока чтто его не
трогайте
Build 212.05
- Encryption 2.0.3 добавлено!
- По многочисленным просьбам населения script.dll
лежит на сайте :)
- Injection-EasyUO преобразование serials-literals добавлено! (пасибочки
ncuomo)
- Добавлена поддержка lastobject и lastcontainer!
- Добавлено окно отображающее одетые вещи (кнопка Layers на закладке
Objects)
- Короче заголовок UO (теперь A/B пиется только усли A не равно B; броня
пишется если выше 4)
- Light чекбокс работает лучше
- Координаты игрока отображаются правильно (закладка Skills)
- Интерфейсы многих комманд изменены, сделаны компактнее и вообще перелопачены
(но конечно совместимы со старыми):
- комманды требующие object принимают: serial, или имя в списке,
или lasttarget, или lastobject, или lastcontainer
- комманды требующие graphic принимают: graphic, или имя в списке,
или lasttarget, или lastobject
- комманды требующие color принимают: номер цвета или имя в списке
типов (так что цвета теперь можно добавлять в список как типы)
- usetype type|lasttarget|lastobject [color]
- usefromground type|lasttarget|lastobject [color]
- useobject object|lastobject|lasttarget|lastcontainer
- waittargetground type|lastobject|lasttarget [color]
- waittargettype type|lastobject|lasttarget [color]
- waittargetobject object [object2]
- setreceivingcontainer [name|serial|lastobject|lasttarget|lastcontainer]
- setcatchbag [name|serial|lastobject|lasttarget|lastcontainer]
- Доработаны комманды:
- grab [quantity] [name|serial|lastobject|lasttarget]
- snoop [name|serial|lastobject|lasttarget|lastcontainer]
- info [name|serial|lastobject|lasttarget|lastcontainer]
- hide [name|serial|lastobject|lasttarget|lastcontainer]
- drop [quantity] [X Y Z] [object] теперь принимает и относительные
координаты. Пример: drop 1 1 0 0 кинет обьект клеткой западнее.
- poison object|it теперь применяет мишени в обратном порядке
(как на АоПе), а it использует ту же бутылку как мишень.
- setdressspeed delay_ms теперь влияет и на arm/disarm
- Добавлены новые комманды
- track [0|1] [X Y] пример: track 1 1328 2203 пример2:
track 0
- repbuy (проверяется... похоже не пащет на POL и по крайней мере
некоторых Sphere-ах)
- exec myfunction
- addtype type_name [graphic|lasttarget|lastobject]
- addobject object_name [serial|lastobject|lasttarget|lastcontainer]
- boxhack (может помочь удержать открытым следующий открываемый
контейнер)
- Есть возможность менять вид подсказки о противнике на закладке Display
- Новые параметры на закладке Main:
- FilterSpeech (аналогично ,filterspeech on|off)
- Undead (убирает паузу и Ч/Б экран при смерти)
- Verbose menu (в отключеном состоянии гораздо меньше сообщений
инжект в консоль особенно при крафте)
- Tracker (включает автотрек последнего вашего трупа :])
- Stealth counter (включает отсчёт шагов в стелсе)
- Corpses autoopen (автоматически открывает свежие трупы)
- Smooth walk (при поганом коннекте меньше лагов при хотьбе, но
легко сбивается визуальное положение игрока)
- SocksCap relay fix (перенаправлят пакеты на localhost; для програм
типа HTTPport)
- No client hung message (нет сообщения "а не повис ли клиент?"
для юзеров паршивых сфер)
- Permit vars loopback (с этой опцией команды инжекта действуют
на сам инжект т.е. waittarget примет прицел от info,hide... Кроме того
команды будут обновлять lastobject, lasttarget)
- setcatchbag подправлен (так ли? проверить бы) и убраны задержки
(временно?)
- Комманды filterspeech, track, repbuy, addtype, addobject, boxhack экспортированы
в скрипты
- Исправлены некоторые погрешности в двойних мишенях. Требуется отладка.
- Теперь сохраняются нормально: CharStat, FilterSpeech, Undead, MenuTalk,
Tracker, StlthCnt, CorpsesAutoOpen, SmoothWalk, SocksCap, VarsLoopback, NoHungMessage
- Всё ещё не сохраняется конфиг при выходе, звыняйте :( Технические
трудности с отладкой.
- Dead (статусна переменная) добавлена но пока не используется
- Ссылка на http://injection.sourceforge.net
добавлена (главная страница проекта, как минимум годичной давности)
- Чуток уменьшен (на цикл) лаг при использовании dressspeed
Build 210.26
- Доработана закладка Objects. Добавлены кнопки receivingcontainer,
setcatchbag и unset. Дабл клик на обьекте использует его. (Кнопка Target пока
не работает, используйте Wait&Target)
- Добавлена кнопка Reset на закладку Skills
- Добавлена возможность вешать более одной комманды на кнопку в закладке Hotkeys.
Разделяйте команды символом точки с запятой ";".
- На гланую панель выложен переключатель Light
- На гланую панель выложен переключатель Undead, во включеном положении
убирающий потемнение экрана "You are dead." при смерти
- На гланую панель выложен переключатель Verbose Menu, в выключенном
положении waitmenu и automenu на экран при работе почти ничего не пишут
- На гланую панель выложен переключатель Filterspeech
- Координаты персонажа показываются (временно) на закладке Skills.
Пока что координаты вычисляются ненадёжно.
- Почти все внутренние команды инжекта связанные с мишенями теперь используют
типы обьектов. Один из результатов - usetype правильно работает с Bowcraft.
- Несколько мелких правок. Гдето начало при старте появляться исключение,
будем бороться.
Build 210.14
- Переработана закладка Objects. Расширена функциональность и увеличена
в размерах. Новые кнопки применяют указанные на них команды к выделеному в
списке обьекту. (Кнопка Target пока не работает)
- В системы работы с меню waitmenu и automenu добавлены универсальные
выборы:
- (last) выбор последнего пункта в меню
- (random) выбор случайного пункта в меню
- (№) выбор пункта в меню с этим номером
- (cancelmenu) автоматически отменить меню
- Добавлен отсчёт шагов в стелсе
- Исправлена обработка вещей, валяющихся на земле. Теперь, наконец-то, видны
их правильные параметры и координаты.
- Расширена посылка мишеней - теперь инжект добавляет серверу модель вещи.
(Для АоПовцев - это означает что на ласт таргет можно повесить боукрафт!)
- Расширено инфо опонента - там где раньше показывалось только здоровье, показывается
INT, DEX, Mana, Stamina и Armor Class, если сервер такую информацию предоставляет.
- Добавлена комманда filterspeech [on|off|info|clear|add] [text] которая
не пересылает клиенту текст сервера, который встречается в заданных шаблонах.
Шаблоны добавляются опцией add и записываются в файл конфигурации.
- on/off включает/выключает фильтр
- info выводит список фильтров
- clear очищает список фильтров
- add добавляет фильтр к списку
- remove есть но пока не работает
- Надписи трупов типа [1 items 0 stones] теперь меняют цвет в зависимости
от того, что написано
- Исправлены номера музыкальных инструментов в фильтре звуков
- Начата подготовка к именованым менюшкам одежды и вооружения: имена редметов
запоминаются, это можно увидеть в закладке Objects или в дампе вещей мира.
Build 210.06
- Новая дополнительная система работы с меню - комманда automenu prompt
choice
- выбор меню не нужно задавать каждый раз, он действует либо до комманды
waitmenu либо cancelmenu
- новое меню добавляется повторной коммандой automenu
- до 10 (можно расширить если надо) ожидаемых меню
- все выборы меню ожидаются одновременно
- меню из разных источников (например Polymorph, Tracking, Blacksmith)
не мешают друг другу
- Возвращена к исходному состоянию комманда buy
- В закладке скилов добавлен чекбокс "Show Real", теперь изменения
показываются правильно
- Добавлена комманда setdressspeed delay_ms, пока что работает плохо,
будем переходить на многопоточность
- Доработана комманда setcatchbag - не более 3х перемещений в секунду,
воизбежание неожиданных зацикливаний
- Начата кастомизация для разных шардов - добавлена комманда shard
(мало что пока делает)
- В фильтр звуков добавлены музыкальные инструменты
Так как скрипты это отдельный большой script.dll то желающие могут скачать
пока только изменение в исходнике.
- Добавлена автозагрузка скриптов.
- Поле ввода для запуска функции заменено на комбо-бокс с автозагрузкой списка
всех функций в текущем скрипте.
Build 209.27
- Добавлен скиллкап и статкап на закладке скилов
- Добавлен дамп скилов в клипбоард (на закладке скилов)
Build 209.23
- Добавлена закладка со скилами
- Добавлен автопоказ заглавий трупов (аналог auto show corpse name в UO Assist)
- Добавлен фильтр звуков (пока что туда занёс ржание лошадей, жду ваших предложений)
Build 209.16
- Пофикшено выпадание банка
- Пофикшено отключение счётчиков регов
- Частично пофикшена команда buy (уже, по крайней мере, покупает)
- Отключение таблички "пора платить" (destroy ser
- Новая комманда drop [количество] [X] [Y] [Z] [идентификатор предмета]
Может ещё что-то правил, если вспомню допишу.