Собственно то, что получилось:
Описание:
number FindType(string)
Передаётся один параметр - в нём всё указываем, кроме findtype (как при обычном uo.exec('findtype')).
Возвращает идентификатор произведённого поиска.
number FindCount(number)
Передаём один параметр - идентификатор нужного поиска.
Получаем количество найденных элементов.
string FindItem(number,number)
Передаём два параметра: 1 - номер найденного предмета, 2 - идентификатор поиска.
Получаем ID найденного предмета.
1. В начало скрипта пишем такое:
Code:
var first_mem = 100000 ; стартовое число, для хранения результатов поиска.
2. Выполняем такой скрипт:
Code:
Sub main()
uo.setEasyUO(first_mem,"0")
endsub
Если во время выполнения скрипта Injection сообщил об отсутствии директории EasyUO в реестре - создайте директорию и выполните скрипт еще раз.
3. Если Вы хотите, чтобы результаты поисков были доступны в дальнейшем - пропустите этот пункт.
Переименуйте функцию из п.2 в "autostart" и включите галочку "Autostart" в закладке Injection Main, в таком случае информация о поиске после перезапуска Injection будет перезаписываться.
Больше для использования скриптов ничего не надо, сами скрипты:
Code:
Sub FindCount(tar)
return strlen(uo.getEasyUO(tar))/10
endsub
Sub FindItem(num,tar)
return MID(uo.getEasyUO(tar),num*10,10)
endsub
Sub FindType(find)
while uo.getEasyUO(first_mem-1) == "1"
wait(10)
wend
uo.setEasyUO(first_mem-1,"1")
var i, tmp=""
uo.exec("findtype "+find)
if uo.findcount() then
repeat
tmp = tmp + uo.getSerial("finditem")
uo.ignore("finditem")
uo.exec("findtype "+find)
until not uo.findcount()
for i=0 to strlen(tmp)/10-1
uo.ignore(MID(tmp,i*10,10),"off")
next
i = val(uo.getEasyUO(first_mem))+first_mem+1
uo.setEasyUO(i,tmp)
uo.setEasyUO(first_mem,str(val(uo.getEasyUO(first_mem))+1))
return i
else
return false
endif
uo.setEasyUO(first_mem-1,"0")
endsub
Пример, с использованием этих скриптов:
Code:
sub main()
var i
var s = FindType("'-1' '-1' 'backpack'")
if FindCount(s) then
for i=0 to FindCount(s)-1
uo.textprint(FindItem(i,s))
next
endif
endsub
Скрипт найдёт все вещи в бекпеке и запишет информацию в текстовое окно.
PS: Для тех, кто любит чистить реестр, путь в реестре: HKEY_CURRENT_USER\Software\EasyUO