Project1

标题: 默认的xp游戏存档数量可以就改成一个么 [打印本页]

作者: fish8    时间: 2012-8-30 16:55
标题: 默认的xp游戏存档数量可以就改成一个么
我的意思就一个存档位置 这样很多赌博什么的 玩之前必须存档了就···· 防止玩家作弊 也不知道是否需要修改脚本呢dsu_plus_rewardpost_czw
作者: 黄金鱼翅    时间: 2012-8-30 17:06
传送门:http://rpg.blue/forum.php?mod=viewthread&tid=125248
话说我看了下,界面还有待优化,这个简单的
作者: 闻人翎    时间: 2012-8-31 09:39
天啊当然可以。。
  1. #==============================================================================
  2. # ■ Scene_File
  3. #------------------------------------------------------------------------------
  4. #  存檔畫面及讀檔畫面的超級類別。
  5. #==============================================================================

  6. class Scene_File
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化物件
  9.   #     help_text : 說明視窗顯示的字串
  10.   #--------------------------------------------------------------------------
  11.   def initialize(help_text)
  12.     @help_text = help_text
  13.   end
  14.   #--------------------------------------------------------------------------
  15.   # ● 主處理
  16.   #--------------------------------------------------------------------------
  17.   def main
  18.     # 產生說明視窗
  19.     @help_window = Window_Help.new
  20.     @help_window.set_text(@help_text)
  21.     # 產生遊戲存檔
  22.     @savefile_windows = []
  23.     @savefile_windows.push(Window_SaveFile.new(0, make_filename(0)))
  24.     # 選擇最後操作的檔案
  25.     @file_index = 0
  26.     @savefile_windows[@file_index].selected = true
  27.     # 執行過渡
  28.     Graphics.transition
  29.     # 主循環
  30.     loop do
  31.       # 更新遊戲畫面
  32.       Graphics.update
  33.       # 更新輸入訊息
  34.       Input.update
  35.       # 更新畫面
  36.       update
  37.       # 如果畫面被切換的話就中斷循環
  38.       if $scene != self
  39.         break
  40.       end
  41.     end
  42.     # 準備過渡
  43.     Graphics.freeze
  44.     # 釋放視窗
  45.     @help_window.dispose
  46.     for i in @savefile_windows
  47.       i.dispose
  48.     end
  49.   end
  50.   #--------------------------------------------------------------------------
  51.   # ● 更新畫面
  52.   #--------------------------------------------------------------------------
  53.   def update
  54.     # 更新視窗
  55.     @help_window.update
  56.     for i in @savefile_windows
  57.       i.update
  58.     end
  59.     # 按下 C 鍵的情況下
  60.     if Input.trigger?(Input::C)
  61.       # 呼叫過程 on_decision (定義繼承目標)
  62.       on_decision(make_filename(@file_index))
  63.       $game_temp.last_file_index = @file_index
  64.       return
  65.     end
  66.     # 按下 B 鍵的情況下
  67.     if Input.trigger?(Input::B)
  68.       # 呼叫過程 on_cancel (定義繼承目標)
  69.       on_cancel
  70.       return
  71.     end
  72.     # 按下方向鍵下的情況下
  73.     if Input.repeat?(Input::DOWN)
  74.       # 方向鍵下的按下狀態不是重複的情況下、
  75.       # 並且游標的位置在 3 以前的情況下
  76.       if Input.trigger?(Input::DOWN)
  77.         # 演奏游標 SE
  78.         $game_system.se_play($data_system.cursor_se)
  79.         # 游標向下移動
  80.         @savefile_windows[@file_index].selected = true
  81.         return
  82.       end
  83.     end
  84.     # 按下方向鍵上的情況下
  85.     if Input.repeat?(Input::UP)
  86.       # 方向鍵上的按下狀態不是重複的情況下、
  87.       # 並且游標的位置在 0 以後的情況下
  88.       if Input.trigger?(Input::UP)
  89.         # 演奏游標 SE
  90.         $game_system.se_play($data_system.cursor_se)
  91.         # 游標向上移動
  92.         @savefile_windows[@file_index].selected = true
  93.         return
  94.       end
  95.     end
  96.   end
  97.   #--------------------------------------------------------------------------
  98.   # ● 產生檔案名稱
  99.   #     file_index : 檔案名稱的索引 (0~3)
  100.   #--------------------------------------------------------------------------
  101.   def make_filename(file_index)
  102.     return "Save#{file_index + 1}.rxdata"
  103.   end
  104. end
复制代码
表示这不是原创,是大师们总结的。

表示新人真的好好运用搜索功能啦。。。
作者: 502141070    时间: 2012-8-31 13:22
# --------------------------------------------------------------------
class Scene_File
  #——最大存档数量,一般我认为最多50足够了,20比较合适
  SAVEFILE_MAX = 50
  # -------------------
  def initialize(help_text)
    @help_text = help_text
  end
  # -------------------
  def main
    @help_window = Window_Help.new
    @help_window.set_text(@help_text)
    @savefile_windows = []
    @cursor_displace = 0
    for i in 0..3
      @savefile_windows.push(Window_SaveFile.new(i, make_filename(i), i))
    end
    @file_index = 0
    @savefile_windows[@file_index].selected = true
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @help_window.dispose
    for i in @savefile_windows
      i.dispose
    end
  end
  # -------------------
  def update
    @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 < SAVEFILE_MAX - 1
        if @file_index == SAVEFILE_MAX - 1
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        @cursor_displace += 1
        if @cursor_displace == 4
          @cursor_displace = 3
          for i in @savefile_windows
            i.dispose
          end
          @savefile_windows = []
          for i in 0..3
            f = i - 2 + @file_index
            name = make_filename(f)
            @savefile_windows.push(Window_SaveFile.new(f, name, i))
            @savefile_windows[i].selected = false
          end
        end
        $game_system.se_play($data_system.cursor_se)
        @file_index = (@file_index + 1)
        if @file_index == SAVEFILE_MAX
          @file_index = SAVEFILE_MAX - 1
        end
        for i in 0..3
          @savefile_windows[i].selected = false
        end
        @savefile_windows[@cursor_displace].selected = true
        return
      end
    end
    if Input.repeat?(Input::UP)
      if Input.trigger?(Input::UP) or @file_index > 0
        if @file_index == 0
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        @cursor_displace -= 1
        if @cursor_displace == -1
          @cursor_displace = 0
          for i in @savefile_windows
            i.dispose
          end
          @savefile_windows = []
          for i in 0..3
            f = i - 1 + @file_index
            name = make_filename(f)
            @savefile_windows.push(Window_SaveFile.new(f, name, i))
            @savefile_windows[i].selected = false
          end
        end
        $game_system.se_play($data_system.cursor_se)
        @file_index = (@file_index - 1)
        if @file_index == -1
          @file_index = 0
        end
        for i in 0..3
          @savefile_windows[i].selected = false
        end
        @savefile_windows[@cursor_displace].selected = true
        return
      end
    end
  end
  # -------------------
  def make_filename(file_index)
    return "Save#{file_index + 1}.rxdata"
  end
  # -------------------
end




class Window_SaveFile < Window_Base
  # -------------------
  def initialize(file_index, filename, position)
    y = 64 + position * 104
    super(0, y, 640, 104)
    self.contents = Bitmap.new(width - 32, height - 32)
    @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)
      @total_sec = @frame_count / Graphics.frame_rate
      file.close
    end
    refresh
    @selected = false
  end
end


#==============================================================================
试一下这个




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1