Shody Posted October 31, 2015 Share Posted October 31, 2015 Hola, Soy nuevo, posiblemente sea la razón de un error que tengo cuando intento mostrar un mensaje en el chat de la variable que recoge el nombre del usuario. He probado muchas cosas y tengo errores como: "Bad argument @ 'getPlayerName' [Expected element at argument 1, got function]" O también "myserver\script.lua:21: attempt to concatenate a boolean value" He probado de varias formas: function entradaServidor() spawnPlayer(source, PosX, PosY, PosZ) fadeCamera(source, true) setCameraTarget(source, source) outputChatBox("Nombre: " .. getPlayerName(entradaServidor), getRootElement(), 255, 255, 255, true) end addEventHandler("onPlayerJoin", getRootElement(), entradaServidor) También he probado con: local localPlayerName = getPlayerName(getLocalPlayer()) Y sale un error que si mal no recuerdo el valor getLocalPlayer era nulo. A ver si doy un paso más adelante porque estoy estancado aquí Un saludo. Link to comment
Tomas Posted October 31, 2015 Share Posted October 31, 2015 outputChatBox("Nombre: " .. getPlayerName(source), getRootElement(), 255, 255, 255, true) Link to comment
Shody Posted October 31, 2015 Author Share Posted October 31, 2015 Solucionado, gracias por la ayuda Tomas. Creo que me estoy confundiendo con el getRootElement() y source. Por lo que he visto getRootElement() es el que dice quién lo ejecuta y no se si se refiere a cliente o servidor, o es al igual que el "source" que dice que la función es para él mismo o para todos por ejemplo. Un saludo Link to comment
Tomas Posted October 31, 2015 Share Posted October 31, 2015 Solucionado, gracias por la ayuda Tomas.Creo que me estoy confundiendo con el getRootElement() y source. Por lo que he visto getRootElement() es el que dice quién lo ejecuta y no se si se refiere a cliente o servidor, o es al igual que el "source" que dice que la función es para él mismo o para todos por ejemplo. Un saludo 'source' es una variable predefinida que viene con la mayoría de los eventos, no importa el side. getRootElement returna el nodo del 'árbol de elementos', no es fácil de comprender pero si tienes una buena comprensión del inglés aquí lo explica medianamente bien Element_tree, en un básico resumen, devuelve todos los elementos. Link to comment
Shody Posted October 31, 2015 Author Share Posted October 31, 2015 Entendido, gracias nuevamente. Tengo que reconocer que todavía soy nuevo tanto en la programación como en LUA. Acabo de hacer un comando para crear un vehículo pero le añadí un poco de dificultad (dificultad para mí), funcionar funciona pero con lo del tema de la optimización del código entre otras cosas siempre me quedo dudando por mucho que funcione: function crearVehiculo(Jugador, Comando, Modelo) if Modelo then local PosXA, PosYA, PosZA = getElementPosition(Jugador) -- Obtener la posición actual del usuario PosXA = PosXA + 5 local vehiculoCreado = createVehicle(tonumber(Modelo), PosXA, PosYA, PosZA) -- Creamos el vehículo al lado de la posición del usuario if (vehiculoCreado == false) then outputChatBox("* La ID del vehículo debe estar entre 400 y 611", Jugador, 173, 0, 0) end else outputChatBox("[uSO]: /veh [iD]", Jugador, 146, 146, 146) end end addCommandHandler("veh", crearVehiculo) Link to comment
Tomas Posted October 31, 2015 Share Posted October 31, 2015 Pues sí, no está mal, pero hay mejores formas de hacerlo, antes de crearlo puedes verificar si es una ID de vehículo en vez de hacerlo luego: function crearVehiculo(Jugador, Comando, Modelo) if Modelo then if ( getVehicleNameFromModel(tonumber(Modelo)) ) then local PosXA, PosYA, PosZA = getElementPosition(Jugador) -- Obtener la posición actual del usuario PosXA = PosXA + 5 createVehicle(tonumber(Modelo), PosXA, PosYA, PosZA) else outputChatBox("* La ID del vehiculo debe estar entre 400 y 611", Jugador, 255, 0, 0) end end end addCommandHandler("veh", crearVehiculo) Link to comment
aka Blue Posted October 31, 2015 Share Posted October 31, 2015 También puedes hacer que al crearlo le meta directamente dentro del vehículo con la función warpPedIntoVehicle Link to comment
Shody Posted October 31, 2015 Author Share Posted October 31, 2015 Perfecto, muchas gracias a ambos. Link to comment
Recommended Posts