查看: 1723|回复: 2

[已经解决] vx战斗脚本的错误

[复制链接]
梦石
0
星屑
50
在线时间
31 小时
注册时间
2012-12-1
回帖
15
发表于 2012-12-24 12:45:29 | 显示全部楼层 |阅读模式

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

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

×
这里是脚本
[pre lang="ruby" line="1"]#===============================================================================
# Earthbound Backgrounds - RMVX多层+波状动态战斗背景
#【作者: Synthesize + ahref】
#【源地址:http://rmrk.net/】
#===============================================================================
# 作者: Synthesize
# 2010年2月19日
# 版本2
# 由ahref修改 (再修改部分功能,确认支持JPG和PNG格式的图片。具体使用请看我后面的解释。-某米)
#===============================================================================
module SynBattleB
  #-----------------------------------------------------------------------------
  #修改版使用方法:请先创建一个名为“Battlebacks”的文件夹,放在Graphics文件夹下。
  #之后将你要用做战斗背景的图片放在这个Battlebacks文件夹下。下面为脚本设定内容。
  # format(请按以下格式添加,括号内为中文解释,不用如实照搬。):
  #MAP_ID (地图的ID)=> [[ImageName(引用的图片名),Wave Amp(波动的幅度),
  #Wave Length(波动的长度), Wave Speed(波动的速度),
  #x pos(X坐标), y pos(Y坐  #标), z pos(Z坐标)]],
  # Note: 0 in the wave varibles means the background wont move :D.
  #(这句话是说当和波动有关的数值均为0时,就是静态的战斗背景。)
  #(作者:请不要和其他和战斗背景有关的脚本混用!!)
  #-----------------------------------------------------------------------------
  Battle_background =
  {
  #Examples(下面是例子,但是是以前版本的,里面没有Z值请注意。
  #另外说一下,Z值就是图片显示的优先度,Z值越大图片就放在越上面显示
  #(就像一层层叠放上去那样)。)
  # 1 => [["bg1",60,240,120,-80,0]] 1 Background
  # 2 => [["bg1",60,240,120,-80,0],["bg2", 0, 0, 0,-80,0]] 2 Backgrounds
  # 3 => [["bg1",60,240,120,-80,0],["bg2", 0, 0, 0,-80,0],["bg3", 0, 0, 0,-80,0],["bg4", 0, 0, 0,-80,0]] 4 Backgrounds
  # n => [["bg1",60,240,120,-80,0],...,["bgn",60,240,120,-80,0] ]
  5 => [["spirit forest.png",0,0,0,0,0,0]],
  19 => [["spirit forest.png",0,0,0,0,0,0]],
  15 => [["worldmap.jpg",0,0,0,0,0,0],["火焰0010.png", 0, 0, 0,0,0,998]],
  }
  #-------------------------------------------------------------------------------
  #创建战斗背景底部吗?(就是战斗时位于中间的那一块圆的阴影)false为不,true为是
  #-------------------------------------------------------------------------------
  Create_battlefloor = false
end
#-------------------------------------------------------------------------------
#战斗活动块
#-------------------------------------------------------------------------------
class Spriteset_Battle
  alias syn_create_battlefloor create_battlefloor
  #-------------------------------------------------------------------------------
  # 创建战斗背景
  #-------------------------------------------------------------------------------
  def create_battleback
    @battlebacks = Array.new
    background = SynBattleB::Battle_background[$game_map.map_id]
    background.each do |b|
      @battlebacks << Sprite.new(@viewport1)   
      @battlebacks.last.bitmap = Cache.battlebacks(b[0])
      @battlebacks.last.wave_amp = b[1]
      @battlebacks.last.wave_length = b[2]
      @battlebacks.last.wave_speed = b[3]
      @battlebacks.last.x = b[4]
      @battlebacks.last.y = b[5]
      @battlebacks.last.z = b[6]
    end
  end
  def create_battlefloor
    @battlefloor_sprite = Sprite.new(@viewport1)
    syn_create_battlefloor if SynBattleB::Create_battlefloor == true
  end
  #-----------------------------------------------------------------------------
  # *消去战斗背景图像
  #-----------------------------------------------------------------------------
  def dispose_battleback_bitmap
    @battlebacks.each do |b|
      b.bitmap.dispose
    end
  end
  #-----------------------------------------------------------------------------
  # * 消去战斗背景活动块
  #-----------------------------------------------------------------------------
  def dispose_battleback  
    @battlebacks.each do |b|
      b.dispose
    end
  end
  #-----------------------------------------------------------------------------
  # * 更新战斗背景
  #-----------------------------------------------------------------------------
  def update_battleback
    @battlebacks.each do |b|
      b.update
    end
  end
end
module Cache
  def self.battlebacks(filename)
    load_bitmap("Graphics/Battlebacks/", filename)
  end
end
#===============================================================================  
# 作者: Synthesize
# 2010年2月19日
# 版本2
# 修改:ahref
#===============================================================================
# Earthbound Backgrounds - RMVX
#===============================================================================[/pre]


在使用过程中,大概这个49行
  # 创建战斗背景
  #-------------------------------------------------------------------------------
  def create_battleback
    @battlebacks = Array.new
    background = SynBattleB::Battle_background[$game_map.map_id]
    background.each do |b|
的 background.each do
会发生错误,说不能定义eachtonilclass

未命名.jpg

多谢大家的帮助~~

八宝粥的基叔

梦石
0
星屑
4957
在线时间
5234 小时
注册时间
2009-4-29
回帖
14054

贵宾

发表于 2012-12-24 14:09:42 | 显示全部楼层

把出问题的定义变成这样:
  1.   def create_battleback
  2.     @battlebacks = Array.new
  3.     background = SynBattleB::Battle_background[$game_map.map_id]
  4.     unless background.nil?
  5.       background.each do |b|
  6.         @battlebacks << Sprite.new(@viewport1)   
  7.         @battlebacks.last.bitmap = Cache.battlebacks(b[0])
  8.         @battlebacks.last.wave_amp = b[1]
  9.         @battlebacks.last.wave_length = b[2]
  10.         @battlebacks.last.wave_speed = b[3]
  11.         @battlebacks.last.x = b[4]
  12.         @battlebacks.last.y = b[5]
  13.         @battlebacks.last.z = b[6]
  14.       end
  15.     end
  16.   end
复制代码

评分

参与人数 2星屑 +280 收起 理由
咕噜 + 120 认可答案
八宝粥先生 + 160 认可答案

查看全部评分

《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复

使用道具 举报

梦石
0
星屑
50
在线时间
31 小时
注册时间
2012-12-1
回帖
15
 楼主| 发表于 2012-12-24 14:12:21 | 显示全部楼层
protosssonny 发表于 2012-12-24 14:09
把出问题的定义变成这样:

多谢你啦~~真开心

点评

果然是新同学喵~~~  发表于 2012-12-24 14:19
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部