Homer Simpson Posted July 16, 2019 Share Posted July 16, 2019 (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 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 July 16, 2019 by Homer Simpson Añadi otra foto. Link to comment
Jonas^ Posted July 16, 2019 Share Posted July 16, 2019 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 Link to comment
Homer Simpson Posted July 16, 2019 Author Share Posted July 16, 2019 Ahora al registarme, me deja registrarme sin completar los campos : Edad, Nacionalidad y Estatura Link to comment
aka Blue Posted July 16, 2019 Share Posted July 16, 2019 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. Link to comment
Homer Simpson Posted July 17, 2019 Author Share Posted July 17, 2019 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 Link to comment
Calculador Posted July 17, 2019 Share Posted July 17, 2019 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 Link to comment
Homer Simpson Posted July 18, 2019 Author Share Posted July 18, 2019 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. Link to comment
aka Blue Posted July 18, 2019 Share Posted July 18, 2019 Porque el return no devuelve un outputChatBox. Cambia el return y pon los textos dentro de un outputChatBox. Link to comment
Homer Simpson Posted July 18, 2019 Author Share Posted July 18, 2019 ¡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 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