Эта функция возвращает координаты куда целится игрок, но выстрел идёт не в эту точку.
Поэтому как можно узнать точный выстрел? Если делать проверку через processLineOfSight, то производительность будет падать (там так написано). Есть какие варианты ещё?
И зачем надо указывать у функции getWorldFromScreenPosition радиус...
Сделал так:
if getPedControlState(localPlayer, "aim_weapon") == true then
local posX, posY, posZ = getElementPosition(localPlayer)
local worldX, worldY, worldZ = getWorldFromScreenPosition(screenX / 2, screenY / 2, 100)
local hit, hitX, hitY, hitZ = processLineOfSight(posX, posY, posZ, worldX, worldY, worldZ, true, true, true, true, true, false, false, false, localPlayer, false)
if hit and hitX and hitY and hitZ then
setElementData(localPlayer, "Target", hitX .. "," .. hitY .. "," .. hitZ)
else
setElementData(localPlayer, "Target", worldX .. "," .. worldY .. "," .. worldZ)
end
else
setElementData(localPlayer, "Target", false)
end
Когда целишься тики прыгают от 0 до 16.
Убрал из onClientRender перетащил в цикл. Делается всего за 0 тиков, мне кажется преувеличено, что может быть нагрузка.