Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

Disgaea: Hour of Darkness - Job Picker

khmp

Sponsor

El Intro:

      Hello everyone. This is the first script I have ever made for public consumption so be harsh with criticism, but not too harsh. Actually I'd prefer none. But seriously any questions, comments, concerns you have go ahead and shout them out. As you may have guessed from the title of the topic. It is based off of the Job Selection schema that's found in Disgaea: Hour of Darkness. If you are unaware what Disgaea is, consider it Final Fantasy Tactics with steroids. In the game various Jobs became available based on player achievements in regards of level obtainment in an existing job or jobs. This script mimics that process. I suggest reading the below comments before using this script as instructions on utilization are there.

*Updates* v0.0.6
1.) Made the selected sprite stand out by turning blink_on.
2.) Corrected some minor bugs and removed some extraneous code.


El Features:

1.) Job selection schema similar to that of Disgaea: Hour of Darkness.
2.) Gives the user control over what to do with the Job data.

El Notes:

Notes about this system.
Code:
#==============================================================================
#  Notes:
#------------------------------------------------------------------------------
#  Usage: 
#  Because of the way its designed it requires that an Actor database file be 
#  generated containing the 'blanks' of which the Jobs will be developed from. 
#  So the very first thing you should do is create a project and design the 
#  Jobs which are really the Actors. When the Actor/Job creation is finished 
#  save the database and navigate to your game directory and browse the Data 
#  folder. Duplicate the 'Actors.rxdata' rename the copy 'DHoDActors.rxdata'. 
#  If this file does not exist by the time Scene_DHoDJobs runs an exception 
#  will occur and send you back to Scene_Map. I can understand tweaking of Jobs 
#  may need to occur for balancing etc. Just rename the current one and change 
#  'DHoDActors.rxdata' back to 'Actors.rxdata' after backing up this file. To 
#  avoid any conflict you should exit RMXP while doing this.
#  
#  And in case you hate reading paragraphs or I was vague:
#  1.) Create a new project or open a pre-existing project.
#  2.) Design and create the Actors to reflect the jobs you want in the game.
#      This includes naming.
#      Actor1: name = 'Archer'
#      Actor2: name = 'Hunter'
#      Actor3: name = 'Donkey Slayer'
#  3.) Close the project. Duplicate by copying and pasting 'Actors.rxdata' file
#      in the Data folder and rename it 'DHoDActors.rxdata'.
#  4.) Open the project you want to have the jobs in. Paste the DHoDActors file
#      into the Data folder of this project.
#  5.) Have a cookie!
#==============================================================================

#==============================================================================
#  About:
#------------------------------------------------------------------------------
#  Foreword:
#  This is truly my first script so criticize even if it's a minor detail. That
#  aside this is currently not SDK compatible. Perhaps as a learning experience
#  this will have a SDK counterpart when this script is done. Oh most 
#  importantly this is more of a SCRIPTING RESOURCE. The only thing this really
#  does is provide the graphical user interface in the styling of Disgaea and
#  when you select a Job the Actor of said Job will be returned. So it really
#  is up to the user to do with that knowledge what they want. 
#  
#  Inspiration:
#  Disgaea is a truly epic strategy RPG even though the world seems small. It
#  had a Job switching scheme similar to Final Fantasy Tactics and I thought
#  it would kind of cool to incorporate that into a game. Unfortunately my mind
#  flips between tasks too often to finish anything long term. So I thought I
#  would create a little portion of that system.
#==============================================================================

Inside Scene_DHoDJobs:
You'll definitely need to change these two hashes and maybe the array.
Code:
  #============================================================================
  #  Note (Job_Chains):
  #----------------------------------------------------------------------------
  #  In Disgaea, Jobs have different rankings, (6 total). But you can make the 
  #  chain depth as far as you want.
  #----------------------------------------------------------------------------
  #  Job_Chains = 
  #  {
  #    0 => ['Fighter', 'Warrior', 'Swordsman', 'Blade Master']
  #  }
  #  The hash key is irrelevant, that's the first number before the '=>', but 
  #  it decides the order of how the classes will appear. This key references 
  #  an Array. This Array holds the ActorIDs of the Jobs that are chained.
  #
  #  For Example let's say that DHoDActors holds the following actor data:
  #  1 -> Fighter         5 -> Neophyte        9 -> Rogue  
  #  2 -> Warrior         6 -> Apprentice      10 -> Thief
  #  3 -> Swordsman       7 -> Mage            11 -> Scout
  #  4 -> Blade Master    8 -> Tome Master     12 -> Assassin
  #  Job_Chains = 
  #  {
  #    0 => ['Fighter', 'Warrior', 'Swordsman', 'Blade Master'],
  #    1 => ['Neophyte', 'Apprentice', 'Mage', 'Tome Master'],
  #    2 => ['Rogue', 'Thief', 'Scout', 'Assassin'],
  #  }
  #============================================================================
  Job_Chains = 
  {

  }

  #============================================================================
  #  Note (Job_Reqs):
  #----------------------------------------------------------------------------
  #  In Disgaea, Jobs had a certain requirement be filled before a job became
  #  active. Such as killing a demon of said Job type or reaching a certain
  #  level of a Job or Jobs. In this case for the sake simplicity, Jobs can
  #  only be acquired by meeting level requirements of other Jobs.
  #----------------------------------------------------------------------------
  #  Job_Reqs = 
  #  {
  #    'Warrior' => { 'Fighter' => 5},
  #    'Swordsman' => { 'Warrior' => 10, 'Rogue' => 5 }
  #  }
  #  The hash key represents the job that has requirements. This key 
  #  references a Hash that holds various Job names and the level that Job
  #  needs to be in order for the hash key to become available to the user.
  #
  #  Hash example above:
  #  In order for the job Warrior to become available for your party one 
  #  member must have reached level 5 as a Fighter. In order for the job
  #  swordsman to become available one member of your party must have reached
  #  level 10 as a Warrior and level 5 as a Rogue.
  #============================================================================
  Job_Reqs = 
  {

  }

  #============================================================================
  #  Note (Hidden_Jobs):
  #----------------------------------------------------------------------------
  #  In Disgaea, some Jobs were never revealed to the player. Such as the main
  #  character whose Job was Demon Prince. No one else could attain this Job
  #  and the the main character could not switch to another Job.
  #----------------------------------------------------------------------------
  #  Hidden_Jobs = [
  #    'Demon Prince',
  #  ]
  #  Just put the name of any Job that is never available inside this array.
  #============================================================================
  Hidden_Jobs = 
  [
    
  ]

One last thing. Once the scene has run its course you'll ask yourself, "How do I access what actor I just picked?"
Code:
Scene_DHoDJobs::job
That will return the actor that was selected from the scene. After that method is called the job will be forgotten so make sure to save it to where ever it is you need it to be.

El Screenshot:

v0.0.6http://i229.photobucket.com/albums/ee314/khmp/disgaeascreencompare.jpg[/img]

El Demo:

Get it at megaupload!
Get it at mediafire!
Get it at filefront!

Good luck with it! :afro:
 

e

Sponsor

Works great, but it's rather restraining. The job reqs are constrained to levels and jobs are identified by their names instead of a unique identifier, which would make for very, very weird possibilities.

But then again, this is a copy of Disgaea, and as such, it does a very good job!
 
i hate to bring this back to life, but i would like someone to help clarify the usage of this, the instructions are vauge as to what you have to do...
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top