Yoko http://forum.yoko.com.ua/ |
|
Function not found + полезности http://forum.yoko.com.ua/viewtopic.php?f=20&t=7379 |
Page 1 of 2 |
Author: | Destruction [ 2007-01-24 18:34:46 ] |
Post subject: | |
Приспичило наваять простенькую ожидалку сообщений с таймаутом. Зачем таймаут? - При потере пакетов просто необходимая вещь! Code: Sub WaitForMsg( msg, timeout ) |
Author: | Destruction [ 2007-04-26 19:51:09 ] |
Post subject: | |
Захотелось, подумалось. Написался поиск на определённых координатах. После поиска он сразу же снимаем временно повешенный игнор. Code: ; Поиск объекта на определённых координатах x1, x2, y1, y2 - соответсвенно координаты углов прямоугольника, в котором ищем. Пример пользования: Code: var res = LookAtTiles( "-1", "-1", "ground", 5576, 5579, 1862, 1859 ) |
Author: | Destruction [ 2007-05-27 19:55:19 ] |
Post subject: | |
Некоторое время пробывал работать с реестром - ставить ASM мне крайне не хотелось, а в цифрах (set|get)EasyUO я начал путаться. Включил мозг - вспомнил школу, вспомнил перевод из A > DEC, написал. Решил поделится: Code: ; Функция считывания переменных EasyUO. Работает так же как uo.getEasyUO за тем исключением, что аргумент - строка, а не число. Пример использования: Code: sub main() В скрипте использована функция возведения в степень, которая лежит в соответсвутющем топике: viewtopic.php?p=63274#63274 |
Author: | Mihail [ 2007-06-27 14:39:28 ] |
Post subject: | |
Code: Sub InfoHP(object) #функция возвращает кол-во хп врага в процентах |
Author: | Destruction [ 2007-09-02 01:28:45 ] |
Post subject: | |
Писал тут скрипт на БС.. написал пару ф-ций, может кому пригодится.. Некоторые ф-ции взаимосвязаны.. Code: ; поиск строки в подстроке Code: ; Аналог uo.injournal с доп. параметром Code: ; добор ресурсов Code: ; Закрытие клиента Ultima Online |
Author: | Destruction [ 2007-09-10 00:53:01 ] |
Post subject: | |
Это снова я Теперь я со скриншотами, хотя с ними я уже вроде был.. В этот раз я реализовал раскладывание скриншотов по папочкам, для наибольшего удобства. Code: ; Функция создаёт выбранную директорию, если такая ещё не существует Вроде неплохо извернулся учитывая неумение инжы работать с папками как таковыми.. Из минусов - я не помню как писать такое под вин98. Далее - две функции для определения даты / времени, вариант от mihail мне не понравился как минимум замещением стандартной ф-ции date на его: Code: ; Определение текущей даты Ну и непосредственно ф-ция создания скриншота, для которой все вышенаписанное писалось: Code: ; Destruction Примечание: при первом запуске на персонаже / шарде будет небольшая задержка перед созданием первого скриншота. PS: Injection пока не умеет сохранять скриншоты в JPG, а у меня в БМП они весят по 5мб, поэтому всем у кого проблемы с местом могу посоветовать заглянуть в гугл: http://www.google.ru/search?hl=ru&q=com ... verter&lr= и использовать для последущей конвертации одну из найденных программ (я использую ImageMagick, т.к. привык, новичкам будет непросто освоить). Но это собственно говоря сами. |
Author: | Mihail [ 2008-01-04 21:56:18 ] |
Post subject: | |
Иногда возникает проблема чистки реестра от значений EasyUO, но поскольку в инжекте такая возможность не предусмотрена приходится придумывать из раздела "сделай сам".. утилитка (зеркало) для удаления заданных ключей ИзиУО - кидаем в C:\WINDOWS\system32 и запускаем из инжекта: Code: uo.exec("launch rmEasyUO 100") ; где 100 имя ключа |
Author: | Mihail [ 2008-01-07 04:13:54 ] |
Post subject: | |
иногда в инжекте не хватает возможности передвигать курсор мыши на заданные координаты, эта улилитка вам в этом поможет. Скачиваем, кидаем в папку C:\WINDOWS\system32, далее в инжекте Code: uo.exec("launch SetCursorPos 555,444") ; где 555 - координата X, 444 - Y соответственно ВНИМАНИЕ!!! для корректной работы необходимо указывать АБСОЛЮТНЫЕ координаты (на вкладке скриптового модуля в инжекте определяются относительные), абсолютные координаты можно узнать в UOPilot'е ---- update абсолютные координаты можно так же определять утилиткой в след. посте |
Author: | Mihail [ 2008-01-07 15:54:45 ] |
Post subject: | |
утилита для определения абсолютных координат как всегда кидаем в папку c:\windows\system32 Программа при запуске копирует текущие координаты мыши в буфер обмена и вырубается Code: uo.exec("launch GetCursorPos") ; пример использования функции получения абсолютных координат далее в скрипте Ctrl+V ---- Использование: вставляем скрипт Code: sub uoCopyCursorPos() далее делаем хоткей Code: exec uoCopyCursorPos наводим мышь куда нужно и запускаем с хоткея, затем в скрипте нажимаем "Paste" или Ctrl+V |
Author: | Mihail [ 2008-01-07 16:50:06 ] |
Post subject: | |
утилита для копирования вашего текста в буфер обмена Code: uo.exec("launch ClipboardSetText йа_криведко") ; пример использования копирования текста в буфер обмена - внимание НЕЛЬЗЯ ИСПОЛЬЗОВАТЬ ПРОБЕЛЫ использование в инжекте: Code: sub uoCopy(Text) пример что с этим можно сделать: аналог uo.info, только с мелкими доработками, в числе которых автоматическое копирование в буфер типа предмета Code: sub uoInfo() |
Author: | Mihail [ 2008-01-07 21:21:58 ] |
Post subject: | |
Написал улучшенный Drag Как всегда кидаем в system32 И внимательно читаем как использовать. uo.exec("launch uoDrag x,y,x1,y1,delay,steps") x,y - координаты отправной точки (не забывает - абсолютные) x1,y1 - координаты точки прибытия так же опционально (не обязательно) можно задать: delay* - задержка после перетаскивания курсора перед "отпусканием" кнопки мыши steps - если нужно чтобы мышка перетаскивалась медленно, то задав этот параметр программа просчитает промежуточные точки остановки (вы задаете количество точек - чем больше, тем медленнее) - точки рассчитываются по кратчайшему расстоянию - тоесть по прямой. * в случае, когда задан параметр steps, delay - это время ожидания после каждой точки - оптимально 10-500 Code: uo.exec("launch uoDrag 280,740,880,350,100,10") если надо быстро переместить, то Code: uo.exec("launch uoDrag 280,740,880,350,20") Не рекоммендую совсем убирать задержку (хотя технически это можно) т.к. предмет\гамп и т.д. может просто не успеть "захватиться" Так же не забываем, что никаких пробелов в передаваемых параматрах быть не должно.. (на случай если кто невзирая на мою определялку координат будет всеравно вставлять их из пилота - он ставит пробел после запятой ) И проверок от дурака тоже не много так что если кому вдруг придет в голову указать 2 соседних пикселя и поставить интервал в 100 шагов, то 98 шагов курсор будет стоять на месте.. и все в таком духе.. |
Author: | Mihail [ 2008-01-08 00:01:08 ] |
Post subject: | |
утилитка для открытия гиперссылок (в том числе и локальных) Как всегда кидаем в C:\Windows\system32 Далее запускаем из инжекта, передавая в качестве параметров адрес ссылки. Работает аналогично проводнику. Code: uo.exec("launch OpenLink http://uo.com") Code: uo.exec("launch OpenLink C:\") send mail (mailto:123@123.com) etc. и помните - никаких пробелов в параметрах |
Author: | Mihail [ 2008-01-09 01:02:48 ] |
Post subject: | |
утилитка для запуска приложений на заданном процессоре\ядре процессора (зеркало) Если надо запустить определенное приложение на определенном ядре многоядерного процессора. Кидаем в c:\windows\system32 синтаксис использования: Code: [путь к запускаемому приложению],[номер ядра] Code: uo.exec("launch DualCore_Launcher D:\GAMES\UO\client.exe,1") Чтобы рулить двухъядерными процессорами: 1 - первое ядро, 2 - второе, 3 - оба Так же не стоит забывать что не должно быть пробелов в пути к запускаемому файлу.. |
Author: | Destruction [ 2008-02-15 01:32:22 ] |
Post subject: | |
Сортировка массива по алфавиту. Code: Sub sort( arr, len ) Пример использования: Code: sub main() |
Author: | Scripts Writer [ 2008-05-03 22:34:09 ] |
Post subject: | |
I'm wrote: Code: sub time(jor,n) Code: sub time(jor,n) |
Author: | Millerbeer [ 2008-09-27 23:55:41 ] |
Post subject: | |
I'm wrote: Время и дата в нормальном формате (inside) by Mihail в функцию time надо тоже воткнуть проверку на длину строки 5 и дописку нуля вначале, без неё часы с полуночи до10 утра не ходят Code: sub main() где jor - это время\дата в формате числа, а n - нужный вам разделитесь. Code: sub date(jor,n) Code: sub time(jor,n) Code: sub time(jor,n) вот так нормально время показывает |
Author: | Beyonder [ 2010-02-06 12:33:34 ] |
Post subject: | Re: Function not found + полезности |
Работа с наборами (Set). Отличаются от массивов тем, что намного быстрее выполняет функции add и delete (практически моментально) и хранит только уникальные значения. Code: ### SETS К примеру я применил его в скрипте на списки игноров: У меня часто бывает что два скрипта должны игнорить разные вещи, при этом иногда их резетить. К примеру скрипт на подсчёт точного количества шмоток в указанном контейнере должен игнорировать найденные шмотки, а потом их все резетить. Но он может зарезетить переменные другого скрипта, что есть плохо. Поэтому можно использовать это: Code: ### IGNORE LISTS Пример использования: Code: sub testIgnoreList() |
Author: | Beyonder [ 2010-07-10 09:59:01 ] |
Post subject: | Re: Function not found + полезности |
Улучшенный вариант explode-а, заполняет частями массив. Code: Sub explodeToArr( string, pattern, arr, arrlength ) |
Author: | Blood Slayer [ 2011-01-26 14:19:11 ] |
Post subject: | Re: |
Destruction wrote: Ещё пачка свеженаписанных полезностей с использованием недавно найденной фичи (описал в разделе FAQ). Полезности используют друг-друга, так, что с ошбками вроде "Function not found" - не приставать -) Итак, функция первая -) Проверяет - есть ли в переданном массиве переменная. Если нет - возвращает -1, если есть - порядковый номер элемента массива. Если вместо массива передать строку, а вместо строки - один символ, то функция вернёт первое вхождение символа в строке. Регистронезависимый поиск работает значительно медленее, используйте только при острой необходимости! Code: ; int inArray( string, array, bool, int ) Собственно ещё две функции - StrToUpper и StrToLower, соответсвенно переводят переданную строку в верхний или нижний регистр. Работают медленно, поэтому в режиме реального времени - не получится. Может пригодится для разовых преобразований. Функции UpperWords и LowerWords возвращают массивы с русскими и англискими буквами соответствующего регистра. Чтобы всё сработало корректно - в функцию необходимо передать массив размером не менее 59 элементов (смотри функции StrToLower и StrToUpper). Code: sub StrToLower( str ) Вот это вообще меня убило, решил переписать инжект. To Yoko Выдай исходники, будем внедрять все "важные" функции внутрь |
Author: | Mirage [ 2011-01-26 16:06:29 ] |
Post subject: | Re: Function not found + полезности |
ИМХО если выкинуть исходники то погибнет то немногое что еще хоть как то шевелится. Шарды с онлайном >300 можно пересчитать по пальцам. В основной масса от 2 (админ-игрок) до 30. А если все про инжект будет доступно всем то будет читинг и коррупция... Хотя это мое мнение. PS давно бы уже надо было выложить сурсы последнего инжекта - году в 2008 новый улучшенный инжект был бы готов. |
Page 1 of 2 | All times are UTC+02:00 |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |