Problema Razador

Totalitatea subiectelor care nu respectă regulamentul impus in sectiunea "Probleme şi Întrebări" vor fi stocate aici.
Închis
Avatar utilizator
AquaMagiX
Nivel 2

Nivel 2
Mesaje: 201
Membru din: 19 Feb 2015, 15:42
Server: Metin2Acel
Aprecieri: 4  
Mulţumiri: 3  
Medalii

*Problemă:La nivelul cu stalpii la care trebuie sa pui cheia
Tipologie server:PVM
*Resursă folosită:-
*ServerFiles utilizat: Happiness
*Syserr:-
Poză:-
*Detalii suplimentare:Cand ajung la niveul 3 cred ca este , dau sa pun " Piatra Maat " pe stalp, si am stat o ora, pana cand ma scos de acolo incercand sa pun piatra pe stalp, imi spune mereu ca este piatra gresita

quest flame_dungeon begin
	state start begin
		--when 20350.chat."Nu ai permis de trecere?" with pc.get_level() >= 95 and pc.count_item(30189) < 1 begin
		--	addimage ( 5 , 10 , "portile_iadului.tga" )
		--	say("")
		--	say("")
		--	say("")
		--	say("")
		--	say("Din intamplare am eu un permis")
		--	say("dar te va costa ceva fiindca")
		--	say("permisul acesta este cam rar...")
		--	say("Costa 10kk (10.000.000 Yang)")
		--	say("")
		--	say("Doresti sa cumperi unul?")
		--	local cump = select("Da", "Nu")
		--	if cump == 1 then
		--	if pc.get_gold() >= 10000000 then
		--		pc.give_item2(30189, 1)
		--		pc.changemoney(-10000000)
		--	else
		--		say("Ce!? nu ai destul Yang?")
		--		say("pleaca de aici trantorule")
		--		say("nu poti cumpara ceva fara bani!")
		--		end
		--	end
		--end
			
		when 20350.chat."<GM> Elimina timp" with pc.is_gm() begin
			say("Exygo ti-a scos timpu'")
			pc.setf("flame_dungeon","exit_time",1)
		end
	
	function setting()
		return 
		{
		["base"]={["x"] = 7424  , ["y"]= 6144 ,},
		["floor1_entry"] = {["x"] = 341, ["y"] = 589,},
		["bossroom_entry_pos"] = {8109,6867},
		["boss_pos"] = {686,637},
		["doors_pos"] = {
			{320,394},
			{293,359},
			{333,321},
			{378,320},
			{400,355},
			{394,401}
		},
		["idoors_pos"] = {
			{268,447},
			{234,359},
			{300,264},
			{454,217},
			{470,355},
			{467,469}
		},
		["doors_dir"] = {135,90,210,152,90,223},
		["idoors_dir"] = {135,90,210,135,90,239},
		["dungeon_entry_pos"] = {7762, 6739},-- ??? ?? ???? ?
		["DUNGEON_MAN_bpos"] = {690,722},
		["DUNGEON_MAN_pos"] = {354,362},
		["LEVEL2_STONE_pos"] = {195,352},
		["LEVEL4_TARGET_pos"] = {470,175},
		["LEVEL5_STONE_pos"] = {
				{486, 345},
				{511, 336},
				{525, 349},
				{521, 365},
				{503, 372},
				{486, 365},
				{500, 354}
		},
		["LEVEL6_TARGET_pos"] = {511,480},
		["outside_entry_pos"] = {5994,7563}, --??????? ??? ?
		["YAK_pos"] = {376, 397} -- ?? ??
		
		}
	end
	function is_flamed(idx) -- ???? ??? ?? 
		return idx >= 351 * 10000 and idx < (351 + 1) *10000
	end
	function make_dungeon() -- ?? ???
		local setting = flame_dungeon.setting()
		d.new_jump_party (351, setting.floor1_entry.x + setting.base.x  , setting.floor1_entry.y + setting.base.y )
		-- d.spawn_mob_ac_dir(20385, setting.DUNGEON_MAN_pos[1], setting.DUNGEON_MAN_pos[2],0)
		-- d.spawn_mob(YAK,setting.YAK_pos[1],setting.YAK_pos[2])
		d.regen_file("data/dungeon/flame_dungeon/npc.txt")
		d.setf("level",0)
		for i=1,6 do
			d.set_unique("door"..i, d.spawn_mob_ac_dir(20387, setting.doors_pos[1], setting.doors_pos[2],setting.doors_dir))
		end
		for i=1,6 do
			d.set_unique("idoor"..i, d.spawn_mob_ac_dir(20388, setting.idoors_pos[1], setting.idoors_pos[2],setting.idoors_dir))
		end
		d.setf("clear_count",0)
		d.setf("started",0)
		d.setf("dungeon_enter",0) -- ????? ?????? // ??? : 0 ?? : 1 // ??? ??????? ?? ??
	end	
	function go_boss() -- ??? ?? 
		local setting = flame_dungeon.setting()
		if pc.get_level() < 95 then --????
            -- syschat(gameforge.flame_dungeon._580_notice)
            say(gameforge.flame_dungeon._580_notice)
            return
		else
				-- say_title(gameforge.flame_dungeon._010_say)
                say(gameforge.flame_dungeon._010_say)
				local warp = select(gameforge.flame_dungeon._020_select,gameforge.flame_dungeon._030_select)
				if warp == 1 then
					d.setf("level",17)
					d.jump_all(setting.bossroom_entry_pos[1],setting.bossroom_entry_pos[2])
					d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_fild_boss.txt")
				--	d.spawn_mob(20385,setting.DUNGEON_MAN_bpos[1],setting.DUNGEON_MAN_bpos[2])
					d.spawn_mob(6091,setting.boss_pos[1],setting.boss_pos[2])
				end
		end
	end
	function level_clear() -- ?? ???, ?????, ?????
		d.setf("level",0)
		d.clear_regen()
		d.purge_area(750000,620000,817400,689400) -- ??? -- d.purge() ????
	end
	function clear_timer(inx) -- ??? ????
		clear_server_timer ("flame_dungeon_0m_left_timer", inx)
		clear_server_timer ("flame_dungeon_1m_left_timer", inx)
		clear_server_timer ("flame_dungeon_5m_left_timer", inx)
		clear_server_timer ("flame_dungeon_10m_left_timer", inx)
		clear_server_timer ("flame_dungeon_15m_left_timer", inx)
		clear_server_timer ("flame_dungeon_30m_left_timer", inx)
		clear_server_timer ("flame_dungeon_45m_left_timer", inx)
		clear_server_timer ("killed_A_1", inx)
		clear_server_timer ("killed_A_2", inx)
		clear_server_timer ("flame_dungeon_ticket_remove", inx)	
	end
	
		when login begin
			local idx = pc.get_map_index()
			local setting = flame_dungeon.setting()
			if idx == 351 then
				pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62)
			elseif flame_dungeon.is_flamed(idx) then -- ?? ??, ??? ?? ??
			------------------------------------------------------------------------------------------------------------------------------------------------------
			--??? ??? ???? ???? ???? ?????? ?? ?? ??? ????. ???? ??? ?? ???? ???? ?? ?? ??? ??? ??.
			--???? ???? ?? ?? ?? ??? ??? ??, ???? ??? ??? ????? ?? ??? ????? ???? ??? ??? ??? ??.
			------------------------------------------------------------------------------------------------------------------------------------------------------
				-- pc.set_warp_location(0, 0 , 0) --???? ?? ???? ??? ?? ??
				pc.set_warp_location(62, setting.outside_entry_pos[1] , setting.outside_entry_pos[2]) -- ?? ??? ? ??? ????
				local ticketGroup = {30189, 1, 71130, 1}
				if d.getf("dungeon_enter") == 0 then -- ???? ???
					local canPass = false
					for i=1, table.getn(ticketGroup),2 do 
						if pc.count_item(ticketGroup) >= ticketGroup[i+1] then
							canPass = true
							break
						end
					end

					if get_global_time() - pc.getf("flame_dungeon","exit_time") < 30 * 60 then -- ??????? ????
						d.notice(gameforge.flame_dungeon._050_notice)
						say(gameforge.flame_dungeon._060_say)
						timer("flame_dungeon_warp_timer", 5)
					elseif not canPass then
						d.notice(gameforge.flame_dungeon._070_notice)
						say(gameforge.flame_dungeon._080_say)
						timer("flame_dungeon_warp_timer", 5)
					elseif pc.get_level() < 95 then
						d.notice(gameforge.flame_dungeon._090_notice)
						say(gameforge.flame_dungeon._100_say)
						timer("flame_dungeon_warp_timer", 5)
					end
				elseif pc.getf("flame_dungeon","ticket_delete") == 0 then -- ????? ??? ???????
					
					for i=1, table.getn(ticketGroup),2 do 
						if pc.count_item(ticketGroup) >= ticketGroup[i+1] then
							pc.remove_item(ticketGroup, ticketGroup[i+1])
							break
						end
					end
					pc.setf("flame_dungeon","ticket_delete",1)
				end
			else
				pc.setf("flame_dungeon","ticket_delete",0)
			end
		end
		when flame_dungeon_warp_timer.timer begin
			local setting = flame_dungeon.setting()
			pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62)
		end
		
		when 20350.chat.gameforge.flame_dungeon._110_npcChat begin
		
			local setting = flame_dungeon.setting()
			if party.is_party() then
				-- ?? ?? ?? ?? ??? ?????
				local party_check = 0
				if d.find(party.getf("dungeon_index")) then
					party_check = (d.getf_from_map_index("party_leader_pid", party.getf("dungeon_index")) == party.get_leader_pid())
				end
				
				if d.find(party.getf("dungeon_index")) and party_check then
					if get_global_time() - pc.getf("flame_dungeon","exit_time") < 5 * 60 then -- ?? ?? 5? ??
						local dungeon_level = d.getf_from_map_index("level", party.getf("dungeon_index"))
						local setting = flame_dungeon.setting()
						if dungeon_level == 17 then -- ??
							d.new_jump_party (351, setting.floor1_entry.x + setting.base.x  , setting.floor1_entry.y + setting.base.y )
						else
							d.new_jump_party (351, setting.floor1_entry.x + setting.base.x  , setting.floor1_entry.y + setting.base.y )
						end
					else -- 5? ???? ? ?? ??
						say_title(mob_name(20350))
                        say(gameforge.flame_dungeon._590_say)
					end
				else
					local pids = {party.get_member_pids()}
					local noTicketMembers = {}
					local notEnoughLevelMembers = {}
					local ticketCheck = true
					local levelCheck = true
					local ticketGroup = {30189, 1, 71130, 1}
					for i, pid in next, pids, nil do
						q.begin_other_pc_block(pid)
						local canPass = false
						for idx=1, table.getn(ticketGroup),2 do 
							if pc.count_item(ticketGroup[idx]) >= ticketGroup[idx+1] then
								canPass = true
								break
							end
						end
						
						if not canPass then
							table.insert(noTicketMembers, pc.get_name())
							ticketCheck = false
						end
						if pc.level < 95 then
							table.insert(notEnoughLevelMembers, pc.get_name())
							levelCheck = false
						end
						q.end_other_pc_block()
					end

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

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

					if party.is_leader() then
						addimage ( 5 , 10 , "portile_iadului.tga" )
						say("")
						say("")
						say("")
						say("")
						say(gameforge.flame_dungeon._120_say)
						local warp = select(gameforge.flame_dungeon._130_select,gameforge.flame_dungeon._140_select)
						if warp == 1 then
							if party.is_map_member_flag_lt("exit_time", get_global_time() - 30 * 60 ) then
								flame_dungeon.make_dungeon()
							else
								--say("test : ???? ?? ????? ??? ?????.")
								say(gameforge.flame_dungeon._600_say)
							end
						end
						
						party.setf("flame_dungeon_boss_kill_count", 0)
						
					else
						addimage ( 5 , 10 , "portile_iadului.tga" )
						say("")
						say("")
						say("")
						say("")
						say(gameforge.flame_dungeon._150_say)
					end
				end
			else
				say(gameforge.flame_dungeon._160_say)
			end
		end
		-- when 20350.chat."Test : ?????" with is_test_server() begin -- ????
			-- local setting = flame_dungeon.setting()
			-- pc.setf("flame_dungeon","fdRtest",1)
			-- pc.warp( setting.dungeon_entry_pos[1]*100, setting.dungeon_entry_pos[2]*100, 351)
		-- end
		
		
		when 20350.chat."TEST : Init time limit init" with is_test_server() begin -- ????
			pc.setf("flame_dungeon","exit_time",get_global_time()-1800)
			say("Done")
		end
		-- when 20385.chat."Test : ?? ??" with is_test_server() begin -- ????
			-- say("?? ??? : "..d.count_monster())
			-- say("level : "..d.getf("level"))
			-- say("Dmap index : "..d.get_map_index())
			-- say("Pmap index : "..pc.get_map_index())
			-- say("access limit : "..pc.getf("flame_dungeon","exit_time"))
			-- say("global time : "..get_global_time())
			-- if flame_dungeon.is_flamed(d.get_map_index()) then
				-- say("in dungeon") -- is_flamed ?? ??
			-- end
			-- if d.is_unique_dead("stone1") then
				-- say("stone1 is dead")
			-- else
				-- say("stone1 is not dead")
			-- end
		-- end
		-- when 20385.chat."????" begin -- ????
			-- say("??? ???")
			-- flame_dungeon.clear_timer(d.get_map_index())
			-- flame_dungeon.make_dungeon()
		-- end
		when 20385.chat."Test : Boss Room" with is_test_server() begin -- ????
			flame_dungeon.go_boss()
		end
		
		-- < ?? ?? ???>
		-- when 20385.chat."???" begin -- ???? ??? ?? ? ?? ???
			-- local setting = flame_dungeon.setting()
			-- say("??? ????????")
			-- local warp = select("??","??")
			-- if warp == 1 then
				-- pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62)
			-- end
		-- end
		when flame_dungeon_45m_left_timer.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice(string.format(gameforge.flame_dungeon._180_notice, 45))
				d.notice(gameforge.flame_dungeon._170_notice)
				server_timer('flame_dungeon_30m_left_timer', 15*60, get_server_timer_arg())
			end
		end
		when flame_dungeon_30m_left_timer.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice(string.format(gameforge.flame_dungeon._180_notice, 30))
				d.notice(gameforge.flame_dungeon._170_notice)
				server_timer('flame_dungeon_15m_left_timer', 15*60, get_server_timer_arg())
			end
		end
		when flame_dungeon_15m_left_timer.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice(string.format(gameforge.flame_dungeon._180_notice, 15))
				d.notice(gameforge.flame_dungeon._170_notice)
				server_timer('flame_dungeon_5m_left_timer', 10*60, get_server_timer_arg())
			end
		end
		when flame_dungeon_5m_left_timer.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice(string.format(gameforge.flame_dungeon._180_notice, 5))
				d.notice(gameforge.flame_dungeon._170_notice)
				server_timer('flame_dungeon_1m_left_timer', 4*60, get_server_timer_arg())
			end
		end
		when flame_dungeon_1m_left_timer.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice(string.format(gameforge.flame_dungeon._180_notice, 1))
				d.notice(gameforge.flame_dungeon._170_notice)
				server_timer ("flame_dungeon_0m_left_timer", 60, get_server_timer_arg())
			end
		end
		when flame_dungeon_0m_left_timer.server_timer begin
			local setting = flame_dungeon.setting()
			if d.select(get_server_timer_arg()) then		
				d.notice(gameforge.flame_dungeon._190_notice)
				d.notice(gameforge.flame_dungeon._200_notice)
				server_timer("dungeon_end_timer",10,d.get_map_index())	
			end
		end	


		-- <<<< ?? ??>>>> --
		when 20385.chat.gameforge.flame_dungeon._210_npcChat with npc.lock() begin -- '0x'? x?? ?? ??? ?? ? ?? ?? , '1x'? x?? ?? ??? ???
			local setting = flame_dungeon.setting()
			if d.getf("started") == 0 then
				say(gameforge.flame_dungeon._230_say)
				say(gameforge.flame_dungeon._240_say)
				wait()
				d.setf("started",1)
				-- ???? ?????? ??? ??? exit timer? ???? ???? ????? ????? ????? ?
				server_timer ("flame_dungeon_45m_left_timer",15*60, d.get_map_index())
				d.notice(gameforge.flame_dungeon._250_notice)
				d.notice(gameforge.flame_dungeon._170_notice)
				
				-- ??? ??? ??
				-- ?? ?? ??? ?? ??? ???? ??? ???? ??? ??? ????.
				local pids = {party.get_member_pids()}
				local ticketGroup = {30189, 1, 71130, 1}
				for i, pid in next, pids, nil do
					q.begin_other_pc_block(pid)
					local canPass = false
					for idx=1, table.getn(ticketGroup),2 do 
						if pc.count_item(ticketGroup[idx]) >= ticketGroup[idx+1] then
							canPass = true
							pc.remove_item(ticketGroup[idx], ticketGroup[idx+1])
							break
						end
					end
					
					if canPass == false then
						pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62)
					end
					q.end_other_pc_block()
				end
				d.setqf2("flame_dungeon","ticket_delete",1)
				d.setf("dungeon_enter",1)
				
				-- ??? ??? ??? ?? ??? ????.
				party.setf("dungeon_index", d.get_map_index())
				d.setf("party_leader_pid", party.get_leader_pid())
			end
			if d.getf("level") < 7 then --???? ???
				if d.getf("clear_count") == 6 then -- ? ??? ??? ???
					d.setf("level",7)
				else
					local rand = number(1,6)--???? ????? ?? ???? ?? ?? ?????? ???
					local setlev = 0
					d.setf("level",7) -- ?? ?? ??? ?? ??? ?????? ??? ????? ????
					for i=1,50 do
						setlev = setlev + 1
						if setlev > 6 then
							setlev = 1
						end
						if not d.is_unique_dead("door"..setlev) then
							rand = rand - 1
							if rand == 0 then
								d.setf("level",setlev)
								d.setf("clear_count",d.getf("clear_count")+1)
								break
							end	
						end
					end
				end
			end
				if d.getf("level") == 1 then
					say(gameforge.flame_dungeon._260_say)
					d.notice(gameforge.flame_dungeon._260_say)
					d.kill_unique("door1")
					d.kill_unique("idoor1")
					d.setf("level",11)
					d.regen_file ("data/dungeon/flame_dungeon/".."fd_a.txt")
						
					server_timer ("killed_A_1", 12, d.get_map_index())
				elseif d.getf("level") == 11 then
					say(gameforge.flame_dungeon._270_say)
					say_title(gameforge.flame_dungeon._280_sayTitle .. d.count_monster())
				elseif d.getf("level") == 2 then
						say(gameforge.flame_dungeon._290_say)
						say(gameforge.flame_dungeon._300_say)
						d.notice(gameforge.flame_dungeon._290_say)
						d.notice(gameforge.flame_dungeon._300_say)
						d.spawn_mob(20386, setting.LEVEL2_STONE_pos[1], setting.LEVEL2_STONE_pos[2]) -- ??? ??
						d.kill_unique("door2")
						d.kill_unique("idoor2")
						d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_b.txt")
						d.setf("level",12)
				elseif d.getf("level") == 12 then
					say(gameforge.flame_dungeon._310_say)
				elseif d.getf("level") == 3 then
					say(gameforge.flame_dungeon._260_say)
					d.notice(gameforge.flame_dungeon._260_say)
					d.kill_unique("door3")
					d.kill_unique("idoor3")
					d.setf("level",13)
					d.regen_file ("data/dungeon/flame_dungeon/".."fd_c.txt")
					server_timer ("killed_A_1", 12, d.get_map_index())
				elseif d.getf("level") == 13 then
					say(gameforge.flame_dungeon._270_say)
					say_title(gameforge.flame_dungeon._280_sayTitle..d.count_monster())
				elseif d.getf("level") == 4 then -- 474 178
					say(gameforge.flame_dungeon._320_notice)
					d.notice(gameforge.flame_dungeon._320_notice)
					d.setf("level",14)
					d.kill_unique("door4")
					d.kill_unique("idoor4")
					d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_d.txt")
					d.spawn_mob(6051,setting.LEVEL4_TARGET_pos[1],setting.LEVEL4_TARGET_pos[2] ) -- ????? ??
				elseif d.getf("level") == 14 then
					say(gameforge.flame_dungeon._330_say)
					say(gameforge.flame_dungeon._340_say)
				elseif d.getf("level") == 5 then -- 510 355
					say(gameforge.flame_dungeon._350_say)
					say(gameforge.flame_dungeon._360_say)
					d.notice(gameforge.flame_dungeon._350_say)
					d.notice(gameforge.flame_dungeon._360_say)
					d.kill_unique("door5")
					d.kill_unique("idoor5")
					d.setf("level",15)
					d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
					local vis = { 0,0,0,0,0,0,0}
					for i=1,7 do
						vis = 0
					end
					for i = 1, 7 do -- ???? ???
						local ran = number(1,7)
						local st = 0
						for j = 1, 50 do
							st = st + 1
							if st > 7 then
								st = 1
							end
							if vis[st] == 0 then
								ran = ran - 1
								if ran == 0 then
									vis[st] = 1
									d.set_unique("stone5_"..st, d.spawn_mob(20386, setting.LEVEL5_STONE_pos[i][1], setting.LEVEL5_STONE_pos[i][2]))
									break
								end
							end
						end
					end  
				elseif d.getf("level") == 15 then
					say(gameforge.flame_dungeon._370_say)
				elseif d.getf("level") == 6 then -- 507 490
					say(gameforge.flame_dungeon._380_say) 
					d.notice(gameforge.flame_dungeon._380_say)
					d.setf("level",16)
					d.kill_unique("door6")
					d.kill_unique("idoor6")
					d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_f.txt")
					d.spawn_mob(8057, setting.LEVEL6_TARGET_pos[1],setting.LEVEL6_TARGET_pos[2]) -- ?????? ??
				elseif d.getf("level") == 16 then
					say(gameforge.flame_dungeon._390_say)
					say(gameforge.flame_dungeon._400_say)
				elseif d.getf("level") == 7 then
					-- setskin(NOWINDOW)
                    flame_dungeon.go_boss()
				else
					say(gameforge.flame_dungeon._410_say)
				end
			npc.unlock()		
		end
	


		when dungeon_end_timer.server_timer begin -- ?? ??? (??? ????)
			local setting = flame_dungeon.setting()
			if d.select(get_server_timer_arg()) then
				flame_dungeon.clear_timer(d.get_map_index())		
				d.set_warp_location(62, setting.outside_entry_pos[1] , setting.outside_entry_pos[2]) 
				d.exit_all()
				d.setf("party_leader_pid", 0)
			end
		end

		when killed_A_1.server_timer begin -- ??? ???1 (level1,level3)
			if d.select(get_server_timer_arg()) then
				if d.count_monster() <= 0 then -- 1?? ??? ???
					if d.getf("level") == 11 then
						d.notice(gameforge.flame_dungeon._420_notice)
						d.notice(gameforge.flame_dungeon._430_notice)
					else
						d.notice(gameforge.flame_dungeon._420_notice)
						d.notice(gameforge.flame_dungeon._430_notice)
					end
					d.setf("level",0)
				else 
					server_timer ("killed_A_2", 6, get_server_timer_arg())
				end
			end
		end
		when killed_A_2.server_timer begin -- ??? ???2 (1? 2 ?????? ???)
			if d.select(get_server_timer_arg()) then
				if d.count_monster() <= 0 then -- 1?? ??? ???
					if d.getf("level") == 11 then
						d.notice(gameforge.flame_dungeon._420_notice)
						d.notice(gameforge.flame_dungeon._430_notice)
					else
						d.notice(gameforge.flame_dungeon._420_notice)
						d.notice(gameforge.flame_dungeon._430_notice)
					end
					d.setf("level",0)
				else 
					server_timer ("killed_A_1", 6, get_server_timer_arg())
				end
			end
		end

		when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 12 begin -- 2?? ??? ?? ??
			local i = number(1, 100) -- 100?? 1 ??? ????
			if i == 1 then
				game.drop_item (30329, 1)
			end
		end
		when 20386.take with flame_dungeon.is_flamed(pc.get_map_index()) and item.vnum == 30329 and d.getf("level") == 12 begin -- 2?? ?? ????
			local i = number(1, 5) -- 5?? 1 ??? ?? ??
			if i == 1 then
				npc.purge()
				item.remove()
				d.notice(gameforge.flame_dungeon._440_notice)
				d.notice(gameforge.flame_dungeon._430_notice)
				flame_dungeon.level_clear()
			else
				item.remove()
				say(gameforge.flame_dungeon._450_say)
			end
		end

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

		when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 15 begin -- 5?? ??? ?? ??
			local i = number(1, 30) -- 30?? 1 ??? ????
			if i == 1 then
				game.drop_item (30330, 1)
			end
		end
		when 20386.take with flame_dungeon.is_flamed(d.get_map_index()) and item.vnum == 30330 and d.getf("level") == 15 begin -- 5?? ???? ????
			local setting = flame_dungeon.setting()
			if npc.get_vid() == d.get_unique_vid("stone5_1") then -- ??? ?? ????? ? ?? ????? ???? ????
				npc.purge()
				item.remove()
				say(gameforge.flame_dungeon._470_say)
				d.setf("stonekill",2) -- 2? ?? ???
				if d.count_monster() < 100 then
					d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
				end
			elseif npc.get_vid() == d.get_unique_vid("stone5_2") then 
				if d.getf("stonekill") == 2 then -- 2??? ?? ??? 2???? ??? ??? ?
					npc.purge()
					item.remove()
					say(gameforge.flame_dungeon._480_say)
					d.setf("stonekill",3)
					if d.count_monster() < 100 then
						d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
					end
				else
					item.remove()
					say(gameforge.flame_dungeon._490_say)
			--		say("2?")
				end
			elseif npc.get_vid() == d.get_unique_vid("stone5_3") then
				if d.getf("stonekill") == 3 then
					npc.purge()
					item.remove()
					say(gameforge.flame_dungeon._500_say)
					d.setf("stonekill",4)
					if d.count_monster() < 100 then
						d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
					end
				else
					item.remove()
					say(gameforge.flame_dungeon._490_say)
			--		say("3?")
				end
			elseif npc.get_vid() == d.get_unique_vid("stone5_4") then
				if d.getf("stonekill") == 4 then
					npc.purge()
					item.remove()
					say(gameforge.flame_dungeon._510_say)
					d.setf("stonekill",5)
					if d.count_monster() < 100 then
						d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
					end
				else
					item.remove()
					say(gameforge.flame_dungeon._490_say)
				--	say("4?")
				end
			elseif npc.get_vid() == d.get_unique_vid("stone5_5") then
				if d.getf("stonekill") == 5 then
					npc.purge()
					item.remove()
					say(gameforge.flame_dungeon._520_say)
					d.setf("stonekill",6)
					if d.count_monster() < 100 then
						d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
					end
				else
					item.remove()
					say(gameforge.flame_dungeon._490_say)
			--		say("5?")
				end
			elseif npc.get_vid() == d.get_unique_vid("stone5_6") then
				if d.getf("stonekill") == 6 then
					npc.purge()
					item.remove()
					say(gameforge.flame_dungeon._530_say)
					d.setf("stonekill",7)
					if d.count_monster() < 100 then
						d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
					end
				else
					item.remove()
					say(gameforge.flame_dungeon._490_say)
			--		say("6?")
				end
			else 
				if d.getf("stonekill") == 7 then
					npc.purge()
					item.remove()
					d.notice(gameforge.flame_dungeon._440_notice)
					d.notice(gameforge.flame_dungeon._430_notice)
					flame_dungeon.level_clear()
				else
					item.remove()
					say(gameforge.flame_dungeon._490_say)
			--		say("7?")
				end
			end
		end

		when 8057.kill with flame_dungeon.is_flamed(d.get_map_index()) and d.getf("level") ==16 begin -- ??? ???? ?
			d.notice(gameforge.flame_dungeon._540_notice)
			d.notice(gameforge.flame_dungeon._430_notice)
			flame_dungeon.level_clear()
		end

		when 6091.kill with pc.in_dungeon() and flame_dungeon.is_flamed(d.get_map_index()) and d.getf("level") ==17 begin -- ?? ????
			d.notice(gameforge.flame_dungeon._550_notice)
			d.notice(gameforge.flame_dungeon._560_notice)
			--notice_all (""..pc.get_name().." l-a invins pe Razador! Felicitari !")
			server_timer("dungeon_end_timer", 60,d.get_map_index())	
			flame_dungeon.level_clear()
			
			-- ??? ?, ??? ?? ???(104?, 105? ???) ???? ??? ??? ??? ??? ???.
			if party.is_party() then
				party.setf("flame_dungeon_boss_kill_count", 1)
			end
			
		end
	end
end
Avatar utilizator
Inuyasha
Utilizator interzis !

Utilizator interzis !
Mesaje: 1087
Membru din: 17 Feb 2017, 22:54
Server: Metin2 Ro
Regat: Chunjo
Aprecieri: 12  
Mulţumiri: 182  
 Contact:
Medalii

incearca questul asta
„Vrei să trăiești cum se cuvine? Învață mai întâi să mori.” — Confucius
Afișează semnătura
Avatar utilizator
Cobra94
Nivel 1

Nivel 1
Mesaje: 144
Membru din: 29 Ian 2019, 22:14
Server: Metin2Romania
Regat: Chunjo
Aprecieri: 3  
Mulţumiri: 159  
Medalii

AquaMagiX scrie:*Problemă:La nivelul cu stalpii la care trebuie sa pui cheia
Tipologie server:PVM
*Resursă folosită:-
*ServerFiles utilizat: Happiness
*Syserr:-
Poză:-
*Detalii suplimentare:Cand ajung la niveul 3 cred ca este , dau sa pun " Piatra Maat " pe stalp, si am stat o ora, pana cand ma scos de acolo incercand sa pun piatra pe stalp, imi spune mereu ca este piatra gresita

quest flame_dungeon begin
	state start begin
		--when 20350.chat."Nu ai permis de trecere?" with pc.get_level() >= 95 and pc.count_item(30189) < 1 begin
		--	addimage ( 5 , 10 , "portile_iadului.tga" )
		--	say("")
		--	say("")
		--	say("")
		--	say("")
		--	say("Din intamplare am eu un permis")
		--	say("dar te va costa ceva fiindca")
		--	say("permisul acesta este cam rar...")
		--	say("Costa 10kk (10.000.000 Yang)")
		--	say("")
		--	say("Doresti sa cumperi unul?")
		--	local cump = select("Da", "Nu")
		--	if cump == 1 then
		--	if pc.get_gold() >= 10000000 then
		--		pc.give_item2(30189, 1)
		--		pc.changemoney(-10000000)
		--	else
		--		say("Ce!? nu ai destul Yang?")
		--		say("pleaca de aici trantorule")
		--		say("nu poti cumpara ceva fara bani!")
		--		end
		--	end
		--end
			
		when 20350.chat."<GM> Elimina timp" with pc.is_gm() begin
			say("Exygo ti-a scos timpu'")
			pc.setf("flame_dungeon","exit_time",1)
		end
	
	function setting()
		return 
		{
		["base"]={["x"] = 7424  , ["y"]= 6144 ,},
		["floor1_entry"] = {["x"] = 341, ["y"] = 589,},
		["bossroom_entry_pos"] = {8109,6867},
		["boss_pos"] = {686,637},
		["doors_pos"] = {
			{320,394},
			{293,359},
			{333,321},
			{378,320},
			{400,355},
			{394,401}
		},
		["idoors_pos"] = {
			{268,447},
			{234,359},
			{300,264},
			{454,217},
			{470,355},
			{467,469}
		},
		["doors_dir"] = {135,90,210,152,90,223},
		["idoors_dir"] = {135,90,210,135,90,239},
		["dungeon_entry_pos"] = {7762, 6739},-- ??? ?? ???? ?
		["DUNGEON_MAN_bpos"] = {690,722},
		["DUNGEON_MAN_pos"] = {354,362},
		["LEVEL2_STONE_pos"] = {195,352},
		["LEVEL4_TARGET_pos"] = {470,175},
		["LEVEL5_STONE_pos"] = {
				{486, 345},
				{511, 336},
				{525, 349},
				{521, 365},
				{503, 372},
				{486, 365},
				{500, 354}
		},
		["LEVEL6_TARGET_pos"] = {511,480},
		["outside_entry_pos"] = {5994,7563}, --??????? ??? ?
		["YAK_pos"] = {376, 397} -- ?? ??
		
		}
	end
	function is_flamed(idx) -- ???? ??? ?? 
		return idx >= 351 * 10000 and idx < (351 + 1) *10000
	end
	function make_dungeon() -- ?? ???
		local setting = flame_dungeon.setting()
		d.new_jump_party (351, setting.floor1_entry.x + setting.base.x  , setting.floor1_entry.y + setting.base.y )
		-- d.spawn_mob_ac_dir(20385, setting.DUNGEON_MAN_pos[1], setting.DUNGEON_MAN_pos[2],0)
		-- d.spawn_mob(YAK,setting.YAK_pos[1],setting.YAK_pos[2])
		d.regen_file("data/dungeon/flame_dungeon/npc.txt")
		d.setf("level",0)
		for i=1,6 do
			d.set_unique("door"..i, d.spawn_mob_ac_dir(20387, setting.doors_pos[1], setting.doors_pos[2],setting.doors_dir))
		end
		for i=1,6 do
			d.set_unique("idoor"..i, d.spawn_mob_ac_dir(20388, setting.idoors_pos[1], setting.idoors_pos[2],setting.idoors_dir))
		end
		d.setf("clear_count",0)
		d.setf("started",0)
		d.setf("dungeon_enter",0) -- ????? ?????? // ??? : 0 ?? : 1 // ??? ??????? ?? ??
	end	
	function go_boss() -- ??? ?? 
		local setting = flame_dungeon.setting()
		if pc.get_level() < 95 then --????
            -- syschat(gameforge.flame_dungeon._580_notice)
            say(gameforge.flame_dungeon._580_notice)
            return
		else
				-- say_title(gameforge.flame_dungeon._010_say)
                say(gameforge.flame_dungeon._010_say)
				local warp = select(gameforge.flame_dungeon._020_select,gameforge.flame_dungeon._030_select)
				if warp == 1 then
					d.setf("level",17)
					d.jump_all(setting.bossroom_entry_pos[1],setting.bossroom_entry_pos[2])
					d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_fild_boss.txt")
				--	d.spawn_mob(20385,setting.DUNGEON_MAN_bpos[1],setting.DUNGEON_MAN_bpos[2])
					d.spawn_mob(6091,setting.boss_pos[1],setting.boss_pos[2])
				end
		end
	end
	function level_clear() -- ?? ???, ?????, ?????
		d.setf("level",0)
		d.clear_regen()
		d.purge_area(750000,620000,817400,689400) -- ??? -- d.purge() ????
	end
	function clear_timer(inx) -- ??? ????
		clear_server_timer ("flame_dungeon_0m_left_timer", inx)
		clear_server_timer ("flame_dungeon_1m_left_timer", inx)
		clear_server_timer ("flame_dungeon_5m_left_timer", inx)
		clear_server_timer ("flame_dungeon_10m_left_timer", inx)
		clear_server_timer ("flame_dungeon_15m_left_timer", inx)
		clear_server_timer ("flame_dungeon_30m_left_timer", inx)
		clear_server_timer ("flame_dungeon_45m_left_timer", inx)
		clear_server_timer ("killed_A_1", inx)
		clear_server_timer ("killed_A_2", inx)
		clear_server_timer ("flame_dungeon_ticket_remove", inx)	
	end
	
		when login begin
			local idx = pc.get_map_index()
			local setting = flame_dungeon.setting()
			if idx == 351 then
				pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62)
			elseif flame_dungeon.is_flamed(idx) then -- ?? ??, ??? ?? ??
			------------------------------------------------------------------------------------------------------------------------------------------------------
			--??? ??? ???? ???? ???? ?????? ?? ?? ??? ????. ???? ??? ?? ???? ???? ?? ?? ??? ??? ??.
			--???? ???? ?? ?? ?? ??? ??? ??, ???? ??? ??? ????? ?? ??? ????? ???? ??? ??? ??? ??.
			------------------------------------------------------------------------------------------------------------------------------------------------------
				-- pc.set_warp_location(0, 0 , 0) --???? ?? ???? ??? ?? ??
				pc.set_warp_location(62, setting.outside_entry_pos[1] , setting.outside_entry_pos[2]) -- ?? ??? ? ??? ????
				local ticketGroup = {30189, 1, 71130, 1}
				if d.getf("dungeon_enter") == 0 then -- ???? ???
					local canPass = false
					for i=1, table.getn(ticketGroup),2 do 
						if pc.count_item(ticketGroup) >= ticketGroup[i+1] then
							canPass = true
							break
						end
					end

					if get_global_time() - pc.getf("flame_dungeon","exit_time") < 30 * 60 then -- ??????? ????
						d.notice(gameforge.flame_dungeon._050_notice)
						say(gameforge.flame_dungeon._060_say)
						timer("flame_dungeon_warp_timer", 5)
					elseif not canPass then
						d.notice(gameforge.flame_dungeon._070_notice)
						say(gameforge.flame_dungeon._080_say)
						timer("flame_dungeon_warp_timer", 5)
					elseif pc.get_level() < 95 then
						d.notice(gameforge.flame_dungeon._090_notice)
						say(gameforge.flame_dungeon._100_say)
						timer("flame_dungeon_warp_timer", 5)
					end
				elseif pc.getf("flame_dungeon","ticket_delete") == 0 then -- ????? ??? ???????
					
					for i=1, table.getn(ticketGroup),2 do 
						if pc.count_item(ticketGroup) >= ticketGroup[i+1] then
							pc.remove_item(ticketGroup, ticketGroup[i+1])
							break
						end
					end
					pc.setf("flame_dungeon","ticket_delete",1)
				end
			else
				pc.setf("flame_dungeon","ticket_delete",0)
			end
		end
		when flame_dungeon_warp_timer.timer begin
			local setting = flame_dungeon.setting()
			pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62)
		end
		
		when 20350.chat.gameforge.flame_dungeon._110_npcChat begin
		
			local setting = flame_dungeon.setting()
			if party.is_party() then
				-- ?? ?? ?? ?? ??? ?????
				local party_check = 0
				if d.find(party.getf("dungeon_index")) then
					party_check = (d.getf_from_map_index("party_leader_pid", party.getf("dungeon_index")) == party.get_leader_pid())
				end
				
				if d.find(party.getf("dungeon_index")) and party_check then
					if get_global_time() - pc.getf("flame_dungeon","exit_time") < 5 * 60 then -- ?? ?? 5? ??
						local dungeon_level = d.getf_from_map_index("level", party.getf("dungeon_index"))
						local setting = flame_dungeon.setting()
						if dungeon_level == 17 then -- ??
							d.new_jump_party (351, setting.floor1_entry.x + setting.base.x  , setting.floor1_entry.y + setting.base.y )
						else
							d.new_jump_party (351, setting.floor1_entry.x + setting.base.x  , setting.floor1_entry.y + setting.base.y )
						end
					else -- 5? ???? ? ?? ??
						say_title(mob_name(20350))
                        say(gameforge.flame_dungeon._590_say)
					end
				else
					local pids = {party.get_member_pids()}
					local noTicketMembers = {}
					local notEnoughLevelMembers = {}
					local ticketCheck = true
					local levelCheck = true
					local ticketGroup = {30189, 1, 71130, 1}
					for i, pid in next, pids, nil do
						q.begin_other_pc_block(pid)
						local canPass = false
						for idx=1, table.getn(ticketGroup),2 do 
							if pc.count_item(ticketGroup[idx]) >= ticketGroup[idx+1] then
								canPass = true
								break
							end
						end
						
						if not canPass then
							table.insert(noTicketMembers, pc.get_name())
							ticketCheck = false
						end
						if pc.level < 95 then
							table.insert(notEnoughLevelMembers, pc.get_name())
							levelCheck = false
						end
						q.end_other_pc_block()
					end

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

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

					if party.is_leader() then
						addimage ( 5 , 10 , "portile_iadului.tga" )
						say("")
						say("")
						say("")
						say("")
						say(gameforge.flame_dungeon._120_say)
						local warp = select(gameforge.flame_dungeon._130_select,gameforge.flame_dungeon._140_select)
						if warp == 1 then
							if party.is_map_member_flag_lt("exit_time", get_global_time() - 30 * 60 ) then
								flame_dungeon.make_dungeon()
							else
								--say("test : ???? ?? ????? ??? ?????.")
								say(gameforge.flame_dungeon._600_say)
							end
						end
						
						party.setf("flame_dungeon_boss_kill_count", 0)
						
					else
						addimage ( 5 , 10 , "portile_iadului.tga" )
						say("")
						say("")
						say("")
						say("")
						say(gameforge.flame_dungeon._150_say)
					end
				end
			else
				say(gameforge.flame_dungeon._160_say)
			end
		end
		-- when 20350.chat."Test : ?????" with is_test_server() begin -- ????
			-- local setting = flame_dungeon.setting()
			-- pc.setf("flame_dungeon","fdRtest",1)
			-- pc.warp( setting.dungeon_entry_pos[1]*100, setting.dungeon_entry_pos[2]*100, 351)
		-- end
		
		
		when 20350.chat."TEST : Init time limit init" with is_test_server() begin -- ????
			pc.setf("flame_dungeon","exit_time",get_global_time()-1800)
			say("Done")
		end
		-- when 20385.chat."Test : ?? ??" with is_test_server() begin -- ????
			-- say("?? ??? : "..d.count_monster())
			-- say("level : "..d.getf("level"))
			-- say("Dmap index : "..d.get_map_index())
			-- say("Pmap index : "..pc.get_map_index())
			-- say("access limit : "..pc.getf("flame_dungeon","exit_time"))
			-- say("global time : "..get_global_time())
			-- if flame_dungeon.is_flamed(d.get_map_index()) then
				-- say("in dungeon") -- is_flamed ?? ??
			-- end
			-- if d.is_unique_dead("stone1") then
				-- say("stone1 is dead")
			-- else
				-- say("stone1 is not dead")
			-- end
		-- end
		-- when 20385.chat."????" begin -- ????
			-- say("??? ???")
			-- flame_dungeon.clear_timer(d.get_map_index())
			-- flame_dungeon.make_dungeon()
		-- end
		when 20385.chat."Test : Boss Room" with is_test_server() begin -- ????
			flame_dungeon.go_boss()
		end
		
		-- < ?? ?? ???>
		-- when 20385.chat."???" begin -- ???? ??? ?? ? ?? ???
			-- local setting = flame_dungeon.setting()
			-- say("??? ????????")
			-- local warp = select("??","??")
			-- if warp == 1 then
				-- pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62)
			-- end
		-- end
		when flame_dungeon_45m_left_timer.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice(string.format(gameforge.flame_dungeon._180_notice, 45))
				d.notice(gameforge.flame_dungeon._170_notice)
				server_timer('flame_dungeon_30m_left_timer', 15*60, get_server_timer_arg())
			end
		end
		when flame_dungeon_30m_left_timer.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice(string.format(gameforge.flame_dungeon._180_notice, 30))
				d.notice(gameforge.flame_dungeon._170_notice)
				server_timer('flame_dungeon_15m_left_timer', 15*60, get_server_timer_arg())
			end
		end
		when flame_dungeon_15m_left_timer.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice(string.format(gameforge.flame_dungeon._180_notice, 15))
				d.notice(gameforge.flame_dungeon._170_notice)
				server_timer('flame_dungeon_5m_left_timer', 10*60, get_server_timer_arg())
			end
		end
		when flame_dungeon_5m_left_timer.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice(string.format(gameforge.flame_dungeon._180_notice, 5))
				d.notice(gameforge.flame_dungeon._170_notice)
				server_timer('flame_dungeon_1m_left_timer', 4*60, get_server_timer_arg())
			end
		end
		when flame_dungeon_1m_left_timer.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice(string.format(gameforge.flame_dungeon._180_notice, 1))
				d.notice(gameforge.flame_dungeon._170_notice)
				server_timer ("flame_dungeon_0m_left_timer", 60, get_server_timer_arg())
			end
		end
		when flame_dungeon_0m_left_timer.server_timer begin
			local setting = flame_dungeon.setting()
			if d.select(get_server_timer_arg()) then		
				d.notice(gameforge.flame_dungeon._190_notice)
				d.notice(gameforge.flame_dungeon._200_notice)
				server_timer("dungeon_end_timer",10,d.get_map_index())	
			end
		end	


		-- <<<< ?? ??>>>> --
		when 20385.chat.gameforge.flame_dungeon._210_npcChat with npc.lock() begin -- '0x'? x?? ?? ??? ?? ? ?? ?? , '1x'? x?? ?? ??? ???
			local setting = flame_dungeon.setting()
			if d.getf("started") == 0 then
				say(gameforge.flame_dungeon._230_say)
				say(gameforge.flame_dungeon._240_say)
				wait()
				d.setf("started",1)
				-- ???? ?????? ??? ??? exit timer? ???? ???? ????? ????? ????? ?
				server_timer ("flame_dungeon_45m_left_timer",15*60, d.get_map_index())
				d.notice(gameforge.flame_dungeon._250_notice)
				d.notice(gameforge.flame_dungeon._170_notice)
				
				-- ??? ??? ??
				-- ?? ?? ??? ?? ??? ???? ??? ???? ??? ??? ????.
				local pids = {party.get_member_pids()}
				local ticketGroup = {30189, 1, 71130, 1}
				for i, pid in next, pids, nil do
					q.begin_other_pc_block(pid)
					local canPass = false
					for idx=1, table.getn(ticketGroup),2 do 
						if pc.count_item(ticketGroup[idx]) >= ticketGroup[idx+1] then
							canPass = true
							pc.remove_item(ticketGroup[idx], ticketGroup[idx+1])
							break
						end
					end
					
					if canPass == false then
						pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62)
					end
					q.end_other_pc_block()
				end
				d.setqf2("flame_dungeon","ticket_delete",1)
				d.setf("dungeon_enter",1)
				
				-- ??? ??? ??? ?? ??? ????.
				party.setf("dungeon_index", d.get_map_index())
				d.setf("party_leader_pid", party.get_leader_pid())
			end
			if d.getf("level") < 7 then --???? ???
				if d.getf("clear_count") == 6 then -- ? ??? ??? ???
					d.setf("level",7)
				else
					local rand = number(1,6)--???? ????? ?? ???? ?? ?? ?????? ???
					local setlev = 0
					d.setf("level",7) -- ?? ?? ??? ?? ??? ?????? ??? ????? ????
					for i=1,50 do
						setlev = setlev + 1
						if setlev > 6 then
							setlev = 1
						end
						if not d.is_unique_dead("door"..setlev) then
							rand = rand - 1
							if rand == 0 then
								d.setf("level",setlev)
								d.setf("clear_count",d.getf("clear_count")+1)
								break
							end	
						end
					end
				end
			end
				if d.getf("level") == 1 then
					say(gameforge.flame_dungeon._260_say)
					d.notice(gameforge.flame_dungeon._260_say)
					d.kill_unique("door1")
					d.kill_unique("idoor1")
					d.setf("level",11)
					d.regen_file ("data/dungeon/flame_dungeon/".."fd_a.txt")
						
					server_timer ("killed_A_1", 12, d.get_map_index())
				elseif d.getf("level") == 11 then
					say(gameforge.flame_dungeon._270_say)
					say_title(gameforge.flame_dungeon._280_sayTitle .. d.count_monster())
				elseif d.getf("level") == 2 then
						say(gameforge.flame_dungeon._290_say)
						say(gameforge.flame_dungeon._300_say)
						d.notice(gameforge.flame_dungeon._290_say)
						d.notice(gameforge.flame_dungeon._300_say)
						d.spawn_mob(20386, setting.LEVEL2_STONE_pos[1], setting.LEVEL2_STONE_pos[2]) -- ??? ??
						d.kill_unique("door2")
						d.kill_unique("idoor2")
						d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_b.txt")
						d.setf("level",12)
				elseif d.getf("level") == 12 then
					say(gameforge.flame_dungeon._310_say)
				elseif d.getf("level") == 3 then
					say(gameforge.flame_dungeon._260_say)
					d.notice(gameforge.flame_dungeon._260_say)
					d.kill_unique("door3")
					d.kill_unique("idoor3")
					d.setf("level",13)
					d.regen_file ("data/dungeon/flame_dungeon/".."fd_c.txt")
					server_timer ("killed_A_1", 12, d.get_map_index())
				elseif d.getf("level") == 13 then
					say(gameforge.flame_dungeon._270_say)
					say_title(gameforge.flame_dungeon._280_sayTitle..d.count_monster())
				elseif d.getf("level") == 4 then -- 474 178
					say(gameforge.flame_dungeon._320_notice)
					d.notice(gameforge.flame_dungeon._320_notice)
					d.setf("level",14)
					d.kill_unique("door4")
					d.kill_unique("idoor4")
					d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_d.txt")
					d.spawn_mob(6051,setting.LEVEL4_TARGET_pos[1],setting.LEVEL4_TARGET_pos[2] ) -- ????? ??
				elseif d.getf("level") == 14 then
					say(gameforge.flame_dungeon._330_say)
					say(gameforge.flame_dungeon._340_say)
				elseif d.getf("level") == 5 then -- 510 355
					say(gameforge.flame_dungeon._350_say)
					say(gameforge.flame_dungeon._360_say)
					d.notice(gameforge.flame_dungeon._350_say)
					d.notice(gameforge.flame_dungeon._360_say)
					d.kill_unique("door5")
					d.kill_unique("idoor5")
					d.setf("level",15)
					d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
					local vis = { 0,0,0,0,0,0,0}
					for i=1,7 do
						vis = 0
					end
					for i = 1, 7 do -- ???? ???
						local ran = number(1,7)
						local st = 0
						for j = 1, 50 do
							st = st + 1
							if st > 7 then
								st = 1
							end
							if vis[st] == 0 then
								ran = ran - 1
								if ran == 0 then
									vis[st] = 1
									d.set_unique("stone5_"..st, d.spawn_mob(20386, setting.LEVEL5_STONE_pos[i][1], setting.LEVEL5_STONE_pos[i][2]))
									break
								end
							end
						end
					end  
				elseif d.getf("level") == 15 then
					say(gameforge.flame_dungeon._370_say)
				elseif d.getf("level") == 6 then -- 507 490
					say(gameforge.flame_dungeon._380_say) 
					d.notice(gameforge.flame_dungeon._380_say)
					d.setf("level",16)
					d.kill_unique("door6")
					d.kill_unique("idoor6")
					d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_f.txt")
					d.spawn_mob(8057, setting.LEVEL6_TARGET_pos[1],setting.LEVEL6_TARGET_pos[2]) -- ?????? ??
				elseif d.getf("level") == 16 then
					say(gameforge.flame_dungeon._390_say)
					say(gameforge.flame_dungeon._400_say)
				elseif d.getf("level") == 7 then
					-- setskin(NOWINDOW)
                    flame_dungeon.go_boss()
				else
					say(gameforge.flame_dungeon._410_say)
				end
			npc.unlock()		
		end
	


		when dungeon_end_timer.server_timer begin -- ?? ??? (??? ????)
			local setting = flame_dungeon.setting()
			if d.select(get_server_timer_arg()) then
				flame_dungeon.clear_timer(d.get_map_index())		
				d.set_warp_location(62, setting.outside_entry_pos[1] , setting.outside_entry_pos[2]) 
				d.exit_all()
				d.setf("party_leader_pid", 0)
			end
		end

		when killed_A_1.server_timer begin -- ??? ???1 (level1,level3)
			if d.select(get_server_timer_arg()) then
				if d.count_monster() <= 0 then -- 1?? ??? ???
					if d.getf("level") == 11 then
						d.notice(gameforge.flame_dungeon._420_notice)
						d.notice(gameforge.flame_dungeon._430_notice)
					else
						d.notice(gameforge.flame_dungeon._420_notice)
						d.notice(gameforge.flame_dungeon._430_notice)
					end
					d.setf("level",0)
				else 
					server_timer ("killed_A_2", 6, get_server_timer_arg())
				end
			end
		end
		when killed_A_2.server_timer begin -- ??? ???2 (1? 2 ?????? ???)
			if d.select(get_server_timer_arg()) then
				if d.count_monster() <= 0 then -- 1?? ??? ???
					if d.getf("level") == 11 then
						d.notice(gameforge.flame_dungeon._420_notice)
						d.notice(gameforge.flame_dungeon._430_notice)
					else
						d.notice(gameforge.flame_dungeon._420_notice)
						d.notice(gameforge.flame_dungeon._430_notice)
					end
					d.setf("level",0)
				else 
					server_timer ("killed_A_1", 6, get_server_timer_arg())
				end
			end
		end

		when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 12 begin -- 2?? ??? ?? ??
			local i = number(1, 100) -- 100?? 1 ??? ????
			if i == 1 then
				game.drop_item (30329, 1)
			end
		end
		when 20386.take with flame_dungeon.is_flamed(pc.get_map_index()) and item.vnum == 30329 and d.getf("level") == 12 begin -- 2?? ?? ????
			local i = number(1, 5) -- 5?? 1 ??? ?? ??
			if i == 1 then
				npc.purge()
				item.remove()
				d.notice(gameforge.flame_dungeon._440_notice)
				d.notice(gameforge.flame_dungeon._430_notice)
				flame_dungeon.level_clear()
			else
				item.remove()
				say(gameforge.flame_dungeon._450_say)
			end
		end

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

		when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 15 begin -- 5?? ??? ?? ??
			local i = number(1, 30) -- 30?? 1 ??? ????
			if i == 1 then
				game.drop_item (30330, 1)
			end
		end
		when 20386.take with flame_dungeon.is_flamed(d.get_map_index()) and item.vnum == 30330 and d.getf("level") == 15 begin -- 5?? ???? ????
			local setting = flame_dungeon.setting()
			if npc.get_vid() == d.get_unique_vid("stone5_1") then -- ??? ?? ????? ? ?? ????? ???? ????
				npc.purge()
				item.remove()
				say(gameforge.flame_dungeon._470_say)
				d.setf("stonekill",2) -- 2? ?? ???
				if d.count_monster() < 100 then
					d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
				end
			elseif npc.get_vid() == d.get_unique_vid("stone5_2") then 
				if d.getf("stonekill") == 2 then -- 2??? ?? ??? 2???? ??? ??? ?
					npc.purge()
					item.remove()
					say(gameforge.flame_dungeon._480_say)
					d.setf("stonekill",3)
					if d.count_monster() < 100 then
						d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
					end
				else
					item.remove()
					say(gameforge.flame_dungeon._490_say)
			--		say("2?")
				end
			elseif npc.get_vid() == d.get_unique_vid("stone5_3") then
				if d.getf("stonekill") == 3 then
					npc.purge()
					item.remove()
					say(gameforge.flame_dungeon._500_say)
					d.setf("stonekill",4)
					if d.count_monster() < 100 then
						d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
					end
				else
					item.remove()
					say(gameforge.flame_dungeon._490_say)
			--		say("3?")
				end
			elseif npc.get_vid() == d.get_unique_vid("stone5_4") then
				if d.getf("stonekill") == 4 then
					npc.purge()
					item.remove()
					say(gameforge.flame_dungeon._510_say)
					d.setf("stonekill",5)
					if d.count_monster() < 100 then
						d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
					end
				else
					item.remove()
					say(gameforge.flame_dungeon._490_say)
				--	say("4?")
				end
			elseif npc.get_vid() == d.get_unique_vid("stone5_5") then
				if d.getf("stonekill") == 5 then
					npc.purge()
					item.remove()
					say(gameforge.flame_dungeon._520_say)
					d.setf("stonekill",6)
					if d.count_monster() < 100 then
						d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
					end
				else
					item.remove()
					say(gameforge.flame_dungeon._490_say)
			--		say("5?")
				end
			elseif npc.get_vid() == d.get_unique_vid("stone5_6") then
				if d.getf("stonekill") == 6 then
					npc.purge()
					item.remove()
					say(gameforge.flame_dungeon._530_say)
					d.setf("stonekill",7)
					if d.count_monster() < 100 then
						d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
					end
				else
					item.remove()
					say(gameforge.flame_dungeon._490_say)
			--		say("6?")
				end
			else 
				if d.getf("stonekill") == 7 then
					npc.purge()
					item.remove()
					d.notice(gameforge.flame_dungeon._440_notice)
					d.notice(gameforge.flame_dungeon._430_notice)
					flame_dungeon.level_clear()
				else
					item.remove()
					say(gameforge.flame_dungeon._490_say)
			--		say("7?")
				end
			end
		end

		when 8057.kill with flame_dungeon.is_flamed(d.get_map_index()) and d.getf("level") ==16 begin -- ??? ???? ?
			d.notice(gameforge.flame_dungeon._540_notice)
			d.notice(gameforge.flame_dungeon._430_notice)
			flame_dungeon.level_clear()
		end

		when 6091.kill with pc.in_dungeon() and flame_dungeon.is_flamed(d.get_map_index()) and d.getf("level") ==17 begin -- ?? ????
			d.notice(gameforge.flame_dungeon._550_notice)
			d.notice(gameforge.flame_dungeon._560_notice)
			--notice_all (""..pc.get_name().." l-a invins pe Razador! Felicitari !")
			server_timer("dungeon_end_timer", 60,d.get_map_index())	
			flame_dungeon.level_clear()
			
			-- ??? ?, ??? ?? ???(104?, 105? ???) ???? ??? ??? ??? ??? ???.
			if party.is_party() then
				party.setf("flame_dungeon_boss_kill_count", 1)
			end
			
		end
	end
end

questul functioneaza perfect fai grupa si ai sa vezi , dar mapa nu este bn implementata in client aceiasi problema o am si eu la acest serverfile
Avatar utilizator
AquaMagiX
Nivel 2

Nivel 2
Mesaje: 201
Membru din: 19 Feb 2015, 15:42
Server: Metin2Acel
Aprecieri: 4  
Mulţumiri: 3  
Medalii

Am fost in grupa, fara grupa nu merge sa intru
Am dat si cu celant caracter
Testez questu si sa vad
Avatar utilizator
FRANCIS
Administrator Adjunct

Administrator Adjunct
Mesaje: 7879
Membru din: 06 Noi 2015, 19:52
Regat: Chunjo
Aprecieri: 334  
Mulţumiri: 54529  
Discord: Copiază ID
Medalii

Topic inactiv . Arhivat !
If you talk to a man in a language he understands, that goes to his head. If you talk to him in his own language, that goes to his heart.
Imagine
ENJOY
Imagine
Afișează semnătura
Închis
Răspunsuri
1
Vizualizări
172
Răspunsuri
1
Vizualizări
171
Răspunsuri
3
Vizualizări
352
Răspunsuri
3
Vizualizări
123

Înapoi la “Arhivă Probleme şi Întrebări”

  • Informaţie