Jump to content

Recommended Posts

 

Hi!

 

I have some problem this quest:

 

quest flame_dungeon begin
	state start begin

	when login with pc.get_map_index() == 351 begin
		syschat("Teleportálás a városba...")
		warp_to_village()
	end
		
	when 20394.chat."Vörös Sárkány erőd" begin
		say_title("Tűzföld-őr:")
		say("")
		say("Be szeretnél menni a Vörös Sárkány erődbe?")
		say("Ha te vagy a csoport vezető, és van")
		say("Nálad belépési engedély (P), akkor rendben.")
		say("")
		say_reward("Csak a vezetőnek kell belépő, de neki")
		say_reward("Lv105-nek kell lennie!")
		say_item_vnum(71175)
		pc.delqf("belepettbp")
		wait()
		if party.is_leader() and pc.get_level() >= 105 then
			if pc.count_item("71175") >= 1 then
				say_title("Tűzföld-őr:")
				say("")
				say("Nálad van belépő, sőt te vagy ")
				say("A csoport vezetője is!")
				say("")
				say_reward("Be szeretnél menni a csoportoddal?")
				local s = select("Igen!", "Nem!")
				if s == 1 then
					pc.remove_item(71175,1)
					say_title("Tűzföld-őr:")
					say("")
					say("Azonnal teleportállak téged")
					say("és a csoportodat is!")
					say("[DELAY value; 1000]. . . . . . . . . .[/DELAY]")
					wait()
					pc.setqf("belepettbp", 1)
					d.new_jump_party(351, 7766 , 6728)
				end
				if s == 2 then
					return
				end
			end
			if pc.count_item("71175") == 0 then
				say_title("Tűzföld-őr:")
				say("")
				say("A csoport vezetőnek szüksége van")
				say("egy belépési engedély (P)-re a bejutáshoz!")
				say("")
				say_reward("Ezt Boss-pontból és Itemshopból lehet beszerezni.")
				say_item_vnum(71175)
			end
		else
			say_title("Tűzföld-őr:")
			say("")
			if not party.is_leader() then
				say_reward("Te nem vagy csoport vezető!")
			end
			if pc.get_level() <= 104 then
				say_reward("Te nem vagy Lv105-ös!")
			end
		end
	end

		when login begin
			if pc.getqf("belepettbp") == 1 then
				pc.delqf("belepettbp")
				timer("bpgo", 1*15)
				d.set_warp_location (62, 5983, 7072)
				notice_all(""..pc.get_name().." (és csapata) belépett a Vörös Sárkány erődbe!")
				d.kill_all()	
				d.spawn_mob (20385, 353, 365)
				d.regen_file( "data/dungeon/flame_dungeon/flame_regen.txt" )
				d.set_warp_at_eliminate(3, d.get_map_index(), 7780, 6526, "data/dungeon/flame_dungeon/flame_regen_boss1.txt") 
			end
		end
			
		
		when 20385.chat."Ki akarok menni innen!" begin
			say_title("Am-heh szurdok")
			say(" ")
			say("Cserben hagyni a társaidat bűn...")
			say(" ")
			say_reward("Biztos ki akarsz menni innen?")
			local s = select("Igen!", "Nem!")
			if s == 1 then
				pc.delqf("belepettbp")
				d.exit()
			end
			if s == 1 then
				return
			end
		end

		when 6051.kill begin
			d.kill_all()
			d.notice( "Razador már vár rátok!" )
			d.set_warp_at_eliminate(3, d.get_map_index(), 8109, 6859, "data/dungeon/flame_dungeon/flame_regen_boss2.txt") 
		end
		
		-- mob_drop_itembe is van még drop
		when 6091.kill begin
			notice_all(""..pc.get_name().." (és csapata) sikeresen megölte Razadort!")
			timer("successbp", 1*60)
			pc.delqf("belepettbp")
			d.kill_all()
			d.set_warp_location (62, 5983, 7072)
			d.notice( "Gratulálok, megöltétek Razadort!" )
			d.notice( "Egy perc múlva ki lesztek teleportálva!" )
			local talan = math.random(1,4)
			if talan == 1 then
				game.drop_item_with_ownership("12286",1)
				game.drop_item_with_ownership("15376",1)
				game.drop_item_with_ownership("187",1)
				game.drop_item_with_ownership("11297",1)
				game.drop_item_with_ownership("71128",1)
			end
			if talan == 2 then
				game.drop_item_with_ownership("12406",1)
				game.drop_item_with_ownership("15396",1)
				game.drop_item_with_ownership("1137",1)
				game.drop_item_with_ownership("11497",1)
				game.drop_item_with_ownership("71127",1)
			end
			if talan == 3 then
				game.drop_item_with_ownership("12546",1)
				game.drop_item_with_ownership("15416",1)
				game.drop_item_with_ownership("197",1)
				game.drop_item_with_ownership("11697",1)
				game.drop_item_with_ownership("71126",1)
			end
			if talan == 4 then
				game.drop_item_with_ownership("12686",1)
				game.drop_item_with_ownership("15436",1)
				game.drop_item_with_ownership("5127",1)
				game.drop_item_with_ownership("11897",1)
				game.drop_item_with_ownership("71125",1)
			end
			pc.change_money(10000000)
		end
			
		when bpgo.timer begin
			d.notice( "Egy órátok van a Tisztítótűzben!" )
			d.notice( "1. Feladat:" )
			d.notice( "Öljetek meg minden szörnyet!" )
			d.notice( "2. Feladat:" )
			d.notice( "Öljétek meg Ignitort!" )
			d.notice( "3. Feladat:" )
			d.notice( "Öljétek meg Razadort!" )
			d.set_warp_location (62, 5983, 7072)
		end
			
		when successbp.timer begin
			d.exit_all()
		end
	end
end

How to make this quest, not only leader need the dungeon ticket , all party player need the dungeon ticket? (Which function need

instead of "if party.is_leader() and pc.get_level() >= 105 then if pc.count_item("71175") >= 1 then")

THX.

Link to comment
Share on other sites

  • Contributor

i'm not gonna do it for you but i copy here Hidra's dungeon join part so you can make your quest like this to check items for every player:

        when 20013.chat."<Beta Test> Hidra" begin
            local need_level = 90
            if party.is_leader() then
                say_npc()
                say("")
                if pc.get_level() < need_level then
                    say("A következő szint szükséges: "..need_level..".")
                    say("")
                    return
                end
                say("Szeretnéd megvédeni a hajót,")
                say("amit Hidra megtámadt?")
                say_reward("Szükséges: "..item_name(31106).." x1")
                say_reward("Szükséges: "..item_name(31104).." x1")
                say_reward("Szükséges: "..item_name(31105).." x100")
                say("")
                if select("Igen", "Nem") == 2 then
                    return
                end
                if defance_wave._CheckMembersDW() == false then
                    return
                else
                    timer("make_dungeonDF", 1)
                end
            else
                say_npc()
                say("")
                say("Csoport vezetőnek kell lenned.")
                say("")
            end
        end
        when make_dungeonDF.timer begin
            local config = defance_wave.SettingsDW()
            local cord = config.cord
            local start_pos = config.start_pos
            d.new_jump_party(config.map_index, (cord[1] + start_pos[1]), (cord[2] + start_pos[2]))
            d.spawn_mob_ac_dir(20436, 385, 367, 0)
            d.spawn_mob(20434, 385, 400)
            defance_wave.SpawnHandicap(0)
            defance_wave.SpawnHandicap(1)
        end
        function _CheckMembersDW()
            local need_level = 90
            local user_fail_level = {}
            --local have_shaman = false
            local pids = {party.get_member_pids()}
            for i = 1, table.getn(pids), 1 do
                q.begin_other_pc_block(pids[i])
                if pc.count_item(31106) < 1 or pc.count_item(31104) < 1 or pc.count_item(31105) < 100 then
                    table.insert(user_fail_level, table.getn(user_fail_level) +1, pc.get_name())
                end
                -- local job = pc.get_job()
                -- if job == 3
                -- or job == 7
                -- then
                    -- have_shaman = true
                -- end
                q.end_other_pc_block()
            end
            --if have_shaman == false then
                --say("Nincs sámánja a csoportodnak!")
                --return false
            --end
            if table.getn(user_fail_level) >= 1 then
                say_npc()
                say("")
                say("A következő személyeknek nincs elég tárgya:")
                for x = 1, table.getn(user_fail_level), 1 do
                    say(color(1,1,0), "    "..user_fail_level[x])
                end
                return false
            end
            if table.getn(user_fail_level) == 0 then
                return true
            end
        end

The check happens in this funcetion:  function _CheckMembersDW()

 

By the way, your flame dungeon quest is not GF, people used that for 34k serverfiles because of missing functions. You can swap that to a GF one if you use source/40k.

 

Edited by TMP4
  • Metin2 Dev 1
Link to comment
Share on other sites

Find the 40k Flame dungeon quest but not work finally.

 

quest flame_dungeon begin
	state start begin	
		when 20394.click with pc.get_level() >= 90 begin
			pc.count_item2(71175, 1)
			set_state(run)
		end
	end

	state run begin
	
	function setting()
		return 
		{
		["bossroom_entry_pos"] = {8109,6867},
		["boss_pos"] = {686,637},
		["doors_pos"] = {
			{320,394},
			{293,359},
			{333,321},
			{378,320},
			{400,355},
			{394,401}
		},
		["idoors_pos"] = {
			{268,447},
			{234,359},
			{300,264},
			{454,217},
			{470,355},
			{467,469}
		},
		["doors_dir"] = {135,90,210,152,90,223},
		["idoors_dir"] = {135,90,210,135,90,239},
		["dungeon_entry_pos"] = {7762, 6739},-- ´řŔüżˇ ĂłŔ˝ µéľîżŔ´Â °÷
		["DUNGEON_MAN_bpos"] = {690,722},
		["DUNGEON_MAN_pos"] = {354,362},
		["LEVEL2_STONE_pos"] = {195,352},
		["LEVEL4_TARGET_pos"] = {470,175},
		["LEVEL5_STONE_pos"] = {
				{486, 345},
				{511, 336},
				{525, 349},
				{521, 365},
				{503, 372},
				{486, 365},
				{500, 354}
		},
		["LEVEL6_TARGET_pos"] = {511,480},
		["outside_entry_pos"] = {6142,7068}, --ŔÔŔĺ˝ĂÄŃÁÖ´ÂľÖ Ľ­ŔÖ´Â °÷
		["YAK_pos"] = {376, 397} -- ľŕČŻ şÎÇĎ
		
		}
	end
	function is_flamed(idx) -- Ŕű·ćĽşżˇ ŔÖ´ÂÁö Č®ŔÎ 
		return idx >= 351 * 10000 and idx < (351 + 1) *10000
	end
	function make_dungeon() -- ´řŔü ¸¸µé±â
		local setting = flame_dungeon.setting()
		d.new_jump_party(351, setting.dungeon_entry_pos[1], setting.dungeon_entry_pos[2])
		-- d.spawn_mob_ac_dir(20385, setting.DUNGEON_MAN_pos[1], setting.DUNGEON_MAN_pos[2],0)
		-- d.spawn_mob(YAK,setting.YAK_pos[1],setting.YAK_pos[2])
		d.regen_file("data/dungeon/flame_dungeon/npc.txt")
		d.setf("level",0)
		for i=1,6 do
			d.set_unique("door"..i, d.spawn_mob_ac_dir(20387, setting.doors_pos[i][1], setting.doors_pos[i][2],setting.doors_dir[i]))
		end
		for i=1,6 do
			d.set_unique("idoor"..i, d.spawn_mob_ac_dir(20388, setting.idoors_pos[i][1], setting.idoors_pos[i][2],setting.idoors_dir[i]))
		end
		d.setf("clear_count",0)
		d.setf("started",0)
		d.setf("dungeon_enter",0) -- Á¤»óŔűŔ¸·Î ŔÔŔĺÇß´ÂÁö? // şńÁ¤»ó : 0 Á¤»ó : 1 // ƨ±â¸é ŔÔŔĺÁ¦ÇѽðŁŔ» ±â·Ď ľČÇÔ
	end	
	function go_boss() -- ş¸˝ş·ë °ˇ±â 
		local setting = flame_dungeon.setting()
		if pc.get_level() < 104 then --·ąş§Č®ŔÎ
            -- syschat(gameforge.flame_dungeon._580_notice)
            say(gameforge.flame_dungeon._580_notice)
            return
		else
			if pc.getf("main_quest_flame_lv103", "__status")==main_quest_flame_lv103.__COMPLETE__ then -- Ľ±ÇŕÄů˝şĆ® Č®ŔÎ
				-- say_title(gameforge.flame_dungeon._010_say)
                say(gameforge.flame_dungeon._010_say)
				local warp = select(gameforge.flame_dungeon._020_select,gameforge.flame_dungeon._030_select)
				if warp == 1 then
					d.setf("level",17)
					d.jump_all(setting.bossroom_entry_pos[1],setting.bossroom_entry_pos[2])
					d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_fild_boss.txt")
				--	d.spawn_mob(20385,setting.DUNGEON_MAN_bpos[1],setting.DUNGEON_MAN_bpos[2])
					d.spawn_mob(6091,setting.boss_pos[1],setting.boss_pos[2])
				end
			else 
                -- syschat(gameforge.flame_dungeon._040_notice)
                say(gameforge.flame_dungeon._040_notice)
                return
			end
		end
	end
	function level_clear() -- ·ąş§ ˛ŁŔ»¶§, ¸®Á¨Ĺ¬¸®ľî, ÁöżŞĹ¬¸®ľî
		d.setf("level",0)
		d.clear_regen()
		d.purge_area(750000,620000,817400,689400) -- ¸ĘŔüĂĽ -- d.purge() »çżë°í·Á
	end
	function clear_timer(inx) -- ŸŔĚ¸Ó ´ŮÁöżě±â
		clear_server_timer ("flame_dungeon_0m_left_timer", inx)
		clear_server_timer ("flame_dungeon_1m_left_timer", inx)
		clear_server_timer ("flame_dungeon_5m_left_timer", inx)
		clear_server_timer ("flame_dungeon_10m_left_timer", inx)
		clear_server_timer ("flame_dungeon_15m_left_timer", inx)
		clear_server_timer ("flame_dungeon_30m_left_timer", inx)
		clear_server_timer ("flame_dungeon_45m_left_timer", inx)
		clear_server_timer ("killed_A_1", inx)
		clear_server_timer ("killed_A_2", inx)
		clear_server_timer ("flame_dungeon_ticket_remove", inx)	
	end
	
		when login begin
			local idx = pc.get_map_index()
			local setting = flame_dungeon.setting()
			if idx == 351 then
				pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62)
			elseif flame_dungeon.is_flamed(idx) then -- ´řŔü ŔÔŔĺ, ş¸˝ş·ë ŔÔŔĺ żążÜ
			------------------------------------------------------------------------------------------------------------------------------------------------------
			--ľĆ·ˇŔÇ µÎÁŮÁß Ŕ§żˇÁŮŔ» »çżëÇĎ¸é ´řŔüżˇĽ­ Áľ·áÇßŔ»°ćżě ´Ů˝Ă żř·ˇ Ŕ§Äˇ·Î µąľĆżÂ´Ů. ľĆ·ˇÁŮŔ» Č°ĽşČ­ ÇĎ¸é ´řŔüżˇĽ­ Áľ·áÇßŔ» °ćżě ´řŔü ąŰŔ¸·Î łŞ°ˇ°Ô µČ´Ů.
			--´řŔüżˇĽ­ Áľ·áÇßŔ» °ćżě ´Ů˝Ă żř·ˇ Ŕ§Äˇ·Î µąľĆżĂ °ćżě, ´řŔüżˇĽ­ łŞ°ˇ´Â ąćąýŔ» ¸¸µéľîÁŕľß Çϱ⠶§ą®żˇ Ŕű·ćĽşşńŔÇ łŞ°ˇ±â¶ő żÉĽÇŔ» Č°ĽşČ­ ÇŘÁŕľß ÇŃ´Ů.
			------------------------------------------------------------------------------------------------------------------------------------------------------
				-- pc.set_warp_location(0, 0 , 0) --ƨ°ĺŔ»¶§ ´Ů˝Ă µąľĆżŔ°Ô ¸¸µéľî ÁÖ´Â şÎşĐ
				pc.set_warp_location(62, setting.outside_entry_pos[1] , setting.outside_entry_pos[2]) -- ´řŔü łŞ°¬Ŕ» ¶§ ąŰŔ¸·Î ƨ±â°ÔÇÔ
				local ticketGroup = {get_special_item_group (10033)}
				if d.getf("dungeon_enter") == 0 then -- ÁřÇŕÁßŔĚ ľĆ´Ď¸é
					local canPass = false
					for i=1, table.getn(ticketGroup),2 do 
						if pc.count_item(ticketGroup[i]) >= ticketGroup[i+1] then
							canPass = true
							break
						end
					end

					if get_global_time() - pc.getf("flame_dungeon","exit_time") < 30 * 60 then -- ŔÔŔĺÁ¦ÇѽðŁŔĚ °É·ČŔ¸¸é
						notice_multiline(gameforge.flame_dungeon._050_notice,d.notice)
						say(gameforge.flame_dungeon._060_say)
						timer("flame_dungeon_warp_timer", 5)
					elseif not canPass then
						notice_multiline(gameforge.flame_dungeon._070_notice,d.notice)
						say(gameforge.flame_dungeon._080_say)
						timer("flame_dungeon_warp_timer", 5)
					elseif pc.get_level() < 100 then
						notice_multiline(gameforge.flame_dungeon._090_notice,d.notice)
						say(gameforge.flame_dungeon._100_say)
						timer("flame_dungeon_warp_timer", 5)
					end
				elseif pc.getf("flame_dungeon","ticket_delete") == 0 then -- ÁřÇŕÁßŔεĄ ĆĽÄĎŔĚ ľČÁöżöÁłŔ»°ćżě
					
					for i=1, table.getn(ticketGroup),2 do 
						if pc.count_item(ticketGroup[i]) >= ticketGroup[i+1] then
							pc.remove_item(ticketGroup[i], ticketGroup[i+1])
							break
						end
					end
					pc.setf("flame_dungeon","ticket_delete",1)
				end
			else
				pc.setf("flame_dungeon","ticket_delete",0)
			end
		end
		when flame_dungeon_warp_timer.timer begin
			local setting = flame_dungeon.setting()
			pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62)
		end
		when logout begin
			local idx = pc.get_map_index()
			if flame_dungeon.is_flamed(idx) then 
				if d.getf("dungeon_enter") == 1 then -- Á¤»óŔűŔÎ ´řŔü ŔÔŔĺ ČÄ ·Î±×ľĆżô
					pc.setf("flame_dungeon","exit_time",get_global_time()) -- ŔνşĹĎ˝ş ľČżˇĽ­ŔÇ ¸¶Áö¸· ˝Ă°ŁŔ» ±â·Ď, ±ŮµĄ ˝Ă°ŁÁ¦ÇŃ ¶§ą®żˇ or ±×łÉ ƨ±ä°Ĺ¸é ľČ±â·Ď
				end
				

			end
		end
		when 20394.chat.gameforge.flame_dungeon._110_npcChat begin
		
			local setting = flame_dungeon.setting()
			if party.is_party() then
				-- ´řŔü µµÁß łŞ°Ą °ćżě ŔçŔÔŔĺ °ˇ´ÉÇϵµ·Ď
				local party_check = 0
				if d.find(party.getf("dungeon_index")) then
					party_check = (d.getf_from_map_index("party_leader_pid", party.getf("dungeon_index")) == party.get_leader_pid())
				end
				
				if d.find(party.getf("dungeon_index")) and party_check then
					if get_global_time() - pc.getf("flame_dungeon","exit_time") < 5 * 60 then -- Á˘Áľ ŔĚČÄ 5şĐ ł»?
						local dungeon_level = d.getf_from_map_index("level", party.getf("dungeon_index"))
						if dungeon_level == 17 then -- ş¸˝ş
							pc.warp(setting.bossroom_entry_pos[1] * 100, setting.bossroom_entry_pos[2] * 100, party.getf("dungeon_index"))
						else
							pc.warp(setting.dungeon_entry_pos[1] * 100, setting.dungeon_entry_pos[2] * 100, party.getf("dungeon_index"))
						end
					else -- 5şĐ ĂĘ°úÇĎż© Ŕç ŔÔŔĺ şŇ°ˇ
						say_title(mob_name(20394))
                        say(gameforge.flame_dungeon._590_say)
					end
				else
					local pids = {party.get_member_pids()}
					local noTicketMembers = {}
					local notEnoughLevelMembers = {}
					local ticketCheck = true
					local levelCheck = true
					local ticketGroup = {get_special_item_group (10033)}
					for i, pid in next, pids, nil do
						q.begin_other_pc_block(pid)
						local canPass = false
						for idx=1, table.getn(ticketGroup),2 do 
							if pc.count_item(ticketGroup[idx]) >= ticketGroup[idx+1] then
								canPass = true
								break
							end
						end
						
						if not canPass then
							table.insert(noTicketMembers, pc.get_name())
							ticketCheck = false
						end
						if pc.level < 100 then
							table.insert(notEnoughLevelMembers, pc.get_name())
							levelCheck = false
						end
						q.end_other_pc_block()
					end

					if not ticketCheck then
						say_title(mob_name(20394))
						say(gameforge.flame_dungeon._610_say)
						for i, name in next, noTicketMembers, nil do
							say(color(1,1,0), "    "..name)
						end
						if levelCheck then
							return
						else
							wait()
						end
					end

					if not levelCheck then
						say_title(mob_name(20394))
						say(gameforge.flame_dungeon._630_say)
						for i, name in next, notEnoughLevelMembers, nil do
							say(color(1,1,0), "    "..name)
						end
						return
					end

					if party.is_leader() then
						say(gameforge.flame_dungeon._120_say)
						local warp = select(gameforge.flame_dungeon._130_select,gameforge.flame_dungeon._140_select)
						if warp == 1 then
							if party.is_map_member_flag_lt("exit_time", get_global_time() - 30 * 60 ) then
								flame_dungeon.make_dungeon()
							else
								--say("test : ĆÄĆĽżřŔÇ ŔÔŔĺ Á¦ÇѽðŁŔĚ łˇłŞÁö ľĘľŇ˝Ŕ´Ď´Ů.")
								say(gameforge.flame_dungeon._600_say)
							end
						end
						
						party.setf("flame_dungeon_boss_kill_count", 0)
						
					else
						say(gameforge.flame_dungeon._150_say)
					end
				end
			else
				say(gameforge.flame_dungeon._160_say)
			end
		end
		-- when 20394.chat."Test : ¸®ĽŇ˝şČ®ŔÎ" with is_test_server() begin -- Ĺ×˝şĆ®żë
			-- local setting = flame_dungeon.setting()
			-- pc.setf("flame_dungeon","fdRtest",1)
			-- pc.warp( setting.dungeon_entry_pos[1]*100, setting.dungeon_entry_pos[2]*100, 351)
		-- end
		
		
		when 20394.chat."TEST : Init time limit init" with is_test_server() begin -- Ĺ×˝şĆ®żë
			pc.setf("flame_dungeon","exit_time",get_global_time()-1800)
			say("Done")
		end
		-- when 20385.chat."Test : ÇöŔç »óĹÂ" with is_test_server() begin -- Ĺ×˝şĆ®żë
			-- say("ł˛Ŕş ¸ó˝şĹÍ : "..d.count_monster())
			-- say("level : "..d.getf("level"))
			-- say("Dmap index : "..d.get_map_index())
			-- say("Pmap index : "..pc.get_map_index())
			-- say("access limit : "..pc.getf("flame_dungeon","exit_time"))
			-- say("global time : "..get_global_time())
			-- if flame_dungeon.is_flamed(d.get_map_index()) then
				-- say("in dungeon") -- is_flamed ÇÔĽö ĂĽĹ©
			-- end
			-- if d.is_unique_dead("stone1") then
				-- say("stone1 is dead")
			-- else
				-- say("stone1 is not dead")
			-- end
		-- end
		-- when 20385.chat."ĂłŔ˝Ŕ¸·Î" begin -- Ĺ×˝şĆ®żë
			-- say("ĂʱâČ­ ÇŐ´Ď´Ů")
			-- flame_dungeon.clear_timer(d.get_map_index())
			-- flame_dungeon.make_dungeon()
		-- end
		when 20385.chat."Test : Boss Room" with is_test_server() begin -- Ĺ×˝şĆ®żë
			flame_dungeon.go_boss()
		end
		
		-- < ˝Ă°Ł °ć°ú ŸŔ̸Ó>
		-- when 20385.chat."łŞ°ˇ±â" begin -- ´řŔüżˇĽ­ ƨ±âÁö ľĘ°Ô ÇŇ °ćżě Č°ĽşČ­
			-- local setting = flame_dungeon.setting()
			-- say("ąŰŔ¸·Î łŞ°ˇ˝Ă°Ú˝Ŕ´Ď±î?")
			-- local warp = select("Č®ŔÎ","ĂëĽŇ")
			-- if warp == 1 then
				-- pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62)
			-- end
		-- end
		when flame_dungeon_45m_left_timer.server_timer begin
			if d.select(get_server_timer_arg()) then
				notice_multiline(string.format(gameforge.flame_dungeon._180_notice, 45),d.notice)
				notice_multiline(gameforge.flame_dungeon._170_notice,d.notice)
				server_timer('flame_dungeon_30m_left_timer', 15*60, get_server_timer_arg())
			end
		end
		when flame_dungeon_30m_left_timer.server_timer begin
			if d.select(get_server_timer_arg()) then
				notice_multiline(string.format(gameforge.flame_dungeon._180_notice, 30),d.notice)
				notice_multiline(gameforge.flame_dungeon._170_notice,d.notice)
				server_timer('flame_dungeon_15m_left_timer', 15*60, get_server_timer_arg())
			end
		end
		when flame_dungeon_15m_left_timer.server_timer begin
			if d.select(get_server_timer_arg()) then
				notice_multiline(string.format(gameforge.flame_dungeon._180_notice, 15),d.notice)
				notice_multiline(gameforge.flame_dungeon._170_notice,d.notice)
				server_timer('flame_dungeon_5m_left_timer', 10*60, get_server_timer_arg())
			end
		end
		when flame_dungeon_5m_left_timer.server_timer begin
			if d.select(get_server_timer_arg()) then
				notice_multiline(string.format(gameforge.flame_dungeon._180_notice, 5),d.notice)
				notice_multiline(gameforge.flame_dungeon._170_notice,d.notice)
				server_timer('flame_dungeon_1m_left_timer', 4*60, get_server_timer_arg())
			end
		end
		when flame_dungeon_1m_left_timer.server_timer begin
			if d.select(get_server_timer_arg()) then
				notice_multiline(string.format(gameforge.flame_dungeon._180_notice, 1),d.notice)
				notice_multiline(gameforge.flame_dungeon._170_notice,d.notice)
				server_timer ("flame_dungeon_0m_left_timer", 60, get_server_timer_arg())
			end
		end
		when flame_dungeon_0m_left_timer.server_timer begin
			local setting = flame_dungeon.setting()
			if d.select(get_server_timer_arg()) then		
				notice_multiline(gameforge.flame_dungeon._190_notice,d.notice)
				notice_multiline(gameforge.flame_dungeon._200_notice,d.notice)
				server_timer("dungeon_end_timer",10,d.get_map_index())	
			end
		end	


		-- <<<< ´řŔü ÁřÇŕ>>>> --
		when 20385.chat.gameforge.flame_dungeon._210_npcChat with npc.lock() begin -- '0x'´Â xąř° ·ąş§ Äů˝şĆ® ąŢŔ» Ľö ŔÖ´Â »óĹ , '1x'´Â xąř° ·ąş§ Äů˝şĆ® ÁřÇŕÁß
			local setting = flame_dungeon.setting()
			if d.getf("started") == 0 then
				say(gameforge.flame_dungeon._230_say)
				say(gameforge.flame_dungeon._240_say)
				wait()
				d.setf("started",1)
				-- ĆÄĆĽżřŔĚ Ć¨°Üąö·Č´ÂµĄ Ŕڱ⸸ ł˛ľĆĽ­ exit timer°ˇ ¸®ĽÂµÇ¸é ľČµÇ´Ď±ń ´ŮŔ˝·ąş§Ŕ» ´­·¶Ŕ»¶§¸¦ ˝ĂŔŰÇҶ§·Î ş˝
				server_timer ("flame_dungeon_45m_left_timer",15*60, d.get_map_index())
				notice_multiline(gameforge.flame_dungeon._250_notice,d.notice)
				notice_multiline(gameforge.flame_dungeon._170_notice,d.notice)
				
				-- ĹëÇŕÁő °ü·ĂµČ Ăł¸®
				-- ŔÔŔĺ ČÄżˇ ĆĽÄĎŔ» ľřľŘ »ç¶÷Ŕ» ƨ°Üł»±â Ŕ§ÇŘĽ­ ŸŔ̸Ӹ¦ ŔĚżëÇŘ ĆĽÄĎŔ» Á¦°ĹÇŃ´Ů.
				local pids = {party.get_member_pids()}
				local ticketGroup = {get_special_item_group (10033)}
				for i, pid in next, pids, nil do
					q.begin_other_pc_block(pid)
					local canPass = false
					for idx=1, table.getn(ticketGroup),2 do 
						if pc.count_item(ticketGroup[idx]) >= ticketGroup[idx+1] then
							canPass = true
							pc.remove_item(ticketGroup[idx], ticketGroup[idx+1])
							break
						end
					end
					
					if not canPass then
						pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62)
					end
					q.end_other_pc_block()
				end
				d.setqf2("flame_dungeon","ticket_delete",1)
				d.setf("dungeon_enter",1)
				
				-- ´řŔü°ú ĆÄĆĽżˇ Ľ­·Îżˇ ´ëÇŃ Á¤ş¸¸¦ ŔúŔĺÇŃ´Ů.
				party.setf("dungeon_index", d.get_map_index())
				d.setf("party_leader_pid", party.get_leader_pid())
			end
			if d.getf("level") < 7 then --ÁřÇŕÁßŔĚ ľĆ´Ď¸é
				if d.getf("clear_count") == 6 then -- ąć ż©Ľ¸°ł ÇßŔ¸¸é ş¸˝şąć
					d.setf("level",7)
				else
					local rand = number(1,6)--·Ł´ýżˇĽ­ ąćą®ĂĽĹ©´Â µű·Î ąčż­ľřŔĚ ąćŔÇ ą®ŔÇ ż­·ÁŔÖ´ÂÁö·Î ĂĽĹ©ÇÔ
					local setlev = 0
					d.setf("level",7) -- Ȥ˝Ă ¸đ¸¦ ą®Á¦°ˇ »ý°Ü ·ąş§ŔĚ ľČŔâČú°ćżě¸¦ ´ëşńÇŘ ş¸˝ş·ëŔ¸·Î ĽÂĆĂÇصŇ
					for i=1,50 do
						setlev = setlev + 1
						if setlev > 6 then
							setlev = 1
						end
						if not d.is_unique_dead("door"..setlev) then
							rand = rand - 1
							if rand == 0 then
								d.setf("level",setlev)
								d.setf("clear_count",d.getf("clear_count")+1)
								break
							end	
						end
					end
				end
			end
				if d.getf("level") == 1 then
					say(gameforge.flame_dungeon._260_say)
					notice_multiline(gameforge.flame_dungeon._260_say,d.notice)
					d.kill_unique("door1")
					d.kill_unique("idoor1")
					d.setf("level",11)
					d.regen_file ("data/dungeon/flame_dungeon/".."fd_a.txt")
						
					server_timer ("killed_A_1", 12, d.get_map_index())
				elseif d.getf("level") == 11 then
					say(gameforge.flame_dungeon._270_say)
					say_title(gameforge.flame_dungeon._280_sayTitle .. d.count_monster())
				elseif d.getf("level") == 2 then
						say(gameforge.flame_dungeon._290_say)
						say(gameforge.flame_dungeon._300_say)
						notice_multiline(gameforge.flame_dungeon._290_say,d.notice)
						notice_multiline(gameforge.flame_dungeon._300_say,d.notice)
						d.spawn_mob(20386, setting.LEVEL2_STONE_pos[1], setting.LEVEL2_STONE_pos[2]) -- şŔŔÎĽ® ĽŇČŻ
						d.kill_unique("door2")
						d.kill_unique("idoor2")
						d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_b.txt")
						d.setf("level",12)
				elseif d.getf("level") == 12 then
					say(gameforge.flame_dungeon._310_say)
				elseif d.getf("level") == 3 then
					say(gameforge.flame_dungeon._260_say)
					notice_multiline(gameforge.flame_dungeon._260_say,d.notice)
					d.kill_unique("door3")
					d.kill_unique("idoor3")
					d.setf("level",13)
					d.regen_file ("data/dungeon/flame_dungeon/".."fd_c.txt")
					server_timer ("killed_A_1", 12, d.get_map_index())
				elseif d.getf("level") == 13 then
					say(gameforge.flame_dungeon._270_say)
					say_title(gameforge.flame_dungeon._280_sayTitle..d.count_monster())
				elseif d.getf("level") == 4 then -- 474 178
					say(gameforge.flame_dungeon._320_notice)
					notice_multiline(gameforge.flame_dungeon._320_notice,d.notice)
					d.setf("level",14)
					d.kill_unique("door4")
					d.kill_unique("idoor4")
					d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_d.txt")
					d.spawn_mob(6051,setting.LEVEL4_TARGET_pos[1],setting.LEVEL4_TARGET_pos[2] ) -- Ÿ°Ů¸ó˝şĹÍ ĽŇÇŃ
				elseif d.getf("level") == 14 then
					say(gameforge.flame_dungeon._330_say)
					say(gameforge.flame_dungeon._340_say)
				elseif d.getf("level") == 5 then -- 510 355
					say(gameforge.flame_dungeon._350_say)
					say(gameforge.flame_dungeon._360_say)
					notice_multiline(gameforge.flame_dungeon._350_say,d.notice)
					notice_multiline(gameforge.flame_dungeon._360_say,d.notice)
					d.kill_unique("door5")
					d.kill_unique("idoor5")
					d.setf("level",15)
					d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
					local vis = { 0,0,0,0,0,0,0}
					for i=1,7 do
						vis[i] = 0
					end
					for i = 1, 7 do -- ·Ł´ýÇĎ°Ô µąĽŇČŻ
						local ran = number(1,7)
						local st = 0
						for j = 1, 50 do
							st = st + 1
							if st > 7 then
								st = 1
							end
							if vis[st] == 0 then
								ran = ran - 1
								if ran == 0 then
									vis[st] = 1
									d.set_unique("stone5_"..st, d.spawn_mob(20386, setting.LEVEL5_STONE_pos[i][1], setting.LEVEL5_STONE_pos[i][2]))
									break
								end
							end
						end
					end  
				elseif d.getf("level") == 15 then
					say(gameforge.flame_dungeon._370_say)
				elseif d.getf("level") == 6 then -- 507 490
					say(gameforge.flame_dungeon._380_say) 
					notice_multiline(gameforge.flame_dungeon._380_say,d.notice)
					d.setf("level",16)
					d.kill_unique("door6")
					d.kill_unique("idoor6")
					d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_f.txt")
					d.spawn_mob(8057, setting.LEVEL6_TARGET_pos[1],setting.LEVEL6_TARGET_pos[2]) -- Ÿ°ŮżŔşęÁ§Ć® ĽŇČŻ
				elseif d.getf("level") == 16 then
					say(gameforge.flame_dungeon._390_say)
					say(gameforge.flame_dungeon._400_say)
				elseif d.getf("level") == 7 then
					-- setskin(NOWINDOW)
                    flame_dungeon.go_boss()
				else
					say(gameforge.flame_dungeon._410_say)
				end
			npc.unlock()		
		end
	


		when dungeon_end_timer.server_timer begin -- Áľ·á ŸŔĚ¸Ó (łˇłŞ°í łŞ°ˇ´Â°Ĺ)
			local setting = flame_dungeon.setting()
			if d.select(get_server_timer_arg()) then
				flame_dungeon.clear_timer(d.get_map_index())		
				d.set_warp_location(62, setting.outside_entry_pos[1] , setting.outside_entry_pos[2]) 
				d.exit_all()
				d.setf("party_leader_pid", 0)
			end
		end

		when killed_A_1.server_timer begin -- ŸŔĚ¸Ó µą¸®±â1 (level1,level3)
			if d.select(get_server_timer_arg()) then
				if d.count_monster() <= 0 then -- 1·ąş§ ¸ó˝şĹÍ Ŕü¸ę˝Ă
					if d.getf("level") == 11 then
						notice_multiline(gameforge.flame_dungeon._420_notice,d.notice)
						notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
					else
						notice_multiline(gameforge.flame_dungeon._420_notice,d.notice)
						notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
					end
					d.setf("level",0)
				else 
					server_timer ("killed_A_2", 6, get_server_timer_arg())
				end
			end
		end
		when killed_A_2.server_timer begin -- ŸŔĚ¸Ó µą¸®±â2 (1°ú 2 ąř°ĄľĆ°ˇ¸éĽ­ µąľĆ°¨)
			if d.select(get_server_timer_arg()) then
				if d.count_monster() <= 0 then -- 1·ąş§ ¸ó˝şĹÍ Ŕü¸ę˝Ă
					if d.getf("level") == 11 then
						notice_multiline(gameforge.flame_dungeon._420_notice,d.notice)
						notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
					else
						notice_multiline(gameforge.flame_dungeon._420_notice,d.notice)
						notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
					end
					d.setf("level",0)
				else 
					server_timer ("killed_A_1", 6, get_server_timer_arg())
				end
			end
		end

		when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 12 begin -- 2·ąş§ şŔŔÎĽ® ż­Ľč µĺ¶ř
			local i = number(1, 100) -- 100şĐŔÇ 1 Č®·ü·Î ż­Ľčµĺ¶ř
			if i == 1 then
				game.drop_item (30329, 1)
			end
		end
		when 20386.take with flame_dungeon.is_flamed(pc.get_map_index()) and item.vnum == 30329 and d.getf("level") == 12 begin -- 2·ąş§ ż­Ľč ¸ÔľúŔ»¶§
			local i = number(1, 5) -- 5şĐŔÇ 1 Č®·ü·Î ÁřÂĄ ż­Ľč
			if i == 1 then
				npc.purge()
				item.remove()
				notice_multiline(gameforge.flame_dungeon._440_notice,d.notice)
				notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
				flame_dungeon.level_clear()
			else
				item.remove()
				say(gameforge.flame_dungeon._450_say)
			end
		end

		when 6051.kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 14 begin
			notice_multiline(gameforge.flame_dungeon._460_notice,d.notice)
			notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
			flame_dungeon.level_clear()
		end

		when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 15 begin -- 5·ąş§ şŔŔÎĽ® ż­Ľč µĺ¶ř
			local i = number(1, 30) -- 30şĐŔÇ 1 Č®·ü·Î ż­Ľčµĺ¶ř
			if i == 1 then
				game.drop_item (30330, 1)
			end
		end
		when 20386.take with flame_dungeon.is_flamed(d.get_map_index()) and item.vnum == 30330 and d.getf("level") == 15 begin -- 5·ąş§ ÁřÂĄż­Ľč ¸ÔľúŔ»¶§
			local setting = flame_dungeon.setting()
			if npc.get_vid() == d.get_unique_vid("stone5_1") then -- Ăąąř° ˛¨´Â Ľ±ÇŕµÇľîľß ÇŇ ŔĎŔĚ ÇĘżäľřŔ¸´Ď ĂŁŔÚ¸¶ŔÚ Á¦°ĹÇŘÁÜ
				npc.purge()
				item.remove()
				say(gameforge.flame_dungeon._470_say)
				d.setf("stonekill",2) -- 2ąř µąŔ» Á׿©¶ó
				if d.count_monster() < 100 then
					d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
				end
			elseif npc.get_vid() == d.get_unique_vid("stone5_2") then 
				if d.getf("stonekill") == 2 then -- 2ąřµąŔ» Á×ŔĎ Â÷·ËµĄ 2ąřµążˇ°Ô ż­Ľč¸¦ ¸Ôż´Ŕ» ¶§
					npc.purge()
					item.remove()
					say(gameforge.flame_dungeon._480_say)
					d.setf("stonekill",3)
					if d.count_monster() < 100 then
						d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
					end
				else
					item.remove()
					say(gameforge.flame_dungeon._490_say)
			--		say("2ąř")
				end
			elseif npc.get_vid() == d.get_unique_vid("stone5_3") then
				if d.getf("stonekill") == 3 then
					npc.purge()
					item.remove()
					say(gameforge.flame_dungeon._500_say)
					d.setf("stonekill",4)
					if d.count_monster() < 100 then
						d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
					end
				else
					item.remove()
					say(gameforge.flame_dungeon._490_say)
			--		say("3ąř")
				end
			elseif npc.get_vid() == d.get_unique_vid("stone5_4") then
				if d.getf("stonekill") == 4 then
					npc.purge()
					item.remove()
					say(gameforge.flame_dungeon._510_say)
					d.setf("stonekill",5)
					if d.count_monster() < 100 then
						d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
					end
				else
					item.remove()
					say(gameforge.flame_dungeon._490_say)
				--	say("4ąř")
				end
			elseif npc.get_vid() == d.get_unique_vid("stone5_5") then
				if d.getf("stonekill") == 5 then
					npc.purge()
					item.remove()
					say(gameforge.flame_dungeon._520_say)
					d.setf("stonekill",6)
					if d.count_monster() < 100 then
						d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
					end
				else
					item.remove()
					say(gameforge.flame_dungeon._490_say)
			--		say("5ąř")
				end
			elseif npc.get_vid() == d.get_unique_vid("stone5_6") then
				if d.getf("stonekill") == 6 then
					npc.purge()
					item.remove()
					say(gameforge.flame_dungeon._530_say)
					d.setf("stonekill",7)
					if d.count_monster() < 100 then
						d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
					end
				else
					item.remove()
					say(gameforge.flame_dungeon._490_say)
			--		say("6ąř")
				end
			else 
				if d.getf("stonekill") == 7 then
					npc.purge()
					item.remove()
					notice_multiline(gameforge.flame_dungeon._440_notice,d.notice)
					notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
					flame_dungeon.level_clear()
				else
					item.remove()
					say(gameforge.flame_dungeon._490_say)
			--		say("7ąř")
				end
			end
		end

		when 8057.kill with flame_dungeon.is_flamed(d.get_map_index()) and d.getf("level") ==16 begin -- ¸Á¸¶Ľ® Ćı«ÇßŔ» ¶§
			notice_multiline(gameforge.flame_dungeon._540_notice,d.notice)
			notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
			flame_dungeon.level_clear()
		end

		when 6091.kill with flame_dungeon.is_flamed(d.get_map_index()) and d.getf("level") ==17 begin -- ş¸˝ş Á׿´Ŕ»¶§
			notice_multiline(gameforge.flame_dungeon._550_notice,d.notice)
			notice_multiline(gameforge.flame_dungeon._560_notice,d.notice)
			server_timer("dungeon_end_timer", 60,d.get_map_index())	
			flame_dungeon.level_clear()
			
			-- ĆÄĆĽżř Áß, ľß¸¶Ăµ Ŕâ´Â Äů˝şĆ®(104·ľ, 105·ľ Äů˝şĆ®) ÁřÇŕÁßŔÎ »ç¶÷ŔĚ ŔÖŔ¸¸é Äů˝şĆ® Ŭ¸®ľî µÇµµ·Ď.
			if party.is_party() then
				party.setf("flame_dungeon_boss_kill_count", 1)
			end
			
		end
	end
end

The dungeon guard say: The group not avaiable dungeon ticket,but all characters avaiable dungeon ticket.

Some picture the problem.

 

rcckxg4sngv1gjy3nlie.png

 

8gguw790iviacvzjdjrk.png

 

 

Edited by Metin2 Dev
Core X - External 2 Internal
Link to comment
Share on other sites

THX, Problem solved! ^^

Ne quest problem:

How to make this quest, not only leader need the dungeon ticket , all party player need the dungeon ticket. Or how to find gf nemere quest?

 

quest snow_dungeon begin
	state start begin
		function get_settings()
			local snow_dungeon_settings = {}
			snow_dungeon_settings.map_index = 352							--Mapindex
			snow_dungeon_settings.base_cord = {5120, 1536 }					--Kezdő kordináta
			snow_dungeon_settings.outside_entry_pos = {61,4321,1667}		--Mapindex, Kilépési kordináta (Sohan)
			snow_dungeon_settings.need_level = 100							--Minimum elérési szint
			snow_dungeon_settings.need_level_group = 100					--Szükséges szint a csoport tagjainak
			snow_dungeon_settings.WaitBeforOutAllOnExit = 60				--Wartezeit bevor alle alle herausteleportiert werden bei einem erfolgreichen Run. (Ajánlott 60 mp)
			snow_dungeon_settings.NextJumpTime = 5							--Mikor tesz a következő szintre (timer) (Ajánlott 5 mp)
			snow_dungeon_settings.DurationLoopTimer = 45					--Intervallum, szint és feltételek vizsgálati ideje (Ajánlott 45 mp)
			snow_dungeon_settings.wait_duration = 60*60*1					--Várakozási idő a következő runra (Csapat vezér)
			snow_dungeon_settings.maxlife_time_on_dungeon = 60*60*1			--Maximális idő a runra
			snow_dungeon_settings.DurationMaxOnReJoinGroup = 60*5			--Maximális idő amely alatt újra lehet csatlakozni a csoporthoz
			snow_dungeon_settings.key_level_2 = 30331						--KeyVnum a 2-es szinten					--Fagy-kulcs
			snow_dungeon_settings.NpcVnum_level_5 = 20398					--MobVnum az 5-ös szinten					--Sarkvidéki kocka
			snow_dungeon_settings.StoneCount_level_5 = 6					--Mennyi kocka jelenjen meg?
			snow_dungeon_settings.Key_on_level_5 = 30332					--KeyVnum a 5-ös szinten					--Északi sarkcsillag
			snow_dungeon_settings.StoneCords_level_5 = {
			{432,508},{437,493},{448,492},{448,476},{467,475},{466,464},
			{462,450},{458,428},{446,439},{431,431},{415,416},{402,427},
			{397,438},{375,434},{374,456},{390,468},{385,492},{402,505},
			{404,489},{386,482}
			} --A kocka poziciói
			snow_dungeon_settings.MobVnum_level_6 = 8058					--MobVnum a 6-os szinten					--Hideg metinje
			snow_dungeon_settings.MobVnum_level_7 = 6151					--MobVnum a 7-es szinten					--Szel
			snow_dungeon_settings.SzelCords_level_7 = {
			{752,499},{758,479},{772,452},{763,444},{750,451},{728,441},
			{726,455},{718,482},{715,491},{731,473},{748,429}
			} --Szel poziciói
			snow_dungeon_settings.Key_on_level_8 = 30333					--KeyVnum a 8-as szinten					--Jégvirág-kulcs
			snow_dungeon_settings.NpcVnum_level_9 = 8058					--MobVnum a 9-es szinten					--Északi Sárkány oszlop
			snow_dungeon_settings.BossVnumGroup = 6062						--GroupMobVnum Boss-nál						--(Group.txt)
			snow_dungeon_settings.BossVnum = 6191							--MobVnum a 10-es szinten					--Nemere

			snow_dungeon_settings.Position_level_1 = { 171,271 }			--Pozíció szint 1		--Start pozíció		--Megölni az összes szörnyet ezen a szinten.
			snow_dungeon_settings.Position_level_2 = { 761,270 }			--Pozíció szint 2							--A jó Fagy kulcs megtalálása, csak Sámán tudja használni.
			snow_dungeon_settings.Position_level_3 = { 187,491 }			--Pozíció szint 3							--Megölni az összes szörnyet ezen a szinten.
			snow_dungeon_settings.Position_level_4 = { 421,259 }			--Pozíció szint 4							--Megölni az összes szörnyet ezen a szinten.
			snow_dungeon_settings.Position_level_5 = { 419,530 }			--Pozíció szint 5							--A Sarkvidéki kocka megfelelő sorrendben való nyitása. (Északi sarkcsillagot húzd a Sarkvidéki kockára)
			snow_dungeon_settings.Position_level_6 = { 571,706 }			--Pozíció szint 6							--Megölni az összes szörnyet ezen a szinten. Ezt követően a hideg metint elpusztítani (Csak egy sámán árthat neki)
			snow_dungeon_settings.Position_level_7 = { 746,534 }			--Pozíció szint 7							--Megölni az összes szörnyet ezen a szinten és Szel-t
			snow_dungeon_settings.Position_level_8 = { 303,710 }			--Pozíció szint 8							--Jégvirág kulcs keresése, de ezt csak Sámán vagy Nindzsa tudja használni.
			snow_dungeon_settings.Position_level_9 = { 848,693  }			--Pozíció szint 9							--Északi Sárkány oszlop elpusztítása. Csak Sámán vagy Nindzsa árthat neki.
			snow_dungeon_settings.Position_level_10 = { 927,391 }			--Pozíció szint 10 (BossZone)				--Győzd le Nemerét a fagy és a jég királyát.
			-- snow_dungeon_settings.Enable_TestServerMode = false				--Teszt szerver üzemmód						--Ha igen, a feladatok elvégzése gyorsabb (true = engedélyezve, false = tiltva).
			snow_dungeon_settings.IsNewga_me_re_vi_sion = false				--Need ga_me_re_vi_sion 40301
			return snow_dungeon_settings
		end
		function is_nemeres_dungeon()
			local set = snow_dungeon.get_settings()
			local map = pc.get_map_index()
			if map >= (set.map_index * 10000) and map < (set.map_index * 10000 + 9000) then
				return true
			else
				return false
			end
		end
		when 20395.chat."Csatlakozás a csoporthoz" with (party.is_party() and d.find(party.getf("ice_dungeon_map_index"))) begin
			local set = snow_dungeon.get_settings()
			local n = party.getf("ice_dungeon_map_index")
			local cord = set.base_cord
			local level = d.getf_from_map_index("level", n)
			if level == 0 then
				say_npc_name()
				say("A te csoportod már bevette Nemere erődjét.")
				return
			end
			if pc.getqf("out_party_time") < get_global_time() then
				say_npc()
				say("")
				say("Több, mint "..math.ceil(set.DurationMaxOnReJoinGroup  /60) .." perc van")
				say("arra, hogy bevegyétek Nemere erődjét")
				say("")
				return
			end
			if n == 0 then
				setskin(NOWINDOW)
				return
			else
				say_npc()
				say("")
				say("Szeretnél újra csatlakozni a csoporthoz?")
				if select("Igen","Nem") == 1 then
					local warp_to_level = set.Position_level_1
					local level = d.getf_from_map_index("level", n)
					if level >= 1 and level <= 10 then
						if level == 1 then      warp_to_level = set.Position_level_1
						elseif level == 2 then  warp_to_level = set.Position_level_2
						elseif level == 3 then  warp_to_level = set.Position_level_3
						elseif level == 4 then  warp_to_level = set.Position_level_4
						elseif level == 5 then  warp_to_level = set.Position_level_5
						elseif level == 6 then  warp_to_level = set.Position_level_6
						elseif level == 7 then  warp_to_level = set.Position_level_7
						elseif level == 8 then  warp_to_level = set.Position_level_8
						elseif level == 9 then  warp_to_level = set.Position_level_9
						elseif level == 10 then warp_to_level = set.Position_level_10
						end
						pc.warp((cord[1] + warp_to_level[1])*100,(cord[2] + warp_to_level[2])*100,n)
					else
						return
					end
				end
			end
		end

		when 20395.chat."Nemere erődje" begin
			local set = snow_dungeon.get_settings()
			local need_level = set.need_level
			say_npc()
			say("")
			say("Biztosan tudod, hogy mindenki beszeretne")
			say("lépni a gonosz Nemere erődjébe?")
			if select("Igen, szeretnénk belépni!","Nem, túl hideg van ott...") == 2 then
				return
			end
			if (pc.is_gm() and pc.getf("snow_dungeon","duration") >= get_global_time()) then
				say("Te GM vagy, szeretnéd törölni a várakozási időt?")
				if select("Igen","Nem") == 1 then
					pc.setf("snow_dungeon","duration",0)
					return
				end
			end
			-- if (is_test_server() and snow_dungeon.is_TestServerMode() == true ) then
				-- say("Teszt szerver mód bekapcsolása.")
				-- say("Csatlakozz most.")
				-- timer("make_dungeon",3)
				-- return
			-- end
			if not party.is_leader() then
				say_npc()
				say("Nagyra értékelem a bátorságod, de egyedül nem")
				say("léphetsz be Nemere erődjébe.")
				say("Szedd össze a barátaidat és egy erős csoportnak")
				say("már megadom az engedélyt a belépésre.")
				return
			end
			if pc.get_level() < need_level then
				say("Szükséged van a minimum szintre "..need_level.."")
				say("hogy beléphes a dungeonba.")
				return
			end
			if pc.getf("snow_dungeon","duration") >= get_global_time() then
				say_npc()
				say("Újra beléphetsz Nemere erődjébe.")
				say("A várakozási idő még nem járt le. ")
				say("Hátralévő idő: "..LIB_duration(pc.getf("snow_dungeon","duration") - get_global_time()).."")
				return
			end
			if snow_dungeon._CheckMembersLevel() == false then
				return
			else
				timer("make_dungeon",2)
			end
		end
		when 20397.chat."A csata elkezdődik" begin --Jég oroszlán
			say_npc()
			say("")
			say("Szeretnéd elindítani a runt?")
			if select("Igen","Nem, talán később") == 1 then
				local set = snow_dungeon.get_settings()
				local loop_durr = set.DurationLoopTimer
				local wait_durations = set.wait_duration
				local t = get_global_time()
				d.setf("LastTimeGetOutPut",0)
				server_loop_timer("CheckLevelAndCountKillOnMobs",loop_durr,d.get_map_index())
				d.regen_file("data/dungeon/ice_dungeon/zone_1.txt")
				d.setf("Start_Time",t + set.maxlife_time_on_dungeon)
				server_timer("Jp_OutAllFailNotice",(t + set.maxlife_time_on_dungeon) -  t,d.get_map_index())
				d.setqf2("snow_dungeon","duration",t + wait_durations)
				d.setf("level",1)
				d.notice("Öljétek meg az összes szörnyet ahhoz, hogy a következő szintre léphessen a csapat.") 
				npc.purge()
				snow_dungeon._GetLastTime()
			end
			setskin(NOWINDOW)
		end
		when make_dungeon.timer begin
			local set = snow_dungeon.get_settings()
			local cord = set.base_cord
			local start_pos = set.Position_level_1
			local t = get_global_time()
			d.new_jump_party(set.map_index,(cord[1] + start_pos[1]), (cord[2] + start_pos[2]))
			snow_dungeon._ClearAlls()
			d.setf("party_leader_pid",party.get_leader_pid())
			party.setf("ice_dungeon_map_index",d.get_map_index())
			d.spawn_mob_dir(20397, 173,262,1) --Jég oroszlán
		end
		function _ClearAlls()
			local d_index = d.get_map_index()
			clear_server_timer("CheckLevelAndCountKillOnMobs",d_index)
			clear_server_timer("Jp_1",d_index)
			clear_server_timer("Jp_2",d_index)
			clear_server_timer("Jp_3",d_index)
			clear_server_timer("Jp_4",d_index)
			clear_server_timer("Jp_5",d_index)
			clear_server_timer("Jp_6",d_index)
			clear_server_timer("Jp_7",d_index)
			clear_server_timer("Jp_8",d_index)
			clear_server_timer("Jp_9",d_index)
			clear_server_timer("Jp_10",d_index)
			clear_server_timer("Jp_OutAll",d_index)
			clear_server_timer("Jp_OutAllFail",d_index)
			clear_server_timer("Jp_OutAllFailNotice",d_index)
			d.setf("level",0)
			d.setf("party_leader_pid",0)
			d.setf("Start_Time",0)
			d.setf("LastTimeGetOutPut",0)
			d.setf("Stone_5_count",0)
			d.setf("Stone_5_item_fail",0)
			d.clear_regen()
			d.kill_all()
		end

		function _CheckMembersLevel()
			local set = snow_dungeon.get_settings()
			local user_fail_level = {}
			local pids = {party.get_member_pids()}
			local need_level = set.need_level_group
			local have_ninja = false
			local have_shaman = false
			for i = 1, table.getn(pids), 1 do
				q.begin_other_pc_block(pids[i])
				if pc.get_level() < need_level then
					table.insert(user_fail_level, table.getn(user_fail_level) +1, pc.get_name())
				end
				local job = pc.get_job()
				if job == 1 -- Nindzsa nő
				or job == 5 -- Nindzsa férfi
				then
					have_ninja = true
				end
				if job == 3 -- Sámán nő
				or job == 7 -- Sámán férfi
				then
					have_shaman = true
				end
				q.end_other_pc_block()
			end
			-- if (is_test_server() and snow_dungeon.is_TestServerMode() == true ) then
				-- return true
			-- end
			if have_ninja == false then
				say("A csoport nem tud felmenni Nindzsa nélkül.")
				say("")
				return false
			end
			if have_shaman == false then
				say("A csoport nem tud felmenni Sámán nélkül.")
				say("")
				return false
			end
			if table.getn(user_fail_level) >= 1 then
				say_npc()
				say("")
				say("A csoprtban van olyan játékos aki még")
				say("nem érte el a "..need_level.." szintet.")
				for x = 1, table.getn(user_fail_level), 1 do
					say(color(1,1,0), "		"..user_fail_level[x])
				end
				return false
			end
			if table.getn(user_fail_level) == 0 then
				return true
			end
		end
		-- when logout begin
			-- if snow_dungeon.is_nemeres_dungeon() == true then
			-- local set = snow_dungeon.get_settings()
			-- pc.setqf("out_party_time",get_global_time() + set.DurationMaxOnReJoinGroup)
			-- end
		-- end
		when logout or disconnect with pc.get_map_index() >= 3520000 and pc.get_map_index() < 3530000 begin
			-- warp_to_village();
			pc.warp(432100, 166700)
		end

		when login begin
			if pc.get_map_index() == 352 then pc.warp(432100, 166700) end
			if snow_dungeon.is_nemeres_dungeon() == true then
				local set = snow_dungeon.get_settings()
				local backk = set.outside_entry_pos
				pc.set_warp_location(backk[1], backk[2],backk[3])
				if d.getf("party_leader_pid") != party.get_leader_pid() then
					chat("nemeres_wait_dungeon #RAUS:#  Outside, your Group is not on this Dungeon")
					chat("nemeres_wait_dungeon #RAUS:#debug -> "..d.getf("party_leader_pid").." != "..party.get_leader_pid().."")
					d.exit()
					return
				end
				if pc.get_level() < set.need_level_group then
					chat("nemeres_wait_dungeon #RAUS:#  A szinted alacsony")
					d.exit()
					return
				end
			end
		end

		function _GetLastTime()
			local c = get_global_time()
			local t = d.getf("Start_Time") - c
			local o = d.getf("LastTimeGetOutPut")
			if c >= o then
				if t >= 60 then
					d.notice("Hátra lévő idő "..math.ceil(t / 60).." perc.")
				else
					d.notice("Hátra lévő idő "..t .." másodperc.")
				end
				if t >= (60*10) then
					d.setf("LastTimeGetOutPut",c + 60*5)
				elseif t >= (60*5) then
					d.setf("LastTimeGetOutPut",c + 60*2)
				else
					d.setf("LastTimeGetOutPut",c + 10)
				end
			end
		end

		when Jp_OutAllFailNotice.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice("Lejárt az idő.")
				server_timer("Jp_OutAll",1,d.get_map_index())
			end
		end

		when CheckLevelAndCountKillOnMobs.server_timer begin
			if d.select(get_server_timer_arg()) then
				local set = snow_dungeon.get_settings()
				local level = d.getf("level")
				local mob_count = d.count_monster()
				local next_jump_time = set.NextJumpTime
				if level == 1 and mob_count <= 0 then
					d.notice("Minden szörnyet megöltetek, tovább léphettek a következő szintre.")
					-- d.notice("")
					server_timer("Jp_2",next_jump_time,d.get_map_index())
					d.clear_regen()
					d.kill_all()
					d.set_regen_file("data/dungeon/ice_dungeon/zone_2.txt")
				elseif level == 3 and mob_count <= 0 then
					d.notice("Minden szörnyet megöltetek, tovább léphettek a következő szintre.")
					-- d.notice("")
					server_timer("Jp_4",next_jump_time,d.get_map_index())
					d.clear_regen()
					d.kill_all()
					d.regen_file("data/dungeon/ice_dungeon/zone_4.txt")
				elseif level == 4 and mob_count <= 0 then
					d.notice("Minden szörnyet megöltetek, tovább léphettek a következő szintre.")
					-- d.notice("")
					server_timer("Jp_5",next_jump_time,d.get_map_index())
					d.clear_regen()
					d.kill_all()
					d.set_regen_file("data/dungeon/ice_dungeon/zone_5.txt")
				elseif level == 6 and mob_count <= 0 then
					local MobStonelvl6 = set.MobVnum_level_6
					d.notice("Minden szörnyet megöltetek, következik "..mob_name(MobStonelvl6).." .")
					-- d.notice("")
					d.clear_regen()
					d.kill_all()
					d.regen_file("data/dungeon/ice_dungeon/zone_6.txt")
					d.spawn_mob(MobStonelvl6,570,649)
				elseif level == 7 and mob_count <= 0 then
					d.notice("Minden szörnyet megöltetek, tovább léphettek a következő szintre.")
					-- d.notice("")
					server_timer("Jp_8",next_jump_time,d.get_map_index())
					d.clear_regen()
					d.kill_all()
					d.set_regen_file("data/dungeon/ice_dungeon/zone_8.txt")
				end
				snow_dungeon._GetLastTime()
			end
		end

		when Jp_2.server_timer begin --Jump Level 2
			if d.select(get_server_timer_arg()) then
				local set = snow_dungeon.get_settings()
				local v = set.key_level_2
				d.setf("level",2)
				local cord = set.base_cord
				local pos = set.Position_level_2
				d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2]))
				d.notice("Találjátok meg a megfelelő "..item_name(v).." -ot.")
				-- d.notice("")
			end
		end
		when 30331.use with snow_dungeon.is_nemeres_dungeon() == true begin --key_level_2
			local set = snow_dungeon.get_settings()
			local next_jump_time = set.NextJumpTime
			local job = pc.get_job()
			local level = d.getf("level")
			if level == 2 then
				-- if (is_test_server() and snow_dungeon.is_TestServerMode() == true ) then
					-- job = 3
				-- end
				if job == 3 -- Sámán nő
				or job == 7 -- Sámán férfi
				then
					if number(1,3) == 1 then --or d.count_monster() < 10 then
						d.notice("Megtaláltátok a megfelelő kulcsot! Tovább léphettek a következő szintre.")
						server_timer("Jp_3",next_jump_time,d.get_map_index())
						d.clear_regen()
						d.kill_all()
						d.regen_file("data/dungeon/ice_dungeon/zone_3.txt")
						item.remove()
					else
						d.notice("Ez a kulcs nem jó.")
						item.remove()
					end
				else
					d.notice("Csak Sámán tudja használni.")
					return
				end
			end
		end

		when Jp_3.server_timer begin --Jump Level 3
			if d.select(get_server_timer_arg()) then
				local set = snow_dungeon.get_settings()
				d.setf("level",3)
				local cord_MQ = set.base_cord
				local pos = set.Position_level_3
				d.jump_all((cord_MQ[1] + pos[1]), (cord_MQ[2] + pos[2]))
				d.notice("Öljétek meg az összes szörnyet hogy a következő szintre léphessetek.")
			end
		end

		when Jp_4.server_timer begin --Jump Level 4
			if d.select(get_server_timer_arg()) then
				local set = snow_dungeon.get_settings()
				d.setf("level",4)
				local cord = set.base_cord
				local pos = set.Position_level_4
				d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2]))
				d.notice("Öljétek meg az összes szörnyet hogy a következő szintre léphessetek.")
			end
		end

		when Jp_5.server_timer begin --Jump Level 5
			if d.select(get_server_timer_arg()) then
				local set = snow_dungeon.get_settings()
				local v = set.NpcVnum_level_5
				d.setf("level",5)
				local cord = set.base_cord
				local pos = set.Position_level_5
				d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2]))
				d.notice("Sorrendben kell a Sarkvidéki kockákat megnyitni.")
				if set.IsNewga_me_re_vi_sion == true then
					d.notice("A szörnyek dobják a kulcsot...")
				else
					d.notice("A kulcs automatikusan a leltárba kerül...")
				end
				snow_dungeon._Create_Stones_level5()
			end
		end

		function _DropKeyOnLevel5()
			if number(1,1000) >= 666 then --Abbruch der weiteren funtion -> Damit es spannend bleibt bei den würfeln... :P
				return
			end
			local set = snow_dungeon.get_settings()
			local count = set.StoneCount_level_5
			local vnum = set.Key_on_level_5
			local get_random_unique = d.get_unique_vid("stone5_"..number(1,count).."")
			local fail_count = d.getf("Stone_5_item_fail") +1
			local search = d.getf("Stone_5_count")
			local search2 = d.get_unique_vid("stone5_"..search.."")
			if search2 != get_random_unique then
				d.setf("Stone_5_item_fail",fail_count)
			end

			if set.IsNewga_me_re_vi_sion == true then
				--New function
				game.drop_item_and_select(vnum,1)
			else
				pc.give_item2_select(vnum,1)
			end

			-- if (is_test_server() and snow_dungeon.is_TestServerMode() == true ) then --Wenn TestServer Modus
				-- item.set_socket(1,search2)
				-- d.setf("Stone_5_item_fail",0)
			-- elseif fail_count > 6 then --Wenn mehr wie x mal nicht richtig erstellt wird, dann kommt der richtige Key
				-- item.set_socket(1,search2)
				-- d.setf("Stone_5_item_fail",0)
			if fail_count > 6 then --Wenn mehr wie x mal nicht richtig erstellt wird, dann kommt der richtige Key
				item.set_socket(1,search2)
				d.setf("Stone_5_item_fail",0)
			else
				item.set_socket(1,get_random_unique)
			end
		end

		function _Create_Stones_level5()
			local set = snow_dungeon.get_settings()
			local stone_level5_count_MQ = set.StoneCount_level_5
			local c = set.StoneCords_level_5 --{ {432,508},{437,493},{448,492},{448,476},{467,475},{466,464}}
			local v = set.NpcVnum_level_5
			for i = 1, stone_level5_count_MQ, 1 do
				local n = number(1,table.getn(c))
				d.set_unique("stone5_"..i.."", d.spawn_mob(v, c[n][1], c[n][2]))
				table.remove(c,n)
				if i == 1 then
					d.setf("Stone_5_count",1)
					d.setf("Stone_5_item_fail",0)
				end
			end
		end

		when 20398.take begin --NpcVnum_level_5
			if snow_dungeon.is_nemeres_dungeon() == true then
				local set = snow_dungeon.get_settings()
				local stone_level5_count = set.StoneCount_level_5
				local next_jump_time = set.NextJumpTime
				local vnum = item.get_vnum()
				local key_level_5 = set.Key_on_level_5 --30332
				local unique_item = item.get_socket(1)
				-- if (is_test_server() and snow_dungeon.is_TestServerMode() == true ) then
					-- d.notice("TESTSERVERMODE, in wenigen Sekunden geht es in den nächsten Stock.")
					-- npc.purge()
					-- item.remove()
					-- server_timer("Jp_6",next_jump_time,d.get_map_index())
					-- d.clear_regen()
					-- d.kill_all()
					-- d.regen_file("data/dungeon/ice_dungeon/zone_6.txt")
					-- return
				-- end
				if vnum == key_level_5 then
					local npc_vid = npc.get_vid()
					local search = d.getf("Stone_5_count")
					local search2 = d.get_unique_vid("stone5_"..search.."")
					if npc_vid == search2 then
						if unique_item == npc_vid then
							local new = search +1
							if new > stone_level5_count then
								d.notice("Az utolsó kő után léphettek a következő szintre.")
								npc.purge()
								item.remove()
								server_timer("Jp_6",next_jump_time,d.get_map_index())
								d.clear_regen()
								d.kill_all()
								d.regen_file("data/dungeon/ice_dungeon/zone_6.txt")
							else
								d.notice("A "..search..".ha ha ha. Keresd tovább a ".. stone_level5_count - search .." és találd meg a helyes sorrendet.")
								npc.purge()
								item.remove()
							end
							d.setf("Stone_5_count",new)
						else
							chat("Bár ez a helyes kő, de rossz a kulcs.")
							item.remove()
						end
					else
						chat("Ez nem a megfelelő kő.")
					end
				end
			end --if is dungeon end
		end --when end

		when Jp_6.server_timer begin --Jump Level 6
			if d.select(get_server_timer_arg()) then
				local set = snow_dungeon.get_settings()
				local v = set.MobVnum_level_6
				d.setf("level",6)
				local cord = set.base_cord
				local pos = set.Position_level_6
				d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2]))
				d.notice("Meg kell ölni az összes szörnyet, majd a a Hideg metinjét.")
				-- d.notice("csak Sámán tudja sebezni.")
			end
		end

		when Jp_7.server_timer begin --Jump Level 7
			if d.select(get_server_timer_arg()) then
				local set = snow_dungeon.get_settings()
				local v = set.MobVnum_level_7
				d.setf("level",7)
				local cord = set.base_cord
				local pos = set.Position_level_7
				d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2]))
				d.notice("Meg kell ölni az összes szörnyet és Szel-t.")
			end
		end

		when Jp_8.server_timer begin --Jump Level 8
			if d.select(get_server_timer_arg()) then
				local set = snow_dungeon.get_settings()
				local v = set.Key_on_level_8
				d.setf("level",8)
				local cord = set.base_cord
				local pos = set.Position_level_8
				d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2]))
				d.notice("Ölj szörnyeket, amíg a Jégvirág kulcsot meg nem találod.")
				d.notice("Csak Sámán és Nindzsa tudja használni.")
			end
		end

		when 30333.use with snow_dungeon.is_nemeres_dungeon() == true begin --Key_on_level_8
			local set = snow_dungeon.get_settings()
			local next_jump_time = set.NextJumpTime
			local level = d.getf("level")
			local job = pc.get_job()
			if level == 8 then
				-- if (is_test_server() and snow_dungeon.is_TestServerMode() == true ) then
					-- job = 3
				-- end
				if job == 1 -- Nindzsa nő
				or job == 5 -- Nindzsa férfi
				or job == 3 -- Sámán nő
				or job == 7 -- Sámán férfi
				then
					if number(1,3) == 1 then
						d.notice("Megtaláltátok a megfelelő kulcsot, néhány másodperc és mentek a következő szintre.")
						server_timer("Jp_9",next_jump_time,d.get_map_index())
						d.clear_regen()
						d.kill_all()
						d.regen_file("data/dungeon/ice_dungeon/zone_9.txt")
						item.remove()
					else
						d.notice("Ez a kulcs rossz.")
						item.remove()
					end
				else
					d.notice("Csak Sámán és a Nindzsa használhatja.")
					return
				end
			end
		end

		when Jp_9.server_timer begin --Jump Level 9
			if d.select(get_server_timer_arg()) then
				local set = snow_dungeon.get_settings()
				local v = set.NpcVnum_level_9
				d.setf("level",9)
				local cord = set.base_cord
				local pos = set.Position_level_9
				d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2]))
				d.notice("Pusztitsd el az Északi sárkányoszlopot!")
				-- d.notice("Csak Sámán és Nindzsa tudja megölni.")
				-- d.notice("")
				d.spawn_mob(v,849,655)
			end
		end

		when Jp_Boss.server_timer begin --Jump Level BossZone
			if d.select(get_server_timer_arg()) then
				local set = snow_dungeon.get_settings()
				local v = set.BossVnum
				d.setf("level",10)
				local cord = set.base_cord
				local pos = set.Position_level_10
				d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2]))
				d.notice("Megöltétek a "..mob_name(v)..", királyt és a csatlósait.")
			end
		end

		when kill begin
			if snow_dungeon.is_nemeres_dungeon() == true then
				local set = snow_dungeon.get_settings()
				local next_jump_time = set.NextJumpTime
				local level = d.getf("level")
				local stone_level_6 = set.MobVnum_level_6
				local stone_level_9 = set.NpcVnum_level_9
				local boss_vnum = set.BossVnum
				local wait_time = set.WaitBeforOutAllOnExit
				local mobvnum = npc.get_race()
				if level == 2 and mobvnum >= 6101 and mobvnum <= 6108 and 1 == number(1,10)  then
					local v = set.key_level_2
					game.drop_item(v,1)
				elseif level == 5 and mobvnum >= 6101 and mobvnum <= 6108 and 1 == number(1,15) then
					snow_dungeon._DropKeyOnLevel5()
				elseif level == 6 and mobvnum == stone_level_6 then
					d.notice("A "..mob_name(stone_level_6).." megsemmisült, pár másodperc és mentek a következő szintre.")
					-- d.notice("")
					server_timer("Jp_7",next_jump_time,d.get_map_index())
					d.clear_regen()
					d.kill_all()
					d.regen_file("data/dungeon/ice_dungeon/zone_7.txt") --Szel
					local v_MQv = set.MobVnum_level_7
					local c = set.SzelCords_level_7
					local n = number(1,table.getn(c))
					d.spawn_mob(v_MQv, c[n][1], c[n][2])
				elseif level == 8 and mobvnum >= 6101 and mobvnum <= 6108 and 1 == number(1,10) then
					local v = set.Key_on_level_8
					game.drop_item(v,1)
				elseif level == 9 and mobvnum == stone_level_9 then
					d.notice("A "..mob_name(stone_level_9).." megsemmisült, pár másodperc és mentek a következő szintre.")
					server_timer("Jp_Boss",next_jump_time,d.get_map_index())
					d.clear_regen()
					d.kill_all()
					d.regen_file("data/dungeon/ice_dungeon/zone_boss.txt")
					local v = set.BossVnumGroup
					d.spawn_group(v, 928, 335, 5 ,1, 1) -- (Input from SRC: argument: vnum,x,y,radius,aggressive,count)
				elseif level == 10 and mobvnum == boss_vnum then
					d.clear_regen()
					d.kill_all()
					d.notice("Legyőztétek Nemerét! 60 másodperc múlva kiteleportálódtok.")
					server_timer("Jp_OutAll",60,d.get_map_index())
					 d.regen_file("data/dungeon/ice_dungeon/zone_end_npc.txt")
				end
			end
		end
		when Jp_OutAll.server_timer begin --Jump Out Bye bye ;D
			if d.select(get_server_timer_arg()) then
				snow_dungeon._ExitAll()
			end
			 d.regen_file("data/dungeon/ice_dungeon/zone_end_npc.txt")
		end
		 when 20401.click begin
			 say_title(mob_name(npc.get_race())..":")
			 say("")
			 say("Most megkapod a jutalmad...")
			 pc.give_item2("50097", 1)
			 wait()
			 warp_to_village();
		 end
		function _ExitAll()
			d.exit_all()
		end
	end
end

 

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

Announcements



×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.