Register for your free account! | Forgot your password?

You last visited: Today at 00:49

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



40k Files DT Run

Discussion on 40k Files DT Run within the Metin2 Private Server forum part of the Metin2 category.

Reply
 
Old   #1

 
Mīzu's Avatar
 
elite*gold: 20
Join Date: Jan 2014
Posts: 129
Received Thanks: 82
40k Files DT Run

Heyyo,

ich hab nen Problem bei den 40k Files, hab schon 2 Leute drüber gucken lassen die meinen es sei alles in Ordnung so wie es ist, "eigentlich müsste es funktionieren".

Das Problem ist, wenn man in den DT geht und dann den Metin (8015) kaputt macht, wird man nicht hoch geportet.

-> /share/data/dungeon Ordner


-> Quest
Code:
quest deviltower_zone begin
    state start begin
	when login begin
	    if pc.get_map_index() == 66 then
			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 logout begin
		if pc.count_item(30300) >= 1 then
			pc.remove_item(30300, pc.count_item(30300))
		end
		-- not used in the game
		-- pc.remove_item(30301, pc.count_item(30301))
		if pc.count_item(30302) >= 1 then
			pc.remove_item(30302, pc.count_item(30302))
		end
	end
		
	when deviltower_man.chat.gameforge.deviltower_zone._10_npcChat begin
		if pc.get_level() < 40 then
			say_title(gameforge.deviltower_zone._20_sayTitle)
			say(gameforge.deviltower_zone._30_say)
		else
			say_title(gameforge.deviltower_zone._20_sayTitle)
			say(gameforge.deviltower_zone._40_say)
			local s =  select(gameforge.locale.monkey_dungeon.enter, gameforge.locale.monkey_dungeon.no_enter)
			if s == 1 then
				pc.warp(216500,727000)
			end
	    end
	end
	when devil_stone1.kill begin
	    timer("devil_stone1_1", 6)
	end
	when devil_stone1_1.timer begin
	    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_stone3.kill begin
	    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()
	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
	    return positions
	end
	
	when 8016.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	    d.setf("level", 4)
	    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())
        
        notice_multiline(gameforge.deviltower_zone._50_dNotice,d.notice)
	    
	end

	when devil_stone4_fail1.server_timer begin
	    if d.select(get_server_timer_arg()) then
			notice_multiline(gameforge.deviltower_zone._60_dNotice,d.notice)
			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
			notice_multiline(gameforge.deviltower_zone._70_dNotice,d.notice)
			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
			notice_multiline(gameforge.deviltower_zone._80_dNotice,d.notice)
			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)
			    notice_multiline(gameforge.deviltower_zone._90_dNotice,d.notice)
                end
			end
		    end
		else
		    server_timer("devil_stone4_end", 5, get_server_timer_arg())		    
            d.kill_all()
		    notice_multiline(gameforge.deviltower_zone._100_dNotice,d.notice)
            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
			clear_server_timer('devil_stone4_update', get_server_timer_arg())
			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())

		d.setf("level", 5)
		d.setf("stone_count", 5)
		notice_multiline(gameforge.deviltower_zone._110_dNotice,d.notice)
		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())

		d.set_regen_file("data/dungeon/deviltower5_regen.txt")

		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
			notice_multiline(gameforge.deviltower_zone._120_dNotice,d.notice)
			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
			notice_multiline(gameforge.deviltower_zone._60_dNotice,d.notice)
			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
			notice_multiline(gameforge.deviltower_zone._70_dNotice,d.notice)
			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
			notice_multiline(gameforge.deviltower_zone._80_dNotice,d.notice)
			d.exit_all()
	    end
	end


	when 1062.kill with pc.in_dungeon() and d.getf("level") == 5 begin
	    local KILL_COUNT_FOR_DROP_KEY = 50
	    local n =d.getf("count") + 1
	    d.setf("count", n) 
	    if n == KILL_COUNT_FOR_DROP_KEY then
			game.drop_item(50084, 1)
			d.setf("count", 0)
	    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")

			notice_multiline(gameforge.deviltower_zone._130_dNotice,d.notice)
			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(string.format(gameforge.deviltower_zone._140_dNotice, d.getf("stone_count")))
	    end
	end

	when devil_stone6.kill begin
	    d.kill_all()
	    notice_multiline(gameforge.deviltower_zone._150_dNotice,d.notice)
	    d.check_eliminated()
	    notice_multiline(gameforge.deviltower_zone._160_dNotice,d.notice)
	    local reward_alchemist = {20074, 20075, 20076}
	    d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
	    d.setqf("can_refine", 1)
	end


	when 20074.chat.gameforge.deviltower_zone._170_npcChat with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and npc.lock() begin
		say_title(mob_name(20074))
		say(gameforge.deviltower_zone._190_say)
		wait()
		if pc.level >=75 then
			say_title(mob_name(20074))

			say(gameforge.deviltower_zone._200_say)
			local s= select(gameforge.deviltower_zone._210_select, gameforge.locale.cancel, gameforge.deviltower_zone._220_select)
			if s==3 then
				pc.warp(590500, 110500)
				return
			end	
			if s==2 then
				return
			end

			timer("devil_jump_7", 6)
			npc.unlock()
			d.purge()
			return
		end
		say_title(mob_name(20074))
		say(gameforge.deviltower_zone._230_say)
		wait()
		pc.warp(590500, 110500)
		return
    end

	when 20075.chat.gameforge.deviltower_zone._170_npcChat with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000  and npc.lock() begin
		say_title(mob_name(20075))
		say(gameforge.deviltower_zone._190_say)
		wait()
		if pc.level >=75 then
			say_title(mob_name(20075))

			say(gameforge.deviltower_zone._200_say)
			local s= select(gameforge.deviltower_zone._210_select, gameforge.deviltower_zone._220_select)
			if s==3 then
				pc.warp(590500, 110500)
				return
			end	
			if s==2 then
				return
			end	

			timer("devil_jump_7", 6)
			npc.unlock()
			d.purge()
			return
		end
		say_title(mob_name(20075))
		say(gameforge.deviltower_zone._230_say)
		wait()
		pc.warp(590500, 110500)
		return
    end
	when 20076.chat.gameforge.deviltower_zone._170_npcChat with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000  and npc.lock() begin
		say_title(mob_name(20076))
		say(gameforge.deviltower_zone._190_say)
		wait()
		if pc.level >=75 then
			say_title(mob_name(20076))

			say(gameforge.deviltower_zone._200_say)
			local s= select(gameforge.deviltower_zone._210_select, gameforge.deviltower_zone._220_select)
			if s==3 then
				pc.warp(590500, 110500)
				return
			end	
			if s==2 then
				return
			end	

			timer("devil_jump_7", 6)
			npc.unlock()
			d.purge()
			return
		end
		say_title(mob_name(20076))
		say(gameforge.deviltower_zone._230_say)
		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)


		notice_multiline(gameforge.deviltower_zone._240_dNotice,d.notice)
		d.jump_all(2048+590, 6656+638)
	end
	
	when 8018.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		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.regen_file("data/dungeon/deviltower7_regen.txt")
		end	
	end

	when 8019.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		game.drop_item(30300, 1)
			d.clear_regen()
			d.kill_all()
			say("»óÀÚ¸¦ ¿*¾îº¸ÀÚ")
			say("")
			d.spawn_mob(33001, 620, 635)
	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
			game.drop_item(30302, 1)
				d.notice("À*ÃþÀ¸·ÎÀÇ Áöµµ°¡ ³ªÅ¸³µ´Ù");
			else
				game.drop_item(30301, 1) 
				d.regen_file("data/dungeon/deviltower7_regen.txt")
		end
	end
		when 33001.chat."¿Ø ÇØ°ñÀÌ..." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
			say("³»°¡ »ç±ÍŸ¿öÀÇ °ø·«¿¡ ½ÇÆÐÇß³ª º¸±º..")
			say("¾Æ¹«¸® ºÁµµ ³»°¡ ¹ÛÀ¸·Î ºüÀú³ª°¥ ¹æ¹ýÀÌ ¾ø´Â °Í °°¾Æ..")
			say("¿©±â ´©¿öÀÖ´Â ÇØ°ñó·³ µÇ´Â °ÍÀÌ ¾Æ´Ò±î..")
			say("±×·±µ¥ ´©±¸ÀÇ ÇØ°ñÀÌÁö???")
			say("")

			wait()

			say("ÇØ°ñÀ» µÚÁ®º¼±î¿ä?")
			say("")

			if 1 == select("³×", "¾Æ´Ï¿ä") then
				say("...")
				say("µÚÀûµÚÀû")
				say("....")
				say("Äî!")

				wait()

				d.exit_all()
		end
	end

	when 30302.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		if d.getf( "level" ) != 7 then
				say("ÀÌ Áöµµ´Â Áö±Ý ÀüÇô ¸ÂÁö ¾Ê´Â °Í °°´Ù")
			say("")
			pc.remove_item( "30302", 1)
			return
		end
			
		say_title(gameforge.blacksmith._40_sayTitle)
		say(gameforge.deviltower_zone._250_say)
		pc.remove_item("30302", 1)
	    timer("devil_jump_8", 6)
		d.clear_regen()
	end
						
	when devil_jump_8.timer begin
		d.setf("level", 8)

		notice_multiline(gameforge.deviltower_zone._260_dNotice,d.notice)
		d.jump_all(2048+590, 6656+403)
		d.set_regen_file("data/dungeon/deviltower8_regen.txt")
		pc.remove_item(30302, pc.count_item(30302)) 
	end

		when 1040.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and d.getf("level") == 8 begin
			if number(1, 5) == 1 then
				if number(1, 10) == 1 then
					game.drop_item(30304, 1) 
					d.clear_regen()
					d.kill_all()
					d.spawn_mob(20366, 640, 460)
			else
				game.drop_item(30303, 1)
			end
		end
    end

		when 20366.take with item.vnum == 30304 and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
			d.clear_regen()
			d.kill_all()
		npc.purge()
		item.remove()
		timer("devil_jump_9", 6)
	end

		when 20366.chat."¿©±â¼* Æ÷±â!!?" with pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
			say("")
			say("´õ ÀÌ»óÀº Èûµé±º, ºñ¼®ÀÇ ÈûÀ» ºô·Á ¿©±â¸¦ ¹þ¾î³ª¾ß°Ú¾î..")
			say("")
			wait()

			d.exit_all()
		end
	when devil_jump_9.timer begin
		d.setf("level", 9)


		notice_multiline(gameforge.deviltower_zone._270_dNotice,d.notice)
		d.jump_all(2048+590, 6656+155)
		d.regen_file("data/dungeon/deviltower9_regen.txt")
	end

	when 1093.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		d.kill_all()


		notice_multiline(gameforge.deviltower_zone._280_dNotice,d.notice)
		timer("devil_end_jump", 60)
	end

	when devil_end_jump.timer begin
			d.clear_regen()
	    d.exit_all()
	end
end
end
Hab es schon mit verschiedenen Quests ausprobiert, allerdings ohne erfolg...
Weiß jemand woran es liegen könnte?

in der questnpc.txt ist id 8015 also devil_stone1 definiert.

mfg
Mīzu is offline  
Old 08/30/2014, 12:43   #2
 
elite*gold: 0
Join Date: Jun 2008
Posts: 8
Received Thanks: 1
what is the fix for this?
cacatlarg is offline  
Reply


Similar Threads Similar Threads
[WTT]Rohan Hero files+DB=Dekaron 11classes+accesarry upgrade server files.
07/10/2013 - Rohan - 0 Replies
Deal collapsed.



All times are GMT +2. The time now is 00:49.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.