Project1

标题: 求高手指教。地图上显示变量的问题 [打印本页]

作者: asdffdsa    时间: 2010-3-22 14:30
标题: 求高手指教。地图上显示变量的问题
关于这个变量脚本。我想显示两批变量,用开关控制,不同的地图显示不同的变量。求高手指教


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

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

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

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

#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
  if $game_switches[VAR_SWITCH]
    @var = $var         # 记录现在变量数组结构
    self.contents.clear # 清除以前的东西
    for var_draw in @var
      @var_a[var_draw[0]] = $game_variables[var_draw[0]] # 记录现在的游戏变量
      self.contents.draw_text(var_draw[1],var_draw[2],640,32,@var_a[var_draw[0]].to_s)
    end
  end
end
#--------------------------------------------------------------------------
# ● 判断文字刷新。节约内存用
#--------------------------------------------------------------------------
def judge
  for var_draw in $var
    if @var_a[var_draw[0]] != $game_variables[var_draw[0]] #如果现在记录的变量和游戏变量不同,刷新
      return true
    end
  end
  if $game_switches[VAR_REFRESH_SWITCH]  # 强制刷新的时候,刷新
    $game_switches[VAR_REFRESH_SWITCH] = false
    return true
  end
  return false
end
end

class Scene_Map
alias var_66rpg_main main
def main
  @var_window = Window_Var.new
  @var_window.opacity = 0
  var_66rpg_main
  @var_window.dispose
end
#--------------------------------------------------------------------------
# ● 刷新画面
#--------------------------------------------------------------------------
alias var_66rpg_update update
def update
  var_66rpg_update
  if $game_switches[VAR_SWITCH]
    @var_window.visible = true      
    @var_window.refresh if @var_window.judge
  else
    @var_window.visible = false
  end
end
end
#==========================================================================
# 本脚本来自www.66rpg.com,用于任何游戏请保留此信息。
#==========================================================================
作者: asdffdsa    时间: 2010-3-28 10:35
难道是我没说清楚?

例如:开关1打开时显示变量12345  开关2打开时显示变量67890
:'(大家就帮帮新人吧 。
作者: 奶油Da蛋糕    时间: 2010-6-21 07:30
#==========================================================================
# 本脚本来自www.66rpg.com,用于任何游戏请保留此信息。
#==========================================================================

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

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

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

#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
  if $game_switches[VAR_SWITCH]
    @var = $var         # 记录现在变量数组结构
    self.contents.clear # 清除以前的东西
    for var_draw in @var
      @var_a[var_draw[0]] = $game_variables[var_draw[0]] # 记录现在的游戏变量
      self.contents.draw_text(var_draw[1],var_draw[2],640,32,@var_a[var_draw[0]].to_s)
     if $game_switches[1]   
self.contents.draw_text(var_draw[1],var_draw[2]+32,640,32,$game_variables[12345].to_s)
elsif $game_switches[2]
self.contents.draw_text(var_draw[1],var_draw[2]+32,640,32,$game_variables[67890].to_s)
end
    end
  end
end
#--------------------------------------------------------------------------
# ● 判断文字刷新。节约内存用
#--------------------------------------------------------------------------
def judge
  for var_draw in $var
    if @var_a[var_draw[0]] != $game_variables[var_draw[0]] #如果现在记录的变量和游戏变量不同,刷新
      return true
    end
  end
  if $game_switches[VAR_REFRESH_SWITCH]  # 强制刷新的时候,刷新
    $game_switches[VAR_REFRESH_SWITCH] = false
    return true
  end
  return false
end
end

class Scene_Map
alias var_66rpg_main main
def main
  @var_window = Window_Var.new
  @var_window.opacity = 0
  var_66rpg_main
  @var_window.dispose
end
#--------------------------------------------------------------------------
# ● 刷新画面
#--------------------------------------------------------------------------
alias var_66rpg_update update
def update
  var_66rpg_update
  if $game_switches[VAR_SWITCH]
    @var_window.visible = true      
    @var_window.refresh if @var_window.judge
  else
    @var_window.visible = false
  end
end
end
#==========================================================================
# 本脚本来自www.66rpg.com,用于任何游戏请保留此信息。
#==========================================================================
作者: rpg爱好者1    时间: 2010-6-21 08:26
提示: 作者被禁止或删除 内容自动屏蔽




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