Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Sorties: "Dread Mac Farlane", (...) / Tutos: Checklist de la composition (...) / Sorties: Dread Mac Farlane - episode 8 / Sorties: Dread Mac Farlane - episode 7 / Jeux: Ce qui vit Dessous / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

450 connectés actuellement

29433291 visiteurs
depuis l'ouverture

7667 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Planète Glutko

Lumen

Hellsoft

Le Comptoir Du clickeur

RPG Maker - La Communauté

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [XP] Problème script


doncamilo - posté le 25/07/2014 à 18:29:26 (63 messages postés)

❤ 0

Domaine concerné: script
Logiciel utilisé: XP
Salut,j'ai un souci avec une modification de menu sur RMXP.

En fait j'ai modifier le window_selectable mais comme le script s'applique a tous les autres scripts en plus du menu principal (equip,objet,ect)sa creer des bug d'affichage.
Du coup j'aimerais savoir comment procéder pour integrer ce windows selectable uniquement au menu ou comment faire pour que le menu appel le script window_selectable modif et pas celui d'origine,ou si une autre solution existe...

Je sais pas si c'est très claire.

Je post les lignes à modif dans un new projet a titre d'exemple si quelqu'un veut regarder.

Portion de code : Tout sélectionner

1
dans scene_menu ligne 26 remplacer 160 par 640



et coller le script window_selectable au dessus de main.

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
#==============================================================================
# ¦ Window_Selectable
#------------------------------------------------------------------------------
#  ??????????????????????????????
#==============================================================================
 
class Window_Selectable < Window_Base
  #--------------------------------------------------------------------------
  # ? ??????????
  #--------------------------------------------------------------------------
  attr_reader   :index                    # ??????
  attr_reader   :help_window              # ????????
  #--------------------------------------------------------------------------
  # ? ?????????
  #     x      : ?????? X ??
  #     y      : ?????? Y ??
  #     width  : ???????
  #     height : ????????
  #--------------------------------------------------------------------------
  def initialize(x, y, width, height)
    super(x, y, width, height)
    @item_max = 2
    @column_max = 2
    @index = -1
  end
  #--------------------------------------------------------------------------
  # ? ?????????
  #     index : ?????????
  #--------------------------------------------------------------------------
  def index=(index)
    @index = index
    # ?????????? (update_help ??????????)
    if self.active and @help_window != nil
      update_help
    end
    # ??????????
    update_cursor_rect
  end
  #--------------------------------------------------------------------------
  # ? ?????
  #--------------------------------------------------------------------------
  def row_max
    # ?????????????
    return (@item_max + @column_max - 1) / @column_max
  end
  #--------------------------------------------------------------------------
  # ? ???????
  #--------------------------------------------------------------------------
  def top_row
    # ??????????? Y ????1 ???? 32 ???
    return self.oy / 32
  end
  #--------------------------------------------------------------------------
  # ? ???????
  #     row : ????????
  #--------------------------------------------------------------------------
  def top_row=(row)
    # row ? 0 ?????? 0 ???
    if row < 0
      row = 0
    end
    # row ? row_max - 1 ????? row_max - 1 ???
    if row > row_max - 1
      row = row_max - 1
    end
    # row ? 1 ???? 32 ??????????????? Y ?????
    self.oy = row * 32
  end
  #--------------------------------------------------------------------------
  # ? 1 ??????????????
  #--------------------------------------------------------------------------
  def page_row_max
    # ?????????????????? 32 ????1 ???? 32 ???
    #Du haut de la fenêtre, tirez sur la hauteur du cadre 32, divisée par la hauteur de la ligne 32
    return (self.height - 32) / 32
  end
  #--------------------------------------------------------------------------
  # ? 1 ???????????????
  #--------------------------------------------------------------------------
  def page_item_max
    # ?? page_row_max ? ?? @column_max ????
    return page_row_max * @column_max
  end
  #--------------------------------------------------------------------------
  # ? ???????????
  #     help_window : ???????????
  #--------------------------------------------------------------------------
  def help_window=(help_window)
    @help_window = help_window
    # ?????????? (update_help ??????????)
    if self.active and @help_window != nil
      update_help
    end
  end
  #--------------------------------------------------------------------------
  # ? ?????????
  #--------------------------------------------------------------------------
  def update_cursor_rect
    # ??????? 0 ?????
    if @index < 0
      self.cursor_rect.empty
      return
    end
    # ???????
    row = @index / @column_max
    # ???????????????????????
    if row < self.top_row
      # ??????????????????
      self.top_row = row
    end
    # ?????????????????????????
    if row > self.top_row + (self.page_row_max - 1)
      # ???????????????????
      self.top_row = row - (self.page_row_max - 1)
    end
    # ?????????Calculer la largeur du point d'insertion
    cursor_width = self.width / @column_max - 262
    # ??????????Calculer les coordonnées du curseur
    x = @index % @column_max * (cursor_width + 491)#ecart gauche a droite
    y = @index / @column_max * 58 - self.oy
    # ??????????Mise à jour le rectangle de curseur
    self.cursor_rect.set(x, y, cursor_width, 58)
  end
  #--------------------------------------------------------------------------
  # ? ??????
  #--------------------------------------------------------------------------
  def update
    super
    # ????????????????
    if self.active and @item_max > 0 and @index >= 0
      # ??????????????
      if Input.repeat?(Input::DOWN)
        # ??? 1 ?? ????????????????????????
        # ??????????(??? - ??)??????
        if (@column_max == 1 and Input.trigger?(Input::DOWN)) or
           @index < @item_max - @column_max
          # ?????????
          $game_system.se_play($data_system.cursor_se)
          @index = (@index + @column_max) % @item_max
        end
      end
      # ??????????????
      if Input.repeat?(Input::UP)
        # ??? 1 ?? ????????????????????????
        # ???????????????????
        if (@column_max == 1 and Input.trigger?(Input::UP)) or
           @index >= @column_max
          # ?????????
          $game_system.se_play($data_system.cursor_se)
          @index = (@index - @column_max + @item_max) % @item_max
        end
      end
      # ??????????????
      if Input.repeat?(Input::RIGHT)
        # ??? 2 ???????????(??? - 1)??????
        if @column_max >= 2 and @index < @item_max - 1
          # ?????????
          $game_system.se_play($data_system.cursor_se)
          @index += 1
        end
      end
      # ??????????????
      if Input.repeat?(Input::LEFT)
        # ??? 2 ??????????? 0 ???????
        if @column_max >= 2 and @index > 0
          # ?????????
          $game_system.se_play($data_system.cursor_se)
          @index -= 1
        end
      end
      # R ??????????
      if Input.repeat?(Input::R)
        # ??????????????????????????????
        if self.top_row + (self.page_row_max - 1) < (self.row_max - 1)
          # ????? 1 ????????
          $game_system.se_play($data_system.cursor_se)
          @index = [@index + self.page_item_max, @item_max - 1].min
          self.top_row += self.page_row_max
        end
      end
      # L ??????????
      if Input.repeat?(Input::L)
        # ???????????? 0 ???????
        if self.top_row > 0
          # ????? 1 ???????
          $game_system.se_play($data_system.cursor_se)
          @index = [@index - self.page_item_max, 0].max
          self.top_row -= self.page_row_max
        end
      end
    end
    # ?????????? (update_help ??????????)
    if self.active and @help_window != nil
      update_help
    end
    # ??????????
    update_cursor_rect
  end
end
 



Merci a celui qui m'aidera  :)


Åvygeil - posté le 26/07/2014 à 13:29:20 (2502 messages postés)

❤ 0

1) On ne modifie jamais les scripts de base. Jamais.

2) Un peu de matière pour résoudre ton problème


Nagato Yuki - posté le 26/07/2014 à 17:59:07 (351 messages postés)

❤ 0

Dans le script que t'as indiqué, tu remplace class Window_Selectable < Window_Base par class Window_Selectable2 < Window_Base
Et dans ton menu, où tu voulais les modifications par rapport à Window_Selectable tu mets Window_Selectable2 à la place.

@Åvygeil : Le 1 est très largement discutable. On modifie jamais les scripts de base si on ne sait pas ce que l'on fait et si on ne connait pas le système de jeu quasiment par cœur. Pour faire ça : https://www.youtube.com/watch?v=IV8LRFnPYAM j'ai tapé directement dans Game_Character plutôt que de faire des alias dégueulasses ailleurs.

Pokémon Workshop, le site de Making Pokémon sur RPG Maker~


SuperGregMaker - posté le 27/07/2014 à 23:43:43 (111 messages postés)

❤ 0

J'aime les trains.

Åvygeil a dit:


1) On ne modifie jamais les scripts de base. Jamais.

Ah merde, moi qui ai modifié les trois quarts du Game_System et retouché a toutes les fenêtres de mon jeu ... tant pis x).

En ce qui concerne ton problème, deux solutions s'offrent a toi :

***

- Soit tu actives un interrupteur dans Scene_Map juste avant la ligne qui passe de la carte au menu (dans la condition if Input.trigger?(Input::B) sans doute, j'ai pas mes projets sous la main :P) que tu désactiveras quand tu passes de du menu a la map (même procédé). Le principe serait de faire quelque chose de ce genre :

Portion de code : Tout sélectionner

1
2
3
4
5
if $switch == true
commande_menu_only
else
commande_normale
end


Fais bien attention de nommer ton interrupteur avec un $ et non un @.

***

- Soit tu crées un deuxième Window_Selectable (ce que j'ai personnellement fait pour créer une fenêtre de sélection horizontale dans mon menu). Tu le nommes par exemple Window_Selectable_2, et il te suffit de remplacer ;). Après cette technique ajoute un script a ton jeu, qui dit donc plus de données a traiter, qui dit lag sur les machines peu puissantes. Mais c'est celle-là que j'ai utilisé car après je m'embrouille souvent avec la masse d'interrupteurs finale.

***

En espérant t'avoir aidé ;).
SuperGregMaker.

Que Dieu vous garde, j'ai plus de place chez moi ...


doncamilo - posté le 28/07/2014 à 21:25:23 (63 messages postés)

❤ 0

merci de vos réponse, le problème est maintenant resolu

Index du forum > Entraide > [XP] Problème script

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