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
Moderators Lord Henry Posted May 28, 2018 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 Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanks! Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment Discord Oficial do MTA: https://mtasa.com/discord Blacklist e Whitelist de Scripters: Planilha Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.
Moderators Lord Henry Posted May 29, 2018 Moderators Posted May 29, 2018 De nada. Nos ajude deixando um Thanks na resposta. 1 Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanks! Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment Discord Oficial do MTA: https://mtasa.com/discord Blacklist e Whitelist de Scripters: Planilha Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.
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