Jump to content

Ayuda [Principiante]


Raxzen

Recommended Posts

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: 

  1. function generar_auto(boton,estado)
  2.     local fila,columna = guiGridListGetSelectedItem(grid_autos)
  3.     if fila and columna and fila ~= -1 and columna ~= -1 then
  4.       local selected = guiGridListGetItemData(grid_autos,fila,columna)
  5.       selected = tonumber(selected)
  6.       local rotz = getElementRotation(getLocalPlayer())
  7.       local x,y,z = getElementPosition(getLocalPlayer())
  8.       x = x + ( math.cos ( math.rad ( rotz+90 ) ) * 3)
  9.       y = y + ( math.sin ( math.rad ( rotz+90 ) ) * 3)
  10.       if selected and x and y and z then
  11.  
  12.         triggerServerEvent("onClientGenerarAuto",getRootElement(),selected,x,y,z)
  13.        
  14.       else
  15.         outputChatBox("No spawneo")
  16.       end
  17.     else
  18.      
  19.       outputChatBox("Spawneo correctamente")
  20.     end
  21.  
  22. end

Servidor:

  1. function generar_auto(vehiculo,posx,posy,posz,player)
  2.   -- check all the arguments exist
  3.     if vehiculo and posx and posy and posz then
  4.     createVehicle(vehiculo,posx,posy,posz)
  5.     outputChatBox("Auto creado",source)
  6. end
  7.  
  8. 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

@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
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
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
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
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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...