Jump to content

Teleports en Mismo Script


CeKiT

Recommended Posts

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

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

no nos entendimos :P

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
no nos entendimos :P

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
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 ? xD no se si sirva ._.

Edited by Guest
Link to comment
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 :P. 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 xD

Link to comment
  • 4 weeks later...

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
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
  • Recently Browsing   0 members

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