Jump to content

RENDERIZAR OBJETOS


Recommended Posts

EU ACHEI O PROBLEMA, MAIS PRECISO DE AJUDA.

No meu servidor de DayZ ele tem objetos criados que são as GEAR itens que dropa em toda parte do mapa e na area 51 também e como a area 51 é editada com objetos também ela fica pistando eu vou mostrar imagens. 

UMA PARTE DO SCRIPT DA GAMEMODE,  ESSE SCRIPT ABAIXO É AS 'GEAR' a onde dropa os itens dentro de uma Col. 
OBS: esse escript é server.Lua

function createPickupsOnServerStart()
	iPickup = 0
	for i,pos in ipairs(pickupPositions["residential"]) do
		iPickup = iPickup + 1
		createItemLoot("residential",pos[1],pos[2],pos[3],iPickup)
	end
	for i,pos in ipairs(pickupPositions["industrial"]) do
		iPickup = iPickup + 1
		createItemLoot("industrial",pos[1],pos[2],pos[3],iPickup)
	end
	for i,pos in ipairs(pickupPositions["farm"]) do
		iPickup = iPickup + 1
		createItemLoot("farm",pos[1],pos[2],pos[3],iPickup)
	end
	for i,pos in ipairs(pickupPositions["supermarket"]) do
		iPickup = iPickup + 1
		createItemLoot("supermarket",pos[1],pos[2],pos[3],iPickup)
	end
	for i,pos in ipairs(pickupPositions["military"]) do
		iPickup = iPickup + 1
		createItemLoot("military",pos[1],pos[2],pos[3],iPickup)
	end
end
createPickupsOnServerStart()


function createItemLoot(lootPlace,x,y,z)
	col = createColSphere(x,y,z,1.25)
	setElementData(col,"itemloot",true)
	setElementData(col,"parent",lootPlace)
	setElementData(col,"MAX_Slots",12)
	for i, item in pairs(itemTable[lootPlace]) do
		if not tonumber(item[5]) then
			outputServerLog(item[1])
		end
		local value =  math.percentChance (item[5],math.random(1,2))
		setElementData(col,item[1],value)
	end
	refre:~emLoot (col,lootPlace,true)	
	return col
end

 

> Essa imagem é com os objetos da gamemode(ITENS) ATIVADO, olhe como ela some os objetos.

https://ibb.co/tDKn0Lg

> Já essa aqui é com esse aqui é com os (ITENS) DESATIVADO DA GAMEMODE, ela renderiza certinho o mapa.

https://ibb.co/YPsG9VH

Ai queria se colocando uma função de distancia da col de cada GEAR, iria resolver ou o que? 


OBRIGADO DESDE DE JÁ

Link to comment

Eu não entendi muito bem o seu problema, mas vou falar uma possível solução para o que eu entendi.

O GTA:SA Tem um limite de objetos na tela, se tiver muitos os mais longes iram sumir, uma forma(gambiarra) de resolver isso é você ligar o "Editor" esperar dar uma carregada em tudo e dar um restart na sua gamemode.

Link to comment

O problema é a quantidade de Obejetos proximo, meu servidor é de dayz e os Itens dele e tudo com objeto do GTA e tem as Gear, que nada mais é que umas parte que vc pega loot no chao igual o Free Fire, ai quando eu desativo esse Loot da gamemod os Objetos renderiza normal, mais quando eu ativo o Loot da Gamemod a renderização buga, ela falha igual as PRINT 

 

 > COM O LOOT "ATIVO"
https://ibb.co/tDKn0Lg

> COM LOOT "DESATIVADO" OBSERVE OS CARROS NO FUNDO
https://ibb.co/YPsG9VH

 

 

Uma solução que eu queria tentar é colocar para renderizar ou aparecer esses objetos do loot quando player chega proximo dele,  ai eu acho que nao iria bugar os loot igual ta agora

Edited by felipebaidoloko
Link to comment
18 hours ago, felipebaidoloko said:

O problema é a quantidade de Obejetos proximo, meu servidor é de dayz e os Itens dele e tudo com objeto do GTA e tem as Gear, que nada mais é que umas parte que vc pega loot no chao igual o Free Fire, ai quando eu desativo esse Loot da gamemod os Objetos renderiza normal, mais quando eu ativo o Loot da Gamemod a renderização buga, ela falha igual as PRINT 

 

 > COM O LOOT "ATIVO"
https://ibb.co/tDKn0Lg

> COM LOOT "DESATIVADO" OBSERVE OS CARROS NO FUNDO
https://ibb.co/YPsG9VH

 

 

Uma solução que eu queria tentar é colocar para renderizar ou aparecer esses objetos do loot quando player chega proximo dele,  ai eu acho que nao iria bugar os loot igual ta agora

usa getElementPosition..

Link to comment
9 hours ago, felipebaidoloko said:

como assim?

 

devo usar a onde?

Você deve fazer o seguinte..
 

local cx, cy, cz = getElementPosition ( loot ) --Aqui você deve colocar a posição do loot..
local px, py, pz = getElementPosition ( source ) --Aqui você acha a localização do player.
local distancia	= getDistanceBetweenPoints3D ( cx, cy, cz, px, py, pz ) 
if distancia >= 2 then --Caso a distância seja maior ou igual que "x", então..

 

Edited by MesaDowN
Corrigido um erro..
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...