Jump to content

Como remover objetos não selecionáveis do mapa


Recommended Posts

  • 9 months later...
  • 1 year later...
On 12/04/2017 at 12:56, Lord Henry said:

Na verdade é bem simples por meio de código.
Vc só precisa saber o ID do objeto e informar uma coordenada bem próxima ao objeto, não precisa ser exatamente no centro do objeto.

Para descobrir o ID de um objeto que não é selecionável, dai é algo mais complexo que exige ferramentas externas. Para isso, vamos no site http://dev.prineside.com e clicamos no botão Model Search by Map Position.
Após selecionada a posição no mapa, ele vai mostrar todos os objetos (selecionáveis e não selecionáveis) em um raio de 500 metros, em ordem dos mais próximos para os mais distantes.
Na lista que aparecer, encontre o objeto que você deseja remover e anote o ID desse objeto.

Descobrimos o ID do objeto, e agora?
Agora já passou a parte mais difícil, o resto é programar um script básico de remoção de objetos por ID. Para isso vamos usar a função RemoveWorldModel.
Essa função é bem simples de se usar, basta informar o ID do objeto a ser removido, o raio cuja remoção será aplicada e as coordenadas do ponto onde vai começar a remoção.
Se você quiser restaurar o objeto quando o script for desligado, use RestoreWorldModel. Ideal para colocar em scripts de mapas, casas ou bases.
O script funciona tanto em server-side quanto em client-side, mas em geral utiliza-se server-side.

O Script deve ficar como esse:


function removeBagulho ()
    removeWorldModel (5681, 15, 1911.3, -1776.25, 13.38) --Remove o objeto do lava-jato próximo ao posto de LS quando o resource é iniciado.
end
addEventHandler ("onResourceStart", getResourceRootElement(getThisResource()), removeBagulho)

function restauraBagulho ()
    restoreWorldModel (5681, 15, 1911.3, -1776.25, 13.38) --Restaura o objeto quando o resource é desativado.
end
addEventHandler ("onResourceStop", getResourceRootElement(getThisResource()), restauraBagulho)

Esse script vc adiciona junto com o resource do seu mapa. Você pode optar por deixar isso em um script separado ou deixar junto com algum script que vc já tenha no seu mapa por exemplo scripts de portões, server-side.

Vlw, flw.
Deixe seu LIKE se ajudou você.
Dúvidas comente abaixo.

  Reveal hidden contents

Obs: Nem todos os objetos podem ser removidos com essa função, por exemplo aquelas plantas do deserto que se você bater com veículo elas podem quebrar. Isso ocorre por bug apenas. Infelizmente também não podem ser removidas no Map Editor, apesar de ser possível selecioná-las. A única saída seria criar outro script que altere a textura e a colisão dessas arvores, mas isso já exige conhecimento avançado com arquivos TXD e DFF. Tanto que se você tentar procurar o ID dessas árvores seguindo os passos acima, vai perceber que o site não encontra essas árvores na pesquisa.

 

o numero 15 serve exatamente para o que ?

  • Like 1
Link to comment
9 minutes ago, SchmidtNeO said:

o numero 15 serve exatamente para o que ?

  • radius: A floating point number representing the radius that will be eliminated.

Como foi citado no tópico é o raio de onde a remoção sera aplicada, ele usou 15, mas você pode usar, 30, 50, 100, enfim.

  • Like 1
Link to comment
8 minutes ago, Jonas^ said:
  • radius: A floating point number representing the radius that will be eliminated.

Como foi citado no tópico é o raio de onde a remoção sera aplicada, ele usou 15, mas você pode usar, 30, 50, 100, enfim.

sim, fiz tudo corretamente mas não removeu, eu queria remover aquelas bandeiras que ficam na frente da prefeitura.

https://imgur.com/a/2G2X5B2

 

Edited by SchmidtNeO
Link to comment
  • Lord Henry featured this topic
  • 3 weeks later...

No meu caso removo bastante objetos em lugares diferentes, e pra otimizar e ganhar umas linhas a menos utilizo esse com pairs

 

local objects = { --- ID, Distancia, XYZ ---
    {1468, 1000, 2475.6000976563, -1652.0999755859, 13.699999809265},
    {1280, 1000, 1075.9566650391, -1786.4718017578, 13.753671646118},
    {1230, 1000, 2475.6000976563, -1652.0999755859, 13.699999809265},  
}

function removeObjects()
    for k, v in pairs(objects) do
        if v[6] then
            removeWorldModel(v[1], v[2], v[3], v[4], v[5], v[6])
        else
            removeWorldModel(v[1], v[2], v[3], v[4], v[5])
        end
    end
end

addEventHandler("onClientResourceStart", resourceRoot, function()
    removeObjects()
end)

 

Link to comment
  • 2 weeks later...
On 30/09/2020 at 17:30, Lord Henry said:

@M4DD NØGessa distância está muito alta. Pode acabar removendo outros objetos com mesmo ID que estejam dentro dessa área. A não ser que seja esse o objetivo.

Pior que é essa intenção mesmo, remover postes, arvores e objetos estéticos por todo mapa, por mais pouco que seja, em pcs mais fracos da uma ajuda no FPS, mais pelos testes que eu fiz não mudou muita coisa, é que tem uns detalhes muito mal feitos do GTA SA que me incomodam ai eu removo de LS pra ficar mais minimalista e bonito

Link to comment

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