Jump to content

[Duda] Insertar en una tabla y después eliminar


aka Blue

Recommended Posts

Posted

Buenas. Estoy creando un script y querría saber cómo hacer que al estar 2 jugadores dentro de un marker, les inserte en una especie de tabla y que al estar los dos, les envíe a cada uno a x posición asignada y después les retire de la tabla.

Sé que es algo simple pero es que ahora mismo no me viene a la cabeza ya que nunca trabajé con markers.

Posted

algo así talvez te sirva

Cplayer = {} 
  
  function markerJoin(element) 
     if getElementType( element ) == "player" then 
        table.insert(Cplayer, element) 
        if #Cplayer >= 2 then 
           for k, player in ipairs(Cplayer) 
              setElementPosition( player, ....) 
              table.remove(Cplayer, k) 
           end 
        end 
     end 
  end 
  addEventHandler("onMarkerHit", root, markerJoin) 
  
  
  function markerleave(element) 
     if getElementType( element ) == "player" then 
        for k, player in ipairs(Cplayer) 
           if player == element then 
              table.remove(Cplayer, k) 
           end 
        end 
     end 
  end 
  addEventHandler("onMarkerLeave", root, markerleave) 
  

Posted
algo así talvez te sirva
Cplayer = {} 
  
  function markerJoin(element) 
     if getElementType( element ) == "player" then 
        table.insert(Cplayer, element) 
        if #Cplayer >= 2 then 
           for k, player in ipairs(Cplayer) 
              setElementPosition( player, ....) 
              table.remove(Cplayer, k) 
           end 
        end 
     end 
  end 
  addEventHandler("onMarkerHit", root, markerJoin) 
  
  
  function markerleave(element) 
     if getElementType( element ) == "player" then 
        for k, player in ipairs(Cplayer) 
           if player == element then 
              table.remove(Cplayer, k) 
           end 
        end 
     end 
  end 
  addEventHandler("onMarkerLeave", root, markerleave) 
  

Genial. Pero, ¿no se puede hacer que cada jugador aparezca en un sitio diferente? Por ejemplo, uno en un taller, otro en x lugar...

Posted

quieres que lo manden a distintas posiciones , pero a cada jugador mandarlo en especifico a una posición o a cualquiera de los 2 jugadores mandarlo a X posición y al otro a la otra posición ???

Posted
quieres que lo manden a distintas posiciones , pero a cada jugador mandarlo en especifico a una posición o a cualquiera de los 2 jugadores mandarlo a X posición y al otro a la otra posición ???

Quiero que al haber 2 jugadores en el colshape. Automáticamente les tpeé uno a un lugar y otro a otro. Es que estoy creando como una mini-misión de dos jugadores.

Posted

Esto debería de funcionar.

Cplayer = {} 
Posiciones = { 
   {posx = 0, posy = 0, posz = 0, rot = 0},   
   {posx = 0, posy = 0, posz = 0, rot = 0}   
} 
  
  function markerJoin(element) 
     if getElementType( element ) == "player" then 
        table.insert(Cplayer, element) 
        if #Cplayer >= 2 then 
           for k, player in ipairs(Cplayer) 
              local data = Posiciones[k] 
              local x, y, z, rot = data.posx, data.posy, data.posz, data.rot 
              setElementPosition( player, x, y, z) 
              setElementRotation( player, 0, rot, 0) 
              tabel.remove(Cplayer, k) 
           end 
        end 
     end 
  end 
  addEventHandler("onMarkerHit", root, markerJoin) 
  
  
  function markerleave(element) 
     if getElementType( element ) == "player" then 
        for k, player in ipairs(Cplayer) 
           if player == element then 
              tabel.remove(Cplayer, k) 
           end 
        end 
     end 
  end 
  addEventHandler("onMarkerLeave", root, markerleave) 
  

Posted

me equivoque en algo prueba con esto

Cplayer = {} 
Posiciones = { 
   {posx = 0, posy = 0, posz = 0, rot = 0},   
   {posx = 0, posy = 0, posz = 0, rot = 0}   
} 
  
  function markerJoin(element) 
     if getElementType( element ) == "player" then 
        table.insert(Cplayer, element) 
        if #Cplayer >= 2 then 
           for k, player in ipairs(Cplayer) do 
              local data = Posiciones[k] 
              local x, y, z, rot = data.posx, data.posy, data.posz, data.rot 
              setElementPosition( player, x, y, z) 
              setElementRotation( player, 0, rot, 0) 
              tabel.remove(Cplayer, k) 
           end 
        end 
     end 
  end 
  addEventHandler("onMarkerHit", root, markerJoin) 
  
  
  function markerleave(element) 
     if getElementType( element ) == "player" then 
        for k, player in ipairs(Cplayer) do 
           if player == element then 
              tabel.remove(Cplayer, k) 
           end 
        end 
     end 
  end 
  addEventHandler("onMarkerLeave", root, markerleave) 
  

Posted

Éste es el código que tengo actualmente:

local marcador = createMarker ( -2690.48, -43.25, 3.33, 'cylinder', 3, 255, 255, 255, 40 ) 
  
local tabla = { } 
local posiciones = { 
     
    { posx = -2679.56, posy = -35.57, posz = 4.33, rot = 0 }, 
    { posx = -2691.02, posy = -26.71, posz = 4.33, rot = 0 } 
  
} 
  
function entrar ( element ) 
    if getElementType ( element ) == "player" then 
        table.insert ( tabla, element ) 
        if #tabla >= 2 then 
            for k, player in ipairs ( tabla ) do 
                local data = posiciones[k] 
                local x, y, z, rot = data.posx, data.posy, data.posz, data.rot 
                setElementPosition ( player, x, y, z ) 
                setElementRotation ( player, 0, rot, 0 ) 
                table.remove ( tabla, k ) 
            end 
        else 
            outputChatBox ( "¡Necesitas otro jugador!", player, 255, 0, 0 ) 
        end 
    end 
end 
addEventHandler ( "onMarkerHit", root, entrar ) 
  
function salir ( element ) 
    if getElementType ( element ) == "player" then 
        for k, player in ipairs ( tabla ) do 
            if player == element then 
                table.remove ( tabla, k ) 
            end 
        end 
    end 
end 
addEventHandler( "onMarkerLeave", root, salir ) 

Posted

Un consejo.

Cada vez que tengas una duda, no vengas inmediatamente aca al foro para que otro te la solucione, Usa tu cabeza para pensar, No seas dependiente.

Regla fundamental en programación:

Si no te gusta frustrarte ni pensar...

No sirves para la programación

Posted

reemplaza esta parte

function entrar ( element ) 
    if getElementType ( element ) == "player" then 
        table.insert ( tabla, element ) 
        if #tabla == 2 then 
            for i = 1, 2  do 
                local data = posiciones[i] 
                local x, y, z, rot = data.posx, data.posy, data.posz, data.rot 
                setElementPosition ( tabla[i], x, y, z ) 
                setElementRotation ( tabla[i], 0, rot, 0 ) 
                table.remove ( tabla, i ) 
            end 
        else 
            outputChatBox ( "¡Necesitas otro jugador!", element, 255, 0, 0 ) 
        end 
    end 
end 
addEventHandler ( "onMarkerHit", root, entrar ) 

Posted
Ahora lo pruebo. Gracias ;)

@starkZ Ignoraré totalmente tu comentario porque no tiene nada que ver con éste post.

Vi que eras dueño de un roleplay que no es nada fácil de hacer, Y veo qué no hay duda que tengas que no preguntes, Aún así siendo tan básicas gg Sin ofebner pero no se como fue que scripteastes tantos sistemas o quisas pides ayuda para todo eso en skype.

Posted
Ahora lo pruebo. Gracias ;)

@starkZ Ignoraré totalmente tu comentario porque no tiene nada que ver con éste post.

Vi que eras dueño de un roleplay que no es nada fácil de hacer, Y veo qué no hay duda que tengas que no preguntes, Aún así siendo tan básicas gg Sin ofebner pero no se como fue que scripteastes tantos sistemas o quisas pides ayuda para todo eso en skype.

Es que eso ni te incumbe, ¿Cómo te lo explico?. Yo con tablas habré trabajado lo mínimo (para gui's) entonces, es normal que pregunte, ¿o es que no tengo derecho a preguntar?

PD: Pido que no postees más aquí. Si tienes algún problema, tienes los mp's y mi Skype.

PD2: Por cierto. Ya lo solucioné. Gracias Alex por darme la idea. Pueden cerrar ya.

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

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