aka Blue Posted December 4, 2015 Posted December 4, 2015 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.
alex17 Posted December 4, 2015 Posted December 4, 2015 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)
aka Blue Posted December 4, 2015 Author Posted December 4, 2015 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...
alex17 Posted December 4, 2015 Posted December 4, 2015 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 ???
aka Blue Posted December 4, 2015 Author Posted December 4, 2015 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.
alex17 Posted December 4, 2015 Posted December 4, 2015 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)
aka Blue Posted December 4, 2015 Author Posted December 4, 2015 Tpea solo a un jugador. Al otro lo deja en el marker
alex17 Posted December 4, 2015 Posted December 4, 2015 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)
aka Blue Posted December 4, 2015 Author Posted December 4, 2015 É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 )
starksZ Posted December 4, 2015 Posted December 4, 2015 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
alex17 Posted December 4, 2015 Posted December 4, 2015 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 )
aka Blue Posted December 4, 2015 Author Posted December 4, 2015 Ahora lo pruebo. Gracias @starkZ Ignoraré totalmente tu comentario porque no tiene nada que ver con éste post.
starksZ Posted December 5, 2015 Posted December 5, 2015 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.
aka Blue Posted December 5, 2015 Author Posted December 5, 2015 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.
Recommended Posts