CeKiT Posted April 8, 2012 Share Posted April 8, 2012 Hola! Tengo un error que al querer poner dos comandos asi function consoleSetPlayerPosition ( commandName, posX, posY, posZ ) setElementPosition ( getLocalPlayer(), posX, posY, posZ ) end addCommandHandler ( "setpos", consoleSetPlayerPosition ) function consoleSetPlayerPosition ( commandName, posX, posY, posZ ) setElementPosition ( getLocalPlayer(), posX, posY, posZ ) end addCommandHandler ( "setpos", consoleSetPlayerPosition ) no me funcionan como debo ponerlo se que es un problema de llaves y ubicacion del script pero no estoy muy acostumbrado a lua todabia, gracias desde ya! Link to comment
Castillo Posted April 8, 2012 Share Posted April 8, 2012 Para que queres dos comandos que hagan exactamente lo mismo? Link to comment
CeKiT Posted April 8, 2012 Author Share Posted April 8, 2012 Quiero un comando que sea /lugar0 296.70001220703,-1166.0999755859,80.900001525879 y /lugar1 382.60000610352,-2058.3000488281,10.39999961853 pero en un mismo script lo que pasa que con uno me funciona pero cuando quiero meter dos comandos en un .lua no me funciona Link to comment
Castillo Posted April 8, 2012 Share Posted April 8, 2012 Lo que estas diciendo es que queres que un comando tenga un argumento? Ejemplo: /lugar 0 /lugar 1 /lugar 2 /lugar 3 Eso? Link to comment
CeKiT Posted April 8, 2012 Author Share Posted April 8, 2012 Claro los 3 lugares pero mi error es que no puedo agregar los 4 comandos con distintos pociciones Link to comment
Castillo Posted April 8, 2012 Share Posted April 8, 2012 local posiciones = -- Creamos una tabla con 2 posiciones. { { 0, 0, 5 }, { 0, 0, 10 } } function consoleSetPlayerPosition ( commandName, numero ) local numero = tonumber ( numbero ) -- Convertimos el string a un numero. if ( numero ) then -- Si el numero es valido .. setElementPosition ( localPlayer, unpack ( posiciones [ numero ] ) ) end end addCommandHandler ( "setpos", consoleSetPlayerPosition ) Link to comment
CeKiT Posted April 8, 2012 Author Share Posted April 8, 2012 no nos entendimos osea los comandos se colocan asi: function consoleSetPlayerPosition ( commandName, posX, posY, posZ ) setElementPosition ( getLocalPlayer(), posX, posY, posZ ) end addCommandHandler ( "lugar1", consoleSetPlayerPosition ) function consoleSetPlayerPosition ( commandName, posX, posY, posZ ) setElementPosition ( getLocalPlayer(), posX, posY, posZ ) end addCommandHandler ( "lugar2", consoleSetPlayerPosition ) o tienen otra forma por que me da un error que no me funciona Link to comment
Edikosh998 Posted April 8, 2012 Share Posted April 8, 2012 No esta bien lo que dice castillo . No es necesario poner argumentos extra Link to comment
Castillo Posted April 8, 2012 Share Posted April 8, 2012 no nos entendimos osea los comandos se colocan asi: function consoleSetPlayerPosition ( commandName, posX, posY, posZ ) setElementPosition ( getLocalPlayer(), posX, posY, posZ ) end addCommandHandler ( "lugar1", consoleSetPlayerPosition ) function consoleSetPlayerPosition ( commandName, posX, posY, posZ ) setElementPosition ( getLocalPlayer(), posX, posY, posZ ) end addCommandHandler ( "lugar2", consoleSetPlayerPosition ) o tienen otra forma por que me da un error que no me funciona Tus funciones tienen el mismo nombre. Pero ademas, para que queres hacer que dos funciones hagan EXACTAMENTE lo mismo? Link to comment
iFoReX Posted April 8, 2012 Share Posted April 8, 2012 (edited) function consoleSetPlayerPosition ( commandName, posX, posY, posZ ) setElementPosition ( getLocalPlayer(), posX, posY, posZ ) end addCommandHandler ( "lugar1", consoleSetPlayerPosition ) addCommandHandler ( "lugar2", consoleSetPlayerPosition ) buee si qres 2 comandos para 1 misma funcion porq no aser esto ? no se si sirva ._. Edited April 8, 2012 by Guest Link to comment
Edikosh998 Posted April 8, 2012 Share Posted April 8, 2012 En ese caso Mota, Si pones /lugar1 pasa lo mismo Si pones /lugar2 pasa lo mismo no cambia nada Link to comment
iFoReX Posted April 8, 2012 Share Posted April 8, 2012 (edited) y en el script *de CeKiT tampoco cambia nada Edited April 8, 2012 by Guest Link to comment
Edikosh998 Posted April 8, 2012 Share Posted April 8, 2012 Por eso mismo, osea...no entiendo que lo que quiere CeKiT. Para mi lo que busca, es lo que puso Solid :) Link to comment
iFoReX Posted April 8, 2012 Share Posted April 8, 2012 Sip talvez es q no se supo explicar bien Link to comment
Renkon Posted April 9, 2012 Share Posted April 9, 2012 Hola! Tengo un error que al querer poner dos comandos asi function consoleSetPlayerPosition ( commandName, posX, posY, posZ ) setElementPosition ( getLocalPlayer(), posX, posY, posZ ) end addCommandHandler ( "setpos", consoleSetPlayerPosition ) function consoleSetPlayerPosition ( commandName, posX, posY, posZ ) setElementPosition ( getLocalPlayer(), posX, posY, posZ ) end addCommandHandler ( "setpos", consoleSetPlayerPosition ) no me funcionan como debo ponerlo se que es un problema de llaves y ubicacion del script pero no estoy muy acostumbrado a lua todabia, gracias desde ya! Si lo que querés hacer es que el usuario ingrese algo como /setpos 1 2 3, y lo teleporte a esos numeros está bien. En este caso vos pedís que ingrese el commandName, y posteriormente tres argumentos. También creo que deberías posteriormente, agregar una sentencia que revise si son numeros (tonumber). Ya que si no son números y son string, sería cualquier banana, y no funcionaría. Ahora, si vos querés hacer eso de crear un comando /lugar 1, 2, 3, o algo así, tenés que usar lo de Castillo. No obstante, voy a hacerle una pequeña modificación simplemente para que no pongas lugar 0, si no que empiezes del 1, que creo que es un poquito mas formal . Además, deberías agregar un pequeño if, que si ingresa un argumento MENOR que 1, indique que es un número inválido. local posiciones = -- Creamos una tabla con 2 posiciones. { { 0, 0, 5 }, -- lugar 1 { 0, 0, 10 } -- lugar 2 -- Y así podés agregar los lugares que quieras. } function consoleSetPlayerPosition ( commandName, numero ) local numero = tonumber ( numero ) -- Convertimos el string a un numero. if ( numero ) then if numero >= 1 then -- Revisa si numero es una variable numerica, y si es mayor a 1. setElementPosition ( localPlayer, unpack ( posiciones [ numero-1 ] ) ) else outputChatBox("Ha ingresado un número invalido. Sólo puede ingresar del 1 en adelante", 255, 255, 255, true) end else outputChatBox("No es un numero!", 255, 255, 255, true) end end addCommandHandler ( "lugar", consoleSetPlayerPosition ) Entonces, si el usuario ingresa /lugar 1, irá a las coordenadas [0] de la tabla. Las tablas van del 0 en adelante. POR ESO, en el unpack agregué el "numero-1". Ya que si ingresas lugar 1, será 1-1=0. Un saludo y espero que hayas entendido. Yo también tengo problemas de comprensión Link to comment
yaver123 Posted May 3, 2012 Share Posted May 3, 2012 entonces el que anda es local posiciones = { { 0, 0, 5 } { 0, 0, 10 } } function consoleSetPlayerPosition ( commandName, numero ) local numero = tonumber ( numero ) if ( numero ) then if numero >= 1 then setElementPosition ( localPlayer, unpack ( posiciones [ numero-1 ] ) ) else outputChatBox("Ha ingresado un número invalido. Sólo puede ingresar del 1 en adelante", 255, 255, 255, true) end else outputChatBox("No es un numero!", 255, 255, 255, true) end end addCommandHandler ( "lugar", consoleSetPlayerPosition ) y con eso sirve? Link to comment
Edikosh998 Posted May 3, 2012 Share Posted May 3, 2012 Pero si ingresas el numero 1 va unpackear el posiciones[0] y eso seria inexistente. Para el que caso pone posiciones[numero] y listo. Link to comment
iFoReX Posted May 3, 2012 Share Posted May 3, 2012 function consoleSetPlayerPosition ( ) setElementPosition ( localPlayer, PosX, PosY, PosZ ) end addCommandHandler ( "lugar1", consoleSetPlayerPosition ) function consoleSetPlayerPosition2 ( ) setElementPosition ( localPlayer, PosX, PosY, PosZ ) end addCommandHandler ( "lugar2", consoleSetPlayerPosition2 ) ai ise algo menos complicado Link to comment
Edikosh998 Posted May 3, 2012 Share Posted May 3, 2012 Aunque tenias que haber puesto....numero == 1 y en el otro numero == 2...en mi PUNTO DE VISTA, es mejor hacer un tabla y unpackear. Si llegas a tener mas de 4 posiciones es una paj** hacerlo uno por uno Link to comment
Recommended Posts