Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker


Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Jeux: puie z / Jeux: Citymaime - Chapitre 1 / Jeux: Mer, îles et fous / News: Du neuf dans le making / News: Muma|Rope est disponible en (...) / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

487 connectés actuellement

30732759 visiteurs
depuis l'ouverture

2738 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Lunae - le bazar d'Emz0

Lumen

Le Comptoir Du clickeur

Tous nos partenaires

Devenir
partenaire



Pourcentage de progression 3.0

Affiche le pourcentage d'avancée du joueur dans le menu.

Script pour RPG Maker XP
Ecrit par Bubblebug
Publié par bubblebug (lui envoyer un message privé)
Signaler un script cassé

❤ 0

Auteur : Bubblebug
Logiciel : RPG Maker XP
Nombre de scripts : 1

Bonjour/rebonjour,
Ceci est la version amélioré de mon premier script !

Je vous présente mon script pour faire une système qui permet au joueur de voir à quel pourcentage du jeu il est rendu !
En plus, vous pouvez mettre un commentaire suivant le pourcentage du joueur !
C'est a dire que si par exemple le joueur est a 56%, vous pouvez lui mettre le message "tu est sur la bonne voix" !

Screen
image

Utilisation (version 3)
Peut être moin long, et plus pratique, pour choisir quelle variable contiendra le pourcentage, changer la valeur de "VAR_UN" au début du script !
Et pour changer la variable qui contiendra le nombre de donjon fait, changer la valeur de "VAR_DEUX" au début du script !
Et après, vous pouvez changer les texte, avec les autre valeur au début du texte !

Condtions d'utilisation
Crédit à mettre de préférence.

Code
Version 3.0 (recommandée)

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
#==============================================================================
# ** Système de pourcentage
#------------------------------------------------------------------------------
# Bubblebug
# 3.0
# 03/05/2011
#==============================================================================
class Option
  TEXT_UN = "Avancement:"
  TEXT_DEUX = "%"
  TEXT_TROIS = "Donjon:"
  TEXT_QUATRE = "/15"
  VAR_UN = 1  #Numéro d variable qui contiendra le pourcentage !
  VAR_DEUX = 2   #Numéro de variable qui contiendra le nombre de donjon de fait !
end
class Window_PlayTime < Window_Base
  def initialize
    super(0, 0, 160, 192)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, 120, 32, "Temps de jeu")
    @total_sec = Graphics.frame_count / Graphics.frame_rate
    hour = @total_sec / 60 / 60
    min = @total_sec / 60 % 60
    sec = @total_sec % 60
    text = sprintf("%02d:%02d:%02d", hour, min, sec)
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 32, 120, 32, text, 2)
    self.contents.font.color = system_color
    self.contents.draw_text(4, 55, 120, 32, Option::TEXT_UN.to_s)
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 85, 100, 32, $game_variables[Option::VAR_UN].to_s, 2)
    self.contents.font.color = system_color
    self.contents.draw_text(4, 85, 120, 32, Option::TEXT_DEUX.to_s, 2)
    self.contents.font.color = system_color
    self.contents.draw_text(4, 110, 120, 32, Option::TEXT_TROIS.to_s)
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 130, 80, 32, $game_variables[Option::VAR_DEUX].to_s, 2)
    self.contents.font.color = system_color
    self.contents.draw_text(90, 130, 200, 32, Option::TEXT_QUATRE.to_s)
  end
  def update
    super
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
      refresh
    end
  end
end
 
class Scene_Menu
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  def main
    s1 = $data_system.words.item
    s2 = $data_system.words.skill
    s3 = $data_system.words.equip
    s4 = "Statut"
    s5 = "Sauvegarder"
    s6 = "Quitter le jeu"
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
    @command_window.index = @menu_index
    if $game_party.actors.size == 0
      @command_window.disable_item(0)
      @command_window.disable_item(1)
      @command_window.disable_item(2)
      @command_window.disable_item(3)
    end
    if $game_system.save_disabled
      @command_window.disable_item(4)
    end
    @playtime_window = Window_PlayTime.new
    @playtime_window.x = 0
    @playtime_window.y = 224
    @gold_window = Window_Gold.new
    @gold_window.x = 0
    @gold_window.y = 416
    @status_window = Window_MenuStatus.new
    @status_window.x = 160
    @status_window.y = 0
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @command_window.dispose
    @playtime_window.dispose
    @gold_window.dispose
    @status_window.dispose
  end
  def update
    @command_window.update
    @playtime_window.update
    @gold_window.update
    @status_window.update
    if @command_window.active
      update_command
      return
    end
    if @status_window.active
      update_status
      return
    end
  end
  def update_command
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Map.new
      return
    end
    if Input.trigger?(Input::C)
      if $game_party.actors.size == 0 and @command_window.index < 4
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      case @command_window.index
      when 0
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Item.new
      when 1
        $game_system.se_play($data_system.decision_se)
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 2
        $game_system.se_play($data_system.decision_se)
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 3
        $game_system.se_play($data_system.decision_se)
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 4
        if $game_system.save_disabled
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Save.new
      when 5
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_End.new
      end
      return
    end
  end
  def update_status
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      @command_window.active = true
      @status_window.active = false
      @status_window.index = -1
      return
    end
    if Input.trigger?(Input::C)
      case @command_window.index
      when 1
        if $game_party.actors[@status_window.index].restriction >= 2
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Skill.new(@status_window.index)
      when 2
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Equip.new(@status_window.index)
      when 3
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Status.new(@status_window.index)
      end
      return
    end
  end
end



Version 2.0 (archive)

Spoiler (cliquez pour afficher)




Mis à jour le 20 octobre 2020.






tampaxor - posté le 06/04/2011 à 15:29:11 (10274 messages postés)

❤ 0

Bien pensé, mais contrôler l'avancée du personnage en pourcentage, c'est dur quand même. Si tu mets trouzemille quêtes annexes, des objets à collectionner, etc et patata, comment tu sais où on en est ?


zou - posté le 06/04/2011 à 15:35:57 (2197 messages postés)

❤ 0

Moi j'aurais pas supprimé les autres fenêtres, Si tu veux un petit défi pour t'améliorer, essayes de mettre dans la même fenêtre le temps de jeu, le commentaire et le pourcentage mais qui change tout les 100 frames par exemple ;)
Parceque le pourcentage et le commentaire on supprimés les autres infos et comme c'est pas un truc important...


bubblebug - posté le 06/04/2011 à 22:07:46 (384 messages postés)

❤ 0

Citation:

comment tu sais où on en est ?


C'est le créateur du jeu qui choisi a quelle condition les pourcentation sont gagner !


tampaxor - posté le 07/04/2011 à 10:40:35 (10274 messages postés)

❤ 0

C'est pas pratique je trouve. Faut savoir précisément ce qui octroie l'augmentation du pourcentage, avoir découpé son jeu en tranches, le connaître, perdre du temps à l'analyser, etc... Je vois vraiment pas l'avantage que ton script amène. Pour un pourcentage de vie, okay, mais si on doit interagir nous-même sur une variable pour balancer ça dans le menu, c'est moyen.


Kaila - posté le 07/04/2011 à 14:09:25 (3617 messages postés)

❤ 0

Hmmm ?

M'enfin, il est absolument intolérable d'obliger le joueur à utiliser la variable №1. D'autant plus que c'est la №1, quoi, elle sera forcément utilisée avant.
Et puis c'est quoi cette def "option" qui sert à configurer le script O_o'. Et ces chaînes à aller chercher au milieu du code pour les modifier O_o".
Non, même, d'une manière générale... wtf !?

Citation:

Faut savoir précisément ce qui octroie l'augmentation du pourcentage, avoir découpé son jeu en tranches, le connaître, perdre du temps à l'analyser, etc...

Heu... le maker est un peu "obligé" de connaître son jeu :doute2

Everything is better with zombies.


bubblebug - posté le 07/04/2011 à 19:36:49 (384 messages postés)

❤ 0

Citation:

C'est pas pratique je trouve. Faut savoir précisément ce qui octroie l'augmentation du pourcentage, avoir découpé son jeu en tranches, le connaître, perdre du temps à l'analyser, etc... Je vois vraiment pas l'avantage que ton script amène. Pour un pourcentage de vie, okay, mais si on doit interagir nous-même sur une variable pour balancer ça dans le menu, c'est moyen.


Citation:

M'enfin, il est absolument intolérable d'obliger le joueur à utiliser la variable №1. D'autant plus que c'est la №1, quoi, elle sera forcément utilisée avant.


Ceci est mon premier script, donc il n'est pas au point, je voulai justement que l'on critique cela, et merci, je tiendrai compte de tout cela :)


clarabel - posté le 08/04/2011 à 00:00:03 (47 messages postés)

❤ 0

Dans ce cas, ce script n'a pas été posté dans la bonne section.

Je veux bien apporter mon aide cependant, en commençant par un commentaire constructif:
la méthode 'refresh' de Window_Steps est à chier
Elle est difficlement, peiniblement paramétrable.
Que doit-elle faire ?
à partir de n=25 afficher "du texte"
à partir de n=50, afficher "un autre texte"
...

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
n = $game_variables[1] #on reparlera du 1 plus tard
if n < 26
  commentaire = "T'es une buse"
elsif n < 51 # donc 26 <= n <= 50
  commentaire = "En progrès"
elsif n < 76
  commentaire = "T'es devenu un bon joueur"
elsif n < 100
  commentaire = "Plus que quelques slimes à dézinguer !"
else
  commentaire = "Voilà, c'est fini"
end
 


Si on veut un script vraiment commode à utiliser, je voudrais pouvoir paramétrer avec un simple dictionnaire :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
 
PERC_COM = {
26 => "T'es une buse",
51 => "En progrès",
76 => "T'es devenu un bon joueur",
100 => "Plus que quelques slimes à dézinguer !",
105 => "Voilà, c'est fini"
}
 


Exercice pour vendredi :
- récrire la méthode refresh utilisant le Hash PERC_COM et qui aura le même comportement que l'exemple ci dessus

Spoiler (cliquez pour afficher)




Kaila - posté le 08/04/2011 à 11:49:17 (3617 messages postés)

❤ 0

Hmmm ?

Mwaip, si tu cherches des conseils en scripting, c'est clairement pas le bon endroit. Mieux vaut privilégier la section "entraide".

Sinon clarabel, je ne suis pas sûr que lui faire faire de la recherche dans un hash soit à sa portée pour le moment.
J'ai bien une petite solution, mais du coup j'hésite à la poster :F

Aussi, pour suivre les critiques: tu pourrais faire en sorte que le pourcentage et le commentaire s'affichent dans la même fenêtre, permettre au maker de choisir la variable à utiliser (les constantes !).
Enfin, pour faire un script plus large et plus configurable:
- Permettre de choisir le titre de la fenêtre
- Permettre de choisir le caractère affiché après les chiffre
- Permettre de rentrer les valeurs dans n'importe quel ordre dans le hash

Au final, on pourrait avoir aussi bien cette fenêtre:
Avancement:
16%
Tu débutes...

Que celle là:
Joyaux:
32 / 35
Encore quelques uns !

Mais commences déjà par essayer de faire ce que t'as dit de faire clarabel, et postes un topic d'entraide si tu n'y arrive vraiment pas.

Everything is better with zombies.


Benku - posté le 12/04/2011 à 17:48:07 (2843 messages postés)

❤ 0

Benku, le prince des ténèbres !

Pourcentage maker spotted :sfrog

Comme tout ceux qui vivent des heures si sombres mais ce n'est pas à eux de décider, tout ce que vous avez à décider, c'est quoi faire du temps qui vous est imparti.


bubblebug - posté le 03/05/2011 à 10:03:15 (384 messages postés)

❤ 0

Bonjour, je vous poste ici la dernière version de ce script !
Script:

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
#==============================================================================
# ** Système de pourcentage
#------------------------------------------------------------------------------
# Bubblebug
# 3.0
# 03/05/2011
#==============================================================================
class Option
  TEXT_UN = "Avancement:"
  TEXT_DEUX = "%"
  TEXT_TROIS = "Donjon:"
  TEXT_QUATRE = "/15"
  VAR_UN = 1  #Numéro d variable qui contiendra le pourcentage !
  VAR_DEUX = 2   #Numéro de variable qui contiendra le nombre de donjon de fait !
end
class Window_PlayTime < Window_Base
  def initialize
    super(0, 0, 160, 192)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, 120, 32, "Temps de jeu")
    @total_sec = Graphics.frame_count / Graphics.frame_rate
    hour = @total_sec / 60 / 60
    min = @total_sec / 60 % 60
    sec = @total_sec % 60
    text = sprintf("%02d:%02d:%02d", hour, min, sec)
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 32, 120, 32, text, 2)
    self.contents.font.color = system_color
    self.contents.draw_text(4, 55, 120, 32, Option::TEXT_UN.to_s)
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 85, 100, 32, $game_variables[Option::VAR_UN].to_s, 2)
    self.contents.font.color = system_color
    self.contents.draw_text(4, 85, 120, 32, Option::TEXT_DEUX.to_s, 2)
    self.contents.font.color = system_color
    self.contents.draw_text(4, 110, 120, 32, Option::TEXT_TROIS.to_s)
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 130, 80, 32, $game_variables[Option::VAR_DEUX].to_s, 2)
    self.contents.font.color = system_color
    self.contents.draw_text(90, 130, 200, 32, Option::TEXT_QUATRE.to_s)
  end
  def update
    super
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
      refresh
    end
  end
end
 
class Scene_Menu
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  def main
    s1 = $data_system.words.item
    s2 = $data_system.words.skill
    s3 = $data_system.words.equip
    s4 = "Statut"
    s5 = "Sauvegarder"
    s6 = "Quitter le jeu"
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
    @command_window.index = @menu_index
    if $game_party.actors.size == 0
      @command_window.disable_item(0)
      @command_window.disable_item(1)
      @command_window.disable_item(2)
      @command_window.disable_item(3)
    end
    if $game_system.save_disabled
      @command_window.disable_item(4)
    end
    @playtime_window = Window_PlayTime.new
    @playtime_window.x = 0
    @playtime_window.y = 224
    @gold_window = Window_Gold.new
    @gold_window.x = 0
    @gold_window.y = 416
    @status_window = Window_MenuStatus.new
    @status_window.x = 160
    @status_window.y = 0
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @command_window.dispose
    @playtime_window.dispose
    @gold_window.dispose
    @status_window.dispose
  end
  def update
    @command_window.update
    @playtime_window.update
    @gold_window.update
    @status_window.update
    if @command_window.active
      update_command
      return
    end
    if @status_window.active
      update_status
      return
    end
  end
  def update_command
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Map.new
      return
    end
    if Input.trigger?(Input::C)
      if $game_party.actors.size == 0 and @command_window.index < 4
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      case @command_window.index
      when 0
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Item.new
      when 1
        $game_system.se_play($data_system.decision_se)
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 2
        $game_system.se_play($data_system.decision_se)
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 3
        $game_system.se_play($data_system.decision_se)
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 4
        if $game_system.save_disabled
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Save.new
      when 5
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_End.new
      end
      return
    end
  end
  def update_status
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      @command_window.active = true
      @status_window.active = false
      @status_window.index = -1
      return
    end
    if Input.trigger?(Input::C)
      case @command_window.index
      when 1
        if $game_party.actors[@status_window.index].restriction >= 2
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Skill.new(@status_window.index)
      when 2
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Equip.new(@status_window.index)
      when 3
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Status.new(@status_window.index)
      end
      return
    end
  end
end



Explication:
Peut être moin long, et plus pratique, pour choisir quel variable contiendra le pourcentage, changer la valeur de "VAR_UN" au début du script !
Utilisation:
Et pour changer la variable qui contiendra le nombre de donjon fait, changer la valeur de "VAR_DEUX" au début du script !
Et après, vous pouvez changer les texte, avec les autre valeur au début du texte !

Crédit a mettre de préférence :)

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers