Jump to content

Rutas de un job


aka Blue

Recommended Posts

Bien, acabo de ver que al cruzar el primer marker, se marca el segundo pero lo que pasa es que al pasar por el segundo, no se marca el tercero y ahí se queda. Otra duda es, siendo server-side, ¿Los markers no los ve todo el mundo? (Si, setElementVisibleTo, pero pregunto)

Link to comment

Intenta con esto ahora:

local n = 0 -- Contador de rutas 
local tR = #rutas -- Obtenemos el total de rutas 
local marker = {} 
local theFirstTime = {} 
  
function nuevaRuta(nm) 
    local x, y, z = rutas[nm][1], rutas[nm][2], rutas[nm][3] 
    marker[nm] = createMarker ( x, y, z, "checkpoint", 10, 255, 255, 255, 255 ) 
end 
  
function siguienteRuta(player, nm) 
    if ( n <= tR ) then 
         
        local lastMarker = nm - 1 
        
        if isElement(marker[lastMarker]) then -- Si existe un marcador antes de crear uno nuevo. 
            destroyElement(marker[lastMarker]) 
            marker[lastMarker] = nil             
        end 
        nuevaRuta(nm) 
    else 
        destruirRuta(player) 
    end 
end 
  
function destruirRuta(player) 
    outputChatBox ( "Has acabado la ruta loco" ) 
    destroyElement(marker[tR]) 
    theFirstTime[player] = nil 
    marker[tR] = nil 
    n = 0 
end 
  
  
addEventHandler("onMarkerHit", resourceRoot, 
function(elem) 
    if getElementType(elem) == "vehicle" then 
        if getVehicleName(elem) ~= "Trashmaster" then return end 
        local thePlayer = getVehicleController(elem) 
        if thePlayer then 
            if isElement(marker[n]) then 
                n = n + 1 
                siguienteRuta(thePlayer, n) 
            end 
        end 
    end 
end) 
  
addEventHandler("onVehicleExit", root, 
function(player, seat) 
    if getVehicleName(source) ~= "Trashmaster" then return end 
    if isElement(marker[n]) then 
        destroyElement(marker[n]) 
        marker[n] = nil 
    end 
end) 
  
addEventHandler("onVehicleEnter", root, 
function(player, seat) 
    if getVehicleName(source) ~= "Trashmaster" then return end 
    
    if ( theFirstTime[player] == nil ) then 
        theFirstTime[player] = true 
    else 
        nuevaRuta(n) 
        return 
    end 
    n = n + 1 
    nuevaRuta(n) 
end) 

Los markers tienen un ultimo argumento que es la visibilidad para un elemento en especifico, como no lo estas colocando, siempre va a estar predefinido como getRootElement() es decir, será siempre visible para todos. Coloca el player como ultimo argumento del createMarker.

Leete mas la wiki.

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

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