Jump to content

createProjectile?


Recommended Posts

теперь вот еще какая проблема. у меня есть координаты машины (x, y, z) и ее вращения (x, y, z). Нужно запустить ракету от машины, чтобы она летела строго вперед. С параметрами функции createProjectile разобраться не могу, всё что могу получить от ракеты через getElementVelocity, getElementRotation от ракеты, запущенной из базуки - тоже ни о чем не говорит. какие-то вообще несвязные числа.

Link to comment

А из какой точки относительно транспорта будет вылетать ракета? из бампера, с крыши? Если точка будет внутри транспорта, то ничего не вылетит, я к этому клоню.

Допустим rotX, rotY, rotZ это углы транспорта.

Параметры velX, velY, velZ этой функции нужно пропорционально связать с углами транспорта. Чтобы пустить ракету по направлению транспорта, у velY значение должно быть чуть больше.

local velX, velY, velZ = rotZ / 720, rotY / 720 + 0.1, rotZ / 720 

но это теоритически

Углы наклона ракеты могут совпадать с rotX, rotY, rotZ транспорта, а могут и не совпадать. Ради теста можно просто подставить их. В любом случае, еси не подходят, то там минимальная поправка.

Точка старта ракеты - для теста мона взять просто над транспортом в паре метров.

Силу вылета можно поставить средней, например 1.

  
-- vehicle это какой-то транспорт 
-- узнаем данные транспорта 
local posX, posY, posZ = getElementPosition(vehicle) 
local rotX, rotY, rotZ = getElementRotation(vehicle) 
  
-- флаг: выпущена ракета или нет (для теста) 
local launched = false 
  
-- запустим только если данные транспорта корректны 
if posX and rotX then 
    -- начальная скорость ракеты 
    local velX, velY, velZ = rotZ/720, rotY/720 + 0.1, rotZ/720 
  
    launched = createProjectile( -- запускаем ракету 
        getLocalPlayer(), -- источник будет - локальный игрок, т.е. ракета будет синхрится для всех 
        19, -- простая ракета 
        posX, posY, posZ + 2, -- точка старта в паре метров выше 
        1, -- сила вылета при старте 
        nil, -- цели у ракеты нет, куда уж попадет, туда попадет 
        rotX, rotY, rotZ, -- углы ракеты 
        velX, velY, velZ -- начальная скорость ракеты 
    ) 
end 
  
outputChatBox( 'Ракета выпущена: ' .. tostring(launched) ) 
  

это все просто теория моя (:

Link to comment

Сделал. Ракеты летят рандомно, всё равно. То закручиваются, то разворачиваются и ударяют в себя, то еще чо-нибудь. Позовите в эту тему лила тоади пожалуйста, уж он то точно должен знать?

Link to comment

ракеты вылетают там где надо, но при этом, о чудо, они летят по замысловатой траектории, по самым невразумительным дугам, которые тока можно придумать, дважды я умудрился закрутить ракету над своей машиной, из которой и вылетала ракета.

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

Link to comment

я же сказал, что углы для функции - могут не совпадать с углам для транспорта

по желанию некоторые параметры ставьте в 0 и потом проверяйте эффект. По моему это самое интересное занятие - проверять куда полетит ракета ))

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...