DT zweite Ebene bug

11/25/2014 20:54 .Soυzα#1
#close
11/25/2014 22:04 Zaturix#2
Definiere "komme ab der 2 Ebene nicht weiter"

Nachdem du die Mobs gekillt hast oder wenn du in der 2 Ebene rein kommst?
11/25/2014 22:35 .Soυzα#3
Quote:
Originally Posted by ʂαιɳƚʂ View Post
Definiere "komme ab der 2 Ebene nicht weiter"

Nachdem du die Mobs gekillt hast oder wenn du in der 2 Ebene rein kommst?
Wenn alle Mobs getötet wurden wie es sich gehört passiert nichts.
11/25/2014 22:38 .Delta#4
Hatte ich glaube ich auch mal,
habe dann die "namen" durch die vnums ersetzt und es ging wieder :P

also z.b. dieses hier: devil_stone3
11/26/2014 10:36 .Soυzα#5
Weiß jemand vielleicht was?

Hallo, ich habe den Fehler bei mir gefunden kann mir dabei jemand helfen... es abzuändern

Wer mir das Fixxt kriegt bischen e*gold

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

HTML Code:
quest deviltower_zone begin
    state start begin
		when login begin
			if pc.get_map_index() == 66 then
			-- Nicht in einer Etage, die wieder nach drau¡¼n .
			-- Layer Range 
			-- 1F   88  577  236 737
			-- 2F   91  343  238 504
			-- 3F  104  107  248 269
			if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then
				pc.warp((5376+532)*100, (512+596+4)*100, 65)
			end
			pc.set_warp_location(65, 5376+532, 512+596+4)
			elseif pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
			pc.set_warp_location(65, 5376+532, 512+596+4)
			end
		end
		when deviltower_man.chat.locale.deviltower_man_chat begin
			if pc.get_level() < 40 then
			say(locale.deviltower_man_say_you_cant)
			else
			say(locale.deviltower_man_say)
			local s = select(locale.deviltower_enter,locale.deviltower_no_enter)
			if s == 1 then
				-- warp into!
				pc.warp(216500,727000)
			end
			end
		end
		when kill with pc.get_map_index() == 66 begin 
			if npc.get_race() == 8015 then 
				timer("devil_stone1_1", 6) 
			end 
		end  
		when devil_stone1_1.timer begin
			local mapto7= pc.count_item(30302)  -- Ich weiß nicht, das wahre Tilgung der die Existenz der Seele des Turms 
			pc.remove_item(30302,mapto7)

			local boxto7= pc.count_item(30300)  -- Beseitigung des unbekannten weiß nicht, ob es sich um ein Feld 
			pc.remove_item(30300,boxto7)

			d.new_jump_all(66, special.devil_tower[1][1], special.devil_tower[1][2])
			d.regen_file("data/dungeon/deviltower2_regen.txt")
			d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")
		end
		--when devil_stone2.kill begin
		--d.jump_all_local(special.devil_tower[2][1], special.devil_tower[2][2])
		--end
		when devil_stone3.kill begin
			if npc.get_race() == 8016 then 
				--d.jump_all_local(special.devil_tower[3][1], special.devil_tower[3][2])
				--d.set_exit_all_at_eliminate(6)
				--d.set_warp_at_eliminate(6, d.get_map_index(), 100, 100)
				--d.set_warp_at_eliminate(4, 65, 5376+532, 512+596+4)
				d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_regen.txt")
				d.check_eliminated()
				--d.exit_all()
			end
		end
		function get_4floor_stone_pos()
			local positions = {
			{368, 629},
			{419, 630},
			{428, 653},
			{422, 679},
			{395, 689},
			{369, 679},
			{361, 658},
			}
			for i = 1, 6 do
			local j = number(i, 7)
			if i != j then
				local t = positions[i];
				positions[i] = positions[j];
				positions[j] = t;
			end
			end
			--for i = 1, 7 do
		--	positions[i][1] = positions[i][1] * 100
		--	positions[i][2] = positions[i][2] * 100
		 --   end
			return positions
		end
		when kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
			if npc.get_race() == 8016 then
				d.setf("level", 4)
				-- Reproduzieren eine gro¡¼ Anzahl von Monstern und Herstellung von wahr und falsch Steine Steine 
				--d.regen_file("data/dungeon/deviltower4_regen.txt")
				local positions = deviltower_zone.get_4floor_stone_pos()
				for i = 1, 6 do
				chat(positions[i][1], positions[i][2])
				d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2]))
				end
				chat(positions[7][1], positions[7][2])
				local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
				chat(vid)
				d.set_unique("real", vid)
				server_loop_timer('devil_stone4_update', 10, pc.get_map_index())
				server_timer('devil_stone4_fail1', 5*60, pc.get_map_index())

				d.notice("Hier ist der 4. Etage,")
				d.notice("findet den Echten Metinstein")
				d.notice("innerhalb von 15 Minuten,")
				d.notice("Sonst werdet ihr vor die Tür gesetzt.")
			end	
		end

		when devil_stone4_fail1.server_timer begin
			if d.select(get_server_timer_arg()) then
			d.notice("Noch 10 Minuten!")
			server_timer('devil_stone4_fail2', 5*60, get_server_timer_arg())
			end
		end

		when devil_stone4_fail2.server_timer begin
			if d.select(get_server_timer_arg()) then
			d.notice("Noch 5 Minuten!")
			server_timer('devil_stone4_fail', 5*60, get_server_timer_arg())
			end
		end

		when devil_stone4_fail.server_timer begin
			if d.select(get_server_timer_arg()) then
			d.notice("Die Zeit ist abgelaufen")
			d.exit_all()
			clear_server_timer('devil_stone4_update', get_server_timer_arg())
			end
		end

		when devil_stone4_update.server_timer begin
			if d.select(get_server_timer_arg()) then
			if not d.is_unique_dead("real") then
				for i = 1, 6 do
				if d.getf("fakedead" .. i) == 0 then
					if d.unique_get_hp_perc("fake" .. i) < 50 then
					d.purge_unique("fake" .. i)
					d.setf("fakedead" .. i, 1)
					d.notice("Ein falscher Metinstein verschwindet.");
					end
				end
				end
			else
				--d.clear_regen()
				--d.regen_file("data/dungeon/deviltower5_regen.txt")
				server_timer("devil_stone4_end", 5, get_server_timer_arg())
				d.notice("Glückwunsch Euch ist es geglückt den Echten Metinstein");
				d.notice("zu finden... Auf in die nächste Etage.")
				clear_server_timer('devil_stone4_fail1', get_server_timer_arg())
				clear_server_timer('devil_stone4_fail2', get_server_timer_arg())
				clear_server_timer('devil_stone4_fail', get_server_timer_arg())
			end
			else
			server_timer('devil_stone4_stop_timer', 1, get_server_timer_arg())
			end
		end

		when devil_stone4_stop_timer.server_timer begin
			clear_server_timer('devil_stone4_update', get_server_timer_arg())
		end

		when devil_stone4_end.server_timer begin
			if d.select(get_server_timer_arg()) then
			d.setf("level", 5)
			d.setf("stone_count", 5)
			d.notice("Willkommen auf der 5.ten Etage")
			d.notice("Tötet alle Monster denn manche Tragen den Schlüssel")
			d.notice("für die nächste Etage mit sich")
			d.notice("Öffnet alle Säulen mit hilfe der Schlüsselsteine (Ihr habt 20 Minuten Zeit)")
			d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
			--server_timer('devil_stone5_fail1', 5*60, get_server_timer_arg())
			clear_server_timer('devil_stone4_update', get_server_timer_arg())

			-- 5. Stock, weiter zu reproduzieren 
			d.set_regen_file("data/dungeon/deviltower5_regen.txt")

			-- 5. Stock, Seal Stone Reproduktion 
			d.spawn_mob(20073, 421, 452)
			d.spawn_mob(20073, 380, 460)
			d.spawn_mob(20073, 428, 414)
			d.spawn_mob(20073, 398, 392)
			d.spawn_mob(20073, 359, 426)
			end
		end
		when devil_stone5_fail1.server_timer begin
			if d.select(get_server_timer_arg()) then
			d.notice("Noch 25 Minuten.")
			server_timer('devil_stone5_fail2', 5*60, get_server_timer_arg())
			end
		end

		when devil_stone5_fail2.server_timer begin
			if d.select(get_server_timer_arg()) then
			d.notice("Noch 20 Minuten.")
			server_timer('devil_stone5_fail3', 5*60, get_server_timer_arg())
			end
		end

		when devil_stone5_fail3.server_timer begin
			if d.select(get_server_timer_arg()) then
			d.notice("Noch 15 Minuten.")
			server_timer('devil_stone5_fail4', 5*60, get_server_timer_arg())
			end
		end
		
		when devil_stone5_fail4.server_timer begin
			if d.select(get_server_timer_arg()) then
			d.notice("Noch 10 Minuten.")
			server_timer('devil_stone5_fail5', 5*60, get_server_timer_arg())
		end
	end

		when devil_stone5_fail5.server_timer begin
			if d.select(get_server_timer_arg()) then
			d.notice("Noch 5 Minuten.")
			server_timer('devil_stone5_fail', 5*60, get_server_timer_arg())
		end
	end


		when devil_stone5_fail.server_timer begin
			if d.select(get_server_timer_arg()) then
			d.notice("Die Zeit ist abgelaufen.")
			d.exit_all()
			end
		end

		--when devil_stone4.kill begin
			--d.setf("level", 5)
			--d.setf("stone_count", 4)
			--d.clear_regen()
			--d.regen_file("data/dungeon/deviltower5_regen.txt")
			--d.jump_all_local(special.devil_tower[4][1], special.devil_tower[4][2])
		--end

		when kill with pc.in_dungeon() and d.getf("level") == 5 begin
			if npc.get_race() == 1062 then
				local KILL_COUNT_FOR_DROP_KEY = 50
				--if is_test_server() then
				--KILL_COUNT_FOR_DROP_KEY = 1
				--end
				local n =d.getf("count") + 1
				d.setf("count", n) 
				if n == KILL_COUNT_FOR_DROP_KEY then
				-- Falling Tasten 
					game.drop_item(50084, 1)
					d.setf("count", 0)
				end
			end	
		end
		when devil_stone5.take with item.vnum == 50084 begin
			npc.purge()
			item.remove()
			d.setf("stone_count", d.getf("stone_count") - 1)
			if d.getf("stone_count") <= 0 then
			d.setf("level", 6)
			d.clear_regen()
			d.regen_file("data/dungeon/deviltower6_regen.txt")

			d.notice("Glückwunsch ihr habt alle Säulen Geöffnet")
			d.notice("Ihr werdet in die nächste Etage aufsteigen.")
			d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
			clear_server_timer('devil_stone5_fail1', get_server_timer_arg())
			clear_server_timer('devil_stone5_fail2', get_server_timer_arg())
			clear_server_timer('devil_stone5_fail3', get_server_timer_arg())
			clear_server_timer('devil_stone5_fail', get_server_timer_arg())
			else
			d.notice("Säule entfernt... Noch "..d.getf("stone_count").."Viel Glück")
			end
		end

		when kill begin
			if npc.get_race() == devil_stone6 then
				-- Geschickt, um eine Karte, wo die Verfeinerung St. 
				-- Ansonsten ¡¼fnen Sie ein neues Lian Sheng 
				--d.jump_all(special.devil_tower[6][1], special.devil_tower[6][2])
			   -- d.set_warp_at_eliminate(3*60, 65, 5376+532, 512+596+4)
				d.check_eliminated()
				d.kill_all()
				local reward_alchemist = {20074, 20075, 20076}
				d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
				d.setqf2("deviltower_zone", "can_refine", 1)
			end	
		end

		--------------------------------------
		-- 7 D kommt man aus dem Zugriff vor dem 8. Stock 
		--------------------------------------

		when 20074.chat."Die Oberen Stockwerke" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
			say(""..mob_name(20074).."")
			say("Möchtet ihr Weiter herrauf")
			say("und euer können weiterhin unter Beweiss stellen?")
			say("Ich jedenfalls bleibe hier")
			say("")
			wait()
			if pc.level >=75 then
				say("text ignorieren")
				say("Ihr seid über Level 75")
				say("Ihr seid zumindest gross genug.")
				say("Doch seid ihr auch Tapfer genug?")
				say("Es gibt nur eine möglichkeit das festzustellen.")
				d.purge()
				timer("devil_jump_7", 6)
				return
			end
			say("Ihr seid leider noch nicht ")
			say("gross genug um weiter aufzusteigen")
			say("Übt noch ein wenig und kommt dann wieder.")
			say("Viel Glück auf eurer Reise.")
			say("Du benötigst level 75.")
			wait()
			pc.warp(590500, 110500)
			return
		end
		when 20075.chat."Mit Bezug auf den oberen Turm .." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
			say(""..mob_name(20075).."")
			say("Möchtet ihr Weiter herrauf")
			say("und euer können weiterhin unter Beweiss stellen?")
			say("Ich jedenfalls bleibe hier")
			say("")
			wait()
			if pc.level >=75 then
				say("text ignorieren")
				say("Ihr seid über Level 75.")
				say("Ihr seid zumindest gross genug.")
				say("Doch seid ihr auch Tapfer genug?")
				say("Es gibt nur eine möglichkeit das festzustellen.")
				d.purge()
				timer("devil_jump_7", 6)
				return
			end
			say("Ihr seid leider noch nicht ")
			say("gross genug um weiter aufzusteigen")
			say("Übt noch ein wenig und kommt dann wieder.")
			say("Viel Glück auf eurer Reise.")
			say("Du musst über Level 75 sein.")
			wait()
			pc.warp(590500, 110500)
			return
		end
		when 20076.chat."Mit Bezug auf den oberen Turm .." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
			say(""..mob_name(20076).."")
			say("Möchtet ihr Weiter herrauf")
			say("und euer können weiterhin unter Beweiss stellen?")
			say("Ich jedenfalls bleibe hier")
			say("")
			wait()
			if pc.level >=75 then
				say("Text ignorieren")
				say("Ihr seid über Level 75.")
				say("Ihr seid zumindest gross genug.")
				say("Doch seid ihr auch Tapfer genug?")
				say("Es gibt nur eine möglichkeit das festzustellen.")
				d.purge()
				timer("devil_jump_7", 6)
				return
			end
			say("Ihr seid leider noch nicht ")
			say("gross genug um weiter aufzusteigen")
			say("Übt noch ein wenig und kommt dann wieder.")
			say("Viel Glück auf eurer Reise.")
			say("Du Benötigst Level 75.")
			wait()
			pc.warp(590500, 110500)
			return
		end

	   when devil_jump_7.timer begin
			d.clear_regen()

			d.spawn_mob(8018, 639, 658)
			d.spawn_mob(8018, 611, 637)
			d.spawn_mob(8018, 596, 674)
			d.spawn_mob(8018, 629, 670)

			d.setf("level", 7)

			d.jump_all(2048+590, 6656+638)
		end
		
		when kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
			if npc.get_race() == 8018 then
				local cont = d.getf("7_stone_kill") + 1
				d.setf("7_stone_kill", cont)

				if cont >= 4 then
					d.setf("7_stone_kill", 0)
					d.set_regen_file("data/dungeon/deviltower7_regen.txt")
				end	
			end	
		end

		when kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
			if npc.get_race() == 8019 then
				game.drop_item(30300, 1)
			end	
		end

		when 30300.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
			pc.remove_item("30300", 1)

			local pct = number(1,10)

			if pct == 1 then
				-- Fall wahr Karte
				game.drop_item(30302, 1)
				d.clear_regen()
			else
				-- Fall wahr Karte
				game.drop_item(30301, 1)
				
			end
		end

		when 30302.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
			-- An der 8th Floor 
			say("Du wirst in die Zin Grotte teleportiert. Viel Glück.")
			pc.remove_item("30302", 1)
			timer("devil_jump_8", 6)
			d.clear_regen()
		end
							
		--------------------------------------------
		-- Von 8 F vor der Ankunft geben Sie die 9 F 
		--------------------------------------------
		when devil_jump_8.timer begin
			d.setf("level", 8)
			d.jump_all(2048+590, 6656+403)
			d.set_regen_file("data/dungeon/deviltower8_regen.txt")
			d.spawn_mob(20366, 640, 460)
			local _count= pc.count_item(30302)-- True Tilgung Dead Turm 
			pc.remove_item(30302,_1)
			
		end

		when kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
			if npc.get_race() == 1040 then
				local pct1 = number(1, 5)
				if pct1 == 1 then
					local pct2 = number(1, 10)
					if pct2 == 1 then
						-- Fall wahre Schl¡¼sel 
						game.drop_item(30304, 1)
					else
						-- Keys fiel 
						game.drop_item(30303, 1)
					end
				else
					return
				end
			end	
		end

		when 20366.take with item.vnum == 30304 begin
			-- 9 F-Zeichen aufgehoben 
			npc.purge()
			pc.remove_item("30304", 1)
			timer("devil_jump_9", 6)
		end

		---------------------------------------------
		-- 9 F ein Ende, indem Sie 
		---------------------------------------------
	when devil_jump_9.timer begin
			d.setf("level", 9)
			d.jump_all(2048+590, 6656+155)
			d.regen_file("data/dungeon/deviltower9_regen.txt")
		end

		when kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
			if npc.get_race() == 1093 then
				d.kill_all()
				timer("devil_end", 120)
				d.notice("Du hast die Aufgabe erfolgreich erfüllt und")
				d.notice("wirst in wenigen Minuten hinaus teleportiert.")
			end	
		end
		
		when devil_end.timer begin
			d.exit_all()
		end

		when devil_end_jump.timer begin
			d.setf("level", 7)
			d.jump_all(2048+590, 6656+638)
			d.clear_regen()
			d.spawn_mob(1094, 639, 658)
		end
		
		when kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
			if npc.get_race() == 1094 then
				d.notice("Glückwunsch!!!")
				d.notice("Du hast den Gemeinen Demonenkönig getötet!!!")
				d.notice("Ihr Gelangt nun in die Etage der Schmerzen!!!")
				d.kill_all()
				timer("devil_end_jump_schmied1", 10)
			end	
		end
		
		when devil_end_jump_schmied1.timer begin
			d.setf("level", 9)
			d.jump_all(2048+590, 6656+155)
			d.clear_regen()
			d.spawn_mob(1095, 605, 178)
		end
	
		when kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
			if npc.get_race() == 1095 then
				notice_all("".. pc.get_name() .." hat den Blauen Tod bezwungen!!!")
				notice_all("Wir sind alle soo stolz !")
				d.notice("Glückwunsch!!!")
				d.notice("Als belohnung spawnen nun alle 3 Dt-Schmiede!!!")
				d.check_eliminated()
				clear_server_timer('devil_stone5_fail1', get_server_timer_arg())
				clear_server_timer('devil_stone5_fail2', get_server_timer_arg())
				clear_server_timer('devil_stone5_fail3', get_server_timer_arg())
				clear_server_timer('devil_stone5_fail', get_server_timer_arg())
				d.kill_all()
				local reward_alchemist = {20074, 20075, 20076}
				d.spawn_mob(20074, 609, 179);
				d.spawn_mob(20075, 609, 172);
				d.spawn_mob(20076, 609, 185);
				d.spawn_mob(9012, 619, 170);
				d.spawn_mob(9005, 614, 170);
				d.spawn_mob(20091, 642, 155);
				d.setqf2("deviltower_zone", "can_refine", 1)
			end	
		end
	end
end