Accueil du SiteAccueil du Site  AccueilAccueil  Dernières imagesDernières images  RechercherRechercher  ConnexionConnexion  S'enregistrerS'enregistrer  



Le deal à ne pas rater :
SSD interne Crucial BX500 2,5″ SATA – 500 Go à 29,99€
29.99 €
Voir le deal

Partagez
 

 [XP] Système de réputation

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Elekami
Fondateur
Fondateur
Elekami

Masculin
Messages postés : 19071
Date d'inscription : 19/07/2008
Jauge LPC :
[XP] Système de réputation 8915271400100 / 100100 / 100[XP] Système de réputation 8915271400

[XP] Système de réputation Pater_10
[XP] Système de réputation Staffe10
[XP] Système de réputation Mythe_10
[XP] Système de réputation Membre11
[XP] Système de réputation Doyen10
[XP] Système de réputation Scanar10
[XP] Système de réputation Compos10
[XP] Système de réputation Testeu10
[XP] Système de réputation Membre15
[XP] Système de réputation Partag10
[XP] Système de réputation Projet10
[XP] Système de réputation Projet16
[XP] Système de réputation Riche_10
[XP] Système de réputation Travai10
[XP] Système de réputation Collec10
[XP] Système de réputation Collec11
[XP] Système de réputation Collec12
[XP] Système de réputation Collec13
[XP] Système de réputation Connar10


[XP] Système de réputation Empty
MessageSujet: [XP] Système de réputation   [XP] Système de réputation EmptyLun 8 Aoû 2011 - 22:12

Auteur: Kyo

Permet de faire un système de réputation entre le héros et différents groupes.
Code:
    #==============================================================
    #  Kio's Reputation System v1.2
    #==============================================================

    class Game_System
        attr_accessor :fac_rep
        attr_accessor :fac_active
   
      alias rep_initialize initialize
      def initialize
        rep_initialize
        @fac_rep=[]
        @fac_active=[]
      end
    end

    class Scene_Title
    alias cng command_new_game
    def command_new_game
      cng
      #Determine the initial settings for the faction's reputations here
      $game_system.fac_rep = [50, 44, 75, 24, 9, 56, 100]
      #Determine the inital factions you can see here.
      $game_system.fac_active = ["active", "active", "active", "active", "active", nil, nil]
    end
    end

    class Scene_Reputation
      def main
        @status_window = Window_Reputation.new
        @sprite = Spriteset_Map.new
        Graphics.transition
        loop do
          Graphics.update
          Input.update
          update
          if $scene != self
            break
          end
        end
        Graphics.freeze
        @status_window.dispose
        @sprite.dispose
      end

      def update
        if Input.trigger?(Input::B)
          $game_system.se_play($data_system.cancel_se)
          $scene = Scene_Menu.new(5)
          return
        end
      end
    end

    class Window_Reputation < Window_Base
        attr_accessor :factions
        attr_accessor :fac_rep
        attr_accessor :reptypes
        attr_accessor :fac_active

      def initialize
        super(0, 0, 640, 480)
        self.contents = Bitmap.new(width - 32, height - 32)
        self.contents.font.name = "Tahoma"
        self.contents.font.size = 22
        self.contents.font.color = text_color(0)
        self.back_opacity = 120
        @factions = ["Famille Royale", "Église d' Avelius", "Nobles", "Paysans", "Étrangers", "Ordre Blanc", "Crestguarde"]
        @rep = ["Heroique", "Honoré", "Amical", "Neutre", "Froid", "Détesté", "Horripilé"]
        refresh
      end
   
      def draw_repbar(x, y, width, height, current, max)
        x -= 10
        for i in 0..(height+2)
          self.contents.fill_rect(x-3+i, y - 1 + i, width+5, 1, Color.new(255, 255, 255, 255))
        end
        for i in 0..height
          self.contents.fill_rect(x+i, y+i, width+1, 1, Color.new(0, 0, 0, 255))
        end
        for i in 0..height
          for j in 0..current
            self.contents.fill_rect(x+j+i, y+i, 1, 1, Color.new(0, 0 + (1.25*j), 255 - (1.25*j), 255 - (5*i)))
          end
        end
      end

      def refresh
        self.contents.clear
        self.contents.font.color = normal_color
        self.contents.font.size = 32
        self.contents.draw_text(20, 40, 184, 32, "Réputation", 2)
        self.contents.font.size = $fontsize
        for i in 0...@factions.size
          y = 80 + (i * 70)
          x = -30
          if i > 4
            x = 280
            y = 80 + ((i - 5) * 70)
          end
          if $game_system.fac_rep[i] > 100
            $game_system.fac_rep[i] = 100
          end
          if $game_system.fac_rep[i] < 0
            $game_system.fac_rep[i] = 0
          end
          if $game_system.fac_active[i] == "active"
            draw_fac(x, y, i)
          end
          self.contents.font.color = normal_color
        end
      end
   
      def draw_fac(x, y, i)
        self.contents.draw_text(x+40, y, 160, 32, @factions[i], 0)
        draw_repbar(x+90, y+32,  200, 14, 2 * $game_system.fac_rep[i], 100)
        self.contents.font.color = system_color
        if $game_system.fac_rep[i] >= 90
          self.contents.draw_text(x+210, y, 96, 32, @rep[0], 2)
        elsif $game_system.fac_rep[i] >= 75
          self.contents.draw_text(x+210, y, 96, 32, @rep[1], 2)
        elsif $game_system.fac_rep[i] >= 55
          self.contents.draw_text(x+210, y, 96, 32, @rep[2], 2)
        elsif $game_system.fac_rep[i] >= 45
          self.contents.draw_text(x+210, y, 96, 32, @rep[3], 2)
        elsif $game_system.fac_rep[i] >= 25
          self.contents.draw_text(x+210, y, 96, 32, @rep[4], 2)
        elsif $game_system.fac_rep[i] >= 10
          self.contents.draw_text(x+210, y, 96, 32, @rep[5], 2)
        else
          self.contents.draw_text(x+210, y, 96, 32, @rep[6], 2)
        end
      end
    end


Vers la ligne 22, vous pouvez changer la réaction de base des groupes et s'ils vous connaissent.
Vers la ligne 68, vous pouvez donner un nom aux groupes et aux stades : Amical, Héroique, Détesté...
Vers la ligne 118, vous pouvez définir la valeur qu'il faut pour avoir chaque stade.

Pour ajuster la réputation:

Code:
$game_system.fac_rep[i] += n
(dans le script)

En changeant i par l'ID du groupe, + (pas "+=" ! Seulement le "+") par un moins ou un plus selon la situation, et n par le chiffre lui-même.

Screen:

[XP] Système de réputation Repis710


Revenir en haut Aller en bas
https://www.ledijonshow.fr https://twitter.com/EleKoptes
 
[XP] Système de réputation
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Système de PHS
» Système de récolte (RME)
» Système de Quête
» [VX] Système de carte
» [XP] Système de craft

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Le Palais Créatif :: ~ PARTAGE ~ :: Scripts et plugins :: RPG Maker XP :: Système-
Sauter vers: