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

c'est ce que j'ai fais et cela fonctionne bel et bien, merci.

Par contre j'aurais encor une question; j'ai placé par défaut la pierre metin 8037, donc celle qui lance la quête, dans la map en question avec un temps de respawn 900s 75%.

Je voudrais que la quête ne puisse pas se lancer tant qu'elle n'est pas terminé par d'autres joueurs, vous comprenez ?

Comment je pourrais faire ça ?

Lien vers le commentaire
Partager sur d’autres sites

  • 0

En fait je ne veux pas qu'au bout des 900s un autre joueur vienne et détruise le metin et que les pierres de la quête tombent par dessus celles qui n'ont pas encore été détruite vu que la quête n'aura pas été fini auparavant. J'ai du mal à l'expliquer :(

 

Un peu comme ce topic (https://fr.metin2.dev/topic/11602-comment-bloquer-une-quête/) sauf que pour moi c'est pour toute une map et pendant que la quête ne s'est pas fini impossible de la relancer :)

Lien vers le commentaire
Partager sur d’autres sites

  • 0
  • Retraité

Je comprend mieux ^^

Donc sur le coup, il faudrait utiliser une variable " serveur ", donc la fonction eventflag.

 

event_flag

game.set_event_flag("nom", valeur") -- Cette fonction vous permet de créer une variable de type event_flag (c'est à dire qui n'est pas liée à un personnage en particulier mais au serveur complet) de nom "nom". Attention, vous ne pouvez retenir qu'un nombre via cette fonction. Nous verrons plus tard comment retenir une chaîne de caractères.

 

game.get_event_flag("nom") -- Permet d'afficher la valeur de la variable de type event_flag de nom "nom".

 

 

Donc quand le jouer kill la première metin, tu peux faire ça:

 

game.set_event_flag("metin", 0)

 

Bien sûr, dans le when kill il faut rajouter la condition:

 

if game.get_event_flag("metin") == 1 then

 

Tu peux aussi rajouter ça (c'est pour la suite:

 

game.set_event_flag("nombre", 0)

 

Après il faut faire une autre variable qui va te servir de "compteur" de metin. Tu fais un autre when avec toutes les Metins qui spawn puis ensuite tu incrémentes la variable. Voici un exemple:

 

when 8036.kill or 8038.kill or 8039.kill or 8040.kill begin

       if game.get_event_flag("nombre") >= 4 then
                 say("Les 4 metins ont été kill")
       else
                  game.set_event_flag("nombre", game.get_event_flag("nombre"))
       end

end

 

Après à toi de voir comment tu veux faire mais voici la base :P

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

  • 0
  • Retraité

Dans le premier when kill, il faut rajouter ça: game.set_event_flag("metin", 0)

Il faut aussi rajouter ça: game.set_event_flag("nombre", 0)

 

Et dans le deuxième when kill, dans le if, tu mets: game.set_event_flag("metin", 1)

 

Faut aussi rajouter un when login, avec un if:

 

if game.set_event_flag("metin") ~= 1 and game.set_event_flag("metin") ~= 0 then
      game.set_event_flag("metin", 1)
end

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

  • 0

Okay la voilà:

quest trone_naga begin
state start begin
	when 8037.kill with pc.get_map_index() == 260 begin

		if game.set_event_flag("metin", 0) then
			game.set_event_flag("nombre", 0)
			---                                                   l
			say("Les forces du mal on surgit du sol, d'autres Metin")
			say("sont apparut vous devez les détruire pour accéder.")
			say("au niveau 2, courage.")
			mob.spawn(8036, 531, 505, 1)
			mob.spawn(8038, 235, 507, 1)
			mob.spawn(8039, 165, 349, 1)
			mob.spawn(8040, 276, 187, 1)
		end
	end

	when 8036.kill or 8038.kill or 8039.kill or 8040.kill begin

		if game.get_event_flag("metin, 1") >= 4 then
			---                                                   l
			say("Les 4 metins ont été réduit en cendre, détruisez")
			say("le dernier pour rejoindre le côté obscur...")
		else
			game.set_event_flag("nombre", game.get_event_flag("nombre"))
		end
	end

	when login begin

		if game.set_event_flag("metin") ~= 1 and game.set_event_flag("metin") ~= 0 then
			game.set_event_flag("metin", 1)
		end
	end
end
end

Lien vers le commentaire
Partager sur d’autres sites

  • 0
quest trone_naga begin
state start begin
	when 8037.kill with pc.get_map_index() == 260 and game.get_event_flag("metin_fini") == 0 begin
		game.set_event_flag("metin_fini", 1)
		say("Les forces du mal on surgit du sol, d'autres Metin")
		say("sont apparut vous devez les détruire pour accéder.")
		say("au niveau 2, courage.")
		mob.spawn(8036, 531, 505, 1)
		mob.spawn(8038, 235, 507, 1)
		mob.spawn(8039, 165, 349, 1)
		mob.spawn(8040, 276, 187, 1)
	end
       when 8036.kill and 8038.kill and 8039.kill and 8040.kill with pc.get_map_index() == 260 and game.get_event_flag("metin_fini") == 1 begin
		---                                                   l
		say("Les 4 metins ont été réduites en cendre")
		game.set_event_flag("metin_fini", 0)
       end
	when login with pc.get_map_index() == 260 and game.get_event_flag("metin_fini") == 1 begin
		notice("Il reste encore des metins à détruire !")
	end
   end
end

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

  • 0

Merci par contre dans le second when tu as mis des "and" entre chaque kill ce qui m'a fais afficher une erreur de compil de la part de VPC je les ai donc remplacé par des "or" et plus d'erreur. J'ai aussi testé la quête in game et ça ne fonctionne pas, le metin qui lance la quête (le 8037) respawn... Et aussi le message "Les 4 Metins ont été réduit en cendre" s'affiche après chaque kill alors que je voudrais qu'il apparaisse lorsque que les joueurs tuent le DERNIER Metin, tu comprend ? :(

Lien vers le commentaire
Partager sur d’autres sites

  • 0

J'aurai mis un "s" a cendres ce n'ai pas très grave tu vas me dire...Pour le principe je fait mon lourd ;) en tous les cas bravo pour la mise en place de cette quètes...

.jpg

Il ne sert à rien pour l'homme de gagner la Lune s'il vient à perdre la Terre...

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.