Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

Current map as battle background error

Acera

Sponsor

Greetings,

I found this script for making the current map your battle background, (using the search function, yes it does work) but when I test it I get an error and my rather restricted knowledge with scripting is not really helping.
Here's the error;
http://img246.imageshack.us/img246/1992/errorki1.png[/img]
line 21:
@battleback_sprite.tileset = RPG::Cache.tileset($game_map.tileset_name)

and here's the script;
Code:
#==============================================================================
# ** Spriteset_Battle
#------------------------------------------------------------------------------
# This class contains the set of sprites used in the Scene_Battle class, such
# as the enemies, actors, battle background, and any pictures being displayed
#==============================================================================

class Spriteset_Battle
  #--------------------------------------------------------------------------
  # * initialize
  #--------------------------------------------------------------------------
  def initialize
    @viewport1 = Viewport.new(0, 0, 640, 480)
    @viewport2 = Viewport.new(0, 0, 640, 480)
    @viewport3 = Viewport.new(0, 0, 640, 480)
    @viewport4 = Viewport.new(0, 0, 640, 480)
    @viewport2.z = 101
    @viewport3.z = 200
    @viewport4.z = 5000
    @battleback_sprite = Tilemap.new(@viewport1)
    @battleback_sprite.tileset = RPG::Cache.tileset($game_map.tileset_name)
    for i in 0..6
      autotile_name = $game_map.autotile_names[i]
      @battleback_sprite.autotiles[i] = RPG::Cache.autotile(autotile_name)
    end
    @battleback_sprite.map_data = $game_map.data
    @battleback_sprite.ox = $game_map.display_x / 4
    @battleback_sprite.oy = $game_map.display_y / 4
    @enemy_sprites = []
    for enemy in $game_troop.enemies.reverse
      @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy))
    end
    @actor_sprites = []
    @actor_sprites.push(Sprite_Battler.new(@viewport2))
    @actor_sprites.push(Sprite_Battler.new(@viewport2))
    @actor_sprites.push(Sprite_Battler.new(@viewport2))
    @actor_sprites.push(Sprite_Battler.new(@viewport2))
    @weather = RPG::Weather.new(@viewport1)
    @picture_sprites = []
    for i in 51..100
      @picture_sprites.push(Sprite_Picture.new(@viewport3,
        $game_screen.pictures[i]))
    end
    @timer_sprite = Sprite_Timer.new
    update
  end
  #--------------------------------------------------------------------------
  # * Dispose the battle spriteset
  #--------------------------------------------------------------------------
  def dispose
    @battleback_sprite.tileset.dispose
    for i in 0..6
      @battleback_sprite.autotiles[i].dispose
    end
    @battleback_sprite.dispose
    for sprite in @enemy_sprites + @actor_sprites
      sprite.dispose
    end
    @weather.dispose
    for sprite in @picture_sprites
      sprite.dispose
    end
    @timer_sprite.dispose
    @viewport1.dispose
    @viewport2.dispose
    @viewport3.dispose
    @viewport4.dispose
  end
  #--------------------------------------------------------------------------
  # * Update the battleset sprite
  #--------------------------------------------------------------------------
  def update
    @battleback_sprite.update
    @actor_sprites[0].battler = $game_party.actors[0]
    @actor_sprites[1].battler = $game_party.actors[1]
    @actor_sprites[2].battler = $game_party.actors[2]
    @actor_sprites[3].battler = $game_party.actors[3]
    for sprite in @enemy_sprites + @actor_sprites
      sprite.update
    end
    @weather.type = $game_screen.weather_type
    @weather.max = $game_screen.weather_max
    @weather.update
    for sprite in @picture_sprites
      sprite.update
    end
    @timer_sprite.update
    @viewport1.tone = $game_screen.tone
    @viewport1.ox = $game_screen.shake
    @viewport4.color = $game_screen.flash_color
    @viewport1.update
    @viewport2.update
    @viewport4.update
  end
end

If you're able to fix it could you please explain to me what was wrong and such (trying to learn RGSS, and for me examples always work the best)

Thanks in advance,
~Acera
 

khmp

Sponsor

Is this VX or XP? This script is written for an XP maker game. "tileset_name" is no longer a property of Game_Map in VX, which would create an error like the one you are showing.

If you aren't however. I just plopped that script into a test project on XP and it worked without a problem. Are you using any other custom scripts? Where did you install the script?
 

Acera

Sponsor

Ugh I figured it out now... I get that error whenever I battle test via the database -.-. But I had to delete these lines
Code:
    
# If effect is showing
    if @spriteset.effect?
      return
    end

any idea what these do?

Thanks in advance,
~Acera
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top