Bonjour ou bonsoir!^^
Je vient vous présenter mon premier projet en C#!^^

Je me suis servir d'un Template: Quest Designer.
J'ai demander à l'auteur (Zarby), m'a autoriser de refaire le logiciel.
Donc, le logiciel n'est pas réellement fait par moi, mais de Zarby.
Tout ce que j'ai fait et de corriger des bugs, refaire l'apparence, rajouter etc... .

J’espère qui vous plaira!^^

VX Ace Quest Manager
Il vous permet de faciliter la création des quêtes, pour le script "Quest Journal" de Modern Algebra!

ChangeLog:
Spoiler :


Image:
Spoiler :


Composant requis{1.0.0 à 2.0.0}:
Spoiler :


Les bugs/Indisponibilité{1.2.6}:
Spoiler :


Prochaine Version{2.x.x}:
Spoiler :



Téléchargement du logiciel:

{01/1.0.0}Télécharger...
{02/1.2.6}Télécharger...
{03/2.0.0}Télécharger...


Téléchargement pack de langage du logiciel:

{01/2.0.0/Fr-1.0}Télécharger...
{02/2.0.0/En-1.0}Télécharger...


Téléchargement Aide:

{01/2.0.0/Fr-1.0}Télécharger...[/url]
{02/2.0.0/En-1.0}Télécharger...[/url]

Les remerciements:
-Zarby d'avoir créer le logiciel: Quest Designer
-Biwy de m'avoir aider a créer les scripts: QuestDatabase &  a modifier Quest MA
-Est a vous, qui utiliseront ce logiciel.


La création du .rvdata2:
Il seras mis dans l'aide, vous avez juste a prendre le script avec l'icon de script, et cliquer sur "Modifier", copier coller le
script au dessous de main ou material, et vous copier ceci au dessus de main (Obligatoire):

Code:

################################################################################
##### QUEST DATABASE
####################
################################################################################
##### Pour ajouter une nouvelle quête dans la QuestDatabase :
#
# /!\ Il faut faire tout ça avant de faire quest(id) /!\
#
# Pour ajouter une quête par le .txt, il faut ajouter une ligne comme ceci :
# ID|NAME|LEVEL|ICONE_INDEX|DESCRIPTION|OBJECTIF1#OBJECTIF2#OBJECTIF3#OBJECTIF4|OBJPRIME1#OBJPRIME2|CATEGORIE|BANNIERE|TEINTE|GIVER|LOCATION|EVENTCOMMUN|TYPE/ID/NUMBER#TYPE/NUMBER|LAYOUT
#
# Suivez l'exemple de la démo !
#
# /!\ Il faut faire tout ça avant de faire quest(id) /!\
#
################################################################################
##### Début du Script
#####################
#####################
# DataManager
# - Création et sauvegarde du fichier Quests.rvdata2
#####################
module DataManager  
  class << self
    alias lnd_quest load_normal_database
    def load_normal_database
      lnd_quest
      load_data_quest # Chargement
    end    
    def load_data_quest
      name = "Data/Quests.rvdata2"
      if FileTest.exist?(name)
        $data_quests = load_data(name)
      else
        initialize_data_quests(name) # Si le fichier n'existe pas, on le crée
      end
      update_quest if $quests
    end
    
    alias sgwr_quest save_game_without_rescue
    def save_game_without_rescue(index)
      save_data_quests
      sgwr_quest(index)
    end
    
    def initialize_data_quests(name)
      File.open(name.to_s, "a+")
     $data_quests = Hash.new   # il faut que $data_quests contienne au moins une ligne, sinon ça plante
      save_data_quests          # on le sauvegarde
    end
    
    def save_data_quests
      name = "Data/Quests.rvdata2"
      File.open(name, "w") do |file|
        Marshal.dump($data_quests, file)
      end
    end
    # Lecture des Quêtes contenues dans Quest.txt
    def update_quest
      $quests.each do |quest|
        $data_quests[quest[0]] = Quest.new
        $data_quests[quest[0]].name                 = quest[1]
        $data_quests[quest[0]].level                = quest[2]
        $data_quests[quest[0]].iconindex            = quest[3]
        $data_quests[quest[0]].description          = quest[4]
        $data_quests[quest[0]].objectives.mission   = quest[5]
        $data_quests[quest[0]].objectives.prime     = quest[6]
        $data_quests[quest[0]].categorie            = quest[7]
        $data_quests[quest[0]].banniere             = quest[8]
        $data_quests[quest[0]].teinte               = quest[9]
        $data_quests[quest[0]].giver                = quest[10]
        $data_quests[quest[0]].location             = quest[11]
        $data_quests[quest[0]].evcommun             = quest[12]
        $data_quests[quest[0]].rewards              = quest[13]
        $data_quests[quest[0]].layout               = quest[14]
      end
      $quests.clear
      save_data_quests          # on le sauvegarde
    end
  end
end

#####################
# Quest
# - Object qui correspond aux quêtes
#####################
class Quest
  attr_accessor :name, :giver, :description, :questnote, :location, :level, :iconindex, :teinte, :evcommun, :categorie, :banniere,
  :objectives, :rewards, :layout
  
  def initialize(*args) # Même ordre qu'au-dessus
    @name = args[0] ? args[0] : ""
   @giver = args[1] ? args[1] : ""
   @description = args[2] ? args[2] : ""
   @questnote = args[3] ? args[3] : ""
   @location = args[4] ? args[4] : ""
    @level = args[5] ? args[5] : 0
   @iconindex = args[6] ? args[6] : 0
    @teinte = args[7] ? args[7] : 0
    @evcommun = args[8] ? args[8] : 0
    @categorie = args[9] ? args[9] : 0
    @banniere = args[10] ? args[10] : ""
    @objectives = args[11] ? args[11] : Quest_Objectives.new
    @rewards = args[12] ? args[12] : Quest_Rewards.new
    @layout = args[13] ? args[13] : false
  end
end

#####################
# Quest Rewards
# - Object qui correspond aux primes des quêtes
#####################
class Quest_Rewards
  def initialize(*args) # Même ordre qu'au-dessus
    @rewards = args
  end
  def []=(id, a)
    @rewards[id] = a
  end
  def tb
    @rewards
  end
end

#####################
# Quest Rewards
# - Object qui correspond aux objectifs des quêtes (et le numéro des objectifs qui ont des primes)
#####################
class Quest_Objectives
  attr_accessor :mission, :prime
  def initialize(*args) # Même ordre qu'au-dessus
    @mission = args[0] ? args[0] : []
    @prime = args[1] ? args[1] : []
  end
end

#####################
# QuestData
# - Ajout de notre $data_quests au script de ModernAlgebra
#####################
module QuestData
  class << self
    def setup_quest(quest_id)
      if $data_quests.keys.include?(quest_id)
        q = { :objectives => [], :prime_objectives => [] }
        q[:name]          = $data_quests[quest_id].name
        q[:level]         = $data_quests[quest_id].level
        q[:iconindex]     = $data_quests[quest_id].iconindex
        q[:description]   = $data_quests[quest_id].description
        q[:client]        = $data_quests[quest_id].giver
        q[:location]      = $data_quests[quest_id].location
        $data_quests[quest_id].objectives.mission.each do |obj|
          q[:objectives] << obj
        end
        q[:prime_objectives]  = $data_quests[quest_id].objectives.prime
        q[:custom_categories] = $data_quests[quest_id].categorie
        q[:banner]            = $data_quests[quest_id].banniere
        q[:banner_hue]        = $data_quests[quest_id].teinte
        q[:common_event_id]   = $data_quests[quest_id].evcommun
        q[:rewards]           = $data_quests[quest_id].rewards
        q[:layout]            = false
        return q
      else
        print "Quête non configurée !\n"
        return {}
      end
    end
  end
end




module Quest_Text
  extend self
  
  def open_file
    name = "Quest.txt"
   @file = File.open(name.to_s, "a+")# if FileTest.exist?(name)    
  end
  
  def close_file
    return unless @file
    @file.close
  end
  
  def read
    return unless @file
    quests = Array.new
    @file.each_line { |line| quests << line.split("|") }
    return quests
  end
end

################################################################################
##### Lecture du .txt
# > se lance avant main
#####################
begin  
  Quest_Text.open_file
  $quests = []
  quests = Quest_Text.read
  Quest_Text.close_file  
  quests.each do |quest|
    quest[0] = quest[0].to_i # ID
    quest[2] = quest[2].to_i # Level
    quest[3] = quest[3].to_i # IconIndex
    quest[5] = quest[5].split("#")
    quest[6] = quest[6].split("#")
    quest[6].size.times { |i| quest[6][i] = quest[6][i].to_i }
    quest[9] = quest[9].to_i # Teinte
    quest[12] = quest[12].to_i # Event Commun
    quest[13] = quest[13].split("#")
    quest[13].size.times do |i|
      quest[13][i] = quest[13][i].split("/")
      quest[13][i].size.times do |i2|
        quest[13][i][i2] = :item if i2 == 0 && quest[13][i][i2] == ":item"
        quest[13][i][i2] = :gold if i2 == 0 && quest[13][i][i2] == ":gold"
        quest[13][i][i2] = quest[13][i][i2].to_i if i2 > 0
      end
    end
    quest[14] = false if quest[14] == "false" || quest[14] == "nil"
    $quests << quest
  end
end
###################
##### Fin du Script
################################################################################


Maintenant, vous avez juste a enregistrer en .rvdata2 (icône du .rvdata2).