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

Project1

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

[已经过期] 求教。。。关于这个存档脚本

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
30 小时
注册时间
2013-11-25
帖子
28
跳转到指定楼层
1
发表于 2014-9-9 19:14:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
求改成,六个存档位置QAQ
还有怎么用脚本控制章节的改变?

RUBY 代码复制
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ 薄雾年代记 —— 存档公开版 by LBQ v0.2
  4. #------------------------------------------------------------------------------
  5. #  只是一个笨蛋存档读档界面罢了
  6. #==============================================================================
  7.  
  8.  
  9. $imported||={}
  10. $imported[:mcr_save] = '0.2'
  11. module MCR
  12.   module Save
  13.     CHAPTER_NUM = 1 #章节数用变量 0对应的是第一章 1是第二章 2是第三章
  14.   end
  15. end
  16.  
  17.  
  18.  
  19. module DataManager
  20.   #--------------------------------------------------------------------------
  21.   # ● 生成存档的头数据
  22.   #--------------------------------------------------------------------------
  23.   def self.make_save_header
  24.     header = {}
  25.     header[:characters] = $game_party.characters_for_savefile
  26.     header[:playtime_s] = $game_system.playtime_s
  27.     header[:variables]  = $game_variables
  28.     header
  29.   end
  30. end
  31.  
  32. class Sprite
  33.   #blt(x, y, src_bitmap, src_rect[, opacity])
  34.   def paste(bitmap)
  35.     sb = bitmap
  36.     a = 0
  37.     b = 0
  38.     src_rect = Rect.new(a,b,sb.width,sb.height)
  39.     self.bitmap.blt(a,b,sb,src_rect)
  40.     bitmap.dispose
  41.   end
  42.  
  43. end
  44.  
  45.  
  46.  
  47. class Part_Save
  48.   include MCR::Save
  49.   def initialize(index)
  50.     @index = index
  51.     @delegates = []
  52.     @sprite = Sprite.new
  53.     @delegates << @sprite
  54.     @sprite.bitmap  = Cache.system("save#{index+1}")
  55.     @number = Sprite_Number.new(play_time_s)
  56.     @delegates << @number
  57.     @empty_file = Sprite.new
  58.     if does_not_exist
  59.       @empty_file.bitmap = Cache.system("empty_file")
  60.     else
  61.       @sprite.paste Cache.system("chapter#{self.variables[CHAPTER_NUM]+1}")
  62.     end
  63.     unselected
  64.   end
  65.  
  66.  
  67.  
  68.   def recreate_sprite
  69.     index = @index
  70.  
  71.  
  72.     @sprite.bitmap  = Cache.system("save#{index+1}")
  73.     if does_not_exist
  74.       @sprite.paste Cache.system("empty_file")
  75.     else
  76.       @sprite.paste Cache.system("chapter#{self.variables[CHAPTER_NUM]+1}")
  77.     end
  78.   end
  79.  
  80.  
  81.  
  82.   def play_time_s
  83.     return "00:00" if does_not_exist
  84.     return header[:playtime_s].split(":")[0..1].join(':')
  85.   end
  86.  
  87.  
  88.   def does_not_exist
  89.     !header
  90.   end
  91.  
  92.  
  93.  
  94.   def variables
  95.     return if does_not_exist
  96.     return header[:variables]
  97.   end
  98.  
  99.   def dispose
  100.     @empty_file.dispose
  101.     @sprite.dispose
  102.     @sprite=nil
  103.     @number.dispose
  104.     @empty_file.dispose
  105.   end
  106.  
  107.  
  108.  
  109.  
  110.   def header
  111.     return DataManager.load_header(@index)
  112.   end
  113.  
  114.   def selected?
  115.     @selected
  116.   end
  117.  
  118.   def update
  119.     if @selected
  120.       @delegates.each do |d|
  121.         d.opacity = [@sprite.opacity+12,255].min
  122.       end
  123.     else
  124.  
  125.       @delegates.each do |d|
  126.         d.opacity = [@sprite.opacity-12,150].max
  127.       end
  128.  
  129.     end
  130.     @empty_file.y = @sprite.y
  131.  
  132.   end
  133.  
  134.  
  135.   def selected
  136.     @selected = true
  137.     #self.opacity = 255
  138.   end
  139.  
  140.  
  141.   def unselected
  142.     @selected = false
  143.     #self.opacity = 180
  144.   end
  145.  
  146.  
  147.  
  148.   def method_missing(id,*args,&block)
  149.     sended = false
  150.     @delegates.each do |d|
  151.       if d.respond_to? id
  152.         sended = true
  153.         d.send id,*args,&block
  154.       end
  155.  
  156.     end
  157.  
  158.  
  159.     unless sended
  160.       super
  161.     end
  162.  
  163.  
  164.   end
  165.  
  166.  
  167. end
  168.  
  169.  
  170.  
  171. module Scene_EasyLoad_Plugin
  172.   def easy_load(index)
  173.     DataManager.load_game(index)
  174.     Sound.play_load
  175.     fadeout_all
  176.     $game_system.on_after_load
  177.     SceneManager.goto(Scene_Map)
  178.   end
  179. end
  180.  
  181.  
  182. class Scene_Base
  183.   include Scene_EasyLoad_Plugin
  184. end
  185.  
  186.  
  187.  
  188.  
  189. class Scene_File < Scene_MenuBase
  190.   public_instance_methods(false).each do |m|
  191.     undef_method m
  192.   end
  193.  
  194.  
  195.   #--------------------------------------------------------------------------
  196.   # ● 释放背景
  197.   #--------------------------------------------------------------------------
  198.   def dispose_background
  199.     @bg.dispose
  200.   end
  201.  
  202.   def start
  203.     super
  204.     @main_timer = 0
  205.     methods.each do |m|
  206.       if m.to_s.include? 'create_'
  207.         send m
  208.       end
  209.     end
  210.     post_create
  211.     @start_fade_out = false
  212.   end
  213.  
  214.  
  215.   def terminate
  216.     super
  217.     terminate_all_sprites
  218.   end
  219.  
  220.  
  221.  
  222.   def terminate_all_sprites
  223.     @parts.each(&:dispose)
  224.   end
  225.  
  226.  
  227.  
  228.  
  229.  
  230.   def post_create
  231.     @parts[0].selected
  232.   end
  233.  
  234.  
  235.   def return_scene
  236.     return
  237.     @start_fade_out = true
  238.   end
  239.  
  240.  
  241.  
  242.  
  243.   def create_background
  244.     @bg = Plane.new
  245.     @bg.bitmap = Cache.system('bg')
  246.     @bg.oy =330
  247.   end
  248.  
  249.  
  250.   def create_header
  251.     @header = Sprite.new
  252.     @header.z = 10
  253.     @header.bitmap = Cache.system('save_header')
  254.   end
  255.  
  256.   def create_parts
  257.     @parts = []
  258.     @parts[0] = Part_Save.new(0)
  259.     @parts[0].y = 50
  260.  
  261.  
  262.  
  263.     @parts[1] = Part_Save.new(1)
  264.     @parts[1].y = 180
  265.   end
  266.  
  267.  
  268.   def create_mask
  269.     @mask = Sprite.new
  270.     w = Graphics.width
  271.     h = Graphics.height
  272.     @mask.bitmap = Bitmap.new w, h
  273.     @mask.bitmap.fill_rect(0,0,w,h,Color.new(0,0,0))
  274.     @mask.z = 999
  275.   end
  276.  
  277.  
  278.  
  279.   def update
  280.     @main_timer += 1
  281.     methods.each do |m|
  282.       if m.to_s.include? 'update_'
  283.         send m
  284.       end
  285.     end
  286.     deal_with_mask_fade if @start_fade_out
  287.   end
  288.  
  289.  
  290.   def deal_with_mask_fade
  291.     @mask.opacity +=8
  292.     if @mask.opacity >=255
  293.       fadeout_all
  294.       SceneManager.return
  295.  
  296.     end
  297.  
  298.   end
  299.  
  300.  
  301.  
  302.  
  303.   #--------------------------------------------------------------------------
  304.   # ● 获取渐变速度
  305.   #--------------------------------------------------------------------------
  306.   def transition_speed
  307.     return 20
  308.   end
  309.  
  310.  
  311.   def update_input
  312.  
  313.     if Input.trigger? :UP
  314.       i_am_going_to_select  = @parts[current_selected_index - 1]
  315.       if i_am_going_to_select && current_selected_index!=0
  316.         current_selected.unselected
  317.         i_am_going_to_select.selected
  318.         Sound.play_cursor
  319.       else
  320.         Sound.play_buzzer
  321.       end
  322.  
  323.     end
  324.  
  325.  
  326.     if Input.trigger? :DOWN
  327.       i_am_going_to_select = @parts[current_selected_index + 1]
  328.       if i_am_going_to_select
  329.         current_selected.unselected
  330.         i_am_going_to_select.selected
  331.         Sound.play_cursor
  332.       else
  333.         Sound.play_buzzer
  334.       end
  335.  
  336.  
  337.     end
  338.  
  339.  
  340.     if Input.trigger? :C
  341.       deal_with_on_ok
  342.     end
  343.  
  344.  
  345.     if Input.trigger? :B
  346.       Sound.play_cancel
  347.       SceneManager.return
  348.     end
  349.  
  350.   end
  351.  
  352.   def update_background
  353.     @bg.ox += 1 if @main_timer % 2 == 0
  354.   end
  355.  
  356.  
  357.   def update_mask
  358.     @mask.opacity -= 4
  359.   end
  360.  
  361.  
  362.   def current_selected
  363.     return @parts.select{|p|p.selected?}[0]
  364.   end
  365.  
  366.   def current_selected_index
  367.     return @parts.index current_selected
  368.   end
  369.  
  370.   def update_parts
  371.     @parts.each(&:update)
  372.   end
  373.  
  374. end
  375.  
  376.  
  377. class Scene_Save < Scene_File
  378.   def deal_with_on_ok
  379.     DataManager.save_game(current_selected_index)
  380.     Sound.play_save
  381.     SceneManager.return
  382.   end
  383. end
  384.  
  385. class Scene_Load < Scene_File
  386.   def deal_with_on_ok
  387.     if current_selected.does_not_exist
  388.       Sound.play_buzzer
  389.       return
  390.     end
  391.  
  392.     easy_load(current_selected_index)
  393.   end
  394. end
  395.  
  396.  
  397. module Cache
  398.   class << self
  399.     def number(name)
  400.       load_bitmap("Graphics/Numbers/", name)
  401.     end
  402.  
  403.   end
  404. end
  405.  
  406.  
  407. class Sprite_Number < Sprite
  408.  
  409.   INDENT = [123,97]
  410.  
  411.   def initialize(text)
  412.     super(nil)
  413.     @text = text
  414.     refresh
  415.   end
  416.  
  417.   DIC = {
  418.    ':' => 'colon'
  419.   }
  420.  
  421.  
  422.   def text=(x)
  423.     @text = x
  424.     refresh
  425.   end
  426.  
  427.  
  428.   def text
  429.     return @text
  430.   end
  431.  
  432.  
  433.  
  434.  
  435.   def refresh
  436.     self.bitmap = Bitmap.new(Graphics.width,Graphics.height)
  437.     deal_with_text
  438.   end
  439.  
  440.  
  441.  
  442.   def deal_with_text
  443.  
  444.     cursor = INDENT[0]
  445.     @text.each_char do |c|
  446.  
  447.  
  448.       if DIC[c]
  449.         c = DIC[c]
  450.         cursor+=3
  451.       end
  452.  
  453.       new_bitmap = Cache.number(c)
  454.       a = cursor
  455.       b = INDENT[1]
  456.       sb = new_bitmap
  457.       sr = Rect.new(0,0,sb.width,sb.height)
  458.       self.bitmap.blt(a,b,sb,sr)
  459.       cursor += sb.width*0.75
  460.       sb.dispose
  461.     end # each
  462.   end
  463.  
  464.  
  465. end
  466.  
  467.  
  468. class Scene_Number < Scene_Base
  469.   def start
  470.     super
  471.     @timer = 0
  472.     @sprite = Sprite_Number.new($game_system.playtime_s)
  473.   end
  474.  
  475.  
  476.   def update
  477.     super
  478.     @timer += 1
  479.     if @timer %60==0
  480.       @sprite.text= $game_system.playtime_s
  481.     end
  482.  
  483.   end
  484.  
  485.  
  486. end
  487.  
  488.  
  489. class Scene_Menu
  490.   #--------------------------------------------------------------------------
  491.   # ● 执行进入场景时的渐变
  492.   #--------------------------------------------------------------------------
  493.   def perform_transition
  494.     if Graphics.brightness == 0
  495.       Graphics.transition(0)
  496.       fadein(30)
  497.     else
  498.       super
  499.     end
  500.   end
  501. end

Lv1.梦旅人

梦石
0
星屑
50
在线时间
30 小时
注册时间
2013-11-25
帖子
28
2
 楼主| 发表于 2014-9-9 19:16:36 | 只看该作者
这个是【薄雾】VA动态存档脚本 v0.2 这个帖子里面的,作者已经匿了好长时间了,我也不好挖坟,所以求大神修改

点评

这个是大脚本啊。。我的意思是怎么用事件脚本改啊。。我也不懂啊。。  发表于 2014-9-9 22:27
脚本盲,没注释看的眼疼。没找到修改增加存档数的地方。 章节显示改变脚本13行就说了是1号变量。  发表于 2014-9-9 21:16
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

3
发表于 2014-9-10 13:00:50 | 只看该作者
没记错的话,存档个数应该可以在 DataManager.savefile_max 里面修改

给我一个不能用事件直接修改1号变量的理由

点评

改这个设置没用的话,基本上就说明作者压根没想让你改存档个数  发表于 2014-9-14 14:37
。。。你压根就没看这个脚本吧,,,DataManager里改成20万存档上限也还是两个呀。。这个是脚本里面的。。  发表于 2014-9-14 13:43
呃,DataManager那个模块里面有个savefile_max,下面有个数字,改了就好了吧……  发表于 2014-9-12 15:29
要怎么改?我是新手啊。。现在只会复制粘贴,要用什么时间脚本可以把1改成2?而且这个好像是全局的,改完之后之前的存档也会跟着变。。  发表于 2014-9-11 21:51

评分

参与人数 1星屑 +132 收起 理由
VIPArcher + 132 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
89
在线时间
480 小时
注册时间
2013-5-10
帖子
840
4
发表于 2014-9-11 01:10:08 | 只看该作者
taroxd 发表于 2014-9-10 13:00
没记错的话,存档个数应该可以在 DataManager.savefile_max 里面修改

给我一个不能用事件直接修改1号变量 ...

他的意思应该是用事件脚本吧....(σ゚∀゚)σ
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

GMT+8, 2024-11-14 09:56

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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