Salut FatalTerror,
Alors pour commencer il faut savoir que dans un serveur MTA il y a 2 parties, la partie serveur( server-side ) et la partie client ( client-side )
Donc tu n'as pas le droit de mélanger des events clients ( je penses à ton
onClientPreRender ) et des events serveurs ( ton
onResourceStart ) ceci est aussi valable pour les fonctions
D'après ce que je vois, c'est du client-side voici ce que j'ai fais:
root = getRootElement ()
function updateCamera ()
local veh = getPedOccupiedVehicle( getLocalPlayer() ) -- on récupère le véhicule dans lequel est le joueur
if ( veh ~= false ) then -- si le joueur n'est pas sans vehicule ( => donc s'il est dans un véhicule ) sinon sa sert à rien
local distance = 0.2 -- on dit à quelle distance on veut mettre la caméra par rapport au véhicule
local x, y, z = getElementPosition( veh ) -- on récupère la position du véhicule
local rx, ry, rz = getElementRotation( veh )
local a = rz-90 -- on dit de quel coté on veut mettre la caméra ( ici à droite )
-- on se met en radian pour utiliser math.sin et math.cos
local a2 = math.rad(a)
-- on écarte la caméra du véhicule
local x2 = x+(distance * math.deg(math.sin(-a2)))
local y2 = y+(distance * math.deg(math.cos(-a2)))
-- on place la caméra
setCameraMatrix ( x2, y2, z, x, y, z )
end
end
addEventHandler ( "onClientPreRender", root, updateCamera )
A toi de régler la distance comme tu le souhaites.
Ensuite pour ton 2ème code, il faut savoir que la majorité des fonctions requièrent ( en argument ) le joueur en tant qu’élément (
playerElement )! En client, on le récupère avec
getLocalPlayer()Dans le wiki, lorsqu'une fonction a besoin du
playerElement en argument, il est mentionné comme ceci ( exemple concret ):

ou alors si la fonction peut s'utiliser sur un ped ou un player:

ou encore si une fonction peut s'utiliser sur un element quelconque ( objet, véhicule, player, ped, marker, pickup, blip ou encore un sond ):

Voilà ce que ça donne:
function pushBouton( )
local hisCar = getPedOccupiedVehicle( getLocalPlayer() ) -- ici on veut le playerElement et non pas son nom ( en client on peut le récupérer avec [b]getLocalPlayer()[/b] )
local x, y, z = getElementVelocity ( hisCar )
setElementVelocity ( hisCar, x , y, z+0.4 )
end
bindKey ( "m", "down", pushBouton ) -- lorsque le bindkey est comme ceci ( en-dehors d'une fonction quelconque ) le [b]bindKey [/b]est exécuté lorsque le script est "chargé"
A mon avis pour se que tu veux obtenir, ton +0.4 en velocity z est parfait ( j'ai testé

)
Si tu as des questions n'hésite pas
