|
|
  |
Пожелания, Предложения по развитию сюда |
|
|
WKnight |
25.9.2013, 12:06
|
       
Разработчик UO Pilot'а
Сообщений: 1.639
Регистрация: 9.1.2006 Группа: Пользователи Наличность: 0
Пользователь №: 4.688

|
Цитата Кнайт, насколько реально прикрутить модульную адресацию к readmem? Цитата Артмани хитрый и может считывать адрес относительно начала дллки. Т.е. есть client.dll, в этой дллке есть некоторый адрес, скажем 0х00001234, относительно начала дллки в памяти. Так вот этот адрес зачастую будет статичный, а вот расположение client.dll будет плавать в памяти и надо будет искать очень много указателей. Артмани каким-то образом все адреса модулей сразу же достает и спокойно с ними орудует. Так пилот почти так и делает. Адреса найденые артмани подходят пилоту, сам же пользовал (IMG: style_emoticons/default/smile.gif) "Плавают" адреса, выделяемые приложением динамически, по мере надобности. Тут и в артмани будет мусор по старым адресам. Другое дело, что в артмани есть какие-то инструменты для махинаций с указателями. Цитата Где-то в этой темке был мой набросок полностью переработанного окна. Если несложно, напомни линк, а то тут 800+ постов уже, я искать притомился (IMG: style_emoticons/default/smile.gif) Цитата 3. Возможность компиляции скрипта в отдельный исполняемый exe (как это сделано в InqSoft) Вообще начало положено, но "компиляция" в прямом смысле этого слова врятли будет. Скорее мелкая оптимизация самого скрипта и прикрепление его к облегченной версии пилота.
|
|
|
|
WKnight |
25.9.2013, 13:45
|
       
Разработчик UO Pilot'а
Сообщений: 1.639
Регистрация: 9.1.2006 Группа: Пользователи Наличность: 0
Пользователь №: 4.688

|
Цитата(DarkMaster @ 25.9.2013, 9:33)  вот ссылка на пост. Только изображения уже нет... Быстро спохватились... В данный момент оно там есть, но я его уже пользовал малость еще тогда, так что не поздно (IMG: style_emoticons/default/smile.gif)  Цитата Кстати предлагаю в меню вставки клавиш убрать все односимвольные. В них все равно ошибиться не возможно. Да тогда либо все туда запихивать, либо никакие, а то сейчас английский капс зачем-то напихан... Листать долго, много бесполезного. То, что там есть, это по сути не символы, а сканкоды клавиш, и только те которые пилот должен уметь нажимать, хотя по-моему даже из них не все нажимает. Теоретически буквы можно достаточно легко вычеркнуть.
|
|
|
|
Zeleax |
17.11.2013, 11:06
|
        
ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010 Группа: Пользователи Наличность: 0 Из: Киев
Пользователь №: 13.093

|
С учётом общих замечаний и пожеланий )
WKnight, я уже неоднократно предлагал идею для findimage - добавить возможность искать изображения, заданные массивом, каждая строка которого содержит: X Y цвет_точки здесь X, Y - относительные координаты точки. В массиве может быть несколько точек, координаты которых произвольно разбросаны.
Идея и пожелание к реализации остается в силе.
Кроме того, добавляю новое пожелание, которое возможно позволит искать полупрозрачные объекты: если задать в каждой строке: X Y цвет_точки1 цвет_точки2 то проверять попадание цвета точки изображения в диапазон от цвет_точки1 до цвет_точки2 по каждому каналу RGB, как это сделано в <if x, y, color1, color2>
В любом случае появится альтернатива тасканию за скриптом файлов картинок, да и поиск значительно ускорится, если искать изображение по 2-4 разбросанным точкам, чего может быть вполне достаточно.
С учётом пожеланий DarkMaster: в команду findimage также добавить опцию задания соотношения между значениями каналов RGB для картинки в целом и допустимый процент отклонения от указанного соотношения ratioRGB(87,35,216, 10%) и начальное значение для каждого канала, которое сначала отнимается от цвета точки, а только затем уже происходит проверка соотношения каналов constRGB(21,120,67)
или просто: rationalRGB(21,120,67, 87,35,216, 10) Не забыть добавить проверку: если после вычитания constRGB значение канала стало меньше нуля, то принять его равным нулю.
В итоге получится: set $a FindImage (#StartX #StartY #EndX #EndY ($filename|%pointArray) %ResultArray [#type [#accuracy [#count [#deviation]]]] [abs][rationalRGB(cR,cG,cB, rR,rG,rB, %отклонения)] )) %pointArray - массив с данными точек для поиска- альтернатива указания имени файла
Если указан и массив с двумя границами цветов точек и rationalRGB, то производить обе проверки: - сначала проверить, что цвет точки попадает в диапазон указанный в массиве, а затем проверять соотношения каналов RGB. Также при этом проверка на deviation отключается (deviation = 0)
Сообщение отредактировал Zeleax - 17.11.2013, 14:05
--------------------
|
|
|
|
DarkMaster |
17.11.2013, 11:21
|
          
Модератор UOPilot
Сообщений: 9.745
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 29680
Пользователь №: 11.279

|
хотелось бы пояснить про константу отклонения. На данный момент у нас есть deviation, который вроде бы делает то же самое. Константа же в случае с контролем соотношения каналов в 1 очередь нужна для устранения погрешностей в расчете % отклонения. Поясню: есть цвет 100 50 25 под некоторым более темным фоном он принимает значение 50 25 12.5. Но вот незадача, цвет не может быть 12.5, а будет 12 или 13. Таким образом чистая пропорция не возможна. Данная же константа позволит задать диапазон, который будет расчитан ПОСЛЕ процентного соотношения каналов. Таким образом задав возможное отклонение, например, 2, нас устроит цвет 10-15.
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
Zeleax |
17.11.2013, 11:45
|
        
ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010 Группа: Пользователи Наличность: 0 Из: Киев
Пользователь №: 13.093

|
Я бы считал отклонение от соотношения несколько иначе: Например, задано соотношение 100:50:10 Фактически мы их имеем три: 100:50 = 2 100:10 = 10 50:10 = 5
Если попалась точка RGB(100,50,10), то это идеальный вариант.
Теперь попался более тёмный фон с помехами: 50:26:6
Проверяем соотношения: 50:26 = 1.92 50:6 = 8.33 26:6 = 4.33
Здесь отклонения от идеала будут: 2-1.92 = 0.08 10-8.33 = 1.67 5-4.33 = 0.67 тогда нам нужно задать отклонение 2, чтобы точка прошла тест на пригодность.
а могло быть и наоборот при другом изначально заданном соотношении: 26:50 = 0.52 6:50 = 0.12 6:26 = 0.23
Тут нужно ещё решить, как правильно задать процент отклонения. Получается, что чем меньше значения каналов, тем грубее получится соотношение.
Сообщение отредактировал Zeleax - 17.11.2013, 11:47
--------------------
|
|
|
|
DarkMaster |
17.11.2013, 12:19
|
          
Модератор UOPilot
Сообщений: 9.745
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 29680
Пользователь №: 11.279

|
Цитата Получается, что чем меньше значения каналов, тем грубее получится соотношение. это ключевой момент. именно поэтому я выбрал именно константу в виде простого отклонения RGB, т.к. она точно так же "грубеет" при уходе к черному. В твоем варианте мы получим очень низкую чувствительность. Кстати о чувствительности. % - не самая лучшая вещь. Она идейно правильная, но учитывая, что каналы имеют существенно бОльший диапазон, то я не уверен какими числами лучше его задавать. 100? 0-255? 0-65535? Какой диапазон позволит задать максимально чуствительно, но при этом не перемудрить и получить очень больших значений? Сообщение отредактировал DarkMaster - 17.11.2013, 16:36
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
HF-Trade |
22.11.2013, 16:59
|
  
Novice
Сообщений: 53
Регистрация: 18.3.2010 Группа: Пользователи Наличность: 0
Пользователь №: 12.576
Возраст: 32

|
Цитата(DarkMaster @ 17.11.2013, 13:19)  это ключевой момент. именно поэтому я выбрал именно константу в виде простого отклонения RGB, т.к. она точно так же "грубеет" при уходе к черному. В твоем варианте мы получим очень низкую чувствительность.
Кстати о чувствительности. % - не самая лучшая вещь. Она идейно правильная, но учитывая, что каналы имеют существенно бОльший диапазон, то я не уверен какими числами лучше его задавать. 100? 0-255? 0-65535? Какой диапазон позволит задать максимально чуствительно, но при этом не перемудрить и получить очень больших значений?
Я уже где то писал по этому поводу, слишком много ухищренией с диапазонами. Намного проще - Добавить функцию перегонки изображения - pixelformat Переводим (к примеру) в pf1bit.... А потом искать изображение намного проще. Можно даже по "весу".... Ну тут от задачи зависит. P.S. Выше предложил, добавить загрузку либ в реалтайм - существенно упростить работу с добавлением новых фич к пилоту, а так же даст возможность, другим людям, дополнять пилот необходимым функционалом. Ну и сам пилот можно разбить на либы - для работы с графикой\текстом\etc
|
|
|
|
DarkMaster |
22.11.2013, 18:23
|
          
Модератор UOPilot
Сообщений: 9.745
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 29680
Пользователь №: 11.279

|
Цитата P.S. Выше предложил, добавить загрузку либ в реалтайм - существенно упростить работу с добавлением новых фич к пилоту, а так же даст возможность, другим людям, дополнять пилот необходимым функционалом. Ну и сам пилот можно разбить на либы - для работы с графикой\текстом\etc Сейчас потихоньку ковыряю плюсы в паре с пилотом. Решил проблему реалтайма тупейшим батником на перезапуск. Оно вроде и неплохо бы и самим пилотом это реализовать, но пока проблем с этим меньше всего. В первую очередь хочется получить доступ к переменным прямой из дллки. По поводу разбиения пилота немного не понимаю смысла. Сейчас у нас считайте есть ядро. Как это мешает писать доп функционал другим людям дллками для работы с графикой\текстом\etc? Зачем само ядро то дербанить? Ну или было бы у нас несколько длл для работы, например, с графикой, то тогда можно было бы думать об их объединении. Но пока я не совсем понимаю ваших целей... Правда более чем допускаю, что просто не знаю каких-то существенных аспектов.
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
HF-Trade |
23.11.2013, 20:35
|
  
Novice
Сообщений: 53
Регистрация: 18.3.2010 Группа: Пользователи Наличность: 0
Пользователь №: 12.576
Возраст: 32

|
Цитата(DarkMaster @ 22.11.2013, 19:23)  Сейчас потихоньку ковыряю плюсы в паре с пилотом. Решил проблему реалтайма тупейшим батником на перезапуск. Оно вроде и неплохо бы и самим пилотом это реализовать, но пока проблем с этим меньше всего. В первую очередь хочется получить доступ к переменным прямой из дллки.
По поводу разбиения пилота немного не понимаю смысла. Сейчас у нас считайте есть ядро. Как это мешает писать доп функционал другим людям дллками для работы с графикой\текстом\etc? Зачем само ядро то дербанить? Ну или было бы у нас несколько длл для работы, например, с графикой, то тогда можно было бы думать об их объединении. Но пока я не совсем понимаю ваших целей... Правда более чем допускаю, что просто не знаю каких-то существенных аспектов.
К примеру, в пилоте нет функций для работы с инетом. Тот же пресловутый GET. Пишу либу с данной функцией. АПИ. Выкладываю. Теперь при необходимости получить что либо, с инета с помощью GET - Достаточно взять либу. В начале скрипта подцепить ее. И юзать внутри скрипта, в любом месте. В скрипте выглядеть это будет примерно так - include $inet (имя_либы) //цепляем либу func_dll $inet_get($inet, 'GET') //указатель на функцию :Start что то делает пилот set $page $inet_get('http://xxx')//юзаем функцию объявленную в длл ...... и в $page лежит исходник странички. P.S. Это как пример. - Пилот штука удобная, но иногда нехватает какойнить мелочи, и библиотечка в пару кб, решила бы данную проблему, без длительных ожиданий обновлений, или выдумываний велосипедов. Да и при обновлении самого пилота, думаю удобнее было бы разбить его на части, кода поди там уже и так много... Вот тут, даже пример есть, как добавить загрузку длл реал-тайм: http://www.sql.ru/forum/263950/podkluchenie-dll
|
|
|
|
HF-Trade |
24.11.2013, 19:30
|
  
Novice
Сообщений: 53
Регистрация: 18.3.2010 Группа: Пользователи Наличность: 0
Пользователь №: 12.576
Возраст: 32

|
Цитата(DarkMaster @ 24.11.2013, 8:07)  Дык это все и сейчас возможно с той лишь разницей, что для подцепления либы надо перезапустить пилот. И то только в том случае, если вы эту либу подсунули во время запущенного пилота. При запуске автоматически подгружаются все либы из папки plugins.
1. Никак не найду, где про этот функционал почитать более внятно, чем в ветке про обновления(там коротко, что вроде как есть такая фича.... и все.). 2. Из того, что прочел в той ветке, кратко написано, что можно подцепить только 2 функции с либы. Я правильно понял??? 3. И все таки, что мешает реализовать реал тайм, без бубна с перезапуском пилота?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|