Ir para conteúdo

Featured Replies

Postado
7 horas atrás, Standard disse:

Blz, enquanto isso vou fazendo outras coisas

 

TFS 0.4 não tem o callback onThrow, eu tentei adaptar para o onMoveItem mas não deu certo, outras funções também não funcionam direito como isContainer. Você vai ter que usar OTX ou adicionar o callback na sua source.

 

--<event type="throw" name="tibiaking" event="script" value="tibiaking.lua"/>
--<event type="login" name="registerTK" event="script" value="tibiaking.lua"/>

local containerID = 2596
local containerPosition = {x = 586, y = 738, z = 8}
local neededItems = {2164, 2168, 2169}
local newItem = {2160, 1} -- ID, count

function onThrow(cid, item, fromPosition, toPosition)
	if toPosition.x == 65535 then
		if getTileItemById(containerPosition, containerID).uid > 0 then
			if isContainer(getTileItemById(containerPosition, containerID).uid) and item.id == neededItems[1] then
				addEvent(function()
					local x = 0
					for i = 0, 2 do
						if (getContainerItem(getTileItemById(containerPosition, containerID).uid, i).id == neededItems[i+1]) then
							x = x + 1
						end
					end
					if x > 2 then
						--doTransformItem(getTileItemById(containerPosition, containerID).uid, newItem[1], newItem[2])
						doRemoveItem(getTileItemById(containerPosition, containerID).uid)
						doCreateItem(newItem[1], newItem[2], containerPosition)
					end
				end, 1000)
			end
		end
	end
    return true
end

function onLogin(cid)
	registerCreatureEvent(cid, "tibiaking")
	return true
end

 

 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

  • Respostas 23
  • Visualizações 1.5k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • O ideal é você adicionar o callback na sua source ou migrar logo pra OTX, o script que te mandei ai está pronto e funcionando, além de não funcionar algumas coisas com onMoveItem, ele não verifica qua

  • Só extrair, busca nestes arquivos que citei.

Postado
  • Autor

Blz, tive uma idéia de uma gambiarra, vou testar e depois dou um retorno do resultado !

 

Edit: @WooX consegui trabalhar com a função onMoveitem e deu certo para a função isContainer, porém não deu certo para a função getContainerItem...

 

Sendo que, poderia ser pelo globalevents também ao invés de ser pela função onMoveitem ou onThrow igual você fez, afinal o que eu quero é que quando tenha os items certos nesse container esse item no chão se transforme em outro...

 

Fiz aqui e deu tudo certo, menos a parte para analisar os items certos que tem que ter no container, que seria a função getContainerItem, poderia fazer essa função apenas para um item ou explicar ela para que eu possa entender melhor como ela funciona ?

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

Postado
Em 21/12/2019 em 21:51, Standard disse:

Blz, tive uma idéia de uma gambiarra, vou testar e depois dou um retorno do resultado !

 

Edit: @WooX consegui trabalhar com a função onMoveitem e deu certo para a função isContainer, porém não deu certo para a função getContainerItem...

 

Sendo que, poderia ser pelo globalevents também ao invés de ser pela função onMoveitem ou onThrow igual você fez, afinal o que eu quero é que quando tenha os items certos nesse container esse item no chão se transforme em outro...

 

Fiz aqui e deu tudo certo, menos a parte para analisar os items certos que tem que ter no container, que seria a função getContainerItem, poderia fazer essa função apenas para um item ou explicar ela para que eu possa entender melhor como ela funciona ?

 

O ideal é você adicionar o callback na sua source ou migrar logo pra OTX, o script que te mandei ai está pronto e funcionando, além de não funcionar algumas coisas com onMoveItem, ele não verifica quando é movido para container (o onThrow verifica), note que o onThrow ta verificando a posição 65535. Fazer em globalevents eu não recomendo, teria que deixar um intervalo baixo de execução e isso nunca é uma boa ideia.

 

Sobre a função getContainerItem, não tem segredo, ela verifica um slot especifico do container, o código está certo no onThrow, se não funcionou com onMoveItem provavelmente também não vai funcionar com globalevents.

 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

Postado
  • Autor
4 horas atrás, WooX disse:

O ideal é você adicionar o callback na sua source ou migrar logo pra OTX, o script que te mandei ai está pronto e funcionando, além de não funcionar algumas coisas com onMoveItem, ele não verifica quando é movido para container (o onThrow verifica), note que o onThrow ta verificando a posição 65535. Fazer em globalevents eu não recomendo, teria que deixar um intervalo baixo de execução e isso nunca é uma boa ideia.

 

Sobre a função getContainerItem, não tem segredo, ela verifica um slot especifico do container, o código está certo no onThrow, se não funcionou com onMoveItem provavelmente também não vai funcionar com globalevents.

 

 

@WooX Entendi, porém não achei um tutorial da função onThrow para adicionar nas sources, você saberia de algum tópico ? Procurei bastante e não achei

Postado
34 minutos atrás, Standard disse:

 

@WooX Entendi, porém não achei um tutorial da função onThrow para adicionar nas sources, você saberia de algum tópico ? Procurei bastante e não achei

 

Vai ter que mexer em creatureevent.cpp, creatureevent.h e game.cpp. É mais fácil você migrar logo pra OTX2, talvez tenha que adaptar algumas coisas no seu datapack mas é bem menos trabalho.

 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

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.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo