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