aka Blue Posted June 13, 2016 Author Share 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) Link to comment
starksZ Posted June 14, 2016 Share Posted June 14, 2016 Crea los markers en client side es mas fácil Link to comment
Enargy, Posted June 14, 2016 Share 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. Link to comment
aka Blue Posted June 14, 2016 Author Share 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 Link to comment
Recommended Posts