Raxzen Posted May 16, 2020 Share Posted May 16, 2020 Saludos estimados usuarios de la comunidad, me e estado introduciendo a la programación en Lua mediante MTA y tenía unas dudas para ver si me las pueden aclarar, espero este subforo sea el correcto, se trata de un panel para spawnear autos, e logrado la funcionalidad básica mediante la wiki, pero tengo un problema en el que ojala me puedan ayudar Cliente: function generar_auto(boton,estado) local fila,columna = guiGridListGetSelectedItem(grid_autos) if fila and columna and fila ~= -1 and columna ~= -1 then local selected = guiGridListGetItemData(grid_autos,fila,columna) selected = tonumber(selected) local rotz = getElementRotation(getLocalPlayer()) local x,y,z = getElementPosition(getLocalPlayer()) x = x + ( math.cos ( math.rad ( rotz+90 ) ) * 3) y = y + ( math.sin ( math.rad ( rotz+90 ) ) * 3) if selected and x and y and z then triggerServerEvent("onClientGenerarAuto",getRootElement(),selected,x,y,z) else outputChatBox("No spawneo") end else outputChatBox("Spawneo correctamente") end end Servidor: function generar_auto(vehiculo,posx,posy,posz,player) -- check all the arguments exist if vehiculo and posx and posy and posz then createVehicle(vehiculo,posx,posy,posz) outputChatBox("Auto creado",source) end end Esta parte del código es la que me permite crear el auto y como dije todo bien, lo hace, pero me gustaría meter al usuario dentro de el directamente, al utilizar el warPedIntoVehicle en el servidor pero no encuentra el argumento y no lo mete La otra es como puedo limitar el spawn de los autos a solo 1, ya que si le sigo dando click al botón me sigue y sigue creando autos. PD: estoy usando la wiki, exactamente este link, es el mismo código pero con ligeros cambios en variables https://wiki.multitheftauto.com/wiki/Scripting_the_GUI_-_Tutorial_1 Agradezco la ayuda Link to comment
Motar2k Posted May 16, 2020 Share Posted May 16, 2020 @Raxzen Que tal, modifique tu codigo del serverside, el codigo no esta probado. --serverside local vehiculos = {} function generar_auto(vehiculo,posx,posy,posz,player) if vehiculo and posx and posy and posz then if not vehiculos[player] or not isElement(vehiculos[player]) then vehiculos[player] = createVehicle(vehiculo,posx,posy,posz) outputChatBox("Auto creado",source) else outputChatBox("Ya tienes un auto", source) end end end addEventHandler("onPlayerQuit", getRootElement(), function() if vehiculos[player] and isElement(vehiculos[player]) then destroyElement(vehiculos[player]) vehiculos[player] = nil end end) Link to comment
Raxzen Posted May 21, 2020 Author Share Posted May 21, 2020 On 16/05/2020 at 11:58, Motar2k said: @Raxzen Que tal, modifique tu codigo del serverside, el codigo no esta probado. --serverside local vehiculos = {} function generar_auto(vehiculo,posx,posy,posz,player) if vehiculo and posx and posy and posz then if not vehiculos[player] or not isElement(vehiculos[player]) then vehiculos[player] = createVehicle(vehiculo,posx,posy,posz) outputChatBox("Auto creado",source) else outputChatBox("Ya tienes un auto", source) end end end addEventHandler("onPlayerQuit", getRootElement(), function() if vehiculos[player] and isElement(vehiculos[player]) then destroyElement(vehiculos[player]) vehiculos[player] = nil end end) Trate de acomodar tu código, y me sirvió la parte del warped intovehicle xd, pero con unas ligeras modificaciones, a pesar de eso trate de aplicar la finción para evitar que el usuario spawnee mas de un auto, pero no e tenido resultado, alguna otra forma de orientar Link to comment
Motar2k Posted May 27, 2020 Share Posted May 27, 2020 On 20/05/2020 at 17:45, Raxzen said: Trate de acomodar tu código, y me sirvió la parte del warped intovehicle xd, pero con unas ligeras modificaciones, a pesar de eso trate de aplicar la finción para evitar que el usuario spawnee mas de un auto, pero no e tenido resultado, alguna otra forma de orientar No se arreglo lo de spawnear mas de auto? Link to comment
AaroN⍩ Posted May 31, 2020 Share Posted May 31, 2020 Para evitar el Spam podrias utilizar un SetTimer asi solo le permitira crear un auto cada determinado tiempo. Link to comment
Motar2k Posted June 1, 2020 Share Posted June 1, 2020 On 30/05/2020 at 20:37, AaroN⍩ said: Para evitar el Spam podrias utilizar un SetTimer asi solo le permitira crear un auto cada determinado tiempo. No es recomendable, ya que de igual manera eso no evitar el spamneo de autos. Link to comment
aka Blue Posted June 1, 2020 Share Posted June 1, 2020 On 31/05/2020 at 05:37, AaroN⍩ said: Para evitar el Spam podrias utilizar un SetTimer asi solo le permitira crear un auto cada determinado tiempo. Con una comparación entre ticks con getTickCount es suficiente y más óptimo a mi parecer. Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now