Hallo,
ich habe gestern aus Spaß folgende Funktion gescriptet:
function instantRotate (player)
local curVeh = getPedOccupiedVehicle(player)
local speedX, speedY, speedZ = getElementVelocity(curVeh)
local rx, ry, rz = getElementRotation(curVeh)
local veh = getVehicleID(curVeh)
local actualSpeed = (speedX^2 + speedY^2 + speedZ^2)^(0.5) * 100
if isPedInVehicle(player) then
setElementRotation(curVeh, -rx, ry , rz +180)
setElementVelocity(curVeh, -speedX, -speedY, speedZ)
if actualSpeed > 0 then
outputChatBox("Dein Fahrzeug ("..getVehicleNameFromID(veh)..") wurde um "..math.ceil(rz).."° Grad mit "..math.ceil(actualSpeed).." km/h gedreht.", player)
else
outputChatBox("Dein Fahrzeug ("..getVehicleNameFromID(veh)..") wurde um "..math.ceil(rz).."° gedreht.", player)
end
else
return false
end
end
addCommandHandler("rotate", instantRotate)
bindKey(player, "u", "down", instantRotate)
Alles anzeigen
Hierbei habe ich aber 2 Probleme.
Problem Nummer 1: Wenn ich in keinem Fahrzeug bin und den Befehl eingebe bekomme ich logischerweise Errors in der Console, da ich in keinem Fahrzeug bin wodurch es auch keine ElementRotation gibt. Ich dachte es reicht wenn ich abfrage ob der Spieler in einem Fahrzeug ist, aber anscheinend ja nicht. Habe schon verschiedenes probiert.
z.B.: ob es überhaupt eine Rotation des Fahrzeugs gibt. Vielleicht könnt ihr mir weiterhelfen.
Problem Nummer 2:
Der bindKey funktioniert nicht, und ich habe keine Ahnung woran der Fehler liegt.
Wenn ich den BindKey unter die local's packe funktioniert das ganze zwar, aber dann wird pro eingeben von dem Befehl das nochmal drauf gebindet, und das möchte ich nicht. Im Debugscript sagt er mir, dass es keinen Spieler gibt, aber ich habe den doch oben in der Funktion deklariert, oder nicht?
Würde mich über Hilfe freuen.
Die Idee kam mir aus einem Scripttutorial von @MasterM.
Grüße