Project1

标题: 【应求发布】变量槽显示 [打印本页]

作者: 余烬之中    时间: 2013-11-3 17:15
标题: 【应求发布】变量槽显示
本帖最后由 余烬之中 于 2014-7-31 15:32 编辑

此脚本已归于合集
在地图画面显示一个变量值槽,拥有大量自定义设定,显示状态也可以在脚本/游戏中由作者/玩家更改
应求发布
补上预览图

使用帮助见脚本内置说明
作者: kuerlulu    时间: 2013-11-3 22:09
表示学到了将数据转化为2进制进行亦或运算的方法@( ̄- ̄)@
作者: 我在孤岛等你    时间: 2013-11-3 22:48
能给图吗?
作者: 熊喵酱    时间: 2013-11-4 01:44
http://rpg.blue/thread-252003-1-1.html
恩...............   芙蕾娅已經寫過一個惹......
作者: 鑫晴    时间: 2014-5-2 23:43
本帖最后由 鑫晴 于 2014-5-2 23:46 编辑



尼玛,我这该死的强迫症




你看,现在舒服多了吧!




你要相信,我只是一时手贱而已



RUBY 代码复制
  1. #==============================================================================
  2. # ■ 变量槽显示
  3. #  作者:影月千秋
  4. #  适用:VA
  5. #------------------------------------------------------------------------------
  6. # ● 简介
  7. #   本脚本用以在菜单或地图界面显示一个值槽,它的进度由变量控制
  8. #------------------------------------------------------------------------------
  9. # ● 使用方法
  10. #   插入到其他脚本以下,Main以上,按要求在下方设定即可
  11. #==============================================================================
  12. # ● 更新
  13. #   V 1.2 2014.05.01 劳动节 现在支持更丰富的显示效果了
  14. #   V 1.1 2014.02.08 功能微调
  15. #   V 1.0 2013.12.?? 新建
  16. #==============================================================================
  17. # ● 声明
  18. #   本脚本来自【影月千秋】,使用、修改和转载请保留此信息
  19. #==============================================================================
  20.  
  21. $smomo ||= {}
  22. if $smomo["MapVarBar"].nil?
  23. $smomo["MapVarBar"] = true
  24.  
  25. #==============================================================================
  26. # ■ MapVarBar
  27. #------------------------------------------------------------------------------
  28. #   变量槽的设定区域
  29. #==============================================================================
  30. module Smomo::MapVarBar
  31.  
  32.   SWI = 0
  33.   # 游戏中决定是否在地图显示窗口的开关
  34.   # 开关打开时,才会显示 如果设为0 则一直显示
  35.  
  36.   POS = 3
  37.   # 在地图中变量窗口显示的位置
  38.   #  0不使用 1左上 2左下 3右上 4右下
  39.  
  40.   KEY = :Y
  41.   # 玩家在地图界面显示/隐藏窗口的键,:Y一般为S键,不使用请设为0
  42.  
  43.  
  44.  
  45. #==============================================================================
  46. # 填写格式
  47.  
  48. # [当前进度变量, 最大值变量, 附加文本, 基础值, 初始最大值, 进度显示方式, 渐变色1,
  49. # 渐变色2, 文本颜色, 进度颜色],
  50. # 前三项为必填项
  51.  
  52. # 变量需要填写变量ID 附加文本形如 "击破数"
  53. # 基础值:计算比例时,先把当前值加上基础值再进行计算
  54. # 初始最大值:因为游戏开始时变量为0 不能计算比例(除数不为零) 临时使用这个作为
  55. # 最大值:当最大值变量不为0时 此值无意义
  56. # 进度显示方式:有三种选项
  57. # '-'   不显示值 只显示附加文本
  58. # '/'   在附加文本后 以 69/731 的方式显示进度
  59. # '%'   在附加文本后 以 37.1% 的方式显示进度(精确到一位小数)
  60. # 渐变色1 渐变色2 :描绘值槽使用的渐变颜色*
  61. # 文本颜色 进度颜色:描绘附加文本和进度值使用的颜色*
  62.  
  63. # * 颜色请填写一个整数,参照事件【显示文章】中转义字符【\C[]】的参数
  64.  
  65. # 非必填项中 如果想只写后面不写前面,就用 nil 占位
  66.  
  67. # 示例
  68. #     [1, 2, "击破数", 0, 1000, '/', 16, 12, 4, 9],
  69. #     [1, 2, "击破数"],
  70. #     [1, 2, "击破数", nil, nil, '%'],
  71. #     [1, 2, "击破数", 20, nil, '-', nil, nil, nil, 15],
  72. #------------------------------------------------------------------------------
  73. VAR = [
  74.     [1, 2, "击破数"],
  75.     [3, 4, "完成度"],
  76.     [5, 6, "熟练等级"],
  77.     [7, 8, "远征", nil, nil, '%'],
  78.        ]
  79.  
  80.   D_BA = 0    # 默认基础值
  81.   D_OM = 1000 # 默认初始最大值
  82.   D_DM = '/'  # 默认进度显示方式
  83.   D_C1 = 16   # 默认渐变色1
  84.   D_C2 = 12   # 默认渐变色2
  85.   D_CT = 4    # 默认文本颜色
  86.   D_CR = 9    # 默认进度颜色
  87.  
  88. #==============================================================================
  89.  
  90.  
  91.   T_TEXT  = "游戏进度"
  92.   # 在窗口最上方显示的文字 不希望显示的话使用 ""
  93.   T_COLOR = 2
  94.   # 如果显示 使用什么颜色
  95.  
  96. #=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+#
  97. #------------------------------------------------------------------------------#
  98. #                               请勿跨过这块区域                                #
  99. #------------------------------------------------------------------------------#
  100. #+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=#
  101.   VAR.each do |bar|
  102.     bar[3] ||= D_BA
  103.     bar[4] ||= D_OM
  104.     bar[5] ||= D_DM
  105.     bar[6] ||= D_C1
  106.     bar[7] ||= D_C2
  107.     bar[8] ||= D_CT
  108.     bar[9] ||= D_CR
  109.   end
  110. end
  111.  
  112. #==============================================================================
  113. # ■ Window_MapVarBar
  114. #==============================================================================
  115. class Window_MapVarBar < Window_Base
  116.   include Smomo::MapVarBar
  117.   #--------------------------------------------------------------------------
  118.   # ● 初始化对象
  119.   #--------------------------------------------------------------------------
  120.   def initialize
  121.     fh = fitting_height (T_TEXT == "" ? 0 : 1) + VAR.size
  122.     case POS
  123.     when 1
  124.       super(0, 20, 160, fh)
  125.     when 2
  126.       super(0, Graphics.height - fh, 160, fh)
  127.     when 3
  128.       super(Graphics.width - 160, 20, 160, fh)
  129.     when 4
  130.       super(Graphics.width - 160, Graphics.height - fh, 160, fh)
  131.     end
  132.     self.openness = 0
  133.     @showing = true
  134.     refresh
  135.   end
  136.   #--------------------------------------------------------------------------
  137.   # ● 更新
  138.   #--------------------------------------------------------------------------
  139.   def update
  140.     super
  141.     if Smomo::MapVarBar::SWI == 0 || $game_switches[Smomo::MapVarBar::SWI]
  142.       @showing = !@showing if Input.trigger?(Smomo::MapVarBar::KEY)
  143.       if @showing
  144.         open if close?
  145.         refresh if $game_map.need_refresh
  146.       else
  147.         close if open?
  148.       end
  149.     else
  150.       close if open?
  151.     end
  152.   end
  153.   #--------------------------------------------------------------------------
  154.   # ● 刷新
  155.   #--------------------------------------------------------------------------
  156.   def refresh
  157.     contents.clear
  158.     unless T_TEXT == ""
  159.       change_color text_color(T_COLOR)
  160.       draw_text(0, 0, contents.width, line_height, T_TEXT, 1)
  161.     end
  162.     make_font_smaller
  163.     VAR.each_with_index do |(c, m, t, b, o, d, c1, c2, ct, cr), i|
  164.       draw(i, c1, c2, ct, cr, t, *make_rate_n_text(d, c, m, b, o))
  165.     end
  166.     make_font_bigger
  167.   end
  168.   #--------------------------------------------------------------------------
  169.   # ● 生成进度值
  170.   #--------------------------------------------------------------------------
  171.   def make_rate_n_text(display, current, max, base, origin_max)
  172.     c = $game_variables[current] + base
  173.     m = $game_variables[max] == 0 ? origin_max : $game_variables[max]
  174.     [rate = c.to_f / m.to_f,
  175.     case display
  176.     when '-'; ""
  177.     when '/'; "#{c}/#{m}"
  178.     when '%'; "#{(rate * 1000).round.to_f / 10.0}%"
  179.     end]
  180.   end
  181.   #--------------------------------------------------------------------------
  182.   # ● 描绘
  183.   #--------------------------------------------------------------------------
  184.   def draw(index, c1, c2, ct, cr, text, rate, atext)
  185.     pos = fitting_height(index - (T_TEXT == "" ? 1 : 0))
  186.     draw_gauge(0, pos, contents.width, rate, text_color(c1), text_color(c2))
  187.     change_color(text_color(ct))
  188.     draw_text(0, pos, contents.width, line_height, text)
  189.     change_color(text_color(cr))
  190.     draw_text(0, pos, contents.width, line_height, atext, 2)
  191.   end
  192. end
  193. #==============================================================================
  194. # ■ Scene_Map
  195. #==============================================================================
  196. class Scene_Map
  197.   _def_ :create_all_windows do
  198.     @mo_var_bar_window = Window_MapVarBar.new unless Smomo::MapVarBar::POS == 0
  199.   end
  200. end
  201.  
  202. else # unless $smomo["VarBar"]
  203.   msgbox "请不要重复加载此脚本 : )\n(变量槽显示 MapVarBar)"
  204. end # unless $smomo["VarBar"]
  205.  
  206. #==============================================================================#
  207. #=====                        =================================================#
  208.            "■ 脚 本 尾"
  209. #=====                        =================================================#
  210. #==============================================================================#




作者: 余烬之中    时间: 2014-5-3 07:57
本帖最后由 余烬之中 于 2014-5-3 08:00 编辑
鑫晴 发表于 2014-5-2 23:43
#==============================================================================
# ■ 变 ...


其实一开始的模板是这样的:
RUBY 代码复制
  1. VAR = [
  2. # [变量1, 变量2, "提示文本"],
  3.   [4, 8, "击破度"],
  4.   [1, 3, "等级"],
  5. ]

但是后来发现要加上一些说明…………
………………
……于是你懂的

另外 对于带有 #~ 的注释 如果你把键盘光标定位在那一行 然后按Ctrl + D 就可以复制并粘贴那一行 然后Ctrl + Q 就可以取消注释
作者: 鑫晴    时间: 2014-5-3 12:48

作者: 余烬之中    时间: 2014-5-3 12:58
鑫晴 发表于 2014-5-3 12:48

从未遇到那样的情况
我想你需要一个附件
T.zip (1.43 MB, 下载次数: 58)
作者: 鑫晴    时间: 2014-5-3 13:14
余烬之中 发表于 2014-5-3 12:58
从未遇到那样的情况
我想你需要一个附件

我知道哪里出问题了!

RUBY 代码复制
  1. D_OM = 1    # 默认初始最大值



我不小心把这个写成了0


orz...
作者: 鑫晴    时间: 2014-5-3 14:25
本帖最后由 鑫晴 于 2014-5-3 14:52 编辑

能否再添加一个功能。

只显示附加文本和数值或者图标。

相当于显示变量

       游戏进度

击破数                          390/709

远征                             5.8%

节操                             5个







作者: 黑舞嗜    时间: 2014-5-3 16:12
lz能否在每个变量前面加入一个显示图标的功能呢,icon或是Pictures里的图都行,谢谢了
作者: 黑舞嗜    时间: 2014-5-3 16:26
本帖最后由 黑舞嗜 于 2014-5-3 16:50 编辑

报错额。。以为是冲突特地开了一个新建工程,发现一样。。。

额,用了那个脚本核心好了。。。

QQ截图20140503162438.png (15.7 KB, 下载次数: 9)

QQ截图20140503162438.png





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