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

Project1

 找回密码
 注册会员
搜索
查看: 3298|回复: 11

[已经解决] 结局室显示结局的问题

[复制链接]

Lv2.观梦者

梦石
0
星屑
531
在线时间
49 小时
注册时间
2018-3-5
帖子
31
发表于 2018-5-5 00:36:53 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 AExuewu 于 2018-5-5 00:40 编辑

怎样才能把达成的结局在结局室一直都能看到呢?(类似于某些游戏的永存cg图)
具体:在你达成坏结局的一瞬间就算你重新读档达成另外一个好结局之后还是会在结局室里看到之前达成的坏结局(只针对之前的同一个存档,开始新的游戏后新存档的结局要重新打)
脚本或共用事件都行(请指明用法)

评分

参与人数 1+1 收起 理由
chd114 + 1 公共事件【结局X】/save_data($v, "ed.rvda.

查看全部评分

一条翻不过身的咸鱼

Lv3.寻梦者

梦石
0
星屑
1246
在线时间
422 小时
注册时间
2011-6-30
帖子
497
发表于 2018-5-5 18:33:51 | 显示全部楼层
我的想法就是没有“结束游戏”这一说
之前一直会用自制游戏开头所以会跳过开头的场景
然后在你想结束游戏的时候,存档,清空所有的剧情用独立开关,剧情用开关以及剧情用变量再跳回你的开头
实际上游戏是没有“结束”,而所有的场景都重置了
个人是倾向于用这种思路来处理多周目的情形的……

点评

你说的这个我知道,我只是想说有些急性子玩家会直接读挡,我就是想做那种就算读挡也无法改变你达成的结局那种  发表于 2018-5-5 21:18
点这里给我发邮件
有事欢迎给我发邮件哟~~
不出意外的话都会回复的哟~~~
邮箱:[email protected]
个人主页:curatorjin.github.io
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
531
在线时间
49 小时
注册时间
2018-3-5
帖子
31
 楼主| 发表于 2018-5-5 21:20:29 | 显示全部楼层
@chd114 ,能告诉我这个是什么吗:公共事件【结局X】/save_data($v, "ed.rvda.

评分

参与人数 1+1 收起 理由
chd114 + 1 第1种用公共事件,第2种是保存文件,参考data.

查看全部评分

一条翻不过身的咸鱼
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1246
在线时间
422 小时
注册时间
2011-6-30
帖子
497
发表于 2018-5-5 21:58:49 | 显示全部楼层
不是啊……这种方法就算读档的话成就也还是会在的啊……
我晚点发个范例给你看看吧要不……
点这里给我发邮件
有事欢迎给我发邮件哟~~
不出意外的话都会回复的哟~~~
邮箱:[email protected]
个人主页:curatorjin.github.io
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
1
星屑
1123
在线时间
109 小时
注册时间
2017-11-1
帖子
79
发表于 2018-5-5 22:14:51 | 显示全部楼层
这个脚本应该能达到你的要求,虽然我还没有试过

  1. #encoding:utf-8

  2. =begin
  3. *******************************************************************************************
  4.    * 遊戲共用變數 *
  5.                        for RGSS3
  6.         Ver 1.2.0   2015.07.30
  7.    原作者:魂(Lctseng),巴哈姆特論壇ID:play123
  8.    轉載請保留此標籤
  9.    個人小屋連結:http://home.gamer.com.tw/homeindex.php?owner=play123
  10.    主要功能:
  11.                        一、設定某些範圍的開關和變量將永遠在遊戲間共用
  12.    更新紀錄:
  13.     Ver 1.0.0 :
  14.     日期:2014.06.30
  15.     摘要:■、最初版本
  16.                 ■、功能:
  17.                        一、設定某些範圍的開關和變量將永遠在遊戲間共用
  18.     Ver 1.1.0 :
  19.     日期:2014.08.15
  20.     摘要:■、錯誤修正:
  21.                        一、打包後的遊戲專案使用會有找不到檔案的問題
  22.     Ver 1.2.0 :
  23.     日期:2015.07.30
  24.     摘要:■、新增安全機制
  25.     撰寫摘要:一、此腳本修改或重新定義以下類別:
  26.                            ■ Game_Switches
  27.                            ■ Game_Variables
  28.                         二、此腳本新定義以下類別和模組:
  29.                            ■ Lctseng::PermanentlyVariables
  30.                            ■ Game_PermanentlyVariables
  31. *******************************************************************************************
  32. =end

  33. #encoding:utf-8
  34. #==============================================================================
  35. # ■ Lctseng::PermanentlyVariables
  36. #------------------------------------------------------------------------------
  37. #  管理模組
  38. #==============================================================================

  39. module Lctseng
  40. module PermanentlyVariables
  41.   #--------------------------------------------------------------------------
  42.   # ● 設定永久的開關和變量範圍
  43.   #--------------------------------------------------------------------------
  44.   # 開關:10~20
  45.   SWITCH_RANGE = Range.new(10,20)
  46.   # 變量:10~20
  47.   VARIABLE_RANGE = Range.new(10,20)
  48.   #--------------------------------------------------------------------------
  49.   # ● 安全設定:設定兩個很大的質數,以避免永久存檔遭到修改
  50.   #--------------------------------------------------------------------------
  51.   PRIME_1 = 179424779
  52.   PRIME_2 = 179428399

  53. end
  54. end



  55. #*******************************************************************************************
  56. #
  57. #   請勿修改從這裡以下的程式碼,除非你知道你在做什麼!
  58. #   DO NOT MODIFY UNLESS YOU KNOW WHAT TO DO !
  59. #
  60. #*******************************************************************************************

  61. #--------------------------------------------------------------------------
  62. # ★ 紀錄腳本資訊
  63. #--------------------------------------------------------------------------
  64. if !$lctseng_scripts
  65.   $lctseng_scripts = {}
  66. end


  67. $lctseng_scripts[:permanently_variable] = "1.2.0"

  68. puts "載入腳本:Lctseng - 遊戲共用變數,版本:#{$lctseng_scripts[:permanently_variable]}"



  69. #encoding:utf-8
  70. #==============================================================================
  71. # ■ Lctseng::PermanentlyVariables
  72. #------------------------------------------------------------------------------
  73. #  管理模組
  74. #==============================================================================

  75. module Lctseng
  76. module PermanentlyVariables
  77.   #--------------------------------------------------------------------------
  78.   # ● 讀取共用開關
  79.   #--------------------------------------------------------------------------
  80.   def self.get_switch(switch_id)
  81.     ensure_record
  82.     $game_permanent.get_switch(switch_id)
  83.   end
  84.   #--------------------------------------------------------------------------
  85.   # ● 寫入共用開關
  86.   #--------------------------------------------------------------------------
  87.   def self.set_switch(switch_id,value)
  88.     ensure_record
  89.     $game_permanent.set_switch(switch_id,value)
  90.     sync_record
  91.   end
  92.   #--------------------------------------------------------------------------
  93.   # ● 讀取共用變數
  94.   #--------------------------------------------------------------------------
  95.   def self.get_variable(switch_id)
  96.     ensure_record
  97.     $game_permanent.get_variable(switch_id)
  98.   end
  99.   #--------------------------------------------------------------------------
  100.   # ● 寫入共用變數
  101.   #--------------------------------------------------------------------------
  102.   def self.set_variable(var_id,value)
  103.     ensure_record
  104.     $game_permanent.set_variable(var_id,value)
  105.     sync_record
  106.   end
  107.   #--------------------------------------------------------------------------
  108.   # ● 確保共用資訊存在於記憶體
  109.   #--------------------------------------------------------------------------
  110.   def self.ensure_record
  111.     if $game_permanent.nil?
  112.       $game_permanent = load_record
  113.     end
  114.   end
  115.   #--------------------------------------------------------------------------
  116.   # ● 讀取永久變數,若不存在,則創立新物件
  117.   #--------------------------------------------------------------------------
  118.   def self.load_record
  119.     data = nil
  120.     begin
  121.       data = load_data("Permanent.dat")
  122.       if data.check_checksum
  123.         puts "已讀取存在的檔案"
  124.       else
  125.         puts "檔案遭到修改!"
  126.         raise RuntimeError, "檔案損壞!"
  127.       end
  128.     rescue
  129.       puts "檔案不存在或損壞!創立新物件"
  130.       data = Game_PermanentlyVariables.new
  131.     end
  132.     return data
  133.   end
  134.   #--------------------------------------------------------------------------
  135.   # ● 同步永久變數,將寫入檔案
  136.   #--------------------------------------------------------------------------
  137.   def self.sync_record
  138.     puts "正在同步檔案"
  139.     $game_permanent.generate_checksum
  140.     save_data($game_permanent, "Permanent.dat")
  141.   end

  142. end
  143. end


  144. #encoding:utf-8
  145. #==============================================================================
  146. # ■ Game_PermanentlyVariables
  147. #------------------------------------------------------------------------------
  148. #  儲存永久不變的開關與變數
  149. #     只是個套殼的Hash
  150. #==============================================================================

  151. class Game_PermanentlyVariables
  152.   #--------------------------------------------------------------------------
  153.   # ● 初始化
  154.   #--------------------------------------------------------------------------
  155.   def initialize
  156.     clear
  157.   end
  158.   #--------------------------------------------------------------------------
  159.   # ● 清除
  160.   #--------------------------------------------------------------------------
  161.   def clear
  162.     @switchs = {}
  163.     @variables = {}
  164.     @checksum = 0
  165.   end
  166.   #--------------------------------------------------------------------------
  167.   # ● 產生檢查碼
  168.   #--------------------------------------------------------------------------
  169.   def generate_checksum
  170.     @checksum = calculate_checksum
  171.   end
  172.   #--------------------------------------------------------------------------
  173.   # ● 計算檢查碼
  174.   #--------------------------------------------------------------------------
  175.   def calculate_checksum
  176.     checksum = 0
  177.     @switchs.each_pair do |id,val|
  178.       checksum += (id*Lctseng::PermanentlyVariables::PRIME_1 * (val ? -1 : 1))
  179.     end
  180.     @variables.each_pair do |id,val|
  181.       checksum += (id*Lctseng::PermanentlyVariables::PRIME_1 + val*Lctseng::PermanentlyVariables::PRIME_2)
  182.     end
  183.     puts "檢查碼:#{checksum}"
  184.     return checksum
  185.   end
  186.   #--------------------------------------------------------------------------
  187.   # ● 測試檢查碼
  188.   #--------------------------------------------------------------------------
  189.   def check_checksum
  190.     @checksum == calculate_checksum
  191.   end
  192.   #--------------------------------------------------------------------------
  193.   # ● 取得開關
  194.   #--------------------------------------------------------------------------
  195.   def get_switch(switch_id)
  196.     @switchs[switch_id] || false
  197.   end
  198.   #--------------------------------------------------------------------------
  199.   # ● 設定開關
  200.   #--------------------------------------------------------------------------
  201.   def set_switch(switch_id,value)
  202.     @switchs[switch_id]  = value
  203.   end
  204.   #--------------------------------------------------------------------------
  205.   # ● 取得變數
  206.   #--------------------------------------------------------------------------
  207.   def get_variable(var_id)
  208.     @variables[var_id] || 0
  209.   end
  210.   #--------------------------------------------------------------------------
  211.   # ● 設定變數
  212.   #--------------------------------------------------------------------------
  213.   def set_variable(var_id,value)
  214.     @variables[var_id]  = value
  215.   end

  216. end


  217. #encoding:utf-8
  218. #==============================================================================
  219. # ■ Game_Switches
  220. #------------------------------------------------------------------------------
  221. #  處理開關的類。本質上是套了個殼的 Array 。本類的實例請參考 $game_switches 。
  222. #==============================================================================

  223. class Game_Switches
  224.   #--------------------------------------------------------------------------
  225.   # ● 獲取開關 - 重新定義
  226.   #--------------------------------------------------------------------------
  227.   alias :lctseng_get :[]
  228.   #--------------------------------------------------------------------------
  229.   def [](switch_id)
  230.     if Lctseng::PermanentlyVariables::SWITCH_RANGE.include?(switch_id)
  231.       puts "讀取共用開關:#{switch_id}"
  232.       return Lctseng::PermanentlyVariables.get_switch(switch_id)
  233.     else
  234.       puts "讀取普通開關:#{switch_id}"
  235.       return lctseng_get(switch_id)
  236.     end
  237.   end
  238.   #--------------------------------------------------------------------------
  239.   # ● 設置開關 - 重新定義
  240.   #     value : 開啟 (true) / 關閉 (false)
  241.   #--------------------------------------------------------------------------
  242.   alias :lctseng_set :[]=
  243.   #--------------------------------------------------------------------------
  244.   def []=(switch_id, value)
  245.     if Lctseng::PermanentlyVariables::SWITCH_RANGE.include?(switch_id)
  246.       puts "寫入共用開關:#{switch_id}:#{value}"
  247.       Lctseng::PermanentlyVariables.set_switch(switch_id, value)
  248.       on_change
  249.     else
  250.       puts "寫入普通開關:#{switch_id}:#{value}"
  251.       lctseng_set(switch_id, value)
  252.     end

  253.   end
  254. end


  255. #encoding:utf-8
  256. #==============================================================================
  257. # ■ Game_Variables
  258. #------------------------------------------------------------------------------
  259. #  處理變量的類。本質上是套了個殼的 Array 。本類的實例請參考 $game_variables 。
  260. #==============================================================================

  261. class Game_Variables
  262.   #--------------------------------------------------------------------------
  263.   # ● 獲取變物 - 重新定義
  264.   #--------------------------------------------------------------------------
  265.   alias :lctseng_get :[]
  266.   #--------------------------------------------------------------------------
  267.   def [](variable_id)
  268.     if Lctseng::PermanentlyVariables::VARIABLE_RANGE.include?(variable_id)
  269.       puts "讀取共用變數:#{variable_id}"
  270.       return Lctseng::PermanentlyVariables.get_variable(variable_id)
  271.     else
  272.       puts "讀取普通變數:#{variable_id}"
  273.       return lctseng_get(variable_id)
  274.     end
  275.   end
  276.   #--------------------------------------------------------------------------
  277.   # ● 設置變數 - 重新定義
  278.   #--------------------------------------------------------------------------
  279.   alias :lctseng_set :[]=
  280.   #--------------------------------------------------------------------------
  281.   def []=(variable_id, value)
  282.     if Lctseng::PermanentlyVariables::VARIABLE_RANGE.include?(variable_id)
  283.       puts "寫入共用變數:#{variable_id}:#{value}"
  284.       Lctseng::PermanentlyVariables.set_variable(variable_id, value)
  285.       on_change
  286.     else
  287.       puts "寫入普通變數:#{variable_id}:#{value}"
  288.       lctseng_set(variable_id, value)
  289.     end

  290.   end
  291. end
复制代码

点评

能告诉我这个怎么用吗?  发表于 2018-5-5 22:55
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

梦石
1
星屑
20296
在线时间
4875 小时
注册时间
2014-12-22
帖子
1525

开拓者

发表于 2018-5-5 22:29:36 | 显示全部楼层
……嗯……“只针对之前的同一个存档,开始新的游戏后新存档的结局要重新打”
还得区分不同的存档?这个我……能力有限想不到怎么搞。
如果不一定非要在同一个存档里打到才算是收集到,就通常那种不管几周目读档或者重新开始只要是打过一个结局就算收集到一个的话,可以用这个:
全局变量脚本 by喵呜喵5
https://rpg.blue/home.php?mod=sp ... o=blog&id=11794
全局变量就是单独保存一个可以跨存档读取的数据。
你可以:达成1号结局变量a=1,达成2号结局变量b=1,变量ab都设定为全局变量,然后在结局室里判断ab的值做显示就可以了。
(同时也推荐喵呜喵5的原创脚本空间 http://miaowm5.coding.me/script-blog/list.html
5楼是跟上面贴的脚本类似的功能,都可以试试。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
531
在线时间
49 小时
注册时间
2018-3-5
帖子
31
 楼主| 发表于 2018-5-5 22:53:41 | 显示全部楼层
0newing 发表于 2018-5-5 21:58
不是啊……这种方法就算读档的话成就也还是会在的啊……
我晚点发个范例给你看看吧要不…… ...

如果可以,请给我
一条翻不过身的咸鱼
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1246
在线时间
422 小时
注册时间
2011-6-30
帖子
497
发表于 2018-5-6 00:14:48 | 显示全部楼层
Project1.zip (1.43 MB, 下载次数: 101)
点这里给我发邮件
有事欢迎给我发邮件哟~~
不出意外的话都会回复的哟~~~
邮箱:[email protected]
个人主页:curatorjin.github.io
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
1
星屑
1123
在线时间
109 小时
注册时间
2017-11-1
帖子
79
发表于 2018-5-7 00:02:44 | 显示全部楼层
cqzkid 发表于 2018-5-5 22:14
这个脚本应该能达到你的要求,虽然我还没有试过

只能够让你游戏的10到20号开关和变量变成无关存档的永久开关的变量(10到20可以在47行那里修改)
然后你在结局室展示的东西就按照这些永久开关和变量控制出现和不同的效果就行
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
317
在线时间
43 小时
注册时间
2021-3-7
帖子
25
发表于 2021-3-19 19:57:36 | 显示全部楼层
结局这个我还没想到。参考下
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-19 10:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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