Jump to content

giovy010102

Inactive Member
  • Posts

    77
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by giovy010102

  1. I have a problem:
    Until the second floor is nancy script and it works.
    But when killo all metin, does not lead to the fourth floor .... Using the core of vanilla ...
    What can it be? and to be edited again here too the function .kill?
     
    Thereis script :

    quest devilcatacomb_zone begin
    	state start begin
    	
    	function is_closed()
    		return (game.get_event_flag("dc_closed") > 0)    --close dialog
    	end
    	
    	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"] = 216,
    		["rag"] = 30311,
    
    		["devil_king"] = 2591,
    
    		["reapers_credit1"] = 30319,
    		["reapers_credit2"] = 30320,
    		["reapers_credit3"] = 76002,
    
    		["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(gameforge.devilcatacomb_zone._10_say)
    					say(string.format(gameforge.devilcatacomb_zone._20_say, 60))
    				elseif level == pc.getqf ("level") then
    --					say ("³«¿ÀµÇÁö ¾Ê±â À§ÇØ µ¿·áµé°ú ÇÕ·ùÇϽʽÿÀ.")
    					say(gameforge.devilcatacomb_zone._30_say)
    				else
    					say(gameforge.devilcatacomb_zone._40_say)
    --					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(gameforge.devilcatacomb_zone._40_say)
    						timer ("devilcatacomb_ban_timer", 5)
    --					end
    				else 
    					-- ¾Æ±Íµ¿±¼ ÀÔ±¸·Î
    --					pc.set_warp_location(65, 5914, 992)
    					say(gameforge.devilcatacomb_zone._50_say)
    				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] = gameforge.devilcatacomb_zone._60_say,
    				[4] = gameforge.devilcatacomb_zone._70_say,
    				[5] = gameforge.devilcatacomb_zone._80_say,
    				[6] = gameforge.devilcatacomb_zone._90_say,
    			}
    			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(string.format(gameforge.devilcatacomb_zone._20_say, t_m))
    			d.set_warp_location (0, 0, 0)
    		end
    
    		when devilcatacomb_man.chat.gameforge.devilcatacomb_zone._100_npcChat with not devilcatacomb_zone.is_closed() begin
    			local setting = devilcatacomb_zone.setting()
    			if pc.get_level() < 75 then
    				say(gameforge.devilcatacomb_zone._110_say)
    			elseif pc.getf("deviltower_zone","9_done") == 0 then
    				say(gameforge.devilcatacomb_zone._120_say)
    			elseif ((get_global_time() - pc.getf("devilcatacomb_zone","last_exit_time")) < 1800) then
    				say(gameforge.devilcatacomb_zone._130_say)
    			else
    				say(gameforge.devilcatacomb_zone._140_say)
    				local s = select(gameforge.devilcatacomb_zone._150_select, gameforge.devilcatacomb_zone._160_select)
    				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 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 devilcatacomb_credit_stone. take  begin
    			local setting = devilcatacomb_zone.setting()
    		
    			if item.vnum == setting.rag then 
    				if not party.is_party() then
    					say(gameforge.devilcatacomb_zone._170_say)
    					return
    				elseif party.is_in_dungeon() then
    					say(gameforge.devilcatacomb_zone._180_say)
    					return
    				end
    
    				item.remove()
    				say(gameforge.devilcatacomb_zone._190_say)
    				wait()
    				say(gameforge.devilcatacomb_zone._200_say)
    				wait()
    				d.new_jump_party (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.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	
    		end
    		
    		when devilcatacomb_45m_left_timer.server_timer begin
    			if d.select(get_server_timer_arg()) then
    				d.notice(string.format(gameforge.devilcatacomb_zone._20_say, 45))
    				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(string.format(gameforge.devilcatacomb_zone._20_say, 30))
    				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(string.format(gameforge.devilcatacomb_zone._20_say, 15))
    				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(string.format(gameforge.devilcatacomb_zone._20_say, 5))
    				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(string.format(gameforge.devilcatacomb_zone._20_say, 1))
    				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 (gameforge.devilcatacomb_zone._210_dNotice)
    				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 () then
    					say(gameforge.devilcatacomb_zone._220_say)
    					wait ()
    					return
    				end
    				say(gameforge.devilcatacomb_zone._230_say)
    				wait()
    				say(gameforge.devilcatacomb_zone._240_say)
    				wait()
    				local s = select(gameforge.devilcatacomb_zone._150_select, gameforge.devilcatacomb_zone._160_select)
    				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", 3, setting.reapers_credit3, 1, setting.reapers_credit2, 1, setting.reapers_credit1, 1)
    						d.say_diff_by_item_group("reapers_credit", gameforge.devilcatacomb_zone._250_say, gameforge.devilcatacomb_zone._260_say)
    						timer ("devilcatacomb_floor3_enter_timer", 7)
    					end
    				end
    			else
    				say(gameforge.devilcatacomb_zone._270_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")
    			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 kill with npc.get_race() == devilcatacomb3_stone begin
    			local setting = devilcatacomb_zone.setting()
    			-- µ¹ÀÌ Æı«µÇ¸é ÁøÂ¥°¡ Á×¾ú´ÂÁö È®ÀÎÇغ»´Ù.
    			-- ÁøÂ¥°¡ Á×¾úÀ¸¸é 4ÃþÀ¸·Î À̵¿ÇÑ´Ù.
    			if d.is_unique_dead("real") then
    				d.notice(gameforge.devilcatacomb_zone._280_dNotice)
    				
    				d.setf ("level",4)
    				d.setqf2("devilcatacomb_zone","level", 4)
    				timer ("devilcatacomb_floor4_enter_timer", 3)
    			else
    				d.notice(gameforge.devilcatacomb_zone._290_dNotice)
    			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])
    			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(gameforge.devilcatacomb_zone._300_say)
    			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.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 kill with npc.get_race() == devilcatacomb_devil_king 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(gameforge.devilcatacomb_zone._310_dNotice)
    				-- 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.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 kill with npc.get_race() == devilcatacomb_devil_great_king 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(), gameforge.devilcatacomb_zone._320_say)
    					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(), gameforge.devilcatacomb_zone._320_say)
    					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.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(gameforge.devilcatacomb_zone._330_dNotice)
    				d.notice(string.format(gameforge.devilcatacomb_zone._20_say, t_m))
    				d.set_warp_location (0, 0, 0)
    			end
    		end
    
    		-- 6Ãþ°ú ¸¶Âù°¡Áö·Î »ç¸¶ÈÖ(2598)ÀÌ Á×À¸¸é
    		-- 7ÃþÀÇ Å¸À̸Ӱ¡ ÀÛµ¿ÇÑ´Ù.
    		when kill with npc.get_race() == devilcatacomb_devil_emperor begin
    			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(), gameforge.devilcatacomb_zone._340_say)
    					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(), gameforge.devilcatacomb_zone._340_say)
    					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_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
    
    
  2. Hello. I have problem whit core vanilla...

    the problem is all quest whit the .kill function not work..

    so... what i cna do?

    i have tryed to add the ncprace etc...  work for one... but for all no...example this is quest for biologist:

     

     
    when 635.kill or
    636.kill or 
    637.kill  begin
    local s = number(1, 30)
    if s == 1 and pc.count_item(30220)==0 then
    pc.give_item2(30220, 1)
    send_letter("Ho la Pietra Anime")
     what i need to add? Ty for the help..
    Or any core working good.... Thank you.
×
×
  • 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.