antiblock
diamwall
  • Chatbox

    Did you check out our Discord? https://discord.gg/FFdvMjk9xA
    You don't have permission to chat.
    Load More
  • 0
Sign in to follow this  
DeathOfKill

Quest para dropar item direto no inventario

Question

Olá galera.boa noite..alguém poderia me ajudar..preciso de uma quest...que quando player mata um boss.o bau vai direto pro inventario de quem matou!

Share this post


Link to post
Share on other sites

8 answers to this question

  • 2

Acho que estás no lugar errado para pedir ajuda, devias ter pedido na parte das Dúvidas & Pedidos.

--[[
	Author:		.Rui
	Discord:	.Rui#3825
	Date:		20/07/2020
--]]
quest boss_chest_drop begin
	state start begin
		function base_config()
			boss_id = 101; -- (ID_DO_BOSS)
			item_c = {101, 1}; -- (ID_DO_ITEM, QUANTIDADE_DO_ITEM)
			return {boss_id, item_c};
		end --end (base_config)
		
		when kill with npc.get_race() == tonumber(boss_chest_drop.base_config()[1]) begin
			pc.give_item2(tonumber(boss_chest_drop.base_config()[2][1]), tonumber(boss_chest_drop.base_config()[2][2]));
		end -- end (Kill State)
	end -- end (State start)
end -- end (boss_chest_drop)

 

Share this post


Link to post
Share on other sites
antiblock
Cyphriun
  • 0

Tópico movido para Metin2 - Dúvidas & Pedidos.

 

Cumprimentos.

Share this post


Link to post
Share on other sites
  • 0

RUI muito obrigado! Deus lhe Abençoe 

 

 

Mano.sei que estou no lugar errado pra pedir...mais só por gentileza... como faz pra eu colocar em mais de 1 boss..

ali coloquei no dragão de água..e ta dropando...tbm queria colocar no dragão de fogo, porém tentei mais sempre para de dropar no de água


 

--[[
	Author:		.Rui
	Discord:	.Rui#3825
	Date:		20/07/2020
--]]
quest boss_chest_drop begin
	state start begin
		function base_config()
			boss_id = 101; -- (ID_DO_BOSS)
			item_c = {101, 1}; -- (ID_DO_ITEM, QUANTIDADE_DO_ITEM)
			return {boss_id, item_c};
		end --end (base_config)
		
		when kill with npc.get_race() == tonumber(boss_chest_drop.base_config()[1]) begin
			pc.give_item2(tonumber(boss_chest_drop.base_config()[2][1]), tonumber(boss_chest_drop.base_config()[2][2]));
		end -- end (Kill State)
	end -- end (State start)
end -- end (boss_chest_drop)

Share this post


Link to post
Share on other sites
  • 0

Não te esqueças de retirar a outra.

 

--[[
	Author:		.Rui
	Discord:	.Rui#3825
	Date:		20/07/2020
	Version:	0.0.2
--]]
quest boss_chest_drop begin
	state start begin
		function base_config()
			local boss_drop_cfg = {
				--[[
					Podes adicionar mais drops aos bosses seguindo o exemplo:
						[ID_DO_BOSS] = {ID_DO_ITEM, QUANTIDADE_DO_ITEM},
				--]]
				
				[101] = {101, 1},
				[102] = {101, 1},
			};
			return boss_drop_cfg;
		end -- end (base_config)
		
		function is_boss(monster_id) return boss_chest_drop.base_config()[monster_id]; end -- end (is_boss)
		
		when kill with (boss_chest_drop.is_boss(npc.get_race()) ~= nil) begin
			pc.give_item2(tonumber(boss_chest_drop.base_config()[npc.get_race()][1]), tonumber(boss_chest_drop.base_config()[npc.get_race()][2]));
		end -- end (Kill State)
	end -- end (State start)
end -- end (boss_chest_drop)

 

Share this post


Link to post
Share on other sites
  • 0

Desculpe rui,ainda não conseguir entender,, poderia fazer pra mim um ex com 
Boss 2493 Bau 54700 e o boss 2291 e bau 50290

Share this post


Link to post
Share on other sites
  • 0
--[[
	Author:		.Rui
	Discord:	.Rui#3825
	Date:		20/07/2020
	Version:	0.0.2
--]]
quest boss_chest_drop begin
	state start begin
		function base_config()
			local boss_drop_cfg = {
				--[[
					Podes adicionar mais drops aos bosses seguindo o exemplo:
						[ID_DO_BOSS] = {ID_DO_ITEM, QUANTIDADE_DO_ITEM},
				--]]
				
				[2493] = {54700, 1},
				[2291] = {50290, 1},
			};
			return boss_drop_cfg;
		end -- end (base_config)
		
		function is_boss(monster_id) return boss_chest_drop.base_config()[monster_id]; end -- end (is_boss)
		
		when kill with (boss_chest_drop.is_boss(npc.get_race()) ~= nil) begin
			pc.give_item2(tonumber(boss_chest_drop.base_config()[npc.get_race()][1]), tonumber(boss_chest_drop.base_config()[npc.get_race()][2]));
		end -- end (Kill State)
	end -- end (State start)
end -- end (boss_chest_drop)

Basta alterar os números que estão a azul, em cima diz o que é o quê.

 

Cumprimentos.

Share this post


Link to post
Share on other sites
  • 0
On 7/20/2020 at 11:32 PM, .Rui said:

Não te esqueças de retirar a outra.

 


--[[
	Author:		.Rui
	Discord:	.Rui#3825
	Date:		20/07/2020
	Version:	0.0.2
--]]
quest boss_chest_drop begin
	state start begin
		function base_config()
			local boss_drop_cfg = {
				--[[
					Podes adicionar mais drops aos bosses seguindo o exemplo:
						[ID_DO_BOSS] = {ID_DO_ITEM, QUANTIDADE_DO_ITEM},
				--]]
				
				[101] = {101, 1},
				[102] = {101, 1},
			};
			return boss_drop_cfg;
		end -- end (base_config)
		
		function is_boss(monster_id) return boss_chest_drop.base_config()[monster_id]; end -- end (is_boss)
		
		when kill with (boss_chest_drop.is_boss(npc.get_race()) ~= nil) begin
			pc.give_item2(tonumber(boss_chest_drop.base_config()[npc.get_race()][1]), tonumber(boss_chest_drop.base_config()[npc.get_race()][2]));
		end -- end (Kill State)
	end -- end (State start)
end -- end (boss_chest_drop)

 

 

Três coisas.

 

No kill trigger deves definir a condição que limita a sua execução apenas a monstros. A função npc.get_race() não é limitada a mobs e um jogador pode estar transformado em algum npc definido nessa tabela.

 

Outra, é que não precisas fazer tanta call à função base_config(). Percebo que a ideia seja reduzir linhas de código, mas lembra-te que para a aprendizagem do OP, um código mais apresentável é de maior valor. Quanto à performance, definitivamente não vais notar diferença porque trata-se de uma questão de milisegundos. Mas o que estás a fazer é declarar a tabela 2 vezes e só depois apresentar o valor.

 

Por último, não há a necessidade de utilizar tonumber() já que estás a garantir que os valores sejam já numéricos.

 

Deixo aqui uma correção e alternativa à apresentada acima.

when kill with not npc.is_pc() begin
	local cfg = boss_chest_drop.base_config() [npc.get_race()] or nil
	if not cfg then
		-- O mob não existe na nossa tabela
		return
	end

	local item_vnum, item_count = unpack(cfg)
	pc.give_item2(item_vnum, item_count)
end

 

Share this post


Link to post
Share on other sites
  • 0

Olá, em primeiro gostava de agradecer pela correção que fizeste.

 

Em primeiro, o facto de eu recorrer ao tonumber, foi devido ao rapaz que pediu ajuda, já ter pedido noutro tópico algo do género no qual escreveu o id do monstro em forma de string, baseando-me neste aspeto e de forma a facilitar a vida ao rapaz, usei o tonumber como uma forma de prevenção deste problema. 

 

Em segundo, foi totalmente esquecimento da minha parte não limitar a condição só para monstros,  mesmo sabendo que a função npc.get_race não funciona unicamente em npcs.

 

De resto tens toda a razão, o código foi escrito para poupar linhas e não prestei atenção à performance como referiste, neste caso é algo mínimo que não se irá notar qualquer diferença mas vale o que vale.

Share this post


Link to post
Share on other sites

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
Sign in to follow this