Project1
标题: 求此脚本存档部分出错解决方法 [打印本页]
作者: chenchuan1 时间: 2011-7-28 16:10
标题: 求此脚本存档部分出错解决方法
本帖最后由 fux2 于 2011-7-28 16:45 编辑
此脚本出现了错误,报错的地方在红色字体处。- #_______________________________________________________________________________
- # MOG Scene File Ayumi V1.2
- #_______________________________________________________________________________
- # By Moghunter
- # [url]http://www.atelier-rgss.com[/url]
- #_______________________________________________________________________________
- 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.name + "_fc3") 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)
- [color=Red] 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 [/color]
- 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][email protected][/email]
- bitmap = RPG::Cache.character(@characters[i][0], @characters[i][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[i]
- 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
复制代码