Jump to content

MTA:SA - Markers Interiores


Recommended Posts

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 ?

Link to post

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

Link to post
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
Link to post
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

Link to post
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

 

Link to post
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
Link to post
-----[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.

Link to post
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.

Link to post
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

Link to post

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

Link to post
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.

Link to post

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