Hallo Leute,
ich habe ja heute Morgen schonmal gefragt wie das überhaupt mit dem smoothMoveCamera funktioniert.
Jetzt kommt aber schon das nächste Problem
Ich möchte das, dass smoothMoveCamera Event beim aufgehen des Login Fensters getriggert wird und genau so beim hiden des Loginfensters beendet wird.
Leider kommt immer der Fehler gm\login\client.lua:61: attempt to call global 'triggerClientEvent' (a nil value)
Hier mal der Code.
Client (login.lua)
Lua
function windowHandler( )
setElementData( getLocalPlayer(), "LoggedIn", false )
local playername = getPlayerName(localPlayer)
guiSetVisible ( loginwin, true )
guiBringToFront ( loginwin, true )
guiSetText(editlogin, playername)
guiSetInputEnabled(true)
showCursor ( true )
triggerClientEvent("startcam", getRootElement(), windowHandler)
end
addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), windowHandler )
function hideLoginWindow( )
guiSetInputEnabled(false)
guiSetVisible (loginwin, false)
showCursor (false)
guiSetVisible(loginheader,false)
--guiSetVisible(mtalogo,false)
guiSetVisible(flagge,false)
triggerClientEvent( "stopcam", getRootElement(), hideLoginWindow )
end
addEvent( "hideLoginWindow", true )
addEventHandler( "hideLoginWindow", getRootElement(), hideLoginWindow )
Alles anzeigen
Client (camflight.lua)
Lua
local sm = {}
sm.moov = 0
sm.object1, sm.object2 = nil, nil
local function removeCamHandler ()
if(sm.moov == 1) then
sm.moov = 0
removeEventHandler ( "onClientPreRender", getRootElement(), camRender )
end
end
addEvent("stopcam", true)
addEventHandler("stopcam", getRootElement(), removeCamHandler)
local function camRender ()
local x1, y1, z1 = getElementPosition ( sm.object1 )
local x2, y2, z2 = getElementPosition ( sm.object2 )
setCameraMatrix ( x1, y1, z1, x2, y2, z2 )
end
function smoothMoveCamera ( x1, y1, z1, x1t, y1t, z1t, x2, y2, z2, x2t, y2t, z2t, time )
if(sm.moov == 1) then return false end
sm.object1 = createObject ( 1337, x1, y1, z1 )
sm.object2 = createObject ( 1337, x1t, y1t, z1t )
setElementAlpha ( sm.object1, 0 )
setElementAlpha ( sm.object2, 0 )
setObjectScale(sm.object1, 0.01)
setObjectScale(sm.object2, 0.01)
moveObject ( sm.object1, time, x2, y2, z2, 0, 0, 0, "InOutQuad" )
moveObject ( sm.object2, time, x2t, y2t, z2t, 0, 0, 0, "InOutQuad" )
addEventHandler ( "onClientPreRender", getRootElement(), camRender )
sm.moov = 1
setTimer ( removeCamHandler, time, 1 )
setTimer ( destroyElement, time, 1, sm.object1 )
setTimer ( destroyElement, time, 1, sm.object2 )
return true
end
function startcam()
local kamera = smoothMoveCamera(2183.5590820313, -2999.2800292969, 73.52645111084, 2143.9155273438, -2907.4738769531, 73.52645111084, 1452.7202148438, -911.26965332031, 111.44745635986, 1423.1696777344, -817.64233398438, 92.455764770508, 3000)
end
addEvent("startcam", true)
addEventHandler("startcam", getRootElement(), startcam)
Alles anzeigen
Hoffentlich wisst ihr die Lösung des Problems
LG
DUSTY