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

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

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

> Описание: Нужна помощь
Nikanr
Отправлено: 29 Марта, 2021 - 16:19:22
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 231
Дата рег-ции: Март 2019  
Репутация: 5




Пытаюсь сделать ориентирование на мини карте. У нас есть позиции по x, y где:

587, 62 - центральная точка персонажа на мини карте
322, 191 - центральная точка персонажа в игре

Местность вокруг персонажа меняется при передвижении но эти координаты остаются неизменными. Передвижение осуществляется зажатием кнопки мыши относительно персонажа.(допустим зажали на 325, 209 - персонаж побежал в одну сторону и т.д) Так же в любом месте на мини карте может появиться картинка, путь её координаты на мини карте будут 597, 51. Вопрос: как посчитать координаты места для зажатия кнопки в игре, что бы при зажатии в этих координатах персонаж двигался в сторону этой картинки?
(Добавление)
Получилось что-то вроде этого, но работает только вперед и назад

CODE:
int x=0, y=0;

function smesh(int xs, int ys){

int cord[4]={587, 62, 325, 183}; //0 - x миникарта, 1 - y миникарта. Остальные 2 игра аналогично

x = (cord[0] - (cord[0] - cord[2])) + (cord[0] - xs)*2*-1;

y = (cord[1] - (cord[1] - cord[3])) + (cord[1] - ys)*2*-1;
}
 
 Top
Zireael
Отправлено: 30 Марта, 2021 - 03:36:06
Post Id



Пользователь
Эксперт


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




CODE:
external(INT, "abs", "abs", "msvcrt.dll");

int x, y;
int cord[4]={587, 62, 597, 51}; // координаты персонажа и картинки на миникарте
int cord_game[2]={322, 191}; // координаты персонажа в игре

int deltaX = cord[0] - cord[2]; // разница в координатах
int deltaY = cord[1] - cord[3]; // разница в координатах
deltaX = abs(deltaX);
deltaY = abs(deltaY);

messagebox(format(deltaX)+" "+format(deltaY));

if(cord[0]<cord[2])x = cord_game[0] + deltaX; // если персонаж левее картинки
else x = cord_game[0] - deltaX; // иначе правее

if(cord[1]<cord[3])y = cord_game[1] + deltaY; // если персонаж выше картинки
else y = cord_game[1] - deltaY; // иначе ниже

messagebox(format(x)+" "+format(y));
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0)
« Вопросы и решение проблем »


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




Powered by