[SERVICE] Die Questkontrolle

10/22/2013 17:31 *.Creatic.*#9196
Also ich hab ein Problem undzwar diese DC quest funktioniert NICHT, in Putty zeigt es zwar keine Fehler an, aber ingame klappt es einfach nicht.. ich denke er akzeptiert die functionen nicht.. und kp was ich da noch machen kann ( DIE QUEST IST NICHT SELFMADE) ich hoffe jemand kann helfen
HTML Code:
quest devilcatacomb_zone begin
	state start begin

	function setting()
		return
		{

		["base"]={["x"] = 3072  , ["y"]= 12032 ,},
		["floor1_s"] = { ["x"] = 20, ["y"] = 20, },
		["floor1_e"] = { ["x"] = 500, ["y"] = 470,},
		["floor2_s"] = { ["x"] = 510, ["y"] = 18, },
		["floor2_e"] = { ["x"] = 978, ["y"] = 470,},
		["floor1_entry"] = {["x"] = 73, ["y"] = 63,},
		["floor2_entry"] = {["x"] = 550, ["y"] = 45,},
		["floor3_entry"] = {["x"] = 1378, ["y"] = 249,},
		["floor4_entry"] = {["x"] = 70, ["y"] = 592,},
		["floor5_entry"] = {["x"] = 846, ["y"] = 898},
		["floor6_entry"] = {["x"] = 1362, ["y"] = 666},
		["floor7_entry"] = {["x"] = 73, ["y"] = 1156},

		["map_idx"] = 206,
		["rag"] = 30311,

		["devil_king"] = 2591,

		["reapers_credit1"] = 30319,
		["reapers_credit2"] = 30320,
		["reapers_credit3"] = 76002,
		["reapers_credit4"] = 79001,

		["floor3_stone"] = 8038,  
		["floor3_stone_pos"] = {
				{1366,	150},
				{1366,	351},
				{1234,	365},
				{1234,	140},
				{1150,	135},
				{1130,	365},
				{1135,	253}
		},

		["mob_regen_file_path"] = "data/dungeon/devilcatacomb/",
		["floor4_regen_file"] = {"devilcatacomb_floor4_regen1.txt",
		                       "devilcatacomb_floor4_regen2.txt",
							   "devilcatacomb_floor4_regen3.txt",
							   "devilcatacomb_floor4_regen4.txt",
							   "devilcatacomb_floor4_regen5.txt"} ,

		["credit_stone"] = 30101,
		["credit_stone_pos"] = {307,323},
		["floor2_stone"] = 30103,
		["floor2_stone_pos"] = {741,217},
		["floor2_merchant_npc"] = 20368,
		["floor2_merchant_npc_pos"] = {734,214},
		
		["floor4_npc"] = 30104,
		["floor4_npc_pos"] = {500, 717},

		["devil_king_pos"] = {{673,829},{691,638},{848,568},{1026,642},{1008,862}},

		["unlock_stone"] = 30312,
		["floor5_stone"] = 30102,
		["floor5_stone_pos"] = {848, 735},

		["devil_great_king"] = 2597 ,
		["devil_great_king_pos"] = {1303,704},
		["devil_emperor"] = 2598,
		["devil_emperor_pos"] = {74,1103},

		["dc2_door_set_size"] = {4,2,3,2},
		["dc2_door_set1"] = {
								{{30111,    566,    117,    5},{30112,  562,    311,    5,},{30118, 663,    434,    7},{30119,  881,    434,    7}},
								{{30116,    743,    390,    3},{30119,  612,    251,    1,}},
								{{30113,    654,    211,    5},{30111,  707,    338,    7,},{30112, 775,    336,    7}},
								{{30117,    733,    294,    3},{30113,  694,    271,    1,}}
							},
		["dc2_door_set2"] = {
								{{30115,    942,    141,    5},{30116,  942,    245,    5},{30117,  942,    321,    5},{30115,  763,    64, 7}},
								{{30118,    643,    116,    3},{30114,  900,    167,    1}},
								{{30114,    850,    293,    5},{30113,  715,    164,    7},{30114,  817,    162,    7}},
								{{30111,    802,    277,    1},{30112,  800,    241,    1}}
							},
		}	
	end
		when login begin
			local setting = devilcatacomb_zone.setting()
			local idx = pc.get_map_index()
			if idx >= (setting.map_idx * 10000) and idx < ((setting.map_idx + 1) * 10000) then
--				pc.set_warp_location(65, 5914, 992)         -----------아귀동굴 좌표로
				local level = d.getf("level")
				-- warp location이 0,0 이면 시스템 상으로, 종료 시, 종료 위치를 시작 위치로 저장한다.
				d.set_warp_location (0, 0, 0)
					
				if level == 2 then
					say_title("The Devil큦 Catacomb: Level 2")
					say("")
					say("Zerst�re das Siegel dieser Tore um in die 3. Ebene zu gelangen.")
					say("Du hast 60Minuten Zeit.")
					say("")
				elseif level == pc.getqf ("level") then
--					say ("낙오되지 않기 위해 동료들과 합류하십시오.")
					--say (locale.devilcatacomb_follow_peer)
				else
--					say (locale.devilcatacomb_dropout)
--					say ("당신은 낙오되었습니다. 용신의 힘을 빌어 잠시 뒤 동굴 밖으로 이동합니다.")
--					timer ("devilcatacomb_ban_timer", 5)
				end
			end
			if idx == setting.map_idx then
				pc.setf("devilcatacomb_zone","last_exit_time", get_global_time())
				-- 2층이상이면, 쫓겨나
				if pc.get_x() < setting.floor1_s.x + setting.base.x
					or pc.get_y() < setting.floor1_s.y + setting.base.y
					or pc.get_x() > setting.floor1_e.x + setting.base.x
					or pc.get_y() > setting.floor1_e.y + setting.base.y
				then
					-- 아귀동굴 입구로
--					if not is_test_server() then
						--say (locale.devilcatacomb_dropout)
						timer ("devilcatacomb_ban_timer", 5)
--					end
				else 
					-- 아귀동굴 입구로
--					pc.set_warp_location(65, 5914, 992)
					addimage(20, 12, "catacombs.tga")
					say("")
					say("")
					say("")
					say("")
					say_title("Die Devilscatacomb: 1. Ebene")
					say("")
					say("T�te solange Monster bis du einen Seelenkristall")
					say("Schl�ssel erh�lts und schalte die n�chste Ebene frei.")
					say("")
					say_item("Soul Crystal Key", 30311, "")
					pc.remove_item(30311, pc.count_item(30311))
					pc.remove_item(30312, pc.count_item(30312))
				end
			end
		end

		when logout begin
			local idx = pc.get_map_index()
			local setting = devilcatacomb_zone.setting()
			if idx == setting.map_idx or idx >= (setting.map_idx * 10000) and idx < ((setting.map_idx + 1) * 10000) then
				pc.setf("devilcatacomb_zone","last_exit_time", get_global_time())
			end
		end

		when devilcatacomb_ban_timer.timer begin
			pc.warp((5914)*100, (992)*100, 65)
		end

		when warp_timer.timer begin
			local level = d.getf("level")
			local level_switch = {
				[3] = "Finde den richtigen Metinstein und zerst�re ihn!",
				[4] = "Finde den richtigen Weg.",
				[5] = "T�te die D�monen-W�chter bis du einen Totem Frazem erh�lts, es dient als Schl�ssel f�r die 6. Ebene!",
				[6] = "Slay Grim Reaper and his minions!",
			}
			local t = 3600 -(get_global_time() - d.getf("enter_time"))
			local t_r = math.mod (t, 60)
			local t_m = (t - t_r) / 60
			d.notice ( level_switch[level] )
			d.notice ( "You have " ..t_m.." minutes left.")
			d.set_warp_location (0, 0, 0)
		end

		when 20351.chat."In die Devil's Catacomb" with pc.get_map_index() == 1 begin
			local setting = devilcatacomb_zone.setting()
			if pc.get_level() < 75 then
				say_title("W�chter der Katakomben:")
				say("")
				say("Es gibt f�r unerfahrene Krieger wie dich")
				say("keinen Zutritt in die Devil's Catacomb.")
				say("")
				say("Es ist zu deiner eigenen Sicherheit.")
				say("")
				say_reward("Komme wieder, wenn du Level 75 bist.")
				say("")
			--elseif pc.getf("deviltower_zone","9_done") == 0 then
			--	say(locale.devilcatacomb_man_say_deviltop_clear)
			--elseif ((get_global_time() - pc.getf("devilcatacomb_zone","last_exit_time")) < 1800) then
			--	say(locale.devilcatacomb_man_say_see_you_later)
			else
				say_title("W�chter der Katakomben:")
				say("")
				say("Willst du in die Devil's Catacomb?")
				say("")
				local s = select("Ja, ich will.", "Nein, ich will nicht.")
				if s == 1 then
					pc.warp ((setting.floor1_entry.x + setting.base.x )* 100, (setting.floor1_entry.y + setting.base.y) * 100)
				end
			end
		end
		
		when 20351.chat."Zur�ck zum Hwang Tempel" with pc.get_map_index() == 209 begin
			say_title("W�chter der Katakomben:")
			say("")
			say("Bist du sicher, dass du Aufgeben")
			say("und zur�ck zum Hwang Tempel willst?")
			say("")
			local s = select("Ja, ich bin zu schwach.", "Nein, ich will k�mpfen!")
			if s == 1 then
				pc.warp(591400, 99900)
			end
		end
	
		-- 몬스터가 죽으면 발생하는 이벤트.
		when kill begin
			local setting = devilcatacomb_zone.setting()
			-- 아귀동굴 1층이면 1% 확률로 금시건을 드랍한다.
			if pc.get_x() > setting.floor1_s.x + setting.base.x
					and pc.get_y() > setting.floor1_s.y + setting.base.y
					and pc.get_x() < setting.floor1_e.x + setting.base.x
					and pc.get_y() < setting.floor1_e.y + setting.base.y then
				local j = number(1, 100)
				if j == 1 then
					game.drop_item (setting.rag, 1)
				end
			end
		end

	function spawn_doors ()
		local setting = devilcatacomb_zone.setting()
		for i = 1, 4 do
			local mob_set = setting.dc2_door_set1[i]
			local set_size = setting.dc2_door_set_size[i]
			for j = 1, set_size do
				d.set_unique (i.."_1_"..j, d.spawn_mob_dir (mob_set[j][1], mob_set[j][2], mob_set[j][3], mob_set[j][4]))
			end
			mob_set = setting.dc2_door_set2[i]
			for j = 1, set_size do
				d.set_unique (i.."_2_"..j, d.spawn_mob_dir (mob_set[j][1], mob_set[j][2], mob_set[j][3], mob_set[j][4]))
			end
		end
	end
		-- 금시건을 나찰인증석에 드래그하면 2층으로 보낸다. 2층부터는 던전이다.
			when 30101.take with item.vnum == 30311 begin
		
				if not party.is_party() and not pc.is_gm() then
					say_title("Statue of Kud:")
					say("")
					say("Du brauchst eine starke Gruppe um die")
					say("Devil큦 Catacomb zu schaffen.")
					say("")
					return
				elseif party.is_in_dungeon() then
					say_title("Statue of Kud:")
					say("")
					say("Deine Gruppe ist im Dungeon.")
					say("")
					return
				end
				
				item.remove()
				say_title("Statue of Kud:")
				say("")
				say("Der Eingang ist ge�ffnet.")
				say("Seit stark!!")
				say("")
				wait()
				say_title("Statue of Kud:")
				say("")
				say("Hier beginnt das richtige Abenteuer.")
				say("")
				say("Von jetzt an habt ihr 1ne Stunde Zeit")
				say("um die Devil's Catacomb zuschaffen.")
				say("")
				wait()
				d.new_jump_party (setting.map_idx, setting.floor2_entry.x + setting.base.x  , setting.floor2_entry.y + setting.base.y )
			--	d.new_jump_all (setting.map_idx, setting.floor2_entry.x + setting.base.x  , setting.floor2_entry.y + setting.base.y )
				d.setqf2("devilcatacomb_zone","level", 2)
				d.setf ("level",2)
				--d.regen_file (setting.mob_regen_file_path.."dc_2f_regen.txt")
				d.regen_file(get_locale_base_path().."/map/metin2_map_dd/base2_regen.txt")
				--d.regen_file(get_locale_base_path().."/map/metin2_map_dd/base2_npc.txt")
				
				-- d.spawn_mob (setting.floor2_merchant_npc, setting.floor2_merchant_npc_pos[1], setting.floor2_merchant_npc_pos[2])
				d.spawn_mob (setting.floor2_stone, setting.floor2_stone_pos[1], setting.floor2_stone_pos[2])
				
				devilcatacomb_zone.spawn_doors ()
				server_timer('devilcatacomb_45m_left_timer',60 * 15, d.get_map_index())
				d.setf("enter_time", get_global_time())
			end
	
		when devilcatacomb_45m_left_timer.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice ("Noch 45Minuten.")
				server_timer('devilcatacomb_30m_left_timer', 60 * 15, get_server_timer_arg())
			end
		end

		when devilcatacomb_30m_left_timer.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice ("Noch 30Minuten.")
				server_timer('devilcatacomb_15m_left_timer', 60 * 15, get_server_timer_arg())
			end
		end
	
		when devilcatacomb_15m_left_timer.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice ("Noch 15Minuten.")
				server_timer('devilcatacomb_5m_left_timer', 60 * 10, get_server_timer_arg())
			end
		end

		when devilcatacomb_5m_left_timer.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice ("Noch 5Minuten.")
				server_timer('devilcatacomb_1m_left_timer', 60 * 4, get_server_timer_arg())
			end
		end
		
		when devilcatacomb_1m_left_timer.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice ("Noch 1ne Minute.")
				server_timer ("devilcatacomb_0m_left_timer", 60 * 1, get_server_timer_arg())
			end
		end
		
		when devilcatacomb_0m_left_timer.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice("Die Zeit ist um. Ihr habt es nicht geschafft die Devil's Catacomb")
				d.notice("von den Klauen der B�sen zu Befreien.")
				d.set_warp_location (65, 5914, 992)
				server_timer('devilcatacomb_exit_timer', 7, get_server_timer_arg())
			end
		end
	
	function is_dc2_doors_clear ()
		local setting = devilcatacomb_zone.setting()
		local clear = true
		for i = 1, 4 do
			local set_clear = true
			local mob_set = setting.dc2_door_set1[i]
			local set_size = setting.dc2_door_set_size[i]
			for j = 1, set_size do
				set_clear = set_clear and d.is_unique_dead (i.."_1_"..j)
			end
			if not set_clear then
				set_clear = true
				mob_set = setting.dc2_door_set2[i]
				for j = 1, set_size do
					set_clear = set_clear and d.is_unique_dead (i.."_2_"..j)
				end
			end
			clear = clear and set_clear
		end

		return clear
	end
	
		-- 현황석을 클릭하면 3층 진입 여부를 선택할 수 있고
		-- 진입시 사신의증표를 검사한다.
		-- 사신의 증표가 없다면 밖으로 워프된다.
		when devilcatacomb_floor2_stone.click begin
			local setting = devilcatacomb_zone.setting()
			
			if d.getf("devilcatacomb_floor2_stone_clicked") == 0 then
				if not devilcatacomb_zone.is_dc2_doors_clear () and not is_test_server() then
					say_title ("The Devil큦 Catacomb:")
					say ("You first have to kill each door.")
					say ("")
					wait ()
					return
				end
				say_title("Tortoise Rock:")
				say("")
				say("As you observe the stone closely, you")
				say("encounter an inscription.")
				say("")
				wait()
				say_title("Die Devil큦 Catacomb:")
				say("")
				say("Only the one who possesses the shrunken head")
				say("may enter once the seal of three doors has")
				say("been broken.")
				say("")
				say_reward("If you do not possess this relic, you will")
				say_reward("be warped out from the Devil's Catacomb.")
				say("")
				wait()
				local s = select("Yes, let me enter.", "I don't have a Relic.")
				if s == 1 then
					if d.getf("devilcatacomb_floor2_stone_clicked") == 0 then
						d.setf("devilcatacomb_floor2_stone_clicked", 1)
						d.setqf2("devilcatacomb_zone","last_exit_time", get_global_time())
						d.set_item_group ("reapers_credit", 4, setting.reapers_credit4, 1, setting.reapers_credit3, 1, setting.reapers_credit2, 1, setting.reapers_credit1, 1)
						d.say_diff_by_item_group ("reapers_credit", "The Devil큦 Catacomb:[ENTER][ENTER]You possess the shrunken head and you will now[ENTER]enter Level 3.[ENTER][ENTER]", "The Devil큦 Catacomb:[ENTER][ENTER]You do not possess the shrunken head.[ENTER]You will now be warped out from[ENTER]the Devil's Catacomb..[ENTER][ENTER]")
						timer ("devilcatacomb_floor3_enter_timer", 7)
					end
				end
			else
				say_title("The Devil큦 Catacomb:")
				say ("")
				say ("Please wait.")
				say ("")
			end
		end
		
		when devilcatacomb_floor3_enter_timer.timer begin
			local setting = devilcatacomb_zone.setting()
			d.set_warp_location (65, 5914, 992)
			d.exit_all_by_item_group ("reapers_credit")
			d.delete_item_in_item_group_from_all ("reapers_credit")
			d.purge ()
			d.jump_all (setting.floor3_entry.x + setting.base.x , setting.floor3_entry.y + setting.base.y)
			d.setf("level",3)
			d.setqf2("devilcatacomb_zone","level", 3)
			--d.regen_file (setting.mob_regen_file_path.."dc_3f_regen.txt")
			d.regen_file(get_locale_base_path().."/map/metin2_map_dd/base3_regen.txt")
			
			timer("warp_timer",3)
			
			local position = setting.floor3_stone_pos
		
			local n = number(1,7)
			for i = 1, 7 do
				if (i != n)
				then
					d.set_unique("fake"..i, d.spawn_mob( setting.floor3_stone, position[i][1], position[i][2]))
				end
			end
		
			local vid = d.spawn_mob( setting.floor3_stone, position[n][1], position[n][2])
			d.set_unique ("real",vid)
			if (is_test_server()) then
				-- real stone pos
				chat (position[n][1],position[n][2])
			end
	
		end

		when devilcatacomb3_stone.kill begin
			local setting = devilcatacomb_zone.setting()
			-- 돌이 파괴되면 진짜가 죽었는지 확인해본다.
			-- 진짜가 죽었으면 4층으로 이동한다.
			if d.is_unique_dead("real") then
				d.notice ("You have destroyed the correct metin stone. You will now enter Level 4.")
				
				d.setf ("level",4)
				d.setqf2("devilcatacomb_zone","level", 4)
				timer ("devilcatacomb_floor4_enter_timer", 3)
			else
				d.notice ("This was a false metin stone. Find the correct one, quick!")
			end
		end

		when devilcatacomb_floor4_enter_timer.timer begin
			local setting = devilcatacomb_zone.setting()
			local i = number (1, 5)
			timer("warp_timer",3)
			d.purge ()
			d.jump_all (setting.floor4_entry.x + setting.base.x , setting.floor4_entry.y + setting.base.y)
			--d.regen_file (setting.mob_regen_file_path.."dc_4f_regen.txt")
			--d.regen_file (setting.mob_regen_file_path..setting.floor4_regen_file[i])
			d.regen_file(get_locale_base_path().."/map/metin2_map_dd/base4_regen.txt")
			d.spawn_goto_mob(70, 673, 94, 847)
			d.spawn_goto_mob(91, 948, 347, 564)
			d.spawn_goto_mob(401, 558, 272, 829)
			d.spawn_goto_mob(274, 713, 141, 807)
			d.spawn_goto_mob(68, 815, 313, 868)
			d.spawn_goto_mob(431, 935, 355, 840)
			d.spawn_goto_mob(430, 842, 499, 787)
			
			if (is_test_server()) then
				d.notice (setting.floor4_regen_file[i])
			end
			d.spawn_mob (setting.floor4_npc, setting.floor4_npc_pos[1], setting.floor4_npc_pos[2])
		end

		-- devilcatacomb_floor4_stone는 클릭 시 4층에�* 5층으로 이동시키는 npc이다.
		when devilcatacomb_floor4_stone.click begin
			local setting = devilcatacomb_zone.setting()
			local n = number (1,5)
			say_title("The Devil큦 Catacomb:")
			say("")
			say("YES, found the way out! Let큦 go down to the 5th")
			say("level!")
			wait()
			if (is_test_server()) then
				-- devil_king pos
				chat (setting.devil_king_pos[n][1], setting.devil_king_pos[n][2])
			end
			d.purge ()
			d.jump_all (setting.floor5_entry.x + setting.base.x, setting.floor5_entry.y + setting.base.y )
			d.setf ("level",5)
			d.setqf2("devilcatacomb_zone","level", 5)
			timer("warp_timer",3)
			--d.regen_file (setting.mob_regen_file_path.."dc_5f_regen.txt")
			d.regen_file(get_locale_base_path().."/map/metin2_map_dd/base5_regen.txt")
			d.spawn_mob (setting.devil_king, setting.devil_king_pos[n][1], setting.devil_king_pos[n][2])
			d.spawn_mob (setting.floor5_stone, setting.floor5_stone_pos[1], setting.floor5_stone_pos[2])
		end
		
		-- 아귀왕(2591)이 죽으면 봉인해체석 드랍
		when devilcatacomb_devil_king.kill begin
			local setting = devilcatacomb_zone.setting()
			game.drop_item (setting.unlock_stone, 1)
		end

		-- 사신금제비(30102)에 금제해체석봉을 드래그하면 모든 몬스터를 죽이고
		-- 6층으로 이동하는 타이머를 동작시킨다.
		when devilcatacomb_floor5_stone.take begin
			local setting = devilcatacomb_zone.setting()
			if item.vnum == setting.unlock_stone then
				item.remove ()
				d.notice("From the dephts of the Devil's Catacomb comes a furious brawl.")
				d.notice("The Grim Reaper has awakened!")
				-- 6층으로 이동
				d.clear_regen()
				d.purge()
				timer("devilcatacomb_floor6_timer",2)
			end
		end

		when devilcatacomb_floor6_timer.timer begin
			local setting = devilcatacomb_zone.setting()
			d.setf("level",6)
			d.setqf2("devilcatacomb_zone","level", 6)
			d.jump_all (setting.floor6_entry.x + setting.base.x, setting.floor6_entry.y + setting.base.y )
			--d.regen_file (setting.mob_regen_file_path.."dc_6f_regen.txt")
			d.regen_file(get_locale_base_path().."/map/metin2_map_dd/base6_regen.txt")
			d.spawn_mob (setting.devil_great_king, setting.devil_great_king_pos[1], setting.devil_great_king_pos[2])
			timer("warp_timer",3)
		end
		
		-- 아걸(2597)이 죽으면, 6층의 타이머1이 동작한다.
		when devilcatacomb_devil_great_king.kill begin
			server_timer ("floor6_eli_check_timer_1", 5,d.get_map_index())
		end

		-- 6층의 타이머1은 던전의 모든 몬스터 숫자를 보고,
		-- 0이면 7층으로 워프하는 타이머를 동작한다.
		-- 바로 7층으로 가지 않는 이유는, 유저에게 준비할 시간을 주기 위해�*이다.
		-- 1이면 타이머2를 동작시킨다.
		-- 타이머1을 recursive하게 동작시키지 않은 것은,
		-- 그럴 경우 reset한 타이머1이 동작하지 않았기 때문이다.
		when floor6_eli_check_timer_1.server_timer begin
			if d.select(get_server_timer_arg()) then
				if d.count_monster() == 0 then
					say_in_map(get_server_timer_arg(), color256(255, 230, 186).."The Devil큦 Catacomb:[ENTER]"..color256(196, 196, 196).."You have gained victory over Charon![ENTER]You will now enter the last Level[ENTER]of the Devil's Catacomb![ENTER]")
					server_timer ("devilcatacomb_floor7_timer", 3, get_server_timer_arg())
				else
					server_timer ("floor6_eli_check_timer_2", 5, get_server_timer_arg())
				end
			end
		end

		when floor6_eli_check_timer_2.server_timer begin
			if d.select(get_server_timer_arg()) then
				if d.count_monster() == 0 then
					say_in_map(get_server_timer_arg(), color256(255, 230, 186).."The Devil큦 Catacomb:[ENTER]"..color256(196, 196, 196).."You have gained victory over Charon![ENTER]You will now enter the last Level[ENTER]of the Devil's Catacomb![ENTER]")
					server_timer("devilcatacomb_floor7_timer", 3, get_server_timer_arg())
				else
					server_timer ("floor6_eli_check_timer_1", 5, get_server_timer_arg())
				end
			end
		end
		
		when devilcatacomb_floor7_timer.server_timer begin
			if d.select(get_server_timer_arg()) then
				local setting = devilcatacomb_zone.setting()

				d.setf("level",7)
				d.setqf2("devilcatacomb_zone","level", 7)
				d.jump_all (setting.floor7_entry.x + setting.base.x, setting.floor7_entry.y + setting.base.y )
				--d.regen_file (setting.mob_regen_file_path.."dc_7f_regen.txt")
				d.regen_file(get_locale_base_path().."/map/metin2_map_dd/base7_regen.txt")
				d.spawn_mob (setting.devil_emperor, setting.devil_emperor_pos[1], setting.devil_emperor_pos[2])
				server_timer ("devilcatacomb_floor7_say_timer", 2, get_server_timer_arg())
			end	
		end

		when devilcatacomb_floor7_say_timer.server_timer begin
			if d.select(get_server_timer_arg()) then

				local t = 3600 -(get_global_time() - d.getf("enter_time"))
				local t_r = math.mod (t, 60)
				local t_m = (t - t_r) / 60
				d.notice("Kill Lord Gahnasel!")
				d.notice ("You have ".. t_m.." minutes left.")
				d.set_warp_location (0, 0, 0)
			end
		end

		-- 6층과 마찬가지로 사마휘(2598)이 죽으면
		-- 7층의 타이머가 작동한다.
		when 2598.kill begin
			notice_all(pc.get_name().."'s party has defeated Lord Gahnasel!")
			server_timer ("floor7_eli_check_timer_1", 5, d.get_map_index())
		end
		
		-- 7층의 타이머는 6층 타이머와 비슷하며,
		-- 몬스터 숫자가 0이면 exit 타이머를 발생시킨다.
		-- 바로 exit하지 않는 이유는, 유저들에게 준비할 시간을 주기 위해�*이다.
		when floor7_eli_check_timer_1.server_timer begin
			if d.select(get_server_timer_arg()) then
				if d.count_monster() == 0 then
					d.set_warp_location (65, 5914, 992)
					d.setqf2("devilcatacomb_zone","done", 1)
					say_in_map(get_server_timer_arg(), color256(255, 230, 186).."The Devil큦 Catacomb:[ENTER]"..color256(196, 196, 196).."Lord Gahnasel has been killed. Finally[ENTER]peace can return to the Catacombs.[ENTER]You will now be warped back out.[ENTER]")

					clear_server_timer ("devilcatacomb_0m_left_timer", get_server_timer_arg())
					server_timer("devilcatacomb_exit_timer", 60, get_server_timer_arg())
				else
					server_timer ("floor7_eli_check_timer_2", 5, get_server_timer_arg())
				end
			end
		end

		when floor7_eli_check_timer_2.server_timer begin
			if d.select(get_server_timer_arg()) then
				if d.count_monster() == 0 then
					d.set_warp_location (65, 5914, 992)
					d.setqf2("devilcatacomb_zone","done", 1)
					say_in_map(get_server_timer_arg(), color256(255, 230, 186).."The Devil큦 Catacomb:[ENTER]"..color256(196, 196, 196).."Lord Gahnasel has been killed. Finally[ENTER]peace can return to the Catacombs.[ENTER]You will now be warped back out.[ENTER]")
	
					clear_server_timer ("devilcatacomb_0m_left_timer", get_server_timer_arg())
					server_timer("devilcatacomb_exit_timer", 30, get_server_timer_arg())
				else
					server_timer ("floor7_eli_check_timer_1", 5, get_server_timer_arg())
				end
			end
		end

		when devilcatacomb_exit_timer.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.setqf2("devilcatacomb_zone","level", 0)
				d.setqf2("devilcatacomb_zone","last_exit_time", get_global_time())
				clear_server_timer("devilcatacomb_5m_left_timer", get_server_timer_arg())
				clear_server_timer("devilcatacomb_1m_left_timer", get_server_timer_arg())
				clear_server_timer("devilcatacomb_0m_left_timer", get_server_timer_arg())
				clear_server_timer("floor6_eli_check_timer_1", get_server_timer_arg())
				clear_server_timer("floor6_eli_check_timer_2", get_server_timer_arg())
				clear_server_timer("floor7_eli_check_timer_1", get_server_timer_arg())
				clear_server_timer("floor7_eli_check_timer_2", get_server_timer_arg())
				clear_server_timer("devilcatacomb_floor7_say_timer", get_server_timer_arg())
				clear_server_timer("devilcatacomb_floor7_timer", 3, get_server_timer_arg())
				d.clear_regen()
				d.exit_all()
			end
		end
	end  --state
end   --quest
10/22/2013 18:17 eimer92#9197
PHP Code:
quest sd3_bruthoehle begin
    state start begin
        when 30130.chat
."In die Bruth�hle" with pc.get_level() > 49 begin
            say_title
(string.format("%s:", mob_name(string.format("%d", npc.get_race()))))
            if 
game.get_event_flag("sd3_frei") == 1 then
                say
("Die Bruth�hle ist zur Zeit besetzt.")
                return
            
end
            
if not party.is_party() then
                say
("Du kannst nur in einer Gruppe die")
                
say("Bruth�hle betreten.")
                return
            
end
            
if not party.is_leader() then
                say
("Nur der Gruppenleiter kann das")
                
say("Portal zur Bruth�hle �ffnen.")
                return
            
end
            say
("M�chtet ihr die Bruth�hle betreten?")
            if 
select("Ja","Nein") == 2 then return end
            d
.join(191)
            
game.set_event_flag("sd3_frei",1)
            
server_timer("exit",60*20)
        
end
        when login with pc
.get_map_index() == 191 and party.is_party() begin
            d
.set_regen_file("data/dungeon/sd3/eier.txt")
            
d.regen_file("data/dungeon/sd3/boss.txt")
            
d.notice("Ihr habt 20 Minuten Zeit, um den Spinnenbaron zu t�ten.")
        
end
        when 
exit.server_timer begin
            d
.exit_all()
            
server_timer("sd3_set_free",60*60)
        
end
        when 2094.kill with party
.is_party() and pc.get_level() > 49 begin
            local count 
= tonumber(party.get_near_count()-1)
            
notice_all(string.format("%s und %d weitere Mitglieder haben den Spinnenbaron besiegt!", pc.get_name(), count))
            
server_timer("sd3_set_free", 60*60)
            
server_timer("exit",60*5)
            
d.notice("In 5 Minuten werdet ihr hinausteleportiert")
        
end
        when sd3_set_free
.server_timer begin
            game
.set_event_flag("sd3_frei",0)
        
end
    end
end 
Kann die stein nicht anklicken passiert nix =(
10/22/2013 22:52 norbidek#9198
Please help !

Error :
[Only registered and activated users can see links. Click Here To Register...]

Quest :

Quote:
quest achievement_update begin
state start begin
-- // shop
when 20094.chat."Achievement Shop" begin
local points = pc.getqf("achieve")


local category = {"Waffen","R�stungen","Pvm - Equipment","Uppitems","Truhen","Ringe"}

local list = {
-- Kategorie 1
{
-- Name Vnum reward points
{"Giftschwert+9", 9985, 3500},
{"Grollschwert+9", 9986, 3500},
{"Orchideenglocke+9", 9987, 3500},
{"L�wenschwert+9", 9988, 3500},
{"Teufelsfl�gel-Chakram+9", 9989, 3500},
},
-- Kategorie 2
{
{"Schwarzstahlpanzer+9", 11299, 1000},
{"Schwarzwindanzug+9", 11499, 1000},
{"Magieplattenpanzer+9", 11699, 1000},
{"Schwarze Kleidung+9", 11899, 1000},
},
-- Kategorie 3
{
{"Smaragtarmband", 14549, 5000},
{"Smaragthalskette", 16549, 5000},
{"Smaragtohrringe", 17549, 5000},
},
-- Kategorie 4
{
{"St�ck Kristall", 30204, 100},
{"Wasserstein", 27991, 500},
},
-- Kategorie 5
{
{"Truhe der Macht", 38050, 500},
{"Truhe des ewigen Winters", 38053, 3000},
{"Truhe der K�nige", 38052, 3000},
},
-- Kategorie 6
{
{"Halbmondring", 10008, 400},
{"Ring des Kampfes", 71143, 1500},
{"Ring des Feuers", 71149, 2500},
{"Ring des Wassers", 71148, 2500},
{"Lolli", 71136, 5000},
}
}


local s = select3(category)
local menu = {}
for i = 1, table.getn(list[s]) do
table.insert(menu, list[s][i][1])
end
say_title("Achievement Shop")
say("W�hle ein Item aus:")
say()
local t = select3(menu)
local reward_item = list[s][t][2]
local reward_count = list[s][t][3]
say_title("Achievement Shop")
say_reward("Achievementpoints: "..points)
say()
say("Gew�hltes Item: "..item_name(reward_item))
say_reward(string.format("Das Item kostet %d Achievementpoints", reward_count))
say()
if points < reward_count then
return say("Du hast nicht gen�gend Achievementpoints")
end
if select("Eintauschen","Abbrechen") == 2 then return end
pc.setqf("achieve", points - reward_count)
pc.give_item2(reward_item)
end


-- // get points
when login begin
mob_data = {
-- Vnum Points qf cmdchat
{691, 20, "691", "achievement ".. mob_name(691) .."_get�tet#".. pc.getqf("691") + 1 .."%".. pc.getqf("achieve") + 20},
{791, 20, "791", "achievement ".. mob_name(791) .."_get�tet#".. pc.getqf("791") + 1 .."%".. pc.getqf("achieve") + 20},
{792, 20, "792", "achievement ".. mob_name(792) .."_get�tet#".. pc.getqf("792") + 1 .."%".. pc.getqf("achieve") + 20},
{1192, 150, "1192", "achievement ".. mob_name(1192) .."_get�tet#".. pc.getqf("1192") + 1 .."%".. pc.getqf("achieve") + 20},
}
item_data = {
{12019, 50, "12019", "achievement Blaustahlpanzer+9%".. pc.getqf("achieve") + 50},
{12029, 50, "12029", "achievement Drachenanzug+9%".. pc.getqf("achieve") + 50},
{12039, 50, "12039", "achievement Auraplattenpanzer+9%".. pc.getqf("achieve") + 50},
{12049, 50, "12049", "achievement Drachenkleidung+9%".. pc.getqf("achieve") + 50},
}
level_data = {
-- Level points qf cmdchat
{50, 50, "level50", "achievement Level_50_erreicht%".. pc.getqf("achieve") + 50},
{60, 50, "level60", "achievement Level_60_erreicht%".. pc.getqf("achieve") + 50},
{70, 50, "level70", "achievement Level_70_erreicht%".. pc.getqf("achieve") + 50},
{80, 50, "level80", "achievement Level_80_erreicht%".. pc.getqf("achieve") + 50},
{90, 50, "level90", "achievement Level_90_erreicht%".. pc.getqf("achieve") + 50},
{99, 50, "level99", "achievement Level_99_erreicht%".. pc.getqf("achieve") + 50},
}
end
when kill with not npc.is_pc() begin
local vid = npc.get_vid()
local function in_table(arg)
for i = 1, table.getn(mob_data) do
if mob_data[i][1] == arg then
return i
end
end
return false
end
local d = in_table(vid)
if d ~= false then
pc.setqf(mob_data[d][3], pc.getqf(mob_data[d][3]) + tonumber(mob_data[d][2]))
cmdchat(mob_data[d][4])
end
end
when use begin
local vnum = item.get_vnum()
local function in_table(arg)
for i = 1, table.getn(mob_data) do
if mob_data[i][1] == arg then
return i
end
end
return false
end
local d = in_table(vnum)
if d ~= false and pc.getqf(tostring(item_data[d][3]) == 0 then
pc.setqf(item_data[d][3], 1)
pc.setqf(item_data[d][3], pc.getqf(item_data[d][3]) + tonumber(item_data[d][2]))
cmdchat(item_data[d][4])
end
end
when levelup begin
local lvl = pc.get_level()
local function in_table(arg)
for i = 1, table.getn(mob_data) do
if mob_data[i][1] == arg then
return i
end
end
return false
end
local d = in_table(lvl)
if d ~= false and pc.getqf(tostring(level_data[d][3]) == 0 then
pc.setqf(level_data[d][3], 1)
pc.setqf(level_data[d][3], pc.getqf(level_data[d][3]) + tonumber(level_data[d][2]))
cmdchat(level_data[d][4])
end
end
end
end
10/22/2013 22:57 *.Creatic.*#9199
PHP Code:
quest achievement_update begin
state start begin
-- // shop
when 20094.chat."Achievement Shop" begin
local points 
= pc.getqf("achieve")


local category = {"Waffen","R�stungen","Pvm - Equipment","Uppitems","Truhen","Ringe"}

local list = {
-- 
Kategorie 1
{
-- 
Name Vnum reward points 
{"Giftschwert+9", 9985, 3500},
{
"Grollschwert+9", 9986, 3500},
{
"Orchideenglocke+9", 9987, 3500},
{
"L�wenschwert+9", 9988, 3500},
{
"Teufelsfl�gel-Chakram+9", 9989, 3500},
},
-- 
Kategorie 2
{
{
"Schwarzstahlpanzer+9", 11299, 1000},
{
"Schwarzwindanzug+9", 11499, 1000},
{
"Magieplattenpanzer+9", 11699, 1000},
{
"Schwarze Kleidung+9", 11899, 1000},
},
-- 
Kategorie 3
{
{
"Smaragtarmband", 14549, 5000},
{
"Smaragthalskette", 16549, 5000},
{
"Smaragtohrringe", 17549, 5000},
},
-- 
Kategorie 4
{
{
"St�ck Kristall", 30204, 100},
{
"Wasserstein", 27991, 500},
},
-- 
Kategorie 5
{
{
"Truhe der Macht", 38050, 500},
{
"Truhe des ewigen Winters", 38053, 3000},
{
"Truhe der K�nige", 38052, 3000},
},
-- 
Kategorie 6
{
{
"Halbmondring", 10008, 400},
{
"Ring des Kampfes", 71143, 1500},
{
"Ring des Feuers", 71149, 2500},
{
"Ring des Wassers", 71148, 2500},
{
"Lolli", 71136, 5000},
}
}


local s = select3(category)
local menu = {}
for 
i = 1, table.getn(list[s]) do
table.insert(menu, list[s][i][1])
end
say_title
("Achievement Shop")
say("W�hle ein Item aus:")
say()
local t = select3(menu)
local reward_item = list[s][t][2]
local reward_count = list[s][t][3]
say_title("Achievement Shop")
say_reward("Achievementpoints: "..points)
say()
say("Gew�hltes Item: "..item_name(reward_item))
say_reward(string.format("Das Item kostet %d Achievementpoints", reward_count))
say()
if 
points < reward_count then
return say("Du hast nicht gen�gend Achievementpoints")
end
if select("Eintauschen","Abbrechen") == 2 then return end
pc
.setqf("achieve", points - reward_count)
pc.give_item2(reward_item)
end


-- // get points
when login begin
mob_data 
= {
-- 
Vnum Points qf cmdchat
{691, 20, "691", "achievement ".. mob_name(691) .."_get�tet#".. pc.getqf("691") + 1 .."%".. pc.getqf("achieve") + 20},
{
791, 20, "791", "achievement ".. mob_name(791) .."_get�tet#".. pc.getqf("791") + 1 .."%".. pc.getqf("achieve") + 20},
{
792, 20, "792", "achievement ".. mob_name(792) .."_get�tet#".. pc.getqf("792") + 1 .."%".. pc.getqf("achieve") + 20},
{
1192, 150, "1192", "achievement ".. mob_name(1192) .."_get�tet#".. pc.getqf("1192") + 1 .."%".. pc.getqf("achieve") + 20},
}
item_data = {
{
12019, 50, "12019", "achievement Blaustahlpanzer+9%".. pc.getqf("achieve") + 50},
{
12029, 50, "12029", "achievement Drachenanzug+9%".. pc.getqf("achieve") + 50},
{
12039, 50, "12039", "achievement Auraplattenpanzer+9%".. pc.getqf("achieve") + 50},
{
12049, 50, "12049", "achievement Drachenkleidung+9%".. pc.getqf("achieve") + 50},
}
level_data = {
-- 
Level points qf cmdchat
{50, 50, "level50", "achievement Level_50_erreicht%".. pc.getqf("achieve") + 50},
{
60, 50, "level60", "achievement Level_60_erreicht%".. pc.getqf("achieve") + 50},
{
70, 50, "level70", "achievement Level_70_erreicht%".. pc.getqf("achieve") + 50},
{
80, 50, "level80", "achievement Level_80_erreicht%".. pc.getqf("achieve") + 50},
{
90, 50, "level90", "achievement Level_90_erreicht%".. pc.getqf("achieve") + 50},
{
99, 50, "level99", "achievement Level_99_erreicht%".. pc.getqf("achieve") + 50},
}
end
when kill with not npc
.is_pc() begin
local vid 
= npc.get_vid()
local function in_table(arg)
for 
i = 1, table.getn(mob_data) do
if 
mob_data[i][1] == arg then
return i
end
end
return false
end
local d 
= in_table(vid)
if 
d ~= false then
pc
.setqf(mob_data[d][3], pc.getqf(mob_data[d][3]) + tonumber(mob_data[d][2]))
cmdchat(mob_data[d][4])
end
end
when 
use begin
local vnum 
= item.get_vnum()
local function in_table(arg)
for 
i = 1, table.getn(mob_data) do
if 
mob_data[i][1] == arg then
return i
end
end
return false
end
local d 
= in_table(vnum)
if 
d ~= false and pc.getqf(tostring(item_data[d][3])) == 0 then
pc
.setqf(item_data[d][3], 1)
pc.setqf(item_data[d][3], pc.getqf(item_data[d][3]) + tonumber(item_data[d][2]))
cmdchat(item_data[d][4])
end
end
when levelup begin
local lvl 
= pc.get_level()
local function in_table(arg)
for 
i = 1, table.getn(mob_data) do
if 
mob_data[i][1] == arg then
return i
end
end
return false
end
local d 
= in_table(lvl)
if 
d ~= false and pc.getqf(tostring(level_data[d][3])) == 0 then
pc
.setqf(level_data[d][3], 1)
pc.setqf(level_data[d][3], pc.getqf(level_data[d][3]) + tonumber(level_data[d][2]))
cmdchat(level_data[d][4])
end
end
end
end 
here
10/22/2013 23:18 norbidek#9200
@up .

Calls undeclared function! :

in_table
npc.get_vid
select3

(Please version [TAB] ? . )
10/23/2013 14:10 .Onlyx3#9201
PHP Code:
quest rebootgui begin
    state start begin
        
        when 8059.chat
."Reboot" with pc.is_gm() begin
            say_reward
("Reboot starten?")
            
local s = select("Ja","Nein")
            if 
s == 1 then
                game
.set_event_flag("time_to_reboot", get_time() + time_min_to_sec(15))
                
timer("shutdown",time_min_to_sec(15))
                
loop_timer("reboot_notice",time_min_to_sec(5))
            
end
        end
        
        when shutdown
.timer begin
            command
("shutdown")
        
end
        
        when reboot_notice
.timer begin
            notice_all
("Der Server-Neustart l�uft:")
            
notice_all("Der Logout erfolgt 5 Minuten vor Ablauf der Zeit!")
            
notice_all("Logge dich nach dem Logout erst in 15 Minuten wieder ein um Itemverlust zu vermeiden!")
            
notice_all("Verlust von Gegenst�nden wird nicht erstattet!")
        
end
        
        when login begin
            loop_timer
("updaterebootgui",5)
        
end
        
        when updaterebootgui
.timer begin
            
if game.get_event_flag("time_to_reboot") > get_time() then
                local Sekunden 
= game.get_event_flag("time_to_reboot") - get_time()
                
local Minuten = math.ceil(Sekunden / 60)
                
cmdchat("openrebootgui "..Minuten)
                 if 
game.get_event_flag("time_to_reboot") - time_min_to_sec(5)
                    
command("logout")
                
end
            end
        end
    end
end 
[Only registered and activated users can see links. Click Here To Register...]
10/23/2013 14:19 MrPlayboy#9202
Quote:
Originally Posted by .Onlyx3� View Post
PHP Code:
quest rebootgui begin
    state start begin
        
        when 8059.chat
."Reboot" with pc.is_gm() begin
            say_reward
("Reboot starten?")
            
local s = select("Ja","Nein")
            if 
s == 1 then
                game
.set_event_flag("time_to_reboot", get_time() + time_min_to_sec(15))
                
timer("shutdown",time_min_to_sec(15))
                
loop_timer("reboot_notice",time_min_to_sec(5))
            
end
        end
        
        when shutdown
.timer begin
            command
("shutdown")
        
end
        
        when reboot_notice
.timer begin
            notice_all
("Der Server-Neustart l�uft:")
            
notice_all("Der Logout erfolgt 5 Minuten vor Ablauf der Zeit!")
            
notice_all("Logge dich nach dem Logout erst in 15 Minuten wieder ein um Itemverlust zu vermeiden!")
            
notice_all("Verlust von Gegenst�nden wird nicht erstattet!")
        
end
        
        when login begin
            loop_timer
("updaterebootgui",5)
        
end
        
        when updaterebootgui
.timer begin
            
if game.get_event_flag("time_to_reboot") > get_time() then
                local Sekunden 
= game.get_event_flag("time_to_reboot") - get_time()
                
local Minuten = math.ceil(Sekunden / 60)
                
cmdchat("openrebootgui "..Minuten)
                 if 
game.get_event_flag("time_to_reboot") - time_min_to_sec(5) then
                    command
("logout")
                
end
            end
        end
    end
end 
[Only registered and activated users can see links. Click Here To Register...]
Zeile 34 ein "end" hat gefehlt, habs korrigiert
10/23/2013 14:53 eimer92#9203
Quote:
Originally Posted by eimer92 View Post
PHP Code:
quest sd3_bruthoehle begin
    state start begin
        when 30130.chat
."In die Bruth�hle" with pc.get_level() > 49 begin
            say_title
(string.format("%s:", mob_name(string.format("%d", npc.get_race()))))
            if 
game.get_event_flag("sd3_frei") == 1 then
                say
("Die Bruth�hle ist zur Zeit besetzt.")
                return
            
end
            
if not party.is_party() then
                say
("Du kannst nur in einer Gruppe die")
                
say("Bruth�hle betreten.")
                return
            
end
            
if not party.is_leader() then
                say
("Nur der Gruppenleiter kann das")
                
say("Portal zur Bruth�hle �ffnen.")
                return
            
end
            say
("M�chtet ihr die Bruth�hle betreten?")
            if 
select("Ja","Nein") == 2 then return end
            d
.join(191)
            
game.set_event_flag("sd3_frei",1)
            
server_timer("exit",60*20)
        
end
        when login with pc
.get_map_index() == 191 and party.is_party() begin
            d
.set_regen_file("data/dungeon/sd3/eier.txt")
            
d.regen_file("data/dungeon/sd3/boss.txt")
            
d.notice("Ihr habt 20 Minuten Zeit, um den Spinnenbaron zu t�ten.")
        
end
        when 
exit.server_timer begin
            d
.exit_all()
            
server_timer("sd3_set_free",60*60)
        
end
        when 2094.kill with party
.is_party() and pc.get_level() > 49 begin
            local count 
= tonumber(party.get_near_count()-1)
            
notice_all(string.format("%s und %d weitere Mitglieder haben den Spinnenbaron besiegt!", pc.get_name(), count))
            
server_timer("sd3_set_free", 60*60)
            
server_timer("exit",60*5)
            
d.notice("In 5 Minuten werdet ihr hinausteleportiert")
        
end
        when sd3_set_free
.server_timer begin
            game
.set_event_flag("sd3_frei",0)
        
end
    end
end 
Kann den stein nicht anklicken passiert nix =(
..
10/23/2013 15:03 Noa_#9204
Quote:
Originally Posted by eimer92 View Post
..
kannst du sonst noch i-ein npc nicht anklicken oder ist das nur den einen?
10/23/2013 15:14 eimer92#9205
Quote:
Originally Posted by Noa_ View Post
kannst du sonst noch i-ein npc nicht anklicken oder ist das nur den einen?
Das ist dieser Grab stein vor der Boss kammer zur baroness jemand meinte da fehlt iwo ein pc.warp oder so, sonst kann ich alle anklicken.
10/23/2013 15:26 Noa_#9206
das einzige was ich hier Sehe ist das

>>when 30130.chat."In die Bruth�hle" with pc.get_level() > 49 begin

es l�sst sich nur ab lvl 50 anklicken, ansonsten kann man nur noch in der Datenbank nachschauen ob es etwas anders hat als die normalen npc's
10/23/2013 15:43 eimer92#9207
Quote:
Originally Posted by Noa_ View Post
das einzige was ich hier Sehe ist das

>>when 30130.chat."In die Bruth�hle" with pc.get_level() > 49 begin

es l�sst sich nur ab lvl 50 anklicken, ansonsten kann man nur noch in der Datenbank nachschauen ob es etwas anders hat als die normalen npc's
ja das bin ich ja, hmmmm
10/23/2013 15:58 .ProjektX�#9208
Hast du die Quest schonmal testweise auf nen anderen NPC gelegt?
Damit man wenigstens ausschlie�en kann, ob es ein quest oder NPC Problem ist?
10/23/2013 17:00 eimer92#9209
Quote:
Originally Posted by .ProjektX� View Post
Hast du die Quest schonmal testweise auf nen anderen NPC gelegt?
Damit man wenigstens ausschlie�en kann, ob es ein quest oder NPC Problem ist?
Nein ich teste es mal
10/23/2013 23:22 holosko74#9210
K�nnte mir sie jemand kontrollieren?
Ab der kap des drachenfeuers und co map habe ich die Gleichen sachen stehen!

Danke im vorraus

PHP Code:
quest beta begin
    state start begin
    
        when 29999.chat
."Neue-Maps" begin    -- Men�
            say_title
("Neue Maps")            --�berschriftr
                say
("F�r Jedes Teleportieren ben�tige ich bestimmte Item.")
                
say("Ohne das bestimmte Item kann ich mich nicht konzentrieren.")
                
say("")
                
say("Wohin soll ich dich teleportieren?")    --Gespr�ch
                say
("")                                        --Eine Zeile Frei im Gespr�ch
                
                local s
= select("Farm Map", "Ab LvL 90", "Abbrechen")
                if 
s == 3 then
                
return                                                    -- Zur�ck
                
                
elseif s == 1 with pc.get_level() >= 80 then            -- Min. Level der Eintritt
                    
if pc.count_item(27115) >= 1 then                    -- das item Was gebraucht wird mit Menge
                    say
("Ahhhhh....")
                    
say("Wie ich sehe hast du das "..item_name(27115))    --Der name des Items Wird Angezeigt
                    say
("")
                    
say("Soll ich dich dort hin teleportieren?")
                    
say("")
                    
                
local a = select("Ja gerne", "Nein Keine Lust")
                if 
a == 2 then
                
return
                
                elseif 
a == 1 then
                    
if pc.count_item(27115) >= 1 then                    -- das item Was gebraucht wird mit Menge
                        pc
.remove_item(27115, 1)
                        
pc.warp(400, 26429, 26943)
                
                else
                
                if 
pc.get_level() < 80 then
                    say_title
("Noch zu Jung")
                    
say("")
                    
say("Wie ich sehe bist du noch zu schwach in die Farm Map einzutreten.")
                    
say("Komm erst wenn du Level 80 erreicht hast")
                    
say("")
                    return
                    
                    or
                if 
pc.get_level >= 80 and
                if 
pc.count_item(27115) < 1 then
                    say_title
("Kein Item")
                    
say("Du hast das"...item_name(27115) " nicht.")
                    
say("Komm bitte erst wieder wenn du das"...item_name(27115) " hast."))
                    return
                
                elseif 
s == 3 then
                say_title
("Ab LvL 90")
                
say("Auf welcher dieser Maps soll ich dich Teleportieren")
                
say("Nat�rlich brauch ich hierf�r auch bestimmte Items")
                
say("Damit ich mit demheiligem Drachen Kontakt aufnehmen kann")
                
say("so dass er euch teleportieren kann")
                
say("")
                
                
locale b = select("Kap des Drachenfeuers", "Nephritbucht", "Donnerberge","Gautamakliff", "Abbrechen")
                if 
b == 1 with pc.get_level() >= 90 then
                    say
("Kap des Drachenfeuers")
                    
say("Ich werde dich nun teleportieren!")
                    
say("")
                    if 
pc.count_item(27115) >= 1 then                    -- das item Was gebraucht wird mit Menge
                        pc
.remove_item(27115, 1)
                        
pc.warp(10240,       16640)
                
                else
                
                if 
pc.get_level < 90 then
                say_title
("Noch zu Jung:")
                
say("Wie ich sehe bist noch nicht Level 90")
                
say("Komm bitte erst wenn du Level 90 erreicht hast")
                
say("")
                return
                
                or
                
                if 
pc.get_level >= 90 and
                if 
pc.count_item(27115) < 1    then
                say_title
("Kein Item")
                
say("Wie ich sehe hast du das"...item_name(27115)"nicht.")
                
say("Komm erst bitte mit dem"..item_name(27115)"wieder!")
                return
                
                elseif 
b == 2 then
                    say
("Nephritbucht")
                    
say("Ich werde dich nun teleportieren!")
                    
say("")
                    if 
pc.count_item(27115) >= 1 then                    -- das item Was gebraucht wird mit Menge
                        pc
.remove_item(27115, 1)
                        
pc.warp(11264,    15104)
                
                else
                
                if 
pc.get_level < 90 then
                say_title
("Noch zu Jung:")
                
say("Wie ich sehe bist noch nicht Level 90")
                
say("Komm bitte erst wenn du Level 90 erreicht hast")
                
say("")
                return
                
                or
                
                if 
pc.get_level >= 90 and
                if 
pc.count_item(27115) < 1    then
                say_title
("Kein Item")
                
say("Wie ich sehe hast du das"...item_name(27115)"nicht.")
                
say("Komm erst bitte mit dem"..item_name(27115)"wieder!")
                return
                
                elseif 
b == 3 then
                    say
("Kap des Drachenfeuers")
                    
say("Ich werde dich nun teleportieren!")
                    
say("")
                    if 
pc.count_item(27115) >= 1 then                    -- das item Was gebraucht wird mit Menge
                        pc
.remove_item(27115, 1)
                        
pc.warp(11776,    16640)
                
                else
                
                if 
pc.get_level < 90 then
                say_title
("Noch zu Jung:")
                
say("Wie ich sehe bist noch nicht Level 90")
                
say("Komm bitte erst wenn du Level 90 erreicht hast")
                
say("")
                return
                
                or
                
                if 
pc.get_level >= 90 and
                if 
pc.count_item(27115) < 1    then
                say_title
("Kein Item")
                
say("Wie ich sehe hast du das"...item_name(27115)"nicht.")
                
say("Komm erst bitte mit dem"..item_name(27115)"wieder!")
                return
                
                elseif 
b == 4 then
                    say
("Kap des Drachenfeuers")
                    
say("Ich werde dich nun teleportieren!")
                    
say("")
                    if 
pc.count_item(27115) >= 1 then                    -- das item Was gebraucht wird mit Menge
                        pc
.remove_item(27115, 1)
                        
pc.warp(10496,      15104)
                
                else
                
                if 
pc.get_level < 90 then
                say_title
("Noch zu Jung:")
                
say("Wie ich sehe bist noch nicht Level 90")
                
say("Komm bitte erst wenn du Level 90 erreicht hast")
                
say("")
                return
                
                or
                
                if 
pc.get_level >= 90 and
                if 
pc.count_item(27115) < 1    then
                say_title
("Kein Item")
                
say("Wie ich sehe hast du das"...item_name(27115)"nicht.")
                
say("Komm erst bitte mit dem"..item_name(27115)"wieder!")
                return

                elseif 
b == b then
                
return
                
end
            end
        end
    end
end 
Virtual Box:[Only registered and activated users can see links. Click Here To Register...]