- Исправлена работа стрелок вверх/вниз на закладке Display - Исправлено добавление сообщений из FilterSpeech в журнал инжекта - Изменена работа uo.InJournal(Pattern,[MaxLines/IgnoreCase]). Теперь если второй параметр указан -1 ведется поиск без учета регистра - Добавлена возможность поиска по дистанции в uo.FindMan([Notoriety],[Distance]) - Добавлена комманда uo.ColorPrint(color,text) - печатает в системный чат сообщение указанного цвета - Добавлена комманда uo.ChangeJournalLength(NewLength) - изменяет максимальное кол-во строк в журнале. При вызове этой комманды содержимое журнала удаляется - Добавлена комманда uo.WaitingForJournalText(MaxDelay,Text,[Equals],[IgnoreCase],[SkillName/ObjectID]) Работает по принципу uo.WaitingForMenu() MaxDelay - время в мс за которое должно появиться сообщение Text - текст, или наборы текста, разделенные символом "|" Equals - 0 - поиск фрагмента в пришедшем сообщении, 1 - точное соответствие строк (стандартно 0) IgnoreCase - 0 поиск с учетом регистра, 1 - поиск без учета регистра (стандартно 0) SkillName/ObjectID - название скилла или ИД объекта для использования (если требуется) - Добавлены наборы типов и цветов для поиска: - uo.AddFindList(ListName,Graphic,[Color]) - добавляет Graphic,Color в набор с названием ListName - uo.DeleteFindList(ListName,Graphic,[Color]) - удаляет Graphic,Color из набора с названием ListName - uo.ClearFindList(ListName) - полностью очищает набор с названием ListName - uo.FindList(ListName,[Container],[Distance],[Notoriety],[Nearest]) - осуществляет поиск по набору. Возвращает серийник найденного объекта. Так же он доступен в finditem и кол-во найденного в uo.findcount() ListName - название набора Container - где ищем (стандартно земля) Distance - дистанция поиска (стандартно 15) Notoriety - набор "злобности" для поиска. Может принимать как отдельные значения, так и набор значений, разделенных символом "|" (стандартно -1 поиск всех злобностей) Nearest - 1 - остановит поиск на первом найденном объекте, 0 - произведет поиск по всему списку предметов в памяти инжекта (стандартно 0) - Добавлена закладка Replaces и все её действия (возможна переработка под более расширенные возможности фильтра) - Добавлен константный хоткей Alt+Ctrl+Shift+F5 - отображает/скрывает окно инжекта. Работает только при активном окне УО, к которому привязан инжект (глобальный хоткей не стал делать, т.к. начали бы отображаться/скрываться все инжекты) - Добавлена опция запуска для инжекта /hideinj - не отображает окно инжекта при старте (можно восстановить хоткеем) - В лаунчер добавлена возможность запуска клиента с параметрами, пока что только /hideinj и /abysst для Абиссовского клиента (Абисст блокирует доступ к инжекту, в заголовке получается каша и много чего еще не приятного, что я еще даже не пытался фиксить) - Изменена работа скриптовой функции uo.FindType(Graphic,[Color],[Container],[Distance],[Notoriety],[Nearest]) (то что вызывается из хоткеев или _findtype осталось без изменений) Notoriety и Nearest - аналогично работе в uo.FindList() Возвращает серийник finditem
uo.AddFindList(ListName,Graphic,Color) только 1 тип за раз можно указать? Как по мне удобнее было бы в условиях указать строчку с типами, не люблю эти все адд*. Сколько строк в журнале сохраняется по умолчанию?
Incorrect User wrote:uo.AddFindList(ListName,Graphic,Color) только 1 тип за раз можно указать? Как по мне удобнее было бы в условиях указать строчку с типами, не люблю эти все адд*. Сколько строк в журнале сохраняется по умолчанию?
1 тип и соответственно его цвет. В автостарт сунь создание листа, или при запуске скрипта 1 раз, дальше наборы будут храниться в памяти инжекта пока принудительно не очистишь их, ну или до закрытия клиента. Умолчание 100, как и было. Дальше можно уже самому рулить ситуацией. Минимально 10, максимально 1000 строк может хранить журнал.
Перезахожу в уо, пишет Usage: addfindlist, Listname, color, запускаю скрипт, пишет Findlist finddanger is not found. Пробовал без кавычек делать, пишет variable undefined FINDDANGER
Обновил ссылку. Поправил работу uo.findtype() Сделал Color не обязательным параметром в uo.AddFindList() и uo.DeleteFindList(). Если цвет не указан - добавляются/удаляются для поиска все цвета.
Появилась еще потребность, например мы ищем дерево, их вокруг много, можно ли сделать опцию в findtype которая позволит, если нашли несколько искомых итемов, то в finditem выбирался тот который ближе всех к чару?
И ходилку сделай побыстрее, к примеру чар смотрит в одну сторону, а ему нунжо идти в противоположную, включаем ходилку и он не просто повернулся и идет, а повернулся в нужную сторону, небольшая задержка, пошел куда надо, и так при любой смене направления в принципе.
Incorrect User wrote:И ходилку сделай побыстрее, к примеру чар смотрит в одну сторону, а ему нунжо идти в противоположную, включаем ходилку и он не просто повернулся и идет, а повернулся в нужную сторону, небольшая задержка, пошел куда надо, и так при любой смене направления в принципе.
И добро пожаловать в бан за СХ)) Про поиск – помудрю, было в мыслях нечто подобное уже, но как–то ушло вникуда.
Ну в стелсе же ходит, и никого не банят. Что там не так как инжекте? На ровном месте, без препятствий, но вместо того чтобы идти наискосок он так бы и пришел куда надо, он пошел вверх и потом вправо.
Nearest - 1 - остановит поиск на первом найденном объекте, 0 - произведет поиск по всему списку предметов в памяти инжекта (стандартно 0)
На счет поиска, надо сделать так: Nearest - 0 - остановит поиск на первом найденном объекте, 1 - произведет поиск по всему списку предметов в памяти инжекта и вернет ближний к персонажу (стандартно 0)
;-------------------------------------------------------- ; Поиск персонажа на расстоянии "Distance" ;--------------------------------------------------------
Sub FindMan(Distance)
dim Sex[2] Sex[1] = '0x0190' Sex[2] = '0x0191'
var Index
for Index = 1 to 2 UO.FindType(Sex[Index], '-1', 'ground', Distance) if UO.FindCount() > 0 then return True end if next
. . . . for Count = 0 to FindDist while FindMan(Count) if fSkipGuild and (UO.GetNotoriety('finditem') == 2) then UO.Ignore('finditem') else return True end if wend next
return False
Все это можно заменить одной командой UO.FindMan([Notoriety], [Distance], [Nearest])
Для правильного поиска Distance приходится ставить на 1 больше чем надо, например при Distance=1 не находит итем на соседнем тайле, при Distance=2 находит.
И в отличии от findman функция uo.FindList не ограничена поиском исключительно людей, а ты можешь искать одновременно столько типов сколько нужно, например и людей и животных.
Incorrect User wrote:Или uo.findman удалить вообще и использовать только findtype и findlist. Их на мой взгляд более чем достаточно и универсально.
Исключено. Куча скриптов используют uo.findman(), существующие функции удалять не буду, просто будет актуальная замена им, с более расширенными возможностями. Большинство юзеров не смогут самостоятельно переписать скрипт с uo.findman() на что-то иное. В uo.findman() может прикручу Nearest. И в сл. релизе при Nearest равном -1 будет производиться поиск по всему списку, в finditem (как и в возвращаемом значении) будет самый ближайший предмет (если поиск производится на земле).
Для правильного поиска Distance приходится ставить на 1 больше чем надо, например при Distance=1 не находит итем на соседнем тайле, при Distance=2 находит.