aka Blue Posted June 13, 2016 Author Posted June 13, 2016 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)
Enargy, Posted June 14, 2016 Posted June 14, 2016 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.
aka Blue Posted June 14, 2016 Author Posted June 14, 2016 Ya hice todo el job como yo quería. Tuve que editar bastantes cosas pero gracias @Gaberiel por ofrecerme tu ayuda Pueden cerrar si quieren y dejen el offtopic
Recommended Posts