vallejo Posted August 12, 2016 Share Posted August 12, 2016 Buenas noches, me gustaría saber como puedo hacer que en mi mapa tengo múltiples marker, y cada que entre a cada uno de ellos que están ubicados en diferentes partes me abra siempre el mismo GUI. Link to comment
aka Blue Posted August 12, 2016 Share Posted August 12, 2016 Loopeas y les añades el mismo evento a todos en el propio loop. Link to comment
aka Blue Posted August 12, 2016 Share Posted August 12, 2016 Ésto supongo que debería funcionarte, no testeado. local marcadores = { { x, y, z, tipo, tamano, r, g, b, a }, { x, y, z, tipo, tamano, r, g, b, a }, { x, y, z, tipo, tamano, r, g, b, a }, { x, y, z, tipo, tamano, r, g, b, a }, } addEventHandler( "onResourceStart", resourceRoot, function( ) for i=1, #marcadores do local data = marcadores[ i ] local x, y, z, tipo, tamano, r, g, b, a = unpack( marcadores ) marker[ i ] = createMarker( x, y, z, tipo, tamano, r, g, b, a ) addEventHandler( "onMarkerHit", marker[ i ], chocarMarker ) end end ) function chocarMarker( elemento ) if getElementType( elemento ) == "player" then outputChatBox( "Has entrado en el marcador, socio", elemento ) end end Link to comment
vallejo Posted August 12, 2016 Author Share Posted August 12, 2016 Me podrías indicar como, yo tengo esto: local marker = createMarker(1536.7890625, -1670.009765625, 13.3828125, "cylinder", 1.5, 0 ,255, 0, 155) local marker = createMarker(1536.970703125, -1676.1572265625, 13.3828125, "cylinder", 1.5, 0 ,255, 0, 155) function Marcador(thePlayer, marker) triggerClientEvent(thePlayer, "mirarPanel", thePlayer) -- Utilizamos un evento Client end addEventHandler("onMarkerHit", marker, Marcador) Link to comment
aka Blue Posted August 12, 2016 Share Posted August 12, 2016 Ésto supongo que debería funcionarte, no testeado. local marcadores = { { x, y, z, tipo, tamano, r, g, b, a }, { x, y, z, tipo, tamano, r, g, b, a }, { x, y, z, tipo, tamano, r, g, b, a }, { x, y, z, tipo, tamano, r, g, b, a }, } addEventHandler( "onResourceStart", resourceRoot, function( ) for i=1, #marcadores do local data = marcadores[ i ] local x, y, z, tipo, tamano, r, g, b, a = unpack( marcadores ) marker[ i ] = createMarker( x, y, z, tipo, tamano, r, g, b, a ) addEventHandler( "onMarkerHit", marker[ i ], chocarMarker ) end end ) function chocarMarker( elemento ) if getElementType( elemento ) == "player" then outputChatBox( "Has entrado en el marcador, socio", elemento ) end end Ahi tienes. Link to comment
vallejo Posted August 12, 2016 Author Share Posted August 12, 2016 Me explicss para que sirve el unpack y aclararme, dudas y darme un significado de cada uso thePlayer localPlayer source client root getRootElement resourceRootElement, si me equivoco en alguno me corrigen Link to comment
aka Blue Posted August 12, 2016 Share Posted August 12, 2016 Unpack se utiliza para sacar todos los elementos o valores tiene una tabla, es decir sus valores. En este caso pues tenemos: x, y, z, tipo, tamano, r, g, b, a Entonces, en vez de realizar el loop e ir uno por uno así: local data = marcadores[i] local x, y, z, tipo, tamano, r, g, b, a = data.x, data.y, data.z, data.tipo, data.tamano, data.r... Pues es mejor usar unpack y ya está. Returns the [b]elements from the given table[/b]. This function is equivalent to return list[i], list[i+1], ···, list[j] Link to comment
vallejo Posted August 12, 2016 Author Share Posted August 12, 2016 marcadores ={ { 1536, -1670, 13, "cylinder", 1.5, 0 ,255, 0, 155 }, { 1536, -1676, 13, "cylinder", 1.5, 0 ,255, 0, 155 }, } for i=1, #marcadores do local x, y, z, tipo, tamano, r, g, b, a = unpack( marcadores ) createMarker( x, y, z, tipo, tamano, r, g, b, a ) end Utilizo esto y me sale error en el argumento 1, ademas el código como lo paso no funciona tiene error en la linea. marker[ i ] = createMarker( x, y, z, tipo, tamano, r, g, b, a ) Link to comment
aka Blue Posted August 12, 2016 Share Posted August 12, 2016 En el último argumento de createMarker pon root, para que lo vea todo el sevidor Link to comment
Recommended Posts