Submit Your Article


 
RPG Maker

Welcome Guest ( Log In | Register )


  Games Resources RPG Maker VX RPG Maker XP Scripts Tutorials Downloads

> Final Fantasy IX Custom Menu
BigEd781
post Dec 24 2008, 05:03 AM
Post #1


No method: 'stupid_title' found for `nil:NilClass'
Group Icon

Group: Revolutionary
Posts: 1,829
Type: Scripter
RM Skill: Undisclosed




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

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

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

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.

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 ohmy.gifx
attr_reader ohmy.gify
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
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.
Attached File(s)
Attached File  delete.txt ( 75.85K ) Number of downloads: 343
 


__________________________
`
Give me teh codez!!!


I am the master debator!
Go to the top of the page
 
+Quote Post
   

Posts in this topic
- BigEd781   Final Fantasy IX Custom Menu   Dec 24 2008, 05:03 AM
- - l33tpie 6   Hey, nice script there, BigEd! I really liked ...   Dec 24 2008, 05:05 AM
- - BigEd781   That's not a bug, the options are on the right...   Dec 24 2008, 05:21 AM
- - Ziosin   Wow. this is an amazing menu script. I'll tes...   Dec 24 2008, 07:10 AM
- - originalwij   very nice! i like the clean look of it, good w...   Dec 24 2008, 12:28 PM
- - BigEd781   OK, so the smart command window isn't as smart...   Dec 24 2008, 02:18 PM
- - Lockheart   I'm totally loving this script. I enjoyed the ...   Dec 24 2008, 03:58 PM
- - TooManyToasters   This looks really cool. Is there an option to remo...   Dec 27 2008, 07:40 AM
|- - jens009   Woah. Very nicely made script Big Ed! This is ...   Dec 27 2008, 10:27 AM
|- - TooManyToasters   QUOTE (jens009 @ Dec 27 2008, 02:27 PM) Q...   Dec 27 2008, 02:18 PM
- - N2Y   Thank you for this script! The menu looks beau...   Dec 28 2008, 07:07 AM
|- - mitchi   QUOTE (N2Y @ Dec 28 2008, 08:07 AM) Thank...   Oct 3 2009, 01:06 PM
- - BigEd781   N2Y Nice menu! I suggest you get this patch....   Dec 28 2008, 05:50 PM
- - N2Y   Thanks. To be honest I didn't use it, because ...   Dec 29 2008, 07:36 AM
- - 5xhunterx5   Hi! Im kinda bad at putting scripts in or maki...   Dec 30 2008, 04:21 PM
- - BigEd781   Are you saying that it doesn't even work in a ...   Dec 30 2008, 04:26 PM
|- - Vascious   QUOTE (BigEd781 @ Dec 30 2008, 05:26 PM) ...   Dec 30 2008, 04:38 PM
- - BigEd781   Vascious, did you get the large party script to wo...   Dec 30 2008, 05:17 PM
|- - Vascious   QUOTE (BigEd781 @ Dec 30 2008, 06:17 PM) ...   Dec 30 2008, 05:21 PM
- - BigEd781   I'll make it easier for you. Find the Window_...   Dec 30 2008, 06:33 PM
|- - Vascious   QUOTE (BigEd781 @ Dec 30 2008, 07:33 PM) ...   Dec 30 2008, 06:54 PM
- - BigEd781   OK, added a patch for KGC's Large Party Script...   Dec 30 2008, 08:48 PM
- - ZoraKing   Uh, I hope i did that right but the main point her...   Dec 31 2008, 04:05 AM
- - BigEd781   Again, please read the entire post. I cannot help...   Dec 31 2008, 02:00 PM
- - Lockheart   Love the new script, makes using skills and items ...   Dec 31 2008, 02:59 PM
|- - BigEd781   QUOTE (Lockheart @ Dec 31 2008, 02:59 PM)...   Dec 31 2008, 03:00 PM
|- - Lockheart   QUOTE (BigEd781 @ Dec 31 2008, 06:00 PM) ...   Dec 31 2008, 05:54 PM
- - Flamehawk27   Ive had the same problem as two other people with ...   Dec 31 2008, 05:39 PM
- - Flamehawk27   Never mind, I fixed the problem. For everyone havi...   Dec 31 2008, 05:56 PM
|- - BigEd781   QUOTE (Flamehawk27 @ Dec 31 2008, 05:56 P...   Dec 31 2008, 06:17 PM
- - Mr. Bubble   @Flamehawk: The spoiler for LargeParty is really m...   Dec 31 2008, 06:22 PM
- - BigEd781   Spoiler fixed, thanks guys/   Dec 31 2008, 06:33 PM
- - Lockheart   I thought I should point this out, maybe this is n...   Dec 31 2008, 07:32 PM
|- - BigEd781   Update ➮ Added a new script and option which wil...   Dec 31 2008, 08:23 PM
- - Lockheart   Everything seems to be in working order, the skin ...   Jan 1 2009, 05:32 AM
- - Darkspear   Very good script. Looks really well. Easily setup....   Jan 1 2009, 09:38 AM
- - Lockheart   Found another bug, I think this is just how RMVX w...   Jan 1 2009, 11:07 AM
|- - BigEd781   QUOTE (Lockheart @ Jan 1 2009, 11:07 AM) ...   Jan 1 2009, 02:17 PM
- - Lockheart   I shall keep you posted with other things I find. ...   Jan 1 2009, 02:19 PM
- - Xarak   Hey! I think I found out an easier way to solv...   Jan 3 2009, 03:35 PM
- - BigEd781   yes Xarak, that is what the problem is in almost a...   Jan 3 2009, 04:03 PM
- - BigEd781   UPDATE ➮ Fixed a bug with the icons that are di...   Jan 3 2009, 07:26 PM
- - Lockheart   Awesome, thanks BigEd. as for the patching, just m...   Jan 3 2009, 07:40 PM
- - BigEd781   OK, another UPDATE ➮ Added a new cursor display...   Jan 3 2009, 08:54 PM
|- - N2Y   QUOTE (BigEd781 @ Jan 3 2009, 09:54 PM) O...   Jan 4 2009, 05:37 AM
||- - BigEd781   QUOTE (N2Y @ Jan 4 2009, 05:37 AM) Any id...   Jan 4 2009, 05:40 AM
||- - N2Y   QUOTE (BigEd781 @ Jan 4 2009, 05:40 AM) Q...   Jan 4 2009, 05:49 AM
|- - Lockheart   QUOTE (BigEd781 @ Jan 3 2009, 11:54 PM) O...   Jan 4 2009, 06:45 PM
- - wortana   [Show/Hide] Open me if you dare You are a hero w0...   Jan 4 2009, 07:34 AM
- - BigEd781   UPDATE ➮ Fixed a bug introduced by my last updat...   Jan 4 2009, 03:31 PM
- - Stoltz   There is a Clash between this script and the craft...   Jan 6 2009, 04:06 PM
|- - BigEd781   QUOTE (Stoltz @ Jan 6 2009, 04:06 PM) The...   Jan 6 2009, 04:26 PM
- - Stoltz   Oh ok Thanks found out one more thing i had to cha...   Jan 6 2009, 05:10 PM
- - BigEd781   There is another function that deals with input. ...   Jan 6 2009, 05:21 PM
- - Stoltz   okok Thanks alot, will try and fix it myself still...   Jan 6 2009, 05:24 PM
- - N2Y   Thanks for your help BigEd, it does work what you ...   Jan 7 2009, 05:09 AM
- - BigEd781   No, the problem is not the version. It is a very ...   Jan 7 2009, 10:25 AM
- - N2Y   I'm afraid I can't give a specific conflic...   Jan 7 2009, 02:17 PM
- - BigEd781   If you could upload your entire project for me I w...   Jan 7 2009, 02:32 PM
- - Nevfx   Another brilliant script. This and the FF9 Style s...   Jan 10 2009, 04:30 PM
- - BigEd781   UPDATES Added a new KGC_LargeParty patch. This t...   Jan 10 2009, 06:48 PM
- - silvershadic   Is this compatible with the charachter select syst...   Jan 10 2009, 11:06 PM
|- - BigEd781   QUOTE (silvershadic @ Jan 10 2009, 11:06 ...   Jan 11 2009, 01:38 AM
- - Lockheart   New bug found! - Using skills with Zero MP ca...   Jan 12 2009, 11:28 AM
|- - BigEd781   QUOTE (Lockheart @ Jan 12 2009, 11:28 AM)...   Jan 12 2009, 12:22 PM
- - Mickadell   Comment Thanks, Im going to try it.   Jan 17 2009, 01:14 AM
- - Mickadell   Comment Rate: Excellent Congratulations! You ...   Jan 17 2009, 02:22 AM
- - BigEd781   Update ➮ I think that I have solved 95% of the ...   Jan 21 2009, 11:35 PM
- - taverin613   Hello! First I want to say I love your script...   May 16 2009, 07:52 PM
- - TalesOf_Fantasy   this script is just great! definely gonna use ...   May 17 2009, 01:56 AM
- - Kasuke   Hey, nice script BigEd! I love it, and I have...   May 24 2009, 06:15 PM
- - sakon93   I would be glad if you mind posting a demo here be...   Sep 20 2009, 05:48 PM
- - mitchi   menu works, but upon leaving the items and skills ...   Oct 2 2009, 05:36 AM
- - overlordarcana   First of all and most importantly I love this scri...   Oct 12 2009, 01:02 PM
- - Locke   Kinda nice cool scripted better use it and test it...   Oct 17 2009, 10:41 AM
- - KentaAmon   QUOTE (Kasuke @ May 24 2009, 07:15 PM) He...   Oct 17 2009, 12:40 PM
- - Sable   Hey, been tinkering about with my game and been us...   Oct 17 2009, 02:54 PM
- - Teshii   Hey. I tried to make this thing work <_< But...   Oct 18 2009, 08:22 AM
- - Sable   *Bump* I still cant figure out how to change the ...   Oct 30 2009, 03:59 PM
- - megamario   I get this problem where it goes blank when i star...   Oct 31 2009, 02:08 PM
- - 5xhunterx5   Does anyone know how to use their own windowskin i...   Nov 1 2009, 04:58 AM
|- - BigEd781   QUOTE (5xhunterx5 @ Nov 1 2009, 04:58 AM)...   Nov 4 2009, 03:54 PM
- - 5xhunterx5   I thought you could just use the window script and...   Nov 5 2009, 04:18 AM
- - megamario   I Havent Solved My Problem Yet but My Comp. Got Wi...   Nov 9 2009, 04:02 PM
|- - BigEd781   QUOTE (megamario @ Nov 9 2009, 04:02 PM) ...   Nov 9 2009, 05:18 PM
|- - MasterIckolas   Umm, I have a problem. All the Images I need for t...   Nov 15 2009, 04:08 PM
|- - BigEd781   QUOTE (MasterIckolas @ Nov 15 2009, 04:08...   Nov 15 2009, 07:21 PM
|- - MasterIckolas   Thanks. The script works perfectly. Your awesome d...   Nov 16 2009, 08:42 AM
- - LegacyX   Im going to try and change this to work with RMXP,...   Nov 16 2009, 08:44 AM
|- - BigEd781   QUOTE (LegacyX @ Nov 16 2009, 08:44 AM) I...   Nov 23 2009, 05:47 PM
- - Odin   QUOTE Im going to try and change this to work with...   Nov 17 2009, 02:38 AM
- - Auron3000   Thank you for the script , is awesome this pag...   Nov 23 2009, 05:20 PM
- - LegacyX   Okay dokey. Im currently working on it. As soon a...   Nov 24 2009, 09:25 AM
- - Sable   Sorry to bump the topic but I've tried everyth...   Jan 14 2010, 01:19 PM
- - Mako Lion 09   thanks for the awsome script its very useful   Jul 16 2011, 11:54 AM
- - Ruiki   [quote name='BigEd781' date='Dec 24 20...   Jul 20 2011, 12:37 PM
- - BigEd781   QUOTE (Ruiki @ Jul 20 2011, 01:37 PM) Thi...   Aug 3 2011, 02:26 PM


Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 

Lo-Fi Version Time is now: 18th May 2013 - 07:58 PM
RPG RPG Revolution is an Privacy Policy and Legal
eXTReMe Tracker