OK i have this script
http://forums.rrrevolution.com/screenshots/%5B45%5Dffx2screen.JPGIm going to use it to my game but when i save
And play again, It appears like i didnt save anything
And the savefile appears in the folder..
Can someone edit this or tell me where is the problem....
Heres the script
#=========================================================
# This is the ffx-2 Custom Menu System by Catchm.
# It is a long script and includes many alterations and images attached to it.
# These images can be edited, and the script can be edited, you are free to do so
# credit to Catchm is the only thing needed.
# this is to be copied into a new script in the script editor
#
# Have fun with the script!
#=========================================================
class Bitmap
def draw_text_shadow_rect(rect, text, align = 0)
self.font.size -= 2
old_col = self.font.color.clone
# Dark shadow
self.font.color = Color.new(0,0,0, 255)
draw_text(Rect.new(rect.x+1, rect.y+1, rect.width,
rect.height), text, align)
# Small outline
self.font.color = Color.new(96,96,96,96)
draw_text(Rect.new(rect.x+1, rect.y, rect.width,
rect.height), text, align)
draw_text(Rect.new(rect.x-1, rect.y, rect.width,
rect.height), text, align)
draw_text(Rect.new(rect.x, rect.y-1, rect.width,
rect.height), text, align)
draw_text(Rect.new(rect.x, rect.y+1, rect.width,
rect.height), text, align)
# Normal text
self.font.color = old_col
draw_text(rect, text, align)
self.font.size += 2
end
def draw_text_shadow(x, y, wid, hei, text, align = 0)
self.font.size -= 2
old_col = self.font.color.clone
# Dark shadow
self.font.color = Color.new(0,0,0, 255)
draw_text(x+1,y+1,wid,hei,text, align)
# Small outline
self.font.color = Color.new(96,96,96,96)
draw_text(x+1,y,wid,hei,text, align)
draw_text(x+2,y,wid,hei,text, align)
draw_text(x+2,y,wid,hei,text, align)
draw_text(x,y-1,wid,hei,text, align)
draw_text(x,y+1,wid,hei,text, align)
draw_text(x,y+2,wid,hei,text, align)
# Normal
self.font.color = old_col
draw_text(x,y,wid,hei,text, align)
self.font.size += 2
end
def draw_text_outline(x, y, wid, hei, text, align = 0)
self.font.color = Color.new(0, 0, 0, 255)
draw_text(x + 1,y + 1,wid,hei,text, align)
draw_text(x + 1,y - 1,wid,hei,text, align)
draw_text(x - 1,y - 1,wid,hei,text, align)
draw_text(x - 1,y + 1,wid,hei,text, align)
self.font.color = Color.new(255, 255, 255, 255)
draw_text(x,y,wid,hei,text, align)
end
def draw_text_outline2(x, y, wid, hei, text, align = 0)
self.font.color = Color.new(0, 0, 0, 255)
draw_text(x + 1,y + 1,wid,hei,text, align)
draw_text(x + 1,y - 1,wid,hei,text, align)
draw_text(x - 1,y - 1,wid,hei,text, align)
draw_text(x - 1,y + 1,wid,hei,text, align)
self.font.color = Color.new(255, 255, 255, 200)
draw_text(x,y,wid,hei,text, align)
end
def draw_text_outline3(x, y, wid, hei, text, align = 0)
self.font.color = Color.new(0, 0, 0, 255)
draw_text(x + 1,y + 1,wid,hei,text, align)
draw_text(x + 1,y - 1,wid,hei,text, align)
draw_text(x - 1,y - 1,wid,hei,text, align)
draw_text(x - 1,y + 1,wid,hei,text, align)
self.font.color = Color.new(192, 224, 255, 255)
draw_text(x,y,wid,hei,text, align)
end
def draw_text_outline4(x, y, wid, hei, text, align = 0)
self.font.color = Color.new(0, 0, 0, 190)
draw_text(x + 1,y + 1,wid,hei,text, align)
draw_text(x + 1,y - 1,wid,hei,text, align)
draw_text(x - 1,y - 1,wid,hei,text, align)
draw_text(x - 1,y + 1,wid,hei,text, align)
self.font.color = Color.new(255, 255, 255, 255)
draw_text(x,y,wid,hei,text, align)
end
end
class Window_Base < Window
#=====================================
# Gradient Bars , thanks to Acedent Prone
def draw_normal_barz(x, y, type, length, thick, e1, e2, c1 = Color.new(255,0,0,255), c2 = Color.new(0,0,0,255))
if type == "horizontal"
width = length
height = thick
self.contents.fill_rect(x-1, y - 1, width+2, height + 3, Color.new(255, 255, 255, 255))
self.contents.fill_rect(x, y, width, height + 1, Color.new(0, 0, 0, 255))
w = width * e1 / e2
for i in 0..height
r = c1.red + (c2.red - c1.red) * (height -i)/height + 0 * i/height
g = c1.green + (c2.green - c1.green) * (height -i)/height + 0 * i/height
b = c1.blue + (c2.blue - c1.blue) * (height -i)/height + 0 * i/height
a = c1.alpha + (c2.alpha - c1.alpha)* (height -i)/height + 255 * i/height
self.contents.fill_rect(x, y+i, w, 1, Color.new(r, g, b, a))
end
elsif type == "vertical"
width = thick
height = length
self.contents.fill_rect(x-1, y - 1, width+3, height + 2, Color.new(255, 255, 255, 255))
self.contents.fill_rect(x, y, width+1, height , Color.new(0, 0, 0, 255))
h = height * e1 / e2
for i in 0..width
r = c1.red + (c2.red - c1.red) * (width -i)/width + 0 * i/width
g = c1.green + (c2.green - c1.green) * (width -i)/width + 0 * i/width
b = c1.blue + (c2.blue - c1.blue) * (width -i)/width + 0 * i/width
a = c1.alpha + (c2.alpha - c1.alpha)* (width -i)/width + 255 * i/width
self.contents.fill_rect(x+i, y, 1, h, Color.new(r, g, b, a))
end
end
end
def draw_actor_barz(actor,x, y, type, length, thick, e1, e2, c1 = Color.new(255,0,0,255), c2 = Color.new(0,0,0,255))
if type == "horizontal"
width = length
height = thick
self.contents.fill_rect(x-1, y - 1, width+2, height + 3, Color.new(0, 0, 0, 255))
self.contents.fill_rect(x, y, width, height + 1, Color.new(0, 0, 0, 255))
w = width * e1 / e2
for i in 0..height
r = c1.red + (c2.red - c1.red) * (height -i)/height + 0 * i/height
g = c1.green + (c2.green - c1.green) * (height -i)/height + 0 * i/height
b = c1.blue + (c2.blue - c1.blue) * (height -i)/height + 0 * i/height
a = c1.alpha + (c2.alpha - c1.alpha)* (height -i)/height + 255 * i/height
self.contents.fill_rect(x, y+i, w, 1, Color.new(r, g, b, a))
end
elsif type == "vertical"
width = thick
height = length
self.contents.fill_rect(x-1, y - 1, width+3, height + 2, Color.new(255, 255, 255, 255))
self.contents.fill_rect(x, y, width+1, height , Color.new(0, 0, 0, 255))
h = height * e1 / e2
for i in 0..width
r = c1.red + (c2.red - c1.red) * (width -i)/width + 0 * i/width
g = c1.green + (c2.green - c1.green) * (width -i)/width + 0 * i/width
b = c1.blue + (c2.blue - c1.blue) * (width -i)/width + 0 * i/width
a = c1.alpha + (c2.alpha - c1.alpha)* (width -i)/width + 255 * i/width
self.contents.fill_rect(x+i, y, 1, h, Color.new(r, g, b, a))
end
end
end
#=====================================
# New definitions
def draw_battlegraphic(actor, x, y)
bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
cw = bitmap.width
ch = bitmap.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
end
#======================================
def draw_actor_statuswindow(actor, x, y)
bitmap = RPG::Cache.picture(actor.character_name, actor.character_hue)
cw = bitmap.width / 4
ch = bitmap.height / 4
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
end
#=====================================
def draw_actor_face(actor, x, y)
face = RPG::Cache.character("Faces/" + actor.character_name, actor.character_hue)
fw = face.width
fh = face.height
src_rect = Rect.new(0, 0, fw, fh)
self.contents.blt(x - fw / 23, y - fh, face, src_rect)
end
#=====================================
def draw_actor_name2(actor, x, y)
self.contents.font.name = $fontface
self.contents.font.color = outline_color
self.contents.draw_text(x - 1, y - 1, 120, 32, actor.name)
self.contents.draw_text(x + 1, y - 1, 120, 32, actor.name)
self.contents.draw_text(x + 1, y + 1, 120, 32, actor.name)
self.contents.draw_text(x - 1, y + 1, 120, 32, actor.name)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 120, 32, actor.name)
end
#=====================================
def draw_actor_level2(actor, x, y)
self.contents.font.name = $fontface
self.contents.font.color = outline_color
self.contents.draw_text(x - 1, y - 1, 32, 32, "Lv")
self.contents.draw_text(x - 1, y + 1, 32, 32, "Lv")
self.contents.draw_text(x + 1, y - 1, 32, 32, "Lv")
self.contents.draw_text(x + 1, y + 1, 32, 32, "Lv")
self.contents.font.color = Color.new(254, 230, 159, 255)
self.contents.draw_text(x, y, 32, 32, "Lv")
self.contents.font.color = outline_color
self.contents.draw_text(x + 31, y + 1, 24, 32, actor.level.to_s, 2)
self.contents.draw_text(x + 31, y - 1, 24, 32, actor.level.to_s, 2)
self.contents.draw_text(x + 33, y + 1, 24, 32, actor.level.to_s, 2)
self.contents.draw_text(x + 33, y - 1, 24, 32, actor.level.to_s, 2)
self.contents.font.color = normal_color
self.contents.draw_text(x + 32, y, 24, 32, actor.level.to_s, 2)
end
#=====================================
def draw_actor_class2(actor, x, y)
self.contents.font.name = "Black Chancery"
self.contents.font.color = outline_color
self.contents.draw_text(x + 1, y + 1, 236, 32, actor.class_name)
self.contents.draw_text(x + 1, y - 1, 236, 32, actor.class_name)
self.contents.draw_text(x - 1, y + 1, 236, 32, actor.class_name)
self.contents.draw_text(x - 1, y - 1, 236, 32, actor.class_name)
self.contents.font.color = Color.new(238, 139, 254, 255)
self.contents.draw_text(x, y, 236, 32, actor.class_name)
end
#======================================
def draw_actor_hp2(actor, x, y, width = 144)
self.contents.font.name = "Tahoma"
# æ–‡å—列 "HP" ã‚’æç”»
self.contents.font.size = 24
self.contents.font.color = outline_color
self.contents.draw_text(x + 1, y + 1, 32, 32, $data_system.words.hp)
self.contents.draw_text(x + 1, y - 1, 32, 32, $data_system.words.hp)
self.contents.draw_text(x - 1, y - 1, 32, 32, $data_system.words.hp)
self.contents.draw_text(x - 1, y + 1, 32, 32, $data_system.words.hp)
self.contents.font.color = Color.new(254, 238, 189, 255)
self.contents.draw_text(x, y, 32, 32, $data_system.words.hp)
# MaxHP ã‚’æç”»ã™ã‚‹ã‚¹ãƒšãƒ¼ã‚¹ãŒã‚ã‚‹ã‹è¨ˆç®—
if width - 32 >= 108
hp_x = x + width - 108
flag = true
elsif width - 32 >= 48
hp_x = x + width - 48
flag = false
end
# HP ã‚’æç”»
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
self.contents.font.color = outline_color
self.contents.draw_text(hp_x - 1, y - 1, 48, 32, actor.hp.to_s, 2)
self.contents.draw_text(hp_x - 1, y + 1, 48, 32, actor.hp.to_s, 2)
self.contents.draw_text(hp_x + 1, y + 1, 48, 32, actor.hp.to_s, 2)
self.contents.draw_text(hp_x + 1, y - 1, 48, 32, actor.hp.to_s, 2)
self.contents.font.color = actor.hp == 0 ? knockout_color :
actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
self.contents.draw_text(hp_x, y, 48, 32, actor.hp.to_s, 2)
# MaxHP ã‚’æç”»
if flag
self.contents.font.color = outline_color
self.contents.draw_text(hp_x + 60 - 1, y - 1, 48, 32, actor.maxhp.to_s)
self.contents.draw_text(hp_x + 60 - 1, y + 1, 48, 32, actor.maxhp.to_s)
self.contents.draw_text(hp_x + 60 + 1, y - 1, 48, 32, actor.maxhp.to_s)
self.contents.draw_text(hp_x + 60 + 1, y + 1, 48, 32, actor.maxhp.to_s)
self.contents.draw_text(hp_x + 48 - 1, y - 1, 12, 32, "/", 1)
self.contents.draw_text(hp_x + 48 + 1, y + 1, 12, 32, "/", 1)
self.contents.draw_text(hp_x + 48 - 1, y + 1, 12, 32, "/", 1)
self.contents.draw_text(hp_x + 48 + 1, y - 1, 12, 32, "/", 1)
self.contents.font.color = normal_color
self.contents.draw_text(hp_x + 48, y, 12, 32, "/", 1)
self.contents.draw_text(hp_x + 60, y, 48, 32, actor.maxhp.to_s)
end
end
#============================================
def draw_actor_sp2(actor, x, y, width = 144)
self.contents.font.name = "Tahoma"
# æ–‡å—列 "SP" ã‚’æç”»
self.contents.font.size = 24
self.contents.font.color = outline_color
self.contents.draw_text(x + 1, y + 1, 32, 32, $data_system.words.sp)
self.contents.draw_text(x + 1, y - 1, 32, 32, $data_system.words.sp)
self.contents.draw_text(x - 1, y - 1, 32, 32, $data_system.words.sp)
self.contents.draw_text(x - 1, y + 1, 32, 32, $data_system.words.sp)
self.contents.font.color = Color.new(74, 230, 51, 225)
self.contents.draw_text(x, y, 32, 32, $data_system.words.sp)
# MaxSP ã‚’æç”»ã™ã‚‹ã‚¹ãƒšãƒ¼ã‚¹ãŒã‚ã‚‹ã‹è¨ˆç®—
if width - 32 >= 108
sp_x = x + width - 108
flag = true
elsif width - 32 >= 48
sp_x = x + width - 48
flag = false
end
# SP ã‚’æç”»
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
self.contents.font.color = outline_color
self.contents.draw_text(sp_x - 1, y - 1, 48, 32, actor.sp.to_s, 2)
self.contents.draw_text(sp_x - 1, y + 1, 48, 32, actor.sp.to_s, 2)
self.contents.draw_text(sp_x + 1, y - 1, 48, 32, actor.sp.to_s, 2)
self.contents.draw_text(sp_x + 1, y + 1, 48, 32, actor.sp.to_s, 2)
self.contents.font.color = actor.sp == 0 ? knockout_color :
actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
self.contents.draw_text(sp_x, y, 48, 32, actor.sp.to_s, 2)
# MaxSP ã‚’æç”»
if flag
self.contents.font.color = outline_color
self.contents.draw_text(sp_x + 60 - 1, y - 1, 48, 32, actor.maxsp.to_s)
self.contents.draw_text(sp_x + 60 - 1, y + 1, 48, 32, actor.maxsp.to_s)
self.contents.draw_text(sp_x + 60 + 1, y + 1, 48, 32, actor.maxsp.to_s)
self.contents.draw_text(sp_x + 60 + 1, y - 1, 48, 32, actor.maxsp.to_s)
self.contents.draw_text(sp_x + 48 - 1, y - 1, 12, 32, "/", 1)
self.contents.draw_text(sp_x + 48 - 1, y - 1, 12, 32, "/", 1)
self.contents.draw_text(sp_x + 48 + 1, y + 1, 12, 32, "/", 1)
self.contents.draw_text(sp_x + 48 + 1, y + 1, 12, 32, "/", 1)
self.contents.font.color = normal_color
self.contents.draw_text(sp_x + 48, y, 12, 32, "/", 1)
self.contents.draw_text(sp_x + 60, y, 48, 32, actor.maxsp.to_s)
end
end
#=========================================
def draw_actor_state2(actor, x, y, width = 120)
self.contents.font.name = $fontface
text = make_battler_state_text(actor, width, true)
self.contents.font.color = outline_color
self.contents.draw_text(x - 1, y - 1, width, 32, text)
self.contents.draw_text(x - 1, y + 1, width, 32, text)
self.contents.draw_text(x + 1, y + 1, width, 32, text)
self.contents.draw_text(x + 1, y - 1, width, 32, text)
self.contents.font.color = actor.hp == 0 ? knockout_color : normal_color
self.contents.draw_text(x, y, width, 32, text)
end
#=====================================
def draw_actor_parameter2(actor, x, y, type)
case type
when 0
parameter_name = $data_system.words.atk
parameter_value = actor.atk
when 1
parameter_name = $data_system.words.pdef
parameter_value = actor.pdef
when 2
parameter_name = "Magic Def"
parameter_value = actor.mdef
when 3
parameter_name = $data_system.words.str
parameter_value = actor.str
when 4
parameter_name = $data_system.words.dex
parameter_value = actor.dex
when 5
parameter_name = $data_system.words.agi
parameter_value = actor.agi
when 6
parameter_name = $data_system.words.int
parameter_value = actor.int
end
self.contents.font.color = system_color
self.contents.draw_text_outline(x, y, 120, 32, parameter_name)
self.contents.font.color = normal_color
self.contents.draw_text_outline(x + 130, y, 36, 32, parameter_value.to_s, 2)
end
#=========================================
def draw_item_name2(item, x, y)
if item == nil
self.contents.draw_text_outline(x + 28, y, 212, 32, "EMPTY")
return
end
bitmap = RPG::Cache.icon(item.icon_name)
self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))
self.contents.draw_text_outline(x + 28, y, 212, 32, item.name)
end
# New colour for outlining text - Black
def outline_color
return Color.new(0, 0, 0, 255)
end
end
& nbsp;#==========================================================================
====
# â– Window_Selectable
#------------------------------------------------------------------------------
#  カーソルã®ç§»å‹•ã‚„スクãƒãƒ¼ãƒ«ã®æ©Ÿèƒ½ã‚’æŒã¤ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚¯ãƒ©ã‚¹ã§ã™ã€‚
#==============================================================================
class Window_Itemselectable < Window_Base
#--------------------------------------------------------------------------
# ◠公開インスタンス変数
#--------------------------------------------------------------------------
attr_reader :index # カーソルä½ç½®
attr_reader :help_window # ヘルプウィンドウ
#--------------------------------------------------------------------------
# ◠オブジェクトåˆæœŸåŒ–
# x : ウィンドウ㮠X 座標
# y : ウィンドウ㮠Y 座標
# width : ウィンドウã®å¹…
# height : ウィンドウã®é«˜ã•
#--------------------------------------------------------------------------
def initialize(x, y, width, height)
super(x, y, width, height)
@item_max = 1
@column_max = 1
@index = -1
end
#--------------------------------------------------------------------------
# ◠カーソルä½ç½®ã®è¨å®š
# index : æ–°ã—ã„カーソルä½ç½®
#--------------------------------------------------------------------------
def index=(index)
@index = index
# ヘルプテã‚ストを更新 (update_help ã¯ç¶™æ‰¿å…ˆã§å®šç¾©ã•ã‚Œã‚‹)
if self.active and @help_window != nil
update_help
end
# カーソルã®çŸ©å½¢ã‚’æ›´æ–°
update_cursor_rect
end
#--------------------------------------------------------------------------
# ◠行数ã®å–å¾—
#--------------------------------------------------------------------------
def row_max
# é …ç›®æ•°ã¨åˆ—æ•°ã‹ã‚‰è¡Œæ•°ã‚’算出
return (@item_max + @column_max - 1) / @column_max
end
#--------------------------------------------------------------------------
# â— å…ˆé ã®è¡Œã®å–å¾—
#--------------------------------------------------------------------------
def top_row
# ウィンドウ内容ã®è»¢é€å…ƒ Y 座標をã€1 è¡Œã®é«˜ã• 32 ã§å‰²ã‚‹
return self.oy / 32
end
#--------------------------------------------------------------------------
# â— å…ˆé ã®è¡Œã®è¨å®š
# row : å…ˆé ã«è¡¨ç¤ºã™ã‚‹è¡Œ
#--------------------------------------------------------------------------
def top_row=(row)
# row ㌠0 未満ã®å ´åˆã¯ 0 ã«ä¿®æ£
if row < 0
row = 0
end
# row ㌠row_max - 1 超ã®å ´åˆã¯ row_max - 1 ã«ä¿®æ£
if row > row_max - 1
row = row_max - 1
end
# row ã« 1 è¡Œã®é«˜ã• 32 を掛ã‘ã€ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦å†…容ã®è»¢é€å…ƒ Y 座標ã¨ã™ã‚‹
self.oy = row * 32
end
#--------------------------------------------------------------------------
# â— 1 ページã«è¡¨ç¤ºã§ãる行数ã®å–å¾—
#--------------------------------------------------------------------------
def page_row_max
# ウィンドウã®é«˜ã•ã‹ã‚‰ã€ãƒ•ãƒ¬ãƒ¼ãƒ ã®é«˜ã• 32 を引ãã€1 è¡Œã®é«˜ã• 32 ã§å‰²ã‚‹
return (self.height - 32) / 32
end
#--------------------------------------------------------------------------
# â— 1 ページã«è¡¨ç¤ºã§ãã‚‹é …ç›®æ•°ã®å–å¾—
#--------------------------------------------------------------------------
def page_item_max
# 行数 page_row_max 㫠列数 @column_max を掛ã‘ã‚‹
return page_row_max * @column_max
end
#--------------------------------------------------------------------------
# ◠ヘルプウィンドウã®è¨å®š
# help_window : æ–°ã—ã„ヘルプウィンドウ
#--------------------------------------------------------------------------
def help_window=(help_window)
@help_window = help_window
# ヘルプテã‚ストを更新 (update_help ã¯ç¶™æ‰¿å…ˆã§å®šç¾©ã•ã‚Œã‚‹)
if self.active and @help_window != nil
update_help
end
end
#--------------------------------------------------------------------------
# ◠カーソルã®çŸ©å½¢æ›´æ–°
#--------------------------------------------------------------------------
def update_cursor_rect
# カーソルä½ç½®ãŒ 0 未満ã®å ´åˆ
if @index < 0
self.cursor_rect.empty
return
end
# ç¾åœ¨ã®è¡Œã‚’å–å¾—
row = @index / @column_max
# ç¾åœ¨ã®è¡ŒãŒã€è¡¨ç¤ºã•ã‚Œã¦ã„ã‚‹å…ˆé ã®è¡Œã‚ˆã‚Šå‰ã®å ´åˆ
if row < self.top_row
# ç¾åœ¨ã®è¡ŒãŒå…ˆé ã«ãªã‚‹ã‚ˆã†ã«ã‚¹ã‚¯ãƒãƒ¼ãƒ«
self.top_row = row
end
# ç¾åœ¨ã®è¡ŒãŒã€è¡¨ç¤ºã•ã‚Œã¦ã„る最後尾ã®è¡Œã‚ˆã‚Šå¾Œã‚ã®å ´åˆ
if row > self.top_row + (self.page_row_max - 1)
# ç¾åœ¨ã®è¡ŒãŒæœ€å¾Œå°¾ã«ãªã‚‹ã‚ˆã†ã«ã‚¹ã‚¯ãƒãƒ¼ãƒ«
self.top_row = row - (self.page_row_max - 1)
end
# カーソルã®å¹…を計算
cursor_width = self.width / @column_max - 32
# カーソルã®åº§æ¨™ã‚’計算
x = @index % @column_max * (cursor_width + 6) + 10
y = @index / @column_max * 32 - self.oy
# カーソルã®çŸ©å½¢ã‚’æ›´æ–°
self.cursor_rect.set(x, y, cursor_width, 32)
end
#--------------------------------------------------------------------------
# ◠フレーム更新
#--------------------------------------------------------------------------
def update
super
# カーソルã®ç§»å‹•ãŒå¯èƒ½ãªçŠ¶æ…‹ã®å ´åˆ
if self.active and @item_max > 0 and @index >= 0
# æ–¹å‘ボタンã®ä¸‹ãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.repeat?(Input::DOWN)
# 列数㌠1 ã‹ã¤ æ–¹å‘ボタンã®ä¸‹ã®æŠ¼ä¸‹çŠ¶æ…‹ãŒãƒªãƒ”ートã§ãªã„å ´åˆã‹ã€
# ã¾ãŸã¯ã‚«ãƒ¼ã‚½ãƒ«ä½ç½®ãŒ(é …ç›®æ•° - 列数)よりå‰ã®å ´åˆ
if (@column_max == 1 and Input.trigger?(Input::DOWN)) or
@index < @item_max - @column_max
# カーソルを下ã«ç§»å‹•
$game_system.se_play($data_system.cursor_se)
@index = (@index + @column_max) % @item_max
end
end
# æ–¹å‘ボタンã®ä¸ŠãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.repeat?(Input::UP)
# 列数㌠1 ã‹ã¤ æ–¹å‘ボタンã®ä¸Šã®æŠ¼ä¸‹çŠ¶æ…‹ãŒãƒªãƒ”ートã§ãªã„å ´åˆã‹ã€
# ã¾ãŸã¯ã‚«ãƒ¼ã‚½ãƒ«ä½ç½®ãŒåˆ—数より後ã‚ã®å ´åˆ
if (@column_max == 1 and Input.trigger?(Input::UP)) or
@index >= @column_max
# カーソルを上ã«ç§»å‹•
$game_system.se_play($data_system.cursor_se)
@index = (@index - @column_max + @item_max) % @item_max
end
end
# æ–¹å‘ボタンã®å³ãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.repeat?(Input::RIGHT)
# 列数㌠2 以上ã§ã€ã‚«ãƒ¼ã‚½ãƒ«ä½ç½®ãŒ(é …ç›®æ•° - 1)よりå‰ã®å ´åˆ
if @column_max >= 2 and @index < @item_max - 1
# カーソルをå³ã«ç§»å‹•
$game_system.se_play($data_system.cursor_se)
@index += 1
end
end
# æ–¹å‘ボタンã®å·¦ãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.repeat?(Input::LEFT)
# 列数㌠2 以上ã§ã€ã‚«ãƒ¼ã‚½ãƒ«ä½ç½®ãŒ 0 より後ã‚ã®å ´åˆ
if @column_max >= 2 and @index > 0
# カーソルを左ã«ç§»å‹•
$game_system.se_play($data_system.cursor_se)
@index -= 1
end
end
# R ボタンãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.repeat?(Input::R)
# 表示ã•ã‚Œã¦ã„る最後尾ã®è¡ŒãŒã€ãƒ‡ãƒ¼ã‚¿ä¸Šã®æœ€å¾Œã®è¡Œã‚ˆã‚Šã‚‚å‰ã®å ´åˆ
if self.top_row + (self.page_row_max - 1) < (self.row_max - 1)
# カーソルを 1 ページ後ã‚ã«ç§»å‹•
$game_system.se_play($data_system.cursor_se)
@index = [@index + self.page_item_max, @item_max - 1].min
self.top_row += self.page_row_max
end
end
# L ボタンãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.repeat?(Input::L)
# 表示ã•ã‚Œã¦ã„ã‚‹å…ˆé ã®è¡ŒãŒ 0 より後ã‚ã®å ´åˆ
if self.top_row > 0
# カーソルを 1 ページå‰ã«ç§»å‹•
$game_system.se_play($data_system.cursor_se)
@index = [@index - self.page_item_max, 0].max
self.top_row -= self.page_row_max
end
end
end
# ヘルプテã‚ストを更新 (update_help ã¯ç¶™æ‰¿å…ˆã§å®šç¾©ã•ã‚Œã‚‹)
if self.active and @help_window != nil
update_help
end
# カーソルã®çŸ©å½¢ã‚’æ›´æ–°
update_cursor_rect
end
end
#==============================================================================
# â– Window_Menuselectable
#------------------------------------------------------------------------------
#  カーソルã®ç§»å‹•ã‚„スクãƒãƒ¼ãƒ«ã®æ©Ÿèƒ½ã‚’æŒã¤ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚¯ãƒ©ã‚¹ã§ã™ã€‚
#==============================================================================
class Window_Menuselectable < Window_Base
#--------------------------------------------------------------------------
# ◠公開インスタンス変数
#--------------------------------------------------------------------------
attr_reader :index # カーソルä½ç½®
attr_reader :help_window # ヘルプウィンドウ
#--------------------------------------------------------------------------
# ◠オブジェクトåˆæœŸåŒ–
# x : ウィンドウ㮠X 座標
# y : ウィンドウ㮠Y 座標
# width : ウィンドウã®å¹…
# height : ウィンドウã®é«˜ã•
#--------------------------------------------------------------------------
def initialize(x, y, width, height)
super(x, y, width, height)
@item_max = 1
@column_max = 1
@index = -1
end
#--------------------------------------------------------------------------
# ◠カーソルä½ç½®ã®è¨å®š
# index : æ–°ã—ã„カーソルä½ç½®
#--------------------------------------------------------------------------
def index=(index)
@index = index
# ヘルプテã‚ストを更新 (update_help ã¯ç¶™æ‰¿å…ˆã§å®šç¾©ã•ã‚Œã‚‹)
if self.active and @help_window != nil
update_help
end
# カーソルã®çŸ©å½¢ã‚’æ›´æ–°
update_cursor_rect
end
#--------------------------------------------------------------------------
# ◠行数ã®å–å¾—
#--------------------------------------------------------------------------
def row_max
# é …ç›®æ•°ã¨åˆ—æ•°ã‹ã‚‰è¡Œæ•°ã‚’算出
return (@item_max + @column_max - 1) / @column_max
end
#--------------------------------------------------------------------------
# â— å…ˆé ã®è¡Œã®å–å¾—
#--------------------------------------------------------------------------
def top_row
# ウィンドウ内容ã®è»¢é€å…ƒ Y 座標をã€1 è¡Œã®é«˜ã• 32 ã§å‰²ã‚‹
return self.oy / 32
end
#--------------------------------------------------------------------------
# â— å…ˆé ã®è¡Œã®è¨å®š
# row : å…ˆé ã«è¡¨ç¤ºã™ã‚‹è¡Œ
#--------------------------------------------------------------------------
def top_row=(row)
# row ㌠0 未満ã®å ´åˆã¯ 0 ã«ä¿®æ£
if row < 0
row = 0
end
# row ㌠row_max - 1 超ã®å ´åˆã¯ row_max - 1 ã«ä¿®æ£
if row > row_max - 1
row = row_max - 1
end
# row ã« 1 è¡Œã®é«˜ã• 32 を掛ã‘ã€ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦å†…容ã®è»¢é€å…ƒ Y 座標ã¨ã™ã‚‹
self.oy = row * 32
end
#--------------------------------------------------------------------------
# â— 1 ページã«è¡¨ç¤ºã§ãる行数ã®å–å¾—
#--------------------------------------------------------------------------
def page_row_max
# ウィンドウã®é«˜ã•ã‹ã‚‰ã€ãƒ•ãƒ¬ãƒ¼ãƒ ã®é«˜ã• 32 を引ãã€1 è¡Œã®é«˜ã• 32 ã§å‰²ã‚‹
return (self.height - 32) / 32
end
#--------------------------------------------------------------------------
# â— 1 ページã«è¡¨ç¤ºã§ãã‚‹é …ç›®æ•°ã®å–å¾—
#--------------------------------------------------------------------------
def page_item_max
# 行数 page_row_max 㫠列数 @column_max を掛ã‘ã‚‹
return page_row_max * @column_max
end
#--------------------------------------------------------------------------
# ◠ヘルプウィンドウã®è¨å®š
# help_window : æ–°ã—ã„ヘルプウィンドウ
#--------------------------------------------------------------------------
def help_window=(help_window)
@help_window = help_window
# ヘルプテã‚ストを更新 (update_help ã¯ç¶™æ‰¿å…ˆã§å®šç¾©ã•ã‚Œã‚‹)
if self.active and @help_window != nil
update_help
end
end
#--------------------------------------------------------------------------
# ◠カーソルã®çŸ©å½¢æ›´æ–°
#--------------------------------------------------------------------------
def update_cursor_rect
# カーソルä½ç½®ãŒ 0 未満ã®å ´åˆ
if @index < 0
self.cursor_rect.empty
return
end
# ç¾åœ¨ã®è¡Œã‚’å–å¾—
row = @index / @column_max
# ç¾åœ¨ã®è¡ŒãŒã€è¡¨ç¤ºã•ã‚Œã¦ã„ã‚‹å…ˆé ã®è¡Œã‚ˆã‚Šå‰ã®å ´åˆ
if row < self.top_row
# ç¾åœ¨ã®è¡ŒãŒå…ˆé ã«ãªã‚‹ã‚ˆã†ã«ã‚¹ã‚¯ãƒãƒ¼ãƒ«
self.top_row = row
end
# ç¾åœ¨ã®è¡ŒãŒã€è¡¨ç¤ºã•ã‚Œã¦ã„る最後尾ã®è¡Œã‚ˆã‚Šå¾Œã‚ã®å ´åˆ
if row > self.top_row + (self.page_row_max - 1)
# ç¾åœ¨ã®è¡ŒãŒæœ€å¾Œå°¾ã«ãªã‚‹ã‚ˆã†ã«ã‚¹ã‚¯ãƒãƒ¼ãƒ«
self.top_row = row - (self.page_row_max - 1)
end
# カーソルã®å¹…を計算
cursor_width = self.width / @column_max - 32
# カーソルã®åº§æ¨™ã‚’計算
x = @index % @column_max * (cursor_width + 32)
y = @index / @column_max * 40 - self.oy
# カーソルã®çŸ©å½¢ã‚’æ›´
end
#--------------------------------------------------------------------------
# ◠フレーム更新
#--------------------------------------------------------------------------
def update
super
# カーソルã®ç§»å‹•ãŒå¯èƒ½ãªçŠ¶æ…‹ã®å ´åˆ
if self.active and @item_max > 0 and @index >= 0
# æ–¹å‘ボタンã®ä¸‹ãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.repeat?(Input::DOWN)
# 列数㌠1 ã‹ã¤ æ–¹å‘ボタンã®ä¸‹ã®æŠ¼ä¸‹çŠ¶æ…‹ãŒãƒªãƒ”ートã§ãªã„å ´åˆã‹ã€
# ã¾ãŸã¯ã‚«ãƒ¼ã‚½ãƒ«ä½ç½®ãŒ(é …ç›®æ•° - 列数)よりå‰ã®å ´åˆ
if (@column_max == 1 and Input.trigger?(Input::DOWN)) or
@index < @item_max - @column_max
# カーソルを下ã«ç§»å‹•
$game_system.se_play($data_system.cursor_se)
@index = (@index + @column_max) % @item_max
end
end
# æ–¹å‘ボタンã®ä¸ŠãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.repeat?(Input::UP)
# 列数㌠1 ã‹ã¤ æ–¹å‘ボタンã®ä¸Šã®æŠ¼ä¸‹çŠ¶æ…‹ãŒãƒªãƒ”ートã§ãªã„å ´åˆã‹ã€
# ã¾ãŸã¯ã‚«ãƒ¼ã‚½ãƒ«ä½ç½®ãŒåˆ—数より後ã‚ã®å ´åˆ
if (@column_max == 1 and Input.trigger?(Input::UP)) or
@index >= @column_max
# カーソルを上ã«ç§»å‹•
$game_system.se_play($data_system.cursor_se)
@index = (@index - @column_max + @item_max) % @item_max
end
end
# æ–¹å‘ボタンã®å³ãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.repeat?(Input::RIGHT)
# 列数㌠2 以上ã§ã€ã‚«ãƒ¼ã‚½ãƒ«ä½ç½®ãŒ(é …ç›®æ•° - 1)よりå‰ã®å ´åˆ
if @column_max >= 2 and @index < @item_max - 1
# カーソルをå³ã«ç§»å‹•
$game_system.se_play($data_system.cursor_se)
@index += 1
end
end
# æ–¹å‘ボタンã®å·¦ãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.repeat?(Input::LEFT)
# 列数㌠2 以上ã§ã€ã‚«ãƒ¼ã‚½ãƒ«ä½ç½®ãŒ 0 より後ã‚ã®å ´åˆ
if @column_max >= 2 and @index > 0
# カーソルを左ã«ç§»å‹•
$game_system.se_play($data_system.cursor_se)
@index -= 1
end
end
# R ボタンãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.repeat?(Input::R)
# 表示ã•ã‚Œã¦ã„る最後尾ã®è¡ŒãŒã€ãƒ‡ãƒ¼ã‚¿ä¸Šã®æœ€å¾Œã®è¡Œã‚ˆã‚Šã‚‚å‰ã®å ´åˆ
if self.top_row + (self.page_row_max - 1) < (self.row_max - 1)
# カーソルを 1 ページ後ã‚ã«ç§»å‹•
$game_system.se_play($data_system.cursor_se)
@index = [@index + self.page_item_max, @item_max - 1].min
self.top_row += self.page_row_max
end
end
# L ボタンãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.repeat?(Input::L)
# 表示ã•ã‚Œã¦ã„ã‚‹å…ˆé ã®è¡ŒãŒ 0 より後ã‚ã®å ´åˆ
if self.top_row > 0
# カーソルを 1 ページå‰ã«ç§»å‹•
$game_system.se_play($data_system.cursor_se)
@index = [@index - self.page_item_max, 0].max
self.top_row -= self.page_row_max
end
end
end
# ヘルプテã‚ストを更新 (update_help ã¯ç¶™æ‰¿å…ˆã§å®šç¾©ã•ã‚Œã‚‹)
if self.active and @help_window != nil
update_help
end
# カーソルã®çŸ©å½¢ã‚’æ›´æ–°
update_cursor_rect
end
end
#==============================================================================
# â– Window_Menucommand
#------------------------------------------------------------------------------
#  一般的ãªã‚³ãƒžãƒ³ãƒ‰é¸æŠžã‚’è¡Œã†ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§ã™ã€‚
#==============================================================================
class Window_Menucommand < Window_Menuselectable
#--------------------------------------------------------------------------
# ◠オブジェクトåˆæœŸåŒ–
# width : ウィンドウã®å¹…
# commands : コマンド文å—列ã®é…列
#--------------------------------------------------------------------------
def initialize(width, commands)
# コマンドã®å€‹æ•°ã‹ã‚‰ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã®é«˜ã•ã‚’算出
super(0, 0, width, commands.size * 32 + 32)
@item_max = commands.size
@commands = commands
self.contents = Bitmap.new(width - 32, @item_max * 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
refresh
self.index = 0
end
#--------------------------------------------------------------------------
# ◠リフレッシュ
#--------------------------------------------------------------------------
def refresh
self.contents.clear
for i in 0...@item_max
draw_item(i, normal_color)
end
end
#--------------------------------------------------------------------------
# â— é …ç›®ã®æç”»
# index : é …ç›®ç•ªå·
# color : æ–‡å—色
#--------------------------------------------------------------------------
def draw_item(index, color)
self.contents.font.color = color
rect = Rect.new(4, 32 * index, self.contents.width - 8, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
self.contents.draw_text(rect, @commands[index])
end
#--------------------------------------------------------------------------
# â— é …ç›®ã®ç„¡åŠ¹åŒ–
# index : é …ç›®ç•ªå·
#--------------------------------------------------------------------------
def disable_item(index)
draw_item(index, disabled_color)
end
end
#==============================================================================
# â– Window_Help
#------------------------------------------------------------------------------
#  スã‚ルやアイテムã®èª¬æ˜Žã€ã‚¢ã‚¯ã‚¿ãƒ¼ã®ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ãªã©ã‚’表示ã™ã‚‹ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§ã™ã€‚
#==============================================================================
class Window_Menuhelp < Window_Base
#--------------------------------------------------------------------------
# ◠オブジェクトåˆæœŸåŒ–
#--------------------------------------------------------------------------
def initialize
super(0, - 77, 640, 64)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = 18
self.opacity = 0
end
#--------------------------------------------------------------------------
# ◠テã‚ストè¨å®š
# text : ウィンドウã«è¡¨ç¤ºã™ã‚‹æ–‡å—列
# align : アラインメント (0..å·¦æƒãˆã€1..ä¸å¤®æƒãˆã€2..å³æƒãˆ)
#--------------------------------------------------------------------------
def set_text(text, align = 0)
# テã‚ストã¨ã‚¢ãƒ©ã‚¤ãƒ³ãƒ¡ãƒ³ãƒˆã®å°‘ãªãã¨ã‚‚一方ãŒå‰å›žã¨é•ã£ã¦ã„ã‚‹å ´åˆ
if text != @text or align != @align
# テã‚ストをå†æç”»
self.contents.clear
self.contents.font.color = normal_color
self.contents.draw_text(4, 0, self.width - 40, 32, text, align)
@text = text
@align = align
@actor = nil
end
self.visible = true
end
#--------------------------------------------------------------------------
# ◠アクターè¨å®š
# actor : ステータスを表示ã™ã‚‹ã‚¢ã‚¯ã‚¿ãƒ¼
#--------------------------------------------------------------------------
def set_actor(actor)
if actor != @actor
self.contents.clear
draw_actor_name(actor, 4, 0)
draw_actor_state(actor, 140, 0)
draw_actor_hp(actor, 284, 0)
draw_actor_sp(actor, 460, 0)
@actor = actor
@text = nil
self.visible = true
end
end
#--------------------------------------------------------------------------
# ◠エãƒãƒŸãƒ¼è¨å®š
# enemy : åå‰ã¨ã‚¹ãƒ†ãƒ¼ãƒˆã‚’表示ã™ã‚‹ã‚¨ãƒãƒŸãƒ¼
#--------------------------------------------------------------------------
def set_enemy(enemy)
text = enemy.name
state_text = make_battler_state_text(enemy, 112, false)
if state_text &#
You cant use this script cause you need like 12 files