Partagez
Aller en bas
Mariolucky
Mariolucky
Membre

Nombre de messages : 10
Age : 20
Localisation : Hautmont
Distinction : aucune
Date d'inscription : 16/03/2012

Réputation pour VX Empty Réputation pour VX

le Lun 3 Déc 2012 - 22:02
Salut tout le monde ! Smile

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 :

Réputation pour VX Screen10

Voilà !


Dernière édition par Mariolucky le Mar 4 Déc 2012 - 21:56, édité 2 fois
Ezekiel Koening
Ezekiel Koening
Membre

Nombre de messages : 413
Age : 21
Localisation : Nantes
Distinction : aucune
Date d'inscription : 17/12/2011

Réputation pour VX Empty Re: Réputation pour VX

le Mar 4 Déc 2012 - 18:32
Un screenshot, s\'il vous plaît ?
Mariolucky
Mariolucky
Membre

Nombre de messages : 10
Age : 20
Localisation : Hautmont
Distinction : aucune
Date d'inscription : 16/03/2012

Réputation pour VX Empty Re: Réputation pour VX

le Mar 4 Déc 2012 - 18:39
Bah y'a pas vraiment de screenshot puisque c'est juste une variable à manipuler
tonyryu
tonyryu
Membre

Nombre de messages : 895
Age : 39
Localisation : Près de Nantes
Distinction : aucune
Date d'inscription : 27/05/2010
http://www.tonyryudev.com

Réputation pour VX Empty Re: Réputation pour VX

le 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...
LightNox
LightNox
Membre

Nombre de messages : 1759
Age : 29
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008

Réputation pour VX Empty Re: Réputation pour VX

le 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 ...

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é...
Mariolucky
Mariolucky
Membre

Nombre de messages : 10
Age : 20
Localisation : Hautmont
Distinction : aucune
Date d'inscription : 16/03/2012

Réputation pour VX Empty Re: Réputation pour VX

le Mar 4 Déc 2012 - 21:56
Ok j'ai modifier le sujet j'ai mis un screen
LightNox
LightNox
Membre

Nombre de messages : 1759
Age : 29
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008

Réputation pour VX Empty Re: Réputation pour VX

le Mar 4 Déc 2012 - 23:13
lol comme justification c'est un peu léger ça

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 Wink
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum