• Chatbox

    Load More
    You don't have permission to chat.
Sign in to follow this  
scuria94

Quest Para dropar item em Eventos

1 post in this topic

Quest para obter drops de itens quando o evento estiver ativo.

Foram deixados vários métodos para atribuir os itens. (Esta comentado para ser mais facil de editar)
A percentagem de drop pode ser configurada por um GM dentro do jogo ao falar com um NPC.

Espero que possa ajudar alguém. 
Scuria

----------------------------------------------------
			--	Evento de Rebellion2 --				
----------------------------------------------------
quest EventoTeste begin
	state start begin

----------------------------------------------------
			--	Drop ao Matar Mobs --				
----------------------------------------------------
		when kill begin
		
			if npc.is_pc() then return end															--	Verifica que e Mob
			if game.check_event(17, 0) ~= true then return end										--	Verifica se evento esta ativo (Calendario de Eventos)
			----	Se nao tiver calendario de eventos	-- Para ativar >> /e scuria 1
			-- if game.get_event_flag("scuria") ~= 1 then return end								--	Verifica se flag de evento esta ativo (Flag ativada por 1 GM)
			
			local level = pc.get_level()															--	Ve nivel jogador
			local mob_level = npc.get_level()														--	ve nivel mob
			local drop_allowed = false																--	So para prevenir provalmente nao e necessario
	
			if mob_level >= (level - 15) and mob_level <= (level + 25) then							--	Verifica os Parametros Escolhidos
				drop_allowed = true																	--	Se Confirmar os parametros poe verdadeiro
			end
	
			if drop_allowed then																--	Se puder dropar
				local chance = number(1, 10000)													--	Esta 1 a 10000 para permitir mais costumizacao que o navicat nao deixa fazer 0.1 no quest
				local chance_max = game.get_event_flag("scuria_drop_chance")					--	Flag definida no proxima cena
				
				----	Drop de uma lista	----
				
				if chance <= chance_max then													--	Se acertar na chance
					local itens = {27101, 27102, 27103}											--	Drop aleatório entre various itens
					local item_id = itens[number(1, table.getn(itens))]							--	Escolhe 1 item random da tabela de cima
					game.drop_item_with_ownership(item_id)										--	Dropa com o nome de quem matou
				end
				
			----	Drop Apenas 1 Item fixo	----
			
			--	if chance <= chance_max then
			--		game.drop_item_with_ownership(27101) -- Drop Apenas 1 Item fixo
			--	end
			
			----	Drop de um range (Ovos Pascoa)	----
			
			--	if chance <= chance_max then
			--		local drop = number(1, 20)
			--		local item_id = 50159 + drop	-- Drop de itens de 50160 até 50179
			--		game.drop_item_with_ownership(item_id)
			--	end
			
			----	Drop de uma lista por elseif	----
			
			--	if chance <= chance_max then
			--		local drop_item = number(1,3)
			--		if drop_item == 1 then
			--			game.drop_item_with_ownership(27101)
			--		elseif drop_item == 2 then
			--			game.drop_item_with_ownership(27102)
			--		elseif drop_item == 3 then
			--			game.drop_item_with_ownership(27103)
			--		end
			--	end
			
			----	Drop X vezes o mesmo item	----
			
			--	if chance <= chance_max then
			--		for i = 1,5 do																--	Repete o processo para X itens (5 Neste Caso)
			--		game.drop_item_with_ownership(27101)										--	Dropa com o nome de quem matou
			--		end
			--	end
			
						----	Drop X vezes de uma lista sendo random	----
			
			--	if chance <= chance_max then
			--		local drop_items = {27101, 27102, 27103, 27104}									--	Drop aleatório entre various itens
			--		for i = 1, 4 do																--	Repete o processo para X itens (4 Neste Caso)
			--			local idx = number(1, 4)												--	Vai buscar o item
			--			game.drop_item_with_ownership(drop_items[idx])							--	Dropa com o nome de quem matou
			--		end
			--	end
			
			end
		end
----------------------------------------------------
		--	GM: Definir chance de Drop --			
----------------------------------------------------
		when 30308.chat."GM: Drop Scuria" with pc.is_gm() begin									--	Verifica se e GM para mudar a chance
			say_title("GM: Drop Scuria:")
			say("10=0.1% - 100=1%")																--	Algumas chances para ajudar a saber
			say("1000=10% - 10000=100%")														--	o que por para a chance que queres!
			say("Definir a % de drop Scuria (0-10000):")
				local current_chance = game.get_event_flag("scuria_drop_chance") or 0			--	Vai buscar a chance atual da flag se nao tiver diz 0
				say_red(string.format("Chance atual: %.2f%%", current_chance / 100))			--	Mostra a chance atual
				local new_chance = tonumber(input())											--	Input para escrever a chance
			if new_chance == nil or new_chance < 0 or new_chance > 10000 then					--	Inseriste o valor errado
				say_title("GM: Drop Scuria:")
				say("Valor inválido. Introduz um número entre 0 e 10000.")
			else																				--	Inseriste o valor certo
				game.set_event_flag("scuria_drop_chance", new_chance)							--	Define o valor na flag
				say_title("GM: Drop Scuria:")
				say("Drop definido com sucesso: " .. string.format("%.2f%%", new_chance / 100))	--	Mostra a nova chance
			end
		end
	end
end

 

Share this post


Link to post
Share on other sites
antiblock
Odegon

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