Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 03/06/22 in all areas

  1. -- tabela com a posição dos markers local markers = { { pos = { 505.2783203125, -1340.4423828125, 15.9609375 }, -- XYZ int = 0, -- Interior -> padrão 0 dim = 0 -- Dimensão -> padrão 0 }, } -- aqui criamos um element pai, isso servirá para que não precisemos adicionar um evento pra cara marker local markerStorage = { ['parentElement'] = createElement( 'marker.parent' ), ['markerData'] = { } } -- armazena as bikes alugadas local rentStorage = { } -- desconta o dinheiro do jogador local getPay = function( value, thePlayer ) local validValue = value and tonumber( value ) and value > 0 if not validValue then return false end local playerMoney = getPlayerMoney( thePlayer ) or 0 if playerMoney < value then return false end return takePlayerMoney( thePlayer, tonumber( value ) ) end local isElementWithinRentMarker = function( thePlayer ) for i, _ in pairs( markerStorage['markerData'] ) do if isElementWithinMarker( thePlayer, i ) then return true end end return false end -- verifica se o player tem uma bike, se tiver ele destroi a bike e retorna true local verifyAndDestroyRentVehicle = function( thePlayer ) -- verifica se a pessoa tem uma bike alugada if rentStorage[ thePlayer ] then -- verifica se a bike existe if isElement( rentStorage[ thePlayer ] ) then -- destrói a bike destroyElement( rentStorage[ thePlayer ] ) end -- zera a tabela rentStorage[ thePlayer ] = nil return true end return false end -- mensagem para quando alguém entrar no marker local markerOutputMessage = function( hit, dim ) local isValidElement = isElement( hit ) and getElementType( hit ) == 'player' if not isValidElement then return end local isElementInVehicle = getPedOccupiedVehicle( hit ) if isElementInVehicle then outputChatBox( 'Você precisa estar fora de um veículo para alugar uma bicicleta.', hit, 255, 255, 255 ) return end outputChatBox( 'Digite /alugarbike para alugar a bike', hit, 0, 255, 0 ) end -- comando de alugar a bike addCommandHandler( 'alugarbike', function( thePlayer ) -- verifica se o jogador está em um dos markeres de aluguel local isElementInMarker = isElementWithinRentMarker( thePlayer ) -- verifica se o jogador está em um veículo local isElementInVehicle = getPedOccupiedVehicle( thePlayer ) -- caso alguma das verificações seja verdadeira ele cancela a execução if not isElementInMarker or isElementInVehicle then return end -- destrói a bike caso o jogador já tenha uma if verifyAndDestroyRentVehicle( thePlayer ) then return end -- cobra o dinheiro do jogador local payment = getPay( 50, thePlayer ) or false -- verifica se o jogador tem dinheiro suficiente/se o pagamento foi feito if not payment then outputChatBox( '#FFFFFFAlgo deu errado com seu pagamento, verifique se você tem a quantia necessária para alugar uma bike', thePlayer, 255, 255, 255, true ) return end -- pega posição do jogador local playerPosX, playerPosY, playerZ = getElementPosition( thePlayer ) -- pega dimensão e o interior do marker local dim, int = markerStorage['markerData']['dim'] or 0, markerStorage['markerData']['int'] or 0 -- cria a bike e armazena na tabela rentStorage[ thePlayer ] = createVehicle( 510, playerPosX, playerPosY, playerZ ) -- seta o interior e a dimensão da bike setElementDimension( rentStorage[ thePlayer ], dim ) setElementInterior( rentStorage[ thePlayer ], int ) -- teleporta o jogador pra dentro da bike warpPedIntoVehicle( thePlayer, rentStorage[ thePlayer ] ) end) -- esse evento será chamado sempre que o resource ligar addEventHandler( 'onResourceStart', resourceRoot, function( ) -- fazemos um loop na tabela com as posições dos markers for i, v in ipairs( markers ) do -- cria o marker local marker = createMarker( v.pos[1], v.pos[2], v.pos[3], 'cylinder', 1, 255, 0, 0, 150 ) -- criamos o marker -- setamos o interior e a dimensão do marker setElementInterior( marker, v.int ) setElementDimension( marker, v.dim ) -- setamos o marker como elemento filho do elemento pai que criamos acima setElementParent( marker, markerStorage['parentElement'] ) -- armazenamos alguns dados do marker markerStorage['markerData'][ marker ] = { ['markerElement'] = marker, ['int'] = v.int, ['dim'] = v.dim } end addEventHandler('onMarkerHit', markerStorage['parentElement'], markerOutputMessage) end) -- esse evento será chamado sempre que alguém sair de um veículo addEventHandler( 'onVehicleExit', root, function( thePlayer ) verifyAndDestroyRentVehicle( thePlayer ) end) -- esse evento é chamado sempre que alguém sair do servidor addEventHandler( 'onPlayerQuit', root, function( ) verifyAndDestroyRentVehicle( source ) end) Não sei o que foi que eu fiz que mandei a versão com erro pra vc ao invés da corrigida, mas agora sim, aqui está a correta.
    1 point
  2. @greenops011 I checked and that screenshot_path coreconfig.XML setting is not used. Always defaults to the MTA installation directory / screenshots. You can open a feature request here if you think the user should be able to customize screenshots path.
    1 point
  3. Please provide us with your MTA serial. You can find this by running MTA, pressing F8 and typing serial
    0 points
×
×
  • Create New...