赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 0 |
经验 | 0 |
最后登录 | 2010-8-16 |
在线时间 | 0 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 182
- 在线时间
- 0 小时
- 注册时间
- 2010-8-12
- 帖子
- 4
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 gukukuku 于 2010-8-12 22:24 编辑
我用了 华丽动态菜单 可是存档的时候出错 读档的时候没有出错
请高手们指教
这是关于存档 读档的脚本
#_______________________________________________________________________________
# MOG Scene File Ayumi V1.2
#_______________________________________________________________________________
# By Moghunter
# http://www.atelier-rgss.com
#_______________________________________________________________________________
module MOG
#Transition Time.
MSVT = 30
#Transition Type.
MSVTT = "006-Stripe02"
end
$mogscript = {} if $mogscript == nil
$mogscript["menu_ayumi"] = true
###############
# Window_Base #
###############
class Window_Base < Window
def drw_win_file(x,y)
dwf = RPG::Cache.picture("Win_File")
cw = dwf.width
ch = dwf.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x , y - ch, dwf, src_rect)
end
def nada
face = RPG::Cache.picture("")
end
def draw_heroface3(actor,x,y)
face = RPG::Cache.picture(actor.character_name + "_大头像") rescue nada
cw = face.width
ch = face.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x , y - ch, face, src_rect)
end
def draw_actor_level6(actor, x, y)
self.contents.font.color = Color.new(0,0,0,255)
self.contents.draw_text(x + 1, y + 1, 32, 32, "Lv")
self.contents.font.color = system_color
self.contents.draw_text(x, y, 32, 32, "Lv")
self.contents.font.color = Color.new(0,0,0,255)
self.contents.draw_text(x + 17, y + 1, 24, 32, actor.level.to_s, 2)
self.contents.font.color = Color.new(255,255,255,255)
self.contents.draw_text(x + 16, y, 24, 32, actor.level.to_s, 2)
end
def draw_actor_name6(actor, x, y)
self.contents.font.color = Color.new(0,0,0,255)
self.contents.draw_text(x + 1, y + 1, 100, 32, actor.name,1)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 100, 32, actor.name,1)
end
end
############
# Game_Map #
############
class Game_Map
def map_name
@mapinfo = load_data("Data/MapInfos.rxdata") if @mapinfo == nil
return @mapinfo[@map_id].name
end
end
###################
# Window_SaveFile #
###################
class Window_SaveFile < Window_Base
attr_reader :filename
attr_reader :selected
def initialize(file_index, filename)
super(0, 64 + file_index * 138, 640, 240)
self.contents = Bitmap.new(width - 32, height - 32)
self.opacity = 0
@file_index = file_index
@filename = "Save#{@file_index + 1}.rxdata"
@time_stamp = Time.at(0)
@file_exist = FileTest.exist?(@filename)
if @file_exist
file = File.open(@filename, "r")
@time_stamp = file.mtime
@characters = Marshal.load(file)
@frame_count = Marshal.load(file)
@game_system = Marshal.load(file)
@game_switches = Marshal.load(file)
@game_variables = Marshal.load(file)
@game_self_switches = Marshal.load(file)
@game_screen = Marshal.load(file)
@game_actors = Marshal.load(file)
@game_party = Marshal.load(file)
@game_troop = Marshal.load(file)
@game_map = Marshal.load(file)
@total_sec = @frame_count / Graphics.frame_rate
file.close
end
@wiref = 0
refresh
@selected = false
end
def refresh
self.contents.clear
#self.contents.font.name = "Georgia"
drw_win_file(0,190)
name = "#{@file_index + 1}"
self.contents.font.color = Color.new(0,0,0,255)
self.contents.draw_text(161, 41, 600, 32, name)
self.contents.font.color = Color.new(255,255,255,255)
self.contents.draw_text(160, 40, 600, 32, name)
@name_width = contents.text_size(name).width
if @file_exist
for i in [email protected]
bitmap = RPG::Cache.character(@characters[0], @characters[1])
cw = bitmap.rect.width / 4
ch = bitmap.rect.height / 4
src_rect = Rect.new(cw * @wiref + 1 , 0, cw, ch)
x = 300 - @characters.size + i * 64 - cw / 4
self.contents.blt(x - 10, 150 - ch, bitmap, src_rect)
x = 116
actors = @game_party.actors
for i in 0...[actors.size, 4].min
x = i * 60
actor = actors
self.contents.font.size = 20
draw_actor_level6(actor, x + 280, 140)
actor = actors[0]
draw_heroface3(actor,160,180)
draw_actor_name6(actor, 160, 155)
self.contents.font.size = 22
end
end
hour = @total_sec / 60 / 60
min = @total_sec / 60 % 60
sec = @total_sec % 60
time_string = sprintf("%02d:%02d:%02d", hour, min, sec)
self.contents.font.color = Color.new(0,0,0,255)
self.contents.draw_text(5, 41, 450, 32, time_string, 2)
self.contents.draw_text(41 , 141, 120 , 32, @game_map.map_name.to_s)
self.contents.font.color = Color.new(255,255,255,255)
self.contents.draw_text(40 , 140, 120 , 32, @game_map.map_name.to_s)
self.contents.draw_text(4, 40, 450, 32, time_string, 2)
end
end
def selected=(selected)
@selected = selected
end
end
##############
# Scene_File #
##############
class Scene_File
def initialize(help_text)
@help_text = help_text
end
def main
@mnback = Plane.new
@mnback.bitmap = RPG::Cache.picture("MN_BK")
@mnback.z = 1
@mnlay = Sprite.new
@mnlay.bitmap = RPG::Cache.picture("Lay_File.PNG")
@mnlay.z = 2
@help_window = Window_Help.new
@help_window.set_text(@help_text)
@help_window.opacity = 0
@savefile_windows = []
for i in 0..2
@savefile_windows.push(Window_SaveFile.new(i, make_filename(i)))
end
@savefile_windows[0]
@file_index = $game_temp.last_file_index
@savefile_windows[@file_index].selected = true
@savefile_windows[0].y = 40
@savefile_windows[1].y= 140
@savefile_windows[2].y= 240
@win_move_time = 0
@win_move = 0
@win_dire = 0
@win_opac = 255
@win1_y = 0
@win2_y = 0
@win3_y = 0
Graphics.transition(MOG::MSVT, "Graphics/Transitions/" + MOG::MSVTT)
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
for i in 0..50
@mnback.ox += 1
@savefile_windows[0].x += 10
@savefile_windows[1].x -= 10
@savefile_windows[2].x += 10
for i in @savefile_windows
i.contents_opacity -= 5
end
Graphics.update
end
Graphics.freeze
@help_window.dispose
@mnback.dispose
@mnlay.dispose
for i in @savefile_windows
i.dispose
end
end
def update
@mnback.ox += 1
@win_opac += 3
@win_move_time += 1
if @win_opac > 254
@win_opac = 150
end
if @win_move_time > 60
@win_dire += 1
@win_move_time = 0
end
if @win_dire > 1
@win_dire = 0
end
if @win_dire == 0
@win_move += 1
else
@win_move -= 1
end
if @file_index == 0
@savefile_windows[0].z = 2
@savefile_windows[1].z = 1
@savefile_windows[2].z = 0
@savefile_windows[0].x = @win_move
@savefile_windows[1].x = 0
@savefile_windows[1].x= 0
@savefile_windows[2].x = 0
@savefile_windows[0].contents_opacity = @win_opac
@savefile_windows[1].contents_opacity = 130
@savefile_windows[2].contents_opacity = 130
elsif @file_index == 1
@savefile_windows[0].z = 1
@savefile_windows[1].z = 2
@savefile_windows[2].z = 1
@savefile_windows[0].x = 0
@savefile_windows[1].x = @win_move
@savefile_windows[2].x = 0
@savefile_windows[0].contents_opacity = 130
@savefile_windows[1].contents_opacity = @win_opac
@savefile_windows[2].contents_opacity = 130
else
@savefile_windows[0].z = 0
@savefile_windows[1].z = 1
@savefile_windows[2].z = 2
@savefile_windows[0].x = 0
@savefile_windows[1].x = 0
@savefile_windows[2].x = @win_move
@savefile_windows[0].contents_opacity = 130
@savefile_windows[1].contents_opacity = 130
@savefile_windows[2].contents_opacity = @win_opac
end
@help_window.update
for i in @savefile_windows
i.update
end
if Input.trigger?(Input::C)
on_decision(make_filename(@file_index))
$game_temp.last_file_index = @file_index
return
end
if Input.trigger?(Input::B)
on_cancel
return
end
if Input.repeat?(Input::DOWN)
if Input.trigger?(Input::DOWN) or @file_index < 3
$game_system.se_play($data_system.cursor_se)
@savefile_windows[@file_index].selected = false
@file_index = (@file_index + 1) % 3
@savefile_windows[@file_index].selected = true
return
end
end
if Input.repeat?(Input::UP)
if Input.trigger?(Input::UP) or @file_index > 0
$game_system.se_play($data_system.cursor_se)
@savefile_windows[@file_index].selected = false
@file_index = (@file_index - 1) % 3
@savefile_windows[@file_index].selected = true
return
end
end
end
def make_filename(file_index)
return "Save#{file_index + 1}.rxdata"
end
end |
|