Jump to content

script noob


Recommended Posts

Quero fazer um script bem simples para começar a aprender a mecher com mta, somente um marker que quando o player colide é teleportado para dentro do bar

alguem pode me dizer o código pra quando o player colidir com a marker "bar" ele ser teleportado pra dentro do bar eu agradeço, isso ai é só pra mim pegar o básico do básico porque eu ainda não sei porra nenhuma pois comecei ontem valeu galera

function Criarblip()

createBlip ( 2309.9768066406, -1643.4276123047, 14.827047348022, 49)

bar = createMarker  (  2309.9768066406, -1643.4276123047, 14.827047348022, "cylinder")


end
addEventHandler("onResourceStart", root, Criarblip)

 

Edited by luke250
Link to comment

O evento a ser utilizado nesse caso é onMarkerHit (Server-side) ou onClientMarkerHit (Client-Side). Em CreateMarker está faltando alguns argumentos.

Retirei de um script de roubo a lojas, onde é necessário o player entrar no marker. Sempre busque informações na wiki, ou se caso tente reproduzir algo que já tenha sido feito, procure scripts similares que será de grande ajuda.

--Server

local Entrar_Loja = createMarker(1315.5, -897.8, 40.5, "arrow", 1.5, 255, 255, 0, 255) --Marker
createBlipAttachedTo(Entrar_Loja, 17, 2, 0, 255, 0, 0, 0, 350) --Cria um icone no marker que será visto no radar


function Entrar (player)
  if source == Entrar_Loja and getElementType(player) == "player" then
    setElementInterior(player, 6, -27.32, -56.87, 1003.7) --Interior e posição para onde o jogador será teleportado (Caso deseje apenas a posição, utilize setElementPosition )
    setElementDimension(player, 1) --Dimensão para onde o jogador será teleportado
  end
end
addEventHandler("onMarkerHit", getRootElement(), Entrar)

 

Edited by SidneiJR
  • Thanks 1
Link to comment
  • Other Languages Moderators
8 hours ago, luke250 said:

 


function Criarblip()

createBlip ( 2309.9768066406, -1643.4276123047, 14.827047348022, 49)

bar = createMarker  (  2309.9768066406, -1643.4276123047, 14.827047348022, "cylinder")


end
addEventHandler("onResourceStart", root, Criarblip)

 

O evento "onResourceStart" geralmente não deve ser anexado ao root, pois fazendo isso, executará a função Criarblip quando qualquer resource for iniciado. Se você quer que execute somente quando este resource for iniciado use getResourceRootElement(getThisResource()).

Seria mais fácil vc criar o blip anexado ao marker em vez de ficar criando na mesma posição. Dessa forma, se você trocar a posição do marker, o blip trocará de posição junto com ele. Para isso, sugiro que use CreateBlipAttachedTo em vez de CreateBlip.

Para executar uma função ao colidir no marker, use o evento onMarkerHit.

Exemplo:

function Criarblip ()
    bar = createMarker  (2309.62, -1643.63, 13.8385, "cylinder") -- Marker para entrar no Bar.
    createBlipAttachedTo (bar, 49) -- Blip anexado ao marker bar.
    backBar = createMarker  (501.98, -67.75, 997.84, "cylinder") -- Marker para sair do Bar.
    setElementDimension (backBar, 1) -- Coloca o backBar na dimensão 1.
    setElementInterior (backBar, 11) -- Coloca o backBar no interior do Bar.
end
addEventHandler ("onResourceStart", getResourceRootElement(getThisResource()), Criarblip)

function teleBar (hitElement, matchingDimension)
    if hitElement and getElementType (hitElement) == "player" and matchingDimension then -- Se o elemento que colidiu no marker for um jogador e a colisão for na mesma dimensão que o marker está, então:
        if source == bar then -- Se o marker que foi colidido for o bar, então:
            setElementInterior (hitElement, 11) -- Coloca o jogador no interior 11.
            setElementDimension (hitElement, 1) -- Coloca o jogador na dimensão 1.
            setElementPosition (hitElement, 501.98, -69.75, 997.84, true) -- Coloca o jogador na posição que fica no interior do Bar.
        elseif source == backBar then -- Senão, se o marker que foi colidido for o backBar, então:
            setElementInterior (hitElement, 0) -- Coloca o jogador no interior 0. (exterior)
            setElementDimension (hitElement, 0) -- Coloca o jogador na dimensão 0.
            setElementPosition (hitElement, 2307.62, -1643.63, 13.8385, true) -- Coloca o jogador fora do Bar, perto do marker de entrada.
        end
    end
end
addEventHandler ("onMarkerHit", getRootElement(), teleBar) -- Ativa essa função quando qualquer marker for colidido.

Sempre leia a Wiki para aprender sobre determinados eventos.

Edited by Lord Henry
  • Thanks 2
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...