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 want these in my game POSSIBLE? and HOW?

Okay I'm working on a game that I very much love but I would LOVE to include these things, but perhaps some of these are not possible in RMXP. If they ARE possible is there already scripts made or do I need a scripter? I can search for premades myself but mostly this is for if I can find out if they are even possible.

1. Relationship System
I would like a system (system?) that would put simple elements in my game that would allow the player to make friends, enemies, boyfriends/girlfriends, etc. But it would be simple like, change what they say, maybe move in with you, etc. But nothing fancy.



2. Dance Contest
I want to include a contest where player talks to a hostess and then goes on the floor and the Hostess calls out something like "Down, down, right!" and the player would have to execute this in order in a certain amount of time and after a while the player will receive a prize or a pirze for making it so far in the game.


3a. Banking System
Simple. Deposit, withdraw, gain interest, get loans.


3b. Credit System
This goes with the one above. In which player has a credit card and can not buy certain things with so many loans out. Or they're credit goes down if they have to many loans.


4. Gambling Games
I want my player to be able to walk up to a slot machine and table and a game of blackjack or a slot machine would pop up.

5. + 6. Buying house and roomates
Simple, I want the player to be able to buy a house and have a roommate move in. This would have them home at night and in their usual spot during the day and the players money would go up (rent or shared funds).


7. Online Trading
This is probably the most difficult and important one! I would like the game to access the internet and trade/battle with other people who have the same game. They would have permanent ID numbers so they can trade with their friends, etc.
 
Hey there. :]
You got quite a vision for your game, don't you? At first glance, I know scripts for most of these exist but some of these may be better with events. Let's see ...

1. I'm actually working on something similar on my game. I have a "Harvest Moon" styled affection system going on via events. I store a variable for which ever person(all girls in my game)you can affect with decisions etc. and via events, add or subtract to the variable. (Also sticking with Harvest Moon, you can check how much affection you have buy reading her diary and just reading the variable amount via \v[#]. So in key events later in the game, I can add conditional branches like .. "\v[1] is 10 or higher" blah blah "else" blah blah. To add or subtract affection, I simply ask the player to make a decision and based on the girls personality, they'll either like you more or like you less:
Show Choices: Let's go on a date!, I like someone else
Choice 1: Control Variable 1 +1
Choice 2: Control Variable 1 -1

I think you can get it from there. :]

2. Not particularly sure of an existing script of this, but I'm sure it's possible with events. The only script that sounds close to what you may need would be the Ocarina System by Rudy_Guillan. I'm sure other people can be more help here.

3a. Now I know this one has a script out. :] I use a lot of SephirothSpawn and NearFantastica scripts, you can look them up since they have a great variety of scripts to choose from. I think this is the one you're looking for:
Code:
#==============================================================================

# Banking System

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

#   Created By SephirothSpawn (12.03.05)

#   Last Updated: 12.03.05

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

 

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

# ** Scene_Title

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

class Scene_Title

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

  # * Alias Command: New Game

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

  alias bank_command_new_game command_new_game

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

  # * Command: New Game

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

  def command_new_game

    $game_bank = Game_BankSystem.new

    bank_command_new_game

  end

end

 

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

# ** Window_RefreshCommand

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

class Window_RefreshCommand < Window_Selectable

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

  # * Object Initialization

  #     width    : window width

  #     commands : command text string array

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

  def initialize(width, commands)

    # Compute window height from command quantity

    super(0, 0, width, commands.size * 32 + 32)

    @item_max = commands.size

    @commands = commands

    refresh

    self.index = 0

  end

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

  # * Refresh

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

  def refresh(commands = @commands)

    @commands = commands

    @item_max = commands.size

    if self.contents != nil

      self.contents.dispose

      self.contents = nil

    end

    self.contents = Bitmap.new(width - 32, @item_max * 32)

    for i in 0...@item_max

      draw_item(i, normal_color)

    end

  end

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

  # * Draw Item

  #     index : item number

  #     color : text color

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

  def draw_item(index, color)

    self.contents.font.color = color

    self.contents.draw_text(0, 32 * index, self.contents.width - 8, 32, @commands[index], 1)

  end

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

  # * Disable Item

  #     index : item number

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

  def disable_item(index)

    draw_item(index, disabled_color)

  end

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

  # * Undisable Item

  #     index : item number

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

  def disable_item(index)

    draw_item(index, normal_color)

  end

end

 

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

# ** Game_BankSystem

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

class Game_BankSystem

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

  # * Public Instance Variables

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

  attr_accessor :account_balance

  attr_accessor :interest_rate

  attr_accessor :saving_bonds

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

  # * Object Initialization

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

  def initialize

    @account_balance = 0

    @interest_rate = 1

    @saving_bonds = []

    @last_interest_time = 0

  end

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

  # * Update

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

  def update

    # Updates Deposited Amount

    interest_time = (Graphics.frame_count / Graphics.frame_rate - @last_interest_time) / 3600.0

    interest_amt = (@account_balance * @interest_rate / 100.0 * interest_time).to_i

    if interest_amt > 0

      @last_interest_time = Graphics.frame_count / Graphics.frame_rate

      @account_balance += interest_amt

      # Refreshes Data Windows

      $scene.refresh_windows

    end

  end

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

  # * Deposit

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

  def deposit(amount)

    $game_party.lose_gold(amount)

    @account_balance += amount

  end

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

  # * Withdraw

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

  def withdraw(amount)

    @account_balance -= amount

    $game_party.gain_gold(amount)

  end

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

  # * Add Savings Bond

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

  def add_bond(bond)

    @saving_bonds.push(bond)

    @saving_bonds.sort! {|a, b| a.name <=> b.name}

  end

end

 

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

# ** Savings_Bond

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

class Savings_Bond

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

  # * Public Instance Variables

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

  attr_accessor :name

  attr_accessor :cost

  attr_accessor :interest_rate

  attr_accessor :length

  attr_accessor :time_bought

  attr_accessor :time_finished

  attr_accessor :mature_value

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

  # * Object Initialization

  #     name           : Savings Bond Name

  #     cost             : Savings Bond Cost

  #     interest_rate : Savings Bond Interest Rate (In Percent)

  #     length          : Length of Hours until Mature

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

  def initialize(name, cost, interest_rate, length)

    @name = name

    @cost = cost

    @interest_rate = interest_rate

    @length = length

    @mature_value = (@cost * (1+ @interest_rate / 100.0)).to_i

  end

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

  # * Set Times

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

  def set_times

    @time_bought = Graphics.frame_count / Graphics.frame_rate

    @time_finished = @time_bought + @length * 3600

  end

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

  # * Make Time to HH:MM:SS

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

  def return_time(time)

    hours      = time / 60 / 60

    minutes   = time / 60 % 60

    seconds   = time % 60

    return sprintf("%02d:%02d:%02d", hours, minutes, seconds)

  end

end

 

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

# ** Window_BankNumber

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

class Window_BankNumber < Window_Base

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

  # * Object Initialization

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

  def initialize

    super(640, 272, 240, 192)

      self.opacity = 175

    self.contents = Bitmap.new(width - 32, height - 32)

  end

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

  # * Refresh

  #     money  : Gold being...

  #     type      : Deposit or Withdraw

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

  def refresh(money, type)

    contents.clear

    # Deposit or Withdraw

    contents.font.color = system_color

    contents.draw_text(0, 0, contents.width, 24, "Amount to #{type}", 1)

    if type == "Deposit"

      # Draws Game Party Gold

      contents.draw_text(4, 48, contents.width, 24, "Current #{$data_system.words.gold}:")

      contents.font.color = normal_color

      contents.draw_text(-4, 48, contents.width, 24, $game_party.gold.to_s, 2)

    else

      # Draws Account Balance

      contents.draw_text(4, 48, contents.width, 24, "Account Balance:")

      contents.font.color = normal_color

      contents.draw_text(-4, 48, contents.width, 24, $game_bank.account_balance.to_s, 2)

    end

    # Draws Money Being Deposited or Withdrawn

    contents.font.color = system_color

    contents.draw_text(4, 72, contents.width, 24, "#{type} Amount:")

    contents.font.color = normal_color

    contents.draw_text(-4, 72, contents.width, 24, "- #{money}", 2)

    # Draws Line

    line = ""

    while contents.text_size(line).width < contents.width

      line += "-"

    end

    contents.draw_text(0, 96, contents.width, 24, line, 2)

    # Draws Game Party Gold Amont

    contents.font.color = system_color

    contents.draw_text(4, 112, contents.width, 32, "#{$data_system.words.gold} After:")

    amount = $game_party.gold

    amount += type == "Deposit" ? -money : money

    contents.font.color = normal_color

    contents.draw_text(-4, 112, contents.width, 32, amount.to_s, 2)

    # Draws Deposit Amont

    amount = $game_bank.account_balance

    amount += type == "Deposit" ? money : -money

    contents.font.color = system_color

    contents.draw_text(4, 136, contents.width, 32, "Balance After:")

    contents.font.color = normal_color

    contents.draw_text(-4, 136, contents.width, 32, amount.to_s, 2)

  end

end

 

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

# ** Window_BankBio

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

class Window_BankBio < Window_Base

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

  # * Object Initialization

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

  def initialize

    super(-240, 272, 240, 192)

      self.opacity = 175

    self.contents = Bitmap.new(width - 32, height - 32)

    refresh

  end

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

  # * Refresh

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

  def refresh

    contents.clear

    # Deposit or Withdraw

    contents.font.color = system_color

    # Draws Actor Name in Postition 1

    contents.font.color = normal_color

    contents.draw_text(0, 0, contents.width, 24, "#{$game_party.actors[0].name}", 1)

    # Draws Game Party Gold

    contents.font.color = system_color

    contents.draw_text(4, 32, contents.width, 24, "Current #{$data_system.words.gold}:")

    contents.font.color = normal_color

    contents.draw_text(-4, 32, contents.width, 24, $game_party.gold.to_s, 2)

    # Draws Account Balance

    contents.font.color = system_color

    contents.draw_text(4, 56, contents.width, 24, "Account Balance:")

    contents.font.color = normal_color

    contents.draw_text(-4, 56, contents.width, 24, $game_bank.account_balance.to_s, 2)

    # Draws Number of Savings Bond's

    contents.font.color = system_color

    contents.draw_text(4, 80, contents.width, 24, "Bonds Owned:")

    contents.font.color = normal_color

    contents.draw_text(-4, 80, contents.width, 24, $game_bank.saving_bonds.size.to_s, 2)

    # Draws Value of Savings Bond's

    value = 0

    $game_bank.saving_bonds.each { |x| value += x.mature_value}

    contents.font.color = system_color

    contents.draw_text(4, 104, contents.width, 24, "Bonds Value:")

    contents.font.color = normal_color

    contents.draw_text(-4, 104, contents.width, 24, value.to_s, 2)

    # Draws Current Interest Rate

    contents.font.color = system_color

    contents.draw_text(4, 136, contents.width, 24, "Interest Rate:")

    contents.font.color = normal_color

    contents.draw_text(-4, 136, contents.width, 24, "#{$game_bank.interest_rate} %", 2)

  end

end

 

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

# ** Window_Bond

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

class Window_Bond < Window_Base

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

  # * Object Initialization

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

  def initialize

    super(-240, 264, 240, 200)

      self.opacity = 175

    self.contents = Bitmap.new(width - 32, height - 32)

  end

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

  # * Refresh

  #     bond    : Savings Bond

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

  def refresh(bond, bought = false)

    contents.clear

    unless bond == nil

      # Draws Bond Name

      contents.font.color = system_color

      contents.draw_text(0, 0, contents.width, 24, bond.name, 1)

      # Draws Bond Cost

      contents.font.color = system_color

      contents.draw_text(4, 24, contents.width, 24, "Bond Cost:")

      contents.font.color = normal_color

      contents.draw_text(-4, 24, contents.width, 24, bond.cost.to_s, 2)

      # Draws Bond Mature Value

      contents.font.color = system_color

      contents.draw_text(4, 48, contents.width, 24, "Mature Value:")

      contents.font.color = normal_color

      contents.draw_text(-4, 48, contents.width, 24, "#{bond.mature_value}", 2)

      # Draws Bond Interest Rate

      contents.font.color = system_color

      contents.draw_text(4, 72, contents.width, 24, "Interest Rate:")

      contents.font.color = normal_color

      contents.draw_text(-4, 72, contents.width, 24, "#{bond.interest_rate} %", 2)

      # Draws Length until Maturity

      contents.font.color = system_color

      contents.draw_text(4, 96, contents.width, 24, "Maturity Time:")

      contents.font.color = normal_color

      contents.draw_text(-4, 96, contents.width, 24, "#{bond.length} Hours", 2)

      # Display only if Purchased CD

      if bought

        # Draws Time Bought

        contents.font.color = system_color

        contents.draw_text(4, 120, contents.width, 24, "Time Bought:")

        contents.font.color = normal_color

        contents.draw_text(-4, 120, contents.width, 24, bond.return_time(bond.time_bought), 2)

        # Draws Time Finished

        contents.font.color = system_color

        contents.draw_text(4, 144, contents.width, 24, "Time Finished:")

        contents.font.color = normal_color

        contents.draw_text(-4, 144, contents.width, 24, bond.return_time(bond.time_finished), 2)

      end

    end

  end

end

 

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

# ** Scene_Bank

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

class Scene_Bank

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

  # * Object Initialization

  #     interest rate   :   Changes Current Interest Rate (Leave 0 for no Change)

  #     bonds           :   Avaliable CD's For Purchasing

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

  def initialize(interest_rate = $game_bank.interest_rate, 

      bonds = [ Savings_Bond.new("CD-7", 100, 7.5, 7), Savings_Bond.new("CD-14", 500, 15, 14)])

    $game_bank.interest_rate = interest_rate unless interest_rate == 0

    @bonds = bonds

  end

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

  # * Main Processing

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

  def main

    # Current Phase

    @phase = -1

    # Refreshing Variables

    @amount, @depositing = 0, true

    @current_bond, @bond_bought = nil, false

    # Make sprite set

    @spriteset = Spriteset_Map.new

    # Help Window

    @help_window = Window_Help.new

      @help_window.y, @help_window.opacity = -64, 175

      @help_window.set_text("Welcome to the Bank", 1)

    # Bank Bio

    @bank_bio_window = Window_BankBio.new

    # Avaliable Bond Information Display Window

    @av_bond_display_window = Window_Bond.new

    # Owned Bond Information Display Window

    @own_bond_display_window = Window_Bond.new

    # Main Command

    @main_command = Window_RefreshCommand.new(180, [

        "Deposit #{g_word = $data_system.words.gold}",

        "Withdraw #{g_word}", "Purchase Bond", "Get Mature Bond", "Exit"])

      @main_command.x, @main_command.y, @main_command.opacity = 644, 272, 175

      @main_command.active = false

    # Bank Number Window

    @bank_number_window = Window_BankNumber.new

    # Avaliable Bonds Command

    commands = []

    @bonds.each {|x| commands.push(x.name)}; commands.push("Back")

    @av_bond_command = Window_RefreshCommand.new(180, commands)

      @av_bond_command.x, @av_bond_command.y = 644, 272

      @av_bond_command.height, @av_bond_command.opacity = 192, 175

      @av_bond_command.active = false

    # CD's Have

    @own_bond_command = Window_RefreshCommand.new(180, get_cd_list)

      @own_bond_command.x, @own_bond_command.y = 644, 272

      @own_bond_command.height, @own_bond_command.opacity = 192, 175

      @own_bond_command.active = false

    # Scene Objects

    @objects = [@spriteset, @help_window, @bank_bio_window, @av_bond_display_window, 

        @own_bond_display_window, @main_command, @bank_number_window,

        @av_bond_command, @own_bond_command]

    # Execute transition

    Graphics.transition

    # Main loop

    while $scene == self

      # Update game screen

      Graphics.update

      # Update input information

      Input.update

      # Update Objects

      @objects.each {|x| x.update}

      # Updates Bank System

      $game_bank.update

      # Frame update

      update

    end

    # Prepare for transition

    Graphics.freeze

    # Dispose of windows

    @objects.each {|x| x.dispose}

  end

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

  # * Frame Update

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

  def update

    # Splits Phases Up

    case @phase

    when -1 # Intro Phase

      intro_update

    when 0  # Main Phase

      main_update

    when 1  # Deposit or Withdraw Phase

      account_update

    when 2  # Buy CD Phase

      buy_bond_update

    when 3  # Get Mature CD Phse

      get_bond_update

    when 99 # Exit Phase

      exit_update

    end

  end

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

  # * Intro Update

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

  def intro_update

    # Moves Window Down

    @help_window.y += 4 if @help_window.y < 0

    if @help_window.y == 0

      # Input Processing

      if Input.trigger?(Input::B)

        $game_system.se_play($data_system.cancel_se)

        # Returns to Scene

        @phase = 99

      elsif Input.trigger?(Input::C)

        $game_system.se_play($data_system.decision_se)

        # Switchs to Main Phase

        @phase = 0

      end

    end

  end

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

  # * Main Update

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

  def main_update

    # Turns On Main Command

    @main_command.active = true

    # Turns Off Other Command Windows

    @av_bond_command.active = @own_bond_command.active = false

    # Moves In Active Windows

    @bank_bio_window.z = @main_command.z = 9999

    @bank_bio_window.x += 32 if @bank_bio_window.x < 16

    @main_command.x -= 25 if @main_command.x > 444

    # Moves Out Inactive Windows

    @av_bond_display_window.x -= 32 if @av_bond_display_window.x > - 240

    [@av_bond_display_window, @own_bond_display_window, @bank_number_window,

      @av_bond_command, @own_bond_command].each {|window| window.z = 9995}

    [@av_bond_command, @own_bond_command].each {|command|

      command.x += 25 if command.x < 644}

    @own_bond_display_window.x -= 25 if @own_bond_display_window.x > - 240

    @bank_number_window.x += 32 if @bank_number_window.x < 640

    # Sets Help Window

    case @main_command.index

      when 0; @help_window.set_text("Deposit Money Into your Account", 1)

      when 1; @help_window.set_text("Withdraw Money From your Account", 1)

      when 2; @help_window.set_text("Purchase a Savings Bond", 1)

      when 3; @help_window.set_text("Take Out Mature Savings Bond", 1)

      when 4; @help_window.set_text("Exit Bank", 1)

    end

    # Input Processing

    if Input.trigger?(Input::B) # Returns to Map

      $game_system.se_play($data_system.cancel_se)

      @phase = 99

    elsif Input.trigger?(Input::C)

      $game_system.se_play($data_system.decision_se)

      case @main_command.index

      when 0  # Deposit

        @amount, @depositing = 0, true

        refresh_windows

        @help_window.set_text("Deposit #{@amount} #{$data_system.words.gold}", 1)

        @phase = 1

      when 1  # Withdraw

        @amount, @depositing = 0, false

        refresh_windows

        @help_window.set_text("Withdraw #{@amount} #{$data_system.words.gold}", 1)

        @phase = 1

      when 2  # Buy CD

        @current_bond = @bonds[@av_bond_command.index]

        @bond_bought = false

        refresh_windows

        @phase = 2

      when 3  # Get CD

        @current_bond = $game_bank.saving_bonds[@own_bond_command.index]

        @bond_bought = true

        refresh_windows

        @phase = 3

      when 4  # Exit Bank

        @phase = 99

      end

    end

  end

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

  # * Accpunt Update

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

  def account_update

    # Turns Off Command Windows

    @main_command.active = @av_bond_command.active = @own_bond_command.active = false

    # Moves In Active Windows

    @bank_bio_window.z = @bank_number_window.z = 9999

    @bank_bio_window.x += 32 if @bank_bio_window.x < 16

    @bank_number_window.x -= 32 if @bank_number_window.x > 384

    # Moves Out Inactive Windows

    @av_bond_display_window.z = @own_bond_display_window.z =

      @main_command.z = @av_bond_command.z = @own_bond_command.z = 9995

    @av_bond_display_window.x -= 32 if @av_bond_display_window.x > - 240

    [@own_bond_display_window].each {|window| window.x -= 25 if window.x > - 240}

    [@main_command, @av_bond_command, @own_bond_command].each {|command|

        command.x += 25 if command.x < 644}

    # Input Processing

    if Input.trigger?(Input::B)

      $game_system.se_play($data_system.cancel_se)

      @phase = 0

    elsif Input.trigger?(Input::C)

      $game_system.se_play($data_system.shop_se)

      if @depositing

        $game_bank.deposit(@amount)

        refresh_windows

        @phase = 0

      else

        $game_bank.withdraw(@amount)

        refresh_windows

        @phase = 0

      end

    elsif Input.repeat?(Input::LEFT) && Input.press?(Input::LEFT)

      if @amount > 0

        $game_system.se_play($data_system.cursor_se)

        @amount -= 1 

        refresh_windows

        @help_window.set_text("#{@depositing ? 'Deposit' : 'Withdraw'} #{@amount} #{$data_system.words.gold}", 1)

      else

        $game_system.se_play($data_system.buzzer_se)

      end

    elsif Input.repeat?(Input::RIGHT) && Input.press?(Input::RIGHT)

      if @depositing

        if @amount < $game_party.gold

          $game_system.se_play($data_system.cursor_se)

          @amount += 1 

          refresh_windows

          @help_window.set_text("#{@depositing ? 'Deposit' : 'Withdraw'} #{@amount} #{$data_system.words.gold}", 1)

        else

          $game_system.se_play($data_system.buzzer_se)

        end

      else

        if @amount < $game_bank.account_balance

          $game_system.se_play($data_system.cursor_se)

          @amount += 1 

          refresh_windows

          @help_window.set_text("#{@depositing ? 'Deposit' : 'Withdraw'} #{@amount} #{$data_system.words.gold}", 1)

        else

          $game_system.se_play($data_system.buzzer_se)

        end

      end

    elsif Input.repeat?(Input::UP) && Input.press?(Input::UP)

      if @amount == 0

        $game_system.se_play($data_system.buzzer_se)

      else

        $game_system.se_play($data_system.cursor_se)

        @amount > 10 ? @amount -= 10 : @amount = 0

        refresh_windows

        @help_window.set_text("#{@depositing ? 'Deposit' : 'Withdraw'} #{@amount} #{$data_system.words.gold}", 1)

      end

    elsif Input.repeat?(Input::DOWN) && Input.press?(Input::DOWN)

      if @depositing

        if @amount < $game_party.gold

          $game_system.se_play($data_system.cursor_se)

          @amount < $game_party.gold - 10 ? @amount += 10 : @amount = $game_party.gold

          refresh_windows

          @help_window.set_text("#{@depositing ? 'Deposit' : 'Withdraw'} #{@amount} #{$data_system.words.gold}", 1)

        else

          $game_system.se_play($data_system.buzzer_se)

        end

      else

        if @amount < $game_bank.account_balance

          $game_system.se_play($data_system.cursor_se)

          @amount < $game_bank.account_balance - 10 ? @amount += 10 : @amount = $game_bank.account_balance

          refresh_windows

          @help_window.set_text("#{@depositing ? 'Deposit' : 'Withdraw'} #{@amount} #{$data_system.words.gold}", 1)

        else

          $game_system.se_play($data_system.buzzer_se)

        end

      end

    elsif Input.repeat?(Input::L) && Input.press?(Input::L)

      if @amount == 0

        $game_system.se_play($data_system.buzzer_se)

      else

        $game_system.se_play($data_system.cursor_se)

        @amount > 100 ? @amount -= 100 : @amount = 0

        refresh_windows

        @help_window.set_text("#{@depositing ? 'Deposit' : 'Withdraw'} #{@amount} #{$data_system.words.gold}", 1)

      end

    elsif Input.repeat?(Input::R) && Input.press?(Input::R)

      if @depositing

        if @amount < $game_party.gold

          $game_system.se_play($data_system.cursor_se)

          @amount < $game_party.gold - 100 ? @amount += 100 : @amount = $game_party.gold

          refresh_windows

          @help_window.set_text("#{@depositing ? 'Deposit' : 'Withdraw'} #{@amount} #{$data_system.words.gold}", 1)

        else

          $game_system.se_play($data_system.buzzer_se)

        end

      else

        if @amount < $game_bank.account_balance

          $game_system.se_play($data_system.cursor_se)

          @amount < $game_bank.account_balance - 100 ? @amount += 100 : @amount = $game_bank.account_balance

          refresh_windows

          @help_window.set_text("#{@depositing ? 'Deposit' : 'Withdraw'} #{@amount} #{$data_system.words.gold}", 1)

        else

          $game_system.se_play($data_system.buzzer_se)

        end

      end

    end

  end

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

  # * Buy Bond Update

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

  def buy_bond_update

    # Turns On Avaliable Bond Window

    @av_bond_command.active = true

    # Turns Off Other Command Windows

    @main_command.active = @own_bond_command.active = false

    # Moves In Active Windows

    @av_bond_display_window.z = @av_bond_command.z = 9999

    @av_bond_display_window.x += 32 if @av_bond_display_window.x < 16

    @av_bond_command.x -= 25 if @av_bond_command.x > 444

    # Moves Out Inactive Windows

    [@bank_bio_window, @bank_number_window, @own_bond_display_window, 

      @main_command, @own_bond_command].each {|window| window.z = 9995}

    @bank_bio_window.x -= 32 if @bank_bio_window.x > - 240

    @bank_number_window.x += 32 if @bank_number_window.x < 640

    @own_bond_display_window.x -= 25 if @own_bond_display_window.x > - 240

    [@main_command, @own_bond_command].each {|command| command.x += 25 if command.x < 644}

    # Input Processing

    if Input.trigger?(Input::B)

      $game_system.se_play($data_system.cancel_se)

      @phase = 0

    elsif Input.trigger?(Input::C)

      if @av_bond_command.index == @bonds.size

        $game_system.se_play($data_system.cancel_se)

        @phase = 0

      else

        current_bond = @bonds[@av_bond_command.index].dup

        if current_bond.cost > $game_party.gold

          $game_system.se_play($data_system.buzzer_se)

        else

          $game_system.se_play($data_system.decision_se)

          $game_party.lose_gold(current_bond.cost)

          current_bond.set_times

          $game_bank.add_bond(current_bond)

          refresh_windows

          @phase = 0

        end

      end

    # Updates Current Bond

    elsif Input.trigger?(Input::UP) or Input.trigger?(Input::DOWN)

      @current_bond = @bonds[@av_bond_command.index]

      refresh_windows

    end

  end

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

  # * Get Bond Update

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

  def get_bond_update

    # Turns On Avaliable Bond Window

    @own_bond_command.active = true

    # Turns Off Other Command Windows

    @main_command.active = @av_bond_command.active = false

    # Moves In Active Windows

    [@own_bond_display_window, @own_bond_command].each {|window| window.z = 9999}

    @own_bond_display_window.x += 32 if @own_bond_display_window.x < 16

    @own_bond_command.x -= 25 if @own_bond_command.x > 444

    # Moves Out Inactive Windows

    [@bank_bio_window, @av_bond_display_window, @main_command, @bank_number_window, 

      @av_bond_command].each {|window| window.z = 9995}

    [@bank_bio_window, @av_bond_display_window].each {|window|

      window.x -= 32 if window.x > - 240}

    [@main_command, @av_bond_command].each {|window|

      window.x += 25 if window.x < 640}

    @bank_number_window.x += 32 if @bank_number_window.x < 640

    # Input Processing

    if Input.trigger?(Input::B)

      $game_system.se_play($data_system.cancel_se)

      @phase = 0

    elsif Input.trigger?(Input::C)

      if @own_bond_command.index == $game_bank.saving_bonds.size

        $game_system.se_play($data_system.cancel_se)

        @phase = 0

      else

        current_bond = $game_bank.saving_bonds[@own_bond_command.index]

        if current_bond.time_finished > Graphics.frame_count / Graphics.frame_rate

          $game_system.se_play($data_system.buzzer_se)

          @help_window.set_text("Savings Bond Not Mature Yet!", 1)

        else

          $game_system.se_play($data_system.decision_se)

          $game_party.gain_gold(current_bond.mature_value)

          $game_bank.saving_bonds.delete_at[@own_bond_command.index]

          refresh_windows

          @phase = 0

        end

      end

    elsif Input.trigger?(Input::UP) or Input.trigger?(Input::DOWN)

      @current_bond = $game_bank.saving_bonds[@own_bond_command.index]

      refresh_windows

    end

  end

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

  # * Exit Update

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

  def exit_update

    # Moves Out Windows

    @help_window.y -= 4 if @help_window.y > - 64

    [@bank_bio_window, @av_bond_display_window].each {|window| window.x -= 32 if window.x > - 240}

    [@own_bond_display_window].each {|window| window.x -= 25 if window.x > - 240}

    [@main_command, @bank_number_window, @av_bond_command,

      @own_bond_command].each {|window| window.x += 25 if window.x < 640}

    # Checks To Make Sure All Windows Are Out

    if @help_window.y <= - 64 && @bank_bio_window.x <= - 240 && @av_bond_display_window.x <= - 240 &&

        @own_bond_display_window.x <= - 240 && @main_command.x >= 644 &&

        @bank_number_window.x >= 640 && @av_bond_command.x >= 640 && @own_bond_command.x >= 640

      $scene = Scene_Map.new

    end

  end

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

  # * Get CD List

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

  def get_cd_list

    commands = []

    $game_bank.saving_bonds.each {|x| commands.push(x.name)}

    commands.push("Back")

    return commands

  end

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

  # * Refresh Windows

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

  def refresh_windows

    @bank_bio_window.refresh

    @av_bond_display_window.refresh(@current_bond, @bond_bought)

    @own_bond_display_window.refresh(@current_bond, @bond_bought)

    @bank_number_window.refresh(@amount, @depositing ? "Deposit" : "Withdraw")

    @own_bond_command.refresh(get_cd_list)

  end

end

I think that script has pretty much anything bank related you may need.

4. Ooh, not so sure about that one. I think that'd be best with scripts if you want something elaborate or fancy. Otherwise, events using "Randomize" .. I think that would be along the lines of something simpiler.

5/6. Events! But it sounds like you'll need a time system to do things like .. when you want rent to be charged, have them home at night, etc . . .

7. The most difficult, time consuming thing on your list. I know nothing about the online capabilities of RMXP, but if you search around for NetPlay+, I think you'll get the answers you seek.

So they're definately possible!
If you have any other questions, feel free to ask. :]
 
Oh wow.
That was incredibly helpful.

That's so awesome I have relationships now. Lol.

I do have a time system, but it's pretty random so I'll play around with it.

Thank you sooooo much!


Edit: Who was who made that script? I might use it and plan to give them the proper credit.

Thanks again, Jay
 
For your second script, If you get the Input script by Cybersam, Make some images and create some events, your dance contest should be simple xD

If you really want help with this i can show you how to create a simple system, and give it to you to customize at your own will, Just PM me if you need any help!!!
 
klkl, Ill make you a demo of the system, if you want anything else added, just ask and i can help you with it :)

EDIT: I may take a little time doing this, I have to put a few ideas to test, Should have it done soon tho
 

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