AccueilPortailCalendrierFAQRechercherMembresGroupesS'enregistrerConnexion

Partager | 
 

 Gestion de quêtes très simplifié

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
tonyryu
Rôdeur
Rôdeur


Nombre de messages: 19
Date d'inscription: 10/01/2008

MessageSujet: Gestion de quêtes très simplifié   Lun 5 Mai 2008 - 23:07

Voici un nouveau script de gestion de quête très simplifié. La gestion de quête est l'un de mes premiers travaux sur RPGmakerXP. La première version était très complexe à mettre en place, légèrement buggée, et pas forcément esthétique. Corwin, a donc ensuite remodelé le systeme pour qu'il soit plus fonctionnel et surtout bien mieux visuellement. Hors, je me suis rendu compte, que beaucoup de gens avaient des difficultés à le mettre en place.
J'ai donc refait un systéme complet, plus intuitif, ressemblant à la gestion de quêtes sur WoW (Descriptif, objectif(s), récompense(s)). La seule chose a faire, contrairement à l'ancien systeme, et de copier les scripts au dessus du script main et vous avez un systeme fonctionnel. Il reste toujours à définir les quêtes, mais je fournis une page web qui permet de générer le code à copier.

Voici les scripts:
Définition de quêtes : http://tonyryu.free.fr/datas/scripts_rmxp/Def_Quete.txt
Gestion des quêtes : http://tonyryu.free.fr/datas/scripts_rmxp/Gestion_Quete.txt
et l'image à importer dans le dossier 'Picture' :


Vous êtes parfaitement libre de choisir une autre image, du moment qu'elle à le nom de 'grim1'

Voici le lien qui vous permettra de générer le code correspondant à vous quêtes : http://tonyryu.free.fr/pages/RMXP/quete_gen.html

Je récapitule les commandes à utiliser pour intéragir avec la gestion de quête :

$scene = Scene_Quete.new # Ouvre le livre de quete
$game_party.quete_demarrer(id_quete) # Démarre une quete
$game_party.quete_echouer(id_quete) # Fait echouer la quete
$game_party.quete_finir(id_quete) # Fait réussir la quete et donne les récompenses
$game_party.quete_parler(nom) # Permet de valider l'objectif de parler, quelque soit les quetes
$game_party.quete_termine?(id_quete) # Vérifie si les objectifs sont terminé # Dans commande condition
$game_party.quete_trouve?(id_quete) # Vérifie si la quête est trouvé # Dans commande condition
$game_party.quete_en_cours?(id_quete) # Vérifie si la quête est en cours # Dans commande condition
$game_party.quete_reussie?(id_quete) # Vérifie si la quête est réussi # Dans commande condition
$game_party.quete_echoue?(id_quete) # Vérifie si la quête est échoué # Dans commande condition

Les monstres tués sont automatiquement comptabilisés

Pour ajouter une quête, allez dans le script de définition de quête, et vous y trouverez cette classe au début :
Code:
#==============================================================================
# ■ Data_Quete
#------------------------------------------------------------------------------
#  Contient la définition des quêtes
#  Version  Date          Auteur        Commentaires
#  1.00      12/09/2007    Tonyryu      Création
#
#==============================================================================
class Data_Quete
  attr_reader  :tab_def_quete
 
  #--------------------------------------------------------------------------
  # ● initialize
  #--------------------------------------------------------------------------
  def initialize
    # Création du tableau de quêtes
    @tab_def_quete = []
 
    # Définition des quêtes
    @tab_def_quete[0] = { "nom" => "Allégeance au roi de Flid",
                          "desc" => "Votre arrivée au sein du royaume ne sait"+
                                  "\npas faite sans remous."+
                                  "\nAller porter allégeance au roi de Flid."+
                                  "\n "+
                                  "\nIl serait bon de ne pas trainer.",
                          "but" => [["PARLER",0,"Roi de Flid"],["CHASSER",5,1]],
                          "gain" => [["EXP",2000,],["ARGENT",300,],["OBJ",1,10]]}

    @tab_def_quete[1] = { "nom" => "Force d'outre-tombe II",
                          "desc" => "Cela fait maintenant 2 semaines que les"+
                                  "\nfantomes envahissent nos plaines, il faut"+
                                  "\nles réexpédier d'où ils viennent. Usez"+
                                  "\nde tous les moyens nécessaires.",
                          "but" => [["CHASSER", 5, 1]],
                          "gain" => [["ARME",1,5],["OBJ",2,1],["EXP",200]]} 

  end
end

Si vous avez déjà généré une quête via la page web, vous pouvez constater que vous retrouver à peu de chose près les mêmes blocs :
Code:
    @tab_def_quete[1] = { "nom" => "Force d'outre-tombe II",
                          "desc" => "Cela fait maintenant 2 semaines que les"+
                                  "\nfantomes envahissent nos plaines, il faut"+
                                  "\nles réexpédier d'où ils viennent. Usez"+
                                  "\nde tous les moyens nécessaires.",
                          "but" => [["CHASSER", 5, 1]],
                          "gain" => [["ARME",1,5],["OBJ",2,1],["EXP",200]]} 

Les descriptifs de quêtes, fournis avec le script, sont des exemples, n'hésitez surtout pas à les remplacer par vos définitions.

Attention, il faut juste respecter une chose, l'ID (index) de la quête, utilisé pour le tableau '@tab_def_quete'. La première définition doit avoir l'ID égale à 0, et ensuite il faut incrémenter de 1 en 1.

Voici un petit exemple d'événement :
Code:
Map ID: 1, Nom: MAP001
Evènement ID: 004, Nom: EV004

------ PAGE 1 ------

Conditions de l'évènement :

Apparence:
- Character : 010-Lancer02, Ton : 0, Regarde en Bas, Modèle n°0, Opacité : 255, Transparence : Normal

Mode de déplacement:
- Type de déplacement : Fixe
- Vitesse de déplacement: Lent
- Fréquence de déplacement: Basse

Options:
- Animé lorsqu'il se déplace

Conditions de déclenchement:
- Par la touche action

Commandes d'évènement:

<>Condition : si Script : '$game_party.quete_trouve?(1)'
  <>Condition : si Script : '$game_party.quete_reussie?(1)'
    <>Message : Nous sommes heureux de te compter
    :        : parmis nous!!
    <>
  : Sinon
    <>Condition : si Script : '$game_party.quete_termine?(1)'
      <>Message : Je vois que tu as fait ce qu'il fallait,
      :        : prend ta récompense.
      <>Script : $game_party.quete_finir(1)
      <>
    : Sinon
      <>Message : Continue ainsi.
      <>
    : Fin
    <>
  : Fin
  <>
: Sinon
  <>Message : Quelques mort-vivants nous agace.
  :        : Veux tu nous aider à les renvoyer
  :        : d'où ils viennent?
  <>Proposer un choix : Oui, Non
  : Si [Oui] faire :
    <>Message : Merci pour ton aide!
    <>Script : $game_party.quete_demarrer(1)
    <>
  : Si [Non] faire :
    <>Message : Tampis, je t'aurais cru plus courageu.
    <>
  : Fin
  <>
: Fin
<>


Et pour finir, un petit screenshoot du rendu :


N'hésitez pas à poster des commentaires ou des demandes d'amélioration.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
 

Gestion de quêtes très simplifié

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

 Sujets similaires

-
» Voici les quêtes!
» Corrigé 1er Exo Merise (BD) "Gestion service Restauran
» Cat Mario : un jeu très dur.
» Mobilier industriel très original
» RAPPORT PFE :Développement d?un programme de gestion de devis, bons de livraison, factures et notes de crédit

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
 :: BANQUE DU CODE :: Antre des Scripts :: Système-