Знаешь, у меня винды летают только так, тем более, я не себе ведь пишуEdred wrote:Как-нить сделай чистку реестра подходящей утилей (только не нортоном), потом дефрагментируй его - и, увидев насколько у тебя быстрее начнут работать винды, ты быстренько отучишься забивать реестр всякой дрянью...Destruction wrote:а реестр - очень важно, хранение результатов пока силой не убьют. Это будет многим полезно.
FindItem() - даёшь функцию!
Moderators: Murderator+, Murderator
-
Destruction
- Junior Expert
- Posts: 3221
- Joined: 2004-06-24 22:08:56
-
Destruction
- Junior Expert
- Posts: 3221
- Joined: 2004-06-24 22:08:56
-
Scripts Writer
- Posts: 2259
- Joined: 2005-04-19 18:00:29
- Location: Московская область
- Contact:
Destruction wrote:Собственно то, что получилось:
Описание:
number FindType(string)
Передаётся один параметр - в нём всё указываем, кроме findtype (как при обычном uo.exec('findtype')).
Возвращает идентификатор произведённого поиска.
number FindCount(number)
Передаём один параметр - идентификатор нужного поиска.
Получаем количество найденных элементов.
string FindItem(number,number)
Передаём два параметра: 1 - номер найденного предмета, 2 - идентификатор поиска.
Получаем ID найденного предмета.
1. В начало скрипта пишем такое:2. Выполняем такой скрипт:Code: Select all
var first_mem = 100000 ; стартовое число, для хранения результатов поиска.Если во время выполнения скрипта Injection сообщил об отсутствии директории EasyUO в реестре - создайте директорию и выполните скрипт еще раз.Code: Select all
Sub main() uo.setEasyUO(first_mem,"0") endsub
3. Если Вы хотите, чтобы результаты поисков были доступны в дальнейшем - пропустите этот пункт.
Переименуйте функцию из п.2 в "autostart" и включите галочку "Autostart" в закладке Injection Main, в таком случае информация о поиске после перезапуска Injection будет перезаписываться.
Больше для использования скриптов ничего не надо, сами скрипты:Пример, с использованием этих скриптов:Code: Select all
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) 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 endsubСкрипт найдёт все вещи в бекпеке и запишет информацию в текстовое окно.Code: Select all
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
не для новичков. Пишите уроки 6-7... а то планка uo.FindType, uo.UseObject выше не поднимается .
-
DerMeister =)
- Expert!
- Posts: 1032
- Joined: 2006-02-25 21:48:38
Edred wrote:Я думаю, тебе может помочь вот такая "фича" (кстати, я в своих скриптах это использую активно):Der wrote:Кстати, вопрос у меня есть: а почему бы не сделать так чтобы массивы можно было до сабов определять а то неудобно как-то...
DIM массив[размер], массив[размер]...
- задание массива. Обращение к элементам: имя_массива[номер_элемента]. Нельзя писать имя_массива1 = имя_массива2 для присвоения содержимого одного массива другому.
Обращение к отдельным буквам в строке - так же, как к эл-там массива:
переменная[номер_буквы]. Номер - от 0, в случае выхода за конец строки - ошибка.
Замечания по поводу массивов
Массивы можно передавать в качестве параметров функциям. При этом передается САМ массив, а не его копия!!! Т.е. все действия внутри функции над элементами массива будут производиться над первоначальным массивом. Возвращать массивы из функций НЕЛЬЗЯ!!!
А фича, по твоему, это то, что ты не знаешь? Я не телепат знать что ты знаешь или не знаешь. А передачу массива функции в качестве параметра можно использовать для создания виртуального глобального массива. В главной процедуре создаешь массив, в остальные функции, куда необходимо, передаешь параметром. Вот тебе и глобальный массив.Der wrote:Ну и где же сдесь "фича" ? Это я и так знаю...
-
Destruction
- Junior Expert
- Posts: 3221
- Joined: 2004-06-24 22:08:56