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

Project1

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

[已经解决] 关于标题画面自定义脚本搭配标题画面新增选项脚本

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1066
在线时间
360 小时
注册时间
2014-4-25
帖子
42
跳转到指定楼层
1
发表于 2022-2-13 00:32:08 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
100星屑
我想在用过パラ犬大人的“标题画面自定义”脚本的标题画面增加一个彩蛋选项,通关之前都是隐藏的,通关后才显示


于是用了喵呜喵5大人的“标题画面新增选项”脚本


一通魔改之后




变成了这样,最下面的按钮在“标题画面新增选项”脚本中是不显示状态,不会被选中,但是图片无法隐藏

请问要如何在通关之前隐藏它?TAT



以下分别是上面提到的两个脚本的个人修改版

RUBY 代码复制
  1. #==============================================================================
  2. # ++ タイトル画面カスタマイズ [RGSS3] ver. 1.00 ++
  3. #  Script by パラ犬
  4. #------------------------------------------------------------------------------
  5. # タイトル画面のコマンドに画像を使用できるようにします。
  6. #==============================================================================
  7.  
  8. class Window_TitleCommand < Window_Command
  9.  
  10. #------------------------------------------------------------------------------
  11. # ↓ 簡単に設定できるように設定項目を切り出し
  12.  
  13.   # 1行目:メニューコマンドに使う画像ファイル名(「Graphics/Titles1」に入れる )
  14.   #     ( 書式は [ コマンド未選択時 , コマンドが選択されたとき ] )
  15.   # 2行目:画像の表示位置(X座標)
  16.   # 3行目:画像の表示位置(Y座標)
  17.  
  18.   # ニューゲーム
  19.   IMG_NEWGAME = ["newgame","newgame_active"]
  20.   IMG_NEWGAME_X = 250   # 横位置
  21.   IMG_NEWGAME_Y = 280   # 縦位置
  22.   # コンティニュー
  23.   IMG_CONTINUE = ["continue","continue_active"]
  24.   IMG_CONTINUE_X = 250   # 横位置
  25.   IMG_CONTINUE_Y = 330   # 縦位置
  26.   # シャットダウン
  27.   IMG_SHUTDOWN = ["shutdown","shutdown_active"]
  28.   IMG_SHUTDOWN_X = 250   # 横位置
  29.   IMG_SHUTDOWN_Y = 380   # 縦位置
  30.   # 彩蛋
  31.   IMG_EX = ["EX","EX_active"]
  32.   IMG_EX_X = 250   # 横位置
  33.   IMG_EX_Y = 430   # 縦位置
  34.  
  35. # ↑ 設定項目ここまで
  36. #------------------------------------------------------------------------------
  37.  
  38.   #--------------------------------------------------------------------------
  39.   # ○ 画像コマンドウィンドウの作成
  40.   #--------------------------------------------------------------------------
  41.   def create_command_sprite
  42.     # ニューゲーム
  43.     sprite1 = Sprite.new
  44.     sprite1.x = IMG_NEWGAME_X
  45.     sprite1.y = IMG_NEWGAME_Y
  46.     # コンティニュー
  47.     sprite2 = Sprite.new
  48.     sprite2.x = IMG_CONTINUE_X
  49.     sprite2.y = IMG_CONTINUE_Y
  50.     # シャットダウン
  51.     sprite3 = Sprite.new
  52.     sprite3.x = IMG_SHUTDOWN_X
  53.     sprite3.y = IMG_SHUTDOWN_Y
  54.     # 彩蛋
  55.     sprite4 = Sprite.new
  56.     sprite4.x = IMG_EX_X
  57.     sprite4.y = IMG_EX_Y
  58.     # スプライトを配列で管理
  59.     @command_sprites = [sprite1, sprite2, sprite3, sprite4]
  60.     # ビットマップファイル名を配列で管理
  61.     @command_bitmaps = [IMG_NEWGAME, IMG_CONTINUE, IMG_SHUTDOWN, IMG_EX]
  62.   end
  63.   #--------------------------------------------------------------------------
  64.   # ○ メニュー選択時の画像切り替え
  65.   #--------------------------------------------------------------------------
  66.   def select_command_sprite(index)
  67.     # 全てのスプライトに[コマンド未選択時]のビットマップをつっこむ
  68.     @command_sprites[0].bitmap = Cache.title1(@command_bitmaps[0][0])
  69.     @command_sprites[1].bitmap = Cache.title1(@command_bitmaps[1][0])
  70.     @command_sprites[2].bitmap = Cache.title1(@command_bitmaps[2][0])
  71.     @command_sprites[3].bitmap = Cache.title1(@command_bitmaps[3][0])
  72.     # 選択されている項目のビットマップを[コマンドが選択されたとき]に変える
  73.     @command_sprites[index].bitmap = Cache.title1(@command_bitmaps[index][1])
  74.   end
  75.   #--------------------------------------------------------------------------
  76.   # ○ 項目の描画
  77.   #--------------------------------------------------------------------------
  78.   def set_enabled_command_sprite(index, enabled)
  79.     if enabled
  80.       @command_sprites[index].opacity = 255
  81.     else
  82.       # 選択不可の項目は不透明度を下げる
  83.       @command_sprites[index].opacity = 160
  84.     end
  85.   end
  86.   #--------------------------------------------------------------------------
  87.   # ○ 解放
  88.   #--------------------------------------------------------------------------
  89.   def dispose_command_sprite
  90.     if @command_sprites != nil
  91.       @command_sprites[0].dispose
  92.       @command_sprites[1].dispose
  93.       @command_sprites[2].dispose
  94.       @command_sprites[3].dispose
  95.     end
  96.   end
  97.   #--------------------------------------------------------------------------
  98.   # ● リフレッシュ
  99.   #--------------------------------------------------------------------------
  100.   def refresh
  101.     # 呼び出し:○画像コマンドウィンドウの作成
  102.     create_command_sprite
  103.     # 元からあるコマンドウインドウを非表示にする
  104.     self.visible = false
  105.     super
  106.   end
  107.   #--------------------------------------------------------------------------
  108.   # ● カーソル位置の設定
  109.   #--------------------------------------------------------------------------
  110.   def index=(index)
  111.     super
  112.     # 呼び出し:○メニュー選択時の画像切り替え
  113.     select_command_sprite(index)
  114.   end
  115.   #--------------------------------------------------------------------------
  116.   # ● 項目の描画
  117.   #--------------------------------------------------------------------------
  118.   def draw_item(index)
  119.     super
  120.     # 呼び出し:○項目の描画
  121.     set_enabled_command_sprite(index, command_enabled?(index))
  122.   end
  123.   #--------------------------------------------------------------------------
  124.   # ● 解放
  125.   #--------------------------------------------------------------------------
  126.   def dispose
  127.     # 呼び出し:○解放
  128.     dispose_command_sprite
  129.     super
  130.   end
  131. end



RUBY 代码复制
  1. =begin
  2. ===============================================================================
  3.   标题画面新增选项 By喵呜喵5
  4. ===============================================================================
  5.  
  6.   【说明】
  7.  
  8.   在标题画面增加新的选项
  9.  
  10.   玩家选择了这个选项后可以从另外一张地图开始新游戏
  11.   在这张新地图上可以用事件指令之类的东西做出类似CG欣赏之类的功能
  12.  
  13. =end
  14. $m5script ||= {};$m5script[:M5NTC20140811] = 20150319
  15. module M5NTC20140811
  16.   COMMAND = [
  17. #==============================================================================
  18. #  设定部分
  19. #==============================================================================
  20.   {
  21.     :text  => "通关特典",
  22.     :map   => 2,
  23.     :opt   => true,
  24.     :pos   => 5,
  25.     :ext   => 2,
  26.     :show  => false,
  27.   },
  28.  
  29.   # 在这上方追加新的选项,一条设置对应一个显示在标题画面的选项
  30.   # 设置格式为 :
  31.   #   {
  32.   #     要设置的属性 => 设置的内容,
  33.   #   },
  34.   #
  35.   #(不要忘记前后的中括号以及中间和结尾的英文冒号、英文逗号)
  36.   #
  37.   # 可以设置的属性如下(未设置的属性将使用 F9 数据库中默认的设置):
  38.   #
  39.   # :text  设置选项在菜单中的名称(前后加上英文引号)
  40.   # :pos   设置这个选项出现在选项窗口中的位置
  41.   #
  42.   # :map   设置选择这个选项后移动到的地图ID
  43.   # :x     设置选择这个选项后移到到对应地图的X坐标
  44.   # :y     设置选择这个选项后移到到对应地图的Y坐标
  45.   # :opt   设置选择这个选项后移到到对应地图时是否透明,true 为透明,false 为不透明
  46.   #
  47.   # :ext   设置选项是否显示的标志,请参考下方的详细说明
  48.   # :show  填写 true 时,显示无法选择的选项,搭配上方的 ext 共同使用
  49.   #
  50.   # ===========================================================================
  51.   #
  52.   # 【关于选项是否显示标志的详细说明】
  53.   #
  54.   # 这个功能需要搭配我的全局变量脚本共同使用,可以实现类似通关后出现新选项的效果
  55.   #
  56.   # 下面以通关后出现 “观看CG” 选项为例:
  57.   # 首先插入我的全局变量脚本,脚本的位置应该放在本脚本之上
  58.   # 在设定部分新增一个跳转到执行“观看CG”地图的选项
  59.   # 设置观看CG选项里 ext 的值,例如:
  60.   #   ext : 233,
  61.   #
  62.   # 当游戏通关的时候在事件的脚本中执行下面的代码
  63.   #   m5_20140811_ntc(233)
  64.   # 之后,再次打开游戏时标题画面中就会出现“观看CG”的选项了
  65.   #
  66.   # 如果希望删除已经出现的“观看CG”这个选项的话,在事件的脚本中执行下面的代码
  67.   #   m5_20140811_ntc(233,false)
  68.   # 观看CG的选项便再次被消除了
  69.   #
  70.   # 如果观看CG这个选项还增加了下面的设置
  71.   #   show : true,
  72.   # 在游戏通关前标题画面也会显示这个选项,但是玩家无法选择
  73.  
  74. #==============================================================================
  75. #  设定结束
  76. #==============================================================================
  77.   ]
  78. end
  79. class Window_TitleCommand
  80.   alias m5_20140206_make_command_list make_command_list
  81.   def make_command_list
  82.     m5_20140206_make_command_list
  83.     base = $m5script[:M5GV20140811]
  84.     ext = (base && base >= 20140811) ? M5GV20140811.get_ext : {}
  85.     ext = ext[:M5NTC20140811] || {}
  86.     M5NTC20140811::COMMAND.each do |c|
  87.       if c[:ext]
  88.         enable = ext[ c[:ext] ]
  89.         ( next unless c[:show] ) if !enable
  90.       else
  91.         enable = true
  92.       end
  93.       @list.insert( c[:pos] || -1 ,
  94.       {
  95.         :name => c[:text], :symbol => :m520140811ntc,
  96.         :ext => c, :enabled => enable
  97.       })
  98.     end
  99.     @list.compact!
  100.   end
  101. end
  102. class Scene_Title
  103.   alias m5_20140206_create_command_window create_command_window
  104.   def create_command_window
  105.     temp_data = load_data("Data/System.rvdata2")
  106.     $data_system.start_map_id = temp_data.start_map_id
  107.     $data_system.start_x = temp_data.start_x
  108.     $data_system.start_y = temp_data.start_y
  109.     $data_system.opt_transparent = temp_data.opt_transparent
  110.     m5_20140206_create_command_window
  111.     proc = Proc.new do
  112.       command = @command_window.current_ext
  113.       $data_system.start_map_id = command[:map] if command[:map]
  114.       $data_system.start_x = command[:x] if command[:x]
  115.       $data_system.start_y = command[:y] if command[:y]
  116.       $data_system.opt_transparent = command[:opt] if command[:opt]
  117.       command_new_game
  118.     end
  119.     @command_window.set_handler(:m520140811ntc, proc)
  120.   end
  121. end
  122. class Game_Interpreter
  123.   def m5_20140811_ntc(flag, value = true)
  124.     base = $m5script[:M5GV20140811]
  125.     raise "本功能需要新版喵呜喵5全局变量脚本的支持" if !base || base < 20150319
  126.     ext = M5GV20140811.get_ext
  127.     ext[:M5NTC20140811] ||= {}
  128.     ext[:M5NTC20140811][flag] = value
  129.     M5GV20140811.save_ext
  130.   end
  131. end

最佳答案

查看完整内容

大概是这么个思路,把下面这段脚本插入到パラ犬脚本的后面的位置 本地没有测试过,有报错的话回复一下我根据报错修正

评分

参与人数 1+1 收起 理由
无色物质℉ + 1 感谢!遇到了同样的问题_(:зゝ∠)_.

查看全部评分

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
20955
在线时间
9334 小时
注册时间
2012-6-19
帖子
7106

开拓者短篇九导演组冠军

2
发表于 2022-2-13 00:32:09 | 只看该作者
大概是这么个思路,把下面这段脚本插入到パラ犬脚本的后面的位置
本地没有测试过,有报错的话回复一下我根据报错修正

  1. class Window_TitleCommand
  2.   alias m5_20220213_create_command_sprite create_command_sprite
  3.   def create_command_sprite
  4.     # 执行原本的流程
  5.     m5_20220213_create_command_sprite
  6.     # 获取彩蛋选项的精灵图片
  7.     sprite4 = @command_sprites[3]
  8.     # 获取全局变量脚本的储存信息
  9.     ext = M5GV20140811.get_ext
  10.     ext = ext[:M5NTC20140811] || {}
  11.     # 获取彩蛋选项是否应该出现,彩蛋的 ext 参数配置的是 2
  12.     show = ext[2]
  13.     # 如果不出现,则把选项设置为隐藏
  14.     sprite4.visible = false unless show   
  15.   end
  16. end
复制代码

评分

参与人数 3星屑 +60 +3 收起 理由
alexncf125 + 60 + 1 认可答案
无色物质℉ + 1 精品文章
yz3440080 + 1 成功了!!!谢谢您!!TUT

查看全部评分

回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1066
在线时间
360 小时
注册时间
2014-4-25
帖子
42
3
 楼主| 发表于 2022-2-13 00:34:14 | 只看该作者
最下面那个被截掉一半是彩蛋选项TAT还没来得及改图
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-28 00:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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