SA:MP Координаты точки прицеливания

hawkie

Новичок
Автор темы
2
0
всем привет, у меня возникла проблема с определением 3d-координат точки прицеливания (точка столкновения луча прицеливания с любым объектом), пробовал sampfuncs raycast, cleo opcodes, processLineOfSight()
 
Решение
Эм, здесь есть все что тебе надо

БеzликиЙ

Автор темы
Проверенный
1,889
1,118
а какая проблема-то в итоге, точку найти не можешь? принцип работы простой:

- по адресам 0xB6EC10 и 0xB6EC14 находятся два float значения, одно из них отвечает за x координату прицела на экране, второе - за y. значения от 0 до 1, умножь их на реальное разрешение экрана. считываешь их каким-нибудь memory. эти координаты в теории могут меняться всякими видами от первого лица, поэтому лучше их всё-таки считывать
- делаешь processLineOfSight, где начальной точкой служит getActiveCameraCoordinates, а конечной - convertScreenCoordsTo3d по указанным координатам с глубиной, ну например 100.
- координаты точки пересечения от processLineOfSight - то, что ты пытаешься найти
 

hawkie

Новичок
Автор темы
2
0
по адресам 0xB6EC10 и 0xB6EC14
как обратиться к этим адресам? просто как к абсолютным или смещение от исполняемого файла?

по указанным координатам с глубиной, ну например 100.
разве это гарантирует, что искомая точка будет точкой столкновения луча прицеливания с поверхностью или объектом? разве это не просто прыжок на заданное расстояние по лучу прицеливания? эта точка должна быть той же точкой, куда попадёт пуля, но при этом я хочу найти координаты без выстрела
 
Последнее редактирование:

БеzликиЙ

Автор темы
Проверенный
1,889
1,118
как обратиться к этим адресам? просто как к абсолютным или смещение от исполняемого файла?

memory.getFloat

разве это гарантирует, что искомая точка будет точкой столкновения луча прицеливания с поверхностью или объектом? разве это не просто прыжок на заданное расстояние по лучу прицеливания? эта точка должна быть той же точкой, куда попадёт пуля, но при этом я хочу найти координаты без выстрела
это гарантирует, что вектор, по которому мы проверяем processLineOfSight, будет направлен вдоль луча прицеливания из точки, на которой находится камера. а вот точку попадания как раз processLineOfSight и найдёт
 

trefa

3d print
Всефорумный модератор
2,139
1,335
Эм, здесь есть все что тебе надо
 
  • Нравится
Реакции: hawkie