- Jodge65Membre
- Nombre de messages : 189
Age : 28
Localisation : Dans le SûD!
Distinction : aucune
Date d'inscription : 25/03/2011
[demande de script] menu aide/config[Résolue](en partie)
Mar 30 Aoû 2011 - 14:39
Salut tout les scripteurs et scripteuses !
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... ...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).
- 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:
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
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!
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... ...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:
- 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:
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:
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!
- Jodge65Membre
- Nombre de messages : 189
Age : 28
Localisation : Dans le SûD!
Distinction : aucune
Date d'inscription : 25/03/2011
Re: [demande de script] menu aide/config[Résolue](en partie)
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:
Voila!
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:
Voila!
- BalbereithStaffeux retraité
- Nombre de messages : 4129
Age : 31
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 ) [Coco' ]
Date d'inscription : 13/05/2009
Re: [demande de script] menu aide/config[Résolue](en partie)
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.
- Jodge65Membre
- Nombre de messages : 189
Age : 28
Localisation : Dans le SûD!
Distinction : aucune
Date d'inscription : 25/03/2011
Re: [demande de script] menu aide/config[Résolue](en partie)
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...
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...
- BalbereithStaffeux retraité
- Nombre de messages : 4129
Age : 31
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 ) [Coco' ]
Date d'inscription : 13/05/2009
Re: [demande de script] menu aide/config[Résolue](en partie)
Sam 3 Sep 2011 - 15:07
Je te copie, le post du scripteur :
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
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
Screenshots
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.
Menu Script
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.
Final Fantasy IX Menu
By BigEd781
Graphics done by PainHurt with some editing by myself
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
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!!!
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:
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.
This is using a smaller font that I think looks nicer called 'Berlin Sans FB':
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:
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.
- driccMembre
- Nombre de messages : 2760
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009
Re: [demande de script] menu aide/config[Résolue](en partie)
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 :
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 .
http://rmrk.net/index.php/topic,42396.0.html
cherche "menu system option" dans cette liste .
Et j'ai meme une image :
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 .
- Jodge65Membre
- Nombre de messages : 189
Age : 28
Localisation : Dans le SûD!
Distinction : aucune
Date d'inscription : 25/03/2011
Re: [demande de script] menu aide/config[Résolue](en partie)
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...
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...
- driccMembre
- Nombre de messages : 2760
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009
Re: [demande de script] menu aide/config[Résolue](en partie)
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 .
- 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 .
- BalbereithStaffeux retraité
- Nombre de messages : 4129
Age : 31
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 ) [Coco' ]
Date d'inscription : 13/05/2009
Re: [demande de script] menu aide/config[Résolue](en partie)
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 ?
Complètement ou partiellement résolu ?
- Jodge65Membre
- Nombre de messages : 189
Age : 28
Localisation : Dans le SûD!
Distinction : aucune
Date d'inscription : 25/03/2011
Re: [demande de script] menu aide/config[Résolue](en partie)
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...
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|