Problemă mapă orc maze

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

Fost Moderator
Mesaje: 805
Membru din: 13 Mai 2016, 15:13
Aprecieri: 218  
Mulţumiri: 902  
Medalii

Neața.

Am și eu o problemă, primesc eroarea asta in putty:
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_S_construct NULL not valid
Questu:
define TELEPORT_NPC_ENTRY 30002
define JOIN_MIN_LEVEL 30
define JOIN_MAX_LEVEL 60
define MAP_INDEX 353
define STONE_MODE 0
quest ork_maze begin
	state start begin
		function ClearDungeon()
			local idx = d.get_map_index()
			clear_server_timer("check_monster_count",idx)
			clear_server_timer("-cenzurat-_time_1",idx)
			clear_server_timer("-cenzurat-_time_2",idx)
			clear_server_timer("-cenzurat-_time_3",idx)
			clear_server_timer("-cenzurat-_time_4",idx)
			clear_server_timer("bossroom",idx)
			clear_server_timer("end_timer",idx)
			d.setf("portal",0)
			d.clear_regen()
			d.setf("onlineg", 0)
			d.kill_all()
			end
		function set_next_portal()
			if d.getf("portal") == 4 then
				d.regen_file("data/dungeon/orkmaze/e"..d.getf("portal")..".txt")
				d.set_unique("ork_seal", d.spawn_mob(691,54,1383))
				clear_server_timer("check_monster_count",d.get_map_index())
			end
			if d.getf("portal") == 2 then d.set_unique("s2", d.spawn_mob(695,715,1341)) 
			elseif d.getf("portal") == 3 and d.getf("onlineg") == 3 then d.set_unique("s3", d.spawn_mob(695,483,1376)) end
			
			if d.getf("portal") < 4 then 
				d.regen_file("data/dungeon/orkmaze/e"..d.getf("portal")..".txt")
				d.setf("portal",d.getf("portal")+1)
			end
			d.notice(gameforge.ork_maze.portal_open_notice) --Die Portale wurden geöffnet.
		end
		function CheckParty()
			local pids = {party.get_member_pids()}
			if not party.is_party() then say(gameforge.ork_maze.say_2_party_fail) return false
			elseif not party.is_leader() then say(gameforge.ork_maze.say_1_party_fail) return false -- Nur der Gruppenleiter kann euch zum Labyrinth Teleportieren.
			elseif pc.get_level() < JOIN_MIN_LEVEL then say(string.format(gameforge.ork_maze.say_1_level_fail,JOIN_MIN_LEVEL)) return false -- Dein Level ist niedrig komm wieder wenn du %u bist.
			elseif pc.get_level() > JOIN_MAX_LEVEL then say(string.format(gameforge.ork_maze.say_2_level_fail,JOIN_MIN_LEVEL,JOIN_MAX_LEVEL)) return false -- Dein Level ist zu hoch, dieser Run ist nur von Level %u bis %u erlaubt.
			elseif table.getn(pids) > 3 then say(gameforge.ork_maze.full_party) return false --Deine Gruppe ist zu groß, es sind maximal 3 erlaubt.
			elseif table.getn(pids) <= 1 then say(gameforge.ork_maze.empty_party) return false -- Deine Gruppe ist unvollständig. Mindestens ein Gruppen Mitglied muss Online sein.
			elseif ork_maze.CheckPartyLevel() then return true
			end
		end
		function CheckPartyLevel()
			local pids = {party.get_member_pids()}
			local user_fail_level = {}
				for i=1, table.getn(pids), 1 do 
					q.begin_other_pc_block(pids)
					pc.setqf("orksiegel", 0)
					if pc.get_level() < JOIN_MIN_LEVEL or pc.get_level() > JOIN_MAX_LEVEL then
						table.insert(user_fail_level, table.getn(user_fail_level) +1, pc.get_name())
					end
					q.end_other_pc_block(pids)
				end
				for x = 1, table.getn(user_fail_level), 1 do
					say(user_fail_level[x])
			end
			if table.getn(user_fail_level) >= 1 then
				say_title(gameforge.ork_maze.title1)
				say(gameforge.ork_maze.say_3_party_fail)
				for x = 1, table.getn(user_fail_level), 1 do
					say(user_fail_level[x])
				end
			else return true
			end
		end
		when TELEPORT_NPC_ENTRY.chat.gameforge.ork_maze.title1 begin -- Das Ork Labyrinth
			if ork_maze.CheckParty() then
				say(gameforge.ork_maze.say_1) --Willst du das Labyrinth mit deiner Gruppe betreten?(Bearbeiten)
				if select(locale.yes, locale.no) == 2 then return end
				timer("warp_delay", 2)
			end
		end
		when warp_delay.timer begin
			d.new_jump_party(MAP_INDEX,12137,7274)
			ork_maze.ClearDungeon()
			local pids = {party.get_member_pids()}
			d.setf("onlineg", table.getn(pids))
			server_loop_timer("check_monster_count",10, d.get_map_index())
			server_timer("-cenzurat-_time_1", 60*10, d.get_map_index())
			server_timer("notice1", 3, d.get_map_index())
			if STONE_MODE == 1 then d.regen_file("data/dungeon/orkmaze/e_start.txt") end
		end
		when notice1.server_timer begin
			if d.select(get_server_timer_arg()) then
				notice_multiline(gameforge.ork_maze.notice_min_time,d.notice) -- Ihr habt 30 Minuten Zeit den richtigen weg zu finden und den Oberork zu töten. Um die Portale der jeweiligen Ebenen zu Öffnen müsst ihr alle Monster töten.
				if STONE_MODE == 0 then
					d.set_unique("s1", d.spawn_mob(695,585,886))
					d.regen_file("data/dungeon/orkmaze/e"..d.getf("portal")..".txt")
					d.setf("portal",d.getf("portal")+1)
				end
			end
		end
		when -cenzurat-_time_1.server_timer begin
			if d.select(get_server_timer_arg()) and d.getf("finish_portal") == 0 then
				d.notice(gameforge.ork_maze.time_20_min) -- Ihr habt noch 20 Minuten Zeit!
				server_timer("-cenzurat-_time_2", 60*10, d.get_map_index())
			end
		end
		when -cenzurat-_time_2.server_timer begin
			if d.select(get_server_timer_arg()) and d.getf("finish_portal") == 0 then
				d.notice(gameforge.ork_maze.time_10_min) -- Ihr habt noch 10 Minuten Zeit!
				server_timer("-cenzurat-_time_3", 60*5, d.get_map_index())
			end
		end
		when -cenzurat-_time_3.server_timer begin
			if d.select(get_server_timer_arg()) and d.getf("finish_portal") == 0 then
				d.notice(gameforge.ork_maze.time_5_min) -- Ihr habt noch 5 Minuten Zeit!
				server_timer("-cenzurat-_time_4", 60*5, d.get_map_index())
			end
		end
		when -cenzurat-_time_4.server_timer begin
			if d.select(get_server_timer_arg()) and d.getf("finish_portal") == 0 then
				d.notice(gameforge.ork_maze.time_fail_min) -- Ihr habt es leider nicht geschaft.
				server_timer("end_timer", 10, d.get_map_index())
			end
		end
		when end_timer.server_timer begin
			if d.select(get_server_timer_arg()) then
				ork_maze.ClearDungeon()
				d.exit_all_to_start_position()
			end
		end
		when check_monster_count.server_timer begin
			if d.select(get_server_timer_arg()) then
				if d.count_monster() <= 0 and d.getf("portal") < 5 then
					ork_maze.set_next_portal()
				end
			end
		end
		when 691.kill with d.get_unique_vid("ork_seal") begin
			d.setf("finish_portal", 1)
			notice_multiline(gameforge.ork_maze.ork_seal_dead,d.notice) -- Herzlichen Glückwunsch, ihr habt den Oberork getötet. Zieht nun eure Schlüssel auf die Siegel.
			local tab = 
					{
						[1] = {57, 1396},
						[2] = {53, 1396},
						[3] = {49, 1396},
					}
			local pids = {party.get_member_pids()}
			local a = table.getn(pids)
			for i = 1,a do
				d.spawn_mob(20100, tab[1],tab[2])
			end
		end
		when 695.kill with npc.get_vid() == d.get_unique_vid("s1") or npc.get_vid() == d.get_unique_vid("s2") or npc.get_vid() == d.get_unique_vid("s3") begin
			game.drop_item(30107,1)
		end
		when 693.kill with d.get_unique_vid("ork_verfl") begin
			notice_multiline(gameforge.ork_maze.verfl_kill,d.notice) -- Ihr habt den Verfl. Oberork getötet und werdet in 60 Sekunden in den Boss Raum Teleportiert.
			server_timer("bossroom", 60, d.get_map_index())
			d.kill_all()
		end
		when bossroom.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.jump_all(12170,8100) -- zum boss raum
				d.spawn_mob(694,136,894)
				d.regen_file("data/dungeon/orkmaze/bossroom.txt")
			end
		end
		when 694.kill with pc.in_dungeon() begin
			d.notice(gameforge.ork_maze.finish_warp) -- Ihr werdet in 60 Sekunden raus Teleportiert.
			server_timer("end_timer", 60, d.get_map_index())
			d.kill_all()
		end
		-- when login begin
			-- chat(pc.getqf("orksiegel"))
		-- end
		when 30121.chat.gameforge.ork_maze.get_last_bossroom begin -- Nächste Runde
				say_title(gameforge.ork_maze.maze_title)
				if not party.is_leader() then say_reward(gameforge.ork_mae_say_fail_next_step) return end
				say(gameforge.ork_maze.say_last_boss)
				if select(gameforge.ork_maze.ready,locale.cancel) == 2 then return end
				d.jump_all(12150,7562) -- stehen geblieben bei neuer jump posi, siegel dropp fehlt
				d.set_unique("ork_verfl", d.spawn_mob(693,400,200))
				d.regen_file("data/dungeon/orkmaze/last.txt")
				d.notice(gameforge.ork_maze.notice_destroy_seals_next) -- Findet den Verfl. Oberork und tötet ihn.
		end
		when 20100.take with item.get_vnum() == 30107 begin
			-- chat(pc.getqf("orksiegel"))
			if pc.getqf("orksiegel") == 1 then say(gameforge.ork_maze.have_take_seal) return end -- Du hast bereits ein Siegel abgeben.
			npc.purge()
			item.remove()
			d.setf("seal",d.getf("seal")+1)
			pc.setqf("orksiegel", 1)
			local pids = {party.get_member_pids()}
			if d.getf("seal") == table.getn(pids) then 
				d.purge()
				d.spawn_mob(30121,54,1383)
			end
		end
	--
	end
end


Nu mă lasă să dau ./qc când am DEFINE... etc, și dacă șters DEFINE din quest merge să-i dau ./qc dar după îmi dă eroarea de la începutul topicului..Și dacă șterg questu îmi dă connection refused în prostie..

O rezolvare ceva ? Mulțumesc.
RETRAS DEFINITIV
Afișează semnătura
Avatar utilizator
[RaffaeL]
Software Developer

Software Developer
Mesaje: 3223
Membru din: 19 Mar 2016, 12:58
Server: ...
Aprecieri: 15  
Mulţumiri: 2502  
  Rezolvări prob.: 2
Discord: Copiază ID
 Contact:
Medalii

șefu la bani' scrie:Neața.

Am și eu o problemă, primesc eroarea asta in putty:
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_S_construct NULL not valid
Nu mă lasă să dau ./qc când am DEFINE... etc, și dacă șters DEFINE din quest merge să-i dau ./qc dar după îmi dă eroarea de la începutul topicului..Și dacă șterg questu îmi dă connection refused în prostie..

O rezolvare ceva ? Mulțumesc.
Poftim:

Cod: Selectaţi tot

quest ork_maze begin
	state start begin
		function define(key)
			local dict = {
			["TELEPORT_NPC_ENTRY"] = 30002,
			["JOIN_MIN_LEVEL"] = 30,
			["JOIN_MAX_LEVEL"] = 60,
			["MAP_INDEX"] = 353,
			["STONE_MODE"] = 0,
			}
			return dict[key]
		end
		function ClearDungeon()
			local idx = d.get_map_index()
			clear_server_timer("check_monster_count",idx)
			clear_server_timer("-cenzurat-_time_1",idx)
			clear_server_timer("-cenzurat-_time_2",idx)
			clear_server_timer("-cenzurat-_time_3",idx)
			clear_server_timer("-cenzurat-_time_4",idx)
			clear_server_timer("bossroom",idx)
			clear_server_timer("end_timer",idx)
			d.setf("portal",0)
			d.clear_regen()
			d.setf("onlineg", 0)
			d.kill_all()
			end
		function set_next_portal()
			if d.getf("portal") == 4 then
				d.regen_file("data/dungeon/orkmaze/e"..d.getf("portal")..".txt")
				d.set_unique("ork_seal", d.spawn_mob(691,54,1383))
				clear_server_timer("check_monster_count",d.get_map_index())
			end
			if d.getf("portal") == 2 then d.set_unique("s2", d.spawn_mob(695,715,1341)) 
			elseif d.getf("portal") == 3 and d.getf("onlineg") == 3 then d.set_unique("s3", d.spawn_mob(695,483,1376)) end
			
			if d.getf("portal") < 4 then 
				d.regen_file("data/dungeon/orkmaze/e"..d.getf("portal")..".txt")
				d.setf("portal",d.getf("portal")+1)
			end
			d.notice(gameforge.ork_maze.portal_open_notice) --Die Portale wurden geöffnet.
		end
		function CheckParty()
			local pids = {party.get_member_pids()}
			if not party.is_party() then say(gameforge.ork_maze.say_2_party_fail) return false
			elseif not party.is_leader() then say(gameforge.ork_maze.say_1_party_fail) return false -- Nur der Gruppenleiter kann euch zum Labyrinth Teleportieren.
			elseif pc.get_level() < JOIN_MIN_LEVEL then say(string.format(gameforge.ork_maze.say_1_level_fail,JOIN_MIN_LEVEL)) return false -- Dein Level ist niedrig komm wieder wenn du %u bist.
			elseif pc.get_level() > JOIN_MAX_LEVEL then say(string.format(gameforge.ork_maze.say_2_level_fail,JOIN_MIN_LEVEL,JOIN_MAX_LEVEL)) return false -- Dein Level ist zu hoch, dieser Run ist nur von Level %u bis %u erlaubt.
			elseif table.getn(pids) > 3 then say(gameforge.ork_maze.full_party) return false --Deine Gruppe ist zu groß, es sind maximal 3 erlaubt.
			elseif table.getn(pids) <= 1 then say(gameforge.ork_maze.empty_party) return false -- Deine Gruppe ist unvollständig. Mindestens ein Gruppen Mitglied muss Online sein.
			elseif ork_maze.CheckPartyLevel() then return true
			end
		end
		function CheckPartyLevel()
			local pids = {party.get_member_pids()}
			local user_fail_level = {}
				for i=1, table.getn(pids), 1 do 
					q.begin_other_pc_block(pids[i])
					pc.setqf("orksiegel", 0)
					if pc.get_level() < JOIN_MIN_LEVEL or pc.get_level() > JOIN_MAX_LEVEL then
						table.insert(user_fail_level, table.getn(user_fail_level) +1, pc.get_name())
					end
					q.end_other_pc_block(pids[i])
				end
				for x = 1, table.getn(user_fail_level), 1 do
					say(user_fail_level[x])
			end
			if table.getn(user_fail_level) >= 1 then
				say_title(gameforge.ork_maze.title1)
				say(gameforge.ork_maze.say_3_party_fail)
				for x = 1, table.getn(user_fail_level), 1 do
					say(user_fail_level[x])
				end
			else return true
			end
		end
		when TELEPORT_NPC_ENTRY.chat.gameforge.ork_maze.title1 begin -- Das Ork Labyrinth
			if ork_maze.CheckParty() then
				say(gameforge.ork_maze.say_1) --Willst du das Labyrinth mit deiner Gruppe betreten?(Bearbeiten)
				if select(locale.yes, locale.no) == 2 then return end
				timer("warp_delay", 2)
			end
		end
		when warp_delay.timer begin
			d.new_jump_party(MAP_INDEX,12137,7274)
			ork_maze.ClearDungeon()
			local pids = {party.get_member_pids()}
			d.setf("onlineg", table.getn(pids))
			server_loop_timer("check_monster_count",10, d.get_map_index())
			server_timer("-cenzurat-_time_1", 60*10, d.get_map_index())
			server_timer("notice1", 3, d.get_map_index())
			if STONE_MODE == 1 then d.regen_file("data/dungeon/orkmaze/e_start.txt") end
		end
		when notice1.server_timer begin
			if d.select(get_server_timer_arg()) then
				notice_multiline(gameforge.ork_maze.notice_min_time,d.notice) -- Ihr habt 30 Minuten Zeit den richtigen weg zu finden und den Oberork zu töten. Um die Portale der jeweiligen Ebenen zu Öffnen müsst ihr alle Monster töten.
				if STONE_MODE == 0 then
					d.set_unique("s1", d.spawn_mob(695,585,886))
					d.regen_file("data/dungeon/orkmaze/e"..d.getf("portal")..".txt")
					d.setf("portal",d.getf("portal")+1)
				end
			end
		end
		when -cenzurat-_time_1.server_timer begin
			if d.select(get_server_timer_arg()) and d.getf("finish_portal") == 0 then
				d.notice(gameforge.ork_maze.time_20_min) -- Ihr habt noch 20 Minuten Zeit!
				server_timer("-cenzurat-_time_2", 60*10, d.get_map_index())
			end
		end
		when -cenzurat-_time_2.server_timer begin
			if d.select(get_server_timer_arg()) and d.getf("finish_portal") == 0 then
				d.notice(gameforge.ork_maze.time_10_min) -- Ihr habt noch 10 Minuten Zeit!
				server_timer("-cenzurat-_time_3", 60*5, d.get_map_index())
			end
		end
		when -cenzurat-_time_3.server_timer begin
			if d.select(get_server_timer_arg()) and d.getf("finish_portal") == 0 then
				d.notice(gameforge.ork_maze.time_5_min) -- Ihr habt noch 5 Minuten Zeit!
				server_timer("-cenzurat-_time_4", 60*5, d.get_map_index())
			end
		end
		when -cenzurat-_time_4.server_timer begin
			if d.select(get_server_timer_arg()) and d.getf("finish_portal") == 0 then
				d.notice(gameforge.ork_maze.time_fail_min) -- Ihr habt es leider nicht geschaft.
				server_timer("end_timer", 10, d.get_map_index())
			end
		end
		when end_timer.server_timer begin
			if d.select(get_server_timer_arg()) then
				ork_maze.ClearDungeon()
				d.exit_all_to_start_position()
			end
		end
		when check_monster_count.server_timer begin
			if d.select(get_server_timer_arg()) then
				if d.count_monster() <= 0 and d.getf("portal") < 5 then
					ork_maze.set_next_portal()
				end
			end
		end
		when 691.kill with d.get_unique_vid("ork_seal") begin
			d.setf("finish_portal", 1)
			notice_multiline(gameforge.ork_maze.ork_seal_dead,d.notice) -- Herzlichen Glückwunsch, ihr habt den Oberork getötet. Zieht nun eure Schlüssel auf die Siegel.
			local tab = 
					{
						[1] = {57, 1396},
						[2] = {53, 1396},
						[3] = {49, 1396},
					}
			local pids = {party.get_member_pids()}
			local a = table.getn(pids)
			for i = 1,a do
				d.spawn_mob(20100, tab[i][1],tab[i][2])
			end
		end
		when 695.kill with npc.get_vid() == d.get_unique_vid("s1") or npc.get_vid() == d.get_unique_vid("s2") or npc.get_vid() == d.get_unique_vid("s3") begin
			game.drop_item(30107,1)
		end
		when 693.kill with d.get_unique_vid("ork_verfl") begin
			notice_multiline(gameforge.ork_maze.verfl_kill,d.notice) -- Ihr habt den Verfl. Oberork getötet und werdet in 60 Sekunden in den Boss Raum Teleportiert.
			server_timer("bossroom", 60, d.get_map_index())
			d.kill_all()
		end
		when bossroom.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.jump_all(12170,8100) -- zum boss raum
				d.spawn_mob(694,136,894)
				d.regen_file("data/dungeon/orkmaze/bossroom.txt")
			end
		end
		when 694.kill with pc.in_dungeon() begin
			d.notice(gameforge.ork_maze.finish_warp) -- Ihr werdet in 60 Sekunden raus Teleportiert.
			server_timer("end_timer", 60, d.get_map_index())
			d.kill_all()
		end
		-- when login begin
			-- chat(pc.getqf("orksiegel"))
		-- end
		when 30121.chat.gameforge.ork_maze.get_last_bossroom begin -- Nächste Runde
				say_title(gameforge.ork_maze.maze_title)
				if not party.is_leader() then say_reward(gameforge.ork_mae_say_fail_next_step) return end
				say(gameforge.ork_maze.say_last_boss)
				if select(gameforge.ork_maze.ready,locale.cancel) == 2 then return end
				d.jump_all(12150,7562) -- stehen geblieben bei neuer jump posi, siegel dropp fehlt
				d.set_unique("ork_verfl", d.spawn_mob(693,400,200))
				d.regen_file("data/dungeon/orkmaze/last.txt")
				d.notice(gameforge.ork_maze.notice_destroy_seals_next) -- Findet den Verfl. Oberork und tötet ihn.
		end
		when 20100.take with item.get_vnum() == 30107 begin
			-- chat(pc.getqf("orksiegel"))
			if pc.getqf("orksiegel") == 1 then say(gameforge.ork_maze.have_take_seal) return end -- Du hast bereits ein Siegel abgeben.
			npc.purge()
			item.remove()
			d.setf("seal",d.getf("seal")+1)
			pc.setqf("orksiegel", 1)
			local pids = {party.get_member_pids()}
			if d.getf("seal") == table.getn(pids) then 
				d.purge()
				d.spawn_mob(30121,54,1383)
			end
		end
	end
end
Daca nu le ai deja, adauga in quest_functions, aceste functii:

Cod: Selectaţi tot

d.new_jump_party
party.get_member_pids
q.begin_other_pc_block
q.end_other_pc_block
Imagine
Imagine
https://www.youtube.com/watch?v=GhYkCIETEto
Do everything, if you know what you're doing, else... Imagine
Ma gasesti si aici: Discord https://discord.gg/5J5GnyZVSR
Afișează semnătura
Avatar utilizator
Knuckles
Fost Moderator

Fost Moderator
Mesaje: 805
Membru din: 13 Mai 2016, 15:13
Aprecieri: 218  
Mulţumiri: 902  
Medalii

[RaffaeL] scrie:
șefu la bani' scrie:Neața.

Am și eu o problemă, primesc eroarea asta in putty:
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_S_construct NULL not valid
Nu mă lasă să dau ./qc când am DEFINE... etc, și dacă șters DEFINE din quest merge să-i dau ./qc dar după îmi dă eroarea de la începutul topicului..Și dacă șterg questu îmi dă connection refused în prostie..

O rezolvare ceva ? Mulțumesc.
Poftim:

Cod: Selectaţi tot

quest ork_maze begin
	state start begin
		function define(key)
			local dict = {
			["TELEPORT_NPC_ENTRY"] = 30002,
			["JOIN_MIN_LEVEL"] = 30,
			["JOIN_MAX_LEVEL"] = 60,
			["MAP_INDEX"] = 353,
			["STONE_MODE"] = 0,
			}
			return dict[key]
		end
		function ClearDungeon()
			local idx = d.get_map_index()
			clear_server_timer("check_monster_count",idx)
			clear_server_timer("-cenzurat-_time_1",idx)
			clear_server_timer("-cenzurat-_time_2",idx)
			clear_server_timer("-cenzurat-_time_3",idx)
			clear_server_timer("-cenzurat-_time_4",idx)
			clear_server_timer("bossroom",idx)
			clear_server_timer("end_timer",idx)
			d.setf("portal",0)
			d.clear_regen()
			d.setf("onlineg", 0)
			d.kill_all()
			end
		function set_next_portal()
			if d.getf("portal") == 4 then
				d.regen_file("data/dungeon/orkmaze/e"..d.getf("portal")..".txt")
				d.set_unique("ork_seal", d.spawn_mob(691,54,1383))
				clear_server_timer("check_monster_count",d.get_map_index())
			end
			if d.getf("portal") == 2 then d.set_unique("s2", d.spawn_mob(695,715,1341)) 
			elseif d.getf("portal") == 3 and d.getf("onlineg") == 3 then d.set_unique("s3", d.spawn_mob(695,483,1376)) end
			
			if d.getf("portal") < 4 then 
				d.regen_file("data/dungeon/orkmaze/e"..d.getf("portal")..".txt")
				d.setf("portal",d.getf("portal")+1)
			end
			d.notice(gameforge.ork_maze.portal_open_notice) --Die Portale wurden geöffnet.
		end
		function CheckParty()
			local pids = {party.get_member_pids()}
			if not party.is_party() then say(gameforge.ork_maze.say_2_party_fail) return false
			elseif not party.is_leader() then say(gameforge.ork_maze.say_1_party_fail) return false -- Nur der Gruppenleiter kann euch zum Labyrinth Teleportieren.
			elseif pc.get_level() < JOIN_MIN_LEVEL then say(string.format(gameforge.ork_maze.say_1_level_fail,JOIN_MIN_LEVEL)) return false -- Dein Level ist niedrig komm wieder wenn du %u bist.
			elseif pc.get_level() > JOIN_MAX_LEVEL then say(string.format(gameforge.ork_maze.say_2_level_fail,JOIN_MIN_LEVEL,JOIN_MAX_LEVEL)) return false -- Dein Level ist zu hoch, dieser Run ist nur von Level %u bis %u erlaubt.
			elseif table.getn(pids) > 3 then say(gameforge.ork_maze.full_party) return false --Deine Gruppe ist zu groß, es sind maximal 3 erlaubt.
			elseif table.getn(pids) <= 1 then say(gameforge.ork_maze.empty_party) return false -- Deine Gruppe ist unvollständig. Mindestens ein Gruppen Mitglied muss Online sein.
			elseif ork_maze.CheckPartyLevel() then return true
			end
		end
		function CheckPartyLevel()
			local pids = {party.get_member_pids()}
			local user_fail_level = {}
				for i=1, table.getn(pids), 1 do 
					q.begin_other_pc_block(pids[i])
					pc.setqf("orksiegel", 0)
					if pc.get_level() < JOIN_MIN_LEVEL or pc.get_level() > JOIN_MAX_LEVEL then
						table.insert(user_fail_level, table.getn(user_fail_level) +1, pc.get_name())
					end
					q.end_other_pc_block(pids[i])
				end
				for x = 1, table.getn(user_fail_level), 1 do
					say(user_fail_level[x])
			end
			if table.getn(user_fail_level) >= 1 then
				say_title(gameforge.ork_maze.title1)
				say(gameforge.ork_maze.say_3_party_fail)
				for x = 1, table.getn(user_fail_level), 1 do
					say(user_fail_level[x])
				end
			else return true
			end
		end
		when TELEPORT_NPC_ENTRY.chat.gameforge.ork_maze.title1 begin -- Das Ork Labyrinth
			if ork_maze.CheckParty() then
				say(gameforge.ork_maze.say_1) --Willst du das Labyrinth mit deiner Gruppe betreten?(Bearbeiten)
				if select(locale.yes, locale.no) == 2 then return end
				timer("warp_delay", 2)
			end
		end
		when warp_delay.timer begin
			d.new_jump_party(MAP_INDEX,12137,7274)
			ork_maze.ClearDungeon()
			local pids = {party.get_member_pids()}
			d.setf("onlineg", table.getn(pids))
			server_loop_timer("check_monster_count",10, d.get_map_index())
			server_timer("-cenzurat-_time_1", 60*10, d.get_map_index())
			server_timer("notice1", 3, d.get_map_index())
			if STONE_MODE == 1 then d.regen_file("data/dungeon/orkmaze/e_start.txt") end
		end
		when notice1.server_timer begin
			if d.select(get_server_timer_arg()) then
				notice_multiline(gameforge.ork_maze.notice_min_time,d.notice) -- Ihr habt 30 Minuten Zeit den richtigen weg zu finden und den Oberork zu töten. Um die Portale der jeweiligen Ebenen zu Öffnen müsst ihr alle Monster töten.
				if STONE_MODE == 0 then
					d.set_unique("s1", d.spawn_mob(695,585,886))
					d.regen_file("data/dungeon/orkmaze/e"..d.getf("portal")..".txt")
					d.setf("portal",d.getf("portal")+1)
				end
			end
		end
		when -cenzurat-_time_1.server_timer begin
			if d.select(get_server_timer_arg()) and d.getf("finish_portal") == 0 then
				d.notice(gameforge.ork_maze.time_20_min) -- Ihr habt noch 20 Minuten Zeit!
				server_timer("-cenzurat-_time_2", 60*10, d.get_map_index())
			end
		end
		when -cenzurat-_time_2.server_timer begin
			if d.select(get_server_timer_arg()) and d.getf("finish_portal") == 0 then
				d.notice(gameforge.ork_maze.time_10_min) -- Ihr habt noch 10 Minuten Zeit!
				server_timer("-cenzurat-_time_3", 60*5, d.get_map_index())
			end
		end
		when -cenzurat-_time_3.server_timer begin
			if d.select(get_server_timer_arg()) and d.getf("finish_portal") == 0 then
				d.notice(gameforge.ork_maze.time_5_min) -- Ihr habt noch 5 Minuten Zeit!
				server_timer("-cenzurat-_time_4", 60*5, d.get_map_index())
			end
		end
		when -cenzurat-_time_4.server_timer begin
			if d.select(get_server_timer_arg()) and d.getf("finish_portal") == 0 then
				d.notice(gameforge.ork_maze.time_fail_min) -- Ihr habt es leider nicht geschaft.
				server_timer("end_timer", 10, d.get_map_index())
			end
		end
		when end_timer.server_timer begin
			if d.select(get_server_timer_arg()) then
				ork_maze.ClearDungeon()
				d.exit_all_to_start_position()
			end
		end
		when check_monster_count.server_timer begin
			if d.select(get_server_timer_arg()) then
				if d.count_monster() <= 0 and d.getf("portal") < 5 then
					ork_maze.set_next_portal()
				end
			end
		end
		when 691.kill with d.get_unique_vid("ork_seal") begin
			d.setf("finish_portal", 1)
			notice_multiline(gameforge.ork_maze.ork_seal_dead,d.notice) -- Herzlichen Glückwunsch, ihr habt den Oberork getötet. Zieht nun eure Schlüssel auf die Siegel.
			local tab = 
					{
						[1] = {57, 1396},
						[2] = {53, 1396},
						[3] = {49, 1396},
					}
			local pids = {party.get_member_pids()}
			local a = table.getn(pids)
			for i = 1,a do
				d.spawn_mob(20100, tab[i][1],tab[i][2])
			end
		end
		when 695.kill with npc.get_vid() == d.get_unique_vid("s1") or npc.get_vid() == d.get_unique_vid("s2") or npc.get_vid() == d.get_unique_vid("s3") begin
			game.drop_item(30107,1)
		end
		when 693.kill with d.get_unique_vid("ork_verfl") begin
			notice_multiline(gameforge.ork_maze.verfl_kill,d.notice) -- Ihr habt den Verfl. Oberork getötet und werdet in 60 Sekunden in den Boss Raum Teleportiert.
			server_timer("bossroom", 60, d.get_map_index())
			d.kill_all()
		end
		when bossroom.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.jump_all(12170,8100) -- zum boss raum
				d.spawn_mob(694,136,894)
				d.regen_file("data/dungeon/orkmaze/bossroom.txt")
			end
		end
		when 694.kill with pc.in_dungeon() begin
			d.notice(gameforge.ork_maze.finish_warp) -- Ihr werdet in 60 Sekunden raus Teleportiert.
			server_timer("end_timer", 60, d.get_map_index())
			d.kill_all()
		end
		-- when login begin
			-- chat(pc.getqf("orksiegel"))
		-- end
		when 30121.chat.gameforge.ork_maze.get_last_bossroom begin -- Nächste Runde
				say_title(gameforge.ork_maze.maze_title)
				if not party.is_leader() then say_reward(gameforge.ork_mae_say_fail_next_step) return end
				say(gameforge.ork_maze.say_last_boss)
				if select(gameforge.ork_maze.ready,locale.cancel) == 2 then return end
				d.jump_all(12150,7562) -- stehen geblieben bei neuer jump posi, siegel dropp fehlt
				d.set_unique("ork_verfl", d.spawn_mob(693,400,200))
				d.regen_file("data/dungeon/orkmaze/last.txt")
				d.notice(gameforge.ork_maze.notice_destroy_seals_next) -- Findet den Verfl. Oberork und tötet ihn.
		end
		when 20100.take with item.get_vnum() == 30107 begin
			-- chat(pc.getqf("orksiegel"))
			if pc.getqf("orksiegel") == 1 then say(gameforge.ork_maze.have_take_seal) return end -- Du hast bereits ein Siegel abgeben.
			npc.purge()
			item.remove()
			d.setf("seal",d.getf("seal")+1)
			pc.setqf("orksiegel", 1)
			local pids = {party.get_member_pids()}
			if d.getf("seal") == table.getn(pids) then 
				d.purge()
				d.spawn_mob(30121,54,1383)
			end
		end
	end
end
Daca nu le ai deja, adauga in quest_functions, aceste functii:

Cod: Selectaţi tot

d.new_jump_party
party.get_member_pids
q.begin_other_pc_block
q.end_other_pc_block
Mersi mult, eroarea era de la mob proto... de la query de la orc maze.. le ai cumva sql ?
RETRAS DEFINITIV
Afișează semnătura
Avatar utilizator
[RaffaeL]
Software Developer

Software Developer
Mesaje: 3223
Membru din: 19 Mar 2016, 12:58
Server: ...
Aprecieri: 15  
Mulţumiri: 2502  
  Rezolvări prob.: 2
Discord: Copiază ID
 Contact:
Medalii

Nu le am , imi pare rau.
Si eroarea de install quest, nu are treaba cu item sau mob_proto.
Nu vei avea core dumped de la asa ceva.
Imagine
Imagine
https://www.youtube.com/watch?v=GhYkCIETEto
Do everything, if you know what you're doing, else... Imagine
Ma gasesti si aici: Discord https://discord.gg/5J5GnyZVSR
Afișează semnătura
Avatar utilizator
Knuckles
Fost Moderator

Fost Moderator
Mesaje: 805
Membru din: 13 Mai 2016, 15:13
Aprecieri: 218  
Mulţumiri: 902  
Medalii

Nu știu, acum nu mai pornește serveru... nu dă erori putty sau ch1/game99/auth :/
RETRAS DEFINITIV
Afișează semnătura
Avatar utilizator
[RaffaeL]
Software Developer

Software Developer
Mesaje: 3223
Membru din: 19 Mar 2016, 12:58
Server: ...
Aprecieri: 15  
Mulţumiri: 2502  
  Rezolvări prob.: 2
Discord: Copiază ID
 Contact:
Medalii

șefu la bani' scrie:Nu știu, acum nu mai pornește serveru... nu dă erori putty sau ch1/game99/auth :/
Verifica sa nu fi modificat din greseala ceva.
Fii constient, ca desi nu am acei mobi implementati(ma rog, nu cu acele vnum),
dupa ce am refacut questul, l-am instalat pe un server de teste, si a pornit cu succes.
Nu imi pot permite, sa pun aici ceva netestat in prealabil.
Imagine
Imagine
https://www.youtube.com/watch?v=GhYkCIETEto
Do everything, if you know what you're doing, else... Imagine
Ma gasesti si aici: Discord https://discord.gg/5J5GnyZVSR
Afișează semnătura
Avatar utilizator
Moț
Ţepar / Untrusted User

Ţepar / Untrusted User
Mesaje: 2825
Membru din: 03 Apr 2017, 15:00
Aprecieri: 216  
Mulţumiri: 3040  
Discord: Copiază ID
Medalii

Inactiv!
Imagine
Afișează semnătura
Închis
Răspunsuri
0
Vizualizări
84
Răspunsuri
6
Vizualizări
500
Răspunsuri
2
Vizualizări
208

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

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Semrush [Bot] și 75 vizitatori