mumut Опубликовано 23 марта, 2019 Поделиться Опубликовано 23 марта, 2019 захотел попробовать сделать аим, с горем пополам я его сделал но он не работает так как нужно.Помогите понять и решить эту проблему.Видео с которого был сделан проект Сам проект. P.S. Где не прокомментировал не понял или не знал как написать. Ссылка на комментарий Поделиться на другие сайты Поделиться
JustHack Опубликовано 23 марта, 2019 Поделиться Опубликовано 23 марта, 2019 (изменено) [censored] Изменено 11 апреля, 2020 пользователем JustHack Ссылка на комментарий Поделиться на другие сайты Поделиться
Senpai Опубликовано 23 марта, 2019 Поделиться Опубликовано 23 марта, 2019 Попробуй вывести сначала просто координаты игроков в консоли или куда-то ещё Ссылка на комментарий Поделиться на другие сайты Поделиться
mumut Опубликовано 24 марта, 2019 Автор Поделиться Опубликовано 24 марта, 2019 6 часов назад, Senpai сказал: Попробуй вывести сначала просто координаты игроков в консоли или куда-то ещё Вывести на консоль у меня получается и игрока и противников 7 часов назад, JustHack сказал: чтобы за тебя сделали. Я не прошу сделать за меня я прошу указать на ошибку из за которой проект не работает так как надо Ссылка на комментарий Поделиться на другие сайты Поделиться
Senpai Опубликовано 24 марта, 2019 Поделиться Опубликовано 24 марта, 2019 5 часов назад, mumut сказал: я прошу указать на ошибку из за которой проект не работает так как надо А что не так? Аим там какого типа? Fov или шо? Ссылка на комментарий Поделиться на другие сайты Поделиться
JustHack Опубликовано 24 марта, 2019 Поделиться Опубликовано 24 марта, 2019 (изменено) [censored] Изменено 11 апреля, 2020 пользователем JustHack Ссылка на комментарий Поделиться на другие сайты Поделиться
mumut Опубликовано 24 марта, 2019 Автор Поделиться Опубликовано 24 марта, 2019 (изменено) 2 часа назад, Senpai сказал: А что не так? Аим там какого типа? Fov или шо? По идеи как я понял мы получаем координаты игрока и врага делаем математическую магию и ложем в поворот камеры. А какого типа такой аимбот я не знаю. Изменено 24 марта, 2019 пользователем mumut Ссылка на комментарий Поделиться на другие сайты Поделиться
Senpai Опубликовано 24 марта, 2019 Поделиться Опубликовано 24 марта, 2019 1 час назад, mumut сказал: А какого типа такой аимбот я не знаю. Желательно знать 1 час назад, mumut сказал: делаем математическую магию и ложем в поворот камеры советую детально разобраться в этой "магии" . И распиши, что не так с аим ботом. Ссылка на комментарий Поделиться на другие сайты Поделиться
mumut Опубликовано 24 марта, 2019 Автор Поделиться Опубликовано 24 марта, 2019 3 часа назад, Senpai сказал: И распиши, что не так с аим ботом. Сначала он не записывал в адрес "поворот камеры" но я это исправил. Теперь он поворачивает но не туда куда нужно примерно в диапазоне от нуля до ста по X и Y координате когда максимальный поворот камеры по X составляет примерно "от -32750 до +32750" а по Y "от -16385 до +16385". Я предполагаю что за почти всю математическую магию отвечает эта функция. Спойлер void CalcAngle_Test(float *src, float * dst, float *angles) { double delta[3] = { (src[0] - dst[0]), (src[1] - dst[1]), (src[2] - dst[2]) }; double hyp = sqrt(delta[0] * delta[0] + delta[1] * delta[1]); angles[0] = (float)(asinf(delta[2] / hyp) * 57.295779513082f); angles[1] = (float)(atanf(delta[1] / delta[0]) * 57.295779513082f); angles[2] = (float)0; if (delta[0] >= 0.0) { angles[1] += 180.0f; } } Но я не могу понять что делает вторая, третья, и четвертая строчка если можно то объясните. Ссылка на комментарий Поделиться на другие сайты Поделиться
Senpai Опубликовано 24 марта, 2019 Поделиться Опубликовано 24 марта, 2019 angles[0] = (float)(asinf(delta[2] / hyp) * 57.295779513082f); angles[1] = (float)(atanf(delta[1] / delta[0]) * 57.295779513082f); Перевод из радиан в градусы double delta[3] = { (src[0] - dst[0]), (src[1] - dst[1]), (src[2] - dst[2]) }; double hyp = sqrt(delta[0] * delta[0] + delta[1] * delta[1]); Вторая строчка это длина вектора(линии из одной точки в другую) Ссылка на комментарий Поделиться на другие сайты Поделиться
Senpai Опубликовано 24 марта, 2019 Поделиться Опубликовано 24 марта, 2019 (изменено) 1 час назад, mumut сказал: "от -32750 до +32750" а по Y "от -16385 до +16385". Спойлер Изменено 24 марта, 2019 пользователем Senpai Ссылка на комментарий Поделиться на другие сайты Поделиться
mumut Опубликовано 25 марта, 2019 Автор Поделиться Опубликовано 25 марта, 2019 10 часов назад, Senpai сказал: 11 часов назад, mumut сказал: "от -32750 до +32750" а по Y "от -16385 до +16385". Скрыть контент Поворот камеры в игре типа 4 байт.Поэтому такие значения. Так сделал разработчик. Ссылка на комментарий Поделиться на другие сайты Поделиться
mumut Опубликовано 25 марта, 2019 Автор Поделиться Опубликовано 25 марта, 2019 У меня такой вопрос, я правильно предполагаю что мне надо сначала преобразовать поворот камеры в 360 градусов а только потом записывать значение или нет ? Ссылка на комментарий Поделиться на другие сайты Поделиться
Senpai Опубликовано 25 марта, 2019 Поделиться Опубликовано 25 марта, 2019 6 часов назад, mumut сказал: У меня такой вопрос, я правильно предполагаю что мне надо сначала преобразовать поворот камеры в 360 градусов а только потом записывать значение или нет ? А вот как думаешь. Если игра принимает углы "от -32750 до +32750", а по Y "от -16385 до +16385", то какой смысл записывать углы в градусах? Ссылка на комментарий Поделиться на другие сайты Поделиться
mumut Опубликовано 25 марта, 2019 Автор Поделиться Опубликовано 25 марта, 2019 5 минут назад, Senpai сказал: А вот как думаешь То есть мне надо прочитать угол поворота преобразовать в 360 градусов прибавить полученное значение из математической магии и обратно преобразовать в значение исходного типа. Если да то у меня вопрос по поводу как преобразовать обратно. Ссылка на комментарий Поделиться на другие сайты Поделиться
Senpai Опубликовано 25 марта, 2019 Поделиться Опубликовано 25 марта, 2019 10 минут назад, mumut сказал: То есть мне надо прочитать угол поворота преобразовать в 360 градусов прибавить полученное значение из математической магии и обратно преобразовать в значение исходного типа. Если да то у меня вопрос по поводу как преобразовать обратно. Тебе нужно преобразовать значения из игры в радианы(т.к. тригонометрические функции в c++ работают с радианами), а потом из радиан в значения из игры Ссылка на комментарий Поделиться на другие сайты Поделиться
mumut Опубликовано 25 марта, 2019 Автор Поделиться Опубликовано 25 марта, 2019 3 минуты назад, Senpai сказал: а потом из радиан в значения из игры Окей допустим я преобразовал значения из игры в радианы а как мне обратно преобразовать в значения из игры ? Ссылка на комментарий Поделиться на другие сайты Поделиться
Senpai Опубликовано 25 марта, 2019 Поделиться Опубликовано 25 марта, 2019 13 минут назад, mumut сказал: Окей допустим я преобразовал значения из игры в радианы а как мне обратно преобразовать в значения из игры ? Хз, по какой-то формуле, мейби Ссылка на комментарий Поделиться на другие сайты Поделиться
mumut Опубликовано 25 марта, 2019 Автор Поделиться Опубликовано 25 марта, 2019 1 минуту назад, Senpai сказал: Хз, по какой-то формуле, мейби Спасибо за помощь я посмотрю какие есть формулы связаны с радианом Ссылка на комментарий Поделиться на другие сайты Поделиться
Senpai Опубликовано 25 марта, 2019 Поделиться Опубликовано 25 марта, 2019 13 минут назад, mumut сказал: Спасибо за помощь я посмотрю какие есть формулы связаны с радианом Не думаю, что будет что-то подходящее. Тут лучше самому подумать. Вот 32750 это π . тогда 32750/π мы получаем какое-то число . если на него поделить число из игры, то получим значение в радианах Ссылка на комментарий Поделиться на другие сайты Поделиться
mumut Опубликовано 25 марта, 2019 Автор Поделиться Опубликовано 25 марта, 2019 (изменено) 15 минут назад, Senpai сказал: то получим значение в радианах А можно ли сделать так: Получить текущий поворот камеры Поделить на максимальный поворот камеры Умножить на 180 Проверить если значение меньше 0 то прибавить 360 По формуле преобразовать из градусов в радианы Прибавить к нашему значению значение из математической магии По формуле преобразовать из радианов в градусы Проверить если значение больше 0 то отнять 360 Поделить на 180 Умножить на максимальный поворот камеры Записать в поворот камеры Или получится какая то кашица ? Изменено 25 марта, 2019 пользователем mumut Ссылка на комментарий Поделиться на другие сайты Поделиться
Senpai Опубликовано 25 марта, 2019 Поделиться Опубликовано 25 марта, 2019 9 минут назад, mumut сказал: А можно ли сделать так: Получить текущий поворот камеры Поделить на максимальный поворот камеры Умножить на 180 Проверить если значение меньше 0 то прибавить 360 По формуле преобразовать из градусов в радианы Прибавить к нашему значению значение из математической магии По формуле преобразовать из радианов в градусы Проверить если значение больше 0 то отнять 360 Поделить на 180 Умножить на максимальный поворот камеры Записать в поворот камеры Или получится какая то кашица ? А зачем переводить в градусы, а потом в радианы, если можно сразу в радианы, ну ,в принципе, делай как хош Ссылка на комментарий Поделиться на другие сайты Поделиться
mumut Опубликовано 25 марта, 2019 Автор Поделиться Опубликовано 25 марта, 2019 Только что, Senpai сказал: А зачем переводить в градусы, а потом в радианы, если можно сразу в радианы, ну ,в принципе, делай как хош Нет это как пример может ли такое сработать или лучше проверить и узнать. Ссылка на комментарий Поделиться на другие сайты Поделиться
Senpai Опубликовано 25 марта, 2019 Поделиться Опубликовано 25 марта, 2019 (изменено) 12 минут назад, mumut сказал: Нет это как пример может ли такое сработать или лучше проверить и узнать. Может, why not? Но это будет тот ещё гомнокод B-) Изменено 25 марта, 2019 пользователем Senpai Ссылка на комментарий Поделиться на другие сайты Поделиться
mumut Опубликовано 25 марта, 2019 Автор Поделиться Опубликовано 25 марта, 2019 2 часа назад, Senpai сказал: Может, why not? Можно у тебя еще кое что узнать а точнее про эту функцию: Спойлер float Get3dDistance(float myCoordsX, float myCoordsY, float myCoordsZ, float enCoordsX, float enCoordsY, float enCoordsZ) { return sqrt(pow(double(enCoordsX - myCoordsX), 2.0) + pow(double(enCoordsY - myCoordsY), 2.0) + pow(double(enCoordsZ - myCoordsZ), 2.0)); } Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения