Partagez
Aller en bas
Jodge65
Jodge65
Membre

Nombre de messages : 189
Age : 23
Localisation : Dans le SûD!
Distinction : aucune
Date d'inscription : 25/03/2011

[demande de script] menu aide/config[Résolue](en partie) Empty [demande de script] menu aide/config[Résolue](en partie)

le Mar 30 Aoû 2011 - 14:39
Salut tout les scripteurs et scripteuses Very Happy !

Aujourd'hui je vais vous demander le script qui sera sans doute le plus utiliser tout jeu confondu! *roulement de tambour*....

Le menu de configuration et d'aide! (j'en voie qui partent déjà!)

Mais pas n'importe lequel!...
Donc c'est partie pour la présentation!

Nom du script: Menu aide/config
Description expresse: un script permettant de gérait un maximum de chose comme le skin des fenêtres ou du curseur et bien d'autre (noter que cette partie existe déjà sur la démo... [demande de script] menu aide/config[Résolue](en partie) 556879 ...disponible ici.
Script déjà utiliser: J'aimerai que le script soit compatible avec le plus de script mais personnellement j'utilise les scripts de l'abs requiem v9 et quelque autre mineur mais je serai me débrouiller pour le reste!
Obligation: Il faut que le script puisent être appelait via une ligne de code semblable a celle ci: $scene = Scene_Aide/Config.new

Maintenant une description détailler avec des images montées:

Je souhaiterai un script permettant de gérez au minimum le skin des fenêtres et du curseur (celui de la démo est incompatible avec l'abs requiems v9)
Il faut qu'il y ai la petite fenêtre en haut a droite avec le nom de la page (voir screen2 petit 1).
Spoiler:
[demande de script] menu aide/config[Résolue](en partie) Ex_110

- Il faudrait aussi une description légère (petit2) de l'option.
- Si possible il serai bien d'avoir un système semblable au petit 3 du screen pour gérais le volume de chaque son de (0% a 100% ou de 50% a 150%)
- Deux petit boutons en bas gérant la sauvegarde des options serai pas mal mais pas obligatoire! (petit 5)
- Se serai bien de pouvoir avoir un bouton en bas "afficher l'aide" (petit 4) affichant le troisième screen!

Le screen modifier sous spoiler:
Spoiler:
[demande de script] menu aide/config[Résolue](en partie) Ex_210

La page aide affichera, si possible, les symbole des état anormaux (déjà sur la demo) avec un autre cadre contenant un texte personnelle avec un ascenseur si possible

Spoiler:
[demande de script] menu aide/config[Résolue](en partie) Ex_310

Comment se déplacer dans le menu: Facile! avec les touche directionnelle! on baisse le texte de la page aide avec la flèche bas... on augment le volume avec la flèche gauche ect...


Voila un gros script qui doit demander beaucoup de travaille, j'espère juste que quelqu'un pourrait le faire...

Merci d'avance!

N'hésitez pas a poser plus de question!


Dernière édition par jodge65 le Lun 5 Sep 2011 - 19:20, édité 1 fois
Jodge65
Jodge65
Membre

Nombre de messages : 189
Age : 23
Localisation : Dans le SûD!
Distinction : aucune
Date d'inscription : 25/03/2011

[demande de script] menu aide/config[Résolue](en partie) Empty Re: [demande de script] menu aide/config[Résolue](en partie)

le Ven 2 Sep 2011 - 23:13
UP!

Mais aussi pour vous dire que j'ai trouvé une vidéo de ce que je souhaite!
Malheureusement le lien de la démo est mort chez moi... Si il fonctionne chez vous, pourriez vous me le passer?

La vidéo: https://www.youtube.com/watch?v=hM8Zt4tz1f0

Le lien:
Spoiler:
http://www.rpgmakervx.net/index.php?showtopic=7770&hl=Custom+Menu

Voila!
Balbereith
Balbereith
Staffeux retraité

Nombre de messages : 4129
Age : 26
Localisation : dans l'ombre...
Distinction : Péripatéticienne à temps perdu
Helly n°666 [Coco' ;D]
mon ptit balbounet p'tit jardinier en herbe(les râteaux ça le connait) [tonton Adurna]
Cultivateur professionnel de la commu' (il a de bons outils en de nombreux exemplaires [demande de script] menu aide/config[Résolue](en partie) 522164 ) [Coco' Smile]
Date d'inscription : 13/05/2009

[demande de script] menu aide/config[Résolue](en partie) Empty Re: [demande de script] menu aide/config[Résolue](en partie)

le Ven 2 Sep 2011 - 23:24
En lisant le post du scripteur, il n'y a apparemment pas de démo... Je pense que tu as juste à copier et coller les différent scripts au dessus de main, puis à télécharger les images et les renommé comme il faut.
Jodge65
Jodge65
Membre

Nombre de messages : 189
Age : 23
Localisation : Dans le SûD!
Distinction : aucune
Date d'inscription : 25/03/2011

[demande de script] menu aide/config[Résolue](en partie) Empty Re: [demande de script] menu aide/config[Résolue](en partie)

le Sam 3 Sep 2011 - 9:56
Oui mais chez moi il me met erreur le lien n'existe pas...
De plus j'utilise l'abs requiem qui est un a-rpg donc il y à une certains adaptation à faire...
Si tu y a accès peut tu me les envoyés par mp??? (Ou par postepour en faire profité un maximum...)

Et enfin, il manque le bouton aide en bas...

Et le choix du curseur présent sur la démo du premier post...
Balbereith
Balbereith
Staffeux retraité

Nombre de messages : 4129
Age : 26
Localisation : dans l'ombre...
Distinction : Péripatéticienne à temps perdu
Helly n°666 [Coco' ;D]
mon ptit balbounet p'tit jardinier en herbe(les râteaux ça le connait) [tonton Adurna]
Cultivateur professionnel de la commu' (il a de bons outils en de nombreux exemplaires [demande de script] menu aide/config[Résolue](en partie) 522164 ) [Coco' Smile]
Date d'inscription : 13/05/2009

[demande de script] menu aide/config[Résolue](en partie) Empty Re: [demande de script] menu aide/config[Résolue](en partie)

le Sam 3 Sep 2011 - 15:07
Je te copie, le post du scripteur :

Final Fantasy IX Menu
By BigEd781
Graphics done by PainHurt with some editing by myself


Introduction
This script will make your menu look very similar to the menu of Final Fantasy IX. Comes with a custom windowskin and some images for display in the menu.

If you would like to use the Final Fantasy IX windowskin, I have another script which will make it look just like it did in FF9. You can find that script in this post. Read the "Configuration / Use" section for details on how to enable it.


Updates / BugFixes / Patches

Spoiler:

1/21/08
➮ I think that I have solved 95% of the compatibility issues with other scripts that modify the command window. I am taking down the patches as they should no longer be necessary. Let me know how it goes.
➮ Added an option to use a picture as the menu background (and provided an image).
➮ Added the tiled windowskin script to this post. I really recommend that you use it along with the FFIX windowskin in the "Configuration / Use" section.
➮ Fixed a division by zero error when using skills that cost 0 mp.
➮ Set "ANIMATE_CURSOR" to 'false' by default. If you want to use the option, set it back to 'true'.

1/4/08
➮ Fixed a bug introduced by my last update when you selected the fourth character in the party.

1/3/08
➮ Fixed a bug with the icons that are displayed when a player has a status effect. The icons will replace the class name.
➮ Added captions to the main menu windows.
➮ Added a new cursor display when all party members are selected.
➮ Added new config option which allows you to use a cursor which does not animate.
➮ added new config option which allows you choose how many background panels are drawn when the party is not full.

12/31/08
➮ Added a new script and option which will make the window look a lot nicer when using the FF9 windowskin below.
➮ Fixed a bug that appeared in the play time display window.
➮ Made the layout look a little nicer.

12/30/08
➮Added a patch for KGC's Large Party Script.

12/28/08
➮ Added the animated cursor feature to all windows in another script. Get it here.
➮ Please rename your arrow image to "Pointer.png" or the script will not work!
➮ Fixed a bug that appeared in the Skill and Item menus. These menus have now been overhauled to fit the menu.
➮ Removed the "smart command window" option. The command window in the menu is now the right size, but other windows will not be affected.
➮ Added a few more pointer images.


Features
➮ 99% plug'n'play (you need to download a few images).
➮ Enhanced Skill and Item menus.
➮ Adds a time and location window to the menu. Time updates in menu.
➮ Uses an animated arrow as a pointer to each character rather than the 'box' in a selectable window.
➮ Looks much nicer than the default menu.

Configuration / Use
Spoiler:

Place the script at the top of the "Materials" section of the script editor. Because some core functional had to be changed, it is best to place any menu modification scripts after this one in the editor.

To begin, place these images in the following folders in your game. You only need to choose one of the pointer type images. Rename the pointer image you choose to "Pointer.png"!

Graphics\Pictures
[demande de script] menu aide/config[Résolue](en partie) Pointer_LargeArrow

[demande de script] menu aide/config[Résolue](en partie) Pointer_SmallArrow

[demande de script] menu aide/config[Résolue](en partie) Pointer_XtraSmallArrow

[demande de script] menu aide/config[Résolue](en partie) Pointer_Hand

[demande de script] menu aide/config[Résolue](en partie) Pointer_Compass

[demande de script] menu aide/config[Résolue](en partie) FF9_MenuBar

[demande de script] menu aide/config[Résolue](en partie) Timer

[demande de script] menu aide/config[Résolue](en partie) StoneBackground

Graphics\System (Optional)

This is a nice FF9 style windowset made by PainHurt. I recommend using this as your windowskin. If you do, I really recommend using this script and setting the "USE_TILED_WINDOW" option to true.
Make sure to rename this image to "Window.png" when you save it!!!

[demande de script] menu aide/config[Résolue](en partie) Window-1


Setup

You don't actually have to tinker with any of these options, but you can if you want to:
Code:

  # set this to 'true' if you would like to use a cusotm background image
  USE_CUSTOM_BACK = false

  # the name of the custom background image, without the file extension (no .png)
  BACK_NAME = 'StoneBackground'

  # if you set this to 'true', you must be using the enhanced
  # Window class script that I posted:  You can get that script here:
  # http://www.rpgmakervx.net/index.php?showtopic=8042&hl=
  # this will make the provided FF9 windowskin look really good.
  USE_TILED_WINDOW = false
 
  # When this is set to 'true', the menu cirsor will animate back and forth.
  # When set to 'false', it will stay in place
  ANIMATE_CURSOR = false
 
  # When set to 'true', four background panels are always drawn.
  # When set to 'false', a panel is only drawn for each party member
  DRAW_FOR_ALL = true
 
  # the name of the font used in the menu. 
  # use 'Font.default_name' for the default font.  Try 'Centaur' for a nice, smaller font.
  DEFAULT_FONT = Font.default_name
 
  # set this to true to enable the font above for all windows.
  # also sets the back_opacity to 255 for all windows. 
  # I recommend setting this to 'true' to maintain a consistent look.
  USE_FOR_ALL = true
 
  # the icon id for your gold window portion of the menu, 194 by default.
  GOLD_ICON_ID = 194

Screenshots

Spoiler:
This is what you will see by default:
[demande de script] menu aide/config[Résolue](en partie) Delete-67

This is what your menu may look like if you set "USE_CUSTOM_BACK to "true". This is the background image that I provide, I think it looks nicer than the map background.
[demande de script] menu aide/config[Résolue](en partie) Delete-68

This is using a smaller font that I think looks nicer called 'Berlin Sans FB':
[demande de script] menu aide/config[Résolue](en partie) Delete-70

Remember, to change the font you just need to do this:
Code:
DEFAULT_FONT = 'Centaur'

This is what the new skill and item windows look like:
[demande de script] menu aide/config[Résolue](en partie) Delete-51

Window Script - OPTIONAL -

I highly recommend using this script in conjunction with the FFIX windowskin above. All that you need to do is place this in the "Materials" section and set the "USE_TILED_WINDOW" option to "true" in the menu script.

Spoiler:
Code:

class WindowCursorRect < Rect

attr_reader :x
attr_reader :y
attr_reader :width
attr_reader :height
#--------------------------------------------------------------------
# * intialize
#--------------------------------------------------------------------
def initialize(window)
@window = window
@x = 0
@y = 0
@width = 0
@height = 0
end
#--------------------------------------------------------------------
# * empty
#--------------------------------------------------------------------
def empty
needupdate = (@x != 0) || (@y != 0) || (@width != 0) || (@height != 0)
if needupdate
@x = 0
@y = 0
@width = 0
@height = 0
@window.width = @window.width
end
end
#--------------------------------------------------------------------
# * isEmpty
#--------------------------------------------------------------------
def isEmpty?
return @x == 0 && @y == 0 && @width == 0 && @height == 0
end
#--------------------------------------------------------------------
# * set
#--------------------------------------------------------------------
def set(x,y,width,height)
needupdate=@x!=x || @y!=y || @width!=width || @height!=height
if needupdate
@x=x
@y=y
@width=width
@height=height
@window.width=@window.width
end
end
#--------------------------------------------------------------------
# * height=
#--------------------------------------------------------------------
def height=(value)
@height=value; @window.width=@window.width
end
#--------------------------------------------------------------------
# * width=
#--------------------------------------------------------------------
def width=(value)
@width=value; @window.width=@window.width
end
#--------------------------------------------------------------------
# * x=
#--------------------------------------------------------------------
def x=(value)
@x=value; @window.width=@window.width
end
#--------------------------------------------------------------------
# * y=
#--------------------------------------------------------------------
def y=(value)
@y=value; @window.width=@window.width
end
end

#----------------------------------------------------------------------
# * Window Class
#----------------------------------------------------------------------
class Window
attr_reader :tone
attr_reader :color
attr_reader :blend_type
attr_reader :contents_blend_type
attr_reader :viewport
attr_reader :contents
attr_reader :ox
attr_reader :oy
attr_reader :x
attr_reader :y
attr_reader :z
attr_reader :width
attr_reader :active
attr_reader :pause
attr_reader :height
attr_reader :opacity
attr_reader :back_opacity
attr_reader :contents_opacity
attr_reader :visible
attr_reader :cursor_rect
attr_reader :openness
#--------------------------------------------------------------------
# * windowskin
#--------------------------------------------------------------------
def windowskin
return @_windowskin
end
#--------------------------------------------------------------------
# * intialize
#--------------------------------------------------------------------
def initialize(viewport=nil)
@sprites={}
@spritekeys=
[
"back",
"corner0","side0","scroll0",
"corner1","side1","scroll1",
"corner2","side2","scroll2",
"corner3","side3","scroll3",
"cursor","contents","pause"
]
@sidebitmaps=[nil,nil,nil,nil]
@cursorbitmap=nil
@bgbitmap=nil
@viewport=viewport
@spritekeys.each { |key| @sprites[key]=Sprite.new(@viewport) }
@disposed=false
@tone=Tone.new(0,0,0)
@color=Color.new(0,0,0,0)
@blankcontents=Bitmap.new(1,1) # RGSS2 requires this
@contents=@blankcontents
@_windowskin=nil
@rpgvx=false
@x=0
@y=0
@width=0
@openness=255
@height=0
@ox=0
@oy=0
@z=0
@stretch=true
@visible=true
@active=true
@blend_type=0
@contents_blend_type=0
@opacity=255
@back_opacity=255
@contents_opacity=255
@cursor_rect=WindowCursorRect.new(self)
@cursorblink=0
@cursoropacity=255
@pause=false
@pauseopacity=255
@pauseframe=0
privRefresh(true)
end
#--------------------------------------------------------------------
# * dispose
#--------------------------------------------------------------------
def dispose
if !self.disposed?
for i in @sprites
i[1].dispose if i[1]
@sprites[i[0]]=nil
end
for i in 0...@sidebitmaps.length
@sidebitmaps[i].dispose if @sidebitmaps[i]
@sidebitmaps[i]=nil
end
@blankcontents.dispose
@cursorbitmap.dispose if @cursorbitmap
@backbitmap.dispose if @backbitmap
@sprites.clear
@sidebitmaps.clear
@_windowskin=nil
@_contents=nil
@disposed=true
end
end
#--------------------------------------------------------------------
# * openness=
#--------------------------------------------------------------------
def openness=(value)
@openness=value
@openness=0 if @openness<0
@openness=255 if @openness>255
privRefresh
end
#--------------------------------------------------------------------
# * strecth=
#--------------------------------------------------------------------
def stretch=(value)
@stretch=value
privRefresh(true)
end
#--------------------------------------------------------------------
# * visible=
#--------------------------------------------------------------------
def visible=(value)
@visible=value
privRefresh
end
#--------------------------------------------------------------------
# * viewposrt=
#--------------------------------------------------------------------
def viewport=(value)
@viewport=value
for i in @spritekeys
@sprites[i].dispose
if @sprites[i].is_a?(Sprite)
@sprites[i] = Sprite.new(@viewport)
elsif @sprites[i].is_a?(Plane)
@sprites[i] = Plane.new(@viewport)
else
@sprites[i] = nil
end
end
privRefresh(true)
end
#--------------------------------------------------------------------
# * z=
#--------------------------------------------------------------------
def z=(value)
@z=value
privRefresh
end
#--------------------------------------------------------------------
# * disposed?
#--------------------------------------------------------------------
def disposed?
return @disposed
end
#--------------------------------------------------------------------
# * contents=
#--------------------------------------------------------------------
def contents=(value)
@contents=value
privRefresh
end
#--------------------------------------------------------------------
# * windowskin=
#--------------------------------------------------------------------
def windowskin=(value)
@_windowskin=value
if value && value.is_a?(Bitmap) && !value.disposed? && value.width==128
@rpgvx=true
else
@rpgvx=false
end
privRefresh(true)
end
#--------------------------------------------------------------------
# * ox=
#--------------------------------------------------------------------
def ox=(value)
@ox=value
privRefresh
end
#--------------------------------------------------------------------
# * active=
#--------------------------------------------------------------------
def active=(value)
@active=value
privRefresh(true)
end
#--------------------------------------------------------------------
# * cursor_rect=
#--------------------------------------------------------------------
def cursor_rect=(value)
if !value
@cursor_rect.empty
else
@cursor_rect.set(value.x,value.y,value.width,value.height)
end
end
#--------------------------------------------------------------------
# * oy=
#--------------------------------------------------------------------
def oy=(value)
@oy=value
privRefresh
end
#--------------------------------------------------------------------
# * width=
#--------------------------------------------------------------------
def width=(value)
@width=value
privRefresh(true)
end
#--------------------------------------------------------------------
# * height=
#--------------------------------------------------------------------
def height=(value)
@height=value
privRefresh(true)
end
#--------------------------------------------------------------------
# * pause=
#--------------------------------------------------------------------
def pause=(value)
@pause=value
@pauseopacity=0 if !value
privRefresh
end
#--------------------------------------------------------------------
# * x=
#--------------------------------------------------------------------
def x=(value)
@x=value
privRefresh
end
#--------------------------------------------------------------------
# * y=
#--------------------------------------------------------------------
def y=(value)
@y=value
privRefresh
end
#--------------------------------------------------------------------
# * opacity=
#--------------------------------------------------------------------
def opacity=(value)
@opacity=value
@opacity=0 if @opacity<0
@opacity=255 if @opacity>255
privRefresh
end
#--------------------------------------------------------------------
# * back_opacity=
#--------------------------------------------------------------------
def back_opacity=(value)
@back_opacity=value
@back_opacity=0 if @back_opacity<0
@back_opacity=255 if @back_opacity>255
privRefresh
end
#--------------------------------------------------------------------
# * contents_opacity=
#--------------------------------------------------------------------
def contents_opacity=(value)
@contents_opacity=value
@contents_opacity=0 if @contents_opacity<0
@contents_opacity=255 if @contents_opacity>255
privRefresh
end
#--------------------------------------------------------------------
# * tone=
#--------------------------------------------------------------------
def tone=(value)
@tone=value
privRefresh
end
#--------------------------------------------------------------------
# * color=
#--------------------------------------------------------------------
def color=(value)
@color=value
privRefresh
end
#--------------------------------------------------------------------
# * blend_type=
#--------------------------------------------------------------------
def blend_type=(value)
@blend_type=value
privRefresh
end
#--------------------------------------------------------------------
# * flash
#--------------------------------------------------------------------
def flash(color,duration)
return if disposed?
@sprites.each {|sprite| sprite[1].flash(color,duration)}
end

def update
return if disposed?
mustchange=false
if @active
if @cursorblink==0
@cursoropacity-=8
@cursorblink = 1 if @cursoropacity<=128
else
@cursoropacity+=8
@cursorblink=0 if @cursoropacity>=255
end
mustchange=true if !@cursor_rect.isEmpty?
else
mustchange=true if @cursoropacity!=128
@cursoropacity=128
end
if @pause
@pauseframe=(Graphics.frame_count / 8) % 4
@pauseopacity=[@pauseopacity+64,255].min
mustchange=true
end
privRefresh if mustchange
for i in @sprites
i[1].update
end
end
#------------------ Private Methods ------------------#
private
#--------------------------------------------------------------------
# * ensureBitmap
#--------------------------------------------------------------------
def ensureBitmap(bitmap,dwidth,dheight)
if !bitmap||bitmap.disposed?||bitmap.width<dwidth||bitmap.height<dheight
bitmap.dispose if bitmap
bitmap=Bitmap.new([1,dwidth].max,[1,dheight].max)
end
return bitmap
end
#--------------------------------------------------------------------
# * tileBitmap
#--------------------------------------------------------------------
def tileBitmap(dstbitmap,dstrect,srcbitmap,srcrect)
return if !srcbitmap || srcbitmap.disposed?
left=dstrect.x
top=dstrect.y
y=0;loop do break unless y<dstrect.height
x=0;loop do break unless x<dstrect.width
dstbitmap.blt(x+left,y+top,srcbitmap,srcrect)
x+=srcrect.width
end
y+=srcrect.height
end
end
#--------------------------------------------------------------------
# * privRefresh
#--------------------------------------------------------------------
def privRefresh(changeBitmap=false)
return if self.disposed?
backopac = self.back_opacity * self.opacity / 255
contopac = self.contents_opacity
cursoropac = @cursoropacity * contopac / 255
@sprites["contents"].bitmap = @contents
unless @_windowskin.nil? || @_windowskin.disposed?
for i in 0...4
@sprites["corner#{i}"].bitmap = @_windowskin
@sprites["corner#{i}"].opacity = @opacity
@sprites["corner#{i}"].tone = @tone
@sprites["corner#{i}"].color = @color
@sprites["corner#{i}"].blend_type = @blend_type
@sprites["corner#{i}"].visible = @visible
@sprites["side#{i}"].opacity = @opacity
@sprites["side#{i}"].tone = @tone
@sprites["side#{i}"].color = @color
@sprites["side#{i}"].blend_type = @blend_type
@sprites["side#{i}"].visible = @visible
@sprites["scroll#{i}"].bitmap = @_windowskin
@sprites["scroll#{i}"].opacity = @opacity
@sprites["scroll#{i}"].tone = @tone
@sprites["scroll#{i}"].blend_type = @blend_type
@sprites["scroll#{i}"].color = @color
@sprites["scroll#{i}"].visible = @visible
end
@sprites["pause"].bitmap = @_windowskin
for key in ["back", "cursor", "pause", "contents"]
@sprites[key].color = @color
@sprites[key].tone = @tone
@sprites[key].blend_type = @blend_type
end
@sprites["contents"].blend_type = @contents_blend_type
@sprites["contents"].opacity = contopac
@sprites["contents"].visible = @visible && (@openness == 255)
@sprites["cursor"].opacity = cursoropac
@sprites["cursor"].visible = @visible && (@openness == 255)
@sprites["pause"].visible = @visible && @pause
@sprites["pause"].opacity = @pauseopacity
@sprites["back"].opacity = backopac
@sprites["back"].visible = @visible
hascontents = (!@contents.nil? && !@contents.disposed?)
@sprites["scroll0"].visible = @visible && hascontents && @oy > 0
@sprites["scroll1"].visible = @visible && hascontents && @ox > 0
@sprites["scroll2"].visible = @visible && hascontents && (@contents.width - @ox) > @width - 32
@sprites["scroll3"].visible = @visible && hascontents && (@contents.height - @oy) > @height - 32
else
for i in 0...4
@sprites["corner#{i}"].visible = false
@sprites["side#{i}"].visible = false
@sprites["scroll#{i}"].visible = false
end
@sprites["contents"].visible = @visible && @openness==255
@sprites["contents"].color = @color
@sprites["contents"].tone = @tone
@sprites["contents"].blend_type = @contents_blend_type
@sprites["contents"].opacity = contopac
@sprites["back"].visible = false
@sprites["pause"].visible = false
@sprites["cursor"].visible = false
end
@sprites.each { |sprite| sprite[1].z = @z }
if @rpgvx
@sprites["cursor"].z = @z # For Compatibility
@sprites["contents"].z = @z # For Compatibility
@sprites["pause"].z = @z # For Compatibility
trimX = 64
backRect = Rect.new(0,0,64,64)
blindsRect = Rect.new(0,64,64,64)
else
@sprites["cursor"].z = @z + 1 # For Compatibility
@sprites["contents"].z = @z + 2 # For Compatibility
@sprites["pause"].z = @z + 2 # For Compatibility
trimX = 128
backRect = Rect.new(0,0,128,128)
blindsRect = nil
end
trimY = 0
@sprites["corner0"].src_rect.set(trimX, trimY + 0, 16, 16);
@sprites["corner1"].src_rect.set(trimX + 48, trimY + 0, 16, 16);
@sprites["corner2"].src_rect.set(trimX, trimY + 48, 16, 16);
@sprites["corner3"].src_rect.set(trimX + 48, trimY + 48, 16, 16);
@sprites["scroll0"].src_rect.set(trimX + 24, trimY + 16, 16, 8) # up
@sprites["scroll3"].src_rect.set(trimX + 24, trimY + 40, 16, 8) # down
@sprites["scroll1"].src_rect.set(trimX + 16, trimY + 24, 8, 16) # left
@sprites["scroll2"].src_rect.set(trimX + 40, trimY + 24, 8, 16) # right
cursorX=trimX
cursorY=trimY + 64
sideRects= [ Rect.new(trimX + 16, trimY + 0, 32, 16),
Rect.new(trimX, trimY + 16, 16, 32),
Rect.new(trimX + 48, trimY + 16, 16, 32),
Rect.new(trimX + 16, trimY + 48, 32, 16) ]
if (@width > 32) && (@height > 32)
@sprites["contents"].src_rect.set(@ox, @oy, @width - 32, @height - 32)
else
@sprites["contents"].src_rect.set(0,0,0,0)
end
pauseRects=[ trimX + 32, trimY + 64,
trimX + 48, trimY + 64,
trimX + 32, trimY + 80,
trimX + 48, trimY + 80, ]
pauseWidth = 16
pauseHeight = 16
@sprites["pause"].src_rect.set( pauseRects[@pauseframe*2],
pauseRects[@pauseframe*2+1],
pauseWidth,pauseHeight )
@sprites["pause"].x = @x + (@width / 2) - (pauseWidth / 2)
@sprites["pause"].y = @y + @height - 16 # 16 refers to skin margin
@sprites["contents"].x = @x + 16
@sprites["contents"].y = @y + 16
@sprites["corner0"].x = @x
@sprites["corner0"].y = @y
@sprites["corner1"].x = @x + @width - 16
@sprites["corner1"].y = @y
@sprites["corner2"].x = @x
@sprites["corner2"].y = @y + @height - 16
@sprites["corner3"].x = @x + @width - 16
@sprites["corner3"].y = @y + @height - 16
@sprites["side0"].x = @x + 16
@sprites["side0"].y = @y
@sprites["side1"].x = @x
@sprites["side1"].y = @y + 16
@sprites["side2"].x = @x + @width - 16
@sprites["side2"].y = @y + 16
@sprites["side3"].x = @x + 16
@sprites["side3"].y = @y + @height - 16
@sprites["scroll0"].x = @x + @width / 2 - 8
@sprites["scroll0"].y = @y + 8
@sprites["scroll1"].x = @x + 8
@sprites["scroll1"].y = @y + @height / 2 - 8
@sprites["scroll2"].x = @x + @width - 16
@sprites["scroll2"].y = @y + @height / 2 - 8
@sprites["scroll3"].x = @x + @width / 2 - 8
@sprites["scroll3"].y = @y + @height - 16
@sprites["back"].x = @x + 2
@sprites["back"].y = @y + 2
@sprites["cursor"].x = @x + 16 + @cursor_rect.x
@sprites["cursor"].y = @y + 16 + @cursor_rect.y
if changeBitmap && !@_windowskin.nil? && !@_windowskin.disposed?
width = @cursor_rect.width
height = @cursor_rect.height
if (width > 0) && (height > 0)
cursorrects=[
# sides
Rect.new(cursorX+2, cursorY+0, 28, 2),
Rect.new(cursorX+0, cursorY+2, 2, 28),
Rect.new(cursorX+30, cursorY+2, 2, 28),
Rect.new(cursorX+2, cursorY+30, 28, 2),
# corners
Rect.new(cursorX+0, cursorY+0, 2, 2),
Rect.new(cursorX+30, cursorY+0, 2, 2),
Rect.new(cursorX+0, cursorY+30, 2, 2),
Rect.new(cursorX+30, cursorY+30, 2, 2),
# back
Rect.new(cursorX+2, cursorY+2, 28, 28)
]
margin = 2
fullmargin = 4
@cursorbitmap = ensureBitmap(@cursorbitmap, width, height)
@cursorbitmap.clear
@sprites["cursor"].bitmap = @cursorbitmap
@sprites["cursor"].src_rect.set(0, 0, width, height)
rect = Rect.new(margin, margin, width - fullmargin, height - fullmargin)
@cursorbitmap.stretch_blt(rect, @_windowskin, cursorrects[8])
@cursorbitmap.blt(0, 0, @_windowskin, cursorrects[4]) # top left
@cursorbitmap.blt(width-margin, 0, @_windowskin, cursorrects[5]) # top right
@cursorbitmap.blt(0, height-margin, @_windowskin, cursorrects[6])# bottom right
@cursorbitmap.blt(width-margin, height-margin, @_windowskin, cursorrects[7]) # bottom left
rect = Rect.new(margin, 0, width - fullmargin, margin)
@cursorbitmap.stretch_blt(rect, @_windowskin, cursorrects[0])
rect = Rect.new(0, margin, margin, height - fullmargin)
@cursorbitmap.stretch_blt(rect, @_windowskin, cursorrects[1])
rect = Rect.new(width - margin, margin, margin, height - fullmargin)
@cursorbitmap.stretch_blt(rect, @_windowskin, cursorrects[2])
rect = Rect.new(margin, height-margin, width - fullmargin, margin)
@cursorbitmap.stretch_blt(rect, @_windowskin, cursorrects[3])
else
@sprites["cursor"].visible = false
@sprites["cursor"].src_rect.set(0, 0, 0, 0)
end
for i in 0..3
dwidth = (i == 0 || i == 3) ? @width-32 : 16
dheight = (i == 0 || i == 3) ? 16 : @height - 32
@sidebitmaps[i] = ensureBitmap(@sidebitmaps[i], dwidth, dheight)
@sprites["side#{i}"].bitmap = @sidebitmaps[i]
@sprites["side#{i}"].src_rect.set(0, 0, dwidth, dheight)
@sidebitmaps[i].clear
if (sideRects[i].width > 0) && (sideRects[i].height > 0)
@sidebitmaps[i].stretch_blt( @sprites["side#{i}"].src_rect,
@_windowskin,sideRects[i] )
end
end
backwidth = @width-4
backheight = @height-4
if (backwidth > 0) && (backheight > 0)
@backbitmap = ensureBitmap(@backbitmap, backwidth, backheight)
@sprites["back"].bitmap = @backbitmap
@sprites["back"].src_rect.set(0, 0, backwidth, backheight)
@backbitmap.clear
if @stretch
@backbitmap.stretch_blt(@sprites["back"].src_rect, @_windowskin,backRect)
else
tileBitmap(@backbitmap,@sprites["back"].src_rect, @_windowskin,backRect)
end
if blindsRect
tileBitmap(@backbitmap,@sprites["back"].src_rect, @_windowskin,blindsRect)
end
else
@sprites["back"].visible = false
@sprites["back"].src_rect.set(0,0,0,0)
end
end
if @openness != 255
opn = @openness/255.0
for key in @spritekeys
sprite = @sprites[key]
ratio = (@height <= 0) ? 0 : (sprite.y - @y) * 1.0 / @height
sprite.zoom_y = opn
sprite.oy = 0
sprite.y = (@y + (@height / 2.0) + (@height * ratio * opn) - (@height / 2 * opn)).floor
oldbitmap = sprite.bitmap
oldsrcrect = sprite.src_rect.clone
end
else
for key in @spritekeys
sprite = @sprites[key]
sprite.zoom_y = 1.0
end
end
# Ensure z order
i = 0
for key in @spritekeys
sprite = @sprites[key]
y = sprite.y
sprite.y = i
sprite.oy = (sprite.zoom_y <= 0) ? 0 : (i - y) / sprite.zoom_y
end
end

end

Menu Script

Spoiler:
Code:
=begin                 
                          BigEd781' Final Fantasy IX Menu
            Credit to PainHurt at rpgmakervx.net for most of the graphics
=end

module FF9_Config 
   
  # set this to 'true' if you would like to use a cusotm background image
  USE_CUSTOM_BACK = false
  # the name of the custom background image, without the file extension (no .png)
  BACK_NAME = 'StoneBackground'
  # if you set this to 'true', you must be using the enhanced
  # Window class script that I posted:  You can get that script here:
  # http://www.rpgmakervx.net/index.php?showtopic=8042&hl=
  # this will make the provided FF9 windowskin look really good.
  USE_TILED_WINDOW = false
 
  # When this is set to 'true', the menu cirsor will animate back and forth.
  # When set to 'false', it will stay in place
  ANIMATE_CURSOR = false
 
  # When set to 'true', four background panels are always drawn.
  # When set to 'false', a panel is only drawn for each party member
  DRAW_FOR_ALL = true
 
  # the name of the font used in the menu. 
  # use 'Font.default_name' for the default font.  Try 'Centaur' for a nice, smaller font.
  DEFAULT_FONT = Font.default_name
 
  # set this to true to enable the font above for all windows.
  # also sets the back_opacity to 255 for all windows. 
  # I recommend setting this to 'true' to maintain a consistent look.
  USE_FOR_ALL = true
 
  # the icon id for your gold window portion of the menu, 194 by default.
  GOLD_ICON_ID = 194
 
end

if FF9_Config::USE_FOR_ALL   
 
  Font.default_name = FF9_Config::DEFAULT_FONT
 
  class Window_Base < Window
   
    alias :eds_pre_ff9_menu_base_initialize :initialize
    def initialize(*args)
      eds_pre_ff9_menu_base_initialize(*args) 
      self.stretch = false if FF9_Config::USE_TILED_WINDOW
      self.back_opacity = 255
    end
   
  end
 
end

class Window_Base < Window
 
  CAPTION_COLOR = Color.new(255,255,255)#(228, 228, 228)
  CAPTION_HEIGHT = 12
  X_OFFSET = 16
  Y_OFFSET = -5
 
  alias :eds_pre_window_caption_intialize :initialize
  def initialize(*args)     
    eds_pre_window_caption_intialize(*args)   
    @caption_sprite = Sprite_Base.new(self.viewport)
    create_caption_bitmap(1, CAPTION_HEIGHT)       
    @caption_sprite.x = self.x + X_OFFSET
    @caption_sprite.y = self.y + Y_OFFSET
    @caption_sprite.z = self.z + 1
  end
 
  def x=(value)
    super
    @caption_sprite.x = value + X_OFFSET unless @caption_sprite.nil?
  end
 
  def y=(value)
    super
    @caption_sprite.y = value + Y_OFFSET unless @caption_sprite.nil?
  end
 
  def z=(value)
    super
    @caption_sprite.z = value + 1 unless @caption_sprite.nil?
  end
 
  def caption=(text)
    return unless text.is_a?(String)
    return if text.empty?
    @caption = text
    width = @caption_sprite.bitmap.text_size(@caption).width
    create_caption_bitmap(width, CAPTION_HEIGHT)   
    draw_caption
  end 
 
  def create_caption_bitmap(w, h)
    @caption_sprite.bitmap = Bitmap.new(w, h)   
    @caption_sprite.bitmap.font.size = 12
    @caption_sprite.bitmap.font.color = CAPTION_COLOR
    @caption_sprite.bitmap.font.bold = true 
  end
 
  def draw_caption
    unless @caption.nil?
      h = @caption_sprite.bitmap.height
      w = @caption_sprite.bitmap.width
      rect = Rect.new( 0, h / 2, w, h / 4 )
      @caption_sprite.bitmap.fill_rect(rect, Color.new(0, 0, 0, 96))     
      @caption_sprite.bitmap.draw_text(@caption_sprite.src_rect, @caption)     
    end
  end
 
  alias :eds_pre_caption_window_dispose :dispose
  def dispose
    eds_pre_caption_window_dispose
    @caption_sprite.dispose
  end
 
  def find_window_width(text)             
    return Bitmap.new(544, 416).text_size(text).width + 32
  end   
 
end

class Window_TimeGold < Window_Base 
   
  def initialize(x, y) 
    width = find_window_width("9999999")
    width = 140 if width < 140
    super(x, y, width, WLH + 58)   
    self.back_opacity = 255
    self.stretch = false if FF9_Config::USE_TILED_WINDOW
    self.contents.font.name = FF9_Config::DEFAULT_FONT
    self.caption = "TIME & #{Vocab.gold}"
    @time_icon = Cache.picture('Timer') 
    @intern_frame_count = 0
    refresh
  end
 
  def draw_time
    sec = (Graphics.frame_count / 60) % 60
    min = (Graphics.frame_count / 3600) % 60
    hrs = Graphics.frame_count / 216000   
    self.contents.font.color = Color.new(255, 255, 255)   
    time = "%02d:%02d:%02d" % [hrs, min, sec]
    self.contents.draw_text(0, 0, self.contents.width, WLH, time, 2)   
  end 
 
  def refresh
    self.contents.clear
    self.contents.blt(0, 0, @time_icon, @time_icon.rect)
    draw_icon(FF9_Config::GOLD_ICON_ID, 2, WLH) 
    draw_currency_value($game_party.gold, 0, WLH, self.contents.width)
    draw_time
  end
 
  def draw_currency_value(value, x, y, width)
    gold_text = Vocab.gold
    cx = contents.text_size(gold_text[0,1]).width
    self.contents.font.color = normal_color
    self.contents.draw_text(x, y, width - cx - 2, WLH, value, 2)
    self.contents.font.color = system_color
    # just print the first character of Vocab::gold
    self.contents.draw_text(x, y, width, WLH, gold_text[0,1], 2)
  end
 
  def update
    super
    @intern_frame_count += 1
    return if (@intern_frame_count % 60) != 0         
    refresh
  end
 
  def find_window_width(text)             
    return Bitmap.new(544, 416).text_size(text).width + 80
  end
 
end

class Window_MenuLocation < Window_Base
 
  def initialize(x, y)
    @map_name = load_data("Data/MapInfos.rvdata")[$game_map.map_id].name
    width = find_window_width(@map_name)
    super(x, y, width, WLH + 32)   
    self.stretch = false if FF9_Config::USE_TILED_WINDOW
    self.contents.font.name = FF9_Config::DEFAULT_FONT
    self.back_opacity = 255
    self.caption = "LOCATION"
    refresh
  end
 
  def refresh
    self.contents.clear   
    self.contents.draw_text(0, 0, self.contents.width, WLH,  @map_name, 1)
  end
 
  def find_window_width(text)             
    return Bitmap.new(544, 416).text_size(text).width + 48
  end
 
end

class Window_Command < Window_Selectable
 
  alias :eds_pre_ff9_menu_win_command_init :initialize
  def initialize(*args)
    @font_name = Font.default_name   
    eds_pre_ff9_menu_win_command_init(*args)   
  end
  #--------------------------------------------------------------------------
  # * OVERWRITTEN
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear   
    self.contents.font.name = @font_name
    for i in 0...@item_max
      draw_item(i)
    end
  end
 
  def font_name=(name)
    @font_name = name   
  end
 
end

class Window_Uses < Window_Base 
 
  def initialize(right, y, item)   
    @remaining_text = "Remaining: #{$game_party.item_number(item)}"
    w = 160
    x = right ? (544 - w) : 0   
    super(x, y, w, WLH + 32)   
    self.stretch = false if FF9_Config::USE_TILED_WINDOW
    self.contents.font.name = FF9_Config::DEFAULT_FONT
    refresh
  end
 
  def item=(item)   
    return unless item.is_a?(RPG::Item)
    @remaining_text = "Remaining: #{$game_party.item_number(item)}"     
    refresh
  end
 
  def visible=(value)
    super
    refresh if value
  end
 
  def refresh
    self.contents.clear
    self.contents.draw_text(self.contents.rect, @remaining_text, 1)
  end
 
end

class Window_SkillUses < Window_Base 
 
  def initialize(right, y, actor, skill)   
    @remaining_text = make_info_string(actor, skill)
    w = 182
    x = right ? (544 - w) : 0       
    super(x, y, w, WLH + 32) 
    self.stretch = false if FF9_Config::USE_TILED_WINDOW
    self.contents.font.name = FF9_Config::DEFAULT_FONT
    refresh
  end
 
  def make_info_string(actor, skill)
    return if actor.nil? || skill.nil?
    cost = actor.calc_mp_cost(skill)
    return "Unlimited" if cost < 1
    return "Remaining: #{actor.mp / cost}"
  end
 
  def set_skill(actor, skill)
    return if actor.nil? || skill.nil?
    return unless skill.is_a?(RPG::Skill)
    @remaining_text = make_info_string(actor, skill)   
    refresh
  end
 
  def visible=(value)
    super
    refresh if value
  end
 
  def refresh   
    self.contents.clear
    self.contents.draw_text(self.contents.rect, @remaining_text, 1)
  end
 
end

class Window_MenuStatus < Window_Selectable
   
  #--------------------------------------------------------------------------
  # * OVERWRITTEN
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(x, y, 452, 352)     
    @bg_image = Cache.picture('FF9_MenuBar') 
    @arrow_image = Cache.picture('Pointer')
    create_arrow_sprites
    @sprite_last_draw_x = 0
    @sprite_inc_x = 1
    @intern_frame_count = 0   
    self.stretch = false if FF9_Config::USE_TILED_WINDOW
    self.contents.font.name = FF9_Config::DEFAULT_FONT
    self.opacity = 0   
    self.z = 99       
    self.active = false
    self.index = -1
    refresh
  end
  #--------------------------------------------------------------------------
  # * create_arrow_sprites
  #--------------------------------------------------------------------------
  def create_arrow_sprites 
    @arrow_sprites = []
    for i in 0..3
      @arrow_sprites << Sprite.new
      @arrow_sprites[i].bitmap = Bitmap.new(@arrow_image.width + 7, @arrow_image.height)
      @arrow_sprites[i].x = self.x
      @arrow_sprites[i].y = (i * 80) + self.y + 40     
      @arrow_sprites[i].z = 999       
    end
  end
  #--------------------------------------------------------------------------
  # * OVERWRITTEN
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    @item_max = $game_party.members.size
    draw_background_windows if FF9_Config::DRAW_FOR_ALL
    for actor in $game_party.members
      x = 104
      y = actor.index * 80     
      y_offset = 6     
      draw_background_window(0, y) unless FF9_Config::DRAW_FOR_ALL
      draw_actor_face(actor, 19, y + 4, 73)
      draw_actor_name(actor, x, y + y_offset)
      draw_actor_class(actor, x + 125, y + y_offset) if actor.states.empty?
      draw_actor_level(actor, x, y + WLH * 1)     
      draw_actor_state(actor, x + 125, y + y_offset)
      draw_actor_hp(actor, x, ((y) + (WLH * 2) - 5))
      draw_actor_mp(actor, x + 125, ((y) + (WLH * 2) - 5))
    end
  end 
  #--------------------------------------------------------------------------
  # * OVERWRITTEN
  #--------------------------------------------------------------------------
  def update_cursor             
    if @index < 0             
      #refactor into update arrow method
      @arrow_sprites.each { |sprite| sprite.bitmap.clear }
      return
    end
    @intern_frame_count += 1
    return unless (@intern_frame_count % 5) == 0
    if @sprite_last_draw_x >= 7     
      @sprite_inc_x = -1
    elsif @sprite_last_draw_x <= 0
      @sprite_inc_x = 1
    end
    update_arrow_sprites
  end
  #--------------------------------------------------------------------------
  # * update_arrow_sprites
  #--------------------------------------------------------------------------
  def update_arrow_sprites   
    @arrow_sprites.each { |sprite| sprite.bitmap.clear }   
    if @index == 99  # all selected       
      return unless (@intern_frame_count % 10) == 0
      draw_arrow_sprites(@arrow_sprites, false)     
    else
      draw_arrow_sprites([@arrow_sprites[@index]], FF9_Config::ANIMATE_CURSOR)     
    end
  end
  #--------------------------------------------------------------------------
  # * draw_arrow_sprites
  #--------------------------------------------------------------------------
  def draw_arrow_sprites(sprites, animated=true)
    for sprite in sprites         
      image_x = animated ? @sprite_last_draw_x + @sprite_inc_x : 0
      @sprite_last_draw_x = image_x           
      sprite.bitmap.blt(image_x, 0, @arrow_image, @arrow_image.rect)
    end
  end
  #--------------------------------------------------------------------------
  # * y=
  #--------------------------------------------------------------------------
  def y=(value)
    super
    unless @arrow_sprites.nil?
      for i in 0..3
        @arrow_sprites[i].y = (i * 80) + value + 40
      end
    end
  end
  #--------------------------------------------------------------------------
  # * x=
  #--------------------------------------------------------------------------
  def x=(value)
    super
    unless @arrow_sprites.nil?
      @arrow_sprites.each { |sprite| sprite.x = value }
    end
  end
  #--------------------------------------------------------------------------
  # * draw_background_windows
  #--------------------------------------------------------------------------
  def draw_background_windows 
    self.contents.blt(0, 0, @bg_image, @bg_image.rect)   
    self.contents.blt(0, 80, @bg_image, @bg_image.rect)   
    self.contents.blt(0, 160, @bg_image, @bg_image.rect)   
    self.contents.blt(0, 240, @bg_image, @bg_image.rect)   
  end 
  #--------------------------------------------------------------------------
  # * draw_background_window (single)
  #--------------------------------------------------------------------------
  def draw_background_window(x, y)
    self.contents.blt(x, y, @bg_image, @bg_image.rect)   
  end
  #--------------------------------------------------------------------------
  # * visible
  #--------------------------------------------------------------------------
  def visible=(value)
    super
    @arrow_sprites.each { |sprite| sprite.visible = value }
  end
  #--------------------------------------------------------------------------
  # * dispose
  #--------------------------------------------------------------------------
  alias :eds_pre_ff9_win_stat_dispose :dispose
  def dispose
    eds_pre_ff9_win_stat_dispose
    @arrow_sprites.each { |sprite| sprite.dispose }
  end
 
  def enable_cursor?(rect=nil)
    # for compatibility with the improved command window
    return false
  end   
 
end

class Scene_Menu
     
  #--------------------------------------------------------------------------
  # * create_menu_background (only if USE_CUSTOM_BACK == true)
  #--------------------------------------------------------------------------
  if FF9_Config::USE_CUSTOM_BACK
   
    def create_menu_background
      @menuback_sprite = Sprite.new
      @menuback_sprite.bitmap = Cache.picture(FF9_Config::BACK_NAME)
      @menuback_sprite.color.set(16, 16, 16, 128)
      update_menu_background
    end
   
  end
  #--------------------------------------------------------------------------
  # * OVERWRITTEN
  #--------------------------------------------------------------------------   
  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = Vocab::status
    s5 = Vocab::save
    s6 = Vocab::game_end
    # just changed the width of the window here
    @command_window = Window_Command.new(132, [s1, s2, s3, s4, s5, s6])
    @command_window.index = @menu_index
    @command_window.stretch = false if FF9_Config::USE_TILED_WINDOW
    if $game_party.members.size == 0          # If number of party members is 0
      @command_window.draw_item(0, false)    # Disable item
      @command_window.draw_item(1, false)    # Disable skill
      @command_window.draw_item(2, false)    # Disable equipment
      @command_window.draw_item(3, false)    # Disable status
    end
    if $game_system.save_disabled            # If save is forbidden
      @command_window.draw_item(4, false)    # Disable save
    end     
    # new stuff here   
    @command_window.font_name = FF9_Config::DEFAULT_FONT
    @command_window.x = 528 - @command_window.width
    @command_window.y = 16
    @command_window.back_opacity = 255
  end
  #--------------------------------------------------------------------------
  # * This method is intended to fix some compatibility problems
  #  that scripts run into when they change the command window
  #  in some way.  So, we let them override "create_command_window"
  #  and we simply don't call it from the "start" method.
  #  Instead, we call this method which does some extra checking.
  #--------------------------------------------------------------------------
  def eds_create_command_window
    create_command_window
    old_commands = @command_window.commands
    return if old_commands == [ Vocab::item,
                                Vocab::skill,
                                Vocab::equip,
                                Vocab::status,
                                Vocab::save,
                                Vocab::game_end ]

    # so we know that the default command window is not being used
    # we don't want to create another window, so we manually resize it
    # before the player can see. 
    long = ''
    # dynamically size the width based on the longest command
    old_commands.each { |command| long = command if command.length > long.length }
    # set the index to -1 so that the rectangle disappears.
    # if we don't do this, you can see the selection rectangle resize.
    @command_window.index = -1
    @command_window.width = @command_window.contents.text_size(long).width + 42
    @command_window.contents = Bitmap.new( @command_window.width - 32,
                                          @command_window.height - 32 )   
    @command_window.font_name = FF9_Config::DEFAULT_FONT
    @command_window.x = 528 - @command_window.width
    @command_window.y = 16
    @command_window.back_opacity = 255       
    @command_window.refresh
    @command_window.index = @menu_index
  end
  #--------------------------------------------------------------------------
  # * OVERWRITTEN
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    #call this method for compatibility
    eds_create_command_window
    @gold_window = Window_TimeGold.new(372, 342)
    @gold_window.y -= @gold_window.height
    @gold_window.x = 528 - @gold_window.width
    @status_window = Window_MenuStatus.new(0, 12)
    @location_window = Window_MenuLocation.new(0, 0)
    @location_window.x = 528 - @location_window.width 
    @location_window.y = 398 - @location_window.height
  end
 
  #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
  alias :eds_pre_ff9_menu_scene_menu_terminate :terminate
  def terminate
    eds_pre_ff9_menu_scene_menu_terminate
    @location_window.dispose
  end
 
end

class Scene_Item < Scene_Base
 
  #--------------------------------------------------------------------------
  # * start
  #--------------------------------------------------------------------------
  alias :eds_pre_ff9_menu_scene_item_start :start
  def start       
    eds_pre_ff9_menu_scene_item_start
    @target_window.y = 58   
    @uses_window = Window_Uses.new(true, @help_window.height, nil)
    @uses_window.visible = false
  end 
  #--------------------------------------------------------------------------
  # * OVERWRITTEN
  #  - right-align flag ignored
  #--------------------------------------------------------------------------
  alias :eds_pre_ff9_menu_win_stat_show_target_window :show_target_window
  def show_target_window(right) 
    @uses_window.item = @item_window.item
    @uses_window.visible = true   
    @item_window.visible = false   
    @item_window.active = false   
    @target_window.visible = true
    @target_window.active = true 
    @viewport.rect.set(0, 0, 544, 416)
    @viewport.ox = 0
  end
  #--------------------------------------------------------------------------
  # * hide_target_window
  #--------------------------------------------------------------------------
  alias :eds_pre_ff9_menu_scene_item_hide_target_window :hide_target_window
  def hide_target_window
    eds_pre_ff9_menu_scene_item_hide_target_window 
    @uses_window.visible = false unless @uses_window.nil?
    @item_window.visible = true       
  end
  #--------------------------------------------------------------------------
  # * determine_target
  #--------------------------------------------------------------------------
  alias :eds_pre_ff9_menu_scene_item_determine_target :determine_target
  def determine_target   
    eds_pre_ff9_menu_scene_item_determine_target
    @uses_window.item = @item_window.item
  end   
  #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
  alias :eds_pre_ff9_menu_scene_item_terminate :terminate
  def terminate
    eds_pre_ff9_menu_scene_item_terminate
    @uses_window.dispose
  end
 
end

class Scene_Skill < Scene_Base
 
  #--------------------------------------------------------------------------
  # * start
  #--------------------------------------------------------------------------
  alias :eds_pre_ff9_menu_scene_skill_start :start
  def start       
    eds_pre_ff9_menu_scene_skill_start
    @target_window.y = 58         
    @uses_window = Window_SkillUses.new(true, @help_window.height, nil, nil)
    @uses_window.visible = false
  end 
  #--------------------------------------------------------------------------
  # * OVERWRITTEN
  #  - right-align flag ignored
  #--------------------------------------------------------------------------
  def show_target_window(right)
    @uses_window.set_skill($game_party.members[@actor_index], @skill_window.skill)
    @uses_window.visible = true
    @status_window.visible = false
    @skill_window.visible = false
    @skill_window.active = false   
    @target_window.visible = true
    @target_window.active = true 
    @viewport.rect.set(0, 0, 544, 416)
    @viewport.ox = 0
  end
  #--------------------------------------------------------------------------
  # * hide_target_window
  #--------------------------------------------------------------------------
  alias :eds_pre_ff9_menu_scene_skill_hide_target_window :hide_target_window
  def hide_target_window
    eds_pre_ff9_menu_scene_skill_hide_target_window 
    @uses_window.visible = false unless @uses_window.nil?
    @skill_window.visible = true
    @status_window.visible = true
  end
  #--------------------------------------------------------------------------
  # * determine_target
  #--------------------------------------------------------------------------
  alias :eds_pre_ff9_menu_scene_skill_determine_target :determine_target
  def determine_target   
    eds_pre_ff9_menu_scene_skill_determine_target
    @uses_window.set_skill($game_party.members[@actor_index], @skill_window.skill)
  end   
  #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
  alias :eds_pre_ff9_menu_scene_item_terminate :terminate
  def terminate
    eds_pre_ff9_menu_scene_item_terminate
    @uses_window.dispose
  end
 
end

Compatibility
Compatibility should be really good with other menu mod scripts as long as they appear after this script in the editor. Let me know of any bugs.

dricc
dricc
Membre

Nombre de messages : 2757
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009

[demande de script] menu aide/config[Résolue](en partie) Empty Re: [demande de script] menu aide/config[Résolue](en partie)

le Lun 5 Sep 2011 - 11:23
En ce qui concerne le menu d'options ... ce que tu veux ressemble fortement à celui de yanfly .

http://rmrk.net/index.php/topic,42396.0.html

cherche "menu system option" dans cette liste .
Et j'ai meme une image :
[demande de script] menu aide/config[Résolue](en partie) Menumo10

Il manque que l'aide ... mais en meme temps , je ne comprends pas trop pourquoi tu met l'aide dans le menu d'options . C'est 2 choses completement differentes .
Jodge65
Jodge65
Membre

Nombre de messages : 189
Age : 23
Localisation : Dans le SûD!
Distinction : aucune
Date d'inscription : 25/03/2011

[demande de script] menu aide/config[Résolue](en partie) Empty Re: [demande de script] menu aide/config[Résolue](en partie)

le Lun 5 Sep 2011 - 18:34
Alors:

Balbereith: Merci pour le copier coller du post.
Dricc: Niquel! Plus qu'a l'adapter car il y a quelque bouton que je ne veut pas vraiment pour un A-rpg...
Oui effectivement je pensais avoir mis que je voulais que la page aide soit ouvrable par la phrase: "$scene = Scene_Aide.new" pour pouvoir le rajouter sur le menu si j'avais assez de place mais en me relisant je me suis rendu compte que je ne l'avais pas dit...

Juste une question pour l'adaptation du script j'ouvre un nouveaux sujet ou je modifie le premier post? et le titre...
dricc
dricc
Membre

Nombre de messages : 2757
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009

[demande de script] menu aide/config[Résolue](en partie) Empty Re: [demande de script] menu aide/config[Résolue](en partie)

le Lun 5 Sep 2011 - 19:13
En fait , il faudrait meme que tu en ouvres 2 :
- un pour l'adaptation de ce script . Cacher , ça devrait pas etre dur . il suffirait de s'inspirer du scene_menu standard et de la façon dont il desactive la sauvegarde .
- un pour la scene avec l'aide .
Comme y'a les 2 dans ce topic , c'est perturbant .
Balbereith
Balbereith
Staffeux retraité

Nombre de messages : 4129
Age : 26
Localisation : dans l'ombre...
Distinction : Péripatéticienne à temps perdu
Helly n°666 [Coco' ;D]
mon ptit balbounet p'tit jardinier en herbe(les râteaux ça le connait) [tonton Adurna]
Cultivateur professionnel de la commu' (il a de bons outils en de nombreux exemplaires [demande de script] menu aide/config[Résolue](en partie) 522164 ) [Coco' Smile]
Date d'inscription : 13/05/2009

[demande de script] menu aide/config[Résolue](en partie) Empty Re: [demande de script] menu aide/config[Résolue](en partie)

le Jeu 22 Sep 2011 - 23:34
Le [résolu](en partie) me pousse à demander : "Où en es tu avec ce problème ?"
Complètement ou partiellement résolu ?
Jodge65
Jodge65
Membre

Nombre de messages : 189
Age : 23
Localisation : Dans le SûD!
Distinction : aucune
Date d'inscription : 25/03/2011

[demande de script] menu aide/config[Résolue](en partie) Empty Re: [demande de script] menu aide/config[Résolue](en partie)

le Ven 23 Sep 2011 - 7:07
@Balbereith a écrit:Le [résolu](en partie) me pousse à demander : "Où en es tu avec ce problème ?"
Complètement ou partiellement résolu ?

Alors actuellement je traduit les textes et je tente d'enlevé les options qui ne m'intéresse,, même si je doit avouez que c'est pas encore sa...
Pour l'aide je laisse de coter actuellement pour me penché sur la config de ce scripts...

Donc partielles car l'aide n'est pas résolue...
Contenu sponsorisé

[demande de script] menu aide/config[Résolue](en partie) Empty Re: [demande de script] menu aide/config[Résolue](en partie)

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum