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

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

 

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
  • Other Languages 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
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.

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

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