查看: 2196|回复: 2

[已经解决] 求指点一下如何提出变量自己输入的文字

[复制链接]
梦石
0
星屑
606
在线时间
797 小时
注册时间
2014-7-1
回帖
501

开拓者

发表于 2016-5-8 11:11:19 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 jiushiainilip19 于 2016-5-9 00:16 编辑

自己摸索了一下午 搜索了一些资料 结果改成这样 。。。不知道还有方法更简便一点吗?

还是想问下如何直接将变量里面的文字说明直接输出来!
[pre lang="ruby"]
#开关显示窗口
$不显示金钱窗口=1073
#需要显示的变量号
#XX是变量对应游戏的文字数值
$需求=[27,57,32,60,59,58,3841,99,3883,1107]
class Game_Variables
  def []=(variable_id, value)
    if variable_id <= 5000
      # 变量获得提示
      $需求.each do |x|
      if variable_id == x && $game_switches[$不显示金钱窗口]==false
        unless $game_temp.in_battle
        old_value = self[variable_id]
        value_changed = value - old_value
        carol3_66RPG = Window_Base.new((640-160)/2,128,180,100)
        carol3_66RPG.contents = Bitmap.new(carol3_66RPG.width - 32, carol3_66RPG.height - 32)
        if value_changed >= 0
          carol3_66RPG.contents.draw_text(0,0,240,32,"XX+:"+value_changed.abs.to_s) if variable_id ==27
          carol3_66RPG.contents.draw_text(0,0,240,32,"XX+:"+value_changed.abs.to_s) if variable_id ==57
          carol3_66RPG.contents.draw_text(0,0,240,32,"XX+:"+value_changed.abs.to_s) if variable_id ==32
          carol3_66RPG.contents.draw_text(0,0,240,32,"XX+:"+value_changed.abs.to_s) if variable_id ==60
          carol3_66RPG.contents.draw_text(0,0,240,32,"XX+:"+value_changed.abs.to_s) if variable_id ==59
          carol3_66RPG.contents.draw_text(0,0,240,32,"XX+:"+value_changed.abs.to_s) if variable_id ==58
          carol3_66RPG.contents.draw_text(0,0,240,32,"XX+:"+value_changed.abs.to_s) if variable_id ==3841
          carol3_66RPG.contents.draw_text(0,0,240,32,"XX+:"+value_changed.abs.to_s) if variable_id ==99
          carol3_66RPG.contents.draw_text(0,0,240,32,"XX+:"+value_changed.abs.to_s) if variable_id ==3883
          carol3_66RPG.contents.draw_text(0,0,240,32,"XX+:"+value_changed.abs.to_s) if variable_id ==1107
          #——声效,可以自己改
          Audio.se_play("Audio/SE/"+"006-System06",80,100)
        else
          carol3_66RPG.contents.draw_text(0,0,240,32,"XX-:"+value_changed.abs.to_s) if variable_id ==27
          carol3_66RPG.contents.draw_text(0,0,240,32,"XX-:"+value_changed.abs.to_s) if variable_id ==57
          carol3_66RPG.contents.draw_text(0,0,240,32,"XX-:"+value_changed.abs.to_s) if variable_id ==32
          carol3_66RPG.contents.draw_text(0,0,240,32,"XX-:"+value_changed.abs.to_s) if variable_id ==60
          carol3_66RPG.contents.draw_text(0,0,240,32,"XX-:"+value_changed.abs.to_s) if variable_id ==59
          carol3_66RPG.contents.draw_text(0,0,240,32,"XX-:"+value_changed.abs.to_s) if variable_id ==58
          carol3_66RPG.contents.draw_text(0,0,240,32,"XX-:"+value_changed.abs.to_s) if variable_id ==3841
          carol3_66RPG.contents.draw_text(0,0,240,32,"XX-:"+value_changed.abs.to_s) if variable_id ==3841
          carol3_66RPG.contents.draw_text(0,0,240,32,"XX-:"+value_changed.abs.to_s) if variable_id ==99
          carol3_66RPG.contents.draw_text(0,0,240,32,"XX-:"+value_changed.abs.to_s) if variable_id ==3883
          carol3_66RPG.contents.draw_text(0,0,240,32,"XX-:"+value_changed.abs.to_s) if variable_id ==1107
          #——声效,可以自己改
          Audio.se_play("Audio/SE/"+"005-System05",80,100)
        end     
        carol3_66RPG.opacity = 160
        for i in 0..30
          Graphics.update
        end
        for i in 0..10
          carol3_66RPG.opacity -= 30
          carol3_66RPG.contents_opacity -= 30
          Graphics.update
        end
        carol3_66RPG.dispose
      end
    end
  end
  
      @data[variable_id] = value
    end
  end
end
[/pre]
QQ截图20160509110758.png

评分

参与人数 1星屑 +35 收起 理由
RyanBern + 35 手动认可奖励

查看全部评分

学习使我疲劳,打工使我疲惫,恋爱使我伤身,吸烟伤我肺腑,饮酒损我形象,旅游使我破费,月底不见铜板,只有在论坛里面看看各种大佬才能使我进去
梦石
0
星屑
9557
在线时间
5074 小时
注册时间
2013-6-21
回帖
3459

开拓者贵宾剧作品鉴家

发表于 2016-5-9 08:45:50 | 显示全部楼层
楼主的脚本还需要进一步学习。

下面是我写的这个。没测试,可能有笔误,楼主看到哪里不能运行可以自行修正

[pre lang="Ruby"]module RB
  # 打开 X 号开关后屏蔽变量提示
  No_Variable_Window = 5

  # 监视的变量
  Variables_Monitor = [27, 57, 32, 60, 59, 58, 3841, 99, 3883, 1107]

end

class Game_Variables
  include RB
  alias rb_assign_160509 []=
  def []=(id, value)
    on_changing(id, value)
    rb_assign_160509(id, value)
  end
  def on_changing(id, value)
    return if $game_switches[No_Variable_Window] || !Varables_Monitor.include?(id) || !$game_temp.in_battle
    old_value = self[id]
    value_changed = value - old_value
    var_window = Window_Base.new((640-160)/2,128,180,100)
    var_window.contents = Bitmap.new(var_window.width - 32, var_window.height - 32)
    text = sprintf("XX%+d", value_changed)
    var_window.contents.draw_text(0,0,148,32,text)
    se_filename = value_changed > 0 "006-System06" : "005-System05"
    Audio.se_play("Audio/SE/#{se_filename}", 80, 100)
    30.times { Graphics.update }
    10.times { var_window.opacity -= 30; var_window.contents_opacity -= 30; Graphics.update; }
    var_window.dispose
  end
end
[/pre]

点评

剩下的我自己去学习!3Q!  发表于 2016-5-9 12:35

评分

参与人数 1星屑 +20 收起 理由
jiushiainilip19 + 20 塞糖

查看全部评分

回复

使用道具 举报

梦石
0
星屑
606
在线时间
797 小时
注册时间
2014-7-1
回帖
501

开拓者

 楼主| 发表于 2016-5-9 10:13:51 | 显示全部楼层
本帖最后由 jiushiainilip19 于 2016-5-9 11:19 编辑

非常感谢 一些错误已经更正了 不过还有个问题
[pre lang="ruby"]text = sprintf("XX%+d", value_changed)[/pre]

这个好像不能对应变量ID中的文字进行输出   只能输出指定"XX%+d"中的XX

这个XX是固定死的,,,

比如变量1=灵魂   变量2=面包  变量3=坦克 等等。。。等等。。。。


或者我直接用分歧的方法去判断text对应的监视变量 修改后结果

[pre lang="ruby"]
module RB
  # 打开 X 号开关后屏蔽变量提示
  No_Variable_Window = 1073

  # 监视的变量
  Variables_Monitor = [27, 57, 32, 60, 59, 58, 3841, 99, 3883, 1107]

end

class Game_Variables
  include RB
  alias rb_assign_160509 []=
  def []=(id, value)
    on_changing(id, value)
    rb_assign_160509(id, value)
  end
  def on_changing(id, value)
    return if $game_switches[No_Variable_Window] || !Variables_Monitor.include?(id) || $game_temp.in_battle
    old_value = self[id]
    value_changed = value - old_value
    var_window = Window_Base.new((640-160)/2,128,180,100)
    var_window.contents = Bitmap.new(var_window.width - 32, var_window.height - 32)
    case id
     when 27
      text = sprintf("魂力%+d", value_changed)
     when 57
      text = sprintf("声望%+d", value_changed)
     when 32
      text = sprintf("阅历%+d", value_changed)
     when 60
      text = sprintf("仙魂%+d", value_changed)
     when 59
      text = sprintf("地魂%+d", value_changed)
     when 58
      text = sprintf("天魂%+d", value_changed)
     when 3841
      text = sprintf("人策%+d", value_changed)
     when 99
      text = sprintf("战力%+d", value_changed)
     when 3883
      text = sprintf("战技%+d", value_changed)
     when 1107
      text = sprintf("镖车难度%+d", value_changed)  
    else
      text = ""
    end
   
    var_window.contents.draw_text(0,0,148,32,text)
    se_filename = value_changed > 0 ? "006-System06" : "005-System05"
    Audio.se_play("Audio/SE/#{se_filename}", 80, 100)
    30.times { Graphics.update }
    10.times { var_window.opacity -= 30; var_window.contents_opacity -= 30; Graphics.update; }
    var_window.dispose
  end
end
[/pre]

点评

看了下存档使用的sprintf 明白了些 多谢RB叔指教!!!  发表于 2016-5-9 15:37
sprintf("%s%+d", $data_system.variables[id], value_changed)  发表于 2016-5-9 14:15
学习使我疲劳,打工使我疲惫,恋爱使我伤身,吸烟伤我肺腑,饮酒损我形象,旅游使我破费,月底不见铜板,只有在论坛里面看看各种大佬才能使我进去
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部