Homer Simpson

Duda sobre paradise.

Recommended Posts

Posted (edited)

Hola, buenos días.

Tengo un duda ya que estoy empezando en el tema de scripting en MTA:SA y bueno, si es posible que me ayudarais os lo agradeceria mucho.

Bueno, el problema viene aqui (Uso la gamemode paradise) : 

Que cuando intento crearme otro personaje, al poner edad, nacionalidad y estatura me dice siempre Tu edad minima solo puede ser de 18 años.


 

Spoiler

vMddRLe.jpegEZQjDky.jpeg

 



function verifyEdad( edad )
	if not edad then
		return "No has una edad."
	elseif #edad < 18 then
		return "Tu edad minima solo puede ser de 18 años."
	elseif #edad >= 99 then
		return "Tu edad maxima solo puede ser 99 años."
	elseif tonumber(text) then
		return "No puedes usar letras"
	elseif foundSpace then
		return "No puedes usar espacios"
	end
end

function verifyNacionalidad( nacionalidad )
	if not nacionalidad then
		return "No has puesto una nacionalidad"
	elseif not tonumber(text) then
		return "No tienes ninguna letra escrita"
	elseif nacionalidad and type(nacionalidad) == "number" then 
		return "No puedes usar numeros"
	end
end

function verifyEstatura( estatura )
	if not estatura then
		return "No has una estatura."
	elseif #estatura >= 200 then
		return "Tu estatura maxima solo puede ser de 200 CM."
	elseif #estatura < 140 then 
		return "Tu estatura minima solo puede ser de 140 CM."
	elseif tonumber(text) then
		return "No puedes usar letras"
	elseif foundSpace then
		return "No puedes usar espacios"
	end
end

 

¿Tengo, una pregunta más, seria posible que solo se puedan escribir nacionalidades especificas?

Muchas gracias en caso de contestar y leer esto.

Edited by Homer Simpson
Añadi otra foto.

Share this post


Link to post
function verifyEdad (edad)
	if not edad then
		return "No has una edad."
	elseif #edad >= 99 then
		return "Tu edad maxima solo puede ser 99 años."
	elseif tonumber(text) then
		return "No puedes usar letras"
	elseif foundSpace then
		return "No puedes usar espacios"
	end
end

 

Share this post


Link to post

Ahora al registarme, me deja registrarme sin completar los campos : Edad, Nacionalidad y Estatura

Share this post


Link to post

Si usas guiGetText y destroy["nombre del edit"] para obtener la edad, lo único que haces poniendo la # delante es comprobar la longitud de la cantidad introducida. Es decir, que si pones 18 el #edad devolverá 2, no 18. Deberías utilizar tonumber( edad ) o algo similar.

Share this post


Link to post

Soy nuevo con el tema del Scripting, llevo 2 días intentando hacer lo de la edad y sigo sin caer en que usar, si me pudieses ayudar con el codigo te lo agradeceria mucho.

 

local function tryCreate( key )
	local name = destroy["g:createcharacter:name"] and guiGetText( destroy["g:createcharacter:name"] )
	local edad = destroy["g:createcharacter:edad"] and guiGetText( destroy["g:createcharacter:edad"] )
	local nacionalidad = destroy["g:createcharacter:nacionalidad"] and guiGetText( destroy["g:createcharacter:nacionalidad"] )
	local estatura = destroy["g:createcharacter:estatura"] and guiGetText( destroy["g:createcharacter:estatura"] )
	local error = verifyCharacterName( name ) or verifySkin( selectedSkin ) or verifyEdad( edad ) or verifyNacionalidad( nacionalidad ) or verifyEstatura( estatura )
	if not error then
		triggerServerEvent( "gui:createCharacter", getLocalPlayer( ), name, selectedSkin, edad, nacionalidad, estatura )
	else
		setMessage( error )
	end
end

Ese es el codigo del tryCreate, en players>main.Lua ya puse lo necesario para que se guardase y funccionase. El  unico error que tengo es en los siguientes verify

 

function verifyEdad( edad )
	if not edad then
		return "No has una edad."
	elseif #edad < 18 then
		return "Tu edad minima solo puede ser de 18 años."
	elseif #edad >= 99 then
		return "Tu edad maxima solo puede ser 99 años."
	elseif tonumber(text) then
		return "No puedes usar letras"
	elseif foundSpace then
		return "No puedes usar espacios"
	end
end

function verifyNacionalidad( nacionalidad )
	if not nacionalidad then
		return "No has puesto una nacionalidad"
	elseif not tonumber(text) then
		return "No tienes ninguna letra escrita"
	elseif nacionalidad and type(nacionalidad) == "number" then 
		return "No puedes usar numeros"
	end
end

function verifyEstatura( estatura )
	if not estatura then
		return "No has una estatura."
	elseif #estatura >= 200 then
		return "Tu estatura maxima solo puede ser de 200 CM."
	elseif #estatura < 140 then 
		return "Tu estatura minima solo puede ser de 140 CM."
	elseif tonumber(text) then
		return "No puedes usar letras"
	elseif foundSpace then
		return "No puedes usar espacios"
	end
end

 

Share this post


Link to post
22 hours ago, aka Blue said:

Si usas guiGetText y destroy["nombre del edit"] para obtener la edad, lo único que haces poniendo la # delante es comprobar la longitud de la cantidad introducida. Es decir, que si pones 18 el #edad devolverá 2, no 18. Deberías utilizar tonumber( edad ) o algo similar.

Es exactamente esto...

 

function verifyEdad( edad )
	if not edad then
		return "No has una edad."
	elseif tonumber(edad) < 18 then
		return "Tu edad minima solo puede ser de 18 años."
	elseif tonumber(edad) >= 99 then
		return "Tu edad maxima solo puede ser 99 años."
	elseif tonumber(text) then
		return "No puedes usar letras"
	elseif foundSpace then
		return "No puedes usar espacios"
	end
end

function verifyNacionalidad( nacionalidad )
	if not nacionalidad then
		return "No has puesto una nacionalidad"
	elseif not tonumber(text) then
		return "No tienes ninguna letra escrita"
	elseif nacionalidad and type(nacionalidad) == "number" then 
		return "No puedes usar numeros"
	end
end

function verifyEstatura( estatura )
	if not estatura then
		return "No has una estatura."
	elseif tonumber(estatura) >= 200 then
		return "Tu estatura maxima solo puede ser de 200 CM."
	elseif tonumber(estatura) < 140 then 
		return "Tu estatura minima solo puede ser de 140 CM."
	elseif tonumber(text) then
		return "No puedes usar letras"
	elseif foundSpace then
		return "No puedes usar espacios"
	end
end

 

Share this post


Link to post

Sigo teniendo ahora un error y es el siguiente

Ahora cuando le doy a crear no me sale ningun texto de error como(no has introducido ninguna edad, la edad minima es de 18 años, etc...

En caso de responder este texto, gracias.

Share this post


Link to post

Porque el return no devuelve un outputChatBox. Cambia el return y pon los textos dentro de un outputChatBox.

Share this post


Link to post

¡Gracias chicos, ya consegui solucionarlo gracias por los consejos y vuestra ayuda @aka Blue @Calculador . Si algun dia necesitais ayuda con algo, no olvideis contar conmigo, aunque no soy buen en el tema del scripting 😂

Share this post


Link to post

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.