Kasbak Membre V.I.P.
Messages postés : 1356 Date d'inscription : 05/01/2013 Jauge LPC :
| Sujet: RMXP bug script (window_selectable) Ven 25 Juil 2014 - 12:40 | |
| 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. - Code:
-
dans scene_menu ligne 26 remplacer 160 par 640 et coller le script window_selectable au dessus de main. - Code:
-
#============================================================================== # ¦ 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 |
|
Ti-Max Membre V.I.P.
Messages postés : 2260 Date d'inscription : 11/07/2012 Jauge LPC :
| Sujet: Re: RMXP bug script (window_selectable) Lun 28 Juil 2014 - 14:56 | |
| Il te faudra mettre les valeurs que tu veux pour le menu dans le script du menu au lieu d'appeler la variable @command_window. Ça devrait ressembler à une ligne comme ça. - Code:
-
command_window = Window_Command.new(160, [s1,s2,s3,s4,s5,s6]) @command_window.x = 480 + 160 @command_window.y = 95 @command_window.height = 296 @command_window.index = @menu_index @command_window.back_opacity = 130 sinon, fait un 2e script, mais qui va appeler des variables différentes pour le menu. Mais je crois que le script Window_Command devra être aussi doubler. |
|