Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (13): « 1 2 [3] 4 5 6 7 8 9 » В конец    

> Описание: Не могу понять как высчитывать координаты точек
Kibor
Отправлено: 02 Октября, 2013 - 10:12:36
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




 Nikolo12 пишет:
if (getcolor(P_T_X[0]+18, P_T_Y[0]+22)==1251183 && getcolor(P_T_X[0], P_T_Y[0]+37)==11057346 && getcolor(P_T_X[0]+1, P_T_Y[0]+37)==7637144 && getcolor(P_T_X[0]+1, P_T_Y[0]+38)==11649225)//Если моб в таргете и не убит


Да. Идет проверка первого пикселя XP и для верности наличия таблички по нескольким пикселям.

 Nikolo12 пишет:
Clic_Mouse(Fk_X[1], Fk_Y[1]);//Жмем F1 атака

Вызов процедуры Clic_Mouse(); ?
А если просто key(F1); ?


Это скрипт для линейки под фростом для 7 64.
Работает исключительно с мышью без аниантикликера, так как клавиатуру фрост не пропускает, а мышь на 7 64 работает.
key не сработает. функция Clic_Mouse() реализована в самом скрипте. Она кликает по координатам которые у нее в параметрах. в данном случае Fk_X[1], Fk_Y[1]. Это координаты кнопки F1 на панели в игре.
 
 Top
Barabachka
Отправлено: 02 Октября, 2013 - 17:28:58
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 88
Дата рег-ции: Сент. 2013  
Репутация: 3




 Kibor пишет:
Тут я не знаю. Скажу только что в чужом коде сложно разобраться, особенно если не все понятно. Лучше понять принцип работы Кибор и его языка и построить свой код.

Вот как раз я и пытаюсь понять как работает в данном случае.
 
 Top
Nikolo12
Отправлено: 02 Октября, 2013 - 20:21:56
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 8
Дата рег-ции: Сент. 2013  
Репутация: 0




 Barabachka пишет:
Вот эта строка не до конца мне понятна
CODE:
return 2; //Возвращием 2. Поиск дальше другим алгоритмом. Выход с перебора

это выход полностью с "function Ataka()" и переход на дальнейшую функцию зацикленую в теле программы?
Или может переход в дальнейшую строку функции в которой использовалась "function Ataka()" ?

Это выход из данной функции и возврат обратно к месту ее вызова.
Например
CODE:
if (Ataka()==1) {......}

идет обращение к функции function Ataka(), выполнение кода внутри нее пока не встретится return, возвращая обратно к Ataka().
Просто обычно сразу идет тело программы, а функции вне ее, как дополнительные библиотеки.
 
 Top
Barabachka
Отправлено: 03 Октября, 2013 - 16:13:37
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 88
Дата рег-ции: Сент. 2013  
Репутация: 3




Nikolo12 спс за разьяснение.
(Добавление)
Оператор return служит для выхода из функции и возврата в следующую строку от ее вызвавшей. Если return отсутствует функция выполняется до закрывающей фигурной скобки и управление возвращается в следующую строку от ее вызвавшей.
Если после оператора return находится возвращаемое значение, функция завершается и возвращается управление в строку ее вызвавшеую и она заново выполняется, только вместо вызова функции находится возвращаемое ей выражение стоящее после return.
Вот тут где текст красным мне не ясно
 
 Top
Nikolo12
Отправлено: 03 Октября, 2013 - 18:12:04
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 8
Дата рег-ции: Сент. 2013  
Репутация: 0




 Barabachka пишет:
только вместо вызова функции находится возвращаемое ей выражение стоящее после return.

Например
if (Ataka()==1) {......}
но программа не знает чему равно Ataka(), это неизвестное, черный ящик.
if (???????==1) {......}
Программа прыгает к функции с этим именем,
function Ataka()
...... //тело функции
return 2 //т.е. Ataka()=2, возврат обратно к if вместо ?????? двойку
И теперь Ataka() это уже не черный ящик а число 2. И выглядит это
if (2==1) {......}
 
 Top
Barabachka
Отправлено: 03 Октября, 2013 - 18:22:01
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 88
Дата рег-ции: Сент. 2013  
Репутация: 3




Спасибо теперь дошло)
 
 Top
Barabachka
Отправлено: 04 Октября, 2013 - 15:47:19
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 88
Дата рег-ции: Сент. 2013  
Репутация: 3




Вот еще вопросик)
Если допустим мне нужно переодически проверять ХП персонажа, бафать его, проверять ХП пета
CODE:
function Baf()//Тут баф перса
{
if (gettime()-t>1170000) {Clic_Mouse(Fk_X[10], Fk_Y[10]); sleep(rand(100, 200)); t=gettime();}//баф через 19,5 минут
}

Вобщем в коде будут присутствовать подобных несколько функций срабатывающих через разный промежуток времени. Если вот будет такая одна строка
CODE:
int [color=red]t[/color]=gettime();
они все не запутаютса во времени или их нужно назвать по разному ?
CODE:
int [color=red]B[/color]=gettime();
,
CODE:
int [color=red]XP[/color]=gettime();
 
 Top
Kibor
Отправлено: 04 Октября, 2013 - 17:03:50
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Если переменная объявлена в функции, то она видима только в ней.
То есть в разных функциях могут быть объявлены переменные с одинаковыми именами. Так же и с метками переходов.

Так же и то, что если переменная объявлена в функции, то ее нельзя будет использовать вне ее.


Так работать будет:
CODE:

if (f1()==1000){...}
if (f2()==2000){...}
if (f3()==3000){...}

////////////////////////////////////////////////////////////////////////////
function f1()
{
int t=gettime();
return t;
}

function f2()
{
int t=gettime();
return t;
}

function f3()
{
int t=gettime();
return t;
}

(Добавление)
PS.
Или я не понял наверно вопрос...

Если интересует такой код:
CODE:
int t;
//код
t=gettime();
//код
t=gettime();
//код
t=gettime();


То в t будет то что запишется в данный момент...

А так:
CODE:

//код
int t=gettime();
//код
int t=gettime();
//код
int t=gettime();

Нельзя делать. Это объявление переменных с одним именем.
 
 Top
Barabachka
Отправлено: 04 Октября, 2013 - 20:22:19
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 88
Дата рег-ции: Сент. 2013  
Репутация: 3




Меня сбило с толку вот это сообщение обсуждение про бафера в Л2
Перебрав форум и учебник пришол к такому заключению, если я неправ просьба поправить и простенький пример желательно в реализации кода, заранее спасибо.
Так как у меня будет несколько "gettime()" а инт обьявляет переменную значит название переменной должно быть разным
CODE:
int t=gettime();//время бафа

CODE:
int b=gettime();//время проверки хп

CODE:
int c=gettime();//время скана ориентира

Вот простенькая функция бафа
CODE:
function Baf()//Тут баф перса
{
if (gettime()-t>1170000) {Clic_Mouse(Fk_X[10], Fk_Y[10]); sleep(rand(100, 200)); t=gettime();}//баф через 19,5 минут
}

t, b, c -переменные
если я так их просто задам в коде не будет отсчета сначало 1 переменной за ней 2 и так далее по очереди?

(Отредактировано автором: 04 Октября, 2013 - 20:26:29)

 
 Top
Kibor
Отправлено: 04 Октября, 2013 - 21:20:14
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




 Barabachka пишет:
если я так их просто задам в коде не будет отсчета сначало 1 переменной за ней 2 и так далее по очереди?

Не понял...
gettime() возвращает число равное милисекундам с момента запуска ПК...

То есть к примеру такой код:
 Цитата:
int t=gettime();//время бафа
int b=gettime();//время проверки хп
sleep(1000);
int c=gettime();//время скана ориентира


Будет равен ну к примеру так:
 Цитата:
int t=158943;//время бафа
int b=158943;//время проверки хп
int c=159943;//время скана ориентира







Так будет работать...
CODE:
int t=gettime();
int b=t, c=t;
/////////////////////////////////////////////
a:;
//тело скрипта
Baf();
//тело скрипта
goto a;
////////////////////////////////////////////

function Baf()//Тут баф перса
{
if (gettime()-t>100000) {Clic_Mouse(Fk_X[5], Fk_Y[5]); sleep(rand(100, 200)); t=gettime();}////время бафа (бафнуться)
if (gettime()-b>200000) {/*делаем что то*/ b=gettime();}//время проверки хп (проверить хп)
if (gettime()-c>300000) {/*делать что нибудь*/ c=gettime();}//время скана ориентира (сканировать ориентир)
}



Только я не понимаю почему проверять хп к примеру надо по времени?
Его надо проверять каждый цикл. То же и ориентир...

CODE:
int t=gettime();
/////////////////////////////////////////////
a:;
//тело скрипта
Baf();
XP_prov();
ORIENTIR_prov();
//тело скрипта
goto a;
////////////////////////////////////////////

function Baf()//Тут баф перса
{
if (gettime()-t>100000) {Clic_Mouse(Fk_X[5], Fk_Y[5]); sleep(rand(100, 200)); t=gettime();}////время бафа (бафнуться)
}

function XP_prov()//проверить хп
{
//Проверяем хп и если надо что то делаем
}

function ORIENTIR_prov()//сканировать ориентир
{
//сканировать ориентир и если надо что то делать
}
 
 Top
Страниц (13): « 1 2 [3] 4 5 6 7 8 9 » В конец
Сейчас эту тему просматривают: 5 (гостей: 5, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by