Jump to content

EvaRozik

Members
  • Posts

    2
  • Joined

  • Last visited

1 Follower

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

EvaRozik's Achievements

I ordered some spaghetti with marinara sauce and I got egg noodles and ketchup. I'm an average nobody.

I ordered some spaghetti with marinara sauce and I got egg noodles and ketchup. I'm an average nobody. (2/54)

2

Reputation

  1. local TABLE_DATA = {} -- criaremos uma tabela para armazenar os markers e blips local TABLE_LOCATIONS = { -- x, y, z, type, size, r, g, b, a, visibleTo, blipId -- posição X, posição Y, posição Z, tipo do marker, tamanho do marker, cor r, cor g, cor b, transparência, é visível para todos? (true para sim, false para não), id do blip {1222.713, -1799.09, 16.555, "cylinder", 1.5, 255, 255, 0, 130, true, 42}, {1261.461, -1831.496, 13.385, "checkpoint", 3, 255, 255, 0, 130, false, 19}, {1426.6989746094, -961.05804443359, 36.34884262085, "checkpoint", 3, 255, 255, 0, 130, false, 19}, } addEventHandler("onResourceStart", resourceRoot, function() -- separaremos a tabela em Markers e Blips para não confundirmos TABLE_DATA.Markers = {} TABLE_DATA.Blips = {} -- criaremos também uma tabela para os veículos que os jogadores irão obter TABLE_DATA.Vehicles = {} -- faremos o loop da tabela 'TABLE_LOCATIONS' for i, v in pairs(TABLE_LOCATIONS) do --[[ Atenção! Veja o comentário abaixo de 'TABLE_LOCATIONS' para se informar do que irei dizer. - Cada item da tabela possui uma posição de localização, vejamos abaixo: v[1] = x v[2] = y v[3] = z v[4] = type v[5] = size v[6] = r v[7] = g v[8] = b v[9] = a v[10] = visibleTo v[11] = blipId Logo, aplicaremos esses valores na função createMarker ]]-- TABLE_DATA.Markers[i] = createMarker(v[1], v[2], v[3], v[4], v[5], v[6], v[7], v[8], v[9]) -- configurar para aparecer ou não aparecer para todos setElementVisibleTo(TABLE_DATA.Markers[i], root, v[10]) -- criar e sincronizar o blip (ao marker) TABLE_DATA.Blips[i] = createBlipAttachedTo(TABLE_DATA.Markers[i], v[11]) -- adicionar um ID (e também salvaremos o blip) para cada marker, fazendo com que seja fácil obtê-lo em funções setElementData(TABLE_DATA.Markers[i], "marker_id", i) -- a letra i significa o total de markers dentro da tabela, neste caso temos apenas 3 items na tabela setElementData(TABLE_DATA.Markers[i], "marker_blip", TABLE_DATA.Blips[i]) -- adicionaremos uma função de hit/leave para todos os markers addEventHandler("onMarkerHit", TABLE_DATA.Markers[i], __markerHitFunction) addEventHandler("onMarkerLeave", TABLE_DATA.Markers[i], __markerLeaveFunction) end end ) function __markerHitFunction(hitElement, dimension) -- hitElement = jogador -- verificaremos se o hitElement é um jogador de fato e se a dimensão é a dele if getElementType(hitElement) == "player" and dimension then -- obtendo o id e blip do marker (lembre-se que source é o elemento do marker) local id = tonumber(getElementData(source, "marker_id")) local blip = getElementData(source, "marker_blip") -- verifique se o marker possui um id e um blip if id and blip then --[[ Visto que o marker "Início" está na primeira posição da tabela, então vamos verificar se o id dele é 1 e então executaremos sua função ]]-- if id == 1 then -- iremos executar a sua função, UltimaterSCR if TABLE_DATA.Vehicles[hitElement] and isElement(TABLE_DATA.Vehicles[hitElement]) then destroyElement(TABLE_DATA.Vehicles[hitElement]) end -- criar o veículo TABLE_DATA.Vehicles[hitElement] = createVehicle(413, 1239.748, -1829.575, 13.404, -0, 0, 274.52) warpPedIntoVehicle(hitElement, TABLE_DATA.Vehicles[hitElement]) -- configurar o elemento marker e blip para serem vistos apenas para este jogador setElementVisibleTo(source, hitElement, true) setElementVisibleTo(blip, hitElement, true) -- fazer as demais configurações e enviar a mensagem ao jogador setElementData(hitElement, "inicio", true) exports.Scripts_Dxmessages:outputDx(hitElement, "Entregue as encomendas nos pontos marcados em seu GPS", "info") end end end end Com certeza não ficou completo, mas espero que você entenda o conceito de loops. Sobre as funções, fiz apenas o básico e o código necessita ser continuado para que os markers de entrega sejam funcionais.
  2. addEventHandler("onClientRender", root, function() dxDrawLine3D(1492.86328125, 1191.3876953125, 10, 1492.86328125, 1697.3671875, 10, tocolor(0, 255, 0, 255), 25)--verde dxDrawLine3D(1477.4365234375, 1223.2587890625, 10, 1477.4365234375, 1697.3671875, 10, tocolor(255, 0, 0, 255), 25)--rojo dxDrawLine3D(1462.0029296875, 1191.3876953125, 10, 1462.0029296875, 1697.3671875, 10, tocolor(0, 255, 0, 255), 25)--verde end ) Isso deve funcionar. Caso não funcione, siga os passos abaixo: Se o resource estiver compactado (.zip), extraia-o e deixe-o como pasta; Abra o arquivo cujo você quer editar e cole o código acima; Vá até o seu servidor, use o comando /refresh e inicie o resource. Provavelmente, em alguma atualização, o MTA deixou de diferenciar arquivos compactados de pastas. Sendo assim, se o seu servidor detectar que existem "headshot.zip" como um arquivo compactado e "headshot" como pasta, ele irá dar preferência ao arquivo .zip. Pode ser que seja algum problema aqui, todavia nunca tive problemas como esse.
×
×
  • Create New...