luke250 Posted May 28, 2018 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
SidneiJR Posted May 28, 2018 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
Other Languages Moderators Lord Henry Posted May 28, 2018 Other Languages Moderators 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
Other Languages Moderators Lord Henry Posted May 29, 2018 Other Languages Moderators Posted May 29, 2018 De nada. Nos ajude deixando um Thanks na resposta. 1
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