Anzo Posted October 5, 2016 Share Posted October 5, 2016 (edited) Pues tengo algo que crea un objeto en frente de ti, por ahí todo bien, pero yo al darle click el objeto se tiene que mover hacia adelante de mi hasta un cierto lugar, el problema viene es cuando doy click. estoy poniendo algo como : moveObject(object, x, y+50,z) y siempre lo manda al norte, y yo quiero que el objeto se mueva es +50 pero según donde estés mirando. No tengo ningún código hasta el momento pero solo es algo como, precionas click derecho y un objeto se mueve. Edited October 5, 2016 by Anzo Link to comment
MTA Team 0xCiBeR Posted October 5, 2016 MTA Team Share Posted October 5, 2016 Usa vectores y matrices segun corresponda. https://wiki.multitheftauto.com/wiki/Vector https://wiki.multitheftauto.com/wiki/Matrix Link to comment
Anzo Posted October 5, 2016 Author Share Posted October 5, 2016 asi intente (antes ya habia usado esto para crear objetos en frente de ti siempre) : function onMises() if (isElement(misilei) == true) then local x,y,z = getElementPosition(misilei) local rx,ry,rz = getElementRotation(misilei) local matrix = Matrix.create(x,y+20,z) local forward = (Matrix.getForward(matrix) * 2) local pos = (Matrix.getPosition(matrix) - forward) moveObject(misilei, 500,pos) setTimer(createExplosion, 800, 1, x, y+50,z, 2,source) setTimer(destroyElement, 800, 1, misilei) end end misilei está definida como variable global (es un modelo de un misil :v) Link to comment
Anzo Posted October 6, 2016 Author Share Posted October 6, 2016 14 hours ago, Tomas said: Y eso no te sirve? No, siempre sale al norte Link to comment
Tomas Posted October 6, 2016 Share Posted October 6, 2016 (edited) local desiredRelativePosition = Vector3(0, 5, 0) local matrix = player.matrix local newPosition = matrix.transformPosition(desiredRelativePosition) moveObject(object, 500, newPosition:getX(), newPosition:getY(), newPosition:getZ()) Edited October 6, 2016 by Tomas Link to comment
Anzo Posted October 9, 2016 Author Share Posted October 9, 2016 Perdón por responder tarde, pero apenas hoy miro el foro. Eso no me funciono, sale siempre para el mismo lugar, para el norte, dejo el código por si acaso: addEvent("onMisil",true) local misilei function misile() local x,y,z = getElementPosition(source) local rx,ry,rz = getElementRotation(source) local matrix = Matrix.create(x,y,z) local forward = (Matrix.getForward(matrix) * 2) local pos = (Matrix.getPosition(matrix) + forward) misilei = createObject(345,pos,rx,ry,rz) bindKey(source,"mouse1","down",onMises) end addEventHandler("onMisil", root, misile) function onMises() if (isElement(misilei) == true) then local desiredRelativePosition = Vector3(0, 5, 0) local matrix = player.matrix local newPosition = matrix.transformPosition(desiredRelativePosition) moveObject(object, 500, newPosition:getX(), newPosition:getY(), newPosition:getZ()) setTimer(createExplosion, 800, 1, x, y+50,z, 2,source) setTimer(destroyElement, 800, 1, misilei) end end Link to comment
aka Blue Posted October 9, 2016 Share Posted October 9, 2016 Según donde esté mirando no se sacaría con getCameraMatrix? Link to comment
Recommended Posts