Здравствуйте, гость ( Вход | Регистрация )

76 страниц V « < 34 35 36 37 38 > »   
Тема закрытаОткрыть новую тему
> Пожелания, Предложения по развитию сюда
Zeleax
сообщение 26.2.2013, 8:44
Сообщение #701


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



чек-бокс в настройках "Переименовывать пилот" - рядом сделать текстовое поле для указания нового имени окна, чтоб не лазить по конфигам.


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
BSW_rama
сообщение 27.2.2013, 9:48
Сообщение #702


****

Apprentice
Сообщений: 188
Регистрация: 28.1.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.728
Возраст: 32



я так понял что снимать данные с экрана это процесс долгий, но обрабатывать картинку быстро.. иначе как объяснить скорость findcolor, если тот же get color работает на порядок медленее?... и вот решил с помощью findcolor выполнить функцию getcolor, поставил диапазон 0-16777215... но обломко findcolor в масив пишет координаты, а цвет как бэ нет...
и так нужен get color который бы создавал порядковый масив (ага масив третьего уровня.. но мы обойдёмся двухмергым) формат вывода в масив такой %color[#x #y]color ну или просто %color[#a]color
где #x #y - порядковые координаты точек (шаг и зона задаётся в команде) color - цвет точки, или #a - порядковый нормер точки.
пример:
getcolor (0 0 500 500 100 100 %color Т) - в поле 0,0-500,500 с шагом 100 100 снять цвета в масив %color, Т - тип масива, скажем 1 это одномерный, 2 - двухмерный.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
EL-GReeN
сообщение 5.3.2013, 12:41
Сообщение #703


*****

Journeyman
Сообщений: 474
Регистрация: 18.7.2011
Группа: Пользователи
Наличность: 0
Из: Россия
Пользователь №: 13.815
Возраст: 32



send код кнопки
как нажать кнопку запятая(,)?


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
WKnight
сообщение 5.3.2013, 13:42
Сообщение #704


********

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



Баги постить только на форум, в личке буду их тупо игнорировать, ибо без обсуждения и без необходимой инфы для воспроизведения. Кроме того большая часть из них уже давно обмусолена на форуме.

Сообщение отредактировал WKnight - 5.3.2013, 13:43
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 9.3.2013, 13:50
Сообщение #705


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



Команда findcolor:
в результирующий массив добавить 3-колонку, в которой будет возвращаться цвет, найденный в данных координатах


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
xolost
сообщение 11.3.2013, 0:40
Сообщение #706


******

Expert
Сообщений: 517
Регистрация: 17.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.035



Понял я чего не хватает реально.
Какой-нить бряки для gosub, которая будет обнулять все активные ссылки.
Т.е.

Сейчас так:

Код
goto a3

:a1
if #a = 1
   goto a2
else
   gosub a2
end_if

:a2
return
goto a1

:a3
gosub a1


И как результат, в случае, если #a = 1, то на a2 мы вернемся в :a3, который нам уже не нужен, как оказалось, входе дальнейшей работы.

Соответственно, если сделать бряку, которая все помнящие уходы по госапу будет чистить, то получится так:

Код
goto a3

:a1
if #a = 1
   Break_return  //  название бряки от балды
   goto a2
else
   gosub a2
end_if

:a2
return
goto a1

:a3
gosub a1


И меня уже кинет туда куда нужно.

Уже 40 минут пытаюсь отследить, какой из госапов у меня подвисает в памяти, а в следствии этого рушится бот в одном месте. Логов у меня около 200 строчек, а найти пока не удалось. Бряка бы конечно порешала бы эту проблему.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 11.3.2013, 0:50
Сообщение #707


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



xolost
Если честно - ничего не понял \
Уверен на 99%, что здесь что-то лишнее накручено )

Вообще, считается хорошим стилем программирования не использовать goto без крайней надобности. Иначе в программах и чёрт ногу сломит (как и получается в данном случае).

Сообщение отредактировал Zeleax - 11.3.2013, 0:57


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
xolost
сообщение 11.3.2013, 1:09
Сообщение #708


******

Expert
Сообщений: 517
Регистрация: 17.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.035



Цитата(Zeleax @ 11.3.2013, 1:50) *

xolost
Если честно - ничего не понял \
Уверен на 99%, что здесь что-то лишнее накручено )

Вообще, считается хорошим стилем программирования не использовать goto без крайней надобности. Иначе в программах и чёрт ногу сломит (как и получается в данном случае).

В том и дело, что гото мне очень помогает, как и госап, потому приходится совмещать.
И откуда вообще такое убеждение, что если гото использовать, то плохой программист? Я совершенно не считаю себя плохим программистом(пока ещё не достаточно опытным, но не плохим), но ботов высококлассных уже сделал несколько(об этом свидетельствуют желания моих клиентов). И считаю что гото ОЧЕНЬ прекрасно вписывается в данный контент программирования.


А что именно не ясно? Не ясен пример, или не ясно пожелание?
Вот вы юзаете цикл for
когда нужно из него выйти - юзаете break

по сути тоже самое госап.
сделал ряд госапов, а потом вышел как-то иначе. И вот тут поможет обнулить память госапов - break2 какой-нить..
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 11.3.2013, 9:29
Сообщение #709


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



1) Я не говорил, что программист плохой. Я говорил, что использование goto не считается хорошим стилем программирования.
Это как построить дом из кирпичей, бутылок, банок, бумаги, а потом облицовать. Вроде и дом отличный с виду, свои функции выполняет, а потом начинаешь перестраивать и всё разваливается )

2) Из gosub нужно выходить только по return, и никак иначе.

Сообщение отредактировал Zeleax - 11.3.2013, 9:33


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
xolost
сообщение 11.3.2013, 9:42
Сообщение #710


******

Expert
Сообщений: 517
Регистрация: 17.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.035



Цитата(Zeleax @ 11.3.2013, 10:29) *

1) Я не говорил, что программист плохой. Я говорил, что использование goto не считается хорошим стилем программирования.

2) Из gosub нужно выходить только по return, и никак иначе.


1) (IMG:style_emoticons/default/smile.gif) Не буду спорить, может быть и не считается.

2) Вот тебе примерчик!
Идет человек по улице - у него задача доехать на автобусе до какой-то точки.
Идет идет - выполняя скрипт хотьбы.
Доходит до остановки, видит автобус, видит номер его и принимает решение сесть в автобус - госап.
Едет в автобусе постоянно проверяя не его ли остановка(т.е. сидит в цикле госапа и палит контору).
Но неожиданно, на него нападает другой пассажир и он вынужден уйти в битву. Значит, из предыдущего варианта он может ЛИБО сделать ретурн - по Вашему стилю, потом ждать когда в основной части скрипта прочитается строка с битвой. И потом как-то после боя суметь вернуться в автобус.
Либо, не теряя ни секунды, уходим по новому госапу в битву. Когда битва закончится, всё пойдет снова ок. Но может в битве что-то серьезное случилось(нам поломали голову и т.д.) и нам нужно вернуться к шапке в самое начало, где мы по новой подгружаем все системы и т.д. т.е. через гото уходим в шапочку. И вот 2 госапа остались не возвращенными и висят.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 11.3.2013, 9:58
Сообщение #711


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



Всё зависит от реализации.
У меня обычно реализуется так:
скрипт1:
- крутится бесконечный основной цикл движения и поиска мобов;
- постоянно проверяется:
а) состояние перса (атакован/неатакован)
б) близость мобов
Если перс атакован, то ныряем в gosub битвы, где устанавливаем глобальную переменную-флаг битвы, бьем моба до смерти, выходим по return.
Если моб близко, то атакуем моба и переходим на следующий круг цикла.
Если перс неатакован, но флаг битвы установлен, то собираем дроп и убираем флаг битвы. (Если атакован, то снова ныряем в битву. Это всё тот же общий цикл).
скрипт2: проверка уровня жизни перса. Если жизни мало - лечимся

Сообщение отредактировал Zeleax - 11.3.2013, 10:11


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
xolost
сообщение 11.3.2013, 10:22
Сообщение #712


******

Expert
Сообщений: 517
Регистрация: 17.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.035



Цитата(Zeleax @ 11.3.2013, 10:58) *

Всё зависит от реализации.
У меня обычно реализуется так:
скрипт1:
- крутится бесконечный основной цикл движения и поиска мобов;
- постоянно проверяется:
а) состояние перса (атакован/неатакован)
б) близость мобов
Если перс атакован, то ныряем в gosub битвы, где устанавливаем глобальную переменную-флаг битвы, бьем моба до смерти, выходим по return.
Если моб близко, то атакуем моба и переходим на следующий круг цикла.
Если перс неатакован, но флаг битвы установлен, то собираем дроп и убираем флаг битвы. (Если атакован, то снова ныряем в битву. Это всё тот же общий цикл).
скрипт2: проверка уровня жизни перса. Если жизни мало - лечимся


Вот всё в первую очередь зависит от размера скрипта. У тебя несколько скриптов, выполняют функции, а у меня один скрипт, выполняет 30-40 функций. И там объемы соответствующие, зато запустил один скрипт и всё работает, никакой головной боли(в итоге). И вот последняя деталька - этот обнулитель нужен....)))
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 11.3.2013, 10:26
Сообщение #713


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



Обнулитель, как узаконенное деление на ноль. Зачем пытаться исправить неверный код/логику_скрипта с помощью костылей? Если просто НУЖНО писать правильно


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 13.3.2013, 9:21
Сообщение #714


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



WKnight
Вроде писали, но напомню еще раз:
Добавь, плз, функцию GetKeyState, которая определяет состояние заданной клавиши. Возвращает: 1- если клавиша нажата, 2- только что была нажата, 0 не [была] нажата (как в getasynckeystate).
Чтобы можно было проверять состояние сразу нескольких клавиш просто перемножая несколько таких функций (как вариант).
Основа в Dephi- getasynckeystate
http://www.hackzona.ru/hz.php?name=News&am...le&sid=9011

Код
if GetKeyState("vk_space") = 1 AND  GetKeyState("0x10") = 1
  hint Сейчас нажаты Shift+пробел
end_if

Код
if GetKeyState(16) > 0
  hint Нажат (или только что был нажат) Shift
end_if


Сообщение отредактировал Zeleax - 13.3.2013, 9:35


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
xolost
сообщение 20.3.2013, 2:04
Сообщение #715


******

Expert
Сообщений: 517
Регистрация: 17.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.035



Не могу с уверенностью сказать что это так необходимо, но все равно предложу, а там уже сами решайте)

Дать возможность принтскрину скринить картинку не полностью. Т.е. оставлять в ней дыры(например белового цвета).
Поясняю.
Указываю делать скрин от x = 500 y = 500 в ширину 200 и высоту 200.
но примерно от 600 600 до 650 650 есть лишний элемент графический, который на скрине категорически не нужен. Поэтому, сейчас приходиться руками закрашивать фоном этот кусок. А было бы клёво, если бы можно было указать в команде принтскрина, какую область закрасить(причем несколько мест сразу) т.е. маркеровка - фон и не нужную часть.

Лично у меня вот какая ситуация сложилась, в игре поменяли половину графики и около 500 скринов пошли лесом... Скринил руками и нарезал и закрашивал лишнюю часть. И вот встроел в бота автоскринилку скринить часть нужной картинки, т.е. без лишнего куска, и потому 30% скринов получаются неудачными и нужно все равно руками их перескринивать. А если бы кусок автовырезан на фон, то 100% картинок будут удачными.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 20.3.2013, 20:28
Сообщение #716


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



Что-то я не улавливаю смысл этого. Где потом эти скрины используются, что обязательно нужно часть картинки закрашивать??

Сообщение отредактировал Zeleax - 20.3.2013, 20:28


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 20.3.2013, 20:36
Сообщение #717


***********

Модератор UOPilot
Сообщений: 9.745
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29681
Пользователь №: 11.279



А я все мечтаю о вызове рамочки и лупы для снятия картинки. Рамочку двигаешь, изменяешь размеры, а в лупе смотришь, чтобы все точно получилось...


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 20.3.2013, 20:46
Сообщение #718


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



Цитата(DarkMaster @ 20.3.2013, 21:36) *

А я все мечтаю о вызове рамочки и лупы для снятия картинки. Рамочку двигаешь, изменяешь размеры, а в лупе смотришь, чтобы все точно получилось...

Дак FastStone Capture это и так делает \
Зачем Кнайта напрягать на то, что и так работает, если лучше баги залатать или отсутствующий функционал добавить?

Сообщение отредактировал Zeleax - 20.3.2013, 20:46


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 20.3.2013, 21:15
Сообщение #719


***********

Модератор UOPilot
Сообщений: 9.745
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29681
Пользователь №: 11.279



Затем чтобы не страдать херней с 10 программами, а обходиться в пару кликов.

Пару месяцев назад так же писал о кнопке: "задаешь хендл родительского окна, задаешь нужный хендл, в скрипт вставляется готовый код поиска окна". Тоже зачем? Можно со сканером посидеть. Ну и сижу. Только смысл постоянно делать однотипные, а для кого-то и достаточно сложные, манипуляции, когда их можно решить парой кликов?


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 20.3.2013, 22:02
Сообщение #720


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



Не спорю - было бы приятно. Но если выбирать между закрытием всех багов и написанием данного функционала, то я бы выбрал первое )
Да и Кнайту это проще вышло бы.


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

76 страниц V « < 34 35 36 37 38 > » 
Тема закрытаОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 23.7.2025, 5:19
Designed by Nickostyle