The RPG Maker Resource Kit

RMRK RPG Maker Creation => RPG Maker General => General Scripting => Topic started by: atiebatie99 on June 11, 2009, 04:51:18 PM

Title: Scripting language
Post by: atiebatie99 on June 11, 2009, 04:51:18 PM
Hi guys,

What scripting language used the makers of rpg maker vx!?
I've search for a long time and couldn't find it

greetzz
atiebatie99
Title: Re: Scripting language
Post by: Zylos on June 11, 2009, 05:25:53 PM
It's Ruby, I believe.
Title: Re: Scripting language
Post by: Kokowam on June 12, 2009, 12:24:04 AM
It's Ruby but Enterbrain adapted it to make RGSS in order to make it easier for people to script (I think).
Title: Re: Scripting language
Post by: Grafikal on June 12, 2009, 12:40:56 AM
RGSS (Ruby Game Scripting System)
Title: Re: Scripting language
Post by: atiebatie99 on June 12, 2009, 01:54:13 PM
Thanks everyone for fast Re

greetzz
atiebatie99

btw;D

I've try to make my own option (world map)
and try this (Scene_Worldmap)
[spoiler]#==============================================================================
# ** Scene_Worldmap
#------------------------------------------------------------------------------
#  This class performs the menu option World Map.
#==============================================================================

class Scene_Worldmap < Scene_Base
  #--------------------------------------------------------------------------
  # * Start processing
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    create_command_window
    @gold_window = Window_Gold.new(0, 360)
    @status_window = Window_MenuStatus.new(160, 0)
  end
  #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
    @image = Sprite.new
    @image.bitmap = Cache.picture("Exit")
    @image.ox += 1
    @image.oy += 1
  end
  #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @command_window.dispose
    @status_window.dispose
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
  end
  #--------------------------------------------------------------------------
  # * Create Command Window
  #--------------------------------------------------------------------------
  def create_command_window
    s1 = Vocab::item
    s2 = "Save"
    @command_window = Window_Command.new(160, [s1,s2])
    @command_window.index = @menu_index
    end
  #--------------------------------------------------------------------------
  # * Update Command Selection
  #--------------------------------------------------------------------------
  def update_command_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Menu.new
    elsif Input.trigger?(Input::C)
      if $game_party.members.size == 0 and @command_window.index < 4
        Sound.play_book
        return
      elsif $game_system.save_disabled and @command_window.index == 4
        Sound.play_book
        return
      end
      Sound.play_decision
      case @command_window.index
      when 0      # Item
        $scene = Scene_Item.new     
      when 1      # Save
        $scene = Scene_File.new(true, false, false)
    end
  end
end
[/spoiler]
But he gives an error:
script "window_selectable" line 213: NotMethodError occurred.
undefined method ` <' for nil:NilClass

then I go to the scripteditor and he goes to window_selectable (look at my attached)


maybe this helps
Scene_Menu:
[spoiler]#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
#  This class performs the menu screen processing.
#==============================================================================

class Scene_Menu < Scene_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     menu_index : command cursor's initial position
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  #--------------------------------------------------------------------------
  # * Start processing
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    create_command_window
    @gold_window = Window_Gold.new(0, 360)
    @status_window = Window_MenuStatus.new(160, 0)
  end
  #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @command_window.dispose
    @gold_window.dispose
    @status_window.dispose
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @command_window.update
    @gold_window.update
    @status_window.update
    if @command_window.active
      update_command_selection
    elsif @status_window.active
      update_actor_selection
    end
  end
  #--------------------------------------------------------------------------
  # * Create Command Window
  #--------------------------------------------------------------------------
  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = Vocab::status
    s5 = Vocab::save
    s6 = Vocab::game_end
    s7 = "World Map"
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5,s7, s6])
    @command_window.index = @menu_index
    if $game_party.members.size == 0          # If number of party members is 0
      @command_window.draw_item(0, false)     # Disable item
      @command_window.draw_item(1, false)     # Disable skill
      @command_window.draw_item(2, false)     # Disable equipment
      @command_window.draw_item(3, false)     # Disable status
    end
    if $game_system.save_disabled             # If save is forbidden
      @command_window.draw_item(4, false)     # Disable save
    end
  end
  #--------------------------------------------------------------------------
  # * Update Command Selection
  #--------------------------------------------------------------------------
  def update_command_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
    elsif Input.trigger?(Input::C)
      if $game_party.members.size == 0 and @command_window.index < 4
        Sound.play_buzzer
        return
      elsif $game_system.save_disabled and @command_window.index == 4
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      case @command_window.index
      when 0      # Item
        $scene = Scene_Item.new
      when 1,2,3  # Skill, equipment, status
        start_actor_selection
      when 4      # Save
        $scene = Scene_File.new(true, false, false)
      when 5      # World Map
        $scene = Scene_Worldmap.new
      when 5      # End Game
        $scene = Scene_End.new
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Start Actor Selection
  #--------------------------------------------------------------------------
  def start_actor_selection
    @command_window.active = false
    @status_window.active = true
    if $game_party.last_actor_index < @status_window.item_max
      @status_window.index = $game_party.last_actor_index
    else
      @status_window.index = 0
    end
  end
  #--------------------------------------------------------------------------
  # * End Actor Selection
  #--------------------------------------------------------------------------
  def end_actor_selection
    @command_window.active = true
    @status_window.active = false
    @status_window.index = -1
  end
  #--------------------------------------------------------------------------
  # * Update Actor Selection
  #--------------------------------------------------------------------------
  def update_actor_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      end_actor_selection
    elsif Input.trigger?(Input::C)
      $game_party.last_actor_index = @status_window.index
      Sound.play_decision
      case @command_window.index
      when 1  # skill
        $scene = Scene_Skill.new(@status_window.index)
      when 2  # equipment
        $scene = Scene_Equip.new(@status_window.index)
      when 3  # status
        $scene = Scene_Status.new(@status_window.index)
      end
    end
  end
end
[/spoiler]

bye!
Atiebatie99

btw
I'm not finished I've put in 2 diffrent options not the options that I used in my game
please help???
Title: Re: Scripting language
Post by: Grafikal on June 13, 2009, 04:46:53 AM
~moved to Script Support for your new question.

Also:: I don't know your answer lol.
Title: Re: Scripting language
Post by: modern algebra on June 13, 2009, 05:53:54 AM
I only just looked at it, but I see four errors. First, in your Scene_Menu, around line 98, you have two "when 5"s. One of them has to be a "when 6"; I'm guessing the Exit one.

Second error: at line 18 in the WorldMap part, you have no method definition for (line 18):


  #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
    @image = Sprite.new
    @image.bitmap = Bitmap.new (100, 100)
    @image.bitmap.fill_rect (0, 0, 100, 100, Color.new (128, 224, 98))
    @image.ox += 1
    @image.oy += 1
end


It ought to look like this:


  #--------------------------------------------------------------------------
  # * Start processing
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    create_command_window
    @gold_window = Window_Gold.new(0, 360)
    @status_window = Window_MenuStatus.new(160, 0)
    @image = Sprite.new
    @image.bitmap = Bitmap.new (100, 100)
    @image.bitmap.fill_rect (0, 0, 100, 100, Color.new (128, 224, 98))
    @image.ox += 1
    @image.oy += 1
  end
  #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @command_window.dispose
    @status_window.dispose
  end


You will also need to put another end at the bottom of the script.

Get rid of that end and the comment and put that code inside the start method. Then put @image.dispose inside the dispose method as well.

Error 3: this is the error that is causing your problem.

Around line 50 you have:



  #--------------------------------------------------------------------------
  # * Create Command Window
  #--------------------------------------------------------------------------
  def create_command_window
    s1 = Vocab::item
    s2 = "Save"
    @command_window = Window_Command.new(160, [s1,s2])
    @command_window.index = @menu_index
  end


@menu_index is nil however, because it has not been defined. Remove that line altogether so it looks like:



  #--------------------------------------------------------------------------
  # * Create Command Window
  #--------------------------------------------------------------------------
  def create_command_window
    s1 = Vocab::item
    s2 = "Save"
    @command_window = Window_Command.new(160, [s1,s2])
  end


4:

You should be updaing your command window. Place in the update method:

@command_window.update

There may be other problems, but those are ones I noticed at first glance.
Title: Re: Scripting language
Post by: atiebatie99 on June 13, 2009, 09:32:28 AM
O damn MA your pretty good serious but I have still 2 questions ;D
Where can I set what picture I let to show???
actually I want this in my World Map menu option (see attached)
Sorry for this questions hee beginners learn this from the profs:P

See You
Atiebatie99

PS: I try to make an option to show where what city is photo attached!
PPS: remember I'm just 12 years old!
Title: Re: Scripting language
Post by: modern algebra on June 13, 2009, 01:50:05 PM
Oh, sorry, I misedited your script when I pasted it in a project.

Where I have @image = Bitmap.new, change it back to what you had before, Cache.picture ("name")
Title: Re: Scripting language
Post by: sinkay101 on June 14, 2009, 10:54:05 PM
They have some tools on using ruby somewhere here,or at Rpg VX official forums.
Title: Re: Scripting language
Post by: atiebatie99 on June 17, 2009, 03:45:07 PM
Sorry for this question but I've try to make an option to show where what city is (see my last post for picture) and make this but it doesn't work >:(

scene_worldmap:
[spoiler]#==============================================================================
# ** Scene_Worldmap
#------------------------------------------------------------------------------
#  This class performs the menu option World Map.
#==============================================================================

class Scene_Worldmap < Scene_Base
  #--------------------------------------------------------------------------
  # * Start processing
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    create_command_window
    @image = Sprite.new
    @image.bitmap = Cache.picture("Worldmap")
    @image.ox += 1
    @image.oy += 1
  end
  #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @command_window.dispose
    @status_window.dispose
  end
  #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @command_window.dispose
    @status_window.dispose
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @command_window.update
  end
  #--------------------------------------------------------------------------
  # * Create Command Window
  #--------------------------------------------------------------------------
  def create_command_window
    s1 = "Undrick"
    s2 = "Ticka"
    @command_window = Window_Command.new(160, [s1,s2])
    end
  #--------------------------------------------------------------------------
  # * Update Command Selection
  #--------------------------------------------------------------------------
  def update_command_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Menu.new
    elsif Input.trigger?(Input::C)
      case @command_window.index
      when 0      # Undrick
        $scene = Scene_Undrick.new   
      when 1      # Ticka
        $scene = Scene_Ticka.new
      end
    end
  end
end
[/spoiler]

and this for scene_undrick:
[spoiler]#==============================================================================
# ** Scene_Worldmap
#------------------------------------------------------------------------------
#  This class performs the menu option World Map.
#==============================================================================

class Scene_Undrick < Scene_Worldmap
  #--------------------------------------------------------------------------
  # * Start processing
  #--------------------------------------------------------------------------
  def start
    create_dot_graphic
  #--------------------------------------------------------------------------
  # * Show Image
  #--------------------------------------------------------------------------
def create_dot_graphic
    @image = Sprite.new
    @image.bitmap = Cache.picture("Dot")
    @image.ox -= 200
    @image.oy -= 200
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @command_window.update
      end
    end
  end
end
[/spoiler]
Title: Re: Scripting language
Post by: vgvgf on June 17, 2009, 11:36:29 PM
Quote from: mastermoo420 on June 12, 2009, 12:24:04 AM
It's Ruby but Enterbrain adapted it to make RGSS in order to make it easier for people to script (I think).
Just to clarify things. RPG Maker XP and VX use Ruby as their scripting language. RGSS and RGSS2 are libraries for Ruby, which include all hidden classes, RPG classes and also the default scripts. The default scripts and RPG classes are made in Ruby, but the hidden ones are made in C(Maybe C++) and embedded to Ruby from C.
RGSS is not a language itself, it's just a library for Ruby.