Injection 2014 !

General Injection issues

Moderators: Murderator+, Murderator

Juicy Fruit
Posts: 820
Joined: 2011-06-11 19:54:23

Re: Injection 2014 !

Post by Juicy Fruit »

1403.02

Список изменений:
    - Исправлена работа стрелок вверх/вниз на закладке 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
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Injection 2014 !

Post by Incorrect User »

uo.AddFindList(ListName,Graphic,Color) только 1 тип за раз можно указать? Как по мне удобнее было бы в условиях указать строчку с типами, не люблю эти все адд*. Сколько строк в журнале сохраняется по умолчанию?
Juicy Fruit
Posts: 820
Joined: 2011-06-11 19:54:23

Re: Injection 2014 !

Post by Juicy Fruit »

Incorrect User wrote:uo.AddFindList(ListName,Graphic,Color) только 1 тип за раз можно указать? Как по мне удобнее было бы в условиях указать строчку с типами, не люблю эти все адд*. Сколько строк в журнале сохраняется по умолчанию?
1 тип и соответственно его цвет.
В автостарт сунь создание листа, или при запуске скрипта 1 раз, дальше наборы будут храниться в памяти инжекта пока принудительно не очистишь их, ну или до закрытия клиента.
Умолчание 100, как и было. Дальше можно уже самому рулить ситуацией.
Минимально 10, максимально 1000 строк может хранить журнал.
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Injection 2014 !

Post by Incorrect User »

В автостарт

Code: Select all

uo.AddFindList("Finddanger", "0x0190")

В скрипт

Code: Select all

uo.FindList("Finddanger", "ground", 28)

Перезахожу в уо, пишет Usage: addfindlist, Listname, color, запускаю скрипт, пишет Findlist finddanger is not found. Пробовал без кавычек делать, пишет variable undefined FINDDANGER
Juicy Fruit
Posts: 820
Joined: 2011-06-11 19:54:23

Re: Injection 2014 !

Post by Juicy Fruit »

Incorrect User wrote:uo.AddFindList("Finddanger", "0x0190")
А цвет куда дел? Все параметры обязательны. -1 для цвета задай
Incorrect User wrote:Перестал работать findtype, рабочий скрипт теперь не срабатывает.
Кхм, я проверял - работало, скинь фрагмент скрипта в личку, где это используется.
Juicy Fruit
Posts: 820
Joined: 2011-06-11 19:54:23

Re: Injection 2014 !

Post by Juicy Fruit »

Обновил ссылку.
Поправил работу uo.findtype()
Сделал Color не обязательным параметром в uo.AddFindList() и uo.DeleteFindList(). Если цвет не указан - добавляются/удаляются для поиска все цвета.
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Injection 2014 !

Post by Incorrect User »

а кстати, msg русское до конца не довели?
Juicy Fruit
Posts: 820
Joined: 2011-06-11 19:54:23

Re: Injection 2014 !

Post by Juicy Fruit »

Incorrect User wrote:а кстати, msg русское до конца не довели?
Оу, совсем забыл про это.
На неделе или на сл. выходных фиксану.
VeL
Posts: 44
Joined: 2013-08-09 00:13:57

Re: Injection 2014 !

Post by VeL »

- Добавлена закладка Replaces и все её действия (возможна переработка под более расширенные возможности фильтра)

В поле Original Text не дает написать больше 6 символов(((
VeL
Posts: 44
Joined: 2013-08-09 00:13:57

Re: Injection 2014 !

Post by VeL »

Не заменяет касты, например если написать в клиенте Kal Ort Por, то заменит, если кастануть, ничего не происходит...
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Injection 2014 !

Post by Incorrect User »

Появилась еще потребность, например мы ищем дерево, их вокруг много, можно ли сделать опцию в findtype которая позволит, если нашли несколько искомых итемов, то в finditem выбирался тот который ближе всех к чару?
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Injection 2014 !

Post by Incorrect User »

И ходилку сделай побыстрее, к примеру чар смотрит в одну сторону, а ему нунжо идти в противоположную, включаем ходилку и он не просто повернулся и идет, а повернулся в нужную сторону, небольшая задержка, пошел куда надо, и так при любой смене направления в принципе.
Juicy Fruit
Posts: 820
Joined: 2011-06-11 19:54:23

Re: Injection 2014 !

Post by Juicy Fruit »

Incorrect User wrote:И ходилку сделай побыстрее, к примеру чар смотрит в одну сторону, а ему нунжо идти в противоположную, включаем ходилку и он не просто повернулся и идет, а повернулся в нужную сторону, небольшая задержка, пошел куда надо, и так при любой смене направления в принципе.
И добро пожаловать в бан за СХ))
Про поиск – помудрю, было в мыслях нечто подобное уже, но как–то ушло вникуда.
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Injection 2014 !

Post by Incorrect User »

Ну в стелсе же ходит, и никого не банят. Что там не так как инжекте?
На ровном месте, без препятствий, но вместо того чтобы идти наискосок он так бы и пришел куда надо, он пошел вверх и потом вправо.
VeL
Posts: 44
Joined: 2013-08-09 00:13:57

Re: Injection 2014 !

Post by VeL »

Nearest - 1 - остановит поиск на первом найденном объекте, 0 - произведет поиск по всему списку предметов в памяти инжекта (стандартно 0)

На счет поиска, надо сделать так:
Nearest - 0 - остановит поиск на первом найденном объекте, 1 - произведет поиск по всему списку предметов в памяти инжекта и вернет ближний к персонажу (стандартно 0)

И прикрутить эту штуку к UO.FindMan()
VeL
Posts: 44
Joined: 2013-08-09 00:13:57

Re: Injection 2014 !

Post by VeL »

Incorrect User wrote:Или uo.findman удалить вообще и использовать только findtype и findlist. Их на мой взгляд более чем достаточно и универсально.


Хочу избавиться от кучи тупых циклов.

Вот кусок из поиска чаров:

Code: Select all

;--------------------------------------------------------
; Поиск персонажа на расстоянии "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

  return False

end sub

Code: Select all

  . . . .
  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])
VeL
Posts: 44
Joined: 2013-08-09 00:13:57

Re: Injection 2014 !

Post by VeL »

Code: Select all

uo.FindType(Graphic,[Color],[Container],[Distance],[Notoriety],[Nearest])

Для правильного поиска Distance приходится ставить на 1 больше чем надо, например при Distance=1 не находит итем на соседнем тайле, при Distance=2 находит.
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Injection 2014 !

Post by Incorrect User »

Ты кажется не понял что нового добавилось. В автостарт добавляешь

Code: Select all

uo.AddFindList("AnyName", "0x0190")
uo.AddFindList("AnyName", "0x0191")

И в скрипте нужно всего лишь одна строка, чтобы искать сразу и man и woman а именно

Code: Select all

uo.FindList("AnyName", "ground", 28)

И в отличии от findman функция uo.FindList не ограничена поиском исключительно людей, а ты можешь искать одновременно столько типов сколько нужно, например и людей и животных.
Juicy Fruit
Posts: 820
Joined: 2011-06-11 19:54:23

Re: Injection 2014 !

Post by Juicy Fruit »

Incorrect User wrote:Или uo.findman удалить вообще и использовать только findtype и findlist. Их на мой взгляд более чем достаточно и универсально.
Исключено. Куча скриптов используют uo.findman(), существующие функции удалять не буду, просто будет актуальная замена им, с более расширенными возможностями.
Большинство юзеров не смогут самостоятельно переписать скрипт с uo.findman() на что-то иное.
В uo.findman() может прикручу Nearest.
И в сл. релизе при Nearest равном -1 будет производиться поиск по всему списку, в finditem (как и в возвращаемом значении) будет самый ближайший предмет (если поиск производится на земле).

VeL wrote:

Code: Select all

uo.FindType(Graphic,[Color],[Container],[Distance],[Notoriety],[Nearest])

Для правильного поиска Distance приходится ставить на 1 больше чем надо, например при Distance=1 не находит итем на соседнем тайле, при Distance=2 находит.
Проверю.
Juicy Fruit
Posts: 820
Joined: 2011-06-11 19:54:23

Re: Injection 2014 !

Post by Juicy Fruit »

Incorrect User wrote:И в скрипте нужно всего лишь одна строка, чтобы искать сразу и man и woman а именно

Code: Select all

uo.FindList("AnyName", "ground", 28)
Две строки:

Code: Select all

uo.ignore('self')
uo.FindList("AnyName", "ground", 28)
Post Reply