- MarioluckyMembre
- Nombre de messages : 10
Age : 25
Localisation : Hautmont
Distinction : aucune
Date d'inscription : 16/03/2012
Réputation pour VX
Lun 3 Déc 2012 - 22:02
Salut tout le monde !
C'est le premier script que je pose sur le fofo, et c'est pour avoir un système de réputation sur VX. Certains me diront qu'il existe déjà des tutos pour le faire en event, mais j'i fais un petit script pas bien compliquer au cas où ça intéresserai ^^
Les explications sont en commentaires dans le script
Un petit screen :
Voilà !
C'est le premier script que je pose sur le fofo, et c'est pour avoir un système de réputation sur VX. Certains me diront qu'il existe déjà des tutos pour le faire en event, mais j'i fais un petit script pas bien compliquer au cas où ça intéresserai ^^
Les explications sont en commentaires dans le script
- Code:
=begin
\--------------------------------------------------------------------------------------------------------/
--------------- Réputation ---------------
/--------------------------------------------------------------------------------------------------------\
Ecrit par : Mariolucky
Date : le 04-08-2012
Version : 1.0
Fonction : Ajoute une réputation à l'équipe, qu'on peut après utiliser dans les événements.
Utilisation : Placez ce script au dessus de Main et lisez les instructions dans le script.
Installation :
- Modification du script Main :
Allez dans le script Main et, à la ligne 11, collez ceci :
unless Reputation.check?
print "Les valeurs par défauts de la réputation sont incorrectes !"
exit
end
Cela sert à vérifier si les valeurs par défauts sont correctes, si non ça renvoie un message d'erreur.
- Personnalisation du script :
A partir de la ligne 64, c'est le module de configuration du script (Ok il est petit, mais j'utilise les modules
pour mieux m'organiser.). Vous pouvez respectivement modifier : la valeur maximale de la réputation (la
valeur minimale est automatiquement 0), la valeur par défaut et le nom de la réputation. Ne toucher à rien
de ce qu'il y a après.
- Utilisation du script :
Pour augmenter la réputation, il faut utiliser la commande "Appeler script..." et mettre ceci :
$game_party.modif_reputation(VALEUR)
où VALEUR est la valeur à ajouter. Pour retirer de la réputation, effectuez la même opération mais mettez
un chiffre négatif, comme -3.
Pour tester la réputation, on utilise une condition et à la 4ème page, dans Script, on met :
$game_party.reputation SYMBOLE CHIFFRE
Pour ceux qui ne programme pas, voici les différents symbole que vous pouvez utiliser :
== : strictement égal à.
!= : différent de.
>= : supérieur ou égal à.
<= : inférieur ou égal à.
> : strictement supérieur à.
< : strictement inférieur à.
pour CHIFFRE, vous pouvez mettre un chiffre, ou une variable. En Ruby, pour mettre une variable on utilise
$game_variables[ID], où ID est l'id de la variable.
exemple : $game_party.reputation >= 65
on test si la réputation est supérieur ou égale à 65.
Voilà ^^
=end
# Module Reputation : module de configuration du script
module Reputation
MaxValue = 100 # Valeur maximale de la réputation
DefaultValue = 50 # Valeur par défaut de la réputation
Name = "Réputation" # Nom de la réputation
def self.check?
if MaxValue <= 0 or MaxValue <= DefaultValue
return false
else
return true
end
end
end
# Window_Reputation : fenêtre de la réputation à afficher dans le menu
class Window_Reputation < Window_Base
# Initialisation
def initialize(x, y)
super(x, y, 160, (WLH + 32) * 2 - 16)
refresh
end
def refresh
self.contents.clear
draw_currency_value($game_party.reputation, 4, 0, 120)
end
# Affichage du texte
def draw_currency_value(value, x, y, width)
self.contents.font.color = normal_color
self.contents.draw_text(x, y + 32, width, WLH, value, 2)
self.contents.font.color = system_color
self.contents.draw_text(x, y, width, WLH, Reputation::Name, 0)
end
end
# Modification de Game_Party pour ajouter une variable @reputation
class Game_Party < Game_Unit
attr_reader :reputation # Création de la variable @reputation en lecture
alias initialize_reput initialize
# Initialisation
def initialize
initialize_reput
@reputation = Reputation::DefaultValue
if @reputation > Reputation::MaxValue
@reputation = Reputation::MaxValue
elsif @reputation < 0
@reputation = 0
end
end
# Modification de la réputation
def modif_reputation(num)
if num.is_a?(Integer)
@reputation += num
if @reputation > Reputation::MaxValue
@reputation = Reputation::MaxValue
elsif @reputation < 0
@reputation = 0
end
else
print ("Impossible de modifier la valeur de la réputation.")
return
end
end
end
# Modification de Scene_Menu pour afficher la fenêtre dans le menu
class Scene_Menu < Scene_Base
# Création d'alias pour implenter la fenêtre de Réputation
alias start_reput start
alias update_reput update
alias terminate_reput terminate
def start
start_reput
@reput_window = Window_Reputation.new(0, 0)
@reput_window.y = @gold_window.y - @reput_window.height
end
def update
update_reput
@reput_window.update
end
def terminate
terminate_reput
@reput_window.dispose
end
end
Un petit screen :
Voilà !
- Ezekiel KoeningMembre
- Nombre de messages : 413
Age : 26
Localisation : Nantes
Distinction : aucune
Date d'inscription : 17/12/2011
Re: Réputation pour VX
Mar 4 Déc 2012 - 18:32
Un screenshot, s\'il vous plaît ?
- MarioluckyMembre
- Nombre de messages : 10
Age : 25
Localisation : Hautmont
Distinction : aucune
Date d'inscription : 16/03/2012
Re: Réputation pour VX
Mar 4 Déc 2012 - 18:39
Bah y'a pas vraiment de screenshot puisque c'est juste une variable à manipuler
Re: Réputation pour VX
Mar 4 Déc 2012 - 19:33
C'est bizarre, tu fais le script et tu oublies qu'il ya une Window de défini dedans pour qu'elle soit affiché dans le menu...
- LightNoxMembre
- Nombre de messages : 1759
Age : 34
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008
Re: Réputation pour VX
Mar 4 Déc 2012 - 20:38
Je suis d'accord avec Tonyryu, tu défini d'abord une Window_Reputation héritant de Window_Base et après dans la Scene_Menu tu fait un appel de la Window_Reputation.
C'est assez louche ça que tu ne l'ai pas préciser ...
Eh ben... je viens de tester ça dans un projet vierge et si ! il peut y avoir un screen désolé...
C'est assez louche ça que tu ne l'ai pas préciser ...
Bah y'a pas vraiment de screenshot puisque c'est juste une variable à manipuler
Eh ben... je viens de tester ça dans un projet vierge et si ! il peut y avoir un screen désolé...
- MarioluckyMembre
- Nombre de messages : 10
Age : 25
Localisation : Hautmont
Distinction : aucune
Date d'inscription : 16/03/2012
Re: Réputation pour VX
Mar 4 Déc 2012 - 21:56
Ok j'ai modifier le sujet j'ai mis un screen
- LightNoxMembre
- Nombre de messages : 1759
Age : 34
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008
Re: Réputation pour VX
Mar 4 Déc 2012 - 23:13
lol comme justification c'est un peu léger ça
essaye de bien nous prouver que c'est bien toi le concepteur de ce script et plus aucun doute surgira dans nos tête
Ok j'ai modifier le sujet j'ai mis un screen
essaye de bien nous prouver que c'est bien toi le concepteur de ce script et plus aucun doute surgira dans nos tête
- [résolu]demande un exemple d'event pour combat A-RPG pour VX Maker
- Vote pour le Mapping Show pour la session de début février
- Vote pour le Mapping Show pour la session de début mars
- script pour pouvoir avoir une imfiniter de couche pour mapper!!!
- Astuce pour avoir des ressources (surtout les tilesets) d'un autre jeu pour votre projet.
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum