设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1875|回复: 5
打印 上一主题 下一主题

[已经过期] “显示变量”和“显示金钱”怎么合用?

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
136
在线时间
1050 小时
注册时间
2006-5-3
帖子
774
跳转到指定楼层
1
发表于 2007-8-12 19:47:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
首先,这两个脚本单独用没什么问题,但是这两个脚本似乎属于同一类别的,两个一起的话只能“显示变量”有效果,“显示金钱”没任何作用。
我是想用“显示金钱”,在游戏整个过程中都显示金钱在画面边角上,而只有某个开关打开时,“显示变量”才运作。
PS:好像“显示变量”这一个脚本就可以完成上述操作,不过我不会。
PS又PS:论坛应该早就解决过这个问题了,不过我没找到啊,如果有的话麻烦给地址啊,谢谢了


#==========================================================================
# 本脚本来自www.66rpg.com,用于任何游戏请保留此信息。别以为加密就可以del哦
#==========================================================================

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

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

#==============================================================================
# ■ Window_XY
#------------------------------------------------------------------------------
#  显示坐标的窗口。
#==============================================================================
class Window_Var < Window_Base#注意前面那个window_xy是文件名
#--------------------------------------------------------------------------
# ● 初始化窗口
#--------------------------------------------------------------------------
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 xy_66rpg_main main
def main
  @var_window = Window_Var.new
  @var_window.opacity = 0
  xy_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,用于任何游戏请保留此信息。别以为加密就可以del哦
#==========================================================================



#==============================================================================
# ◎ Window_MapVar
#------------------------------------------------------------------------------
# ◎ 地图右下显示变量窗口
#------------------------------------------------------------------------------
# 制作者:绿梨子红苹果
# 个人主页:vbgm.9126.com
# E-Mail:[email protected]
# QQ:42378361
#==============================================================================

class Window_MapVar < Window_Base
#--------------------------------------------------------------------------
# ● 初始化窗口
#--------------------------------------------------------------------------
def initialize
   
   # 在这里设定窗口的位置啦(x,y,宽,高),记住要为窗口框架留上下左右各16象素。
   # 默认一个字符的宽和高只有20左右的,这里单位为“金”,加上8位数字。
   super(480,420,160,60)
   
   # 窗口的不透明度(0 ~ 255)。范围外的数值会自动修正。
   # 注:255为不透明,0为完全透明……这个参数为零则只显示窗口内容而没有窗口,
   # 实际上这样做不如不载入窗口背景图,更加节约内存……不过比较麻烦就是。
   self.opacity=64
   # 窗口背景的不透明度(0 ~ 255)。范围外的数值会自动修正。
   # 注:就是窗口那个蓝色的背景啦……受上面参数影响
   self.back_opacity=128
   # 窗口内容的不透明度(0 ~ 255)。范围外的数值会自动修正。
   # 注:窗口内的文字等内容,除非你是想画个空窗口,否则千万不要设0。
   self.contents_opacity=255

   # 这个不用管他,必定要写的
   self.contents = Bitmap.new(width - 32, height - 32)
   
   # 建立记录变量原始值,用于判断变量值是否改变,一定要保证不会是变量原来的值
   @var_value_old = -1
   # 载入想要显示的图片就可以了,这里推荐是24*24的标准RM图标
   @var_icon = Bitmap.new("Graphics/Icons/035-Item04")
   
   refresh
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
   # 在这里加上判断语句,就可以完成变量值改变才刷新的效果,节约资源
   if @var_value_old==$game_party.gold then
     return
   end
   # 先清空内容啦
   self.contents.clear
   # 计算系统data里金钱单位的字符宽度
   cx = contents.text_size($data_system.words.gold).width
   # 设定字色为白色。生成RGB颜色参数(红,绿,蓝),这个不用我来说吧...
   self.contents.font.color = Color.new(255,255,255)
   # 绘制金钱数字。记住要用“.to_s”将数字转换为字符!
   # 注:这里24是留着画24*24图标的,104表示所有字符总宽
   self.contents.draw_text(24, 0, 104-cx, 28, $game_party.gold.to_s, 2)
   # 设定字色为金色
   self.contents.font.color = Color.new(255,255,0)
   # 绘制金钱单位。
   # 注:128=160(窗口宽)-32
   self.contents.draw_text(128-cx, 0, cx, 28, $data_system.words.gold)
   # 最后画上需要的图标就可以啦,blt方法详见RM帮助文档啦...
   self.contents.blt(0, 2, @var_icon, Rect.new(0, 0, 24, 24))
end
end

此贴于 2007-8-14 0:57:06 被版主柳柳提醒,请楼主看到后对本贴做出回应。
漏夏同人
《咱的夏天》
下载地址:http://tieba.baidu.com/p/2681607456
人员招募:http://rpg.blue/thread-339747-1-1.html

Lv1.梦旅人

梦石
0
星屑
136
在线时间
1050 小时
注册时间
2006-5-3
帖子
774
2
 楼主| 发表于 2007-8-12 19:47:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
首先,这两个脚本单独用没什么问题,但是这两个脚本似乎属于同一类别的,两个一起的话只能“显示变量”有效果,“显示金钱”没任何作用。
我是想用“显示金钱”,在游戏整个过程中都显示金钱在画面边角上,而只有某个开关打开时,“显示变量”才运作。
PS:好像“显示变量”这一个脚本就可以完成上述操作,不过我不会。
PS又PS:论坛应该早就解决过这个问题了,不过我没找到啊,如果有的话麻烦给地址啊,谢谢了


#==========================================================================
# 本脚本来自www.66rpg.com,用于任何游戏请保留此信息。别以为加密就可以del哦
#==========================================================================

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

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

#==============================================================================
# ■ Window_XY
#------------------------------------------------------------------------------
#  显示坐标的窗口。
#==============================================================================
class Window_Var < Window_Base#注意前面那个window_xy是文件名
#--------------------------------------------------------------------------
# ● 初始化窗口
#--------------------------------------------------------------------------
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 xy_66rpg_main main
def main
  @var_window = Window_Var.new
  @var_window.opacity = 0
  xy_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,用于任何游戏请保留此信息。别以为加密就可以del哦
#==========================================================================



#==============================================================================
# ◎ Window_MapVar
#------------------------------------------------------------------------------
# ◎ 地图右下显示变量窗口
#------------------------------------------------------------------------------
# 制作者:绿梨子红苹果
# 个人主页:vbgm.9126.com
# E-Mail:[email protected]
# QQ:42378361
#==============================================================================

class Window_MapVar < Window_Base
#--------------------------------------------------------------------------
# ● 初始化窗口
#--------------------------------------------------------------------------
def initialize
   
   # 在这里设定窗口的位置啦(x,y,宽,高),记住要为窗口框架留上下左右各16象素。
   # 默认一个字符的宽和高只有20左右的,这里单位为“金”,加上8位数字。
   super(480,420,160,60)
   
   # 窗口的不透明度(0 ~ 255)。范围外的数值会自动修正。
   # 注:255为不透明,0为完全透明……这个参数为零则只显示窗口内容而没有窗口,
   # 实际上这样做不如不载入窗口背景图,更加节约内存……不过比较麻烦就是。
   self.opacity=64
   # 窗口背景的不透明度(0 ~ 255)。范围外的数值会自动修正。
   # 注:就是窗口那个蓝色的背景啦……受上面参数影响
   self.back_opacity=128
   # 窗口内容的不透明度(0 ~ 255)。范围外的数值会自动修正。
   # 注:窗口内的文字等内容,除非你是想画个空窗口,否则千万不要设0。
   self.contents_opacity=255

   # 这个不用管他,必定要写的
   self.contents = Bitmap.new(width - 32, height - 32)
   
   # 建立记录变量原始值,用于判断变量值是否改变,一定要保证不会是变量原来的值
   @var_value_old = -1
   # 载入想要显示的图片就可以了,这里推荐是24*24的标准RM图标
   @var_icon = Bitmap.new("Graphics/Icons/035-Item04")
   
   refresh
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
   # 在这里加上判断语句,就可以完成变量值改变才刷新的效果,节约资源
   if @var_value_old==$game_party.gold then
     return
   end
   # 先清空内容啦
   self.contents.clear
   # 计算系统data里金钱单位的字符宽度
   cx = contents.text_size($data_system.words.gold).width
   # 设定字色为白色。生成RGB颜色参数(红,绿,蓝),这个不用我来说吧...
   self.contents.font.color = Color.new(255,255,255)
   # 绘制金钱数字。记住要用“.to_s”将数字转换为字符!
   # 注:这里24是留着画24*24图标的,104表示所有字符总宽
   self.contents.draw_text(24, 0, 104-cx, 28, $game_party.gold.to_s, 2)
   # 设定字色为金色
   self.contents.font.color = Color.new(255,255,0)
   # 绘制金钱单位。
   # 注:128=160(窗口宽)-32
   self.contents.draw_text(128-cx, 0, cx, 28, $data_system.words.gold)
   # 最后画上需要的图标就可以啦,blt方法详见RM帮助文档啦...
   self.contents.blt(0, 2, @var_icon, Rect.new(0, 0, 24, 24))
end
end

此贴于 2007-8-14 0:57:06 被版主柳柳提醒,请楼主看到后对本贴做出回应。
漏夏同人
《咱的夏天》
下载地址:http://tieba.baidu.com/p/2681607456
人员招募:http://rpg.blue/thread-339747-1-1.html

Lv2.观梦者

梦石
0
星屑
455
在线时间
127 小时
注册时间
2006-11-2
帖子
1200
3
发表于 2007-8-12 20:39:07 | 只看该作者
问题其实很简单,是因为他们都用了 @var_window 这个相同的变量名

把其中一个修改就行了 例如 修改变量窗口

class Scene_Map
alias xy_66rpg_main main
def main
@var_window1 = Window_Var.new
@var_window1.opacity = 0
xy_66rpg_main
@var_window1.dispose
end
#--------------------------------------------------------------------------
# ● 刷新画面
#--------------------------------------------------------------------------
alias var_66rpg_update update
def update
var_66rpg_update
if $game_switches[VAR_SWITCH]
   @var_window1.visible = true      
   @var_window1.refresh if @var_window1.judge
else
   @var_window1.visible = false
end
end
end



PS  下次帖脚本的时候 请点一下文字框上 "脚" 这个标签 {/wx}
和记忆一起封存着的ID...
回复 支持 反对

使用道具 举报

Lv1.梦旅人

看不到我

梦石
0
星屑
50
在线时间
229 小时
注册时间
2005-11-6
帖子
1741

贵宾

4
发表于 2007-8-12 21:53:23 | 只看该作者
其实可以不用显示金钱
因为变量也可以带入金钱~
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3309
在线时间
3620 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

5
发表于 2007-8-13 01:27:28 | 只看该作者
以下引用小湖于2007-8-12 13:53:23的发言:

其实可以不用显示金钱
因为变量也可以带入金钱~

所以显示金钱不如直接显示变量更方便……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
136
在线时间
1050 小时
注册时间
2006-5-3
帖子
774
6
 楼主| 发表于 2009-7-2 21:29:40 | 只看该作者
漏夏同人
《咱的夏天》
下载地址:http://tieba.baidu.com/p/2681607456
人员招募:http://rpg.blue/thread-339747-1-1.html
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-12 04:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表