Project1

标题: 请教,这个脚本,可否把呼出按键改为一个呼出指令? [打印本页]

作者: m8663431    时间: 2016-7-30 13:07
标题: 请教,这个脚本,可否把呼出按键改为一个呼出指令?
本帖最后由 m8663431 于 2016-7-30 14:16 编辑

如题,这个脚本很强大,但游戏一开始就跳出来,很难结合游戏的内容去制作··· 能否改为呼出不是按键S,而是一个呼出脚本的指令,由事件控制?
本人不懂脚本,请大神指点



RUBY 代码复制
  1. #==============================================================================
  2. # ** 变量槽显示
  3. #  作者:影月千秋
  4. #  适用:VA
  5. #  要求:Smomo Core 1.1+
  6. #------------------------------------------------------------------------------
  7. # * 简介
  8. #   本脚本用以在菜单或地图界面显示一个值槽,它的进度由变量控制
  9. #------------------------------------------------------------------------------
  10. # * 使用方法
  11. #   插入到其他脚本以下,Main以上,按要求在下方设定即可
  12. #==============================================================================
  13. # * 更新
  14. #   V 1.4 2014.08.09 图标型显示不能显示半个图标的修正
  15. #   V 1.3 2014.05.10 支持图标型显示
  16. #   V 1.2 2014.05.01 劳动节 现在支持更丰富的显示效果了
  17. #   V 1.1 2014.02.08 功能微调
  18. #   V 1.0 2013.12.?? 新建
  19. #==============================================================================
  20. # * 声明
  21. #   本脚本来自"影月千秋", 使用/修改/转载请保留此信息
  22. #==============================================================================
  23.  
  24. if $smomo.nil? || $smomo["Core"].nil? || $smomo["Core"] < 1.1
  25.   msgbox "请先安装Smomo脚本核心!"; %x!start [url]http://tinyurl.com/l9kvg2p![/url]
  26. elsif $smomo["MapVarBar"].nil?
  27. $smomo["MapVarBar"] = 1.3
  28.  
  29. #==============================================================================
  30. # ** MapVarBar
  31. #------------------------------------------------------------------------------
  32. # 变量槽的设定区域
  33. #==============================================================================
  34. module Smomo::MapVarBar
  35.  
  36.   SWI = 0
  37.   # 游戏中决定是否在地图显示窗口的开关
  38.   # 开关打开时,才会显示 如果设为0 则一直显示
  39.  
  40.   POS = 2
  41.   # 在地图中变量窗口显示的位置
  42.   #  0不使用 1左上 2左下 3右上 4右下
  43.  
  44.   KEY = :Y
  45.   # 玩家在地图界面显示/隐藏窗口的键,:Y一般为S键,不使用请设为0
  46.  
  47.   VAR = [
  48.   #============================================================================
  49.   # ** 填写格式
  50.   #----------------------------------------------------------------------------
  51.   # * 变量槽模式
  52.   #
  53.   # [当前进度变量, 最大值变量, 附加文本, 基础值, 初始最大值, 进度显示方式,
  54.   # 渐变色1, 渐变色2, 文本颜色, 进度颜色],
  55.   #
  56.   # 变量需要填写变量ID 附加文本形如 "击破数"
  57.   # 附加文本允许使用控制符 因此可以使用图标
  58.   # 基础值:计算比例时,先把当前值加上基础值再进行计算
  59.   # 初始最大值:因为游戏开始时变量为0 不能计算比例(除数不为零) 临时使用这个
  60.   #   作为最大值 当最大值变量不为0时 此值无意义
  61.   # 进度显示方式:有三种选项
  62.   #  '-'   不显示值 只显示附加文本
  63.   #  '/'   在附加文本后 以 69/731 的方式显示进度
  64.   #  '%'   在附加文本后 以 37.1% 的方式显示进度(精确到一位小数)
  65.   # 渐变色1 渐变色2 :描绘值槽使用的渐变颜色*
  66.   # 文本颜色 进度颜色:描绘附加文本和进度值使用的颜色*
  67.   #
  68.   # * 颜色请填写一个整数,参照事件【显示文章】中转义字符【\C[]】的参数
  69.   #
  70.   # 非必填项中 如果想只写后面不写前面,就用 nil 占位
  71.   #
  72.   # 前三项为必填项!
  73.   #----------------------------------------------------------------------------
  74.   # * 图标模式
  75.   #
  76.   # [当前进度变量, 附加文本, 基础值, 图标ID, 步长, 文本颜色],
  77.   #
  78.   # 图标ID可在数据库中查看 例: 3、28、31、67
  79.   # 步长: 一个图标所表示的进度量,即多少量绘制一整个图标
  80.   #  举例 用 爱心符号 表示当前生命(九号变量控制)步长为20
  81.   #  当 九号变量 在20-40之间 绘制一个爱心和一个不完整的爱心
  82.   #   在 40-60之间 绘制两个爱心和一个不完整的爱心
  83.   #    刚好60 绘制三个爱心
  84.   #     诸如此类
  85.   #
  86.   # 前五项为必填项!
  87.   #============================================================================
  88.   # ** 示例
  89.   # 将光标定位在下面的某一行 按Ctrl+D 再按Ctrl+Q 然后填写数据项 就可以直接生效了
  90. #~     [1, 2, "击破数", 0, 1000, '/', 16, 12, 4, 9],
  91. #~     [1, 2, "击破数"],
  92. #~     [1, 2, "击破数", nil, nil, '%'],
  93. #~     [1, 2, "击破数", 20, nil, '-', nil, nil, nil, 15],
  94. #~     [9, "生命", 0, 122, 20],
  95.   #============================================================================
  96.     [1, 2, "\\I[9]击破数"],
  97.     [3, 4, "完成度"],
  98.     [5, 6, "熟练等级"],
  99.     [7, 8, "远征", nil, nil, '%'],
  100.     [9, "生命", 0, 122, 20],
  101.   ] #<-|
  102.  
  103.   D_BA = 0    # 默认基础值
  104.   D_OM = 1000 # 默认初始最大值 不能为零
  105.   D_DM = '/'  # 默认进度显示方式
  106.   D_C1 = 16   # 默认渐变色1
  107.   D_C2 = 12   # 默认渐变色2
  108.   D_CT = 4    # 默认文本颜色
  109.   D_CR = 9    # 默认进度颜色
  110.  
  111.   T_TEXT  = "游戏进度"
  112.   # 在窗口最上方显示的文字 不希望显示的话使用 ""
  113.   T_COLOR = 2
  114.   # 如果显示 使用什么颜色
  115.  
  116.   BV = true
  117.   # 是否描绘窗口本身
  118.  
  119. #=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+#
  120. #-------------                     --------------------------------------------#
  121.                "请勿跨过这块区域"
  122. #-------------                     --------------------------------------------#
  123. #+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=#
  124.   ICONNUMBER = 0
  125.   VAR.each do |bar|
  126.     ICONNUMBER += 1 if bar[1].is_a?(String)
  127.     bar[3] ||= D_BA
  128.     bar[4] ||= D_OM
  129.     bar[5] ||= D_DM
  130.     bar[6] ||= D_C1
  131.     bar[7] ||= D_C2
  132.     bar[8] ||= D_CT
  133.     bar[9] ||= D_CR
  134.   end
  135. end
  136.  
  137. #==============================================================================
  138. # ** Window_MapVarBar
  139. #==============================================================================
  140. class Window_MapVarBar < Window_Base
  141.   include Smomo::MapVarBar
  142.   #--------------------------------------------------------------------------
  143.   # * 初始化对象
  144.   #--------------------------------------------------------------------------
  145.   def initialize
  146.     fh = fitting_height (T_TEXT == "" ? 0 : 1) + VAR.size + ICONNUMBER
  147.     case POS
  148.     when 1
  149.       super(0, 20, 160, fh)
  150.     when 2
  151.       super(0, Graphics.height - fh, 160, fh)
  152.     when 3
  153.       super(Graphics.width - 160, 20, 160, fh)
  154.     when 4
  155.       super(Graphics.width - 160, Graphics.height - fh, 160, fh)
  156.     end
  157.     self.openness = 0
  158.     self.opacity = 0 unless BV
  159.     @showing = true
  160.     refresh
  161.   end
  162.   #--------------------------------------------------------------------------
  163.   # * 更新
  164.   #--------------------------------------------------------------------------
  165.   def update
  166.     super
  167.     if Smomo::MapVarBar::SWI == 0 || $game_switches[Smomo::MapVarBar::SWI]
  168.       @showing = !@showing if Input.trigger?(Smomo::MapVarBar::KEY)
  169.       if @showing
  170.         open if close?
  171.         refresh if $game_map.need_refresh
  172.       else
  173.         close if open?
  174.       end
  175.     else
  176.       close if open?
  177.     end
  178.   end
  179.   #--------------------------------------------------------------------------
  180.   # * 刷新
  181.   #--------------------------------------------------------------------------
  182.   def refresh
  183.     contents.clear
  184.     unless T_TEXT == ""
  185.       change_color text_color(T_COLOR)
  186.       draw_text(0, 0, contents.width, line_height, T_TEXT, 1)
  187.     end
  188.     VAR.each_with_index do |(a, b, c, d, e, f, g, h, i, j), id|
  189.       b.is_a?(String) ?
  190.       draw_with_icon(id, a, b, c, d, e, f) :
  191.       draw(id, g, h, i, j, c, *make_rate_n_text(f, a, b, d, e))
  192.     end
  193.   end
  194.   #--------------------------------------------------------------------------
  195.   # * 生成进度值
  196.   #--------------------------------------------------------------------------
  197.   def make_rate_n_text(display, current, max, base, origin_max)
  198.     c = $game_variables[current] + base
  199.     m = $game_variables[max] == 0 ? origin_max : $game_variables[max]
  200.     [rate = c.to_f / m.to_f,
  201.     case display
  202.     when '-'; ""
  203.     when '/'; "#{c}/#{m}"
  204.     when '%'; "#{(rate * 1000).round.to_f / 10.0}%"
  205.     end]
  206.   end
  207.   #--------------------------------------------------------------------------
  208.   # * 进度槽式描绘
  209.   #--------------------------------------------------------------------------
  210.   def draw(index, c1, c2, ct, cr, text, rate, atext)
  211.     pos = fitting_height(index - (T_TEXT == "" ? 1 : 0))
  212.     draw_gauge(0, pos, contents.width, rate, text_color(c1), text_color(c2))
  213.     draw_var_text(ct, pos, text, cr, atext)
  214.   end
  215.   #--------------------------------------------------------------------------
  216.   # * 图标式描绘
  217.   #--------------------------------------------------------------------------
  218.   def draw_with_icon(index, current, text, base, id, step, ct)
  219.     pos = fitting_height(index - (T_TEXT == "" ? 1 : 0))
  220.     ct = ct.is_a?(String) ? D_CT : ct
  221.     draw_var_text(ct, pos, text)
  222.     pos += line_height
  223.     (($game_variables[current] + base) / step).times do |i|
  224.       draw_icon(id, 24 * i, pos)
  225.     end
  226.     if ($game_variables[current] + base) % step != 0
  227.       x = ($game_variables[current] + base) / step
  228.       draw_icon(id, 24 * x, pos)
  229.       contents.clear_rect(24 * x + 12, pos, 12, 24)
  230.     end
  231.   end
  232.   #--------------------------------------------------------------------------
  233.   # * 通用描绘文字
  234.   #--------------------------------------------------------------------------
  235.   def draw_var_text(ct, pos, text, cr = nil, atext = nil)
  236.     make_font_smaller
  237.     change_color(text_color(ct))
  238.     text = convert_escape_characters(text)
  239.     oo = {:x => 0, :y => pos, :new_x => 0, :height => calc_line_height(text)}
  240.     process_character(text.slice!(0, 1), text, oo) until text.empty?
  241.     if cr
  242.       change_color(text_color(cr))
  243.       draw_text(0, pos, contents.width, line_height, atext, 2)
  244.     end
  245.     make_font_bigger
  246.   end
  247. end
  248. #==============================================================================
  249. # ** Scene_Map
  250. #==============================================================================
  251. class Scene_Map
  252.   _def_ :create_all_windows do |*args|
  253.     @mo_var_bar_window = Window_MapVarBar.new unless Smomo::MapVarBar::POS == 0
  254.   end
  255.   _def_ :call_menu, :b do |*args|
  256.     @mo_var_bar_window.close
  257.   end
  258. end
  259.  
  260. else # unless $smomo["VarBar"]
  261.   msgbox "请不要重复加载此脚本 : )\n(变量槽显示 MapVarBar)"
  262. end # unless $smomo["VarBar"]
  263.  
  264. #==============================================================================#
  265. #=====                        =================================================#
  266.            "脚 本 尾"
  267. #=====                        =================================================#
  268. #==============================================================================#

作者: 1561496327    时间: 2016-7-30 20:22
  SWI = 0
  # 游戏中决定是否在地图显示窗口的开关
  # 开关打开时,才会显示 如果设为0 则一直显示
  设定一下开关不就可以了吗
作者: m8663431    时间: 2016-7-31 04:01
@qq546431664 SWI = 0是一个开关的编号?





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