Создание чекпоинта под углом

z1qqurat

Участник
Автор темы
59
13
Версия MoonLoader
.026-beta
В общем, хочу создать скрипт, который будет расставлять чекпоинты(кольца) под определенным углом(горизонтально/с юга на север, с юго-востока на северо-запад и тд). Но я не понимаю откуда мне взять значения аргументов float pointX, float pointY, float pointZ

 
  • Вау
Реакции: qdIbp

wojciech?

Известный
Проверенный
352
236
по горизонтали можно использовать формулы:
Lua:
local x, y, z = getCharCoordinates(playerPed) -- или другие, заранее известные, координаты, из которых будем строить новые

local angle = 90 -- произвольный угол (в градусах), по которому будем смещать координаты
local radian = math.rad(angle)

local radius = 10 -- радиус (или шаг смещения), то есть расстояние между точками

local position = {
    x = x + radius * math.cos(radian),
    y = y + radius * math.sin(radian),
    z = z
}
 
  • Нравится
Реакции: Z3roKwq и Vespan

z1qqurat

Участник
Автор темы
59
13
та зачем мне мои координаты. Мне нужны коориданты угла чекпоинта. Глянь на параметры функции

по горизонтали можно использовать формулы:
Lua:
local x, y, z = getCharCoordinates(playerPed) -- или другие, заранее известные, координаты, из которых будем строить новые

local angle = 90 -- произвольный угол (в градусах), по которому будем смещать координаты
local radian = math.rad(angle)

local radius = 10 -- радиус (или шаг смещения), то есть расстояние между точками

local position = {
    x = x + radius * math.cos(radian),
    y = y + radius * math.sin(radian),
    z = z
}
Lua:
        local x1, y1, z1 = getCharCoordinates(PLAYER_PED)
        local angle = 90 -- произвольный угол (в градусах), по которому будем смещать координаты
        local radian = math.rad(angle)
   
        local radius = 10 -- радиус (или шаг смещения), то есть расстояние между точками
        local position = {
            x = x + radius * math.cos(radian),
            y = y + radius * math.sin(radian),
            z = z
        }
   
        marker = createCheckpoint(type, x1, y1, z1, position.x, position.y, z1, radius)
1692974890906.png

не работает твой варик, ничего не меняет

Кароче я сделал, но оно опять же не ставит его под углом вверх-вниз
Lua:
        local angle = getCharHeading(PLAYER_PED)
        local radius = 10 -- радиус (или шаг смещения), то есть расстояние между точками
        local position = {
            x = x1 + (1 * math.sin(math.rad(-angle))),
            y = y1 + (1 * math.cos(math.rad(-angle))),
            z = z
        }
    
        marker = createCheckpoint(type, x1, y1, z1, position.x, position.y, z1, radius)

1692975923089.png

1692975952168.png

1692975972619.png

на ласт скрине видно что он не поворачивается

@qdIbp хелп плиз)))
 
Последнее редактирование:
  • Грустно
Реакции: qdIbp

qdIbp

Автор темы
Проверенный
1,438
1,180
@qdIbp помоги пожалуйста)))
а этот параметр для тебя шутка?

1692979702688.png


а все пон, не быкую =)

могу предложить такой вариант

Lua:
    sampRegisterChatCommand('cp', function(arg)
        local x, y, z = getCharCoordinates(playerPed)   
        local angle = getCharHeading(playerPed)
        pos = {
            x = x + math.sin(math.rad(-angle)),
            y = y + math.cos(math.rad(-angle)),
            z = tonumber(arg) or 7.24
        }
        
        deleteCheckpoint(_G['checkPoint'])
        _G['checkPoint'] = createCheckpoint(4, x, y, z, pos.x, pos.y, pos.z, 10)
    end)
 
Последнее редактирование:
  • Ха-ха
Реакции: Z3roKwq

z1qqurat

Участник
Автор темы
59
13
а этот параметр для тебя шутка?

Посмотреть вложение 213093

а все пон, не быкую =)

могу предложить такой вариант

Lua:
    sampRegisterChatCommand('cp', function(arg)
        local x, y, z = getCharCoordinates(playerPed)  
        local angle = getCharHeading(playerPed)
        pos = {
            x = x + math.sin(math.rad(-angle)),
            y = y + math.cos(math.rad(-angle)),
            z = tonumber(arg) or 7.24
        }
       
        deleteCheckpoint(_G['checkPoint'])
        _G['checkPoint'] = createCheckpoint(4, x, y, z, pos.x, pos.y, pos.z, 10)
    end)
Нашел нужное значение - /cp 90 поставит чекпоинт горизонтально

Такой себе вариант конечно, но спасибо и на этом.
Я хочу чтобы чтобы круг сам ставился под тем углом, под которым сейчас персонаж. А сидеть дрочить командой подбирая нужный угол - такое себе удовольствие
 
  • Эм
Реакции: qdIbp

qdIbp

Автор темы
Проверенный
1,438
1,180
Нашел нужное значение - /cp 90 поставит чекпоинт горизонтально

Такой себе вариант конечно, но спасибо и на этом.
Я хочу чтобы чтобы круг сам ставился под тем углом, под которым сейчас персонаж. А сидеть дрочить командой подбирая нужный угол - такое себе удовольствие
а меньше не пробовал ставить, например от 0 до 8
 

z1qqurat

Участник
Автор темы
59
13
и как ты хочешь что бы он подбирал?
Если б я только знал....

Задумка в том, что если верт находится вот так под углом и игрок нажал кнопку/команду для создания чекпоинта, то он бы создался как я нарисовал от руки, а не идеально вертикально/горизонтально
1692984649106.png
 

z1qqurat

Участник
Автор темы
59
13
Lua:
local vehicleHandle = storeCarCharIsInNoSave(playerPed)
local fx, fy, fz = getCarCoordinates(vehicleHandle)
local tx, ty, tz = getOffsetFromCarInWorldCoords(vehicleHandle, 0, 10, 0)

local checkpoint = createCheckpoint(4, fx, fy, fz, tx, ty, tz, 5)
1693044221020.png

Лучший. Спасибо

@qdIbp тебе тоже спасибо за помощь

Кстати, а есть огран по количеству созданых чекпоинтов?
 
Последнее редактирование: