vallejo Posted August 12, 2016 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.
aka Blue Posted August 12, 2016 Posted August 12, 2016 Loopeas y les añades el mismo evento a todos en el propio loop.
aka Blue Posted August 12, 2016 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
vallejo Posted August 12, 2016 Author 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)
aka Blue Posted August 12, 2016 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.
vallejo Posted August 12, 2016 Author 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
aka Blue Posted August 12, 2016 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]
vallejo Posted August 12, 2016 Author 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 )
aka Blue Posted August 12, 2016 Posted August 12, 2016 En el último argumento de createMarker pon root, para que lo vea todo el sevidor
Recommended Posts