Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - mroedesigns

1
General Discussion / Sandbox Game Concept
January 25, 2012, 04:39:10 am
Simple Life

A concept I've been tossing around for a few days. Thought I'd get some feedback. Keep in mind it's still pretty rough.

   Summary
      Simple Life is a real-time, 2D sandbox game / sim. Players spawn people at will, who will interact with one another, as well as their environment. The environment may be changed via player input, or possibly evolve naturally as a result of the peoples actions.

      Planned Features
      Spawn - as many people as you want, and check up on them at any point.
      Free Will - No need to babysit them, they have a vague idea of what's going on.
      Learning - The people will slowly learn more about each other.
      Groups - Groups, villages, and cultures may grow.

   
   Game Mechanics
      Individuals - Any person not in a group is an individual. Their main goal is their survival, their secondary goal is to gain knowledge.
         - Survival
            A persons survival depends on them having food, and health. Their hunger level will rise at a given rate at all times. If the  hunger level goes out of balance, this person will begin to lose health. Other ways a person could lose health include sickness and enemies.

         - Sickness
            A person may become sick by coming into contact with another sick person, or by eating tainted food.

         - Enemies
            Enemies may be spawned by the player, or may spawn naturally. People can fight off enemies by using certain resources to build tools.

         - Resources
            Food is the primary resource. The other resources are wood, stone, and metal. Resources can be placed by the player, or may spawn randomly.

         - Tools
            A person can only build tools within the range of their knowledge. Wood is the easiest to work with, followed by stone, followed by metal. Tools include the following;
                     Books - Increase a persons knowledge
                     Containers ­- Allow a person to carry resources
                     Weapons - Help a person fight off enemies

         - Knowledge
            If three people with enough knowledge come into contact, a group will begin to form. After a group is formed, other members with similar knowledge can join by coming into contact with that group.
         
              Groups - Groups are a way for people to share knowledge and resources. The logic that people follow when in a group is slightly different than when they are acting as individuals. All members of a group gain 10 knowledge points while in the group.
         - Logic
            As a member of a group, a persons first priority is to sustain themselves as well as the other members in the group. This means that if group member A is full, and group member B is hungry, A may decide to give B their food, so B doesn't have to leave the group to find food. This also means that people in the group with less knowledge may give resources to people in the same group with more knowledge. The logic there is that the people with more knowledge can create better tools, and help protect the group.
            The last thing any member of a group wants to do is leave their group. The only time they will do this is if they start to lose health due to starvation, and have no health. They will wait a short period of time for food from other group members before breaking off. If any member of the group is attacked, all group members will break off and fight the enemies before reforming the group.
2
Tutorials / MRoe's Easy Mass Transparency
January 18, 2012, 02:25:30 am


Easy Mass Transparency

About
Spoiler: ShowHide

This tutorial explains a very simple process to erase backgrounds on multiple images at once, using nothing more than RPG Maker XP. (Would probably work in any RM honestly.)




Tutorial

Image 1 (Problem)
Spoiler: ShowHide


You have a large number of resources all with a single color background that you want to use, but they are in a custom folder. (Example, Blizz ABS Visual Equipment graphics.) Hence, you can't simply import them. But you don't have photoshop, or maybe there are just way too many to do them one at a time that way. Here's your solution.

Step 1 : Start a new project in RPG Maker. You could use an existing project, but it's easier to keep track of if you use a new projecet.

Step 2 : Import all your resources into your pictures folder. If all the backgrounds are the same, you can select the transparent colors on the first image, and press enter repeatedly through the rest.

Step 3 : Find your project in your file explorer, and navigate to /Graphics/Pictures

Step 4 : Copy all your resources to their respective folders. No more backgrounds!

Image 2 : Result
Spoiler: ShowHide


[/left][/spoiler]

3



http://mindcrafters-server.blogspot.com/
Requires Hamachi to play

Hamachi Network :: MindcrafterOfficial
Hamachi Password :: 12345

Minecraft Server IP :: 5.117.17.201




Features
Spoiler: ShowHide

Runecraft Mod
- Allows players to build runes that have various functions
- http://www.minecraftwiki.net/wiki/Mods/Runecraft#Rune_System

Custom Economy
- Earn money by killing monsters
- Buy tools, protection stones, and more!

Protection Stones
- Buy protection stones to guard your house or other areas.


Planned Features
Spoiler: ShowHide

More ways to earn money (jobs, selling, ect.)
Guilds / Clans
Quests
4
Chat / I captured some zombies today.
January 05, 2012, 07:39:26 am
I made a 9-zombie aquarium in my house in minecraft :D Figured someone else might find this as cool as I do.

Spoiler: ShowHide
5
I'm buying a snap storage server for $25 off of a friend of mine. He got it from his uncle for his music and never got around to using it. I dont know jack about servers like this one, and can't find much info online about it surprisingly. Would I be able to host my game off of this with my internet connection?
6
Electronic and Computer Section / Port issues
December 23, 2011, 03:24:48 am
I'm using an actiontec pk5000, and for some reason my ports aren't forwarding anymore  :O.o:

They were working the past few days, and now they aren't. I thought I may have messed up a setting somewhere in the modem config, so I reset back to factory default twice. Still, they aren't working. Any clue what else could be causing an issue? (Firewalls have been checked already)

Spoiler: ShowHide
7
General Discussion / Death in online games
December 19, 2011, 04:40:51 am
So me and one of my developers were talking the other day about player death and how to handle it. I figured Id stop by and see what you guys thought, or like/dislike from online games youve played?

I was thinking either an instant death or timed death (delayed or stopped by a healer), followed by some sort of ghost area or minigame. Just an idea.
8
Recruitment / Mappers, unite!
December 19, 2011, 04:26:44 am
So I know I havent been very active recently, but I am back with good news! Finally got internet again at my apartment! Set up all my computers yesterday, and just finished testing my rmx-os public connection. Everything is in order, which means its back to business for me.

I need mappers. Im not terrible by any means, there is just a lot to do. Ive made a map layout, and as of right now I need 68 maps at least for my initial release. That does not include individual interior maps, either.

Now obviously this is a lot of work. Maybe you dont want to do 68 maps . Maybe you only have time for 67. That is ok, we'll work it out. :V

Seriously, though, I will take any offer. Even if you just want to throw together an outline for a map or two, I would really appreciate it.

Best way to get ahold of me right now is to just reply here. If I get more than one or two people helping Ill set up a repository to make everything easier. If you have any questions please ask. Thanks!  :haha:
9
So Ive set up my new netbook as a remote desktop for both of my old laptops. I was hoping to do all of my game work from that one because It's much easier to use. But when I run my game, the graphics update lags ridiculously bad. I can literally watch the screen update from top to bottom. Is there any way around this or am I just S.O.L.?

The laptop that I keep all my stuff on has a bad battery so its constantly got to be on the charger, and on top of that the charger port is weak. So it basically can't move much at all, which makes it difficult to work on. But with lag that bad, I can't do any testing at all.
10
General Discussion / Creating natural borders
September 26, 2011, 01:32:48 pm
I recently layed out all the maps for my initial release and how they all connect and such so that I could get a better handle on how much work I have left. I've got a lot of 'filler' maps that act as a point of travel between two other main areas. In a lot of these and other open-area maps, I have a problem with creating natural borders to keep the players going in the right direction. Any good ways to get around this?
11
Entertainment / classic.
September 17, 2011, 12:07:39 am
Forewarning, this joke is very explicit.

So there's this talent agent, sitting at his desk one day. And this family walks in. Strong, young guy, late twenties. Trophy wife, and a beautiful son and daughter. So the guy says "We've got a wonderful act for you!".
Talent agent goes "Honestly, it's hard to book family gigs.".
"But, if you let us show you our act I know you'll book us!" the man says.
"Fine, let's see what you've got."
The talent agent takes the family out to the empty theater and takes his seat in the front row.
The man walks out on stage wearing a nazi uniform, and his wife comes out in a pope costume. He immediately bends her over and starts fucking her in the ass as hard as he can. When he finally pulls out, it makes a sound similar to a wet cork coming out of a wine bottle. The man cums all over her ass, and immediately lays down on his back on the stage, as his wife proceeded to shit all over his face and in his open mouth. He gurgles the shit and his cum in his mouth for a while, until he rolls over and throws up all over the stage. His two children then come in from the side, and they start rolling around in the mixture of their mothers shit and their fathers cum and vomit. Meanwhile the man and his wife are shitting on the floor and rubbing it all over themselves. Then the children begin to throw up, which makes the man and wife throw up as well. So all four of them are on stage, throwing up everywhere. The little boy even manages to get a little on the agent sitting in the front row. Once they all finally stop, they look at the agent, and in unison say "TADAAAAAA!!"

The talent agent, chunks of the boys vomit still clinging to his shirt, says "Damn. That was sure one hell of a show." He pauses, "What do you call yourselves?"

The man looks at him and says simply, "The aristocrats."

:naughty:
12
Script Requests / On-Map Modification
September 15, 2011, 05:44:24 am
I need somebody to help me modify the menu script I'm currently using so that it displays on the map, instead of a separate scene. This is needed so that the game doesn't pause when in the menu. Here's the script.

Spoiler: ShowHide

#==============================================================================
# ■ Ring Menu Config Module
# by Reno-s--Joker
#------------------------------------------------------------------------------
# I'm still just getting the hang of modules, but this may make your icon
# changing much easier.
#==============================================================================
module RM_CFG
  #--------------------------------------------------------------------------
  # ● Icons for the addon windows
  #--------------------------------------------------------------------------
  Gold_Icon = 'icon 226'
  Map_Icon = 'icon 318'
  #--------------------------------------------------------------------------
  # ● Icons for the main ring
  #--------------------------------------------------------------------------
  Item_Icon = 'icon 270'
  Skill_Icon = 'icon 22'
  Equip_Icon = 'icon 164'
  Status_Icon = 'icon 357'
  Quest_Icon = 'icon 30'
  Hotkeys_Icon = 'icon 2'
  Exit_Icon = 'icon 1'
  Disabled_Icon = 'icon 2'
  Openmenu_Se = ''
  #--------------------------------------------------------------------------
  # ● Fix for near screen edge hiding, thanks to Landith and Aqua
  #--------------------------------------------------------------------------
  Edge_Hide_Fix = true
end 
#==============================================================================
# ■ End Ring Menu Config Module
#==============================================================================

#==============================================================================
# ■ Window_Gold
# by Reno-s--Joker
#------------------------------------------------------------------------------
#  Shows the amount of gold in the menu.
#  Minor aesthetic modifications made for new menu.
#==============================================================================
class Window_Gold < Window_Base
  #--------------------------------------------------------------------------
  # ● Initialize
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 148, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  #--------------------------------------------------------------------------
  # ● Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    cx = contents.text_size($data_system.words.gold).width
    self.contents.font.color = normal_color
    self.contents.blt(4, 4, RPG::Cache.icon(RM_CFG::Gold_Icon), Rect.new(0, 0, 24, 24), 255)
    self.contents.draw_text(4, 0, 100-cx-2, 32, $game_party.gold.to_s, 2)
    self.contents.font.color = system_color
    self.contents.draw_text(104-cx, 0, cx, 32, $data_system.words.gold, 2)
  end
end
#==============================================================================
# ■ End Window_Gold
#==============================================================================

#==============================================================================
# ■ Window_PlayTime
# by Reno-s--Joker
#------------------------------------------------------------------------------
#  Shows the amount of time spent playing.
#  Minor aesthetic modifications made for new menu.
#==============================================================================
class Window_PlayTime < Window_Base
  #--------------------------------------------------------------------------
  # ● Initialize
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 148, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  #--------------------------------------------------------------------------
  # ● Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    hour, min = $game_system.ates.time.hour, $game_system.ates.time.min
    text = sprintf("%02d:%02d", hour, min)
    self.contents.draw_text(4, 0, 100, 32, text, 2)
  end
  #--------------------------------------------------------------------------
  # ● Update
  #--------------------------------------------------------------------------
  def update
    super
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
      refresh
    end
  end
end
#==============================================================================
# ■ End Window_PlayTime
#==============================================================================


#==============================================================================
# ■ Window_Steps
# by Reno-s--Joker
#------------------------------------------------------------------------------
# Also includes map name (location)
# Replaces the one which comes with the Ring Menu entirely.
# New addition - encounter steps in v 1.1
#==============================================================================
class Window_Steps < Window_Base
  #--------------------------------------------------------------------------
  # ● Initialize
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 148, 128)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  #--------------------------------------------------------------------------
  # ● Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
     #self.contents.font.color = system_color
     #self.contents.draw_text(4, 0, 124, 32, "Steps: " + $game_party.steps.to_s, 0)
     #self.contents.draw_text(4, 32, 124, 32, "Enc. Stps: " + $game_map.encounter_step.to_s, 0)
    # Another thing can be added at y=32 e.g. No. of Kills
    # (from Blizzard's Tons of Addons)
    self.contents.font.color = normal_color
    self.contents.blt(4, 70, RPG::Cache.icon(RM_CFG::Map_Icon), Rect.new(0, 0, 24, 24), 160)
    map_name = $game_map.name.tr("/*","")
    # Just ignore that thing I said before in the other demo... ^^;
    self.contents.draw_text(8, 64, 124, 32, map_name.to_s)
  end
end
#==============================================================================
# ■ End Window_Steps
#==============================================================================

#==============================================================================
# ■ Window_Status
# by Reno-s--Joker
#==============================================================================
#  This window displays full status specs on the status screen.
#==============================================================================
class Window_Status < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     actor : actor
  #--------------------------------------------------------------------------
  def initialize(actor)
    super(0, 0, 480, 320)
    self.contents = Bitmap.new(width - 32, height - 32)
    @actor = actor
    refresh
  end
  #--------------------------------------------------------------------------
  # ● Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    # Draws the actor's battler behind the info
#    draw_actor_picture(@actor, 360, 300)
    # Actor's name
    self.contents.font.size = 32
    draw_actor_name(@actor, 0, 0)
    self.contents.font.size = 20
    # Main stats section
    draw_actor_class(@actor, 0, 24)
    draw_actor_level(@actor, 0, 56)
    draw_actor_state(@actor, 68, 56)
    draw_actor_hp(@actor, 0, 82, 172)
    draw_actor_sp(@actor, 0, 106, 172)
    # Actor parameter section
    draw_actor_parameter(@actor, 0, 132, 0)
    draw_actor_parameter(@actor, 0, 150, 1)
    draw_actor_parameter(@actor, 0, 168, 2)
    draw_actor_parameter(@actor, 0, 186, 3)
    draw_actor_parameter(@actor, 0, 204, 4)
    draw_actor_parameter(@actor, 0, 222, 5)
    draw_actor_parameter(@actor, 0, 240, 6)
    # EXP section
    self.contents.font.color = system_color
    self.contents.draw_text(240, 56, 150, 32, "Total Exp: ")
    tx = contents.text_size("Total Exp: ").width
    draw_actor_exp(@actor, 240, 80)
    self.contents.font.color = normal_color
    self.contents.draw_text(tx + 244, 56, 76, 32, @actor.exp_s, 2)
    # Equipment Section
    self.contents.font.color = system_color
    self.contents.draw_text(240, 120, 88, 32, "Equipment: ")
    draw_item_name($data_weapons[@actor.weapon_id], 240, 148)
    draw_item_name($data_armors[@actor.armor1_id], 240, 172)
    draw_item_name($data_armors[@actor.armor2_id], 240, 196)
    draw_item_name($data_armors[@actor.armor3_id], 240, 220)
    draw_item_name($data_armors[@actor.armor4_id], 240, 246)
  end
  #--------------------------------------------------------------------------
  # ● Defines the drawing processes
  #--------------------------------------------------------------------------
  def draw_actor_picture(actor, x, y)
#    bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
#    x2 = bitmap.width
#    y2 = bitmap.height
#    x3 = x2 / 2
#    src_rect = Rect.new(0, 0, x2, y2)
#    self.contents.blt(x - x3, y - y2, bitmap, src_rect)
  end
  def draw_actor_name(actor, x, y)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 448, 32, actor.name, 1)
  end
  def draw_actor_class(actor, x, y)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 448, 32, actor.class_name, 1)
  end
  #--------------------------------------------------------------------------
  # ● Other stuff which needs to be there although I dunno why... XD
  #--------------------------------------------------------------------------
  def update_actor(actor)
    @actor = actor
    refresh
  end
  def dummy
    self.contents.font.color = system_color
    self.contents.draw_text(320, 112, 96, 32, $data_system.words.weapon)
    self.contents.draw_text(320, 176, 96, 32, $data_system.words.armor1)
    self.contents.draw_text(320, 240, 96, 32, $data_system.words.armor2)
    self.contents.draw_text(320, 304, 96, 32, $data_system.words.armor3)
    self.contents.draw_text(320, 368, 96, 32, $data_system.words.armor4)
    draw_item_name($data_weapons[@actor.weapon_id], 320 + 24, 144)
    draw_item_name($data_armors[@actor.armor1_id], 320 + 24, 208)
    draw_item_name($data_armors[@actor.armor2_id], 320 + 24, 272)
    draw_item_name($data_armors[@actor.armor3_id], 320 + 24, 336)
    draw_item_name($data_armors[@actor.armor4_id], 320 + 24, 400)
  end
end
#==============================================================================
# ■ End Window_Status
#==============================================================================

#===============================================================================
# ■ Ring Menu Modification by Reno-s--Joker v 1.2
#===============================================================================
# This is a simple aesthetic modification to this awesome Ring Menu I found.
# It makes a small change to the actor selection window, making it available
# at all times instead of popping up on the side of the screen when it's needed.
# It also integrates the location window into the player select window, and I
# have added an animated status window.
# Note that this mod reduces the area of the screen where the ring menu looks
# good/is visible. You can remove the show player location function to counter
# this.
#
# This updated version features a suggestion by Starrodkirby86 for the addon
# windows to be moved to the top or bottom of the screen according to the
# player's position.
# It also includes a request by Kagutsuchi for the encounter chance to appear
# in the menu and some other minor script modifications.
#
# I've also included an experimental version of the ring menu for the title
# screen.
#
# In v 1.2, I have included a feature which moves the ring menu when the player
# is at the edges of the screen, the credits for which go to Landith and Aqua.
#
# If you have any issues with my modification, please report them at
# chaos-project.org
# Original script authors see below.
#===============================================================================
# ■ Ring Menu - Show Player Location - Release #1 (Edited By Dubealex)
#===============================================================================
# For more infos and update, visit:
# rmxp.dubealex.com [OR] X-RPG V2 Forum
#
# Original Ring Menu by: 和希 (From XRXS)
# Original Edit and Fix by: Maki
# Show Player Location Version by: Dubealex
#
# You can customize this script at line #35 - Have fun !!
# If you want to show more stuff, its easy to do, just ask, and I will release
# new version of this edited script !
#
# alex@dubealex.com
#===============================================================================

#===============================================================================
# ▼ CLASS Scene_Menu Begins
#===============================================================================
class Scene_Menu
#--------------------------------------------------------------------------
# œ ƒIƒuƒWƒFƒNƒg‰Šú‰»
#     menu_index : ƒRƒ}ƒ"ƒh,̃J[ƒ\ƒ‹‰ŠúˆÊ'u
#     I modified it to get rid of unnecessary config variables
#--------------------------------------------------------------------------
def initialize(menu_index = 0, actor_index = 0)
   @menu_index = menu_index
   @actor_index = actor_index # New addition for new window
   $ring_menu_text=[]
   $chara_select=[]
   @window_opacity=[]
   
#-------------------------------------------------------------------------------
# ■ Ring Menu Customization Section: (By Dubealex)
#-------------------------------------------------------------------------------
# Those variables defines how the script will act.
# Simply change the value by those you want.
# Remember that changing the font size has its limitation due to text space
# allocation.
#
# This section has been modified to remove some unused variables
   
# ▼ SHOW LOCATION WINDOW SETTINS:
    @window_opacity[0]=200                         # Border Opacity
    @window_opacity[1]=200                             # Background Opacity
   
# ▼  TEXT SETTINGS FOR INSIDE THE RING MENU:
    $ring_menu_text[0]="Tahoma"      # Font Type
    $ring_menu_text[1]="Items"         # Items Menu Text
    $ring_menu_text[2]="Skills"          # Skills Menu Text
    $ring_menu_text[3]="Equip"         # Equip Menu Text
    $ring_menu_text[4]="Stats"          # Stats Menu Text
    $ring_menu_text[5]="Quests"          # Quest Menu Text
    $ring_menu_text[9]="Hotkeys"      # Hotkeys Menu Text
    $ring_menu_text[6]="Quit"           # Quit Menu Text
    $ring_menu_text[7]=0                  # Font Color
    $ring_menu_text[8]=22                # Font Size
   
# ▼  CHARACTER SELECTION WINDOW SETTINGS :
    $chara_select[0]="Tahoma"       # Font Type
    $chara_select[1]=0                   # Font Color
    $chara_select[5]=22                  # Font Size
    $chara_select[2]=255               # Window Border Opacity
    $chara_select[3]=130               # Window Background Opacity
    $chara_select[4]="Roxo"  # Window Skin to use
#-------------------------------------------------------------------------------
end
#--------------------------------------------------------------------------
# Main
#--------------------------------------------------------------------------
def main
   @actor = $game_party.actors[@actor_index]
   # Setup for all the new windows
   @playtime_window = Window_PlayTime.new
      @playtime_window.x = 492
      @playtime_window.opacity = @window_opacity[0]
      @playtime_window.back_opacity = 200
    @gold_window = Window_Gold.new
      @gold_window.x = 492
      @gold_window.opacity = @window_opacity[0]
      @gold_window.back_opacity = 200
    @status_window = Window_Status.new(@actor)
      @status_window.active = false
      @status_window.x = 80
      @status_window.z = 1999
      @status_window.opacity = @window_opacity[0]
      @status_window.back_opacity = 200
   
   # ƒXƒvƒ‰ƒCƒgƒZƒbƒg,ðì¬
   @spriteset = Spriteset_Map.new
   # ƒRƒ}ƒ"ƒhƒEƒBƒ"ƒhƒE,ðì¬
   
   # This section by Dubealex makes the menu appear centred around the actor.
   # In version 1.2 it incorporates the option for an edge screen hiding fix
   # (where parts of the menu can't be seen near the edges of the screen) by
   # Landith and Aqua.
   # Set it to true or false in the config.
   unless RM_CFG::Edge_Hide_Fix == true
     px = $game_player.screen_x - 15
     py = $game_player.screen_y - 24
   else
     if $game_player.screen_x >= 576
       px = $game_player.screen_x - 15 - 64
     elsif $game_player.screen_x <= 64
       px = $game_player.screen_x - 15 + 64
     else
       px = $game_player.screen_x - 15
     end
    if $game_player.screen_y >= 416
     py = $game_player.screen_y - 24 - 64
    elsif $game_player.screen_y <= 64
     py = $game_player.screen_y - 24 + 64
    else
     py = $game_player.screen_y - 24
    end
  end
   @command_window = Window_RingMenu.new(px,py)
   
   @command_window.index = @menu_index
   # ƒp[ƒeƒBl",ª 0 l,̏ꍇ
    # If number of party members is 0
      if $game_party.actors.size == 0
        # Disable items, skills, equipment and status
        @command_window.disable_item(0)
        @command_window.disable_item(1)
        @command_window.disable_item(2)
        @command_window.disable_item(3)
      end
   @command_window.z = 100
   
   # ƒXƒe[ƒ^ƒXƒEƒBƒ"ƒhƒE,ðì¬
   @party_window = Window_RingMenuParty.new
   @party_window.x = 148
   @party_window.z = 200
   @party_window.height = 128
   @party_window.opacity=200
   @party_window.back_opacity=200
   @party_window.visible = false
   @party_window.active = false
   
#--------------------------------------------------------------------------
# This new section was suggested by Starrodkirby86 - Thanks! ;)
# It determines where to move the addon menu windows according to the player's
# position - to the top or to the bottom of the screen.
#--------------------------------------------------------------------------   
    if $game_player.screen_y < 352
     @playtime_window.y = 352
#     @steps_window.y = 352
     @gold_window.y = 416
     @status_window.y = -320
     @party_window.y = 352
    elsif $game_player.screen_y >= 352
     @playtime_window.y = 0
#     @steps_window.y = 0
     @gold_window.y = 64
     @status_window.y = 800
     @party_window.y = 0
    end
   
   # ƒgƒ‰ƒ"ƒWƒVƒ‡ƒ"ŽÀs
   Graphics.transition
   # ƒƒCƒ"ƒ‹[ƒv
   loop do
     # ƒQ[ƒ€‰æ-Ê,ðXV
     Graphics.update
     # "ü--͏î•ñ,ðXV
     Input.update
     # ƒtƒŒ[ƒ€XV
     update
     # ‰æ-Ê,ªØ,è'Ö,í,Á,½,烋[ƒv,ð'†'f
     if $scene != self
       break
     end
   end
   # ƒgƒ‰ƒ"ƒWƒVƒ‡ƒ"€"õ
   Graphics.freeze
   # ƒXƒvƒ‰ƒCƒgƒZƒbƒg,ð‰ð•ú
   @spriteset.dispose
   # ƒEƒBƒ"ƒhƒE,ð‰ð•ú
   @playtime_window.dispose
#  @steps_window.dispose
   @gold_window.dispose
   @status_window.dispose
   @command_window.dispose
   @party_window.dispose
end
#--------------------------------------------------------------------------
# œ ƒtƒŒ[ƒ€XV
#--------------------------------------------------------------------------
def update
   # ƒEƒBƒ"ƒhƒE,ðXV
   @playtime_window.update
#   @steps_window.update
   @gold_window.update
   @status_window.update
   @command_window.update
   # ƒRƒ}ƒ"ƒhƒEƒBƒ"ƒhƒE,ªƒAƒNƒeƒBƒu,̏ꍇ: update_command ,ðŒÄ,Ô
   if @command_window.active
     update_command
     return
   end
   # ƒXƒe[ƒ^ƒXƒEƒBƒ"ƒhƒE,ªƒAƒNƒeƒBƒu,̏ꍇ: update_party ,ðŒÄ,Ô
   if @party_window.active
     @party_window.update
     update_party
     return
   end
   if @status_window.active
     if $game_player.screen_y < 352
       if @status_window.y < 16
         @status_window.y += 16 # This animates the window
       end
     elsif $game_player.screen_y >= 352
       if @status_window.y > 144
         @status_window.y -= 16 # This animates the window
       end
     end
       update_playerstatus
      return
    end
  end
  def update_playerstatus
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      if $game_player.screen_y < 352
        @status_window.y = -320
      else
        @status_window.y = 800
      end
      @status_window.active = false
      @command_window.active = true
    end
  end
#--------------------------------------------------------------------------
  # * Frame Update (when command window is active)
  #--------------------------------------------------------------------------
  def update_command
   # B ƒ{ƒ^ƒ",ª‰Ÿ,³,ê,½ê‡
   if Input.trigger?(Input::B)
     # ƒLƒƒƒ"ƒZƒ‹ SE ,ð‰‰'t
     $game_system.se_play($data_system.cancel_se)
     # ƒ}ƒbƒv‰æ-Ê,ɐØ,è'Ö,¦
     $scene = Scene_Map.new
     return
   end
   # C ƒ{ƒ^ƒ",ª‰Ÿ,³,ê,½ê‡
   if Input.trigger?(Input::C)
     # ƒp[ƒeƒBl",ª 0 l,ŁAƒZ[ƒuAƒQ[ƒ€I--¹ˆÈŠO,̃Rƒ}ƒ"ƒh,̏ꍇ
     if $game_party.actors.size == 0 and @command_window.index < 4
       # ƒuƒU[ SE ,ð‰‰'t
       $game_system.se_play($data_system.buzzer_se)
       return
     end
     # ƒRƒ}ƒ"ƒhƒEƒBƒ"ƒhƒE,̃J[ƒ\ƒ‹ˆÊ'u,Å•ªŠò
     case @command_window.index
    when 0  # item
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to item screen
        $scene = Scene_Item.new
    when 1  # skill
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Show Skill Scene
        $scene = Scene_Skill.new(0)
    when 2  # equipment
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Show Equip Scene
        $scene = Scene_Equip.new(0)
    when 3 # Status selected
        $game_system.se_play($data_system.decision_se)
        @command_window.active = false
        # Show Status Window
        @actor = $game_party.actors[0]
        @status_window.update_actor(@actor)
        @status_window.active = true
    when 4  # quests
      # Show GG Quest Log Scene
      $scene = Scene_Quest.new
     
    when 5 # hotkeys
      # Show Blizz-ABS Hotkeys Scene
      $scene = Scene_Hotkeys.new
     
    when 6  # end game
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to end game screen
        $scene = Scene_End.new
    end
    return
  end
   # ƒAƒjƒ[ƒVƒ‡ƒ"'†,È,çƒJ[ƒ\ƒ‹,̏ˆ--,ðs,í,È,¢
   return if @command_window.animation?
   # ªor© ƒ{ƒ^ƒ",ª‰Ÿ,³,ê,½ê‡
   if Input.press?(Input::UP) or  Input.press?(Input::LEFT)
     $game_system.se_play($data_system.cursor_se)
     @command_window.setup_move_move(Window_RingMenu::MODE_MOVEL)
     return
   end
   # «or¨ ƒ{ƒ^ƒ",ª‰Ÿ,³,ê,½ê‡
   if Input.press?(Input::DOWN) or  Input.press?(Input::RIGHT)
     $game_system.se_play($data_system.cursor_se)
     @command_window.setup_move_move(Window_RingMenu::MODE_MOVER)
     return
   end
end

#--------------------------------------------------------------------------
# œ ƒtƒŒ[ƒ€XV (ƒXƒe[ƒ^ƒXƒEƒBƒ"ƒhƒE,ªƒAƒNƒeƒBƒu,̏ꍇ)
#--------------------------------------------------------------------------
def update_party

end

#=========================================================================
# ▲ CLASS Scene_Menu Ends
#===============================================================================

#===============================================================================
# ▼ CLASS Window_RingMenu Begins
# This is mostly the original ring menu script and was not created by me.
# Therefore I have left the (unreadble) comments untouched.
# Some minor modifcations have been made to accomodate extra menu entries.
#===============================================================================
class Window_RingMenu < Window_Base
#--------------------------------------------------------------------------
# › ƒNƒ‰ƒX'è"
#--------------------------------------------------------------------------
STARTUP_FRAMES = 20
MOVING_FRAMES = 5   
RING_R = 64     
ICON_ITEM    = RPG::Cache.icon(RM_CFG::Item_Icon)
ICON_SKILL   = RPG::Cache.icon(RM_CFG::Skill_Icon)
ICON_EQUIP   = RPG::Cache.icon(RM_CFG::Equip_Icon)
ICON_STATUS  = RPG::Cache.icon(RM_CFG::Status_Icon)
ICON_QUEST    = RPG::Cache.icon(RM_CFG::Quest_Icon)
ICON_HOTKEYS  = RPG::Cache.icon(RM_CFG::Hotkeys_Icon)
ICON_EXIT    = RPG::Cache.icon(RM_CFG::Exit_Icon)
ICON_DISABLE = RPG::Cache.icon(RM_CFG::Disabled_Icon)
SE_STARTUP = RM_CFG::Openmenu_Se
MODE_START = 1
MODE_WAIT  = 2
MODE_MOVEL = 3
MODE_MOVER = 4
#--------------------------------------------------------------------------
# › ƒAƒNƒZƒT
#--------------------------------------------------------------------------
attr_accessor :index
#--------------------------------------------------------------------------
# The stuff in the section below can be accomodated for new menu entries
#--------------------------------------------------------------------------
def initialize( center_x, center_y )
   super(0, 0, 640, 480)
   self.contents = Bitmap.new(width-32, height-32)
   self.contents.font.name = $ring_menu_text[0]
   self.contents.font.color = text_color($ring_menu_text[7])
   self.contents.font.size = $ring_menu_text[8]
   self.opacity = 0
   self.back_opacity = 0
   s1 = $ring_menu_text[1]
   s2 = $ring_menu_text[2]
   s3 = $ring_menu_text[3]
   s4 = $ring_menu_text[4]
   s5 = $ring_menu_text[5]
   s6 = $ring_menu_text[9]
   s7 = $ring_menu_text[6]
   @commands = [s1, s2, s3, s4, s5, s6, s7]
   # I changed this to prevent glitches when modifying the number of menu items
   @item_max = @commands.size
   @index = 0
   @items = [ICON_ITEM, ICON_SKILL, ICON_EQUIP, ICON_STATUS, ICON_QUEST, ICON_HOTKEYS, ICON_EXIT]
   @disabled = [false, false, false, false, false, false, false]
   @cx = center_x - 16
   @cy = center_y - 16
   setup_move_start
   refresh
end
#--------------------------------------------------------------------------
# œ ƒtƒŒ[ƒ€XV
#--------------------------------------------------------------------------
def update
   super
   refresh
end
#--------------------------------------------------------------------------
# œ ‰æ-ʍĕ`‰æ
#--------------------------------------------------------------------------
def refresh
   self.contents.clear
   # ƒAƒCƒRƒ",ð•`‰æ
   case @mode
   when MODE_START
     refresh_start
   when MODE_WAIT
     refresh_wait
   when MODE_MOVER
     refresh_move(1)
   when MODE_MOVEL
     refresh_move(0)
   end
   # ƒAƒNƒeƒBƒu,ȃRƒ}ƒ"ƒh-¼•\Ž¦
   rect = Rect.new(@cx - 272, @cy + 24, self.contents.width-32, 32)
   self.contents.draw_text(rect, @commands[@index],1)
end
#--------------------------------------------------------------------------
# › ‰æ-ʍĕ`‰æ(‰Šú‰»Žž)
#--------------------------------------------------------------------------
def refresh_start
   d1 = 2.0 * Math::PI / @item_max
   d2 = 1.0 * Math::PI / STARTUP_FRAMES
   r = RING_R - 1.0 * RING_R * @steps / STARTUP_FRAMES
   for i in 0...@item_max
     j = i - @index
     d = d1 * j + d2 * @steps
     x = @cx + ( r * Math.sin( d ) ).to_i
     y = @cy - ( r * Math.cos( d ) ).to_i
     draw_menu_item(x, y, i)
   end
   @steps -= 1
   if @steps < 1
     @mode = MODE_WAIT
   end
end
#--------------------------------------------------------------------------
# › ‰æ-ʍĕ`‰æ('Ò‹@Žž)
#--------------------------------------------------------------------------
def refresh_wait
   d = 2.0 * Math::PI / @item_max
   for i in 0...@item_max
     j = i - @index
     x = @cx + ( RING_R * Math.sin( d * j ) ).to_i
     y = @cy - ( RING_R * Math.cos( d * j ) ).to_i
     draw_menu_item(x, y, i)
   end
end
#--------------------------------------------------------------------------
# › ‰æ-ʍĕ`‰æ(‰ñ"]Žž)
#  mode : 0="½ŽžŒv‰ñ,è 1=ŽžŒv‰ñ,è
#--------------------------------------------------------------------------
def refresh_move( mode )
   d1 = 2.0 * Math::PI / @item_max
   d2 = d1 / MOVING_FRAMES
   d2 *= -1 if mode != 0
   for i in 0...@item_max
     j = i - @index
     d = d1 * j + d2 * @steps
     x = @cx + ( RING_R * Math.sin( d ) ).to_i
     y = @cy - ( RING_R * Math.cos( d ) ).to_i
     draw_menu_item(x, y, i)
   end
   @steps -= 1
   if @steps < 1
     @mode = MODE_WAIT
   end
end
#--------------------------------------------------------------------------
# œ €-Ú,Ì•`‰æ
#     x :
#     y :
#     i : €-Ú"ԍ†
#--------------------------------------------------------------------------
def draw_menu_item(x, y, i)
   #p "x=" + x.to_s + " y=" + y.to_s + " i=" + @items[i].to_s
   rect = Rect.new(0, 0, @items[i].width, @items[i].height)
   if @index == i
     self.contents.blt( x, y, @items[i], rect )
     if @disabled[@index]
       self.contents.blt( x, y, ICON_DISABLE, rect )
     end
   else
     self.contents.blt( x, y, @items[i], rect, 128 )
     if @disabled[@index]
       self.contents.blt( x, y, ICON_DISABLE, rect, 128 )
     end
   end
end
#--------------------------------------------------------------------------
# œ €-Ú,ð-³Œø,É,·,é
#     index : €-Ú"ԍ†
#--------------------------------------------------------------------------
def disable_item(index)
   @disabled[index] = true
end
#--------------------------------------------------------------------------
# › ‰Šú‰»ƒAƒjƒ[ƒVƒ‡ƒ",̏€"õ
#--------------------------------------------------------------------------
def setup_move_start
   @mode = MODE_START
   @steps = STARTUP_FRAMES
   if  SE_STARTUP != nil and SE_STARTUP != ""
     Audio.se_play("Audio/SE/" + SE_STARTUP, 80, 100)
   end
end
#--------------------------------------------------------------------------
# › ‰ñ"]ƒAƒjƒ[ƒVƒ‡ƒ",̏€"õ
#--------------------------------------------------------------------------
def setup_move_move(mode)
   if mode == MODE_MOVER
     @index -= 1
     @index = @items.size - 1 if @index < 0
   elsif mode == MODE_MOVEL
     @index += 1
     @index = 0 if @index >= @items.size
   else
     return
   end
   @mode = mode
   @steps = MOVING_FRAMES
end
#--------------------------------------------------------------------------
# › ƒAƒjƒ[ƒVƒ‡ƒ"'†,©,Ç,¤,©
#--------------------------------------------------------------------------
def animation?
   return @mode != MODE_WAIT
end
end
#===============================================================================
# ▲ CLASS Window_RingMenu Ends
#===============================================================================

#===============================================================================
# ▼ CLASS Window_RingMenuParty Begins
#===============================================================================

class Window_RingMenuParty < Window_Selectable
#--------------------------------------------------------------------------
# Sets up the new actor selection window
#--------------------------------------------------------------------------
def initialize
   super(0, 0, 344, 128)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.contents.font.size = 20
   refresh
   self.active = false
   self.index = -1
end
#--------------------------------------------------------------------------
# Draws the party's actors and their info into the window
#--------------------------------------------------------------------------
def refresh
   self.contents.clear
   self.windowskin = RPG::Cache.windowskin($chara_select[4])
   self.contents.font.name = $chara_select[0]
   self.contents.font.color = text_color($chara_select[1])
   @item_max = $game_party.actors.size
   for i in 0...$game_party.actors.size
     x = 86 * i
     y = 0
     actor = $game_party.actors[i]
     draw_actor_graphic(actor, x+24, y+48)
     draw_actor_name(actor, x-8, y+32+14)
     draw_actor_level(actor, x, y + 48+14)
   end
end
#--------------------------------------------------------------------------
# Defines the drawing processes
#--------------------------------------------------------------------------
  def draw_actor_name(actor, x, y)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 64, 32, actor.name, 1)
  end
  def draw_actor_level(actor, x, y)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 32, 32, "Lvl")
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 24, y, 24, 32, actor.level.to_s, 2)
  end
#--------------------------------------------------------------------------
# Updates the selection rectangle
#--------------------------------------------------------------------------
def update_cursor_rect
   if @index < 0 or @index > $game_party.actors.size - 1
     self.cursor_rect.empty
     return
   elsif @index >= 0 and @index <= $game_party.actors.size - 1
     self.cursor_rect.set((@index * 86)-7, 0, 64, 96)
   end
end
#--------------------------------------------------------------------------
# Moves the cursor rectangle and prevents it from going off the screen
#--------------------------------------------------------------------------
def update
   if @index >= 0 and @index <= $game_party.actors.size - 1
     if Input.repeat?(Input::RIGHT)
          $game_system.se_play($data_system.cursor_se)
          @index += 1
     end
     if Input.repeat?(Input::LEFT)
          $game_system.se_play($data_system.cursor_se)
          @index -= 1
     end
     update_cursor_rect
   elsif @index < 0
     @index = $game_party.actors.size - 1
   elsif @index > $game_party.actors.size - 1
     @index = 0
   else
     self.cursor_rect.empty
     return
   end
end
end
#===============================================================================
# ▲ CLASS Window_RingMenuParty Ends
#===============================================================================

#===============================================================================
# ▼ CLASS Game_Map Additional Code Begins
#===============================================================================
class Game_Map
#Dubealex Addition (from XRXS) to show Map Name on screen
# This is also necessary for the new Window_Steps
def name
   $map_infos[@map_id]
end
end
#===============================================================================
# ▲ CLASS Game_Map Additional Code Ends
#===============================================================================

#===============================================================================
# ▼ CLASS Scene_Title Additional Code Begins
#===============================================================================
class Scene_Title
# Dubealex Addition (from XRXS) to show Map Name on screen
# This is also necessary for the new Window_Steps
   $map_infos = load_data("Data/MapInfos.rxdata")
   for key in $map_infos.keys
     $map_infos[key] = $map_infos[key].name
   end
end
#===============================================================================
# ▲ CLASS Scene_Title Additional Code Ends
#===============================================================================

end
#===============================================================================
# ▲ Ring Menu Script Ends
#===============================================================================

13
General Discussion / Where to begin.
September 12, 2011, 03:11:01 am
Where do you begin when mapping a world? As of yet the areas I've mapped have been for general testing purposes, and not for actual game play. I've got a world map and a general idea of how I want things arranged, but I don't know where to go from here Especially because I want a lot of the maps to have multiple exits, as to make the world seem more 'open'.

Any tips?
14
Event System Troubleshooting / Evented menu issue
September 01, 2011, 04:30:08 pm
I'm making a character creation screen with events. I've got the menu set up and if I use just the variable it will scroll through the menu like I want it to. But for some reason this event doesnt work.

Spoiler: ShowHide


It goes on with two more similar checks for up and down keys. The second page, self switch A, is simply a parallel process that waits 40 frames and turns the self switch off.
15
Script Troubleshooting / Super simple question
August 29, 2011, 01:38:23 pm
I'm a complete noob when it comes to RGSS, so I have probably the easiest question ever.  :^_^':

I'm making a common event for small messages (ie 'Quest Received'). I want it to show a picture which is simple, and then display the message text ($game_variables[4]) centered over that picture. I don't want to use the 'show text' option because I just want it to appear for about 3-5 seconds and then disappear on its own.

Thanks in advance for your help :D

16
So I have horrible luck with laptops apparently. My first one, my old gateway, had a cracked screen. Eventually that cracked screen got bad enough that I had to take the whole thing off. Not having the money for a new screen, I took the whole top half of the laptop off. I still have it, and it still works, but I don't have a power cord, nor an external monitor for it. A while after that, I got my toshiba laptop I loved so very much. I used that to start my graphic design business, as well as do a little bit of small music production. Unfortunately, that got stolen while I was staying in a shelter in Omaha, and never was recovered. My most recent laptop, a crappy compaq presarrio 2200, runs. And that's about it. I can do basic things like RPGMXP and 2D games, and I can get online (at disgustingy slow speeds), but not much more. Unfortunately, my roomate knocked it off the couch and the charger broke. That makes two working laptops I can't use right now.

I need   really, REALLY, want to buy a new laptop so that I can get back to design and start making some more money. Unfortunately I'm not made of money, and the money tree is not in season right now. Living pay-check to pay-check sucks. But I'm getting good hours, and I have right around $300, $400 at most, to spend. What are some decent laptops that would be able to run things like Photoshop or Illustrator well (and, if possible, games such as WoW) that are in that price range?

TLDR : I have like 3-400 dollars to spend on a laptop, what should I get?
17
Never done digital painting before, mostly just logo/web design and apparel design. Figured I'd give it a go, and this is what I ended up with. It's decent, but not as good as I had hoped. Practice makes perfect. C&C Welome.

http://www.facebook.com/media/set/?set=a.224506970919649.46294.135144129855934&type=1
18
Chat / Writing a business plan?
July 23, 2011, 02:00:50 am
So as most of you know, I own and operate a small graphic design company in the US. Recently I've been looking into applying for a very small (20-25k) business loan. I was wondering if any of you had done anything like this before, or had any insight on the subject? I'm currently re-writing my business plan, as I want to make sure it's as solid as possible before presenting it to any lending agents.
19

GG's Questlog
V 2.3 (Script Version 3.0)
Programmed by MRoeDesigns


About
Rewritten in Visual Studio 2010, slightly better UI, and bug fixes.

Screenshot
Spoiler: ShowHide


Download Link
Direct Link - V 2.3

Known Bugs
Quest IDs that are out of sequence (1, 2, 3, 12) may be erased, or moved to the first open ID. (1,2,3,4)

20
I know enough about programing and RGSS to do simple modifications to my scripts, but I've run into a bit of a bump. Im using a modification of the Ring Menu script done by Reno-s--Joker. I've added two new options a quest option and a hotkeys option for Blizz-ABS Hotkeys.

My first question is how to open the hotkeys scene from this script? I tried just doing $scene = Scene_Hotkeys.new but that didn't work.

My next question is how I can pull variables from a separate script. I want to change the timer section from the playtime to the Server time [controlled via ATES], but I'm not sure how.

Here's the current script. I've taken a few things out such as the actor selection window because I don't need it. Right now it runs fine, with no errors. It just doesn't open the Hotkey scene when I tell it to.

Spoiler: ShowHide
#==============================================================================
# ■ Ring Menu Config Module
# by Reno-s--Joker
#------------------------------------------------------------------------------
# I'm still just getting the hang of modules, but this may make your icon
# changing much easier.
#==============================================================================
module RM_CFG
  #--------------------------------------------------------------------------
  # ● Icons for the addon windows
  #--------------------------------------------------------------------------
  Gold_Icon = 'icon 226'
  Map_Icon = 'icon 318'
  #--------------------------------------------------------------------------
  # ● Icons for the main ring
  #--------------------------------------------------------------------------
  Item_Icon = 'icon 270'
  Skill_Icon = 'icon 22'
  Equip_Icon = 'icon 164'
  Status_Icon = 'icon 357'
  Quest_Icon = 'icon 30'
  Hotkeys_Icon = 'icon 2'
  Exit_Icon = 'icon 1'
  Disabled_Icon = 'icon 2'
  Openmenu_Se = ''
  #--------------------------------------------------------------------------
  # ● Fix for near screen edge hiding, thanks to Landith and Aqua
  #--------------------------------------------------------------------------
  Edge_Hide_Fix = true
end 
#==============================================================================
# ■ End Ring Menu Config Module
#==============================================================================

#==============================================================================
# ■ Window_Gold
# by Reno-s--Joker
#------------------------------------------------------------------------------
#  Shows the amount of gold in the menu.
#  Minor aesthetic modifications made for new menu.
#==============================================================================
class Window_Gold < Window_Base
  #--------------------------------------------------------------------------
  # ● Initialize
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 148, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  #--------------------------------------------------------------------------
  # ● Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    cx = contents.text_size($data_system.words.gold).width
    self.contents.font.color = normal_color
    self.contents.blt(4, 4, RPG::Cache.icon(RM_CFG::Gold_Icon), Rect.new(0, 0, 24, 24), 255)
    self.contents.draw_text(4, 0, 100-cx-2, 32, $game_party.gold.to_s, 2)
    self.contents.font.color = system_color
    self.contents.draw_text(104-cx, 0, cx, 32, $data_system.words.gold, 2)
  end
end
#==============================================================================
# ■ End Window_Gold
#==============================================================================

#==============================================================================
# ■ Window_PlayTime
# by Reno-s--Joker
#------------------------------------------------------------------------------
#  Shows the amount of time spent playing.
#  Minor aesthetic modifications made for new menu.
#==============================================================================
class Window_PlayTime < Window_Base
  #--------------------------------------------------------------------------
  # ● Initialize
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 148, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  #--------------------------------------------------------------------------
  # ● Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    @total_sec = Graphics.frame_count / Graphics.frame_rate
    hour = @total_sec / 60 / 60
    min = @total_sec / 60 % 60
    sec = @total_sec % 60
    text = sprintf("%02d:%02d:%02d", hour, min, sec)
    self.contents.draw_text(4, 0, 100, 32, text, 2)
  end
  #--------------------------------------------------------------------------
  # ● Update
  #--------------------------------------------------------------------------
  def update
    super
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
      refresh
    end
  end
end
#==============================================================================
# ■ End Window_PlayTime
#==============================================================================


#==============================================================================
# ■ Window_Steps
# by Reno-s--Joker
#------------------------------------------------------------------------------
# Also includes map name (location)
# Replaces the one which comes with the Ring Menu entirely.
# New addition - encounter steps in v 1.1
#==============================================================================
class Window_Steps < Window_Base
  #--------------------------------------------------------------------------
  # ● Initialize
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 148, 128)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  #--------------------------------------------------------------------------
  # ● Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
     #self.contents.font.color = system_color
     #self.contents.draw_text(4, 0, 124, 32, "Steps: " + $game_party.steps.to_s, 0)
     #self.contents.draw_text(4, 32, 124, 32, "Enc. Stps: " + $game_map.encounter_step.to_s, 0)
    # Another thing can be added at y=32 e.g. No. of Kills
    # (from Blizzard's Tons of Addons)
    self.contents.font.color = normal_color
    self.contents.blt(4, 70, RPG::Cache.icon(RM_CFG::Map_Icon), Rect.new(0, 0, 24, 24), 160)
    map_name = $game_map.name.tr("/*","")
    # Just ignore that thing I said before in the other demo... ^^;
    self.contents.draw_text(8, 64, 124, 32, map_name.to_s)
  end
end
#==============================================================================
# ■ End Window_Steps
#==============================================================================

#==============================================================================
# ■ Window_Status
# by Reno-s--Joker
#==============================================================================
#  This window displays full status specs on the status screen.
#==============================================================================
class Window_Status < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     actor : actor
  #--------------------------------------------------------------------------
  def initialize(actor)
    super(0, 0, 480, 320)
    self.contents = Bitmap.new(width - 32, height - 32)
    @actor = actor
    refresh
  end
  #--------------------------------------------------------------------------
  # ● Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    # Draws the actor's battler behind the info
#    draw_actor_picture(@actor, 360, 300)
    # Actor's name
    self.contents.font.size = 32
    draw_actor_name(@actor, 0, 0)
    self.contents.font.size = 20
    # Main stats section
    draw_actor_class(@actor, 0, 24)
    draw_actor_level(@actor, 0, 56)
    draw_actor_state(@actor, 68, 56)
    draw_actor_hp(@actor, 0, 82, 172)
    draw_actor_sp(@actor, 0, 106, 172)
    # Actor parameter section
    draw_actor_parameter(@actor, 0, 132, 0)
    draw_actor_parameter(@actor, 0, 150, 1)
    draw_actor_parameter(@actor, 0, 168, 2)
    draw_actor_parameter(@actor, 0, 186, 3)
    draw_actor_parameter(@actor, 0, 204, 4)
    draw_actor_parameter(@actor, 0, 222, 5)
    draw_actor_parameter(@actor, 0, 240, 6)
    # EXP section
    self.contents.font.color = system_color
    self.contents.draw_text(240, 56, 150, 32, "Total Exp: ")
    tx = contents.text_size("Total Exp: ").width
    draw_actor_exp(@actor, 240, 80)
    self.contents.font.color = normal_color
    self.contents.draw_text(tx + 244, 56, 76, 32, @actor.exp_s, 2)
    # Equipment Section
    self.contents.font.color = system_color
    self.contents.draw_text(240, 120, 88, 32, "Equipment: ")
    draw_item_name($data_weapons[@actor.weapon_id], 240, 148)
    draw_item_name($data_armors[@actor.armor1_id], 240, 172)
    draw_item_name($data_armors[@actor.armor2_id], 240, 196)
    draw_item_name($data_armors[@actor.armor3_id], 240, 220)
    draw_item_name($data_armors[@actor.armor4_id], 240, 246)
  end
  #--------------------------------------------------------------------------
  # ● Defines the drawing processes
  #--------------------------------------------------------------------------
  def draw_actor_picture(actor, x, y)
#    bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
#    x2 = bitmap.width
#    y2 = bitmap.height
#    x3 = x2 / 2
#    src_rect = Rect.new(0, 0, x2, y2)
#    self.contents.blt(x - x3, y - y2, bitmap, src_rect)
  end
  def draw_actor_name(actor, x, y)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 448, 32, actor.name, 1)
  end
  def draw_actor_class(actor, x, y)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 448, 32, actor.class_name, 1)
  end
  #--------------------------------------------------------------------------
  # ● Other stuff which needs to be there although I dunno why... XD
  #--------------------------------------------------------------------------
  def update_actor(actor)
    @actor = actor
    refresh
  end
  def dummy
    self.contents.font.color = system_color
    self.contents.draw_text(320, 112, 96, 32, $data_system.words.weapon)
    self.contents.draw_text(320, 176, 96, 32, $data_system.words.armor1)
    self.contents.draw_text(320, 240, 96, 32, $data_system.words.armor2)
    self.contents.draw_text(320, 304, 96, 32, $data_system.words.armor3)
    self.contents.draw_text(320, 368, 96, 32, $data_system.words.armor4)
    draw_item_name($data_weapons[@actor.weapon_id], 320 + 24, 144)
    draw_item_name($data_armors[@actor.armor1_id], 320 + 24, 208)
    draw_item_name($data_armors[@actor.armor2_id], 320 + 24, 272)
    draw_item_name($data_armors[@actor.armor3_id], 320 + 24, 336)
    draw_item_name($data_armors[@actor.armor4_id], 320 + 24, 400)
  end
end
#==============================================================================
# ■ End Window_Status
#==============================================================================

#===============================================================================
# ■ Ring Menu Modification by Reno-s--Joker v 1.2
#===============================================================================
# This is a simple aesthetic modification to this awesome Ring Menu I found.
# It makes a small change to the actor selection window, making it available
# at all times instead of popping up on the side of the screen when it's needed.
# It also integrates the location window into the player select window, and I
# have added an animated status window.
# Note that this mod reduces the area of the screen where the ring menu looks
# good/is visible. You can remove the show player location function to counter
# this.
#
# This updated version features a suggestion by Starrodkirby86 for the addon
# windows to be moved to the top or bottom of the screen according to the
# player's position.
# It also includes a request by Kagutsuchi for the encounter chance to appear
# in the menu and some other minor script modifications.
#
# I've also included an experimental version of the ring menu for the title
# screen.
#
# In v 1.2, I have included a feature which moves the ring menu when the player
# is at the edges of the screen, the credits for which go to Landith and Aqua.
#
# If you have any issues with my modification, please report them at
# chaos-project.org
# Original script authors see below.
#===============================================================================
# ■ Ring Menu - Show Player Location - Release #1 (Edited By Dubealex)
#===============================================================================
# For more infos and update, visit:
# rmxp.dubealex.com [OR] X-RPG V2 Forum
#
# Original Ring Menu by: 和希 (From XRXS)
# Original Edit and Fix by: Maki
# Show Player Location Version by: Dubealex
#
# You can customize this script at line #35 - Have fun !!
# If you want to show more stuff, its easy to do, just ask, and I will release
# new version of this edited script !
#
# alex@dubealex.com
#===============================================================================

#===============================================================================
# ▼ CLASS Scene_Menu Begins
#===============================================================================
class Scene_Menu
#--------------------------------------------------------------------------
# œ ƒIƒuƒWƒFƒNƒg‰Šú‰»
#     menu_index : ƒRƒ}ƒ"ƒh,̃J[ƒ\ƒ‹‰ŠúˆÊ'u
#     I modified it to get rid of unnecessary config variables
#--------------------------------------------------------------------------
def initialize(menu_index = 0, actor_index = 0)
   @menu_index = menu_index
   @actor_index = actor_index # New addition for new window
   $ring_menu_text=[]
   $chara_select=[]
   @window_opacity=[]
   
#-------------------------------------------------------------------------------
# ■ Ring Menu Customization Section: (By Dubealex)
#-------------------------------------------------------------------------------
# Those variables defines how the script will act.
# Simply change the value by those you want.
# Remember that changing the font size has its limitation due to text space
# allocation.
#
# This section has been modified to remove some unused variables
   
# ▼ SHOW LOCATION WINDOW SETTINS:
    @window_opacity[0]=200                         # Border Opacity
    @window_opacity[1]=200                             # Background Opacity
   
# ▼  TEXT SETTINGS FOR INSIDE THE RING MENU:
    $ring_menu_text[0]="Tahoma"      # Font Type
    $ring_menu_text[1]="Items"         # Items Menu Text
    $ring_menu_text[2]="Skills"          # Skills Menu Text
    $ring_menu_text[3]="Equip"         # Equip Menu Text
    $ring_menu_text[4]="Stats"          # Stats Menu Text
    $ring_menu_text[5]="Quests"          # Quest Menu Text
    $ring_menu_text[9]="Hotkeys"      # Hotkeys Menu Text
    $ring_menu_text[6]="Quit"           # Quit Menu Text
    $ring_menu_text[7]=0                  # Font Color
    $ring_menu_text[8]=22                # Font Size
   
# ▼  CHARACTER SELECTION WINDOW SETTINGS :
    $chara_select[0]="Tahoma"       # Font Type
    $chara_select[1]=0                   # Font Color
    $chara_select[5]=22                  # Font Size
    $chara_select[2]=255               # Window Border Opacity
    $chara_select[3]=130               # Window Background Opacity
    $chara_select[4]="Roxo"  # Window Skin to use
#-------------------------------------------------------------------------------
end
#--------------------------------------------------------------------------
# Main
#--------------------------------------------------------------------------
def main
   @actor = $game_party.actors[@actor_index]
   # Setup for all the new windows
   @playtime_window = Window_PlayTime.new
      @playtime_window.x = 492
      @playtime_window.opacity = @window_opacity[0]
      @playtime_window.back_opacity = 200
    @gold_window = Window_Gold.new
      @gold_window.x = 492
      @gold_window.opacity = @window_opacity[0]
      @gold_window.back_opacity = 200
    @status_window = Window_Status.new(@actor)
      @status_window.active = false
      @status_window.x = 80
      @status_window.z = 1999
      @status_window.opacity = @window_opacity[0]
      @status_window.back_opacity = 200
   
   # ƒXƒvƒ‰ƒCƒgƒZƒbƒg,ðì¬
   @spriteset = Spriteset_Map.new
   # ƒRƒ}ƒ"ƒhƒEƒBƒ"ƒhƒE,ðì¬
   
   # This section by Dubealex makes the menu appear centred around the actor.
   # In version 1.2 it incorporates the option for an edge screen hiding fix
   # (where parts of the menu can't be seen near the edges of the screen) by
   # Landith and Aqua.
   # Set it to true or false in the config.
   unless RM_CFG::Edge_Hide_Fix == true
     px = $game_player.screen_x - 15
     py = $game_player.screen_y - 24
   else
     if $game_player.screen_x >= 576
       px = $game_player.screen_x - 15 - 64
     elsif $game_player.screen_x <= 64
       px = $game_player.screen_x - 15 + 64
     else
       px = $game_player.screen_x - 15
     end
    if $game_player.screen_y >= 416
     py = $game_player.screen_y - 24 - 64
    elsif $game_player.screen_y <= 64
     py = $game_player.screen_y - 24 + 64
    else
     py = $game_player.screen_y - 24
    end
  end
   @command_window = Window_RingMenu.new(px,py)
   
   @command_window.index = @menu_index
   # ƒp[ƒeƒBl",ª 0 l,̏ꍇ
    # If number of party members is 0
      if $game_party.actors.size == 0
        # Disable items, skills, equipment and status
        @command_window.disable_item(0)
        @command_window.disable_item(1)
        @command_window.disable_item(2)
        @command_window.disable_item(3)
      end
   @command_window.z = 100
   
   # ƒXƒe[ƒ^ƒXƒEƒBƒ"ƒhƒE,ðì¬
   @party_window = Window_RingMenuParty.new
   @party_window.x = 148
   @party_window.z = 200
   @party_window.height = 128
   @party_window.opacity=200
   @party_window.back_opacity=200
   @party_window.visible = false
   @party_window.active = false
   
#--------------------------------------------------------------------------
# This new section was suggested by Starrodkirby86 - Thanks! ;)
# It determines where to move the addon menu windows according to the player's
# position - to the top or to the bottom of the screen.
#--------------------------------------------------------------------------   
    if $game_player.screen_y < 352
     @playtime_window.y = 352
#     @steps_window.y = 352
     @gold_window.y = 416
     @status_window.y = -320
     @party_window.y = 352
    elsif $game_player.screen_y >= 352
     @playtime_window.y = 0
#     @steps_window.y = 0
     @gold_window.y = 64
     @status_window.y = 800
     @party_window.y = 0
    end
   
   # ƒgƒ‰ƒ"ƒWƒVƒ‡ƒ"ŽÀs
   Graphics.transition
   # ƒƒCƒ"ƒ‹[ƒv
   loop do
     # ƒQ[ƒ€‰æ-Ê,ðXV
     Graphics.update
     # "ü--͏î•ñ,ðXV
     Input.update
     # ƒtƒŒ[ƒ€XV
     update
     # ‰æ-Ê,ªØ,è'Ö,í,Á,½,烋[ƒv,ð'†'f
     if $scene != self
       break
     end
   end
   # ƒgƒ‰ƒ"ƒWƒVƒ‡ƒ"€"õ
   Graphics.freeze
   # ƒXƒvƒ‰ƒCƒgƒZƒbƒg,ð‰ð•ú
   @spriteset.dispose
   # ƒEƒBƒ"ƒhƒE,ð‰ð•ú
   @playtime_window.dispose
#  @steps_window.dispose
   @gold_window.dispose
   @status_window.dispose
   @command_window.dispose
   @party_window.dispose
end
#--------------------------------------------------------------------------
# œ ƒtƒŒ[ƒ€XV
#--------------------------------------------------------------------------
def update
   # ƒEƒBƒ"ƒhƒE,ðXV
   @playtime_window.update
#   @steps_window.update
   @gold_window.update
   @status_window.update
   @command_window.update
   # ƒRƒ}ƒ"ƒhƒEƒBƒ"ƒhƒE,ªƒAƒNƒeƒBƒu,̏ꍇ: update_command ,ðŒÄ,Ô
   if @command_window.active
     update_command
     return
   end
   # ƒXƒe[ƒ^ƒXƒEƒBƒ"ƒhƒE,ªƒAƒNƒeƒBƒu,̏ꍇ: update_party ,ðŒÄ,Ô
   if @party_window.active
     @party_window.update
     update_party
     return
   end
   if @status_window.active
     if $game_player.screen_y < 352
       if @status_window.y < 16
         @status_window.y += 16 # This animates the window
       end
     elsif $game_player.screen_y >= 352
       if @status_window.y > 144
         @status_window.y -= 16 # This animates the window
       end
     end
       update_playerstatus
      return
    end
  end
  def update_playerstatus
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      if $game_player.screen_y < 352
        @status_window.y = -320
      else
        @status_window.y = 800
      end
      @status_window.active = false
      @command_window.active = true
    end
  end
#--------------------------------------------------------------------------
  # * Frame Update (when command window is active)
  #--------------------------------------------------------------------------
  def update_command
   # B ƒ{ƒ^ƒ",ª‰Ÿ,³,ê,½ê‡
   if Input.trigger?(Input::B)
     # ƒLƒƒƒ"ƒZƒ‹ SE ,ð‰‰'t
     $game_system.se_play($data_system.cancel_se)
     # ƒ}ƒbƒv‰æ-Ê,ɐØ,è'Ö,¦
     $scene = Scene_Map.new
     return
   end
   # C ƒ{ƒ^ƒ",ª‰Ÿ,³,ê,½ê‡
   if Input.trigger?(Input::C)
     # ƒp[ƒeƒBl",ª 0 l,ŁAƒZ[ƒuAƒQ[ƒ€I--¹ˆÈŠO,̃Rƒ}ƒ"ƒh,̏ꍇ
     if $game_party.actors.size == 0 and @command_window.index < 4
       # ƒuƒU[ SE ,ð‰‰'t
       $game_system.se_play($data_system.buzzer_se)
       return
     end
     # ƒRƒ}ƒ"ƒhƒEƒBƒ"ƒhƒE,̃J[ƒ\ƒ‹ˆÊ'u,Å•ªŠò
     case @command_window.index
    when 0  # item
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to item screen
        $scene = Scene_Item.new
    when 1  # skill
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Show Skill Scene
        $scene = Scene_Skill.new(0)
    when 2  # equipment
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Show Equip Scene
        $scene = Scene_Equip.new(0)
    when 3 # Status selected
        $game_system.se_play($data_system.decision_se)
        @command_window.active = false
        # Show Status Window
        @actor = $game_party.actors[0]
        @status_window.update_actor(@actor)
        @status_window.active = true
    when 4  # quests
     
    when 9 # hotkeys
      # Show Blizz-ABS Hotkeys Scene
      $scene = Scene_Hotkeys.new
     
    when 6  # end game
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to end game screen
        $scene = Scene_End.new
    end
    return
  end
   # ƒAƒjƒ[ƒVƒ‡ƒ"'†,È,çƒJ[ƒ\ƒ‹,̏ˆ--,ðs,í,È,¢
   return if @command_window.animation?
   # ªor© ƒ{ƒ^ƒ",ª‰Ÿ,³,ê,½ê‡
   if Input.press?(Input::UP) or  Input.press?(Input::LEFT)
     $game_system.se_play($data_system.cursor_se)
     @command_window.setup_move_move(Window_RingMenu::MODE_MOVEL)
     return
   end
   # «or¨ ƒ{ƒ^ƒ",ª‰Ÿ,³,ê,½ê‡
   if Input.press?(Input::DOWN) or  Input.press?(Input::RIGHT)
     $game_system.se_play($data_system.cursor_se)
     @command_window.setup_move_move(Window_RingMenu::MODE_MOVER)
     return
   end
end

#--------------------------------------------------------------------------
# œ ƒtƒŒ[ƒ€XV (ƒXƒe[ƒ^ƒXƒEƒBƒ"ƒhƒE,ªƒAƒNƒeƒBƒu,̏ꍇ)
#--------------------------------------------------------------------------
def update_party

end

#=========================================================================
# ▲ CLASS Scene_Menu Ends
#===============================================================================

#===============================================================================
# ▼ CLASS Window_RingMenu Begins
# This is mostly the original ring menu script and was not created by me.
# Therefore I have left the (unreadble) comments untouched.
# Some minor modifcations have been made to accomodate extra menu entries.
#===============================================================================
class Window_RingMenu < Window_Base
#--------------------------------------------------------------------------
# › ƒNƒ‰ƒX'è"
#--------------------------------------------------------------------------
STARTUP_FRAMES = 20
MOVING_FRAMES = 5   
RING_R = 64     
ICON_ITEM    = RPG::Cache.icon(RM_CFG::Item_Icon)
ICON_SKILL   = RPG::Cache.icon(RM_CFG::Skill_Icon)
ICON_EQUIP   = RPG::Cache.icon(RM_CFG::Equip_Icon)
ICON_STATUS  = RPG::Cache.icon(RM_CFG::Status_Icon)
ICON_QUEST    = RPG::Cache.icon(RM_CFG::Quest_Icon)
ICON_HOTKEYS  = RPG::Cache.icon(RM_CFG::Hotkeys_Icon)
ICON_EXIT    = RPG::Cache.icon(RM_CFG::Exit_Icon)
ICON_DISABLE = RPG::Cache.icon(RM_CFG::Disabled_Icon)
SE_STARTUP = RM_CFG::Openmenu_Se
MODE_START = 1
MODE_WAIT  = 2
MODE_MOVEL = 3
MODE_MOVER = 4
#--------------------------------------------------------------------------
# › ƒAƒNƒZƒT
#--------------------------------------------------------------------------
attr_accessor :index
#--------------------------------------------------------------------------
# The stuff in the section below can be accomodated for new menu entries
#--------------------------------------------------------------------------
def initialize( center_x, center_y )
   super(0, 0, 640, 480)
   self.contents = Bitmap.new(width-32, height-32)
   self.contents.font.name = $ring_menu_text[0]
   self.contents.font.color = text_color($ring_menu_text[7])
   self.contents.font.size = $ring_menu_text[8]
   self.opacity = 0
   self.back_opacity = 0
   s1 = $ring_menu_text[1]
   s2 = $ring_menu_text[2]
   s3 = $ring_menu_text[3]
   s4 = $ring_menu_text[4]
   s5 = $ring_menu_text[5]
   s6 = $ring_menu_text[9]
   s7 = $ring_menu_text[6]
   @commands = [s1, s2, s3, s4, s5, s6, s7]
   # I changed this to prevent glitches when modifying the number of menu items
   @item_max = @commands.size
   @index = 0
   @items = [ICON_ITEM, ICON_SKILL, ICON_EQUIP, ICON_STATUS, ICON_QUEST, ICON_HOTKEYS, ICON_EXIT]
   @disabled = [false, false, false, false, false, false, false]
   @cx = center_x - 16
   @cy = center_y - 16
   setup_move_start
   refresh
end
#--------------------------------------------------------------------------
# œ ƒtƒŒ[ƒ€XV
#--------------------------------------------------------------------------
def update
   super
   refresh
end
#--------------------------------------------------------------------------
# œ ‰æ-ʍĕ`‰æ
#--------------------------------------------------------------------------
def refresh
   self.contents.clear
   # ƒAƒCƒRƒ",ð•`‰æ
   case @mode
   when MODE_START
     refresh_start
   when MODE_WAIT
     refresh_wait
   when MODE_MOVER
     refresh_move(1)
   when MODE_MOVEL
     refresh_move(0)
   end
   # ƒAƒNƒeƒBƒu,ȃRƒ}ƒ"ƒh-¼•\Ž¦
   rect = Rect.new(@cx - 272, @cy + 24, self.contents.width-32, 32)
   self.contents.draw_text(rect, @commands[@index],1)
end
#--------------------------------------------------------------------------
# › ‰æ-ʍĕ`‰æ(‰Šú‰»Žž)
#--------------------------------------------------------------------------
def refresh_start
   d1 = 2.0 * Math::PI / @item_max
   d2 = 1.0 * Math::PI / STARTUP_FRAMES
   r = RING_R - 1.0 * RING_R * @steps / STARTUP_FRAMES
   for i in 0...@item_max
     j = i - @index
     d = d1 * j + d2 * @steps
     x = @cx + ( r * Math.sin( d ) ).to_i
     y = @cy - ( r * Math.cos( d ) ).to_i
     draw_menu_item(x, y, i)
   end
   @steps -= 1
   if @steps < 1
     @mode = MODE_WAIT
   end
end
#--------------------------------------------------------------------------
# › ‰æ-ʍĕ`‰æ('Ò‹@Žž)
#--------------------------------------------------------------------------
def refresh_wait
   d = 2.0 * Math::PI / @item_max
   for i in 0...@item_max
     j = i - @index
     x = @cx + ( RING_R * Math.sin( d * j ) ).to_i
     y = @cy - ( RING_R * Math.cos( d * j ) ).to_i
     draw_menu_item(x, y, i)
   end
end
#--------------------------------------------------------------------------
# › ‰æ-ʍĕ`‰æ(‰ñ"]Žž)
#  mode : 0="½ŽžŒv‰ñ,è 1=ŽžŒv‰ñ,è
#--------------------------------------------------------------------------
def refresh_move( mode )
   d1 = 2.0 * Math::PI / @item_max
   d2 = d1 / MOVING_FRAMES
   d2 *= -1 if mode != 0
   for i in 0...@item_max
     j = i - @index
     d = d1 * j + d2 * @steps
     x = @cx + ( RING_R * Math.sin( d ) ).to_i
     y = @cy - ( RING_R * Math.cos( d ) ).to_i
     draw_menu_item(x, y, i)
   end
   @steps -= 1
   if @steps < 1
     @mode = MODE_WAIT
   end
end
#--------------------------------------------------------------------------
# œ €-Ú,Ì•`‰æ
#     x :
#     y :
#     i : €-Ú"ԍ†
#--------------------------------------------------------------------------
def draw_menu_item(x, y, i)
   #p "x=" + x.to_s + " y=" + y.to_s + " i=" + @items[i].to_s
   rect = Rect.new(0, 0, @items[i].width, @items[i].height)
   if @index == i
     self.contents.blt( x, y, @items[i], rect )
     if @disabled[@index]
       self.contents.blt( x, y, ICON_DISABLE, rect )
     end
   else
     self.contents.blt( x, y, @items[i], rect, 128 )
     if @disabled[@index]
       self.contents.blt( x, y, ICON_DISABLE, rect, 128 )
     end
   end
end
#--------------------------------------------------------------------------
# œ €-Ú,ð-³Œø,É,·,é
#     index : €-Ú"ԍ†
#--------------------------------------------------------------------------
def disable_item(index)
   @disabled[index] = true
end
#--------------------------------------------------------------------------
# › ‰Šú‰»ƒAƒjƒ[ƒVƒ‡ƒ",̏€"õ
#--------------------------------------------------------------------------
def setup_move_start
   @mode = MODE_START
   @steps = STARTUP_FRAMES
   if  SE_STARTUP != nil and SE_STARTUP != ""
     Audio.se_play("Audio/SE/" + SE_STARTUP, 80, 100)
   end
end
#--------------------------------------------------------------------------
# › ‰ñ"]ƒAƒjƒ[ƒVƒ‡ƒ",̏€"õ
#--------------------------------------------------------------------------
def setup_move_move(mode)
   if mode == MODE_MOVER
     @index -= 1
     @index = @items.size - 1 if @index < 0
   elsif mode == MODE_MOVEL
     @index += 1
     @index = 0 if @index >= @items.size
   else
     return
   end
   @mode = mode
   @steps = MOVING_FRAMES
end
#--------------------------------------------------------------------------
# › ƒAƒjƒ[ƒVƒ‡ƒ"'†,©,Ç,¤,©
#--------------------------------------------------------------------------
def animation?
   return @mode != MODE_WAIT
end
end
#===============================================================================
# ▲ CLASS Window_RingMenu Ends
#===============================================================================

#===============================================================================
# ▼ CLASS Window_RingMenuParty Begins
#===============================================================================

class Window_RingMenuParty < Window_Selectable
#--------------------------------------------------------------------------
# Sets up the new actor selection window
#--------------------------------------------------------------------------
def initialize
   super(0, 0, 344, 128)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.contents.font.size = 20
   refresh
   self.active = false
   self.index = -1
end
#--------------------------------------------------------------------------
# Draws the party's actors and their info into the window
#--------------------------------------------------------------------------
def refresh
   self.contents.clear
   self.windowskin = RPG::Cache.windowskin($chara_select[4])
   self.contents.font.name = $chara_select[0]
   self.contents.font.color = text_color($chara_select[1])
   @item_max = $game_party.actors.size
   for i in 0...$game_party.actors.size
     x = 86 * i
     y = 0
     actor = $game_party.actors[i]
     draw_actor_graphic(actor, x+24, y+48)
     draw_actor_name(actor, x-8, y+32+14)
     draw_actor_level(actor, x, y + 48+14)
   end
end
#--------------------------------------------------------------------------
# Defines the drawing processes
#--------------------------------------------------------------------------
  def draw_actor_name(actor, x, y)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 64, 32, actor.name, 1)
  end
  def draw_actor_level(actor, x, y)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 32, 32, "Lvl")
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 24, y, 24, 32, actor.level.to_s, 2)
  end
#--------------------------------------------------------------------------
# Updates the selection rectangle
#--------------------------------------------------------------------------
def update_cursor_rect
   if @index < 0 or @index > $game_party.actors.size - 1
     self.cursor_rect.empty
     return
   elsif @index >= 0 and @index <= $game_party.actors.size - 1
     self.cursor_rect.set((@index * 86)-7, 0, 64, 96)
   end
end
#--------------------------------------------------------------------------
# Moves the cursor rectangle and prevents it from going off the screen
#--------------------------------------------------------------------------
def update
   if @index >= 0 and @index <= $game_party.actors.size - 1
     if Input.repeat?(Input::RIGHT)
          $game_system.se_play($data_system.cursor_se)
          @index += 1
     end
     if Input.repeat?(Input::LEFT)
          $game_system.se_play($data_system.cursor_se)
          @index -= 1
     end
     update_cursor_rect
   elsif @index < 0
     @index = $game_party.actors.size - 1
   elsif @index > $game_party.actors.size - 1
     @index = 0
   else
     self.cursor_rect.empty
     return
   end
end
end
#===============================================================================
# ▲ CLASS Window_RingMenuParty Ends
#===============================================================================

#===============================================================================
# ▼ CLASS Game_Map Additional Code Begins
#===============================================================================
class Game_Map
#Dubealex Addition (from XRXS) to show Map Name on screen
# This is also necessary for the new Window_Steps
def name
   $map_infos[@map_id]
end
end
#===============================================================================
# ▲ CLASS Game_Map Additional Code Ends
#===============================================================================

#===============================================================================
# ▼ CLASS Scene_Title Additional Code Begins
#===============================================================================
class Scene_Title
# Dubealex Addition (from XRXS) to show Map Name on screen
# This is also necessary for the new Window_Steps
   $map_infos = load_data("Data/MapInfos.rxdata")
   for key in $map_infos.keys
     $map_infos[key] = $map_infos[key].name
   end
end
#===============================================================================
# ▲ CLASS Scene_Title Additional Code Ends
#===============================================================================

end
#===============================================================================
# ▲ Ring Menu Script Ends
#===============================================================================
21
So I know there are people that tend to leave most of the default items/enemies/whatever else when working on an RPG Maker project, but my question is for those change them. Do you prefer higher numbers in your stats or lower? And how would you go about ensuring your game is well-balanced?

Personally I prefer lower numbers just because I find things easier to manage and change that way. Plus from low numbers I can scale up as much as I desire, which again I find easier.
22
General Discussion / Issues Testing with RMX-OS
June 18, 2011, 09:42:07 am
I'm trying to set up my game and give a single copy to a buddy of mine so that he can help me test it. I've got a static IP set, I got a DNS Server that reroutes to my IP (as found on http://www.WhatIsMyIP.com/).

Also when I type that port into CanYouSeeMe.org it says "Success: I can see your service on 173.31.74.152 on port (54269)
Your ISP is not blocking port 54269"

Still when I go to run the server, I get an error saying "The requested address is not valid in its context" and the server won't start.

Any ideas as to what could be causing the issue?

cfg.ini
Spoiler: ShowHide
NAME = 'RMX-OS Server'
HOST = '173.31.74.152' (Also tried with 192.168.0.1 and 192.168.0.2)
PORT = 54269
RMXOS_VERSION = 1.18

LOG_MESSAGES = false
LOG_ERRORS = true
LOG_ACTIONS = true

DEBUG_MODE = false

MAXIMUM_CONNECTIONS = 50
LOGIN_TIMEOUT = 30
AUTO_RESTART = true
RESTART_TIME = 5
USE_IP_BANNING = true
PREVENT_ZOMBIE_CLIENTS = false
RUBY_PROMPT = false
OPTIMIZE_DATABASE_ON_STARTUP = true
DATABASE_CONNECTION_TIMEOUT = 60

SQL_HOSTNAME = '127.0.0.1'
SQL_USERNAME = 'root'
SQL_PASSWORD = 'root'
SQL_DATABASE = 'rmxosdb'

INBOX_SIZE = 10

EXTENSIONS = [ "Updater", "BlizzABS", "Global Time"
]


SERVERS.push section in client script
Spoiler: ShowHide

    SERVERS.push(['Local Server', '127.0.0.1', 54269])
    SERVERS.push(['Test Server', '173.31.74.152', 54269])
    SERVERS.push(['Test 2', '192.168.0.1', 54269])
    SERVERS.push(['Test 3', '192.168.0.2', 54269])
23
I have an ACER laptop that's all kinds of jacked up apparently. I went to start it, and it says there's no boot file, nothing to boot on. I tried entering the BIOS to boot of a USB drive (no disc drive), but the only boot option I have is Boot from Network, which I have never done before, so I don't know how it works.

I tried hitting network boot and booting off a usb drive but that didn't work either.
Any ideas?
24
Script Requests / [XP] RMX-OS Map Instances?
June 10, 2011, 09:53:06 pm
I was wondering if it was possible to create new instances of a map using RMX-OS, that way multiple players could be in the same area without creating a server overload. The main reason I am looking for a script like this is for dungeon instances like in ORPGS such as WoW.  If you don't understand what I'm talking about, check out this wiki page, it explains the concept much better than I do. Wiki

If this is possible I would like to request someone to either script it or help me understand how to script it. Thanks!
25
General Discussion / RPG + Platformer?
June 06, 2011, 06:49:41 am
So I'm thinking about doing a small side project, and combining platformer game play with RPG-style elements such as story progression, possibly quests, and character development.

I was thinking of using RMXP to do the project, for two reasons. One, I know the system, and feel too lazy at the moment to learn a new one. Two, I was thinking I could possibly use Blizz-ABS or some other ABS for real-time battles on the map.

I've never tried making a platformer with RMXP, but I've heard of it being done before. Any ideas?
26


An online RPG in development by MRoe Designs

(Click image to go to the development blog)

Official Project Thread

Currently I'm the only person actively working on development. I've got a few friends who've been helping me out with writing here and there, but thats the most of it. I need, of course, all the help I can get. But I also understand that I can't ask for somebody to create my whole game for me for free. There for, if you think you have something that could help, please feel free to post it. Any and all ideas are welcome.

As far as what I am specifically looking for, I need writers, and I need spriters. I love having many people work on the story and background of the project, because everybody has their own part to contribute. And art is my biggest benchmark in the project as of right now. I need some more visual equipment, and/or recolors of the sets that I've got. Also I would like to have custom tile sets, eventually 100% custom. Again, I'm not asking for any single person to do everything, I'm just listing everything I need.

Let me know if you're interested, or if you have anything that might help me out. Thanks!

27
General Discussion / Story Points
May 20, 2011, 06:54:43 pm
Working on a story for a very small project I'm doing to get me back in the swing of things for development of Bloodlines. Just started today, so all I've got are a few different ideas, just wanted to see what you guys thought of 'em.

Two kings; eastern & western king
- "Berlin Wall" of sorts between kingdoms, could be an actual structure or a land form of some sort

Single tyrannous king
- Player starting revolution against him
- Possibly inherited kingship falsely

No kings, civil unrest
- Multiple groups fighting to claim
-- King was killed, mercenaries want throne
-- Kings brother vs Kings son ( or bro vs. bro / son vs. son )

Certain areas under military rule from outside force
- Player fighting to regain control for his/her kingdom


Again, these are just ideas, not all part of any single plot.
28
Welcome! / Im back!
April 30, 2011, 07:21:36 pm
So after a very long, unfortunate series of events, Im back! I need to get a few things set up still, but I should be back into the development of Bloodlines within a few weeks. Im glad to be back.

Also, ARC looks very promising! Keep it up guys
29
Video Games / RPG World Online (RPGWO)
January 10, 2011, 06:35:05 am
So I'm very happy ^.^

There's this old oRPG that I used to play when I was younger called RPG World Online. It was programmed by a single-man team and originally opened in November of 2000. I decided to see if it was still up, even though I didn't think it would be, and it  turns out it is! He's working on the third version now.

It was never a very visually-appealing game, but it wasn't too unbearable. And for some reason, I've always loved this game. It's sort of like Ultima Online, in the way that the world is created/maintained by the players. Once you get to level 5 i believe, you can purchase a land plot and you can build your house on it, keep all your stuff there and everything. It's pretty damned cool if you ask me.

Then again maybe I just think it's cool because im a legacy VB6 programmer, and its always been my dream to make my own orpg using it. :V

Either way, check it out if you'd like.

www.RPGWO.com - Original
www.RPGWO2.com - Numbah 2
30
Video Games / Interesting Video Game statistics
January 08, 2011, 08:44:54 pm
Spoiler: ShowHide


Source: Online Education