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.

I get an error when I try to test play

Senhin

Member

Script 'Sound_increase' line 116:NameError occured.

undefined method 'main' for class 'scene_title'.



Uh, what? XD
 

Senhin

Member

Ah I see... I didn't realise tehy were thinsg to do with scripts XD I haven't used this in almost a year now, went back to my old game and foudn it in taht state.

The scripts are...

Code:
#==============================================================================

# ** Scene_Title

#------------------------------------------------------------------------------

#  This class performs title screen processing.

#==============================================================================

 

class Scene_Title

  #--------------------------------------------------------------------------

  # * Main Processing

  #--------------------------------------------------------------------------

  def main

    # If battle test

    if $BTEST

      battle_test

      return

    end

    # Load database

    $data_actors        = load_data("Data/Actors.rxdata")

    $data_classes       = load_data("Data/Classes.rxdata")

    $data_skills        = load_data("Data/Skills.rxdata")

    $data_items         = load_data("Data/Items.rxdata")

    $data_weapons       = load_data("Data/Weapons.rxdata")

    $data_armors        = load_data("Data/Armors.rxdata")

    $data_enemies       = load_data("Data/Enemies.rxdata")

    $data_troops        = load_data("Data/Troops.rxdata")

    $data_states        = load_data("Data/States.rxdata")

    $data_animations    = load_data("Data/Animations.rxdata")

    $data_tilesets      = load_data("Data/Tilesets.rxdata")

    $data_common_events = load_data("Data/CommonEvents.rxdata")

    $data_system        = load_data("Data/System.rxdata")

    # Make system object

    $game_system = Game_System.new

    # Make title graphic

    @sprite = Sprite.new

    @sprite.bitmap = RPG::Cache.title($data_system.title_name)

    # Make command window

    s1 = "New Game"

    s2 = "Continue"

    s3 = "Shutdown"

    @command_window = Window_Command.new(192, [s1, s2, s3])

    @command_window.back_opacity = 160

    @command_window.x = 320 - @command_window.width / 2

    @command_window.y = 288

    # Continue enabled determinant

    # Check if at least one save file exists

    # If enabled, make @continue_enabled true; if disabled, make it false

    @continue_enabled = false

    for i in 0..3

      if FileTest.exist?("Save#{i+1}.rxdata")

        @continue_enabled = true

      end

    end

    # If continue is enabled, move cursor to "Continue"

    # If disabled, display "Continue" text in gray

    if @continue_enabled

      @command_window.index = 1

    else

      @command_window.disable_item(1)

    end

    # Play title BGM

    $game_system.bgm_play($data_system.title_bgm)

    # Stop playing ME and BGS

    Audio.me_stop

    Audio.bgs_stop

    # Execute transition

    Graphics.transition

    # Main loop

    loop do

      # Update game screen

      Graphics.update

      # Update input information

      Input.update

      # Frame update

      update

      # Abort loop if screen is changed

      if $scene != self

        break

      end

    end

    # Prepare for transition

    Graphics.freeze

    # Dispose of command window

    @command_window.dispose

    # Dispose of title graphic

    @sprite.bitmap.dispose

    @sprite.dispose

  end

  #--------------------------------------------------------------------------

  # * Frame Update

  #--------------------------------------------------------------------------

  def update

    # Update command window

    @command_window.update

    # If C button was pressed

    if Input.trigger?(Input::C)

      # Branch by command window cursor position

      case @command_window.index

      when 0  # New game

        command_new_game

      when 1  # Continue

        command_continue

      when 2  # Shutdown

        command_shutdown

      end

    end

  end

  #--------------------------------------------------------------------------

  # * Command: New Game

  #--------------------------------------------------------------------------

  def command_new_game

    # Play decision SE

    $game_system.se_play($data_system.decision_se)

    # Stop BGM

    Audio.bgm_stop

    # Reset frame count for measuring play time

    Graphics.frame_count = 0

    # Make each type of game object

    $game_temp          = Game_Temp.new

    $game_system        = Game_System.new

    $game_switches      = Game_Switches.new

    $game_variables     = Game_Variables.new

    $game_self_switches = Game_SelfSwitches.new

    $game_screen        = Game_Screen.new

    $game_actors        = Game_Actors.new

    $game_party         = Game_Party.new

    $game_troop         = Game_Troop.new

    $game_map           = Game_Map.new

    $game_player        = Game_Player.new

    # Set up initial party

    $game_party.setup_starting_members

    # Set up initial map position

    $game_map.setup($data_system.start_map_id)

    # Move player to initial position

    $game_player.moveto($data_system.start_x, $data_system.start_y)

    # Refresh player

    $game_player.refresh

    # Run automatic change for BGM and BGS set with map

    $game_map.autoplay

    # Update map (run parallel process event)

    $game_map.update

    # Switch to map screen

    $scene = Scene_Map.new

  end

  #--------------------------------------------------------------------------

  # * Command: Continue

  #--------------------------------------------------------------------------

  def command_continue

    # If continue is disabled

    unless @continue_enabled

      # Play buzzer SE

      $game_system.se_play($data_system.buzzer_se)

      return

    end

    # Play decision SE

    $game_system.se_play($data_system.decision_se)

    # Switch to load screen

    $scene = Scene_Load.new

  end

  #--------------------------------------------------------------------------

  # * Command: Shutdown

  #--------------------------------------------------------------------------

  def command_shutdown

    # Play decision SE

    $game_system.se_play($data_system.decision_se)

    # Fade out BGM, BGS, and ME

    Audio.bgm_fade(800)

    Audio.bgs_fade(800)

    Audio.me_fade(800)

    # Shutdown

    $scene = nil

  end

  #--------------------------------------------------------------------------

  # * Battle Test

  #--------------------------------------------------------------------------

  def battle_test

    # Load database (for battle test)

    $data_actors        = load_data("Data/BT_Actors.rxdata")

    $data_classes       = load_data("Data/BT_Classes.rxdata")

    $data_skills        = load_data("Data/BT_Skills.rxdata")

    $data_items         = load_data("Data/BT_Items.rxdata")

    $data_weapons       = load_data("Data/BT_Weapons.rxdata")

    $data_armors        = load_data("Data/BT_Armors.rxdata")

    $data_enemies       = load_data("Data/BT_Enemies.rxdata")

    $data_troops        = load_data("Data/BT_Troops.rxdata")

    $data_states        = load_data("Data/BT_States.rxdata")

    $data_animations    = load_data("Data/BT_Animations.rxdata")

    $data_tilesets      = load_data("Data/BT_Tilesets.rxdata")

    $data_common_events = load_data("Data/BT_CommonEvents.rxdata")

    $data_system        = load_data("Data/BT_System.rxdata")

    # Reset frame count for measuring play time

    Graphics.frame_count = 0

    # Make each game object

    $game_temp          = Game_Temp.new

    $game_system        = Game_System.new

    $game_switches      = Game_Switches.new

    $game_variables     = Game_Variables.new

    $game_self_switches = Game_SelfSwitches.new

    $game_screen        = Game_Screen.new

    $game_actors        = Game_Actors.new

    $game_party         = Game_Party.new

    $game_troop         = Game_Troop.new

    $game_map           = Game_Map.new

    $game_player        = Game_Player.new

    # Set up party for battle test

    $game_party.setup_battle_test_members

    # Set troop ID, can escape flag, and battleback

    $game_temp.battle_troop_id = $data_system.test_troop_id

    $game_temp.battle_can_escape = true

    $game_map.battleback_name = $data_system.battleback_name

    # Play battle start SE

    $game_system.se_play($data_system.battle_start_se)

    # Play battle BGM

    $game_system.bgm_play($game_system.battle_bgm)

    # Switch to battle screen

    $scene = Scene_Battle.new

  end

end

and

Code:
#==============================================================================

#  Dynamic Sound Emissions

#  Version: 1.0

#  Author: Modern Algebra

#  Date: August 27, 2007

#------------------------------------------------------------------------------

#  Description:

#  This script allows you to set an object in the map which emits a sound. What

#  this script does is set the volume of that sound according to how close you

#  are to the object. If you are far away, the sound will be faint, if you are 

#  close the sound will be loud. Sorry, in this version there can be only one

#  object per map.

#------------------------------------------------------------------------------

#  Instructions: 

#  To set the objects which emit sound for each map, see below.

#------------------------------------------------------------------------------

# ** Data_Sound_Emission

#       This class holds all of the objects which emit any sound, for all maps

#==============================================================================

 

class Data_Sound_Emission

  #-------------------------------------------------------------------------

  # * Public Instance Variables

  #-------------------------------------------------------------------------

  attr_reader    :emissions

  #-------------------------------------------------------------------------

  # * Object Initialization

  #-------------------------------------------------------------------------

  def initialize

    @emissions = []

    #----------------------------------------------------------------------

    # * Editable Region

    #----------------------------------------------------------------------

    #  Place all sound emitting objects here. Write it like this:

    #

    #    @emissions[map_id] = Sound_Emission.new

    #    @emissions[map_id].setup (x,y,width,height,radius,bgs,pitch)

    # 

    #  Where map_id is the ID of the map you want the object to appear on,

    #  x and y are the x and y positions of the upper-left corner of the object,

    #  width is the amount of squares in the x direction that the object covers,

    #  height is the amount of squares in the y direction that the object 

    #  covers, radius is the number of squares away you want the sound to be

    #  hears, bgs is the bgs you want to play, and pitch is the pitch value

    #-----------------------------------------------------------------------

    @emissions[5] = Sound_Emission.new

    @emissions[5].setup (29,1,6,50,10,'010-River01',100)

    #-----------------------------------------------------------------------

    # * END Editable Region

    #-----------------------------------------------------------------------

  end

end

#==============================================================================

# ** Sound Emitting Object

#------------------------------------------------------------------------------

#  This class holds all the relevant data for the object which is emitting the 

#  sound. It is accessed through $game_dynamic_sound_emission

#==============================================================================

class Sound_Emission

  #-------------------------------------------------------------------------

  # * Public Instance Variables

  #-------------------------------------------------------------------------

  attr_reader    :bgs

  attr_reader    :radius

  attr_reader    :pitch

  #-------------------------------------------------------------------------

  # * Object Initialization

  #-------------------------------------------------------------------------

  def setup (x, y, width, height, radius, bgs, pitch)

    @rect = Rect.new (x*128, y*128, (width-1)*128, (height-1)*128)

    @radius = radius*128

    @bgs = bgs

    @pitch = pitch

  end

  #-------------------------------------------------------------------------

  # * Volume

  #     Checks position to determine the appropriate volume.

  #-------------------------------------------------------------------------

  def volume (x, y)

    # Determine distance between position and the sound emitting object

    distance = [x - @rect.x, y - @rect.y]

    testers = [@rect.width, @rect.height]

    for i in 0...2 # For both the x distance and the y distance

      # Determine total distance in that direction from the object

      if distance[i] > 0  # IF you are to the right of the object 

        # Take into account the width of the object

        if distance[i] <= testers[i] # If you are above or beside the object

          # Neglect the distance in that direction

          distance[i] = 0  

        else

          # Subtract the width to determine the closest row or column

          distance[i] -= testers[i]

        end

      else

        # Make the value positive

        distance[i] *= -1

      end

    end

    # Calculate the total distance

    total_distance = distance[0] + distance[1]

    ratio = (total_distance.to_f / @radius.to_f)*100 # Get the percentage

    ratio = [ratio,100].min

    ratio = 100 - ratio

    return ratio

  end

end

 

#==============================================================================

# ** Scene Title

#==============================================================================

 

class Scene_Title

  #-------------------------------------------------------------------------

  # * Alias Main to initialize the data class upon startup

  #-------------------------------------------------------------------------

  alias add_data_emissions main

  def main

    # Initialize $data_sound_objects

    $data_sound_objects = Data_Sound_Emission.new

    add_data_emissions

  end

end

 

#==============================================================================

# ** Game Player

#==============================================================================

 

class Game_Player

  #-------------------------------------------------------------------------

  # * Alias update to play the BGS

  #-------------------------------------------------------------------------

  alias update_volume update

  def update

    update_volume

    if $data_sound_objects.emissions[$game_map.map_id] != nil 

      emitter = $data_sound_objects.emissions[$game_map.map_id]

      volume = emitter.volume (@real_x, @real_y)

      bgs = RPG::AudioFile.new (emitter.bgs,volume,emitter.pitch)

      if volume != 0

        $game_system.bgs_play (bgs)

      else

        Audio.bgs_stop

      end

    end

  end

end
 

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