Yoko http://forum.yoko.com.ua/ |
|
FindItem() - даёшь функцию! http://forum.yoko.com.ua/viewtopic.php?f=4&t=7376 |
Page 1 of 2 |
Author: | Destruction [ 2006-04-15 22:48:21 ] |
Post subject: | FindItem() - даёшь функцию! |
Появилась хорошая идея - сделай функцию FindItem(), мы её вызываем, а она возвращает поочерёдно все найденные предметы последним FindType(). Зачем? А чтобы не игнорить - в скриптах на варку, просто незаменимая вещь! Это лёгкий вариант, грамотный вариант - сделать, чтобы FindType() возвращал идентификатор поиска, который задавать функции FindItem(), чтобы та брала результаты нужного поиска. Создание такой функции (по второму варианту) решит все проблемы совместного использования функций поиска вещей, а главное - это никак не отразиться на уже существующих скриптах. PS: Впринципе, можно продолжать извращаться - но мне надоело, хотя я с ультимой и завязал. |
Author: | DerMeister =) [ 2006-04-15 22:50:32 ] |
Post subject: | |
Кул... ![]() ![]() ![]() ![]() Меня услышали ![]() |
Author: | Destruction [ 2006-04-15 22:52:14 ] |
Post subject: | |
Der wrote: Кул...
![]() ![]() ![]() ![]() Меня услышали ![]() Хз, твоего топика в этом разделе не видел и тем более предложений, как решить данную проблему. PS: Я недавно постил несколько функций для создания псевдо-массивов. Я думаю те функции + глобальные переменные = скриптовое решение проблемы. Ща попробую. |
Author: | DerMeister =) [ 2006-04-15 22:55:11 ] |
Post subject: | |
Destruction wrote: Хз, твоего топика в этом разделе не видел и тем более предложений, как решить данную проблему.
Ну да, сорри, не на этом форуме постил ![]() ![]() ![]() ВОт она: http://pinject.darkuo.ru/forum/viewtopic.php?t=9 |
Author: | DerMeister =) [ 2006-04-15 23:02:07 ] |
Post subject: | |
Destruction wrote: PS: Я недавно постил несколько функций для создания псевдо-массивов. Я думаю те функции + глобальные переменные = скриптовое решение проблемы. Ща попробую.
Это ты про тему "глобальных" массивов? Пока что возникла только одна мысль: а что если одновременно будут запущены 2 скрипта... не получится ли так, что они будут конфликтовать и пытатся писать в одиндаковые глоб. переменные? |
Author: | Edred [ 2006-04-15 23:23:54 ] |
Post subject: | |
Der wrote: а что если одновременно будут запущены 2 скрипта... не получится ли так, что они будут конфликтовать и пытатся писать в одиндаковые глоб. переменные?
Дык голова скриптописателю нужна не только чтобы в нее есть. |
Author: | Destruction [ 2006-04-15 23:36:49 ] |
Post subject: | |
Edred wrote: Der wrote: а что если одновременно будут запущены 2 скрипта... не получится ли так, что они будут конфликтовать и пытатся писать в одиндаковые глоб. переменные? Дык голова скриптописателю нужна не только чтобы в нее есть. Верно мыслишь, я не глупенький - создам еще один массив, в который буду писать идентификаторы ![]() |
Author: | DerMeister =) [ 2006-04-15 23:37:36 ] |
Post subject: | |
Edred wrote: Der wrote: а что если одновременно будут запущены 2 скрипта... не получится ли так, что они будут конфликтовать и пытатся писать в одиндаковые глоб. переменные? Дык голова скриптописателю нужна не только чтобы в нее есть. Во, точняк... ![]() ![]() Кстати, вопрос у меня есть: а почему бы не сделать так чтобы массивы можно было до сабов определять а то неудобно как-то... |
Author: | Grin [ 2006-04-15 23:39:58 ] |
Post subject: | |
Ну так делайте кто мешает?;) |
Author: | Destruction [ 2006-04-15 23:42:54 ] |
Post subject: | |
Grin wrote: Ну так делайте кто мешает?;)
Так понимаешь - игнорить всё равно придёться. Надо кое, что проверить. Проверил. Игнорить придёться, и если вдруг в одно время будет вызвано сразу два поиска - то выдет дребедень. Шанс низкий - но есть. |
Author: | Grin [ 2006-04-15 23:50:00 ] |
Post subject: | |
и дураку ясно что нужно игнорить;) функция поиска останавлимвается на первом совпадении а анадо что бы было продолжение ![]() выход: калечить инжект;) |
Author: | DerMeister =) [ 2006-04-16 00:01:12 ] |
Post subject: | |
Destruction wrote: Проверил. Игнорить придёться, и если вдруг в одно время будет вызвано сразу два поиска - то выдет дребедень. Шанс низкий - но есть.
Лучшеб шанс был нулевой, т.к. геммор связанный с использованием промежуточных перменных несравним с тем геммором который будет есль случится дребедень ![]() |
Author: | Destruction [ 2006-04-16 00:03:23 ] |
Post subject: | |
Der wrote: Destruction wrote: Проверил. Игнорить придёться, и если вдруг в одно время будет вызвано сразу два поиска - то выдет дребедень. Шанс низкий - но есть. Лучшеб шанс был нулевой, т.к. геммор связанный с использованием промежуточных перменных несравним с тем геммором который будет есль случится дребедень ![]() Поверь, шана достаточно мал, что я врубил хоумсфер и отлаживаю скрипт. ![]() |
Author: | Grin [ 2006-04-16 00:06:00 ] |
Post subject: | |
шанс мал?;)) Да стой скоростью с которой файндтайп обрабатывает всего 50 элементов%) Шанс пересечься 0 если функция вызывается в одном потоке или хотябы последовательно... сделать синхронизацию как нех делать%) |
Author: | Destruction [ 2006-04-16 00:10:22 ] |
Post subject: | |
Grin wrote: шанс мал?;)) Да стой скоростью с которой файндтайп обрабатывает всего 50 элементов%)
Шанс пересечься 0 если функция вызывается в одном потоке или хотябы последовательно... сделать синхронизацию как нех делать%) Да мы и так синхронизируем -) я уже FindType() написал, остались мелочи ![]() |
Author: | Destruction [ 2006-04-16 00:46:45 ] |
Post subject: | |
Собственно то, что получилось: Описание: 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() Если во время выполнения скрипта Injection сообщил об отсутствии директории EasyUO в реестре - создайте директорию и выполните скрипт еще раз. 3. Если Вы хотите, чтобы результаты поисков были доступны в дальнейшем - пропустите этот пункт. Переименуйте функцию из п.2 в "autostart" и включите галочку "Autostart" в закладке Injection Main, в таком случае информация о поиске после перезапуска Injection будет перезаписываться. Больше для использования скриптов ничего не надо, сами скрипты: Code: Sub FindCount(tar) Пример, с использованием этих скриптов: Code: sub main() Скрипт найдёт все вещи в бекпеке и запишет информацию в текстовое окно. PS: Для тех, кто любит чистить реестр, путь в реестре: HKEY_CURRENT_USER\Software\EasyUO |
Author: | Grin [ 2006-04-16 00:52:24 ] |
Post subject: | |
"Убей свой реестр" ![]() |
Author: | Destruction [ 2006-04-16 00:58:03 ] |
Post subject: | |
Grin wrote: "Убей свой реестр"
![]() Гыгы, шустро ты успел. В скрипте ошибка была - я её правил, а реестр - очень важно, хранение результатов пока силой не убьют. Это будет многим полезно. |
Author: | Edred [ 2006-04-16 00:58:23 ] |
Post subject: | |
Der wrote: Кстати, вопрос у меня есть: а почему бы не сделать так чтобы массивы можно было до сабов определять а то неудобно как-то... Я думаю, тебе может помочь вот такая "фича" (кстати, я в своих скриптах это использую активно): Quote: DIM массив[размер], массив[размер]...
- задание массива. Обращение к элементам: имя_массива[номер_элемента]. Нельзя писать имя_массива1 = имя_массива2 для присвоения содержимого одного массива другому. Обращение к отдельным буквам в строке - так же, как к эл-там массива: переменная[номер_буквы]. Номер - от 0, в случае выхода за конец строки - ошибка. Замечания по поводу массивов Массивы можно передавать в качестве параметров функциям. При этом передается САМ массив, а не его копия!!! Т.е. все действия внутри функции над элементами массива будут производиться над первоначальным массивом. Возвращать массивы из функций НЕЛЬЗЯ!!! |
Author: | Edred [ 2006-04-16 01:02:27 ] |
Post subject: | |
Destruction wrote: а реестр - очень важно, хранение результатов пока силой не убьют. Это будет многим полезно.
Как-нить сделай чистку реестра подходящей утилей (только не нортоном), потом дефрагментируй его - и, увидев насколько у тебя быстрее начнут работать винды, ты быстренько отучишься забивать реестр всякой дрянью... |
Page 1 of 2 | All times are UTC+02:00 |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |