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

Project1

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

[已经解决] 怎么在这个图片标题脚本里增加一个特典选项?

[复制链接]

Lv5.捕梦者

梦石
18
星屑
13525
在线时间
1708 小时
注册时间
2017-1-12
帖子
1771

开拓者

跳转到指定楼层
1
发表于 2019-4-7 17:54:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 火锅深处 于 2019-4-7 18:28 编辑

RT,本来以为和直接改文字版差不多,果然以我的水平是不行的_(:з」∠)_
所以求助各位。

具体期望的效果是:
在继续和结束选项之间增加一个“特典”选项。
当开关1为打开时,“特典”选项可以被选中,并移动到1号地图的坐标(2,3)位置。

这个是图片标题脚本:
  1. #==============================================================================
  2. # ++ タイトル画面カスタマイズ [RGSS3] ver. 1.00 ++
  3. #  Script by パラ犬
  4. #------------------------------------------------------------------------------
  5. # タイトル画面のコマンドに画像を使用できるようにします。
  6. #==============================================================================

  7. class Window_TitleCommand < Window_Command

  8. #------------------------------------------------------------------------------
  9. # ↓ 簡単に設定できるように設定項目を切り出し
  10.   
  11.   # 1行目:メニューコマンドに使う画像ファイル名(「Graphics/Titles1」に入れる )
  12.   #     ( 書式は [ コマンド未選択時 , コマンドが選択されたとき ] )
  13.   # 2行目:画像の表示位置(X座標)
  14.   # 3行目:画像の表示位置(Y座標)

  15.   # ニューゲーム
  16.   IMG_NEWGAME = ["newgame","newgame_active"]
  17.   IMG_NEWGAME_X = 160   # 横位置
  18.   IMG_NEWGAME_Y = 248   # 縦位置
  19.   # コンティニュー
  20.   IMG_CONTINUE = ["continue","continue_active"]
  21.   IMG_CONTINUE_X = 160   # 横位置
  22.   IMG_CONTINUE_Y = 288   # 縦位置
  23.   # シャットダウン
  24.   IMG_SHUTDOWN = ["shutdown","shutdown_active"]
  25.   IMG_SHUTDOWN_X = 160   # 横位置
  26.   IMG_SHUTDOWN_Y = 328   # 縦位置

  27. # ↑ 設定項目ここまで
  28. #------------------------------------------------------------------------------

  29.   #--------------------------------------------------------------------------
  30.   # ○ 画像コマンドウィンドウの作成
  31.   #--------------------------------------------------------------------------
  32.   def create_command_sprite
  33.     # ニューゲーム
  34.     sprite1 = Sprite.new
  35.     sprite1.x = IMG_NEWGAME_X
  36.     sprite1.y = IMG_NEWGAME_Y
  37.     # コンティニュー
  38.     sprite2 = Sprite.new
  39.     sprite2.x = IMG_CONTINUE_X
  40.     sprite2.y = IMG_CONTINUE_Y
  41.     # シャットダウン
  42.     sprite3 = Sprite.new
  43.     sprite3.x = IMG_SHUTDOWN_X
  44.     sprite3.y = IMG_SHUTDOWN_Y
  45.     # スプライトを配列で管理
  46.     @command_sprites = [sprite1, sprite2, sprite3]
  47.     # ビットマップファイル名を配列で管理
  48.     @command_bitmaps = [IMG_NEWGAME, IMG_CONTINUE, IMG_SHUTDOWN]
  49.   end
  50.   #--------------------------------------------------------------------------
  51.   # ○ メニュー選択時の画像切り替え
  52.   #--------------------------------------------------------------------------
  53.   def select_command_sprite(index)
  54.     # 全てのスプライトに[コマンド未選択時]のビットマップをつっこむ
  55.     @command_sprites[0].bitmap = Cache.title1(@command_bitmaps[0][0])
  56.     @command_sprites[1].bitmap = Cache.title1(@command_bitmaps[1][0])
  57.     @command_sprites[2].bitmap = Cache.title1(@command_bitmaps[2][0])
  58.     # 選択されている項目のビットマップを[コマンドが選択されたとき]に変える
  59.     @command_sprites[index].bitmap = Cache.title1(@command_bitmaps[index][1])
  60.   end
  61.   #--------------------------------------------------------------------------
  62.   # ○ 項目の描画
  63.   #--------------------------------------------------------------------------
  64.   def set_enabled_command_sprite(index, enabled)
  65.     if enabled
  66.       @command_sprites[index].opacity = 255
  67.     else
  68.       # 選択不可の項目は不透明度を下げる
  69.       @command_sprites[index].opacity = 160
  70.     end
  71.   end
  72.   #--------------------------------------------------------------------------
  73.   # ○ 解放
  74.   #--------------------------------------------------------------------------
  75.   def dispose_command_sprite
  76.     if @command_sprites != nil
  77.       @command_sprites[0].dispose
  78.       @command_sprites[1].dispose
  79.       @command_sprites[2].dispose
  80.     end
  81.   end
  82.   #--------------------------------------------------------------------------
  83.   # ● リフレッシュ
  84.   #--------------------------------------------------------------------------
  85.   def refresh
  86.     # 呼び出し:○画像コマンドウィンドウの作成
  87.     create_command_sprite
  88.     # 元からあるコマンドウインドウを非表示にする
  89.     self.visible = false
  90.     super
  91.   end
  92.   #--------------------------------------------------------------------------
  93.   # ● カーソル位置の設定
  94.   #--------------------------------------------------------------------------
  95.   def index=(index)
  96.     super
  97.     # 呼び出し:○メニュー選択時の画像切り替え
  98.     select_command_sprite(index)
  99.   end
  100.   #--------------------------------------------------------------------------
  101.   # ● 項目の描画
  102.   #--------------------------------------------------------------------------
  103.   def draw_item(index)
  104.     super
  105.     # 呼び出し:○項目の描画
  106.     set_enabled_command_sprite(index, command_enabled?(index))
  107.   end
  108.   #--------------------------------------------------------------------------
  109.   # ● 解放
  110.   #--------------------------------------------------------------------------
  111.   def dispose
  112.     # 呼び出し:○解放
  113.     dispose_command_sprite
  114.     super
  115.   end
  116. end
复制代码


然后这个是用的全局变量脚本
  1. #===============================================================================
  2. # 全局变量开关
  3. #  By:VIPArcher [email: [email protected]]
  4. #  -- 本脚本来自 http://rm.66rpg.com 使用或转载请保留以上信息。
  5. #===============================================================================
  6. # 说明:
  7. #   把所有开关变量储存到一个文件中,开始新游戏时或者读档时自动载入该文件中设定好的
  8. #   某些开关变量,应该也可以用于制作多结局多周目之类的功能。通关一个结局时事件脚本
  9. #   调用 save_vs_data 一下就可以把当前的开关变量储存到一个文件中。
  10. #===============================================================================
  11. $VIPArcherScript ||= {};$VIPArcherScript[:save_varsw] = 20150121
  12. #-------------------------------------------------------------------------------
  13. module VIPArcher end
  14. #==============================================================================
  15. #  ☆ 设定部分 ☆
  16. #==============================================================================
  17. module VIPArcher::GLOBAL
  18.   FILEURL = "Saves"             #储存数据的文件夹
  19.   NAME = "System_Save.rvdata2"  #储存数据的文件名
  20.   VAR = [1,2,3,4,5,6,7,8,9,10]   # 新游戏/读档时载入的变量
  21.   SW  = [1,2,3,4,5,6,7,8,9,10]   # 新游戏/读档时载入的开关
  22. end
  23. #==============================================================================
  24. #  ★ 设定结束 ★
  25. #==============================================================================
  26. module VIPArcher::GLOBAL
  27.   FILENAME = FILEURL + "/" + NAME
  28.   #--------------------------------------------------------------------------
  29.   # ● 储存开关变量数据
  30.   #--------------------------------------------------------------------------
  31.   def self.save_data
  32.     Dir.mkdir(FILEURL) unless FileTest.exist?(FILEURL)
  33.     File.open(FILENAME , "wb") do |file|
  34.       Marshal.dump(make_contents, file)
  35.     end
  36.   end
  37.   #--------------------------------------------------------------------------
  38.   # ● 获取开关变量数据
  39.   #--------------------------------------------------------------------------
  40.   def self.make_contents
  41.     contents = {}
  42.     contents[:switches] = $game_switches
  43.     contents[:variable] = $game_variables
  44.     contents
  45.   end
  46.   #--------------------------------------------------------------------------
  47.   # ● 读取变量数据
  48.   #--------------------------------------------------------------------------
  49.   def self.load_var(id)
  50.     File.open(FILENAME , "rb") do |file|
  51.       game_variables = Marshal.load(file)[:variable]
  52.       $game_variables[id] = game_variables[id]
  53.     end ; rescue
  54.   end
  55.   #--------------------------------------------------------------------------
  56.   # ● 读取开关数据
  57.   #--------------------------------------------------------------------------
  58.   def self.load_sw(id)
  59.     File.open(FILENAME , "rb") do |file|
  60.       game_switches = Marshal.load(file)[:switches]
  61.       $game_switches[id] = game_switches[id]
  62.     end ; rescue
  63.   end
  64.   #--------------------------------------------------------------------------
  65.   # ● 载入 VAR 和 SW 的开关和变量
  66.   #--------------------------------------------------------------------------
  67.   def self.load_game_versw
  68.     VAR.each { |id| load_var(id) } ; SW.each { |id| load_sw(id) }
  69.   end
  70. end
  71. #-------------------------------------------------------------------------------
  72. class << DataManager
  73.   #--------------------------------------------------------------------------
  74.   # ● 设置新游戏
  75.   #--------------------------------------------------------------------------
  76.   alias_method :new_game_data , :setup_new_game
  77.   def setup_new_game
  78.     new_game_data ; VIPArcher::GLOBAL.load_game_versw
  79.   end
  80. end
  81. #-------------------------------------------------------------------------------
  82. class Game_System
  83.   #--------------------------------------------------------------------------
  84.   # ● 读档后的处理
  85.   #--------------------------------------------------------------------------
  86.   alias_method :after_load_data , :on_after_load
  87.   def on_after_load
  88.     after_load_data ; VIPArcher::GLOBAL.load_game_versw
  89.   end
  90. end
  91. #-------------------------------------------------------------------------------
  92. class Game_Interpreter
  93.   #--------------------------------------------------------------------------
  94.   # ● 储存开关变量数据
  95.   #--------------------------------------------------------------------------
  96.   def save_vs_data ; VIPArcher::GLOBAL.save_data end
  97.   #--------------------------------------------------------------------------
  98.   # ● 读取变量数据
  99.   #--------------------------------------------------------------------------
  100.   def load_var(*args)
  101.     args.each { |id| VIPArcher::GLOBAL.load_var(id) }
  102.   end
  103.   #--------------------------------------------------------------------------
  104.   # ● 读取开关数据
  105.   #--------------------------------------------------------------------------
  106.   def load_sw(*args)
  107.     args.each { |id| VIPArcher::GLOBAL.load_sw(id)  }
  108.   end
  109. end
复制代码


补充一下,这个是图片标题脚本里放在Titles1文件夹里的文件。
tedian那个图片是我直接复制重命名的,意思一下。
Titles1.zip (168.07 KB, 下载次数: 51)

Lv5.捕梦者

梦石
10
星屑
39440
在线时间
1914 小时
注册时间
2010-11-14
帖子
3315

R考场第七期纪念奖

2
发表于 2019-4-7 20:47:39 | 只看该作者

Project4.zip (1.59 MB, 下载次数: 79)

测试一下

点评

原来如此,虽然几乎不懂脚本,不过那个sprite25让我明白了为啥自己照猫画虎的改不行了_(:з」∠)_  发表于 2019-4-8 08:57
从使用者的角度来说,不开放自定义选项,碰到其他定制标题窗口指令的脚本还会不兼容,我觉得也不是很好用……  发表于 2019-4-7 22:20
从开发者的角度来说,几个精灵直接叫sprite1啊sprite2这样的,既不方便看也不方便修改(比如你看到的sprite25就是插入在sprite2与sprite3之间的)  发表于 2019-4-7 22:19
不过说实话,这个作者的标题脚本实在是看的很不舒服……  发表于 2019-4-7 22:18

评分

参与人数 2星屑 +50 +1 收起 理由
VIPArcher + 50 认可答案
火锅深处 + 1 完美,目前无问题。每次都是你解答我的疑问.

查看全部评分

用头画头像,用脚写脚本
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-25 19:46

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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