Alexs Posted June 8, 2012 Share Posted June 8, 2012 Hola a Todos, Hare ciertas cosas en mi servidor y queria saber si un Marcador puede ser creado al tocar un marcador y que el primero sea eliminado, algo asi: local mark1 = createMarker ( x, y, z, "cylinder", 1.5, 255, 255, 0, 170 ) function altocar ( ) mark2 = createMarker(-2596.625, 579.358, 15.626, 'cylinder', 2.0, 255, 0, 0, 150) addEventHandler( "onMarkerHit", mark1, altocar ) function altocar ( ) mark3 = createMarker(-2596.625, 0.2, 15.626, 'cylinder', 2.0, 255, 0, 0, 150) addEventHandler( "onMarkerHit", mark2, altocar ) Serviria esto o hay que buscar otro metodo? Link to comment
Edikosh998 Posted June 8, 2012 Share Posted June 8, 2012 Queres hacer misiones con eso? Link to comment
Alexs Posted June 8, 2012 Author Share Posted June 8, 2012 Recolecciones, no tanto misiones, pero si, mas o menos es lo mismo, Aunque si se le pueden llamar misiones, Pero se Podria? Link to comment
Edikosh998 Posted June 8, 2012 Share Posted June 8, 2012 Mira, esto hize. Fijate si te va : markers = { [1] = {x,y,z} [2] = {x,y,z} }; elMarkerMision = createMarker(x,y,z,"cylinder"); -- Lo toy haciendo simple como hacer ejemplo function alTocar(hitElement) local num = getElementData(hitElement,"mision.uno"); -- Ponele que esta data lo setias cuando quiera comenzar una "X" mision if num then -- Si tiene mision destroyElement(elMarkerMision); -- Este marker lo tendrias que crear cuando COMIENZA LA MISION. Como tambien hace que la visibilidad sea unica a el elMarkerMision = createMarker(markers[num][1],markers[num][2],markers[num][3],"cylinder"); local nuevoNum = num + 1; setElementData(hitElement,"mision.uno",nuevoNum); end end addEventHandler("onMarkerHit",elMarkerMision,alTocar); Link to comment
Alexs Posted June 8, 2012 Author Share Posted June 8, 2012 No comprendo, si el elemento tiene el Data entonces las coordenadas del Marcador se cambian? pero para hacerlo con 5 o 6 marcadores a la vez?? A decir verdad no entendi en lo mas minimo y no comprendo de donde sale el [3] Edit: Ya entendi, pero cuando le pongo el Data al hitElement? Link to comment
Edikosh998 Posted June 8, 2012 Share Posted June 8, 2012 Es que es complicado de explicar , si no sabes de arrays. Osea, el 3 viene porque si ves bien , hay una tabla dentro de la otra, y esa misma tabla tiene 3 datos (por eso el [3]). El elementData guarda el numero de indexo de tabla. Te juro que no se como explicarte , ya son cosas que me salen porque si. Vos podes agregar markers en la tabla, y el "markerMision" lo creas en un comando (ponele, cuando el comienza la mision) y en ese mismo comando le agregas al jugador un elementData. Link to comment
Alexs Posted June 8, 2012 Author Share Posted June 8, 2012 Es que es complicado de explicar , si no sabes de arrays. Osea, el 3 viene porque si ves bien , hay una tabla dentro de la otra, y esa misma tabla tiene 3 datos (por eso el [3]).El elementData guarda el numero de indexo de tabla. Te juro que no se como explicarte , ya son cosas que me salen porque si. Vos podes agregar markers en la tabla, y el "markerMision" lo creas en un comando (ponele, cuando el comienza la mision) y en ese mismo comando le agregas al jugador un elementData. Y si la mision la comienza cuando toca el marcador?? No uso comandos en mi servidor por que no son realistas y mi servidor es RPG en el sentido de Realismo.... Podria usar un Colshape u otro marcador, pero aun me extracomplico, pero mi codigo no serviria para nada? Link to comment
Edikosh998 Posted June 8, 2012 Share Posted June 8, 2012 Si lo queres hacer con tu codigo es : local mark1 = createMarker ( x, y, z, "cylinder", 1.5, 255, 255, 0, 170 ) function altocar ( ) if source == mark1 then mark2 = createMarker(-2596.625, 579.358, 15.626, 'cylinder', 2.0, 255, 0, 0, 150) destroyElement(mark1) elseif source == mark2 then mark3 = createMarker(-2596.625, 0.2, 15.626, 'cylinder', 2.0, 255, 0, 0, 150) destroyElement(mark2) end end addEventHandler( "onMarkerHit", root, altocar ) Link to comment
Alexs Posted June 8, 2012 Author Share Posted June 8, 2012 Si lo queres hacer con tu codigo es : local mark1 = createMarker ( x, y, z, "cylinder", 1.5, 255, 255, 0, 170 ) function altocar ( ) if source == mark1 then mark2 = createMarker(-2596.625, 579.358, 15.626, 'cylinder', 2.0, 255, 0, 0, 150) destroyElement(mark1) elseif source == mark2 then mark3 = createMarker(-2596.625, 0.2, 15.626, 'cylinder', 2.0, 255, 0, 0, 150) destroyElement(mark2) end end addEventHandler( "onMarkerHit", root, altocar ) Esto es muchisimo mas simple :B Link to comment
Edikosh998 Posted June 8, 2012 Share Posted June 8, 2012 A mi me parecia mas facil el otro. Capaz mas dificil de entender, pero a la larga te termina ocupando menos. De todos modos, es mejor hacer lo que puedes comprender y te parece mas simple (por lo menos al principio). Link to comment
Alexs Posted June 8, 2012 Author Share Posted June 8, 2012 A mi me parecia mas facil el otro. Capaz mas dificil de entender, pero a la larga te termina ocupando menos. De todos modos, es mejor hacer lo que puedes comprender y te parece mas simple (por lo menos al principio). Si, No estoy aqui para aprender (no mucho) estoy por que me gusta y al menos ya comprendo mejor :B Muchas Gracias Edikosh y de todas formas con el codigo (el que me parece mas simple) Tambien puedo ponerle outputChatBox, con el otro no sabria ni donde agregarlo :B Link to comment
Recommended Posts