Jump to content

MTA:SA - Markers Interiores


Recommended Posts

Posted

Olá eu estou fazendo um script aonde utiliza o mesmo interior em 2 locais separados, dentro de 1 terá 1 marker que faz alguma coisa e no outro inteiror terá outro marker que faz outra coisa, porem quando eu entro em qualquer interior o mesmo marker está la mesmo mudando a dimensão alguem poderia me ajuda ?

  • Moderators
Posted

Thread's been moved into the Portuguese scripting section. The Scripting Tutorials section is for Scripting tutorials in English. :)

Give a man a fish and you feed him for a day. Teach him how to fish and you feed him for a lifetime - Lao Tzu

Posted (edited)
1 minuto atrás, Tut disse:

O tópico foi movido para a seção de script em português. A seção Tutoriais de script é para tutoriais de script em inglês.:)

Sorry admin, I don't know how to move this forum yet ?

Edited by FonsecaBF
Posted
2 horas atrás, miiguelz disse:

@FonsecaBFmostra-me o código.

Markers_Enter = {
    {11-343}, -- interior, dimensão, x, y, z
    {12133}, -- interior, dimensão, x, y, z
}
 
Markers_Exit = {
    {11-1.136718751.40527343753.1171875}, -- interior, dimensão, x, y, z
    {124.2597656252.8906253.1171875}, -- interior, dimensão, x, y, z
}
 
for i,v in ipairs(Markers_Enter) do
    Markers_Enter_House = createMarker(v[3], v[4], v[5], "cylinder"100050)
 
    addEventHandler("onMarkerHit", Markers_Enter_House, function(hitElementdim)
        if getElementType(hitElement) == "player" then
            setElementInterior(hitElement, v[1], 222.9902343751289.8769531251082.1328125)
            setElementDimension(hitElement, v[2])
        end
    end)
end
 
for _,v in ipairs(Markers_Exit) do
    Markers_Exit_House = createMarker(223.1347656251286.81082"cylinder"100050)
    setElementDimension(Markers_Exit_House, v[2])
    
    addEventHandler("onMarkerHit", Markers_Exit_House, function(hitElementdim)
        if getElementType(hitElement) == "player" then
            setElementInterior(hitElement, 0, v[3], v[4], v[5])
            setElementDimension(hitElement, 0)
        end
    end)
end
2 hours ago, miiguelz said:

@FonsecaBFmostra-me o código.

Aqui eu estou fazendo a função de entrar e sair de um interior de uma casa, porem quando a pessoa sai da casa ela possa spawnar em qualquer posição da tabela

Posted
Markers_Enter = {
    {1, 1, -3, 4, 3}, -- interior, dimensão, x, y, z
    {1, 2, 1, 3, 3}, -- interior, dimensão, x, y, z
}

Markers_Exit = {
    {1, 1, -1.13671875, 1.4052734375, 3.1171875}, -- interior, dimensão, x, y, z
    {1, 2, 4.259765625, 2.890625, 3.1171875}, -- interior, dimensão, x, y, z
}

Markers_Enter_House = {}

for i,v in ipairs(Markers_Enter) do
    Markers_Enter_House[i] = createMarker(v[3], v[4], v[5], "cylinder", 1, 0, 0, 0, 50)
    
    addEventHandler("onMarkerHit", Markers_Enter_House[i], function(hitElement)
        if getElementType(hitElement) == "player" then
            setElementInterior(hitElement, v[1], 222.990234375, 1289.876953125, 1082.1328125)
            setElementDimension(hitElement, v[2])
        end
    end)
end

Markers_Exit_House = {}

for _,v in ipairs(Markers_Exit) do
    Markers_Exit_House[i] = createMarker(223.134765625, 1286.8, 1082, "cylinder", 1, 0, 0, 0, 50)
    setElementDimension(Markers_Exit_House, v[2])
    
    addEventHandler("onMarkerHit", Markers_Exit_House[i], function(hitElement)
        if getElementType(hitElement) == "player" then
            setElementInterior(hitElement, 0, v[3], v[4], v[5])
            setElementDimension(hitElement, 0)
        end
    end)
end

 

DISCORD : LucasST#1725 ?

DÚVIDAS ESTOU SEMPRE A DISPOSIÇÃO

Posted (edited)
3 hours ago, LucasST said:


Markers_Enter = {
    {1, 1, -3, 4, 3}, -- interior, dimensão, x, y, z
    {1, 2, 1, 3, 3}, -- interior, dimensão, x, y, z
}

Markers_Exit = {
    {1, 1, -1.13671875, 1.4052734375, 3.1171875}, -- interior, dimensão, x, y, z
    {1, 2, 4.259765625, 2.890625, 3.1171875}, -- interior, dimensão, x, y, z
}

Markers_Enter_House = {}

for i,v in ipairs(Markers_Enter) do
    Markers_Enter_House[i] = createMarker(v[3], v[4], v[5], "cylinder", 1, 0, 0, 0, 50)
    
    addEventHandler("onMarkerHit", Markers_Enter_House[i], function(hitElement)
        if getElementType(hitElement) == "player" then
            setElementInterior(hitElement, v[1], 222.990234375, 1289.876953125, 1082.1328125)
            setElementDimension(hitElement, v[2])
        end
    end)
end

Markers_Exit_House = {}

for _,v in ipairs(Markers_Exit) do
    Markers_Exit_House[i] = createMarker(223.134765625, 1286.8, 1082, "cylinder", 1, 0, 0, 0, 50)
    setElementDimension(Markers_Exit_House, v[2])
    
    addEventHandler("onMarkerHit", Markers_Exit_House[i], function(hitElement)
        if getElementType(hitElement) == "player" then
            setElementInterior(hitElement, 0, v[3], v[4], v[5])
            setElementDimension(hitElement, 0)
        end
    end)
end

 

Este modelo está funcionando normalmente tambem, porem como e possivel deixar para ele sair pelo mesmo lugar que entrou, exemplo eu entro em um bar e saio pela porta dele, porem ele está saindo aleatoriamente, dando spawn em qualquer localização da tabela gerando aleatoriamente

 

Markers_Enter = {
    {11-2543}, -- interior, dimensão, x, y, z
    {12133}, -- interior, dimensão, x, y, z
}
 
Markers_Exit = {
    {11-27.136718751.40527343753.1171875}, -- interior, dimensão, x, y, z
    {1227.2597656252.8906253.1171875}, -- interior, dimensão, x, y, z
}
 
Markers_Enter_House = {}
 
for i,v in ipairs(Markers_Enter) do
    Markers_Enter_House = createMarker(v[3], v[4], v[5], "cylinder"100050)
    
    addEventHandler("onMarkerHit", Markers_Enter_Housefunction(hitElement)
        if getElementType(hitElement) == "player" then
            setElementInterior(hitElement, v[1], 222.9902343751289.8769531251082.1328125)
            setElementDimension(hitElement, v[2])
        end
    end)
end
 
Markers_Exit_House = {}
 
for i,v in ipairs(Markers_Exit) do
    Markers_Exit_House = createMarker(223.1347656251286.81082"cylinder"100050)
    setElementDimension(Markers_Exit_House, v[2])
    setElementInterior(Markers_Exit_House, v[1])
    
    addEventHandler("onMarkerHit", Markers_Exit_Housefunction(hitElement)
        if getElementType(hitElement) == "player" then
            setElementInterior(hitElement, 0, v[3], v[4], v[5])
            setElementDimension(hitElement, 0)
        end
    end)
end
Edited by FonsecaBF
  • Moderators
Posted (edited)

@FonsecaBF utilize o botão <> do fórum para postar seus scripts em vez de colar direto no texto.

OfSmewi.png

Você pode ver as regras do fórum aqui:

 

Edited by Lord Henry

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

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.

Posted
-----[Marker Entrar] -----

Markers_Enter = {
    {1, 1, -3, 4, 3}, -- interior, dimensão, x, y, z
    {1, 2, 1, 3, 3}, -- interior, dimensão, x, y, z
}
 
Markers_Enter_House = {} 

for i,v in ipairs(Markers_Enter) do
    Markers_Enter_House[i] = createMarker(v[3], v[4], v[5], "cylinder", 1, 0, 0, 0, 50)
    createBlipAttachedTo(Markers_Enter_House[i],10)
 
    addEventHandler("onMarkerHit", Markers_Enter_House[i], function(hitElement)
        if getElementType(hitElement) == "player" then
            setElementInterior(hitElement, Markers_Enter[i][1], 222.990234375, 1289.876953125, 1082.1328125)
            setElementDimension(hitElement, Markers_Enter[i][2])
        end
    end)
end



-----[Marker Sair] -----

Markers_Exit_House = {}

Markers_Exit = {
    {1, 1, -1.13671875, 1.4052734375, 3.1171875}, -- interior, dimensão, x, y, z
    {1, 2, 4.259765625, 2.890625, 3.1171875}, -- interior, dimensão, x, y, z
}

for i,v in ipairs(Markers_Exit) do
    Markers_Exit_House[i] = createMarker(223.134765625, 1286.8, 1082, "cylinder", 1, 0, 0, 0, 50)
    setElementDimension(Markers_Exit_House[i], v[2])
    
    addEventHandler("onMarkerHit", Markers_Exit_House[i], function(hitElement)
        if getElementType(hitElement) == "player" then
            setElementInterior(hitElement, 0, Markers_Exit[i][3],Markers_Exit[i][4],Markers_Exit[i][5])
            setElementDimension(hitElement, 0)
        end
    end)
end

Tente isso.

DISCORD : LucasST#1725 ?

DÚVIDAS ESTOU SEMPRE A DISPOSIÇÃO

Posted
13 minutes ago, LucasST said:

-----[Marker Entrar] -----

Markers_Enter = {
    {1, 1, -3, 4, 3}, -- interior, dimensão, x, y, z
    {1, 2, 1, 3, 3}, -- interior, dimensão, x, y, z
}
 
Markers_Enter_House = {} 

for i,v in ipairs(Markers_Enter) do
    Markers_Enter_House[i] = createMarker(v[3], v[4], v[5], "cylinder", 1, 0, 0, 0, 50)
    createBlipAttachedTo(Markers_Enter_House[i],10)
 
    addEventHandler("onMarkerHit", Markers_Enter_House[i], function(hitElement)
        if getElementType(hitElement) == "player" then
            setElementInterior(hitElement, Markers_Enter[i][1], 222.990234375, 1289.876953125, 1082.1328125)
            setElementDimension(hitElement, Markers_Enter[i][2])
        end
    end)
end



-----[Marker Sair] -----

Markers_Exit_House = {}

Markers_Exit = {
    {1, 1, -1.13671875, 1.4052734375, 3.1171875}, -- interior, dimensão, x, y, z
    {1, 2, 4.259765625, 2.890625, 3.1171875}, -- interior, dimensão, x, y, z
}

for i,v in ipairs(Markers_Exit) do
    Markers_Exit_House[i] = createMarker(223.134765625, 1286.8, 1082, "cylinder", 1, 0, 0, 0, 50)
    setElementDimension(Markers_Exit_House[i], v[2])
    
    addEventHandler("onMarkerHit", Markers_Exit_House[i], function(hitElement)
        if getElementType(hitElement) == "player" then
            setElementInterior(hitElement, 0, Markers_Exit[i][3],Markers_Exit[i][4],Markers_Exit[i][5])
            setElementDimension(hitElement, 0)
        end
    end)
end

Tente isso.

Infelizmente não foi, mas agradeço a ajuda.

Posted

Testei no servidor Local, antes de mandar o código e funcionou normalmente um estava levando para a Dimensão 1 e outro Para o 2

DISCORD : LucasST#1725 ?

DÚVIDAS ESTOU SEMPRE A DISPOSIÇÃO

Posted
4 minutes ago, LucasST said:

Testei no servidor Local, antes de mandar o código e funcionou normalmente um estava levando para a Dimensão 1 e outro Para o 2

Sim isso já esta normal desde o primeiro codigo, porem eu queria que o personagem saise nao aleatorio, exemplo(eu entro em um bar e saio pela mesma por ta que entrei.) já no script ele fica aleatorizando

Posted

Acho que dei uma entendida no que você precisa

-----[Marker Entrar] -----

Markers_Enter = {
    {1, 1, -3, 4, 3}, -- interior, dimensão, x, y, z
    {1, 2, 1, 3, 3}, -- interior, dimensão, x, y, z
}
 
Markers_Enter_House = {} 

for i,v in ipairs(Markers_Enter) do
    Markers_Enter_House[i] = createMarker(v[3], v[4], v[5], "cylinder", 1, 0, 0, 0, 50)
    createBlipAttachedTo(Markers_Enter_House[i],10)
 
    addEventHandler("onMarkerHit", Markers_Enter_House[i], function(hitElement)
        if getElementType(hitElement) == "player" then
            setElementInterior(hitElement, Markers_Enter[i][1], 222.990234375, 1289.876953125, 1082.1328125)
            setElementDimension(hitElement, Markers_Enter[i][2])
        end
    end)
end

function returnCoordsFromDimension(dimensao)
    for i,v in ipairs(Markers_Enter) do
        if v[2] == dimensao then
            return v[3],v[4],v[5]
        end
    end
    return false
end

-----[Marker Sair] -----

Markers_Exit_House = {}

Markers_Exit = {
    {1, 1, -1.13671875, 1.4052734375, 3.1171875}, -- interior, dimensão, x, y, z
    {1, 2, 4.259765625, 2.890625, 3.1171875}, -- interior, dimensão, x, y, z
}

for i,v in ipairs(Markers_Exit) do
    Markers_Exit_House[i] = createMarker(223.134765625, 1286.8, 1082, "cylinder", 1, 0, 0, 0, 50)
    setElementDimension(Markers_Exit_House[i], v[2])
    
    addEventHandler("onMarkerHit", Markers_Exit_House[i], function(hitElement)
        if getElementType(hitElement) == "player" then
            local x,y,z = returnCoordsFromDimension(getElementDimension(hitElement))
            if x,y,z then
                setElementInterior(hitElement, 0, x,y,z)
                setElementDimension(hitElement, 0)
            end
        end
    end)
end

Nesse código que mandei acima ele pega na tabela Markers_Enter qual a localização que ele vai sair pela minha dimensão para ele voltar no mesmo lugar que ele entrou

DISCORD : LucasST#1725 ?

DÚVIDAS ESTOU SEMPRE A DISPOSIÇÃO

Posted
7 minutes ago, LucasST said:

Acho que dei uma entendida no que você precisa


-----[Marker Entrar] -----

Markers_Enter = {
    {1, 1, -3, 4, 3}, -- interior, dimensão, x, y, z
    {1, 2, 1, 3, 3}, -- interior, dimensão, x, y, z
}
 
Markers_Enter_House = {} 

for i,v in ipairs(Markers_Enter) do
    Markers_Enter_House[i] = createMarker(v[3], v[4], v[5], "cylinder", 1, 0, 0, 0, 50)
    createBlipAttachedTo(Markers_Enter_House[i],10)
 
    addEventHandler("onMarkerHit", Markers_Enter_House[i], function(hitElement)
        if getElementType(hitElement) == "player" then
            setElementInterior(hitElement, Markers_Enter[i][1], 222.990234375, 1289.876953125, 1082.1328125)
            setElementDimension(hitElement, Markers_Enter[i][2])
        end
    end)
end

function returnCoordsFromDimension(dimensao)
    for i,v in ipairs(Markers_Enter) do
        if v[2] == dimensao then
            return v[3],v[4],v[5]
        end
    end
    return false
end

-----[Marker Sair] -----

Markers_Exit_House = {}

Markers_Exit = {
    {1, 1, -1.13671875, 1.4052734375, 3.1171875}, -- interior, dimensão, x, y, z
    {1, 2, 4.259765625, 2.890625, 3.1171875}, -- interior, dimensão, x, y, z
}

for i,v in ipairs(Markers_Exit) do
    Markers_Exit_House[i] = createMarker(223.134765625, 1286.8, 1082, "cylinder", 1, 0, 0, 0, 50)
    setElementDimension(Markers_Exit_House[i], v[2])
    
    addEventHandler("onMarkerHit", Markers_Exit_House[i], function(hitElement)
        if getElementType(hitElement) == "player" then
            local x,y,z = returnCoordsFromDimension(getElementDimension(hitElement))
            if x,y,z then
                setElementInterior(hitElement, 0, x,y,z)
                setElementDimension(hitElement, 0)
            end
        end
    end)
end

Nesse código que mandei acima ele pega na tabela Markers_Enter qual a localização que ele vai sair pela minha dimensão para ele voltar no mesmo lugar que ele entrou

Ok, lucas obrigado pela ajuda consegui fazer oque eu queria agora, Great job.

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...