Ir para conteúdo
Banner com Efeitos

Featured Replies

Postado
  • Autor
1 hora atrás, Rusherzin disse:

Tenta assim:
 


function removeGroundItem(pos, itemid)
	local item = getTileItemById(pos, itemid).uid
	return item ~= 0 and doRemoveItem(item, 1)
end

function onUse(cid, item, frompos, item2, topos)
	local bau = item.uid
	local pos = getThingPos(bau)

	if getItemWeightById(item.itemid) - getItemWeight(bau) == 0 then
		addEvent(removeGroundItem, 10000, pos, item.itemid)
		return true
	end
end	

 



eu não sei realmente se é possivel fazer o que quero, mas acredito que sim... eu não consigo porque não entendo de callback

mas tem que realizer o addevent e depois fazer a verificação se tem 0 itens dentro.. vou usar portugol pra ve se vc consegue me entender.

> player abriu bau
> pegou ou não pegou item (tanto faz)
> aciona um addevent(de 10 segundos) para verificar se tem coisa dentro do bau ainda
    > se não tiver nada dentro exclui.
   > se ainda tiver coisa dentro não faz nada.

Scriptszinhos:

 

Não abandone seu tópico, quando você tiver a dúvida resolvida sozinho tente ensinar aos outros como resolve-la (você pode não ser o único com o problema) e quando ela for resolvida por outra pessoa não se esqueça de marcar como melhor resposta e deixar o gostei.

  • Respostas 12
  • Visualizações 532
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Tenta usar getThingfromPos ao invés de getThingfromPosition. Se não der, tenta adicionar a stackpos = 1 na variável que contém a posição.

  • Aqui funcionou numa boa, deve ter algum problema com a função de getContainerSize na sua base.

  • Tive uma ideia, tu pode checar se o peso do item está maior do que o peso original, usando getItemWeight(bau) para pegar o peso do baú (virá mais pesado se tiver algo dentro) e o peso do item pelo id

Postado
  • Solução

Acho que entendi, seria assim:
 

function removeEmptyChest(pos, itemid)
	local item = getTileItemById(pos, itemid).uid

	if getItemWeightById(itemid) - getItemWeight(item) == 0 then
		return item ~= 0 and doRemoveItem(item, 1)
	end
end

function onUse(cid, item, frompos, item2, topos)
	local bau = item.uid
	local pos = getThingPos(bau)

	addEvent(removeEmptyChest, 10000, pos, item.itemid)
end	

Se o cara abrir o baú e tirar o item antes desses 10s, o baú vai ser removido.

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Postado
  • Autor
1 hora atrás, Rusherzin disse:

Acho que entendi, seria assim:
 


function removeEmptyChest(pos, itemid)
	local item = getTileItemById(pos, itemid).uid

	if getItemWeightById(itemid) - getItemWeight(item) == 0 then
		return item ~= 0 and doRemoveItem(item, 1)
	end
end

function onUse(cid, item, frompos, item2, topos)
	local bau = item.uid
	local pos = getThingPos(bau)

	addEvent(removeEmptyChest, 10000, pos, item.itemid)
end	

Se o cara abrir o baú e tirar o item antes desses 10s, o baú vai ser removido.


Pronto agora sim! funcionou.. +rep <3 

 

mas caso o player abrir de novo nesses 10 segundos depois que tiver vazio da erro do tipo :/


(LuaInterface::luaGetItemWeight) Item not found
attempt to perform arithmetic on a boolean value

 

.. mas enfim muito obrigado :D caso n der pra arrumar ja ta otimo kk

 

@Rusherzin acho que resolveria com na function onUse colocasse um if se o bau tivesse vazio apenas sumiria o item (precausão caso 1 player abrisse o bau depois de o outro juntar o item) e outro if que se caso isso acontecer não rodar mais o addevent. ficou confuso o.O

 

Editado por pablobion (veja o histórico de edições)

Scriptszinhos:

 

Não abandone seu tópico, quando você tiver a dúvida resolvida sozinho tente ensinar aos outros como resolve-la (você pode não ser o único com o problema) e quando ela for resolvida por outra pessoa não se esqueça de marcar como melhor resposta e deixar o gostei.

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo