antiblock
Elveron
  • Chatbox

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

Quest Dragão Azul Em Pt Maxmi 4.1

1 post in this topic

Translate:

 

 

gameforge.dragon_lair_access = {}gameforge.dragon_lair_access._010_npcChat = " Templo do Dragão Azúl "gameforge.dragon_lair_access._020_say = "[ENTER]Você não é o primeiro a vir aqui.[ENTER]digite o código secreto e eu deixo você entrar! "gameforge.dragon_lair_access._030_say = "[ENTER]Este número está incorreto. "gameforge.dragon_lair_access._040_select = " Tentar outra vez. "gameforge.dragon_lair_access._050_say = "[ENTER]Dentro do templo você não tem nenhuma proteção.[ENTER]Você precisa ter o número exato de chaves para poder[ENTER]assim, subir até o templo do dragão.[ENTER]Você precisa digitar um código secreto.[ENTER]E passar esse código para seus amigos dentro de 5 minutos.[ENTER]Você irá encontrar seus amigos dentro do templo.[ENTER]São somentes 60 minutos para derrotar o dragão!"gameforge.dragon_lair_access._060_select = " Entrar "gameforge.dragon_lair_access._070_say = "[ENTER]Digite o código: "gameforge.dragon_lair_access._080_say = "[ENTER]O código pode conter apenas números. "gameforge.dragon_lair_access._090_notice = "[Templo do Dragão] %s e seu grupo estão tentando derrotar o dragão! "gameforge.dragon_lair_access._100_say = "[ENTER]Você não pode entrar na sala![ENTER]Precisa ter chave elo perdido. "gameforge.dragon_lair_access._105_say = "[ENTER]E necessário: "gameforge.dragon_lair_access._110_npcChat = "Sair deste lugar! "gameforge.dragon_lair_access._115_say = "[ENTER]Quero voltar para entrada da caverna. "gameforge.dragon_lair_access._116_select = "Sim "gameforge.dragon_lair_access._117_select = "Não "gameforge.dragon_lair_access._120_say = "[ENTER]Outro grupo está tentando matar o dragão.[ENTER]Você tem que esperar um tempo, até que você possa entrar no templo. "gameforge.dragon_lair_access._130_say = "[ENTER]Vou levá-lo diretamente para a sala de dragão.[ENTER]Boa Sorte! "gameforge.dragon_lair_access._140_select = "Entrar "gameforge.dragon_lair_access._145_notice = "%s, Você tem 5 minutos para passar o código ao seus amigos. "gameforge.dragon_lair_access._150_notice = "O Dragão de Água ainda está vivo! "gameforge.dragon_lair_access._160_notice = "O Dragão de Água renasceu novamente! "gameforge.dragon_lair_access._165_sendLetter = "Derrotar Dragão de Água. "gameforge.dragon_lair_access._170_notice = "Vocês tem %d minutos para derrotar o dragão! "gameforge.dragon_lair_access._180_notice = "[Templo do Dragão] %s e seu grupo derrotaram o dragão! "gameforge.dragon_lair_access._190_npcChat = "Quero voltar ao templo do dragão. " 

 

Quest:

 

 

quest dragon_lair_access begin	state start begin		function get_settings()			local settings = {}			settings.cooldown_time = 3600 -- when can the dragon be killed again?			settings.group_time = 300 -- how long can players enter after the first one is in the dragon's lair?			settings.access_item = 30179 -- "Dragon God Symbols"			settings.dragon_vnum = 2430			settings.spawn = {}			settings.spawn.x = 181			settings.spawn.y = 173			settings.warp_in = {}			settings.warp_in.first = {}			settings.warp_in.last = {}			settings.warp_in.first.x = 843677			settings.warp_in.first.y = 1066206			settings.warp_in.last.x = 844027			settings.warp_in.last.y = 1067599			settings.warp_out = {}			settings.warp_out.first = {}			settings.warp_out.last = {}			settings.warp_out.first.x = 9200			settings.warp_out.first.y = 1206400			settings.warp_out.last.x = 10900			settings.warp_out.last.y = 1209100			settings.room_area = {}			settings.room_area.first = {}			settings.room_area.last = {}			settings.room_area.first.x = 833000			settings.room_area.first.y = 1062500			settings.room_area.last.x = 844100			settings.room_area.last.y = 1071500			settings.access_item_amount = game.get_event_flag("dragon_lair_amount")			if (settings.access_item_amount == 0) then				settings.access_item_amount = 3 -- default value when event flag is not set			elseif (settings.access_item_amount == -1) then				settings.access_item_amount = 0 -- no dragon marks needed when event flag -1 (special case)			end			return settings		end		function get_random_point(area_coordinates)			return math.random(area_coordinates.first.x, area_coordinates.last.x), math.random(area_coordinates.first.y, area_coordinates.last.y)		end		function warp_to_lair()			local settings = dragon_lair_access.get_settings()			local x, y = dragon_lair_access.get_random_point(settings.warp_in)			char_log(pc.get_player_id(), 'LAIR', pc.get_channel_id() ..' WARPTOLAIR: x:'.. x ..', y:' .. y)			pc.warp(x,y)		end		function warp_from_lair()			local settings = dragon_lair_access.get_settings()			local x, y = dragon_lair_access.get_random_point(settings.warp_out)			char_log(pc.get_player_id(), 'LAIR', pc.get_channel_id() ..' WARPFROMLAIR: x:'.. x ..', y:' .. y)			pc.warp(x,y)		end		function warp_all_from_lair()			local settings = dragon_lair_access.get_settings()			warp_all_in_area_to_area(settings.room_area.first.x, settings.room_area.first.y, settings.room_area.last.x, settings.room_area.last.y, settings.warp_out.first.x, settings.warp_out.first.y, settings.warp_out.last.x, settings.warp_out.last.y)			game.set_event_flag("dragon_lair_alive", 0) -- dragon is dead			char_log(0, 'LAIR', 'WARP ALL')		end		function get_time_remaining()			local settings = dragon_lair_access.get_settings()			return (game.get_event_flag("dragon_lair_time") + settings.cooldown_time - get_global_time())		end		function give_item_to_ghost()			local settings = dragon_lair_access.get_settings()			say_title(gameforge.ghost_story._010_sayTitle)			say(gameforge.dragon_lair_access._130_say)			say(settings.access_item_amount.."x: ")			say_item_vnum(settings.access_item)			local give_item = select(gameforge.dragon_lair_access._140_select, gameforge.locale.cancel)			if give_item == 1 then				pc.remove_item(settings.access_item, settings.access_item_amount)				char_log(pc.get_player_id(), 'LAIR', pc.get_channel_id() ..' GIVE ITEM')				return true			else				return false			end		end		function show_time_remaining(time_remaining)			q.set_title(gameforge.dragon_lair_access._165_sendLetter)			send_letter(gameforge.dragon_lair_access._165_sendLetter)			q.set_clock(gameforge.locale.monkey_dungeon.quest_rest_time, time_remaining)			timer("dragon_lair_timer", time_remaining)			notice_multiline(string.format(gameforge.dragon_lair_access._170_notice, time_remaining / 60), notice)			q.start()		end		when enter or login begin			pc.setqf("is_leader", 0)			q.done()			if pc.get_map_index() == 208 and not pc.is_gm() then				dragon_lair_access.warp_from_lair()			end		end		when blue_dragon_timer.server_timer begin			game.set_event_flag("dragon_lair_timer_used", 0)			if game.get_event_flag("dragon_lair_alive") == 1 then				notice_multiline(gameforge.dragon_lair_access._150_notice, notice_all)			else				notice_multiline(gameforge.dragon_lair_access._160_notice, notice_all)			end			dragon_lair_access.warp_all_from_lair()		end		when 30121.chat.gameforge.dragon_lair_access._010_npcChat with pc.get_map_index() != 208 begin						local starttime = game.get_event_flag("dragon_lair_time")			local current_time = get_global_time()			local settings = dragon_lair_access.get_settings()			local time_remaining = dragon_lair_access.get_time_remaining()			if pc.count_item(settings.access_item) >= settings.access_item_amount then				if starttime + settings.group_time >= current_time then					local password_input;					repeat						say_title(gameforge.ghost_story._010_sayTitle)						say(gameforge.dragon_lair_access._020_say)						password_input = tonumber(input())						if password_input != game.get_event_flag("dragon_lair_password") then							say_title(gameforge.ghost_story._010_sayTitle)							say(gameforge.dragon_lair_access._030_say)							local again = select(gameforge.dragon_lair_access._040_select, gameforge.locale.cancel)							if again == 2 then								return							end						end					until password_input == game.get_event_flag("dragon_lair_password")					if not dragon_lair_access.give_item_to_ghost() then						return					end										-- right password					pc.setqf("time", starttime)					dragon_lair_access.warp_to_lair()					set_state(kill_dragon)				elseif time_remaining < 0 and npc.lock() then -- it is the first player talking with the ghost					say_title(gameforge.ghost_story._010_sayTitle)					say(gameforge.dragon_lair_access._050_say)					local abort = select(gameforge.dragon_lair_access._060_select, gameforge.locale.cancel)					if abort == 2 then						npc.unlock()						return					end					local password_number;					repeat						say_title(gameforge.ghost_story._010_sayTitle)						say(gameforge.dragon_lair_access._070_say)						password_number = tonumber(input())						local again;						if type(password_number) != 'number' then							say_title(gameforge.ghost_story._010_sayTitle)							say(gameforge.dragon_lair_access._080_say)							again = select(gameforge.dragon_lair_access._040_select, gameforge.locale.cancel)							if again == 2 then								npc.unlock()								return							end						end					until type(password_number) == 'number'					if not dragon_lair_access.give_item_to_ghost() then						npc.unlock()						return					end										if dragon_lair_access.get_time_remaining() > 0 then						pc.give_item2(settings.access_item, settings.access_item_amount)						npc.unlock()						say_title(gameforge.ghost_story._010_sayTitle)						say(gameforge.dragon_lair_access._120_say)						return					end										pc.setqf("password", password_number)					timer("dragon_lair_warptimer", pc.get_channel_id()*2)										npc.unlock()				else					say_title(gameforge.ghost_story._010_sayTitle)					say(gameforge.dragon_lair_access._120_say)					return				end			else				say_title(gameforge.ghost_story._010_sayTitle)				say(gameforge.dragon_lair_access._100_say)				say(gameforge.dragon_lair_access._105_say)				say(settings.access_item_amount.."x: ")				say_item_vnum(settings.access_item)				return			end		end		when 30121.chat.gameforge.dragon_lair_access._110_npcChat with pc.get_map_index() == 208 begin			say_title(gameforge.ghost_story._010_sayTitle)			say(gameforge.dragon_lair_access._115_say)			local warp = select(gameforge.dragon_lair_access._116_select, gameforge.dragon_lair_access._117_select)			if warp == 1 then				dragon_lair_access.warp_from_lair() -- so that GMs get ported out, too				set_state(start)			end		end				when dragon_lair_warptimer.timer begin			local settings = dragon_lair_access.get_settings()			if dragon_lair_access.get_time_remaining() < 0 then				local starttime = get_global_time()				game.set_event_flag("dragon_lair_time", starttime) -- set start time				char_log(pc.get_player_id(), 'LAIR', pc.get_channel_id() ..' SET STARTTIME: ' .. starttime)				pc.setqf("time", starttime)								pc.setqf("is_leader", 1)				game.set_event_flag("dragon_lair_password", pc.getqf("password")) -- set password				char_log(pc.get_player_id(), 'LAIR', pc.get_channel_id() ..' SET PASSWORD: '.. pc.getqf("password"))								server_timer("blue_dragon_timer", settings.cooldown_time)								dragon_lair_access.warp_to_lair()				set_state(spawn_dragon)			else				pc.give_item2(settings.access_item, settings.access_item_amount)				say_title(gameforge.ghost_story._010_sayTitle)				say(gameforge.dragon_lair_access._120_say)			end			pc.setqf("password", 0)		end	end	state spawn_dragon begin		when login begin			local settings = dragon_lair_access.get_settings()			purge_area(settings.room_area.first.x, settings.room_area.first.y, settings.room_area.last.x, settings.room_area.last.y)			notice_multiline(string.format(gameforge.dragon_lair_access._090_notice, pc.name), notice_all)						-- spawn all mobs needed			regen_in_map(208, "locale/turkey/map/metin2_map_skipia_dungeon_boss/regen.txt")			mob.spawn_group(settings.dragon_vnum, settings.spawn.x, settings.spawn.y, 1, 1, 1) -- spawn the dragon									game.set_event_flag("dragon_lair_alive", 1) -- dragon is alive			char_log(pc.get_player_id(), 'LAIR', pc.get_channel_id() ..' SPAWN DRAGON')						notice_multiline(string.format(gameforge.dragon_lair_access._145_notice, game.get_event_flag("dragon_lair_password")), notice)			dragon_lair_access.show_time_remaining(settings.cooldown_time)						set_state(kill_dragon)		end		when 30121.chat.gameforge.dragon_lair_access._110_npcChat with pc.get_map_index() == 208 begin			say_title(gameforge.ghost_story._010_sayTitle)			say(gameforge.dragon_lair_access._115_say)			local warp = select(gameforge.dragon_lair_access._116_select, gameforge.dragon_lair_access._117_select)			if warp == 1 then				dragon_lair_access.warp_from_lair()				set_state(start)			end		end			end	state kill_dragon begin		when dragon_lair_timer.timer begin			set_state(start)		end		when login begin			if pc.getqf("time") != game.get_event_flag("dragon_lair_time") or dragon_lair_access.get_time_remaining() <= 0 then				set_state(start)			else				dragon_lair_access.show_time_remaining(dragon_lair_access.get_time_remaining())			end		end				when button or info begin			notice_multiline(string.format(gameforge.dragon_lair_access._170_notice, dragon_lair_access.get_time_remaining() / 60), notice)			local settings = dragon_lair_access.get_settings()			if (pc.getqf("is_leader") == 1 and settings.cooldown_time-dragon_lair_access.get_time_remaining() < settings.group_time) then				notice_multiline(string.format(gameforge.dragon_lair_access._145_notice, game.get_event_flag("dragon_lair_password")), notice)			end		end		when 30121.chat.gameforge.dragon_lair_access._110_npcChat with pc.get_map_index() == 208 begin			say_title(gameforge.ghost_story._010_sayTitle)			say(gameforge.dragon_lair_access._115_say)			local warp = select(gameforge.dragon_lair_access._116_select, gameforge.dragon_lair_access._117_select)			if warp == 1 then				dragon_lair_access.warp_from_lair()				set_state(start)			end		end		when 20009.chat.gameforge.dragon_lair_access._190_npcChat or 9012.chat.gameforge.dragon_lair_access._190_npcChat or 30121.chat.gameforge.dragon_lair_access._190_npcChat with pc.get_map_index() != 208  begin			if pc.getqf("time") > 0 and pc.getqf("time") == game.get_event_flag("dragon_lair_time") then				dragon_lair_access.warp_to_lair()			else				say_title(gameforge.neutral_warp._20_sayTitle)				say(gameforge.dragon_lair_access._120_say)				set_state(start)			end		end		when kill begin		if npc.get_race() == 2493 and pc.get_map_index() == 208 then			char_log(pc.get_player_id(), 'LAIR', pc.get_channel_id() ..' DRAGON KILLED')			game.set_event_flag("dragon_lair_alive", 0) -- dragon is dead			game.drop_item_with_ownership(71123, 1) -- dropping dragon scale			game.drop_item_with_ownership(71129, 1) -- dropping toe nail			notice_multiline(string.format(gameforge.dragon_lair_access._180_notice, pc.name), notice_all) -- the dragon has been killed by <name>!			local settings = dragon_lair_access.get_settings()			purge_area(settings.room_area.first.x, settings.room_area.first.y, settings.room_area.last.x, settings.room_area.last.y)		end		end	endend 

Share this post


Link to post
Share on other sites
antiblock
Cyphriun

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