# Optimum usage

Help with these render optimization
unknown
lua
a year ago
4.3 kB
11
Indexable
Never
```local opt_time = 0
local threshold = 50

function moveCrane()
if (not isCraneActive) then
return false
end
if (not isElement(crane_arm)) then
return false
end
if (isChatBoxInputActive()) then
return false
end
local x, y, z = getElementPosition(crane)
local rx, ry, rz = getElementRotation(crane_arm)
local hrx, hry, hrz = getElementRotation(crane_head)
local cspeedx, cspeedy, cspeedz = getElementVelocity(crane)
for i, v in pairs(container) do
if isElement(v) then
local posx, posy, posz = getElementPosition(v)
local actx, acty, actz = getElementVelocity(v)
if ((actx > 0 and acty > 0) and posz ~= 17.83) then
model = getElementModel(v)
containerMove = v
break
end
end
end
if (containerMove) then
speedx, speedy, speedz = getElementVelocity(containerMove)
cx, cy, cz = getElementPosition(containerMove)
crx, cry, crz = getElementRotation(containerMove)
end
if cameraMovement1 then
setCameraMatrix(x, y, z+75, x, y, 0, 135)
elseif cameraMovement2 then
local newX, newY = getPointFromDistanceRotation(x, y, 69, -rz)
setCameraMatrix(x, y, z+40, newX, newY, 0, 0)
elseif cameraMovement3 then
local newX, newY = getPointFromDistanceRotation(x, y, 10, -rz)
local newLX, newLY = getPointFromDistanceRotation(x, y, 69, -rz)
local rplus = rx
if rx > 347 then
rplus = 0
end
setCameraMatrix(newX, newY, z, newLX, newLY, -10 + rplus, 0)
end
if ((getKeyState("arrow_l") and not getKeyState("arrow_r")) and getTickCount() - time_opt > threshold) then
local ax, ay = x + travelspeed, y + travelspeed
if (ax >= orX and ay >= orY) then
ax, ay = orX, orY
limitationTravel = true
else
limitationTravel = false
end
setElementPosition(crane, ax, ay, z)
setElementPosition(crane_arm, ax, ay, 35.5)
time_opt = getTickCount()
elseif (getKeyState("arrow_r") and not getKeyState("arrow_l") and getTickCount() - time_opt > threshold) then
local ax, ay = x - travelspeed, y - travelspeed
if (ax <= limitRx and ay <= limitRy) then
ax, ay = limitRx, limitRy
limitationTravel = true
else
limitationTravel = false
end
setElementPosition(crane, ax, ay, z)
setElementPosition(crane_arm, ax, ay, 35.5)
time_opt = getTickCount()
end
if getKeyState("s") and getTickCount() - time_opt > threshold then --lift
arx = rx + liftdropspeed
if arx > 45 and arx < 348 then
arx = 45
end
time_opt = getTickCount()
elseif getKeyState("w") and getTickCount() - time_opt > threshold then --drop
arx = rx - liftdropspeed
if arx < 348 and arx > 45 then
arx = 348
end
time_opt = getTickCount()
end
if getKeyState("a") and getTickCount() - time_opt > threshold then
arz = rz + spinspeed
time_opt = getTickCount()
elseif getKeyState("d") and getTickCount() - time_opt > threshold then
arz = rz - spinspeed
time_opt = getTickCount()
end
setElementRotation(crane_arm, arx or rx, ry, arz or rz)
setElementRotation(crane_head, hrx, hry, arz or rz)
if containerMove and getKeyState("q") and getTickCount() - time_opt > threshold then
local axx, ayy, azz = getElementAngularVelocity(containerMove)
local carz = crz + spinspeed * 1.1
setElementRotation(containerMove, crx, cry, carz)
time_opt = getTickCount()
elseif containerMove and getKeyState("e") and getTickCount() - time_opt > threshold then
local axx, ayy, azz = getElementAngularVelocity(containerMove)
local carz = crz - spinspeed * 1.1
setElementRotation(containerMove, crx, cry, carz)
time_opt = getTickCount()
end
end