Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » не компилится

Страниц (1): [1]
 

1. vasal - 17 Ноября, 2018 - 09:52:50 - перейти к сообщению
/*Подробное описание на форуме:(для просмотра ссылки Вам необходимо авторизоваться) Бот для RF Online. Для фришек. Тестировалось на pvpwar.net.
Игра в окне. Разрешение игры 1024/768. Всю анимацию и эфекты отключить. Вид подбирать сверху с уклоном примерно 45. Зависит от мобов и ситуации.
Чем выше камера, тем точнее сортировка по растоянию. Удаление камеры в несколько раз больше стандарта
Выбрать управление - клавиатура. На экране все закрыть что можно. Чат свернуть. Панель быстрого доступа тоже можно свенуть*/

int Cursor=26019425;//Индификатор курсора атаки. Узнать - навести на моба и нажать CTRL+SHIFT+S. Меняется при каждом запуске игры.
int tabX=456, tabY=76, tabColor=4539458;//Координаты и цвет пикселя на табличке выделенного моба. Узнать - навести на табличку и нажать CTRL+SHIFT+S.
int p=50;//Задержка мыши над мобом. Увеличить если курсор цвет не успевает менять.
int lyt=0;//Количество нажатий пробела. Сбор лута. Установить 0 если не нужен лут, так как занимает время.
int Mob_X=3, Mob_Y=5;//Размер крестика который должен быть весь динамичным. (Половинные размеры)
int Raz_Din_X=50, Raz_Din_Y=70;//Полный размер моба (Половинные размеры) В этом объеме больше не искать динамику.
int c_X=512, c_Y=416;//Координаты перса на экране. Примерно центр экрана под ногами.Узнать - навести на точку экрана и нажать CTRL+SHIFT+S
int payza_sravn=500;//Пауза между сравнением изображения игры для индификации очагов динамики. Увеличить если при поиске не находятся все мобы. Не успевает показать все меняющиеся пикселя.
int st_poisk_X=27, st_poisk_Y=146;//Левый верхний угол начала поиска в клиенте.
int fin_poisk_X=974, fin_poisk_Y=530;//Правый нижний угол окончания поиска в клиенте.
//Размеры Mob_X/Mob_Y и удаление камеры от перса подобрать так, чтоба в очаги не попадал лут и трава. Мобы должны попадать все.
//Размеры Raz_Din_X/Raz_Din_Y подобрать так, чтоб на каждый моб было по одной координате. Зависит от удаления камеры и размеров моба.

int x[21], y[21];//Масивы для координат центров крестиков Mob_X\Mob_Y динамичных очагов
int st=0;//Переключатель для смены (шаг вперед - шаг назад) Для торможения перса
int rz=0;//Счетчик пустых кругов. Кода не найден моб. Для разворота на 180 градусов
int k;//Количество найденых очагов динамики
int n, l;//Вспомогательные
/////////////////////////////////////////////
win w=window ("RF Online", "D3D Window", -1);//Указатель на окно игры

if (w!=0)//Игра есть
{
activate(w);//Активировать окно игры
sleep(500);
if (attach(w, 1)!=0)//Присоеденить поток игры для проверки курсора
{
lop: key(ESCAPE);//Нажать esc(все окна убрать если появились)
finddynamic(0, #x[0], #y[0], 0, 0, 0, 0, st_poisk_X, st_poisk_Y, fin_poisk_X, fin_poisk_Y, w);//Получить изображение игры
sleep(payza_sravn);//Пауза между сравнением для поиска изменений
k=finddynamic(21, #x[0], #y[0], Mob_X, Mob_Y, Raz_Din_X, Raz_Din_Y, st_poisk_X, st_poisk_Y, fin_poisk_X, fin_poisk_Y, w);//Получить изображение игры и сравнить с прошлым. Получить координаты динамичных очагов.

if (k>20){sleep(200);goto lop;}//Если более 20 очагов динамики. Шум. Сравнение повторить.

sort();//Сортировка по растоянию очаг-перс

////////////////Поиск и бой найденых мобов/////////////////////
n=0;
ck: if (n<k)//1//Цикл перебора очагов динамики
{
trusit_mouse(x[n], y[n]);//Потрусить мышью, что бы клиент среагировал и поменял курсор если под курсором моб

if (getcursor()==Cursor)//2//Если курсор принял тип атаки(над мобом)
{
mouse (LEFT);//Щелкнуть по мобу мышкой
sleep(50);

if (getcolor(tabX, tabY, w)==tabColor)//3//Если появилось окошко наверху что моб выделен
{
boi: key(SPACE);//Нажать пробел
sleep(50);
if (getcolor(tabX, tabY, w)==tabColor) goto boi;//Пока есть окошко нажимать пробел
l=0;
ty: if (l<lyt){key(SPACE);sleep(300); l++; goto ty;}//Сбор лута
rz=0;//Атака была. Счетчик разворота в ноль.
}
else//Сбой. Щелчок был но моб не выделился. Тормознуть перса чтобы не бежал
{
if (st==0){key(UP);st=1;}//Шаг назад(по очереди)
else {key(DOWN);st=0;}//Шаг вперед(по очереди)
}//3

goto lop;
}//2

n++;
goto ck;
}//1
////////////////////////////////////////////////

rz++;
if (rz>1)//Моб не найден 2 круга
{
rz=0;
mouse (MIDDLE);//Клик средней кнопкой. Разворот перса на 180
sleep(1000);
}


sleep(200);
goto lop;

attach(w, 0);//Отсоединить поток
}
}

//////////////ФУНКЦИИ//////////////
function trusit_mouse(int tx, int ty)//Потрусить мышью, что бы клиент среагировал и поменял курсор если под курсором моб
{
mousemove(tx+st_poisk_X+1, ty+st_poisk_Y, w);sleep(p);
mousemove(tx+st_poisk_X-1, ty+st_poisk_Y, w);sleep(p);
mousemove(tx+st_poisk_X, ty+st_poisk_Y+1, w);sleep(p);
mousemove(tx+st_poisk_X, ty+st_poisk_Y-1, w);sleep(p);
mousemove(tx+st_poisk_X, ty+st_poisk_Y, w);sleep(p);
}
/////////////////////////////////////////////////////////////////
function sort()//Сортировка по растоянию
{
int rast, rast1, rsX, rsY, n, n1, t_x, t_y;
n=0;
pr: if (n<k)
{
//////////
n1=k-1;
pr1: if (n1>n)
{
/////////
rsX=x[n1-1]-c_X; rsY=y[n1-1]-c_Y; rast=(rsX*rsX)+(rsY*rsY);
rsX=x[n1]-c_X; rsY=y[n1]-c_Y; rast1=(rsX*rsX)+(rsY*rsY);
if (rast>rast1)
{
t_x=x[n1-1];t_y=y[n1-1];
x[n1-1]=x[n1];y[n1-1]=y[n1];
x[n1]=t_x;y[n1]=t_y;
}
/////////
n1--;
goto pr1;
}
//////////
n++;
goto pr;
}
}
_________________________________________________________
при компиляции пишет повторение имени переменной key__k
как подлечить ?
2. Dantes3000 - 17 Ноября, 2018 - 11:41:24 - перейти к сообщению
У меня компилится нормально.

Powered by ExBB FM 1.0 Final