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

Besoin d'aide pour quête


Letueurakuu

Question

Bonjour ou bonsoir à tous, je vous poste ce message car je n'ai pas trouvé un topic similaire ni une réponse adéquat à mon problème. J'ai en fait un petit problème, j'aimerais que mes joueurs une fois qu'ils aient détruits un metin d'autres apparaissent à d'autres endroits mais que tout ceci ce passe dans une map précise. j'ai déjà essayer avec ça:

 

---------------------------

quest trône_naga begin

state start begin

when 8036.kill with pc.get_map_index() == 260 begin

spawn.mob(8037, 531, 505, 1)

spawn.mob(8038, 235, 507, 1)

spawn.mob(8039, 165, 349, 1)

spawn.mob(8040, 276, 187, 1)

end

end

end

---------------------------

Merci d'avance pour votre aide.

Lien vers le commentaire
Partager sur d’autres sites

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

Meilleurs contributeurs dans cette question

Meilleurs contributeurs dans cette question

Images postées

Messages recommandés

  • 0
  • Retraité

Parfait.

Donc oui Dober, j'avais peut être raison. La map n'est peut être pas considérée comme un donjon. Simple hypothèse bien-sûr, faut les vérifier après.

 

Je te proposerai une quête demain soir que je vais coder " a ma façon".

Désolé de te faire attendre aussi longtemps, depuis le temps que tu es sur cette quête. Le soucis est que ce genre de problème est compliqué à résoudre sur le forum. Etant donné que tu as que quelques bases, le lancement dans le codage de quêtes donjon peut être compliqué:P

  • Love 1
Lien vers le commentaire
Partager sur d’autres sites

  • 0

Non tu n'as pas raison puisque la map est considérée comme un dungeon après le d.new_jump logiquement, c'est considéré comme un d.join() il me semble.

La preuve, letueurakuu remplace say("test") par d.notice("test") et dit nous si ça fonctionne ^^

 

EDIT : d'ailleurs, tu t'es trompé sur une valeur de tes flag; aussi, notice_all est visible par tout le monde même ceux en dehors de ta map c'est pour ça que je t'avais mis notice_in_map() qui sera visible seulement par les joueurs dans la map.

 

Pour être sûr, essaye un d.notice() à la place du say() de Calypso.

Lien vers le commentaire
Partager sur d’autres sites

  • 0
quest trone_naga begin
   state start begin
       when login with pc.get_map_index() == 260 begin
           notice("Voici l'Instance de la Reine Naga, Détruisez la pierre Metin")
           notice("Pour accéder à son trône.")
           mob.spawn(8037, 531, 350)

           if game.get_event_flag("metin") == 0 then
               game.get_event_flag("metin", 1)
               game.set_event_flag("nombre", 1)
           end
       end

       when 8037.kill with pc.get_map_index() == 260 begin

           if game.get_event_flag("metin") == 1 then
               game.set_event_flag("metin", 0)
               game.set_event_flag("nombre", 0)
           end

           timer("naga_jump_1", 6)
		notice_in_map(260, "Vous allez passer à l'étage supérieur dans 6 secondes.")
       end

       when naga_jump_1.timer begin
           d.new_jump_all(260, 7424+340, 6144+595)
       end

       when login with pc.get_map_index()>=2600000 and pc.get_map_index()<2700000 begin

           d.notice("La destruction du premier Metin à ammené à l'apparition")
           d.notice("d'autres Metins, détruisez-les tous !")
           d.spawn_mob(8036, 531, 505, 1)
           d.spawn_mob(8038, 235, 507, 1)
           d.spawn_mob(8039, 165, 349, 1)
           d.spawn_mob(8040, 276, 187, 1)
       end

       when kill with pc.get_map_index()>=2600000 and pc.get_map_index()<2700000 and pc.in_dungeon() begin
		if npc.get_race() == 8036 or
			npc.get_race() == 8038 or
			npc.get_race() == 8039 or
			npc.get_race() == 8040 then
			d.setf("metin_count", d.getf("metin_count") + 1)
			if d.getf("metin_count") == 1 then
				d.notice("Il reste 3 metins à détruire pour accéder au trône !")
			end

			if d.getf("metin_count") == 2 then
				d.notice("Il reste 2 metins à détruire pour accéder au trône !")
			end

			if d.getf("metin_count") == 3 then
				d.notice("Il reste une metin à détruire pour accéder au trône !")
			end

			if d.getf("metin_count") == 4 then
				d.notice("Vous allez accéder au trône dans 6 secondes !")
				timer("naga_jump_2", 6)
			end
		end
	end

       when naga_jump_2.timer begin
           d.jump_all(260, 7424+684, 6144+716)
       end
   end
end

  • Love 1
Lien vers le commentaire
Partager sur d’autres sites

  • 0

Alors pour résumer: La première pierre Metin ne tombe pas Doberman

Mais j'ai fais un /m 8037 pour tester la suite de la quête et je me suis aperçu que la notice_in_map() n'affichait qu'un gros 260, comme si l'ont faisais un /b 260, et pas le reste de la phrase. Ensuite c'est le dernier d.jump_all() qui ne fonctionne pas après la phrase des 6 secondes. :(

Lien vers le commentaire
Partager sur d’autres sites

  • 0

J'ai pas touché au début de la quête, si elle spawnait avant elle est censée toujours spawn maintenant.

 

quest trone_naga begin
   state start begin
       when login with pc.get_map_index() == 260 and game.get_event_flag("metin") == 0 begin
		notice("Voici l'Instance de la Reine Naga, Détruisez la pierre Metin")
           notice("Pour accéder à son trône.")
           mob.spawn(8037, 531, 350, 1)
		game.get_event_flag("metin", 1)
	end

       when 8037.kill with pc.get_map_index() == 260 and game.get_event_flag("metin") == 1 begin
		game.set_event_flag("metin", 0)
           timer("naga_jump_1", 6)
           notice_in_map("Vous allez passer à l'étage supérieur dans 6 secondes.")
       end

       when naga_jump_1.timer begin
           d.new_jump_all(260, 7424+340, 6144+595)
       end

       when login with pc.get_map_index()>=2600000 and pc.get_map_index()<2700000 begin

           d.notice("La destruction du premier Metin à ammené à l'apparition")
           d.notice("d'autres Metins, détruisez-les tous !")
           d.spawn_mob(8036, 531, 505, 1)
           d.spawn_mob(8038, 235, 507, 1)
           d.spawn_mob(8039, 165, 349, 1)
           d.spawn_mob(8040, 276, 187, 1)
       end

       when kill with pc.get_map_index()>=2600000 and pc.get_map_index()<2700000 and pc.in_dungeon() begin
           if npc.get_race() == 8036 or
               npc.get_race() == 8038 or
               npc.get_race() == 8039 or
               npc.get_race() == 8040 then
               d.setf("metin_count", d.getf("metin_count") + 1)
               if d.getf("metin_count") == 1 then
                   d.notice("Il reste 3 metins à détruire pour accéder au trône !")
               end

               if d.getf("metin_count") == 2 then
                   d.notice("Il reste 2 metins à détruire pour accéder au trône !")
               end

               if d.getf("metin_count") == 3 then
                   d.notice("Il reste une metin à détruire pour accéder au trône !")
               end

               if d.getf("metin_count") == 4 then
                   d.notice("Vous allez accéder au trône dans 6 secondes !")
                   timer("naga_jump_2", 6)
               end
           end
       end

       when naga_jump_2.timer begin
           d.new_jump(260, 7424+684, 6144+716)
       end
   end
end

 

Si le dernier tp marche toujours pas remplace d.new_jump par d.new_jump_all

  • Love 1
Lien vers le commentaire
Partager sur d’autres sites

  • 0

Sayais j'ai réussi à trouver, j'ai fais un simple 'd.jump(coord.x, coord.y)' sans l'indicatif '260' de la map et parfait. Maintenant j'aimerais juste savoir comment faire pour que les metins après le 'when login' ne spawn qu'une fois, car là quand je test cela me respawn autant de fois que de joueurs téléportés à la map. Je sais que c'est la fonction 'game.get_event_flag()' et 'game.set_event_flag()' mais je ne sais pas du tout comment faire :huh:

when login with pc.get_map_index()>=2600000 and pc.get_map_index()<2700000 begin

		if game.get_event_flag("metin", 1) and game.get_event_flag("nombre", 1) then
			game.set_event_flag("metin", 0)
			d.spawn_mob(8038, 235, 507, 1)
			d.spawn_mob(8039, 165, 349, 1)
			d.spawn_mob(8040, 276, 187, 1)
		end

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Ah désolé je croyais que la fonction fonctionnait comme l'autre avec l'indicatif de l'index de la map. Utilise d.jump_all() n'oublie pas.

 

when login with pc.get_map_index()>=2600000 and pc.get_map_index()<2700000 begin
if game.get_event_flag("metin") == 0 and game.get_event_flag("nombre") == 0 then
	game.set_event_flag("metin", 1)
	game.set_event_flag("nombre", 1)
	d.spawn_mob(8038, 235, 507, 1)
	d.spawn_mob(8039, 165, 349, 1)
	d.spawn_mob(8040, 276, 187, 1)
end
end

 

N'oublie pas aussi de remettre les flags à 0 après que les metins soient détruites. J'ai aussi rajouté game.set_event_flag("nombre", 1) je ne sais pas si tu l'avais oublié, si c'est pas le cas retire le ^^

  • Love 1
Lien vers le commentaire
Partager sur d’autres sites

  • 0

En fait je n'ai as bien saisis, comment est-ce que je peux faire pour placer ça avec le kill vu qu'il y a le count ?

when login with pc.get_map_index()>=2600000 and pc.get_map_index()<2700000 begin

		if game.get_event_flag("metin") == 0 and game.get_event_flag("nombre") == 0 then
			game.set_event_flag("metin", 1)
			game.set_event_flag("nombre", 1)
			d.spawn_mob(8038, 235, 507, 1)
			d.spawn_mob(8039, 165, 349, 1)
			d.spawn_mob(8040, 276, 187, 1)
		end
	end

	when kill with pc.get_map_index()>=2600000 and pc.get_map_index()<2700000 and pc.in_dungeon() begin

		if npc.get_race() == 8038 or
			npc.get_race() == 8039 or
			npc.get_race() == 8040 then
			d.setf("metin_count", d.getf("metin_count") + 1)

			if d.getf("metin_count") == 1 then
				d.notice("Il vous reste 2 metins à détruire.")
			end

			if d.getf("metin_count") == 2 then
				d.notice("Il vous reste 1 metin à détruire.")
			end

			if d.getf("metin_count") == 3 then
				timer("naga_jump_2", 15)
				d.notice("Toutes les pierres Metins ont étés réduites en cendres,")
				d.notice("vous allez être téléporté.")
			end
		end
	end

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.