查看: 3500|回复: 8

[有事请教] 求脚本大佬解决脚本地图显示变量问题

[复制链接]
梦石
0
星屑
81
在线时间
9 小时
注册时间
2020-3-15
回帖
6
发表于 2020-3-16 09:08:09 | 显示全部楼层 |阅读模式
悬赏15星屑已解决
本帖最后由 超威绿帽 于 2020-3-16 09:31 编辑

如图,怎么显示多个变量呢,本人脚本一窍不通,现在只能弄一个框显示一个变量,怎么显示多个变量呢?
941490A6-0735-462a-9D4D-9588E83D51B2.png

最佳答案

查看完整内容

我就说我怎么看这脚本越看越熟悉,原来是我当年写的啊, 估计后来被改成文字了,当初写的没记错是现实图标。 稍微改了下就变成多个显示了,具体都有注释,自己研究看看。 [line]1[/line] 话说我上一个回复是做一个框多描述,根据你的要求要多框,简单的方法就是多开一个新的窗口。
梦石
0
星屑
8003
在线时间
1184 小时
注册时间
2007-7-29
回帖
2014
发表于 2020-3-16 09:08:10 | 显示全部楼层
本帖最后由 enghao_lim 于 2020-3-16 20:50 编辑
超威绿帽 发表于 2020-3-16 10:38
没明白,咋么搞呢?在哪一行?我想要显示两个变量,就是两个框


我就说我怎么看这脚本越看越熟悉,原来是我当年写的啊,
估计后来被改成文字了,当初写的没记错是现实图标。
稍微改了下就变成多个显示了,具体都有注释,自己研究看看。
脚本
  1. #------------------------------------------------------------------------
  2. # 非法用户【编写】
  3. #------------------------------------------------------------------------
  4. module LimSimpleWin
  5.   Window = [
  6.     {
  7.       "text" => "小时",
  8.       "switch_id" => 1,
  9.       "variable_id" => 1
  10.     },
  11.     {
  12.       "text" => "分钟",
  13.       "switch_id" => 2,
  14.       "variable_id" => 2
  15.     },
  16.   ]
  17. end
  18. #------------------------------------------------------------------------

  19. # 新建窗口
  20. class Window_Variables < Window_Base
  21.   # 初始化
  22.   def initialize(sequence, text, switch_id, variable_id)
  23.     # 创建大小
  24.     super(448,368 - ((LimSimpleWin::Window.size - sequence - 1) * 48),96,48)
  25.     @sequence = sequence
  26.     @text = text
  27.     @switch_id = switch_id
  28.     @switch_value = nil
  29.     @variable_id = variable_id
  30.     @variable_value = nil
  31.     # 刷新
  32.     refresh
  33.   # 初始化结束
  34.   end
  35.   # 刷新
  36.   def refresh
  37.     # 开关检查
  38.     if @swich_value != $game_switches[@switch_id]
  39.       @switch_value = $game_switches[@switch_id]
  40.       if (@switch_value)
  41.         self.visible = true
  42.       else
  43.         self.visible = false
  44.       end
  45.     end
  46.     # 在图表与变量都有变化的情况下
  47.     if @variable_value != $game_variables[@variable_id]
  48.       # 清楚内容
  49.       self.contents.clear
  50.       # 描绘文字
  51.       self.contents.draw_text(0,0,64,24,@text)
  52.       # 描绘变量,偏右
  53.       self.contents.draw_text(0,0,64,24,$game_variables[@variable_id].to_s,2)
  54.       # 带入变量
  55.       @variable_value = $game_variables[@variable_id]
  56.     # if 结束
  57.     end
  58.   # 刷新结束
  59.   end
  60. # class 结束
  61. end

  62. # 地图生成窗口
  63. class Scene_Map < Scene_Base
  64.   # 生成窗口
  65.   alias new_start start
  66.   def start
  67.     new_start
  68.     @varia_window = []
  69.     for i in 0...LimSimpleWin::Window.size
  70.       w = LimSimpleWin::Window[i]
  71.       @varia_window.push(Window_Variables.new(i, w["text"], w["switch_id"], w["variable_id"]))
  72.     end
  73.   end
  74.   # 刷新窗口
  75.   alias new_update update
  76.   def update
  77.     new_update
  78.     @varia_window.each do |w| w.refresh() end
  79.   end
  80.   # 释放窗口
  81.   alias new_terminate terminate
  82.   def terminate
  83.     @varia_window.each do |w| w.dispose() end
  84.     new_terminate
  85.   end
  86. # class 结束
  87. end
复制代码



话说我上一个回复是做一个框多描述,根据你的要求要多框,简单的方法就是多开一个新的窗口。
回复

使用道具 举报

梦石
0
星屑
8003
在线时间
1184 小时
注册时间
2007-7-29
回帖
2014
发表于 2020-3-16 09:49:29 | 显示全部楼层
self.contents.draw_text 就是文字描绘输出,参数如下:
x坐标,y坐标,宽,高,文字,排列(非强制参数)

既然你已经实现了第一个描绘,那不如试试添加:
  1. self.contents.draw_text(0,24,64,24,$game_variables[你想要的变量数].to_s, 2)
复制代码
试试看呢?
回复

使用道具 举报

梦石
0
星屑
81
在线时间
9 小时
注册时间
2020-3-15
回帖
6
 楼主| 发表于 2020-3-16 10:38:05 | 显示全部楼层
本帖最后由 超威绿帽 于 2020-3-16 10:42 编辑
enghao_lim 发表于 2020-3-16 09:49
self.contents.draw_text 就是文字描绘输出,参数如下:
x坐标,y坐标,宽,高,文字,排列(非强制参数)
...


没明白,咋么搞呢?在哪一行?我想要显示两个变量,就是两个框
回复

使用道具 举报

梦石
3
星屑
7336
在线时间
608 小时
注册时间
2019-9-15
回帖
112

R考场第七期金奖

发表于 2020-3-16 11:41:07 | 显示全部楼层
超威绿帽 发表于 2020-3-16 10:38
没明白,咋么搞呢?在哪一行?我想要显示两个变量,就是两个框

可以麻烦吧整个脚本发一下嘛 方便改一些
********
回复

使用道具 举报

梦石
0
星屑
81
在线时间
9 小时
注册时间
2020-3-15
回帖
6
 楼主| 发表于 2020-3-16 15:14:01 | 显示全部楼层
本帖最后由 超威绿帽 于 2020-3-16 15:23 编辑

[pre lang="ruby"]#encoding:utf-8
#------------------------------------------------------------------------
#■ 地图上显示变量
#   原作者:非法用户  lqn619修改并增加开关控制显示功能  脚本来自于66RPG
#------------------------------------------------------------------------
  # 使用者设定部分
  $text = "小时"       #描述文字
  $v_id = 1           #显示变量的编号
  $s_id = 9           #控制是否显示的开关
#------------------------------------------------------------------------

class Window_Variables < Window_Base
  def initialize
    super(448,368,96,48)                    # 创建大小
    @text = ""                              # 初始化内容
    @variable = 0
    refresh                                 #调用refresh方法(下文定义)
  end
  def refresh                               #定义refresh方法
    if $game_switches[$s_id] == false       #判断是否显示窗口
       self.visible = false
    else
      self.visible = true
    end
    if @text != $text or @variable != $game_variables[$v_id]     #内容变化时
      self.contents.clear                                        #清除窗口的位图
      self.contents.draw_text(0,0,64,24,$text)                   #重绘
      self.contents.draw_text(0,0,64,24,$game_variables[$v_id].to_s,2)
      self.contents.draw_text(0,24,64,24,$game_variables[1].to_s, 2)
      @type = $type                                              # 代入当前内容
      @owner = $owner
    end   
  end
end


class Scene_Map < Scene_Base
  alias new_start start                     #生成窗体
  def start
    new_start
    @varia_window = Window_Variables.new
  end
  alias new_update update                   #更新窗体
  def update
    new_update
    @varia_window.refresh
  end
  alias new_terminate terminate             #消除窗体
  def terminate
    @varia_window.dispose
    new_terminate
  end
end
啊,这....
5F072D00-C883-4ca2-A1F8-6E3480946871.png

点评

是vx没有才对,因为部分通用,我是用ace来改的,vx没安装。  发表于 2020-3-16 20:52
一时没注意ace没有show和hide的函数,改成用visible了。  发表于 2020-3-16 20:51
这个出现问题是带入新的脚本那个情况下..  发表于 2020-3-16 15:25
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部