luke250 Posted May 28, 2018 Share Posted May 28, 2018 (edited) 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 May 28, 2018 by luke250 Link to comment
SidneiJR Posted May 28, 2018 Share Posted May 28, 2018 (edited) 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 May 28, 2018 by SidneiJR 1 Link to comment
Other Languages Moderators Lord Henry Posted May 28, 2018 Other Languages Moderators Share Posted May 28, 2018 (edited) 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 May 28, 2018 by Lord Henry 2 Link to comment
luke250 Posted May 29, 2018 Author Share Posted May 29, 2018 obrigado pelas explicações ajudou pra caramba Link to comment
Other Languages Moderators Lord Henry Posted May 29, 2018 Other Languages Moderators Share Posted May 29, 2018 De nada. Nos ajude deixando um Thanks na resposta. 1 Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now