Aller au contenu
Top-Metin2.org - Vous êtes à la recherche d'un serveur Metin 2 ? ×
×
×
  • Créer...
  • 0

[En Cours] Problème avec la map Catacombe - 2013


Volkihars

Question

Bonjour @Funky-Emulation,

 

Version des fichiers/ Type d'émulateur : [2013] Files By Team EB

Domaine  : Source Metin2 2013

Votre niveau : Intermédiaire

 

Problème rencontré : Une fois téléporter sur la map Catacombe étage 1, je donne la "Clé à cristal d'âme" pour être téléporter au deuxième étages le seule problème c'est qui nous téléporte au deuxième étages est aussi tôt, je me fais téléporter à la Grotte d'Exile 2 (263 180)

 

Voici la quête utiliser :

 

quest devilscatacomb_zone begin
	state start begin
		when login begin
			if pc.get_map_index() == 76 then
				if pc.get_x() < 3072+25 or pc.get_y() < 12032+15 or pc.get_x() > 3072+490 or pc.get_y() > 12032+460 then
					pc.warp((5376+540)*100, (512+482+4)*100, 65)
				end

				pc.set_warp_location(65, 5376+540, 512+482+4)
				elseif pc.get_map_index() >= 760000 and pc.get_map_index() < 770000 then
				pc.set_warp_location(65, 5376+540, 512+482+4)
			end
		end

	----------------------------
	-- Gardien des Catacombes --
	----------------------------

		when 20367.chat."Dans les Catacombes du Diable." with pc.get_map_index() == 65 begin
			if pc.get_level() < 75 then
				---                                                   l
				say_title(""..mob_name(20367).."")
				say("L'accès vous est refusé. Votre expérience")
				say("actuelle ne vous permettrait pas de survivre aux")
				say("Catacombes du Diable. Revenez quand vous aurez au")
				say("moins atteint le niveau 75.")
			else
				---                                                   l
				say_title(""..mob_name(20367).."")
				say("Il y a beaucoup de démons dans les catacombes,")
				say("il vous faudra être courageux et fort. Aucune")
				say("personne ne survit dans les catacombes.")
				say("Voulez-vous vraiment entrer ?")

				local s = select("Entrer", "Ne pas Entrer")

				if s == 1 then
					---                                                   l
					say_title(""..mob_name(20367).."")
					say("Je vais vous téléporter.")
					say("L'endroit est très dangereux...")
					say("Prudence et bonne chance...")
					wait()
					pc.warp(307200,1203200)

				elseif s == 2 then
					---                                                   l
					say_title(""..mob_name(20367).."")
					say("D'accord, revenez me voir si vous changez d'avis.")
				end
			end
		end

	----------------------------------
	-- Catacombes du mal : Niveau 1 --
	----------------------------------

		when login with pc.get_map_index() == 76 begin
			---                                                   l
			say_title("Les catacombes du diable:")
			say("Pour accéder au deuxième niveau, vous avez")
			say("besoin d'une clé à cristal d'âme.")
			say_item("Clé à cristal d'âme", 30311, "")
			say("Vous la trouverez sur tous les monstres du")
			say("premier niveau.")
			say("")
			say_title("Information:")
			say("Pour terminer les catacombes du diable vous")
			say("avez 60 minutes. Bonne chance !")
		end

		when kill with not npc.is_pc() and pc.get_map_index() == 76 begin

			local s = number(1, 50)

			if s == 1 and pc.count_item(30311)==0 then
				chat("Cette Méduse infernale disposait d'une clé à cristal d'âme.")
				chat("Déposer-la sur la statue mythique pour accéder au deuxième niveau.")
				game.drop_item(30311, 1)
			end
		end

		when 30101.chat."Accéder au deuxième niveau." with pc.get_map_index() == 76 begin
			if pc.count_item(30311)>=1 then
				---                                                   l
				say("Vous avez une clé à cristal d'âme donc vous passez")
				say("tous au deuxième niveau.")
				say("")
				say_item_vnum(30311)
				say("")				
				pc.removeitem("30311", 1)
				wait()
				
				d.new_jump_all(76, 3072+550, 12032+50)
				d.regen_file("data/dungeon/devilscatacomb2_regen.txt")
				d.spawn_mob(30103, 741, 221)
			else
				---                                                   l
				say("Pour accéder au deuxième niveau, vous devez tuer")
				say("des méduses infernale, elles gardent sur elles")
				say("des clés à cristal d'âme en récupérant une clé ")
				say("je peu, vous envoyez au deuxième niveau.")
				say("")
				say_item_vnum(30311)
				say("")
			end
		end

	----------------------------------
	-- Catacombes du mal : Niveau 2 --
	----------------------------------

		when 30103.chat."Oui, laissez-moi entrer !" with pc.in_dungeon() and pc.get_map_index() >= 760000 and pc.get_map_index() < 770000 begin
			---                                                   l
			say("En examinant la pierre de plus près, vous")
			say("remarquez une gravure.")
			say("")
			wait()
			---                                                   l
			say("Seul celui qui possède la tête réduite peut")
			say("entrer, après que les scellés de trois portes")
			say("soient brisés.")
			say("")
			say_item_vnum(30319)
			say("")
			say("Si vous ne portez pas cette relique sur vous, vous")
			say("serez téléporté hors des Catacombes du Diable.")
			say("")
			wait()

			if pc.count_item(30319) >0 then
				pc.remove_item("30319", 1)
				d.jump_all(3072+1380, 12032+250)
				d.regen_file("data/dungeon/devilscatacomb3_regen.txt")

			elseif pc.count_item(30320) >0 then
				pc.remove_item("30320", 1)
				d.jump_all(3072+1380, 12032+250)
				d.regen_file("data/dungeon/devilscatacomb3_regen.txt")
			else
				pc.warp(591800, 100000)
			end
		end

	----------------------------------
	-- Catacombes du mal : Niveau 3 --
	----------------------------------

		function get_3floor_stone_pos()
			local positions = {
				{1249, 343},
				{1353, 351},
				{1249, 250},
				{1249, 153},
				{1349, 150},
				{1149, 252},
				{1152, 148},
				{1148, 347},
			}

			for i = 1, 7 do

				local j = number(i, 8)

				if i != j then
					local t = positions[i];
					positions[i] = positions[j];
					positions[j] = t;
				end
			end
			return positions
		end

		when 8037.kill with pc.in_dungeon() and pc.get_map_index() >= 760000 and pc.get_map_index() < 770000 begin

			local positions = devilscatacomb_zone.get_3floor_stone_pos()

			for i = 1, 7 do
				chat(positions[i][1], positions[i][2])
				d.set_unique("fake" .. i , d.spawn_mob(8038, positions[i][1], positions[i][2]))
			end

			chat(positions[8][1], positions[8][2])
			local vid = d.spawn_mob(8038, positions[8][1], positions[8][2])
			chat(vid)
			d.set_unique("real", vid)

			server_loop_timer('devilscatacomb_stone3_update', 10, pc.get_map_index())
			server_timer('devilscatacomb_stone3_fail1', 5*60, pc.get_map_index())

			d.notice("Vous êtes devant la porte du choix au troisième");
			d.notice("niveau. Beaucoup de fausses pierres Metin trompent");
			d.notice("vos sens. Trouvez la bonne pierre Metin et");
			d.notice("détruisez-la dans les 15 minutes qui suivent.");
			d.notice("C'est le seul moyen de franchir cette porte.");
		end

		when devilscatacomb_stone3_fail1.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice("Il reste 10 minutes.")
				server_timer('devilscatacomb_stone3_fail2', 5*60, get_server_timer_arg())
			end
		end

		when devilscatacomb_stone3_fail2.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice("Il reste 5 minutes.")
				server_timer('devilscatacomb_stone4_fail', 5*60, get_server_timer_arg())
			end
		end

		when devilscatacomb_stone3_fail.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice("Temps écoulé!")
				d.exit_all()
				clear_server_timer('devilscatacomb_stone3_update', get_server_timer_arg())
			end
		end

		when devilscatacomb_stone3_update.server_timer begin
			if d.select(get_server_timer_arg()) then
				if not d.is_unique_dead("real") then

					for i = 1, 7 do

						if d.getf("fakedead" .. i) == 0 then
							if d.unique_get_hp_perc("fake" .. i) < 50 then
								d.purge_unique("fake" .. i)
								d.setf("fakedead" .. i, 1)
								d.notice("Les fausses pierres metin disparaissent.");
							end
						end
					end
				else
					server_timer("devilscatacomb_stone3_end", 5, get_server_timer_arg())

					d.notice("Vous avez fait la preuve de la finesse de votre")
					d.notice("ouie et de la sûreté de votre instinct. Vous avez")
					d.notice("détruit la vraie pierre Metin! Vous allez")
					d.notice("maintenant atteindre le 4ème étage.")

					clear_server_timer('devilscatacomb_stone3_fail1', get_server_timer_arg())
					clear_server_timer('devilscatacomb_stone3_fail2', get_server_timer_arg())
					clear_server_timer('devilscatacomb_stone3_fail', get_server_timer_arg())
				end
			else
				server_timer('devilscatacomb_stone3_stop_timer', 1, get_server_timer_arg())
			end
		end

		when devilscatacomb_stone3_stop_timer.server_timer begin
			clear_server_timer('devilscatacomb_stone3_update', get_server_timer_arg())
		end

	-------------------------------------
	-- Catacombes du Diable : Niveau 4 --
	-------------------------------------

		when devilscatacomb_stone3_end.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice("Vous voilà au quatrième étage, vous devez trouver")
				d.notice("le bon chemin parmi le labyrinthe pour accéder au")
				d.notice("niveau supérieur. L'endroit est rempli de")
				d.notice("monstres prêts à vous sauter dessus.")
				d.notice("Attention : vous n'avez que 20 minutes ! ")

				d.jump_all(3072+70, 12032+580)

				server_timer('devilscatacomb_stone4_fail1', 5*60, get_server_timer_arg())
				clear_server_timer('devilscatacomb_stone3_update', get_server_timer_arg())

				d.regen_file("data/dungeon/devilscatacomb4_regen.txt")
				d.spawn_mob(30104, 500, 718)

				local labyrinthe = number(1, 5)

				if labyrinthe == 1 then
					d.spawn_mob(10823, 70, 672)
					d.spawn_mob(10832, 142, 865)
					d.spawn_mob(10829, 431, 935)
					d.spawn_mob(10806, 243, 854)
					d.spawn_mob(10815, 181, 667)
					d.spawn_mob(10835, 328, 779)
				end

				if labyrinthe == 2 then
					d.spawn_mob(10831, 70, 672)
					d.spawn_mob(10827, 431, 935)
					d.spawn_mob(10822, 144, 919)
					d.spawn_mob(10805, 429, 842)
					d.spawn_mob(10835, 181, 667)
				end

				if labyrinthe == 3 then
					d.spawn_mob(10831, 70, 672)
					d.spawn_mob(10813, 431, 935)
					d.spawn_mob(10811, 224, 779)
					d.spawn_mob(10823, 189, 711)
					d.spawn_mob(10822, 144, 919)
					d.spawn_mob(10835, 429, 842)
				end

				if labyrinthe == 4 then
					d.spawn_mob(10810, 131, 668)
					d.spawn_mob(10804, 68, 815)
					d.spawn_mob(10813, 281, 636)
					d.spawn_mob(10823, 274, 841)
					d.spawn_mob(10835, 144, 919)
				end

				if labyrinthe == 5 then
					d.spawn_mob(10814, 131, 668)
					d.spawn_mob(10811, 274, 842)
					d.spawn_mob(10827, 189, 711)
					d.spawn_mob(10835, 55, 864)
				end
			end
		end

		when devilscatacomb_stone4_fail1.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice("Il reste 15 minutes.")
				server_timer('devilscatacomb_stone4_fail2', 5*60, get_server_timer_arg())
			end
		end

		when devilscatacomb_stone4_fail2.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice("Il reste 10 minutes.")
				server_timer('devilscatacomb_stone4_fail3', 5*60, get_server_timer_arg())
			end
		end

		when devilscatacomb_stone4_fail3.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice("Il reste 5 minutes.")
				server_timer('devilscatacomb_stone4_fail', 5*60, get_server_timer_arg())
			end
		end

		when devilscatacomb_stone4_fail.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice("Temps écoulé!")
				d.exit_all()
			end
		end

		when 30104.chat."Laissez-moi passer !" with pc.in_dungeon() and pc.get_map_index() >= 760000 and pc.get_map_index() < 770000 begin
			---                                                   l
			say("Cela est très impressionnant, vous avez réussi à ")
			say("traverser entièrement le labyrinthe ! Je vous")
			say("envoie donc tous au prochain niveau.")
			wait()

			d.notice("Vous voilà au cinquième niveau des catacombes du");
			d.notice("mal. Ici vous devez tuer Tartare qui garde sur");
			d.notice("lui un totem grimace qui vous permettra d'accéder");
			d.notice("au sixième niveau une fois déposé sur");
			d.notice("l'Obélisque basaltique situé en haut de la montagne.");

			clear_server_timer('devilscatacomb_stone4_fail1', get_server_timer_arg())
			clear_server_timer('devilscatacomb_stone4_fail2', get_server_timer_arg())
			clear_server_timer('devilscatacomb_stone4_fail3', get_server_timer_arg())
			clear_server_timer('devilscatacomb_stone4_fail', get_server_timer_arg())

			d.jump_all(3072+846, 12032+906)
			d.regen_file("data/dungeon/devilscatacomb5_regen.txt")
			d.spawn_mob(30102, 850, 740)

			local tartare = number(1, 5)

			if tartare == 1 then
				d.spawn_mob(2591, 849, 591)
			end

			if tartare == 2 then
				d.spawn_mob(2591, 719, 660)
			end

			if tartare == 3 then
				d.spawn_mob(2591, 692, 818)
			end

			if tartare == 4 then
				d.spawn_mob(2591, 987, 832)
			end

			if tartare == 5 then
				d.spawn_mob(2591, 999, 654)
			end
		end

	-------------------------------------
	-- Catacombes du Diable : Niveau 5 --
	-------------------------------------

		when 2591.kill with pc.in_dungeon() and pc.get_map_index() >= 760000 and pc.get_map_index() < 770000 begin
			d.notice("Félicitations ! Vous avez tué Tartare, déposez le");
			d.notice("totem grimace qu'il a lâché sur l'obélisque");
			d.notice("basaltique, pour accéder au prochain niveau.");
			game.drop_item(30312, 1)
		end

		when 30102.chat."Accéder au sixième niveau." with pc.in_dungeon() and pc.get_map_index() >= 760000 and pc.get_map_index() < 770000 begin
			if pc.count_item(30312)>=1 then
				---                                                   l
				say("Vous avez le totem grimace ! Je vous envoie")
				say("tout de suite au sixième niveau.")
				pc.removeitem("30312", 1)
				wait()

				d.notice("Vous voilà au sixième niveau des catacombes du");
				d.notice("mal. Ici vous devez tuer Charon en dernier pour");
				d.notice("accéder au dernier niveau des catacombes du mal !");
				d.jump_all(3072+1302, 12032+700)
				d.regen_file("data/dungeon/devilscatacomb6_regen.txt")
			else
				---                                                   l
				say("Pour accéder au sixième niveau, vous devez tuer")
				say("Tartare, il garde sur lui un totem grimace qui")
				say("vous permet d'accéder au sixième niveau.")
			end
		end

	-------------------------------------
	-- Catacombes du Diable : Niveau 6 --
	-------------------------------------

		when 2597.kill with pc.in_dungeon() and pc.get_map_index() >= 760000 and pc.get_map_index() < 770000 begin
			d.notice("Vous avez tué vaincu Charon ! Vous allez");
			d.notice("maintenant être téléporté au dernier étage");
			d.notice("des Catacombes du Diable.")
			d.kill_all()
			d.jump_all(3072+75, 12032+1118)
			d.regen_file("data/dungeon/devilscatacomb7_regen.txt")
		end

	-------------------------------------
	-- Catacombes du Diable : Niveau 7 --
	-------------------------------------

		when 2598.kill with pc.in_dungeon() and pc.get_map_index() >= 760000 and pc.get_map_index() < 770000 begin
			d.notice("Azraël est vaincu. La paix règne enfin dans");
			d.notice("les Catacombes du Diable. Vous allez maintenant");
			d.notice(" être téléporté à la surface.")
			d.kill_all()
			timer("devilscatacomb_end_jump", 60)
		end

		when devilscatacomb_end_jump.timer begin
			d.exit_all()
		end
	end
end

 

--------------------------------
-- Les Catacombes Démoniaques --
--------------------------------
-- Coordonnées :
-- Fin niveau 1   :	303 323
-- Debut niveau 2 :	550 50
-- Fin niveau 2   :	740 226
-- Debut niveau 3 :	1380 250
-- Debut niveau 4 :	70 573
-- Debut niveau 5 :	846 906
-- Debut niveau 6 :	1302 700
-- Salle du Boss  :	75 1118
--------------------------------

 

Voici l'erreur Client:

 

0802 15:58:48601 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/effect/background/tent_s_lamp.mse) Error
0802 15:58:48602 :: CArea::SetEffect effect register error d:/ymir work/effect/background/tent_s_lamp.mse
0802 15:58:52222 :: ResourceManager::GetResourcePointer: NOT SUPPORT FILE g:\(ÁÖ)À̸̹£\3d\õÀDZº¹ý»ç\õÀDZº¹ý»ç02.psd

 

NOT SUPPORT FILE g:\(ÁÖ)À̸̹£\3d\õÀDZº¹ý»ç\õÀDZº¹ý»ç02.psd, l'Erreur continue à rester même une fois supprimer du fichier monster3

 

Voici l'erreur Server/Core4:

 

SYSERR: Aug  2 16:07:31 :: Entergame: !GetMovablePosition (name [GA]Zeus 307200x1203200 map 76 changed to 315200x1209200)

 

En postant ma demande d'aide, j'affirme avoir lu et accepté le Règlement de Funky-Emulation.

 

Lien vers le commentaire
Partager sur d’autres sites

  • Réponses 2
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans cette question

Meilleurs contributeurs dans cette question

2 réponses à cette question

Messages recommandés

  • 0

Plop,

 

!GetMovablePosition voudrais dire que le personnage est dans une position ou il ne peut pas bouger/position ambigu ce qui expliquerais le kick de la map mais mieux vaut rechercher cette fonction dans les sources pour savoir de quoi il s'agit vraiment, sinon tu peut toujours jouer avec les coordonnées de la quête pour voir ce qui ce passe si tu les changes.

 

LoadScript(d:/ymir work/effect/background/tent_s_lamp.mse) Error

erreur de lecture donc le fichier doit surement être absent 

NOT SUPPORT FILE g:\(ÁÖ)À̸̹£\3d\õÀDZº¹ý»ç\õÀDZº¹ý»ç02.psd

format non supporter par le client  (il y'a parfois des doublons)

Lien vers le commentaire
Partager sur d’autres sites

  • 0
  • Retraité

Juste comme ça donne nous le MapProperty de la map des Catacombes

Ceci dit le fait qu'il te téléphone G2 veut peut être dire qu'il te téléporte dans la map dont les coordonnées sont les plus proches pour les raisons évoquées par iryzz

Lien vers le commentaire
Partager sur d’autres sites

Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.


  • brilliantdiscord_widget
  • Flux d'Activité

    1. 37
    2. 21

      Metin2 en 2020 peut-on en parler?

    3. 0

      METIN2Project

    4. 3

      Ressources - UnPack - Metin2 Client - Officiel

    5. 0

      Barre des tâches d'argent étendue

    6. 16

      Redémarrage automatique des channels

    7. 16

      Multi Logo GM / SGM / GA

  • En ligne récemment

    • Aucun utilisateur enregistré regarde cette page.

Information importante

Conditions d’utilisation / Politique de confidentialité / Règles / Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.