Допутим персонаж танк, а кол дамага по нему нельзя взять как постоянное т.е. нужно постоянно сканировать через 1 секунду его хп и хилить если что.
Мне нужно поставить скан постоянно через 1 секунду и не привязывать остальные функции к этому скану
31. Barabachka - 04 Октября, 2013 - 13:57:14 - перейти к сообщению
32. Kibor - 04 Октября, 2013 - 14:21:33 - перейти к сообщению
То есть интересует работа в отдельном потоке от основной программы?
Потоки в Кибор не реализованы. Возможно потом сделаю.
В данном деле это и не надо. Можно просто вызывать проверку ХП в разных частях программы
Вот примерный скелет бота:
То есть просто проверяем хп во всех циклах программы которые затянуться могут.
Потоки в Кибор не реализованы. Возможно потом сделаю.
В данном деле это и не надо. Можно просто вызывать проверку ХП в разных частях программы
Вот примерный скелет бота:
Цитата:
//переменные....
////////////////Тело бота
a: баф();
проверка_хп();//его надо контролировать постоянно
if (поиск_моба()==1)//если найден моб
{
атака_моба();//эта функция может затянуться на время необходимое для убийства и сбора лута. поэтому в тело самой функции вставим опять проверка_хп();
}
goto a;
////////////////вызываемые функции
function баф()
{
if (gettime()-t>1170000) {Clic_Mouse(Fk_X[10], Fk_Y[10]); sleep(rand(100, 200)); t=gettime();}//баф через 19,5 минут
}
function проверка_хп()
{
if (getcolor(...)!=цвет_хп)Clic_Mouse(Fk_X[5], Fk_Y[5]);//бафнуть или еще что то...
}
function поиск_моба()
{
//Ищем моба.
если моб найде return 1;
если не найден return 0;
}
function атака_моба()
{
q:
проверка_хп();//его надо контролировать постоянно, поэтому мы его и тут проверяем
бьем моба
проверяем его хп
если убили
{
проверка_хп();//его надо контролировать постоянно, поэтому мы его и тут проверяем
собираем лут
return; //выходим с функции
}
goto q;// если не убили дальше бьем.
}
////////////////Тело бота
a: баф();
проверка_хп();//его надо контролировать постоянно
if (поиск_моба()==1)//если найден моб
{
атака_моба();//эта функция может затянуться на время необходимое для убийства и сбора лута. поэтому в тело самой функции вставим опять проверка_хп();
}
goto a;
////////////////вызываемые функции
function баф()
{
if (gettime()-t>1170000) {Clic_Mouse(Fk_X[10], Fk_Y[10]); sleep(rand(100, 200)); t=gettime();}//баф через 19,5 минут
}
function проверка_хп()
{
if (getcolor(...)!=цвет_хп)Clic_Mouse(Fk_X[5], Fk_Y[5]);//бафнуть или еще что то...
}
function поиск_моба()
{
//Ищем моба.
если моб найде return 1;
если не найден return 0;
}
function атака_моба()
{
q:
проверка_хп();//его надо контролировать постоянно, поэтому мы его и тут проверяем
бьем моба
проверяем его хп
если убили
{
проверка_хп();//его надо контролировать постоянно, поэтому мы его и тут проверяем
собираем лут
return; //выходим с функции
}
goto q;// если не убили дальше бьем.
}
То есть просто проверяем хп во всех циклах программы которые затянуться могут.
33. Barabachka - 04 Октября, 2013 - 14:44:05 - перейти к сообщению
Kibor пишет:
То есть интересует работа в отдельном потоке от основной программы?
Да наверно это то что я хотел сказать)
34. Kibor - 04 Октября, 2013 - 14:55:14 - перейти к сообщению
Barabachka пишет:
Да наверно это то что я хотел сказать)
Проанализируйте мой псевдо скрипт.
По аналогии с человеком выглядит так:
Перед поиском моба посмотрели на танк, если хп мало - его бафнули.
Нашли моба и начали бить, перед каждым ударом посматриваем на этого танка и если надо бафнули...
35. Barabachka - 05 Октября, 2013 - 13:01:24 - перейти к сообщению
Kibor пишет:
Проанализируйте мой псевдо скрипт.
Про танка это был просто пример, но затея действительно на несколько окон.
Надеюсь мне удастса реализовать это всё через мыш.
Но сейчас просто нет времени этим занятьса.
(Добавление)
Kibor пишет:
Перед поиском моба посмотрели на танк, если хп мало - его бафнули.
Нашли моба и начали бить, перед каждым ударом посматриваем на этого танка и если надо бафнули...
Нашли моба и начали бить, перед каждым ударом посматриваем на этого танка и если надо бафнули...
Скорей всего все так и будет.
36. Barabachka - 08 Октября, 2013 - 11:23:12 - перейти к сообщению
Добрался до следующего бота!)
Хочу реализовать игру в несколько окон на 1м компе.
Подскажите как мне настроить переключение между окнами, желательно фрагментами кода.
Набросок действий
В пати 2 дамагера и 1 бафер он и хил по совместительству.
Основное окно дамагер
Запускаю дд бить моба.
Прыгаю в следующее окно жму 1 клавишу (2 дд помогает 1му в атаке).
Прыгаю в 1е окно проверяю хп моба, своё хп.
Из этого всего мне интересно как мне записать кодом чтоб программа различала окна игры и как мне все настроить
Хочу реализовать игру в несколько окон на 1м компе.
Подскажите как мне настроить переключение между окнами, желательно фрагментами кода.
Набросок действий
В пати 2 дамагера и 1 бафер он и хил по совместительству.
Основное окно дамагер
Запускаю дд бить моба.
Прыгаю в следующее окно жму 1 клавишу (2 дд помогает 1му в атаке).
Прыгаю в 1е окно проверяю хп моба, своё хп.
Из этого всего мне интересно как мне записать кодом чтоб программа различала окна игры и как мне все настроить
37. Kibor - 08 Октября, 2013 - 13:01:46 - перейти к сообщению
Barabachka пишет:
Подскажите как мне настроить переключение между окнами, желательно фрагментами кода.
Тут смотрите. Было уже: Скрипт для нескольких окон
Переключаться между ними можно activate(w); Ну и сообщения слать окнам.
38. Barabachka - 08 Октября, 2013 - 13:29:07 - перейти к сообщению
Сори не глянул(
39. Barabachka - 10 Октября, 2013 - 07:52:21 - перейти к сообщению
Если боту прийдется управлять 3мя окнами или более, как быть с "function Pozicion_Image()". Ведь рисунки могут стоять в разных окнах на разных местах. Помогите примером и советом)
40. Kibor - 10 Октября, 2013 - 08:06:10 - перейти к сообщению
Barabachka пишет:
Если боту прийдется управлять 3мя окнами или более, как быть с "function Pozicion_Image()". Ведь рисунки могут стоять в разных окнах на разных местах. Помогите примером и советом)
Использовать длинные функции управления мышью, клавой, поиска изображений. Там где в конце указатель стоит.