Project1

标题: 【XP】顯示的數值永遠少1 [打印本页]

作者: 銀藍色的零    时间: 2011-12-26 21:51
标题: 【XP】顯示的數值永遠少1
我使用了柳大的腳本
可以在地圖上顯示某一變數
我要使顯示的這個變數永遠少1
也就是說~
實際數值是1
但顯示為0
實際數值是2
顯示為1
要怎麼改呢?


附上腳本
  1. #==========================================================================
  2. # 本脚本来自www.66rpg.com,用于任何游戏请保留此信息。
  3. #==========================================================================

  4. VAR_SWITCH = 26          # 26号开关打开此脚本才工作,关闭则停止运算,并且透明
  5. VAR_REFRESH_SWITCH = 27  # 27号开关控制强制刷新,使用时机:1、把窗口由透明变为不透明(包括第一次使用时),2、游戏中用脚本更改了$var

  6. $var = []
  7. $var = [[1,0,0],[2,32,32],[3,64,32]] #所有需要显示在地图并且刷新的变量,可在游戏中用脚本更改。格式:[变量编号,x坐标,y坐标]

  8. #==============================================================================
  9. # ■ Window_XY
  10. #------------------------------------------------------------------------------
  11. #  显示坐标的窗口。
  12. #==============================================================================
  13. class Window_Var < Window_Base#注意前面那个window_var是文件名
  14. #--------------------------------------------------------------------------
  15. # ● 初始化窗口
  16. #--------------------------------------------------------------------------
  17. def initialize
  18.   super(-16, -16, 640+32, 480+32)#最后面那个数字是宽要显示多个需要改大,前面一个是长~
  19.   self.contents = Bitmap.new(width - 32, height - 32)
  20.   self.back_opacity = 255  # 这个是背景透明
  21.   self.opacity = 255       # 这个是边框和背景都透明
  22.   self.contents_opacity = 255       # 这个是内容透明
  23.   self.visible = false
  24.   self.z=9999
  25.   @var = $var
  26.   @var_a = []
  27.   for var_draw in $var
  28.     @var_a[var_draw[0]] = $game_variables[var_draw[0]]
  29.   end   
  30.   refresh
  31. end

  32. #--------------------------------------------------------------------------
  33. # ● 刷新
  34. #--------------------------------------------------------------------------
  35. def refresh
  36.   if $game_switches[VAR_SWITCH]
  37.     @var = $var         # 记录现在变量数组结构
  38.     self.contents.clear # 清除以前的东西
  39.     for var_draw in @var
  40.       @var_a[var_draw[0]] = $game_variables[var_draw[0]] # 记录现在的游戏变量
  41.       self.contents.draw_text(var_draw[1],var_draw[2],640,32,@var_a[var_draw[0]].to_s)
  42.     end
  43.   end
  44. end
  45. #--------------------------------------------------------------------------
  46. # ● 判断文字刷新。节约内存用
  47. #--------------------------------------------------------------------------
  48. def judge
  49.   for var_draw in $var
  50.     if @var_a[var_draw[0]] != $game_variables[var_draw[0]] #如果现在记录的变量和游戏变量不同,刷新
  51.       return true
  52.     end
  53.   end
  54.   if $game_switches[VAR_REFRESH_SWITCH]  # 强制刷新的时候,刷新
  55.     $game_switches[VAR_REFRESH_SWITCH] = false
  56.     return true
  57.   end
  58.   return false
  59. end
  60. end

  61. class Scene_Map
  62. alias var_66rpg_main main
  63. def main
  64.   @var_window = Window_Var.new
  65.   @var_window.opacity = 0
  66.   var_66rpg_main
  67.   @var_window.dispose
  68. end
  69. #--------------------------------------------------------------------------
  70. # ● 刷新画面
  71. #--------------------------------------------------------------------------
  72. alias var_66rpg_update update
  73. def update
  74.   var_66rpg_update
  75.   if $game_switches[VAR_SWITCH]
  76.     @var_window.visible = true      
  77.     @var_window.refresh if @var_window.judge
  78.   else
  79.     @var_window.visible = false
  80.   end
  81. end
  82. end
  83. #==========================================================================
  84. # 本脚本来自www.66rpg.com,用于任何游戏请保留此信息。
  85. #==========================================================================

复制代码

作者: JinFa    时间: 2011-12-26 22:17
45.      self.contents.draw_text(var_draw[1],var_draw[2],640,32,(@var_a[var_draw[0]]-1).to_s)
這樣可以吧?

作者: 赤夜玄魔    时间: 2011-12-27 02:12
这个……你不是开过以个帖子了?没看懂对方所说的意思吗?
  1. self.contents.draw_text(var_draw[1],var_draw[2],640,32,@var_a[var_draw[0]].to_s)
复制代码
这一句脚本显示 “@var_a[var_draw[0]]”的文本,也就是说,如果LZ要改显示数值,的话,只需要在前面加个临时变量,再修改下这个脚本即可。
例如加入:
  1. lsa = @var_a[var_draw[0]] - 1#在这里,将记录的数值减去1
复制代码
然后这一句:
  1. self.contents.draw_text(var_draw[1],var_draw[2],640,32,@var_a[var_draw[0]].to_s)
复制代码
改成:
  1. self.contents.draw_text(var_draw[1],var_draw[2],640,32,lsa.to_s)
复制代码
即可达到效果。。。





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