Ir para conteúdo
  • Cadastre-se

(Resolvido)Checar de fromPos até toPos


Ir para solução Resolvido por xWhiteWolf,

Posts Recomendados

Preciso checar se todos os "blocos" ao envolta do player são de grama, exemplo:

 

G = Grama

P = Player

 

G-G-G

G-P-G

G-G-G

 

Caso algum não for retorne false e lembrando que há vários id's de grama.

 

 

 

Kind regards,

 

            Mateusak

Não se esqueça de dar REP+ para quem te ajudou e caso seja a solução marcar como melhor resposta!

 

NÃO CLIQUE AQUI!

NEM AQUI!

________________________________________________________________________________________________________________________________________________________________________________________________________________________

 

A imaginação é mais importante que o conhecimento.” Albert Einstein

Link para o post
Compartilhar em outros sites
  • Solução

eu criei uma função que faz esse tipo de coisa, testa aí e me fala se funciona:
 

function hasGroundInDistance(cid, distance, tablegrama)

local checker = {} -- deixe assim

local pos = getThingPos(cid)
	for i = -distance, distance do
	for j = -distance, distance do
		local position = {x = pos.x + i, y = pos.y + j, z = pos.z, stackpos = 0}
		if i ~= 0 or j ~= 0 then
		local grama = getThingFromPos(position).itemid
			for k = 1, #tablegrama do
				if tablegrama[k] == grama then
				table.insert(checker, 1)
				end
			end
		end
	end
	end	
	
	if distance >= 1 then
		local total = 0
		for x = 1, distance do
			number = x * 2 + 1
			t = (number * 2) + (2* (number-2))
			total = total + t
		end	
	end

return (#checker == total and true or false)
end


pra usar vc precisa colocar isso daí tudo que tá no spoiler no começo do script e quando quiser saber se o player está cercado por grama/agua/lava/etc. vc faz:

local itemid = {todos os ids do piso que vc quer analisar}
local distancia = 1 -- distancia a ser analisada.. como vc quer só 1 sqm da posição do player a distancia é 1.
if hasGroundInDistance(cid, distancia, itemid) thenfaz isso
end

Se vc quisesse a seguinte area abaixo:
 

G = Grama

P = Player

 

G-G-G-G-G
G-G-G-G-G

G-G-P-G-G

G-G-G-G-G
G-G-G-G-G

 

 

Você colocaria distancia = 2.

Bom, espero ter ajudado


PS : minha internet quebrou e to pelo tablet.

no Lugar de local total = 0 coloca só total = 0

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo