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: Onsen RPG - A Tale of Yu / Jeux: Final Destiny / Jeux: puie z / Jeux: Citymaime - Chapitre 1 / Jeux: Mer, îles et fous / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

181 connectés actuellement

30749301 visiteurs
depuis l'ouverture

1728 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Planète Glutko

Alex d'Or

Lunae - le bazar d'Emz0

Level Up!

RPG Maker - La Communauté

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [XP] Création d'équipe


canar - posté le 02/08/2015 à 05:36:17 (64 messages postés)

❤ 0

Ceci est un canar. Sans d. Il paraît.

Domaine concerné: Graphisme
Logiciel utilisé: XP
Voici mon menu de création d'équipe (avant chaque mission, pour ceux qui ont joué à Dragon Age/Mass Effect)

image

Je ne sais pas scripter c'est officiel : cet écran fonctionne exclusivement en event (j'espère qu'il n'y aura pas de lag comme sur mon pauvre petit truc).

Ce que j'aimerai :

Des conseils sur la manière d'afficher le Niveau et le Lien, j'ai pensé faire par image (une par chiffre, pas par nombre) mais mon quota d'image va être dépassé (il ne m'en reste qu'une par perso...). Je suppose qu'on peut débloquer ça par un script, mais vous allez me dire que faire un script pour faire toute ma sélection aurait été de toute façon plus élégant... C'est vrai mais j'aime me débrouiller par moi même, donc j'ai bidouillé ça.

Pas trop de commentaire sur la forme : je n'ai pas un super goût en matière de couleur, et vu que ma copine est graphiste elle a promis de me refaire ça quand elle aura le temps (ce qui excuse et justifie ma flemme)

Des commentaires sur la lisibilité, même si c'est un peu lié. Je ne suis pas trop convaincu par mon fond blanc

Des commentaires sur le choix du mot Lien : je cherchai un mot court pour dire "Relation", j'ai peur que ce ne soit pas trop compréhensible. Il fallait que ça reste court pour faire à peu près la même taille que Niv (ce qu'on peut faire en changeant la police, c'est vrai, mais ça doit rester lisible)

Les marges, aussi con que ça puisse paraître. Devrai je mettre l'espace libreà gauche et à droite (comme c'est plutôt le cas) ou entre les persos. Pour vous donner une idée, le curseur couvre tous les pixel du milieu de l'écran, c'est à dire que le pixel le plus à gauche se retrouve collé à celui de droite quand on déplace le curseur (vers la droite). Il fait exactement la taille de la case quoi.


Bonus :
A cause de la manière (dégeulasse de l'avis d'un ami informaticien) dont je gère certaines variables (qui n'ont que 8 digit), je suis limité à un maximum de 24 personnages. En fait je pourrai monter loin au delà, mais il faudrait que je réfléchisse et ce serait très fatiguant. Pour rappel les persos meurent définitivement dans mon jeu (ou se barrent si leur relation diminue trop, voire même parce qu'ils ont d'autres impératifs...), c'est pour cette raison qu'il y a un tel panel.

Bref : si je rajoute deux lignes de persos cela ne rentrera plus dans l'écran, et ma seule idée serait de faire déplacer mes images, et changer celles du haut par celles du bas (pas très clair). J'aurai de toute façon un problème parce que mes "ombres" sont situées sur le panorama (et recouvertes par les images... Ma seule vrai solution consiste à rétrécir les police et faire tout rentrer sur une page, j'ai peur que ce soit brouillon. Ou bien je peux rester à 16 perso, mais je préfère garder l'esprit ouvert.

Spoiler (cliquez pour afficher)



La vie est un éternel apprentissage, ça tombe bien j'adore apprendre ! Projet en cours (40%) 1/3 du jeu réalisé, grosse phase de test avant la prochaine démo


Cantarelle - posté le 02/08/2015 à 11:53:26 (1530 messages postés)

❤ 0

Makeuse tarée et Agent du FBI...

Déjà, un truc... XP est limité et ne fera pas nativement ce que tu veux faire.

Par contre, il y a un truc super utile codé par Avygeil qui s'appelle : Database Management (j'avais même fait un tuto dessus)

http://www.forum-lepalaisdumaking.com/t2554-rmxp-advanced-input-et-database-management-avygeil

Il te permet d'avoir d'autres statistiques.


Par contre, je suis navrée pour toi, mais sans script pour ça, c'est un peu comme essayer de décrocher la lune. Parce que oui, il va falloir que tu bidouilles dessus, même si ça te rebute.

Puis bon, tu sais déjà utiliser les events... Les scripts, c'est comme les events... Juste que ce n'est pas un bouton que tu cliques et que tu dois te taper ça à la main. Mais que les scripts t'apportent bien plus de possibilités.

Makeuse à la crosse de street-hockey. Livestream.


canar - posté le 02/08/2015 à 13:19:16 (64 messages postés)

❤ 0

Ceci est un canar. Sans d. Il paraît.

Je sais, et j'arrive à lire et modifier les scripts simples en Ruby. C'est juste que je ne me suis encore jamais lancé dans un truc d'envergure, et je m'y connais juste assez en info que chaque nouvelle situation apporte un nouveau problème qu'il va falloir résoudre, souvent avec une nouvelle fonction. Je m'en sors plutôt bien en algo, mais je suis assez nul en syntaxe, c'est pour ça que j'aime bien RM. Après je te l'accorde, il s'agit surtout de me donner les moyens.

Ce que je sais faire en gros : gérer les variables et les opérateurs logiques simples (boucles, condition et autres) mais j'ai vraiment peur (pure peur de l'inconnu, c'est ptet pas difficile du tout) de bugger et de perdre énormément de temps dans l'affichage. Parce que niveau données je pense m'en sortir, ou au moins pouvoir m'en sortir en apprenant les spécificités du Ruby (je connais les base de javascript, Python et HTML déjà, Ruby n'a pas l'air plus difficile quand je regarde le script existant).

En tout cas merci de l'honnêteté, vaut mieux ça que je ne m'en rende compte qu'une fois dans le mur :)

EDIT : Et merci beaucoup pour le script, vu que tu l'as expliqué en détail je devrais m'en sortir sans peine (je teste toujours sur un projet vierge par principe, mais j'ai peu de scripts appliqués dans mon projet)

EDIT : En fait le script Advanced Input ne fonctionne pas : NoMethodError 'code' line 682. Je teste sur la version steam pour voir si c'est ça.

EDIT : Non ce n'est pas ça, il y a visiblement une erreur dans le code. Ce qui est étrange parce que depuis le temps tu t'en serais forcément aperçu...

La vie est un éternel apprentissage, ça tombe bien j'adore apprendre ! Projet en cours (40%) 1/3 du jeu réalisé, grosse phase de test avant la prochaine démo


Cantarelle - posté le 02/08/2015 à 15:02:11 (1530 messages postés)

❤ 0

Makeuse tarée et Agent du FBI...

Pour l'erreur, va voir un certain membre, parce que c'est son script.

Et je pense savoir pourquoi tu as cette erreur. Tu utilises une version légale (américaine) de RM. Tandis que moi, même si j'ai la version légale, j'utilise toujours la version française.

Makeuse à la crosse de street-hockey. Livestream.


canar - posté le 02/08/2015 à 15:52:53 (64 messages postés)

❤ 0

Ceci est un canar. Sans d. Il paraît.

J'ai testé sur les deux versions (si tu parles bien de la 1.03 de Zeus)

La vie est un éternel apprentissage, ça tombe bien j'adore apprendre ! Projet en cours (40%) 1/3 du jeu réalisé, grosse phase de test avant la prochaine démo


Cantarelle - posté le 02/08/2015 à 16:08:34 (1530 messages postés)

❤ 0

Makeuse tarée et Agent du FBI...

Dis-moi, tu n'aurais pas mis le Database Management AVANT l'Advanced Input ?

Parce que si c'est le cas, mets ce dernier avant le Database Management (et tant qu'on y est, tu les mets tout en haut), après le Scene_Debug.


Edit : En parlant avec Avygeil directement, on a trouvé le truc et c'est une erreur de ma part. Il manque un module.


Insère ceci dans un autre 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
#===============================================================================
# *** Default Keys
#-------------------------------------------------------------------------------
# Auteur  : Åvygeil
#-------------------------------------------------------------------------------
# Ce script permet de définir et modifier les touches de base.
#===============================================================================
 
#===============================================================================
# ** Input
#===============================================================================
module Input
 
  #-----------------------------------------------------------------------------
  # Définition des touches de base
  #-----------------------------------------------------------------------------
  LEFT  = Keyboard::LEFT
  UP    = Keyboard::UP
  RIGHT = Keyboard::RIGHT
  DOWN  = Keyboard::DOWN
 
  A     = Keyboard::SHIFT|Keyboard::Z
  B     = Keyboard::ESCAPE|Keyboard::X
  C     = Keyboard::ENTER|Keyboard::SPACE|Keyboard::C
  X     = Keyboard::A
  Y     = Keyboard::S
  Z     = Keyboard::D
  L     = Keyboard::Q
  R     = Keyboard::W
 
  SHIFT = Keyboard::SHIFT
  CTRL  = Keyboard::CTRL
  ALT   = Keyboard::ALT
 
  F5    = Keyboard::F5
  F6    = Keyboard::F6
  F7    = Keyboard::F7
  F8    = Keyboard::F8
  F9    = Keyboard::F9
 
end



Makeuse à la crosse de street-hockey. Livestream.


canar - posté le 02/08/2015 à 16:49:48 (64 messages postés)

❤ 0

Ceci est un canar. Sans d. Il paraît.

Merci beaucoup, je te tiens au courant. J'aurai préféré le contacter moi même, mais ma messagerie semble bugger je ne peux pas envoyer de MP, c'est peut être moi qui ne suis pas doué.

Edit :
Je peux créer des lignes, mais si j'appuie sur Entrée ca bug, de même si j'appuie sur V (pour coller)
Problèmes repérés dans Database Editor ligne 439 et ligne 389 respectivement

Edit :
Merci pour le code qui manquait. Pour ceux que ça intéresse :

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
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
#===============================================================================
# *** GUI Widgets
#-------------------------------------------------------------------------------
# Auteur  : Åvygeil
#-------------------------------------------------------------------------------
# Un ensemble de classes de fenetres utilitaires pour réaliser des GUI.
#===============================================================================
 
#===============================================================================
# ** Window_BooleanField
#-------------------------------------------------------------------------------
# Une fenetre qui permet de choisir un booléen.
#===============================================================================
class Window_BooleanField < Window_Command
  
  #=============================================================================
  # * initialize
  #     x     : abscisse de la fenetre
  #     y     : ordonnée de la fenetre
  #=============================================================================
  def initialize(x, y)
    super(150, ["True", "False"])
    self.x = x
    self.y = y
    self.visible = false
    self.active = false
  end
  
  #=============================================================================
  # * value
  #-----------------------------------------------------------------------------
  # Renvoie la valeur booléenne sélectionnée.
  #=============================================================================
  def value
    case self.index
    when 0
      return true
    when 1
      return false
    end
  end
  
  #=============================================================================
  # * value=
  #     b : un booléen
  #-----------------------------------------------------------------------------
  # Met la valeur à b.
  #=============================================================================
  def value=(b)
    case b
    when true
      self.index = 0
    when false
      self.index = 1
    end
  end
  
end
 
#===============================================================================
# ** Window_IntegerField
#-------------------------------------------------------------------------------
# Une fenetre qui permet d'entrer des nombres au clavier.
#===============================================================================
class Window_IntegerField < Window_Base
  
  attr_accessor :active # Si la fenetre est active
  
  #=============================================================================
  # * initialize
  #     x     : abscisse de la fenetre
  #     y     : ordonnée de la fenetre
  #     width : largeur de la fenetre
  #=============================================================================
  def initialize(x, y, width)
    super(x, y, width, 64)
    self.contents = Bitmap.new(width-32, height-32)
    self.contents.font.name = $fontface
    self.contents.font.size = $fontsize
    @text = ""
    @old_text = ""
    refresh
    self.visible = false
    self.active = false
  end
  
  #=============================================================================
  # * update
  #-----------------------------------------------------------------------------
  # Met à jour le contenu de la fenetre en fonction
  # de l'entrée du clavier.
  #=============================================================================
  def update
    super
    unless self.active
      return
    end
    if Input.trigger?(Keyboard::BACK)
      @text = @text[0...@text.size-1] || ""
    end
    @text << Keyboard.number
    if @old_text != @text
      refresh
      @old_text = String.new(@text)
    end
  end
  
  #=============================================================================
  # * value
  #-----------------------------------------------------------------------------
  # Renvoie la valeur entière de la fenetre.
  #=============================================================================
  def value
    return @text.to_i
  end
  
  #=============================================================================
  # * value=
  #     i : un entier
  #-----------------------------------------------------------------------------
  # Met la valeur à i.
  #=============================================================================
  def value=(i)
    @text = i.to_s
  end
  
  #=============================================================================
  # * refresh
  #=============================================================================
  def refresh
    self.contents.clear
    self.contents.draw_text(4, 0, self.width-40, 32, @text, 0)
  end
 
end
 
#===============================================================================
# ** Window_TextField
#-------------------------------------------------------------------------------
# Une fenetre qui permet d'entrer du texte au clavier.
#===============================================================================
class Window_TextField < Window_Base
  
  attr_accessor :active # Si la fenetre est active
  
  #=============================================================================
  # * initialize
  #     x     : abscisse de la fenetre
  #     y     : ordonnée de la fenetre
  #     width : largeur de la fenetre
  #=============================================================================
  def initialize(x, y, width)
    super(x, y, width, 64)
    self.contents = Bitmap.new(width-32, height-32)
    self.contents.font.name = $fontface
    self.contents.font.size = $fontsize
    @text = ""
    @old_text = ""
    refresh
    self.visible = false
    self.active = false
  end
  
  #=============================================================================
  # * update
  #-----------------------------------------------------------------------------
  # Met à jour le contenu de la fenetre en fonction
  # de l'entrée du clavier.
  #=============================================================================
  def update
    super
    unless self.active
      return
    end
    if Input.trigger?(Keyboard::BACK)
      @text = @text[0...@text.size-1] || ""
    end
    @text << Keyboard.letter
    if @old_text != @text
      refresh
      @old_text = String.new(@text)
    end
  end
  
  #=============================================================================
  # * value
  #-----------------------------------------------------------------------------
  # Renvoie le texte de la fenetre.
  #=============================================================================
  def value
    return @text
  end
  
  #=============================================================================
  # * value=
  #     s : un text
  #-----------------------------------------------------------------------------
  # Met le texte de la fenetre à s.
  #=============================================================================
  def value=(s)
    @text = s
  end
  
  #=============================================================================
  # * refresh
  #=============================================================================
  def refresh
    self.contents.clear
    self.contents.draw_text(4, 0, self.width-40, 32, @text, 0)
  end
  
end
 
#===============================================================================
# ** Window_FileChooser
#-------------------------------------------------------------------------------
# Une fenetre qui permet de sélectionner un fichier dans un dossier.
#===============================================================================
class Window_FileChooser < Window_Selectable
  
  #=============================================================================
  # * initialize
  #     x     : abscisse de la fenetre
  #     y     : ordonnée de la fenetre
  #     width : largeur de la fenetre
  #     dir   : un répertoire
  #=============================================================================
  def initialize(x, y, width, dir)
    @files = Dir["#{dir}/*"].map { |file_name| File.basename(file_name) } 
    @files << ""
    super(x, y, width, [@files.size * 32 + 32, 480].min)
    @item_max = @files.size
    self.contents = Bitmap.new(width - 32, @item_max * 32)
    self.contents.font.name = $fontface
    self.contents.font.size = $fontsize
    refresh
    self.index = 0
    self.visible = false
    self.active = false
  end
  
  #=============================================================================
  # * value
  #-----------------------------------------------------------------------------
  # Renvoie le nom du fichier sélectionné.
  #=============================================================================
  def value
    return @files[self.index]
  end
  
  #=============================================================================
  # * value=
  #     s : un text
  #-----------------------------------------------------------------------------
  # Met l'indice au fichier de nom file_name.
  #=============================================================================
  def value=(file_name)
    index = @files.index(file_name)
    if index == nil
      self.index = 0
    else
      self.index = index
    end
  end
  
  #=============================================================================
  # * refresh
  #=============================================================================
  def refresh
    self.contents.clear
    for i in 0...@item_max
      x = 4
      y = 32 * i
      self.contents.draw_text(x, y, width - 32, 32, @files[i])
    end
  end
  
  #=============================================================================
  # * update
  #=============================================================================
  def update
    if self.active and @item_max > 0 and @index >= 0
      if Input.trigger?(Keyboard::PAGE_UP)
        $game_system.se_play($data_system.cursor_se)
        @index = (@index - (@column_max*14)) % @item_max
      end
      if Input.trigger?(Keyboard::PAGE_DOWN)
        $game_system.se_play($data_system.cursor_se)
        @index = (@index + (@column_max*14)) % @item_max
      end
    end
    super
  end
  
end



La vie est un éternel apprentissage, ça tombe bien j'adore apprendre ! Projet en cours (40%) 1/3 du jeu réalisé, grosse phase de test avant la prochaine démo

Index du forum > Entraide > [XP] Création d'équipe

repondre up

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