设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1501|回复: 0
打印 上一主题 下一主题

[已经过期] 求扩展R剧存档脚本档位

 关闭 [复制链接]

Lv2.观梦者

(?????)

梦石
0
星屑
736
在线时间
1327 小时
注册时间
2011-7-18
帖子
3184

贵宾

跳转到指定楼层
1
发表于 2011-8-11 12:37:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
自己扩展之后第四格覆盖在第一格上 =-= ||| 后面没再实验……
但是效果貌似可用?大概是改一下窗体位置但是我完全读不懂啊 =-=

光是改那个章节名的角色编号就费了好大劲 =-= ||| 也不知道该得对不对,我在脚本里标注了求各位帮看。

另外求添加一个在显示游戏时间的地方显示游戏中一个变量形成类似“第N周目”的效果(这个貌似不难?)
(或者用背景颜色区分……貌似这个更复杂?通过那个变量的数值分歧不同的RGB值应该可行吧)

个人脚本盲 =-= 所以自定义的部分最好能放在顶端。窗口的大小修改部分请务必帮我标出来 =-=

(另外那4个数值从左到右到底哪个是长度宽度哪个是坐标=-=|||绝对坐标还是相对坐标啊……)

上面说的好乱 =-= 整理下:
①扩展档位(3个扩展到21个左右,最好是按左右键翻页)
②在游戏时间旁边添加一个显示“第N周目”(N是游戏中的某号变量)
③修改窗体宽度。
  1. #==============================================================================
  2. # 〇 R剧用的存读档界面
  3. #              By.冰舞蝶恋
  4. #------------------------------------------------------------------------------
  5. # 用法就不必介绍了吧!坐标什么的都是自动居中(适应于任何分辨率)
  6. # 文字可以自己改动,用更改指定角色名字的指令用来做出章节效果。
  7. # 默认用队伍中的第一个角色的名字来作为章节。
  8. # 主要因为考虑到R剧打开菜单的可能性很小……最好是不能打开菜单,用事件打开
  9. # 存档界面,不然就穿帮了,哈哈………
  10. # 啊呀,啰嗦了老半天了,最后感谢剑兰前..辈(啊,怎么又说漏嘴了!!会折寿的!)
  11. #----------------------------------------------------------------------------
  12. # 修改的部分:
  13. #
  14. #   ⑴ 更改表示章节的角色编号
  15. #
  16. #==============================================================================
  17. #==============================================================================
  18. # ■ Window_SaveFile
  19. #------------------------------------------------------------------------------
  20. #  显示存档以及读档画面、保存文件的窗口。
  21. #==============================================================================

  22. class Window_SaveFile
  23.   #--------------------------------------------------------------------------
  24.   # ● 定义实例变量
  25.   #--------------------------------------------------------------------------
  26.   attr_reader   :filename                 # 文件名称
  27.   attr_reader   :file_exist               # 文件存在标志
  28.   attr_reader   :time_stamp               # 时间标记
  29.   attr_reader   :selected                 # 选择状态
  30.   #--------------------------------------------------------------------------
  31.   # ● 初始化对像
  32.   #     file_index : 存档文件的索引(0-3)
  33.   #     filename   : 文件名称
  34.   #--------------------------------------------------------------------------
  35.   def initialize(file_index, filename)
  36.     super((Graphics.width-230)/2, (Graphics.height-64*3)/2 + 28 + file_index % 3 * 64, 230, 64)#56,544, 90)
  37.     @file_index = file_index
  38.     @filename = filename
  39.     load_gamedata
  40.     refresh
  41.     @selected = false
  42.   end
  43.   #--------------------------------------------------------------------------  #--------------------------------------------------------------------------
  44.   # ● 刷新
  45.   #--------------------------------------------------------------------------
  46.   def refresh
  47.     self.contents.clear
  48.     self.contents.font.color = normal_color
  49.     self.contents.font.size = 16
  50.     name = Vocab::File + " #{@file_index + 1}"
  51.     self.contents.draw_text(4, 0+8, 200, WLH, name)
  52.     @name_width = contents.text_size(name).width
  53.     if @file_exist
  54.       draw_party_characters(152, 58)
  55.       draw_playtime(0, 34, contents.width - 4, 2)
  56.     end
  57.   end
  58.   #--------------------------------------------------------------------------
  59.   # ● 载入部分游戏资料
  60.   #    默认情况下,开关和变数不会用到。(以备扩充情况下如:显示地名等时使用)
  61.   #--------------------------------------------------------------------------
  62.   def load_gamedata
  63.     @time_stamp = Time.at(0)
  64.     @file_exist = FileTest.exist?(@filename)
  65.     if @file_exist
  66.       file = File.open(@filename, "r")
  67.       @time_stamp = file.mtime
  68.       begin
  69.         @characters     = Marshal.load(file)
  70.         @frame_count    = Marshal.load(file)
  71.         @last_bgm       = Marshal.load(file)
  72.         @last_bgs       = Marshal.load(file)
  73.         @game_system    = Marshal.load(file)
  74.         @game_message   = Marshal.load(file)
  75.         @game_switches  = Marshal.load(file)
  76.         @game_variables = Marshal.load(file)
  77.         @game_actors    = Marshal.load(file)
  78.         @game_party     = Marshal.load(file)
  79.         @game_player    = Marshal.load(file)
  80.         @total_sec = @frame_count / Graphics.frame_rate
  81.       rescue
  82.         @file_exist = false
  83.       ensure
  84.         file.close
  85.       end
  86.     end
  87.   end
  88.   #--------------------------------------------------------------------------
  89.   # ● 描绘游戏时间
  90.   #     x : 绘制点 X 座标
  91.   #     y : 绘制点 Y 座标
  92.   #     width : 描绘区域宽度
  93.   #     align : 对齐方式
  94.   #--------------------------------------------------------------------------
  95.   def draw_playtime(x, y, width, align)
  96.     hour = @total_sec / 60 / 60
  97.     min = @total_sec / 60 % 60
  98.     sec = @total_sec % 60
  99.     time_string = sprintf(" %02d时%02d分", hour, min, sec)#%02d:%02d:%02d
  100.     c = 544 - 230
  101.     self.contents.font.size = 16
  102.     self.contents.font.color = system_color
  103.     self.contents.draw_text(x-374+8+c, y-36-2, width, WLH, "游戏时间:",2)
  104.     self.contents.font.color = normal_color
  105.     self.contents.draw_text(x-320+8+c, y-36-2, width, WLH, time_string, 2)
  106.     self.contents.font.color = system_color
  107.     self.contents.draw_text(x-406+8+c, y-20-2, width, WLH, "章节:", 2)
  108.   end
  109.   #--------------------------------------------------------------------------
  110.   # ● 描绘队员
  111.   #     x : 绘制点 X 座标
  112.   #     y : 绘制点 Y 座标
  113.   #--------------------------------------------------------------------------
  114.   def draw_party_characters(x, y)
  115.     for i in [email protected]
  116. #      name = @characters[i][2]
  117. #     原来脚本↑我改成了↓,原脚本是用1号角色的,我改成了队伍中的2号角色。
  118.       name = @characters[1][2]
  119.       self.contents.font.size = 16
  120.       self.contents.font.color = normal_color
  121.       self.contents.draw_text(x-56+8+ i * 544, y-44-2, 200, 24, name, 0)
  122.     end
  123.   end
  124.   #--------------------------------------------------------------------------
  125.   # ● 刷新光标
  126.   #--------------------------------------------------------------------------
  127.   def update_cursor
  128.     if @selected
  129.       self.cursor_rect.set(0, 0+7, @name_width + 8, WLH)
  130.     else
  131.       self.cursor_rect.empty
  132.     end
  133.   end
  134. end
  135. #==============================================================================
  136. # ■ Scene_File
  137. #------------------------------------------------------------------------------
  138. #  存档画面及读档画面的类。
  139. #==============================================================================

  140. class Scene_File
  141.   #--------------------------------------------------------------------------
  142.   # ● 开始处理
  143.   #--------------------------------------------------------------------------
  144.   def start
  145.     super
  146.     create_menu_background
  147.     create_savefile_windows
  148.     @z_window = Window_Z.new(0, 0)
  149.     if @saving
  150.       @index = $game_temp.last_file_index
  151.     else
  152.       @index = self.latest_file_index
  153.     end
  154.     @savefile_windows[@index].selected = true
  155.   end
  156.   #--------------------------------------------------------------------------
  157.   # ● 结束处理
  158.   #--------------------------------------------------------------------------
  159.   def terminate
  160.     super
  161.     dispose_menu_background
  162.     @z_window.dispose
  163.     dispose_item_windows
  164.   end
  165.   #--------------------------------------------------------------------------
  166.   # ● 更新画面
  167.   #--------------------------------------------------------------------------
  168.   def update
  169.     super
  170.     update_menu_background
  171.     @z_window.update
  172.     update_savefile_windows
  173.     update_savefile_selection
  174.   end
  175.   #--------------------------------------------------------------------------
  176.   # ● 生成存档窗口
  177.   #--------------------------------------------------------------------------
  178.   def create_savefile_windows
  179.     @savefile_windows = []
  180.     for i in 0..2
  181.       @savefile_windows.push(Window_SaveFile.new(i, make_filename(i)))
  182.     end
  183.     @item_max = 3
  184.   end
  185.   #--------------------------------------------------------------------------
  186.   # ● 写入存档数据
  187.   #     file : 写入存档对象(已开启)
  188.   #--------------------------------------------------------------------------
  189.   def write_save_data(file)
  190.     characters = []
  191.     for actor in $game_party.members
  192.       characters.push([actor.character_name, actor.character_index, actor.name])
  193.     end
  194.     $game_system.save_count += 1
  195.     $game_system.version_id = $data_system.version_id
  196.     @last_bgm = RPG::BGM::last
  197.     @last_bgs = RPG::BGS::last
  198.     Marshal.dump(characters,           file)
  199.     Marshal.dump(Graphics.frame_count, file)
  200.     Marshal.dump(@last_bgm,            file)
  201.     Marshal.dump(@last_bgs,            file)
  202.     Marshal.dump($game_system,         file)
  203.     Marshal.dump($game_message,        file)
  204.     Marshal.dump($game_switches,       file)
  205.     Marshal.dump($game_variables,      file)
  206.     Marshal.dump($game_self_switches,  file)
  207.     Marshal.dump($game_actors,         file)
  208.     Marshal.dump($game_party,          file)
  209.     Marshal.dump($game_troop,          file)
  210.     Marshal.dump($game_map,            file)
  211.     Marshal.dump($game_player,         file)
  212.   end
  213. end
  214. #==============================================================================
  215. # ■ Window_Z
  216. #------------------------------------------------------------------------------
  217. #  显示读档或是存档的文字。
  218. #==============================================================================

  219. class Window_Z < Window_Base
  220.   #--------------------------------------------------------------------------
  221.   # ● 初始化对像
  222.   #     file_index : 存档文件的索引(0-3)
  223.   #     filename   : 文件名称
  224.   #--------------------------------------------------------------------------
  225.   def initialize(x,y)
  226.     super((Graphics.width-230)/2, (Graphics.height-56)/2-64*2+32, 230, 56)#544, 90)
  227.     refresh
  228.   end
  229.   #--------------------------------------------------------------------------
  230.   # ● 刷新
  231.   #--------------------------------------------------------------------------
  232.   def refresh
  233.     self.contents.clear
  234.     self.contents.font.color = normal_color
  235.     self.contents.font.bold = true
  236.     self.contents.draw_text(60, 2, 230, WLH, "旧的回忆")
  237.   end
  238. end
复制代码
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-10 21:21

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表