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

Aide quest


bestou

Question

[Message d'introduction]Bonjours

 

Version des files :2012

Domaine (Base de données, Core, etc.) :winscp / quete

Votre niveau (débutant, intermédiaire, avancé) :debutant

 

Description du problème :Bonjours, je suis en plein apprentissage de creation de quete. J'ai commencer via le tuto de toblerone, cependant ma quete s'affiche pas IG. J'ai demande a OverDose, il a regarde, ont la modif, et ca ne change rien au probleme.

Comment reproduire le problème :Apprendre

 

Voila la quete:

Screen

[

Hidden Content

    Give reaction to this post to see the hidden content.

 

 

 

En postant ma demande d'aide, j'affirme avoir lu et accepté le règlement des demandes d'aides.

Modifié par Funky Emulation
Core X - External 2 Internal
Lien vers le commentaire
Partager sur d’autres sites

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

Meilleurs contributeurs dans cette question

Meilleurs contributeurs dans cette question

21 réponses à cette question

Messages recommandés

  • 0

Hum...

Première question toute bête : la quête est-elle bien mise dans locale_list avec une ligne vide après ?

 

Ensuite, je n'aime pas trop ceci

 

when login begin
       if pc.getqf("debut") == 0 then
               pc.setqf("debut", 1)
               set_state(etape1)
       end
end

 

Ce n'est pas très logique... S'il n'existe pas il ne peut théoriquement pas avoir la valeur 0 :o D'un point de vue algorythmique, ça serait mieux de vérifier qu'il n'est pas égal à 1. De plus, je ne suis pas certain mais le set_state() pourrait peut être prendre des guillemets.

 

when login begin
       if pc.getqf("debut") != 1 then
               pc.setqf("debut", 1)
               set_state("etape1")
       end
end

 

Essaie comme ça.

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Non les "set_state" ne doivent pas compter de guillemets et normalement oui ta variable "debut" doit être égale à 0 si tu ne l'as pas encore modifiée. Et dans locale_list c'est bien le nom du fichier que t'as mis ? (et pas le nom de ta quest "Bienvenue") vérifie aussi que le nom correspond (faute de frappe).

Et juste comme ça ajoute un "clear_letter".

 

Après si ton but est de faire plusieurs quêtes qui se suivent comme les biolos ce que tu peux faire c'est tout simplement retirer ta vérification avec la variable début et faire la quête, et à la fon t'ajoute :

 


set_quest_state("nom_de_ta_prochaine_quest_qui_suit_celle_là", "run")
set_state(__complete)

 

 

(state "__complete" très important pour que ta quête ne se relanec pas en boucle, par contre le nom tu peux le changer exemple : "fin" .)

et le 1er state de ta quête qui suit celle là sera "run" au lieu de start et il redirigera vers le second state qui contient les actions à effectuer dans ta quête :

 


state run begin
	when login or levelup begin
		set_state(state_au_choix)
	end		
end

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Pas tous a la fois ou je vais devenir fou. Je suis vraiment pire que debutant dans la creation de quete, j'esaie de comprendre deja. Donc explique mieux et non, fait ci, fait ca :).

 

Je dis pas ca mechament, mais j'essaie craiment de comprendre.

 

Pour la question du fichier local_list, il y a pas de soucis

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Les set_state peuvent avoir des guillemets sans problème. Essaye cette version de ta quête:

 

 

 

quest Bienvenue begin
state start begin
	when login with pc.getqf("debut") == 0 begin
		pc.setqf("debut", 1)
		set_state("etape1")
	end
end

state etape1 begin
	when letter begin
		send_letter("Commencement - etat 1")
		local v = find_npc_by_vnum(20092)

		if v!= 0 then
			target.vid("__TARGET__", v, "Commencement - etat 1")
		end
	end
	when button or info begin
           say_title("Commencement - etat 1")
           say("")
           say("Rend toi chez Hwa-Hee !")
           say("Elle aimerait te rencontrer.")
           say("")
	end

      when __TARGET__.target.click or
           20092.chat."Nouvel arrivant!" with pc.getqf("debut") == 1 begin
		target.delete("__TARGET__")
		say_title("Hwa-Hee")
		say("")
		say("Bien le bonjour aventurier. Je vais")
		say("t'enseigner les bases pour pouvoir jouer")
		say("dans ce monde violent.")
	end
end
   state __COMPLETE begin
end
end

Lien vers le commentaire
Partager sur d’autres sites

  • 0

A savoir, si j'ai homis de le preciser, c'est une quete que j'aimerai que les joueurs aillent une fois leurs perso cree. Ca serai une sorte d'apprentissage.

La quete la, c'est juste pour tester, histoire de comprendre. Ce que je comprend pas car IG, j'ai meme pas le parchemin avec la quete, j'ai strictement rien du tout.

Lien vers le commentaire
Partager sur d’autres sites

  • 0
  • Retraité

Dans la table "quest", delete le give_basic et utilise la quête de Craven.

Et d'ailleurs ton bordel en début de quête n'est pas utile, tes joueurs se connectent et le state de fin terminera la quête.

You can't be immortal,
But you can make people remember
you for thousands of years...

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Minutes les enfants, papy avance peu a peu la :), la quete fontionne a present. Faut que je la complete et modifie un peu

 

 

EDIT: Voila un screen :)

 

Screen

Hidden Content

    Give reaction to this post to see the hidden content.

 

Modifié par Funky Emulation
Core X - External 2 Internal
Lien vers le commentaire
Partager sur d’autres sites

  • 0

La première quête que j'ai fait fonctionnait à moitié, comme l'a dit xSeRieSkiLls, la quête allait se répéter. Lorsqu'on parlait au PNJ, ça ne fonctionnait pas. Ce qui est sûr, c'est que la lettre était quand même affichait. Voilà la quête en testée et fonctionnelle:

 

 

 

quest Bienvenue2 begin
   state start begin
       when login begin
           set_state("etape1")
       end
   end

   state etape1 begin
       when letter begin
           send_letter("Commencement - etat 1")
           local v = find_npc_by_vnum(20092)

           if v!= 0 then
               target.vid("__TARGET__", v, "Commencement - etat 1")
           end
       end
       when button or info begin
           say_title("Commencement - etat 1")
           say("")
           say("Rend toi chez Hwa-Hee !")
           say("Elle aimerait te rencontrer.")
           say("")
       end

      when __TARGET__.target.click or 20092.chat."Commencement - etat 1" begin
           target.delete("__TARGET__")
           say_title("Hwa-Hee")
           say("")
           say("Bien le bonjour aventurier. Je vais")
           say("t'enseigner les bases pour pouvoir jouer")
           say("dans ce monde violent.")
		clear_letter()
		set_state(__complete)
       end
   end
   state __complete begin
   end
end

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Craven, celle que tu m'avais fait avant est bonne. J'ai editer le message sute au dessus du tien avec un screen. Et aussi, j'avait pas mis la ligne supplementaire dans le locale_list car avant ca buguait. Maintenant tout marche, je doit juste la completer la quete afin de lui donner un but. A savoir faire exp un joueur en lui faisant tuer un certain nombre de moob jusqu'au level 5 pour finir la quete). Voici un screen IG, j'ai modifié ce que le parchemin disait.

 

Tu sais me dire c'est c'est en bonne voie ?

Screen

Hidden Content

    Give reaction to this post to see the hidden content.

 

Modifié par Funky Emulation
Core X - External 2 Internal
Lien vers le commentaire
Partager sur d’autres sites

  • 0

Le problème de la première quête que je t'ai fait est lorsque tu clic sur le PNJ en question.

 

 

Il faut savoir si tu veux que ce soit sous forme de compteur, donc si la personne doit tuer X mobs avant d'avoir la suite de la quête, ou si c'est une fois arrivé au lvl 5 que la suite se débloque, peu importe le nombre de mobs qui sont tués.

 

 

 

bestou, ajoute moi sur skype, ça évitera de rester sur ce topic et on pourra parler plus "directement": jeje00857050

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Pour commencer, je demanderai de tuer un certain nombre de moob, apres revenir au pnj, et puis encore une fois re tuer un certain nombre moob. ( Je ferai en sorte une fois les 2 quetes faite, le personnage soit arriver level 5).

 

Donc il faut que je chipote, je sais pas trop comment pour y mettre des code ( je sais pas lesquels qui feront que les moob se deduisent, et que la suite de la quete poursuivent)

Lien vers le commentaire
Partager sur d’autres sites

  • 0
  • Retraité

J'ai fait une quête du même style à mes débuts, le joueur arrive, gagne des items et doit parler à une suite de PNJ avant d'entamer une mission de chasse.

Si tu la veux ... je l'ai sous la main.

You can't be immortal,
But you can make people remember
you for thousands of years...

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Re a tous, je reviens sur mon sp apres avoir testé un autre pour un amis.

 

Voici ce que j'ai, ( je sais meme plus cliquer sur le pnj ).

 

quest Bienvenue begin

state start begin

when login with pc.getqf("debut") == 0 begin

pc.setqf("debut", 1)

set_state("etape1")

end

end

 

state etape1 begin

when letter begin

send_letter("Commencement")

local v = find_npc_by_vnum(20092)

 

if v!= 0 then

target.vid("__TARGET__", v, "Commencement")

end

end

when button or info begin

say_title("Commencement")

say("")

say("Bonjour jeune aventurier, il existe dans ce monde")

say(" beaucoup de danger qu'il te faudra braver.")

say("Pour ce faire, il te faudra apprendre les rudiments")

say("du combat afin de bien survivre dans ce monde")

say("rempli de creatures fort hostile.")

say("Pour commencer, rend toi chez Hwa-Hee.")

say("Elle aimerait te rencontrer pour pouvoir te guider")

say("afin de bien commencer ton futur periple.")

say("")

end

end

 

state etape2 begin

when __TARGET__.target.click or

20092.chat."Nouvel apprentit !" with pc.getqf("debut") == 1 begin

target.delete("__TARGET__")

say_title("Hwa-Hee")

say("")

say("Bien le bonjour aventurier. Je vais")

say("t'enseigner les bases pour pouvoir jouer")

say("dans ce monde violent et hostile.")

say("Pour commencer, je vais te demander")

say("de bien vouloir tuer 12 chiots.")

say("Une fois termine, reviens me voir.")

end

end

end

 

Merci d'avance pour m'aider

Lien vers le commentaire
Partager sur d’autres sites

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


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.