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 - Reno-s--Joker

1
Yeah, I know this is a really smooth first post after being inactive for so long.  :<_<:
Nevertheless, onwards!



begin BLATANT ADVERTISEMENT
Are you looking for a simple file sharing solution? Sick of uploading files only to have them wiped due to inactivity? Sick of popup ads on MediaFire and wherever else you store your stuff?
Then look no further! Allow me to suggest .............

(*n00b alert*) It uses clouds to store your files. Or something.



I was eager to share this site, for a number of reasons.
1. Because I get 250MB extra storage for each referral until I hit 8GB.  :evil:
2. Because you get extra storage for clicking my link, so we're a happy family.  :haha:
3. It's really great for working on projects (*coughRPGMakerXPcough*) which require collaboration. Basically, you can sync the project folder to each of your team's computers, and work on it like a normal folder. You'll get pop-up notifications on your desktop as files are updated by others, people post comments, etc. Read the site info for a better explanation. Me no speake gud Ingleesh. They have prettier pictures too.
4. You get 2GB of storage free when you sign up. That's usually plenty for a project folder. But you can actually earn extra storage. As opposed to most sites which just demand you to pay $99.95 each second. C'mon, we're all poor students.
5. It's clean, pro-looking and ad-free. The support seems good and they seem to listen to users' suggestions for new features.


:naughty: Like it?????  :naughty:
Click this link to get started.
http://db.tt/K8iUFK3
Remember, both of us will get 250MB additional storage. ;)

Once I hit the earned storage limit, I'll take this link down and will be more than happy to put up someone else' referral link instead.

By the way, hello again everyone! :)


EDIT: Can't have bad grammergh now, can we. Nor have enough of the horizontal rules.
2
Boss Battle Competition (Non-ABS and RMXP)

Create the ultimate boss battle scene! Spawned indirectly from http://forum.chaos-project.com/index.php?topic=2737.0. ^-^



Rules and Information



YOU CAN:
- Use events, skills and ANY scripts you wish
- Have multiple staged battles if you want
- Use RTP resources or use your own resources instead
- Include SHORT cutscenes if you want
- Have a low level boss and characters if you want (i.e. not final boss style)
- Make your characters have freaking awesome powers (- Please! xD)
- Make it not serious if you want :shifty:

YOU CANNOT:
- Have more than one team member. Note that this does not count resources and custom scripts.
- Have glitches! >:(
- Have more than one boss* (although it can take several forms)
* If you choose to do this, you cannot have several forms.
- Have a game which lasts for longer than 5 minutes (minus the time taken for the battle, of course)
- Have cutscenes which are more interesting than the battle
- ... enter, Blizzard - you'd win :V: :V: :V:

ABSOLUTE BARE MINIMUM EXAMPLE:
- Game launches straight into a battle scene.

Judging and Criteria



I will accept three judges. Judges must have good enough internet to DL entries, enough time to play through them, a lack of bias, etc, etc. We will contact each other via PM on this forum or MSN if you want (but I'd rather not). I am a semi-judge (since my internet is so damn temperamental >_>)

Current Judges:
#1: game_guy
#2: UltaFlame
#3: Seox

I'm open to better criteria suggestions and I'll write up a proper list for judges but at the moment...

Challenge:
   Strategy (how interesting)
   Length (too short/too long/just right)
   Attempts (too easy/impossible/awesome)

Creativity:
   Boss design (how creative)
   Boss skills (suitability/uniqueness)

Equipment:
   Levels (too low/too high/match boss)
   Skills/Abilities (how awesome)

Aesthetics:
   Visuals (how interesting)
   Graphics (how pretty)

Bonus points:
   Lulz OR Epic Wows
   Unique ideas for scenario
   If you bribe the judges with munneh :V:

Deductions (although they are minor):
   Glitches encountered
   Cliches
   Breaking any of the rules

Entering



Please enter! It's really short and the time limit is aaaggesss! *puppy eyes*

Time Limit:
Until the end of my (currently failing) hiatus!
i.e. Wednesday, 4th November
I will be lenient on the day because I can't be bothered converting timezones. :^_^':

Sending the Files:
MAX FILE SIZE of 12MB (zipped). Please compress the game data first. Then PM the people on the judges list (and me) with a link to your uploaded game file.
Please: no early submissions unless something really weird and terrible is about to happen. o__o

Signup:
Copy and paste this and fill it in and I will try and update this post whenever I get back:
[b]#<ENTRY NUMBER>:[/b] <USERNAME>

The above assumes that you are a Chaos Project Forum member. So sign up if you are lurking!! >:(

Current Signups:
#01: Starrodkirby86
#02: Aqua
#03: Valcos
#04: Sally [VX]
#05: shdwlink1993

Just post here saying so if you want to opt out.

Prize



Winner receives fame and glory and Reno will be added to your fanbase. Winner will also receive a free, full-colour drawing request of whatever the duck they want (actually, only human-like things please... >_<) from Reno in manga-esque style. Sorry I can't offer anything else. D: Open for negotiations.

3
Welcome! / Adieu ~<3
May 05, 2009, 06:31:36 am
Well, to cut a long story short I'm going to (try and) ban myself from the internet for the next ... 6 months. You won't miss me in the meantime. ;)

I will return to do necessary stuff (e.g. beta testing, reading your minds, counting to infinite :V:) but for the main part I should be gone. HOWEVER - one thing: please, please if you ever catch me here, on MSN, playing osu, existing actively anywhere else on the internet, etc. you have my permission to help me out by ignoring, flaming at, banning, pretending to be my mom, commanding, or nagging me as you see necessary. Actually I'm pretty weak-hearted don't do that. :(

I just had to use these smileys before I go:  :naughty: :negative: :_): :faceless:

Later guys. ~<3

Oh and btw I will be back like a freaking cyclone after the 6 months whether you want me here or not because unlike many people who have left I have no choice about finishing my game.  :evil:
4
Okay, I requested this at the last RXMP forum I was on, and got no replies. ;___; Hopefully someone can help me out here.
Again, apologies if this request already exists here.

I'm looking for a multi-page battle result window which has the following features (in no particular order):

  • Small windows (better if they could resize to fit contents) which pop up IN SPECIFIED ORDER after winning the battle, and disappear after you press C or B

  • e.g. "EXP: 10" *upon press, next window* "GOLD: 23" *upon press, next window*, etc. until battle scene ends

  • This list of windows includes all new skills learned (at the end, see below about custom skill learning script)

  • Compatible with a custom skill learning script (which usually uses 'newskills' and 'ap' to tell the normal battle result window what to do)

  • The background of the battle can still be seen



With my moderate to low level of scripting, the following would be really useful:

  • A link to an existing script which implements all the features needed

  • A link to an existing script which could be easily modified to include all the features needed

  • (Serious) Tips on how to go about doing this from scratch

  • A collaboration with me to make this script by an interested person

  • Someone else who can be bothered to make it entirely from scratch



Thanks heaps in advance! Any help would be appreciated! :)
5
The title is pretty self explanatory but I was wondering if it was possible to have the field music resume from where it was before battle after the battle has ended.

This is what happens now:
1) On map (halfway through song)
2) Random encounter! (battle music begins, victory music plays)
3) Battle scene ends and you return to map, at the beginning of the song again.  >:(

I want 3) to be this:
3) Battle scene ends and you return to map, halfway through the song like before.  ;)

I've tried looking in the help file, but only found play and stop, no pause or 'remember' or something. I looked at Google and only found queries about music from battle continuing on map (not what I want).

Thanks in advance, and I really hope this is achievable. :'(
6
RPG Maker Scripts / Dollars and Cents Script Code Snippet
February 21, 2009, 12:34:46 am
Here is a little code snippet thing that could be useful if you want to use dollars and cents format for your game:

Wherever you see:
self.contents.draw_text(x, y, width, height, @gold.to_s)

You can replace @gold.to_s with:
format("$%.2f", (@gold/100).to_s)


e.g. 300G becomes $3.00, 495059 gold becomes $4950.59.

Note that the above code treats 1 standard G as being 1 cent in dividing it by 100. This way, you can sell items for $9.99 like in the real shops! :V:

If you want whole dollars (which is kinda pointless) just change the code to:
format("$%.2f", @gold.to_s)


If you want to omit the $ sign, change to:
format("%.2f", (@gold/100).to_s)


Credits:
This Discussion on Ruby-Forum
7
I don't know how the script database works and therefore I don't know how easy or hard this is to implement, so apologies in advance.  :^_^':

I noticed that there are three categories: Script Name (with link), Version and Topic Author. I know this might be hell to make happen for the scripts already in the database, but for the new scripts which have a different author, another category for 'Creator' or something like that would make it uhm ... 'better' ... for if you are submitting a script not made by you. That way it might be 'nicer' for submitting scripts made by other people.

I hesitate on 'better' and 'nicer' because when I come to think about it a lot of people write their own scripts here, so this is more of a superficial addon kinda thing.

And maybe if the column widths for each of the categories was the same...? Again, another superficial addon but yeah that would be sweet.
8
Resources / Some Freeware Graphics Programs
February 20, 2009, 02:14:42 am
Once again I apologise if this has already been posted or is in the wrong category. I couldn't find a similar post in my searches and I also must admit I had a lot of trouble deciding which category to post this too.  :(

Some Freeware Graphics Programs
Here is a short list of freeware graphics programs I have tried and tested and could recommend. I've also included one or two general recommendations. These programs may be useful to you in creating graphics for your RPG.

Painting
GIMP
This is by far the best alternative to Photoshop's painting abilities I have come across yet. The brushes can be very natural, and you have great control over the flow, opacity, etc. If you're skilled enough with a tablet this is perfect for creating digital paintings and thus battler/monster graphics for your game. It's probably also the best free alternative to Photoshop available.

Pixel Editing
Paint.NET
I have heard many good things about this program, but have not tried it myself. It's basically a really advanced version of MS Paint. Might be useful for sprite editing, I'm not sure.

Icon Making Software
Liquid Icon XP
A neat little pixel-based icon making software where you can draw the icon in directly. This might be useful if you want to change the game.exe icon.

Sibcode Icon Plugin 2.0
This is a free plugin for the non-free Photoshop. If you have PS then you can create and save images in .ico format directly. This has the potential to make really nice, anti-aliased icons that are much better than pixel ones.

Vectorising Software
LineTracer
I know the site looks dodgy and unpro but it can be really handy for vectorising linearts (cleaning up the edges). If you have a program like PS that can open .eps files, you can colour your linearts in that program. This kind of program can help make your graphics look more professional if you're aiming for a manga-ey lineart look but cbb tracing stuff and don't have a tablet.

Inkscape
I have not tried this yet but it looks very, very good, and professional.

Font Making Software
dafont.com
This has been recommended by Meta. Not only does it have a large number of fonts for you to choose from (so you probs won't have to make your own), it also has a list of font tools, some of which are free.

Web App YourFonts
I haven't tried this but by using a template and submitting it you can create a font out of your handwriting (or bend the suggestions and just make a font). Might be useful if you can't find the font you want for your game.

Tile Set Software
<Direct Download Link> Tile Set Maker
This software is designed for helping you make repeating tiles with edges which line up. Might be useful if you make tilesets.

Random Other
Apophysis
A well known ree fractal program which has the potential to make some really nice patterns (e.g. for backgrounds).

I would love to add any of your suggestions to this list too.  :-*
9
Chat / Plans // Dreams
February 13, 2009, 10:29:14 pm
First of all (as usual) I'm sorry if there is already a post for this.
I always try my best to search for and check if a topic exists before I post it. (I just sometimes have a lot of trouble finding the right keywords. :S)

So um... what are your plans or dreams for the future?
Education, career, travel, love, whatever...  ;)

I want to travel to space, whether I have to pay to go or become an astronaut (very unlikely). But first I want to get an engineering degree at uni, and visit my background country for the first time, then travel the rest of the world collecting hats and alcohol. 8) And I want to have enough money to donate heaps to people whenever I feel like it.  :D

Yeah... what about you?  :)
10
General Discussion / How to Make Challenging Bosses...?
February 10, 2009, 12:39:28 am
Sorry if I posted this in the wrong place, but I was wondering if someone could perhaps make a tutorial or guide for making certain bosses at certain stages in the game just right for the player's level (it would be grand if you could do this without a million people testing the game)...?

Perhaps what kind of HP corresponds to what player strength/level, or what skills are just torturous enough to keep a battle long and fair. :D

...
That is, only IF there are nifty tricks like that out there... ^-^;
11
Chat / Explain your username!
February 06, 2009, 01:04:53 am
Hi - its me again, bored and not thinking properly.  :^_^': Sorry if this post already exists, but I promise you I did a search on it first, as I always do.  :shy:

Soooo.... what's the story behind your username?

The very long story behind "Reno-s--Joker": :V:
1) I started doing a little less well at school, so I adopted an email 'brain juice leaking' because I thought it applied to me.
2) I developed an obsession with Reno and FFVII Advent Children.
3) I wanted to make art for it so I signed up for dA, shoving Reno and 'brain' together. --> Reno-s--Brain
4) I got obsessed with the Joker from TDK recently, hence the Joker part. --> Reno-s--Joker


:ninja:
[Btw, is it just me or did I only just notice the forum has ads? There is this weird egg eating things with its super long tongue.  :O_O:]
12
Chat / Sharing is Caring
January 31, 2009, 07:30:00 pm
Okay, it's an undeniable fact that you can get the crack for any non-free software you can think of (well maybe not any, but the others usually don't matter) and download almost any song or movie or the like you want, for free, in these (relatively) new beginnings of the internet. This creates a huge problem in terms of money and copyright and crap for the companies and creators behind these things, so here I pose the question:

What does everyone think of the future of software and media on the internet?

My theory is that one of four things will happen:
1) A huge authority will crack down on illegal downloads and half the internet using population gets fined/jailed.  :P
2) In my utopian ideal, absolutely everything will become free.  :haha: Freewares will become so competitive that Commercial products will succumb to their influence, and we will become one big sharing happy family and the world will be grand.  :D
3) Buying things online will become so easy it's like going into a shop anyways, so fewer people will download illegally. Although this will not solve the problem and another solution will replace this one.  :<_<:
4) Some amazing genius like Blizzard will develop an unbreakable code which only he knows how to break and which people would start blackmailing him to get the crack for.  :uhm:

Debate away.  :)
13
First of all I apologise if there is already a post for this, and if I put this in the wrong category.  :^_^':

I just thought that there might be other people out there who are willing to help others out if they are stuck with a good name for their game development team/self.  ;)



Common Name Structures
Here is a list of common company name structures I got from gamedevmap.com, where X is the unique part of your company name:

  • X Entertainment (e.g. Retard Entertainment)
  • X Interactive (e.g. Your Face Interactive)
  • X Studios/Studio (e.g. Amazing Studios)
  • X Software/Soft (e.g. Very Soft)
  • X Labs/Lab (e.g. Evil Minion Labs)
  • X Company/Co/Corp (e.g. Shinra Co.)
  • X Media (e.g. 1337 Media)
  • X Games/Game Development/Development (e.g. My Frog Died Yesterday Games)
  • X Online (e.g. I Go Online)
  • X Design (e.g. Curly Brackets Design)
  • X Systems (e.g. Asterisk Systems)
  • X Technology/Tech (e.g. Synsys Tech)


Spiffy Naming
Some suggestions for greatness include:

  • Oxymorons (e.g. Ice on Fire, Old Babies  :O.o:)
  • Completely random two or three (max) word phrases (e.g. Porcelain Chicken, Chinese Fried Tofu) <-- can't you tell I'm hungry  :P
  • Japanese (sounding) words. Because it sounds pro.
  • Merge words together (e.g. Stormtronics, Enterbrain, Microsoft :roll:)


Words that make you sound spiffy (open for more suggestions):

  • Point
  • Zone
  • Mode
  • Zero
  • Generation/Gen
  • Republic (lol)




Logo Design
If you already have a company name, keep reading!

Some suggestions for good, balanced logos include:

  • First and last letters are same type (e.g. ToT, aBBa, quoop)
  • If you merge two words, make them similar lengths (e.g. MacroHard is 5, 4; TimTam is equal)
  • A pretty first letter (e.g. Q, F, define pretty I know)
  • Include a geometrically awesome letter (e.g. X, Z, O, T, I, V, etc.)
  • Have it match the style of your game (e.g. futuristic font, bubble font, etc.)


game_guy's 3D Text
Send game_guy a PM with what you want and he can help you out:

Logo: Logo name
Color: Color of logo
Background(optional): Give me a background or just mark transparent.
Font: Name of font

Here are some awesome examples of his work! :D
Examples: ShowHide









I'm also selectively available for designing logos for your company name. I specialise in simplified, shiny or flat logos which make use of basic geometric shapes, so if you're interested I'll see what I can do for you. Just bear in mind I still have to go to school...  :<_<:



Hhmmm mental blank atm. I'll happily mod the list if you have more suggestions. Hope people find this useful/ help others out.  :)
14
Chat / Because I am new at life...
January 30, 2009, 07:11:22 am
I have a few questions, which I'm sure only other people can answer.

1)
What is I PWN YOU AT GAMES standard? People get pretty macho about Brawl, so let's use that as a standard.
Is it amazing to beat Boss Battles on Intense? Or do people play it a million times to get that good? Don't people get really pissed when they get beaten in WiFi?

I'm used to being told that because I'm a girl, I don't have an innate talent for games like boys do. What is your opinion on this?

2)
Who here uses a disguise personality on the internet, and why or why not?  :huh:
I know I do...

3)
What percentage of the population do you think are flamers/trolls/whateveryoucallthosehorriblenastypeople?
Why are they like this?  :<_<:

And on a random note, is it just me or are a lot of people here quite young and at the same time very mature? I feel out of date... I joined the internet when I was 14... D: Actually, that's when I got my first sh*tty computer too. :o And um I have deduced that there is an IT on the forum, but how many females are there out there?  :???:

SPAMSPAMSPAMSPAMSPAMSJDGSJHGDSJHGDSSPAMSPAMSPAM

4)
Okay, last question. Wait, there isn't one.
I'm so boored and feeling a little emo, but I should be doing my English portfolio.  :shy:
15
I'm looking for a value for money, reliable hard drive, external or portable. Currently I have an 80GB hard drive on my laptop, and I thought getting an external hard drive would be better and cheaper than getting a new computer.  :)

I'm new to this, so I have a few questions you may be able to answer:

  • Will getting extra HD space help speed up my nearly full computer?
  • Portable or External? Do portable HDs need a DC power source, and is that better?
  • Which brand is more reliable and durable?
  • Seeing as I can survive on 80GB (barely), should I go for the smaller (more expensive per gig) HDs?
  • Anything else - I am really quite clueless...  :^_^':

:???:

I'm from Australia, so I don't understand USD :O.o: and I would really appreciate recommendations, especially from first hand experience.

:P Thanks for reading!
16
Ring Menu with Improved Selection Window
Authors: Reno-s--Joker, Dubealex, Maki, 和希
Version: 1.2
Type: Ring Menu Modifications Including Addon Windows
Key Term: Menu Add-on



Introduction

This is an addon for 和希's/Maki's/Dubealex's Ring Menu, one of my favourite scripts out there. <3
The original Ring Menu was NOT made by me! Again, this is an aesthetic modification for it, because I wasn't happy with the actor selection window popping up uglily on the side.  :<_<: You can't even view the actors' levels without going to status...  :o

Version 1.1 (I am not a scripter so excuse my poor numbering) features a neat way to prevent readability issues thanks to Starrodkirby86. :haha:

Version 1.2 (please excuse me again) features the option to have the ring of icons itself move inward as the player is near the edge of the screen, thanks to Landith and Aqua. :P


Features


  • Includes XRXS/Maki/Dubealex's Ring Menu
  • View party and their basic stats at all times the menu is active
  • Includes a modified location and steps window
  • Menu also has play time and gold window included
  • Animated, transparent status window
  • Now moves the addon windows to top or bottom of screen according to player y position
  • Displays encounter steps under Steps
  • Now has the option to move the ring inward from the edge of the screen if the player goes too close to the edge



Screenshots

Here is the old system which I didn't like: ShowHide


v1.0
Look! It works...: ShowHide

The New Status Window: ShowHide


New in v1.1
The new windows placement in action: ShowHide
[/url]

The status window also moves: ShowHide
[/url]


New in v1.2
None needed. :P



Demo

The new demo includes an experiment with the title menu, replacing the default with a ring version. It's a bit patchy, hence the poor graphics, but I'm still trying to perfect it. :D

V 1.2: The most up to date version.
MediaFire Download
Sorry, too lazy to upload twice...  :uhm:

V 1.1
MediaFire Download
Alternate Rapidshare Download


Script

I merged all the scripts into one long one here.  :wacko:
The similarly huge fatness of v 1.2: 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 = '034-Item03'
  Map_Icon = '038-Item07'
  #--------------------------------------------------------------------------
  # ● Icons for the main ring
  #--------------------------------------------------------------------------
  Item_Icon = '021-Potion01'
  Skill_Icon = '044-Skill01'
  Equip_Icon = '020-Accessory05'
  Status_Icon = '049-Skill06'
  Save_Icon = '047-Skill04'
  Exit_Icon = '048-Skill05'
  Disabled_Icon = '046-Skill03'
  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]=32                             # 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]="Save"          # Save 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]="001-Blue01"  # 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 = @window_opacity[1]
    @steps_window = Window_Steps.new
      @steps_window.x = 0
      @steps_window.opacity = @window_opacity[0]
      @steps_window.back_opacity = @window_opacity[1]
    @gold_window = Window_Gold.new
      @gold_window.x = 492
      @gold_window.opacity = @window_opacity[0]
      @gold_window.back_opacity = @window_opacity[1]
    @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, status and save
        @command_window.disable_item(0)
        @command_window.disable_item(1)
        @command_window.disable_item(2)
        @command_window.disable_item(3)
        @command_window.disable_item(4)
      end
   @command_window.z = 100
    # If save is forbidden
      if $game_system.save_disabled
        # Disable save
        @command_window.disable_item(4)
      end
   # ƒ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=255
   @party_window.back_opacity=255
   @party_window.visible = true
   @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
      @party_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)
        # Make status window active
        @command_window.active = false
        @party_window.active = true
        @party_window.visible = true
        @party_window.index = 0
    when 2  # equipment
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Make status window active
        @command_window.active = false
        @party_window.active = true
        @party_window.visible = true
        @party_window.index = 0
    when 3 # Status selected
        $game_system.se_play($data_system.decision_se)
        @command_window.active = false
        @party_window.active = true
        @party_window.visible = true
        @party_window.index = 0
    when 4  # save
        # If saving is forbidden
        if $game_system.save_disabled
          # Play buzzer SE
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to save screen
        $scene = Scene_Save.new
    when 5  # 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
   # B ƒ{ƒ^ƒ",ª‰Ÿ,³,ê,½ê‡
   if Input.trigger?(Input::B)
     # ƒLƒƒƒ"ƒZƒ‹ SE ,ð‰‰'t
     $game_system.se_play($data_system.cancel_se)
     # ƒRƒ}ƒ"ƒhƒEƒBƒ"ƒhƒE,ðƒAƒNƒeƒBƒu,É,·,é
     @command_window.active = true
     @party_window.active = false
     @party_window.index = -1
     return
   end
   # C ƒ{ƒ^ƒ",ª‰Ÿ,³,ê,½ê‡
  if Input.trigger?(Input::C)
      # Branch by command window cursor position
      case @command_window.index
      when 1  # skill
        # If this actor's action limit is 2 or more
        if $game_party.actors[@party_window.index].restriction >= 2
          # Play buzzer SE
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to skill screen
        $scene = Scene_Skill.new(@party_window.index)
      when 2  # equipment
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to equipment screen
        $scene = Scene_Equip.new(@party_window.index)
      when 3  # status
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to status screen
        @actor = $game_party.actors[@party_window.index]
        @status_window.update_actor(@actor)
        @status_window.active = true
        @party_window.active = false
      end
      return
    end
end
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_SAVE    = RPG::Cache.icon(RM_CFG::Save_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[6]
   @commands = [s1, s2, s3, s4, s5, s6]
   # 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_SAVE, ICON_EXIT]
   @disabled = [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
#===============================================================================

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

The Huge Fatness of v1.1: 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 = '034-Item03'
  Map_Icon = '038-Item07'
  #--------------------------------------------------------------------------
  # ● Icons for the main ring
  #--------------------------------------------------------------------------
  Item_Icon = '021-Potion01'
  Skill_Icon = '044-Skill01'
  Equip_Icon = '020-Accessory05'
  Status_Icon = '049-Skill06'
  Save_Icon = '047-Skill04'
  Exit_Icon = '048-Skill05'
  Disabled_Icon = '046-Skill03'
  Openmenu_Se = ''
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.1
#===============================================================================
# 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.
#
# 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]=32                             # 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]="Save"          # Save 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]="001-Blue01"  # 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 = @window_opacity[1]
    @steps_window = Window_Steps.new
      @steps_window.x = 0
      @steps_window.opacity = @window_opacity[0]
      @steps_window.back_opacity = @window_opacity[1]
    @gold_window = Window_Gold.new
      @gold_window.x = 492
      @gold_window.opacity = @window_opacity[0]
      @gold_window.back_opacity = @window_opacity[1]
    @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.
   px = $game_player.screen_x - 15
   py = $game_player.screen_y - 24
   @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, status and save
        @command_window.disable_item(0)
        @command_window.disable_item(1)
        @command_window.disable_item(2)
        @command_window.disable_item(3)
        @command_window.disable_item(4)
      end
   @command_window.z = 100
    # If save is forbidden
      if $game_system.save_disabled
        # Disable save
        @command_window.disable_item(4)
      end
   # ƒ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=255
   @party_window.back_opacity=255
   @party_window.visible = true
   @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
      @party_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)
        # Make status window active
        @command_window.active = false
        @party_window.active = true
        @party_window.visible = true
        @party_window.index = 0
    when 2  # equipment
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Make status window active
        @command_window.active = false
        @party_window.active = true
        @party_window.visible = true
        @party_window.index = 0
    when 3 # Status selected
        $game_system.se_play($data_system.decision_se)
        @command_window.active = false
        @party_window.active = true
        @party_window.visible = true
        @party_window.index = 0
    when 4  # save
        # If saving is forbidden
        if $game_system.save_disabled
          # Play buzzer SE
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to save screen
        $scene = Scene_Save.new
    when 5  # 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
   # B ƒ{ƒ^ƒ",ª‰Ÿ,³,ê,½ê‡
   if Input.trigger?(Input::B)
     # ƒLƒƒƒ"ƒZƒ‹ SE ,ð‰‰'t
     $game_system.se_play($data_system.cancel_se)
     # ƒRƒ}ƒ"ƒhƒEƒBƒ"ƒhƒE,ðƒAƒNƒeƒBƒu,É,·,é
     @command_window.active = true
     @party_window.active = false
     @party_window.index = -1
     return
   end
   # C ƒ{ƒ^ƒ",ª‰Ÿ,³,ê,½ê‡
  if Input.trigger?(Input::C)
      # Branch by command window cursor position
      case @command_window.index
      when 1  # skill
        # If this actor's action limit is 2 or more
        if $game_party.actors[@party_window.index].restriction >= 2
          # Play buzzer SE
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to skill screen
        $scene = Scene_Skill.new(@party_window.index)
      when 2  # equipment
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to equipment screen
        $scene = Scene_Equip.new(@party_window.index)
      when 3  # status
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to status screen
        @actor = $game_party.actors[@party_window.index]
        @status_window.update_actor(@actor)
        @status_window.active = true
        @party_window.active = false
      end
      return
    end
end
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_SAVE    = RPG::Cache.icon(RM_CFG::Save_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[6]
   @commands = [s1, s2, s3, s4, s5, s6]
   # 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_SAVE, ICON_EXIT]
   @disabled = [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
#===============================================================================

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



Instructions

Download the demo
OR
Copy and paste the script in a new slot above main and below the old menu, gold, playtime, status, steps, etc. windows.



Compatibility

If placed after any CMS, it will override it. It will also probably override any custom gold, playtime, status, etc. windows. Otherwise it should be okay.  :)


Credits and Thanks


  • 和希 (From XRXS), Maki and Dubealex for the Ring Menu and its features
  • Diego's CMS for teching me how to animate the status window
  • game_guy's Modify Max Amount Script for teaching me how to use modules for config  :haha:
  • Starrodkirby86 for his suggestion to have the addon windows move according to player's y position
  • Kagutsuchi for his suggestion to add the encounter steps
  • Landith and Aqua for making the edge screen ring movement possible
  • Landith (again) for starting on a really neat 1 scene version of the ring menu
  • Blizzard (I think) for databasing this script



Author's Notes

I suggest use with a bold font for better readability, and hp/sp bars for the status window.

If you like it enough, I also recommend replacing the inbuilt windows entirely. For example, Window_Gold, Window_Steps, Window_MenuStatus and Window_Status are replaceable by this script. Saves some clutter.  :P

Another neat addon is to use the Death Toll script from Blizzard's addons, and insert the number of kills between Steps and Map Name in Window_Steps in place of encounter steps if you wish.

This is the first version I made for public use, so please let me know if there are any bugs or traces of code from my game...  :O.o:
I might think of making the window go slightly transparent when you're under it like in Blizzard's HUD.  :D
17
Resource Database / Reno-s--RMXPResources
January 17, 2009, 06:52:16 am
Reno-s--RMXPResources
Check back for updates! Use dark skin for better viewing!




These resources are FREE for anyone to use
HOWEVER I merely ask that you either:
1) LET ME KNOW if you are using them
AND/OR
2) CREDIT ME in your game.

... just want some motivation to work hard, ya know?  :P


The game I'm making is not a serious one (it contains random weird things everywhere), and I've changed a lot of the graphics to highly unrealistic/stylised ones - if anyone is possibly interested in these, just let me know - I haven't posted them up. :)
I have battlebacks and character sets (non-ABS), and will be making enemy battlers in this style.

But for the time being, I shall post things that I hope you will find useful!



Resources Menu
Currently included are some ...

  • RMXP Style Sprites designed for BlizzABS
  • A standard battler.
  • Miscellaneous Icons
  • Status Effect Icons for Blizzard's Tons script
  • Transitions
  • Titles
  • Windowskins
  • Some Sound Effect Mods

Included will (hopefully) be ...

  • One More RMXP Style Sprite designed for Blizz ABS (Hero)
  • Basic Sprites
  • Enemy (Boss) Battlers
  • More Miscellaneous Icons
  • Gameovers and more Titles
  • Panoramas
  • Fogs
  • More Transitions
  • More Windowskins
  • Some More Sound Effect Mods
  • Tileset Addons
  • Short, Looping Music Tracks




Resources




Sprites
RMXP Style Sprites designed for Blizz ABS
... should include the following character sets:
>> Walking | Attack (one wpn) | Defend | Item | Skill | Weapon (template) | Jump
maybe also considering
>> Idle

Nemesis
This is my very first fully developed OC so I will cry if you use him without letting me know. :(
Nemesis Concept Art (2): ShowHide

Head and shoulders shot - yeah, the full body shot is just too good for you. :) My scanner sucks crap, though. D:

Face and colouring detail guide - just a light colouring guide for anyone who would even be crazy enough to make a battler or whatever. Could be a faceset in the making, too. :D


Nemesis Sprites (7): ShowHide

Walk

Attack

Defend

Item

Skill

Jump

Crappy Weapon Template





Battlers
Standard Battlers
At the moment I'm only going to post one.

Link
Done in a really basic cell shading style, with strong blue shadows.
Legend of Zelda's Link (1): ShowHide


Boss Battlers
Coming soooon.



Icons
Weapon Icons (1): ShowHide

Reno's Rod - it's really poorly done atm, but if you're lazy then it's better that it's here than not.


Miscellaneous Icons (7): ShowHide

Rubiks Cube - yep one of my characters uses a Rubiks for a weapon. I warned you my game was a joke. :D

2nd Gen iPod (silver) - I had to make the background pink so you could see the headphones. :P

Whiteboard Marker - it's also really poorly done and I really hate the shading. :|

Star Rating Mini-Icons - if you can script it, it looks really neat to replace a skill rating, or whatever. Blue is full and white is empty.

Shiny Orb Base Icons - you can make these a background for standard icons for effect. 48x48 specially designed for my icon command window script. Change Hue to change colour.



Each status effect icon has a white ring around it - I've added a grey glow around each to show the ring. :P There's actually not much point to these, but oh wells...
Status Effect Icons (7): ShowHide

Knockout
Invincible
Poison
Sleep
Mute
Zombie
Berserk




Gameovers/Titles, Panoramas, Fogs and Transitions
Titles
Currently includes simple background-like pictures which have the potential to be title screens. Maybe. The Sky Titles are taken from my deviation here.
Sky Titles (4): ShowHide

Morning Cloudy Sky - I left the edges rough so you have a choice of blurring the image or not.

Blurry afternoon - Some hills at sunset, or something. :|

Evening Silhouettes - I left the edges rough so you have a choice of blurring the image or not.

Boring Night Sky - its really boring. ^-^;


Title/Gameover Graphic Resources (1): ShowHide

Blood splat image - this isn't a full title - just a graphic you can use to add to whatever. :)



Transitions
... these are the biggest files...   :huh:
Spiral Transitions (2): ShowHide

Flower - well, I think it looks like a flower. Appears to wipe away anticlockwise.

Machine - edges are sharper than the above - reminds me of the adjusting of a camera lens, if that means anything to you... :S


Radial Transitions (2): ShowHide

Ray - beams out from right to left.

Concentric - kinda ripples in to the centre.


Non-Radial Transitions (1): ShowHide

Sickness - inspired by Metroid Prime 3 Corruption. Failed to mimic. Diseased blob spreads from the middle and bubbles out.





Windowskins and Sound Effects
Windowskins
... because windowskins are so fun to make!  :haha:
Medium Windowskins (1): ShowHide

'Blue' - a simple mod of the normal blue windowskin to make it lighter and shinier.


Dark Windowskins (2): ShowHide

'Swirlbolt' Black - actually has nothing to do with lightning. Designed with the dark and mystic/magical in mind. Please DL to see it better. >.<;

'System Scan' Green - my attempt at mimicking that really old computer display. Dark and glowy.



Sound Effects
... a collection of sound effects mainly for cursors. A result of messing around in Audacity. I highly recommend this program for modifying any audio or generating artificial sounds.
Crisp Metal Sound (3): ShowHide

The best way to describe these is like plucking a really, thin, sharp metal wire.  :huh:
There are three in the archive at the moment: Cancel | Cursor | Select
http://www.mediafire.com/?tmod32e0tdm

Round Blobby Tech Sounds (3): ShowHide

Bad onomatopoeia: Boweeeep! Low then high techhy sound. I dunno. Artificial.
There are three in the archive at the moment: Cursor | Select | Misc (could be buzzer or select)
http://www.mediafire.com/?djzmim41tyh





Credits, Thanks and Random Infos

  • Macromedia Fireworks (awesome program) and Adobe Photoshop for the graphics

  • Audacity (another awesome program) and various free plugins and their respective authors for the sound effects

  • Starrodkirby86 for databasing these resources  :haha:

  • Any of the respective creators of any characters/references that I make into stuffs and do not own personally.



Currently I'm not open for requests - I'm really busy at school and I haven't studied at all... I feel bad... :(
Oh and btw - sorry if I left png layers in the files! I forgot to check.  :(

Last added stuff 7th March 2009 : CHECK BACK FOR UPDATES! :haha:
18
Welcome! / Oops. ^^;
January 16, 2009, 05:30:25 am
:oops:
I just realised there was an introductory forum here and I was supposed to use it. I hope you'll forgive me and allow me to introduce myself... :P

I'm currently at school so I can't work on my RPG as much as I'd like, I mainly specialise in spriting, windowskins, an most other graphics things, making aesthetic modifications to scripts, and noobishly modifying sound effects and writing dialogue.

In other un-RPG related things, I do biro art, digital painting, specialise in fanart, wish to travel into space one day, play Brawl on my Wii, overuse emoticons, attempt to customise my computer, write poems, and study for school. :rite:

I hope I am worthy of joining ur community. :nod:
19
RMXP Script Database / [XP] Icon Actor Command Window
January 15, 2009, 01:26:41 am
Icon Actor Command Window
Authors: Reno-s--Joker, Calintz16438
Version: 3.0
Type: Aesthetic Enhancement for Actor Command Window
Key Term: Battle Add-on



Introduction

Something I hope I can thank this awesome community with. :D

A purely aesthetic modification of the actor's command window (Attack, Skill, etc. window) during battle. See screenshots/demo for better description.

You will have to customise Scene Battle yourself and link it to this script if you have more battle commands (e.g. special skill windows like 'summon' or 'status').

This was my second script, so at the moment it's kinda rigid and hard to customise (although now greatly improved thanks to Calintz's help  :-*). If anyone likes it enough, i'll try my best to make it even better. :D


Features


  • Now features easy to use config options so no scripting familiarity is needed at all! :D
  • Now includes an option for vertical icons!
  • Four tip window/ icon window combinations to choose from.
  • Each actor's commands on their turn appear in a centred* command window
  • Commands appear as icons (no text)
  • Non-invasive tip text to explain icons - select between two types (to ensure readability of tip - see screenshots)
  • Can have any number of commands (except it will go off the screen if you have TOO many of course)
  • Uses larger icons than normal
  • * Customise all position, opacity, windowskin, colour, etc. values easily with Cal's new config section



Screenshots

Default Script
Screenies Demonstrating Tip Window Styles: ShowHide

Screenie for default window style (shorter battlers) - the tip window is under the icons

Screenie for alternate window style (taller batters) - it's almost impossible to read when they're too tall


Calintz's Script
Screenies Demonstrating Cal's Script: ShowHide

Coloured text

Standard text


Version 3.0
Coming soon... hopefully. ^-^
For the time being... just get the gist from the other versions. :xD:


Demo

Version 3.0 Demo: Rapidshare
http://rapidshare.com/files/205553108/Actor_Command.rar

Older Versions
Default Script Demo - Mediafire:
http://www.mediafire.com/download.php?jyzqgxrkkzj (more up-to-date, I think)
Default Script Alternate download site - Rapidshare:
http://rapidshare.com/files/184111783/ActorCommandDemo.rar
Calintz's Script Download
http://www.sendspace.com/file/rjrq73


Script

This is only the default script. Please download Calintz's demo if you wish to use his version of the script, and the 3.0 demo if you wish to use the latest version of the script (includes both Calintz's additions and the default script).
Main Script now with Scene_Battle Mods Included: ShowHide
#==============================================================================
# ** Horizontal Battle Actor Command Window with Icons
#------------------------------------------------------------------------------
#  brought to you by Reno-s--Joker
#------------------------------------------------------------------------------
# ** Window_ActorCommand
#------------------------------------------------------------------------------
#  This window is used to select whether to fight or escape on the battle
#  screen.
#==============================================================================

class Window_ActorCommand < Window_Selectable
 
  # Quick customisation - make false if you want an opaque window along the top
  # for the icon tips. Better for busy battle backs and tall actor battlers.
  # Keep true if you want the window to remain transparent and under the actor
  # command window.
  TIP_TRANS = true # True is default
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    # Change these at will - they will not actually appear on the command window
    # Just a good reminder :)
    @commands = ["attack", "skills", "defend", "item", "rubbish", "random" ]
    #Don't change this:
    @item_max = @commands.size
   
    # This section keeps the window centred no matter how many objects
    super (0, 0, (64*@item_max)+32, 80)
    self.contents = Bitmap.new(self.width-32, self.height-32)
    self.x = (640-self.width)/2
   
    #You can customise these to change opacity and position of the window:
    self.y = 242
    self.opacity = 150
    self.back_opacity = 95
   
    # Change the icons in this section if you're re-ordering the commands
    for i in 0..@commands.size
      case i
      when 0
        icon = "C-attack" # Change this to the icon of the first command
      when 1
        icon = "C-skill" # Change this to the icon of the second command
      when 2
        icon = "C-defend" # ... etc.
      when 3
        icon = "C-item"
      # If you have assigned icons to all your desired commands, you can delete
      # the two lines below:
      else
        icon = "C-errorhandling"
      end
    draw_item(i, 8+(64*i), 0,icon, 235)
    end
 
    self.active = false
    self.visible = false
    self.index = 0
  #--------------------------------------------------------------------------
  # * Set up the icon tip window
  #--------------------------------------------------------------------------   
    @tip_window = Window_Help.new
   
    if TIP_TRANS == false
      @tip_window.opacity = 150
    else
      @tip_window.contents = Bitmap.new(self.width-32, self.height-32)
      @tip_window.contents.font.size = 18
      @tip_window.contents.font.color = system_color
      @tip_window.contents.font.bold = true
      @tip_window.x = self.x
      @tip_window.y = self.y + 55
      @tip_window.width= self.width
      @tip_window.height= 82
      @tip_window.opacity = 0
    end
   
    @tip_window.active = false
    @tip_window.visible= false
  end
  #--------------------------------------------------------------------------
  # * Define method draw_item (used for the icons)
  #--------------------------------------------------------------------------
  def draw_item(index, x, y, picture, opacity) 
    bitmap = RPG::Cache.icon(picture)
    self.contents.blt(x, y, bitmap, Rect.new(0, 0, 48, 48), opacity)
  end
  #--------------------------------------------------------------------------
  # * Update Cursor Rectangle
  #--------------------------------------------------------------------------
  def update_cursor_rect
    if @index >= 0 and @index <=(@commands.size-1)
      self.cursor_rect.set(8 + index * 64, 0, 48, 48)
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    if self.active and @index >= 0 and @index <=(@commands.size-1)
      if Input.repeat?(Input::RIGHT)
          $game_system.se_play($data_system.cursor_se)
          @index += 1
      end
      # If the left directional button was pressed
      if Input.repeat?(Input::LEFT)
          $game_system.se_play($data_system.cursor_se)
          @index -= 1
      end
    # Update help text (update_help is defined by the subclasses)
      if self.active and @tip_window != nil
        update_help
        if Input.repeat?(Input::C)
            @tip_window.visible = false
        end
        if Input.repeat?(Input::B)
            @tip_window.visible = false
        end
      end
    # Update cursor rectangle
    update_cursor_rect
    elsif self.active
    # This section is a bit messy, but it makes the cursor 'loop' through the
    # commands when you go too far left or right
      if @index=0
        if Input.press?(Input::LEFT)
          @index=(@commands.size-1)
        end
      end
      if @index>=@commands.size
        @index=0
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Update the tip window text when you 'hover' over commands
  #--------------------------------------------------------------------------
  def update_help
    case index
    when 0
      @tip_window.visible=true
      @tip_window.set_text("Attack the enemy with your weapon", 1)
      # Change the above to the description for your first command
    when 1
      @tip_window.visible=true
      @tip_window.set_text("Use learned magic skills", 1)
      # Change the above to the description for your second command
    when 2
      @tip_window.visible=true
      @tip_window.set_text("Defend against attacks", 1)
      # ... etc.
    when 3
      @tip_window.visible=true
      @tip_window.set_text("Use an item from your bag", 1)
    # If you have assigned descriptions for all your desired commands, you can
    # delete the three lines below:
    else
      @tip_window.visible=true
      @tip_window.set_text("<insert command description here>", 1)
    end
  end
end

#==============================================================================
# ** End of Main Script
#==============================================================================

#==============================================================================
# ** Scene Battle Mods - thanks to Fantasist's Help :)
#==============================================================================
class Scene_Battle
 
  alias start_phase1_mod start_phase1
  def start_phase1
    start_phase1_mod
    if @actor_command_window.is_a?(Window_Command)
      @actor_command_window.dispose
      @actor_command_window = Window_ActorCommand.new
    end
  end
 
  alias phase3_setup_command_window_mod phase3_setup_command_window
  def phase3_setup_command_window
    phase3_setup_command_window_mod
    @actor_command_window.x=(640-@actor_command_window.width)/2
  end
end
#==============================================================================
# ** End of Scene Battle Mods
#==============================================================================




Instructions

To download latest version:
See demos section above. It should be the first link. When you open the script in RMXP, check the comments in the first part of the script for how to customise. <3
...
If you'd like to download the original script (this does not include the nice customisation available in Calintz's script):
Download the demo and use the game's script layout as a guide. Demo requires Standard RTP thing to work.
OR
Copy and paste the script ("Main Script") above main.
You no longer need to make the two separate mods as before.  :)
Finally, put your icons in the 'Graphics\Icons' folder and change the beginning parts of the main script to match their filenames. The icons should be 48x48.
To use Calintz's Mod:
Download the demo from the above link.


Compatibility

I'm pretty sure it WON'T work with any kind of CBS which doesn't involve the standard tell-your-actor-what-to-do-using-a-window function (e.g. an ABS).

Currently does not work well with Blizzard's Chaos Rage Limit System, and probably not with RTAB either :'(, but I am still working on a new version! Please see this version of the script and Blizzard's EOS script if you wish to embark on this quest yourself using a vertical window:    [REQUEST]I am looking to make these scripts compatible.


Credits and Thanks


  • Calintz for adding to my script and making a wonderful new version of the script! ^-^
  • GubiD from Creation Asylum forums for pointing me out to...
  • http://www.rpgrevolution.com/forums/lofiversion/index.php/t18178.html - Jens009 BoF Cross Command
  • Golden Sun for GBA - the inspiration for this script
  • shdwlink1993 for databasing my script
  • Fantasist for helping me improve the script by aliasing the Scene_Battle mods in to the main script
  • Jackolas for pointing out a bug!
  • Calintz (again) for suggesting I make it compatible with Blizzard's CRLS - it kinda worked! :P



Author's Notes

I have managed to develop some compatibility with Blizzard's Chaos Rage Limit System! Thanks to Calintz for giving me the motivation to make it work! :D Check second page of posts for demo DL.

Works great with window skins that don't use a rectangle as their selection shape (e.g. a glowing circle would make the icon appear to glow as you passed over it).
Also highly recommended - a battle command memory script.


I'm not a scripter so apologies about the version number and version history.... ^^;
And finally - please let me know if you get any errors!
20
I was wondering (rather desperately) if anyone could help me with this.

I need a script that, instead of saying 'Level Up' in the bottom section of the Battle Status Window - kinda pops up like damage text. It would actually be better if it animated in a different way (rising and fading instead of jumping up and down) as well, if at all possible.

I'm not sure how easy this is to achieve, so I'm a little hesitant to request this second part. I'm using a Weapon Levelling System, which can be found here: http://www.creationasylum.net/index.php?showtopic=2418

I want a similar message to pop up after the character level up message if the weapon also levels up.

Thanks so much for reading, even if you can't help.
:haha: Reno-s--Joker