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

Project1

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

[有事请教] 请问怎么添加完成游戏后的【特典】

[复制链接]

Lv2.观梦者

梦石
0
星屑
391
在线时间
58 小时
注册时间
2017-5-16
帖子
20
跳转到指定楼层
1
发表于 2024-5-27 12:22:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
想要的效果是:
1.正常结局后回到标题会出现特典地图的选项
2.玩家下一次打开游戏也一样出现特典地图的选项

需要添加什么脚本吗?我只搜到其他不是xp的脚本不确定是否适用。

Lv4.逐梦者

梦石
0
星屑
6260
在线时间
1481 小时
注册时间
2015-7-25
帖子
652

开拓者

2
发表于 2024-5-30 21:37:11 | 只看该作者
本帖最后由 魔法丶小肉包 于 2024-5-30 23:36 编辑

一定要放在main上面,其他所有脚本下面,防止出现bug
通关的时候事件里调用脚本$clearance = true,然后存档,该存档就会变成通关存档,是否通关跟着存档走,只要有通关存档就会出现特典选项,如果所有的通关存档删了选项就会消失
另外,只检测默认文件名的4个存档,如果已有相关脚本修改过最大存档数量或存档文件名则需要在相关地方进行修改
最后,这里只写了出现特典选项的判断,选择选项之后具体要做什么还是需要你自己去写的

RUBY 代码复制
  1. class Scene_Save
  2.   alias mf240530wsd write_save_data
  3.   def write_save_data(file)
  4.     mf240530wsd(file)
  5.     Marshal.dump($clearance, file)
  6.   end
  7. end
  8. class Scene_Load
  9.   alias mf240530rsd read_save_data
  10.   def read_save_data(file)
  11.     mf240530rsd(file)
  12.     $clearance = Marshal.load(file)
  13.   end
  14. end
  15. class Scene_Title
  16.   #--------------------------------------------------------------------------
  17.   # ● 主处理
  18.   #--------------------------------------------------------------------------
  19.   def main
  20.     # 战斗测试的情况下
  21.     if $BTEST
  22.       battle_test
  23.       return
  24.     end
  25.     $clearance = false
  26.     4.times do |i|
  27.       filename = "Save#{i + 1}.rxdata"
  28.       next unless FileTest.exist?(filename)
  29.       break if $clearance
  30.       file = File.open(filename,"rb")
  31.       $clearance = Marshal.load(file) while !file.eof?
  32.       file.close
  33.     end
  34.     # 载入数据库
  35.     $data_actors        = load_data("Data/Actors.rxdata")
  36.     $data_classes       = load_data("Data/Classes.rxdata")
  37.     $data_skills        = load_data("Data/Skills.rxdata")
  38.     $data_items         = load_data("Data/Items.rxdata")
  39.     $data_weapons       = load_data("Data/Weapons.rxdata")
  40.     $data_armors        = load_data("Data/Armors.rxdata")
  41.     $data_enemies       = load_data("Data/Enemies.rxdata")
  42.     $data_troops        = load_data("Data/Troops.rxdata")
  43.     $data_states        = load_data("Data/States.rxdata")
  44.     $data_animations    = load_data("Data/Animations.rxdata")
  45.     $data_tilesets      = load_data("Data/Tilesets.rxdata")
  46.     $data_common_events = load_data("Data/CommonEvents.rxdata")
  47.     $data_system        = load_data("Data/System.rxdata")
  48.     # 生成系统对像
  49.     $game_system = Game_System.new
  50.     # 生成标题图形
  51.     @sprite = Sprite.new
  52.     @sprite.bitmap = RPG::Cache.title($data_system.title_name)
  53.     # 生成命令窗口
  54.     s1 = "新游戏"
  55.     s2 = "继续"
  56.     s3 = "退出"
  57.     s4 = "特典"
  58.     @command_window = Window_Command.new(192, $clearance ? [s1, s2, s3, s4] : [s1, s2, s3])
  59.     @command_window.back_opacity = 160
  60.     @command_window.x = 320 - @command_window.width / 2
  61.     @command_window.y = 288
  62.     # 判定继续的有效性
  63.     # 存档文件一个也不存在的时候也调查
  64.     # 有効为 @continue_enabled 为 true、无效为 false
  65.     @continue_enabled = false
  66.     for i in 0..3
  67.       if FileTest.exist?("Save#{i+1}.rxdata")
  68.         @continue_enabled = true
  69.       end
  70.     end
  71.     # 继续为有效的情况下、光标停止在继续上
  72.     # 无效的情况下、继续的文字显示为灰色
  73.     if @continue_enabled
  74.       @command_window.index = 1
  75.     else
  76.       @command_window.disable_item(1)
  77.     end
  78.     # 演奏标题 BGM
  79.     $game_system.bgm_play($data_system.title_bgm)
  80.     # 停止演奏 ME、BGS
  81.     Audio.me_stop
  82.     Audio.bgs_stop
  83.     # 执行过渡
  84.     Graphics.transition
  85.     # 主循环
  86.     loop do
  87.       # 刷新游戏画面
  88.       Graphics.update
  89.       # 刷新输入信息
  90.       Input.update
  91.       # 刷新画面
  92.       update
  93.       # 如果画面被切换就中断循环
  94.       if $scene != self
  95.         $clearance = false
  96.         break
  97.       end
  98.     end
  99.     # 装备过渡
  100.     Graphics.freeze
  101.     # 释放命令窗口
  102.     @command_window.dispose
  103.     # 释放标题图形
  104.     @sprite.bitmap.dispose
  105.     @sprite.dispose
  106.   end
  107. end
笨肉包的首款像素OC游戏《花城梦之心》尝试制作中~
目前的坑 【不可思议的迷宫】幽灵契约外传:歌莉娅
持续更新中~ 当前进度 v0.28
大版本更新时才会更新网盘文件,预计下次大版本更新:v0.30
完成度:
主线 15% 支线 0% 数据库 6% 系统 86% 美术 6%
两边同时填坑~
( 这里是笨肉包~专修魔法!目标是大魔法师!
( 坑太大啦,一个人填不完啦hhh 一定会填完的嗯...
( 每天都和bug们比试魔力~吾之魔法将扫平一切!
( 弱点是美术,魔法修行之余再补补课吧~
( 哼哼哼~这便是魔法的力量!
大家都离开啦,笨肉包也不知道还能坚持多久呀...
这是属于笨肉包一个人的旅行(再见了...蚊子湯,七重酱,笨肉包永远想你们!TwT
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
391
在线时间
58 小时
注册时间
2017-5-16
帖子
20
3
 楼主| 发表于 2024-6-1 13:44:39 | 只看该作者
魔法丶小肉包 发表于 2024-5-30 21:37
一定要放在main上面,其他所有脚本下面,防止出现bug
通关的时候事件里调用脚本$clearance = true,然后存 ...

太感谢了!我研究一下!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 08:13

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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