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:
Image:
Composant requis{1.0.0 à 2.0.0}:
Les bugs/Indisponibilité{1.2.6}:
Prochaine Version{2.x.x}:
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.
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 :
{1.0.0}
-Créer des quêtes.
-Sauvegarder les quêtes.
-Fichier "Aide".
-Aucune limite.
-Script "Quest Journal" intégrer.
{1.2.6}
-Suppression du convertisseur.
-Suppression des 4 boutons +|-.
-Menu pour Ajouter/Supprimer des récompenses. (Clique Droit sur les récompenses)
-Menu pour Ajouter/Supprimer des objectives. (Clique Droit sur les objectives)
{2.0.0} *NEWS*
-Démarrage optimiser.
-Fini les bugs du "Ouverture impossible: Un projet est ouvert!".
-L'image "IconSet.png",seras dans le dossier "Projet\\Graphics\\System"! (Il récupère l'image sans copier)
-Plus besoins de supprimer les fichiers, ils se mettent a jour tout seul!
-Nouvelle apparence.
-Création d'un .txt pour convertir en .rvdata2
-Créer des quêtes.
-Sauvegarder les quêtes.
-Fichier "Aide".
-Aucune limite.
-Script "Quest Journal" intégrer.
{1.2.6}
-Suppression du convertisseur.
-Suppression des 4 boutons +|-.
-Menu pour Ajouter/Supprimer des récompenses. (Clique Droit sur les récompenses)
-Menu pour Ajouter/Supprimer des objectives. (Clique Droit sur les objectives)
{2.0.0} *NEWS*
-Démarrage optimiser.
-Fini les bugs du "Ouverture impossible: Un projet est ouvert!".
-L'image "IconSet.png",
-Plus besoins de supprimer les fichiers, ils se mettent a jour tout seul!
-Nouvelle apparence.
-Création d'un .txt pour convertir en .rvdata2
Image:
Spoiler :
Interface:
Icône sélection:
Icône sélection:
Composant requis{1.0.0 à 2.0.0}:
Spoiler :
-.NET Framework 4 ou plus.
-Windows xp/vista/7/8.
-Windows xp/vista/7/8.
Les bugs/Indisponibilité{1.2.6}:
Spoiler :
Aucun pour le moment.
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}
{02/2.0.0/En-1.0}
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):
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).