TA

Posiçao do efeito

Por Taiger, 20 de mar. de 2020 em Scripts

2
783
TaigerT
20 de março de 2020 às 11:58

Bom dia pessoal.

Estou com um problema em um sistema de efeito ao dropar itens.

 

1400700694_efeitodrop.png.730a6ae8f58316550425befea97daa3f.png

 

Tenho um sistema que aparece o efeito de setas ao dropar itens, raros, stones etc, sao 3 tipos de setas, quando dropa um item aparece o efeito em cima do corpo certinho, mas no caso se dropa mais de um item que tenha o mesmo efeito, ou outro item com efeito diferente os efeitos se deslocam para x e y +1 como esta no sistema. 

Queria se por exemplo dropasse 1 stone e um raro, são duas setas diferentes, dai so apareceria o efeito da stone e cancelasse o outro efeito.

 

Segue o sistema. Se alguém pude me ajudar eu agradeço.

 

function dropEffect(pos, eff, n)
	if n > 0 then
		pos.x, pos.y = pos.x +1, pos.y +1
		doSendMagicEffect(pos, eff)
		addEvent(dropEffect, 1000, pos, eff, n-1)
	end
end

if count > 0 then
	if isInArray(specialDropList, item.id) then
		dropEffect(pos, specialDropEff, 1)
	elseif isInArray(specialDropList2, item.id) then
		dropEffect(pos, specialDrop2Eff, 1)
	elseif isStone(item.id) then
		dropEffect(pos, stoneDropEff, 1)
	elseif isOrb(item.id) then
		dropEffect(pos, orbDropEff, 1)
end

 

Yan OliveiraY
25 de março de 2020 às 00:43

Testa e veja se funciona assim:

 

function dropEffect(pos, eff, n)
	if n > 0 then
		pos.x, pos.y = pos.x +1, pos.y +1
		doSendMagicEffect(pos, eff)
		addEvent(dropEffect, 1000, pos, eff, n-1)
	end
end

if count > 0 then

	if isStone(item.id) then
          dropEffect(pos, stoneDropEff, 1)
        return true
        end 

	if isInArray(specialDropList, item.id) then
		dropEffect(pos, specialDropEff, 1)

	elseif isInArray(specialDropList2, item.id) then
		dropEffect(pos, specialDrop2Eff, 1)

	elseif isOrb(item.id) then
		dropEffect(pos, orbDropEff, 1)
end