Race/Class System *Dynamic* v2.0
Update
Wednesday September 28 / 2005, 9:12AM PST
Some people seem to be having issues with the "Young" protection for vetern players using the stone. So now a function has been added to override it:
-Young_F in the [props of the RCChest. If this is set to false, ANY player, Young or not will be reset (They will lose their Skills, Stats and Items in their backpack). Default is True. If you do not want Veterns to lose their stuff when using the stone, keep it on true.
Here is what EVERYONE has been asking for: TITLES!!!!
In the RaceControl there is Race_Title (default false)
In the ClassControl there is Class_Title (default false)
If Race_Title is true, then a player will be "Bob the Elf" after using the stone.
If Class_Title is true, then a player will be "Bob the Warrior" after using the stone.
If both are true, then a player will be "Bob the Elf Warrior" after using the stone.
Finally, this is IMPORTANT
***PlayerMobile no longer needs to be editted. If your is edited, remove the edits for the RC System***
Once again IF YOU HAVE EDITED YOUR PLAYERMOBILE FOR THIS SYSTEM, REMOVE THE EDIT.
Thanks for A_Li_N for a way to remove the PlayerMobile edits and keep full functionality.
UPDATE
Thursday August 25 / 2005, 8:23PM PST
- New Spellbook.cs Provided, No Longer editted for AllSpells.
- Added Staff_Login Property to the RCChest. If set to False, A Staff member can now operate without an RCControl as long as Staff_Login is set to false.
***IMPORTANT, The PlayerMobile.cs Edit has changed slightly for this feature. Please Update PlayerMobile.cs See Below for new Addition to PlayerMobile.***
- Update.cs Has been removed from the main rar file. It is now provided seperatly for those who need it.
*UPDATE* VERSION 2.0 RELEASED!
- Saturday August 6 / 2005
*IMPORTANT FOR THOSE WITH VERSIONS 1.3 AND OLDER*
Inorder to bring your system up to speed with version 2.0, you MUST run the ****[Update**** command after upgrading to version 2.0 This will ensure all features of version 2.0 work properly.
****AFTER USING [Update YOU MUST DELETE Update.cs in the /Commands folder of the RC System. Using [Update twice will MESS UP YOUR SYSTEM****
Now on to the new Goodies:
Addition 1: ShapeShifting
[Editss : This command allows you to add and remove shapeshifts for each race. When adding a Shapeshift you must enter
- A Name for the Shapeshift
- A Body Value for the Shapeshift
- *Optional* A Hue for the Shapeshift
There is a Maximum of 5 shapeshift forms per Race.
[sc : This is the command used by Players to Shapeshift.
If a Players Race has NO shapeshift forms, they will get a message saying they cannot shapeshift
If a Players Race has ONE shapeshift form they will simply transform back and forth between the shapeshift and normal form
If a Players Race has more than one shapeshift they get a Gump listing their Shapeshift choices.
Addition 2: Restricted Armors and Weapons
This Update requires editing BaseWeapon.cs and BaseArmor.cs, There is one small addition to each, clearly marked by comments. If you have an already modified BaseWeapon or BaseAmor, simply copy and paste the edits from my supplied scripts to your scripts using Winmerge or something similar.
In each Class Bag there is now "<Class Name> Restricted Armors" and
"<Class Name> Restricted Weapons" Bags. Any Armors in the Restricted Armors Bag, and any Weapons in the Restricted Weapons Bags will be unusable by that Class. To make them useable again, remove the item from the bag.
A Restricted Armor or Weapon will send a message to the player who tries to equip it stating it is restricted.
Addition 3: Restricted Spellbooks
I did my Best to make this system easily compatible with AllSpells without making it a required system. So here goes:
For Those WITH or WITHOUT AllSpells:
I have provided my SpellBook.cs, it has one very minor addition. If yours is already edited, simply copy and paste this addition into your SpellBook.cs. This Handles All OSI SpellBooks.
For Those WITH AllSpells:
First of all, the UseRestrictions bool in the AllSpells script should be set to False so as not to conflict with this system.
The addition I made to SpellBook.cs needs to be added to all SpellBook files in AllSpells for them to work with the system.
EXAMPLE: Copy and Paste the addition from SpellBook.cs to the OnDoubleClick Method ClericSpellBook.cs this will make Cleric spellbooks work with the system. Repeat this for all AllSpells Books you want to work with this system.
How the System Works:
[Loadsb : This Command loads a SpellbookType into the system, simply type the command and click on a Spellbook. The system starts empty, so any books you want added to the system must be added using this command. The spellbook targeted by [Loadsb WILL BE DELETED. A Spellbooktype can only be loaded into the system once. Once loaded a spellbook cannot be removed from the system.
[restrictsb : This command controls which spellbooks are restricted to which class. Spellbooks can be restricted and unrestricted at ANYTIME. The gumps are fairly straight forward on how to Restrict and Unrestrict Spellbooks.
When a player goes to use a Restricted Spellbook for their class they recieve a message stating the Spellbook is restricted.
Addition 4: Safetly Changing the Name of a Race, Class or BonusPack
This is for those who wanted to change names without causing problems.
Now, you can change the name of a Race, Class or BonusPack by using [props on the Orb of the Name you wish changed and changing the Name property.
****IMPORTANT**** After changing the name in [props you MUST use this command:
[syncnames : This will adjust the settings on Bags and RCCONTROLS to the new name for that Race/Class/BonusPack.
-----------------------------------------------------------------------------------------------------
Version 1.0-2.0 Information:
*UPDATE*
- [RCclean command added, cleans out any ClassOrbs, RaceOrbs and BonusPack Orbs that are created due to crashing while a create menu is open.
- [Racehues command added, allows hues on any current Race to be editted, added or removed.
- Race Item Bags added, work the same way as Class Item bags and Bonus Pack Item Bags.
- Various Bug Fixes
- Tuesday July 26/2005 7:29pm PST
*UPDATE*
- Body and Hair Hue menues have undergone a fix/upgrade
- Sunday July 24/2005 11:52pm PST
*URGENT UPDATE CONTAINING [removerace, [removeclass BUG FIXES*
- Sunday July 24/ 2005 9:41pm PST
The Dynamic Race/Class system is a script system I developed from scratch to provide administrators with a simple, highly customizable race/class system that can be implemented at anytime without a shard wipe.
Here are some key features:
- To add anything or change anything in the system, You NEVER have to edit code.
- Races and Classes can be added at ANYTIME, without even rebooting the server.
- VERY minimal editing of Distro scripts will ensure that there is no chance of a Playermobile wipe after install
- Almost every aspect of the system allows for customization.
- "Bonus Packs" to further the class choices for players (More information to follow below.
- ALL commands and item properties are admin access level for protection
Manual on operation: How the System Works.
Overall Commands:
[RCbegin : This command initiates the Race/Class system. An RCChest is created where the Administrator says the command. The RCChest is an invisible Chest metal chest that houses all the Items nescessary to operate the Race/Class system.
[RCremove : This command removes the race system from your shard, including all items involved with the race system.
[props on the RCChest that are customizable:
Active: (Default False) the Active property sets whether or not the system is active. An inactive system does not send new players to the Race Stone and does not utilize Stat caps based on Class.
Start_Map: (Default Trammel) this is the map that the Race stone is located on. All new players and all current players who have not used the race stone will be sent to this map upon login.
Start_X, Start_Y, Start_Z: (Default Center of Britain) these control the coordinates of the race stone. New players and current players who have not used the stone will be sent to this location upon login.
In order for new players and Players who have not used the race stone to be sent to the race stone, the Activate property on the RCChest must be set to True;
Creating a new Race:
First of all, when [RCbegin is used, an item called a RaceControl is created inside the RCChest, this item is essential for the correct operation of the race system.
[props on the Race Control that are customizable:
Set_Location: (default false) this determines whether players are sent to the location specified during Race creation after using the race stone. If set to true, all players who choose a certain race will be sent to a specific location specified for that race.
Race Creation Commands:
[addrace : This command opens the Gump to create a Race, when creating a race, you must enter the following information:
- Race Name
- Race Description
- Starting Map
- Starting Coordinates
- 1 - 10 Body Hues for the Race
- 1 - 10 Hair Hues for the Race
After creating a Race, a Race Orb will be creating in the RACES bag contained in the RCChest, the properties on a Race Orb should not be modified, however if Needed, the Description can be safetly modified.
[removerace : Removes the race and sends all players who were that race back to the Race stone on their next login.
[restrictclass : Allows up to 5 classes to be restricted from a certain race. Classes can be restricted and unrestricted at any time using this command.
Creating a new Class:
Once again, when [RCbegin is used, a ClassControl is generated, this Classcontrol controls many aspects of the systems Class system.
[props on the Class Control that are customizable:
Default_Cap: (Default 40.0) This is the skill cap that all Non-Primary, Non-Secondary, Non-Tertiary and Non-Restricted skills are set to.
Secondary_Cap: (Default 80.0) This is the cap all Secondary skills are set to.
Tertiary_Cap: (Default 70.0) This is the cap all Tertiary skills are set to.
Amount_Start_Skills: (Default 3) This is how many skills a new player will be allowed to pick to be set to a certain value upon using the Race stone. These skills replace the skills selected by the Player during OSI character creation.
Start_Skills_Value: (Default 50.0) This is the value the starting skills are set to.
Stat_Cap: (Default 300) This is the overall stat cap that for all players.
Equip_Players: (Default True) This determines whether or not the system strips a new player and re-equips them based on the class they choose.
Class Creation Commands:
[addclass : This opens the gump for creating a new class.
Page one of addclass gump:
- Class Name
- Class Description
- Starting Strength, Dexterity and Intelligence values for the Class
- Strength, Dexterity and Intelligence Caps for the Class
Page two of addclass gump:
- Select Up to 10 Primary Skill Caps for the Class to start with. The Cap Value is entered in the "Value" field. When you have entered all the Primary Caps you wish, click done.
Page three of addclass gump:
- Enter the amount (1 - 10) of Secondary skills a player choosing this class can pick.
Page four of addclass gump:
- Enter the amount (1 - 10) of Tertiary skills a player shoosing this class can pick.
Page five of addclass gump:
- Choose up to 10 Skills to Restricted (Set to a 0.0 Cap) for this class.
Once added, a Bag named "<Class Name> Class" will be generated inside the CLASSES bag in the RCChest. A Class Orb for the class with be generated inside the bag, aswell as Two more bags called "<Class Name> Equips" and "<Class Name> Items", these bags are for the following:
If Equip_Players is set to true in the Class Control, first all items currently on the Player and in their backpack will be deleted, then all items in the "<Class Name> Equips" Bag will be equipped onto a new player who selects this class and all items contained in the "<Class Name> Items" bag will be added to the new players backpack.
[removeclass : Removes the selected class and sends any player who was that class back to the race stone upon their next login.
Bonus Packs:
Bonus Packs are an optional feature that allows admins to create addition sets of skills that a player may choose by sacrificing Secondary Skill Points. (Like Chef skills, Spellcrafting Skills, ect)
Bonus Pack Commands:
[addbp : Opens the Add Bonus Pack Gump
Page one of addbonuspack gump:
- Enter the Name of the Bonus Pack
- Enter the amount of Secondary skills that choosing the Bonus Pack will cost
Page two of addbonuspack gump:
- Select up to 5 skills and values for the Bonus Pack.
Once created a Bonus Pack's info is Stored in a BonusPack Orb, which is Generated inside the BONUSPACKS bag, inside the CLASSES bag, inside the RCChest.
Like Classes, a bonuspack also has a bag called "<BonusPack Name> Items" which contained items to be added to a new players backpack if they select this Bonus Pack.
[removebp : Removes a selected BonusPack and sends all players who chose that bonus pack back to the race stone upon their next login.
Installation:
Step One: Download The Script Files and Unzip into your Custom Directory
* The ONLY distro files that are modified are SkillCheck.cs, BaseWeapon.cs, BaseArmor.cs and SpellBook.cs*
And now you are all set to Use the Dynamic Race/Class system.
I would like to thank the members of the RunUO community who have made many wonderfull scripts, which I studied greatly to learn many things in creating this System.
Update
Wednesday September 28 / 2005, 9:12AM PST
Some people seem to be having issues with the "Young" protection for vetern players using the stone. So now a function has been added to override it:
-Young_F in the [props of the RCChest. If this is set to false, ANY player, Young or not will be reset (They will lose their Skills, Stats and Items in their backpack). Default is True. If you do not want Veterns to lose their stuff when using the stone, keep it on true.
Here is what EVERYONE has been asking for: TITLES!!!!
In the RaceControl there is Race_Title (default false)
In the ClassControl there is Class_Title (default false)
If Race_Title is true, then a player will be "Bob the Elf" after using the stone.
If Class_Title is true, then a player will be "Bob the Warrior" after using the stone.
If both are true, then a player will be "Bob the Elf Warrior" after using the stone.
Finally, this is IMPORTANT
***PlayerMobile no longer needs to be editted. If your is edited, remove the edits for the RC System***
Once again IF YOU HAVE EDITED YOUR PLAYERMOBILE FOR THIS SYSTEM, REMOVE THE EDIT.
Thanks for A_Li_N for a way to remove the PlayerMobile edits and keep full functionality.
UPDATE
Thursday August 25 / 2005, 8:23PM PST
- New Spellbook.cs Provided, No Longer editted for AllSpells.
- Added Staff_Login Property to the RCChest. If set to False, A Staff member can now operate without an RCControl as long as Staff_Login is set to false.
***IMPORTANT, The PlayerMobile.cs Edit has changed slightly for this feature. Please Update PlayerMobile.cs See Below for new Addition to PlayerMobile.***
- Update.cs Has been removed from the main rar file. It is now provided seperatly for those who need it.
*UPDATE* VERSION 2.0 RELEASED!
- Saturday August 6 / 2005
*IMPORTANT FOR THOSE WITH VERSIONS 1.3 AND OLDER*
Inorder to bring your system up to speed with version 2.0, you MUST run the ****[Update**** command after upgrading to version 2.0 This will ensure all features of version 2.0 work properly.
****AFTER USING [Update YOU MUST DELETE Update.cs in the /Commands folder of the RC System. Using [Update twice will MESS UP YOUR SYSTEM****
Now on to the new Goodies:
Addition 1: ShapeShifting
[Editss : This command allows you to add and remove shapeshifts for each race. When adding a Shapeshift you must enter
- A Name for the Shapeshift
- A Body Value for the Shapeshift
- *Optional* A Hue for the Shapeshift
There is a Maximum of 5 shapeshift forms per Race.
[sc : This is the command used by Players to Shapeshift.
If a Players Race has NO shapeshift forms, they will get a message saying they cannot shapeshift
If a Players Race has ONE shapeshift form they will simply transform back and forth between the shapeshift and normal form
If a Players Race has more than one shapeshift they get a Gump listing their Shapeshift choices.
Addition 2: Restricted Armors and Weapons
This Update requires editing BaseWeapon.cs and BaseArmor.cs, There is one small addition to each, clearly marked by comments. If you have an already modified BaseWeapon or BaseAmor, simply copy and paste the edits from my supplied scripts to your scripts using Winmerge or something similar.
In each Class Bag there is now "<Class Name> Restricted Armors" and
"<Class Name> Restricted Weapons" Bags. Any Armors in the Restricted Armors Bag, and any Weapons in the Restricted Weapons Bags will be unusable by that Class. To make them useable again, remove the item from the bag.
A Restricted Armor or Weapon will send a message to the player who tries to equip it stating it is restricted.
Addition 3: Restricted Spellbooks
I did my Best to make this system easily compatible with AllSpells without making it a required system. So here goes:
For Those WITH or WITHOUT AllSpells:
I have provided my SpellBook.cs, it has one very minor addition. If yours is already edited, simply copy and paste this addition into your SpellBook.cs. This Handles All OSI SpellBooks.
For Those WITH AllSpells:
First of all, the UseRestrictions bool in the AllSpells script should be set to False so as not to conflict with this system.
The addition I made to SpellBook.cs needs to be added to all SpellBook files in AllSpells for them to work with the system.
EXAMPLE: Copy and Paste the addition from SpellBook.cs to the OnDoubleClick Method ClericSpellBook.cs this will make Cleric spellbooks work with the system. Repeat this for all AllSpells Books you want to work with this system.
How the System Works:
[Loadsb : This Command loads a SpellbookType into the system, simply type the command and click on a Spellbook. The system starts empty, so any books you want added to the system must be added using this command. The spellbook targeted by [Loadsb WILL BE DELETED. A Spellbooktype can only be loaded into the system once. Once loaded a spellbook cannot be removed from the system.
[restrictsb : This command controls which spellbooks are restricted to which class. Spellbooks can be restricted and unrestricted at ANYTIME. The gumps are fairly straight forward on how to Restrict and Unrestrict Spellbooks.
When a player goes to use a Restricted Spellbook for their class they recieve a message stating the Spellbook is restricted.
Addition 4: Safetly Changing the Name of a Race, Class or BonusPack
This is for those who wanted to change names without causing problems.
Now, you can change the name of a Race, Class or BonusPack by using [props on the Orb of the Name you wish changed and changing the Name property.
****IMPORTANT**** After changing the name in [props you MUST use this command:
[syncnames : This will adjust the settings on Bags and RCCONTROLS to the new name for that Race/Class/BonusPack.
-----------------------------------------------------------------------------------------------------
Version 1.0-2.0 Information:
*UPDATE*
- [RCclean command added, cleans out any ClassOrbs, RaceOrbs and BonusPack Orbs that are created due to crashing while a create menu is open.
- [Racehues command added, allows hues on any current Race to be editted, added or removed.
- Race Item Bags added, work the same way as Class Item bags and Bonus Pack Item Bags.
- Various Bug Fixes
- Tuesday July 26/2005 7:29pm PST
*UPDATE*
- Body and Hair Hue menues have undergone a fix/upgrade
- Sunday July 24/2005 11:52pm PST
*URGENT UPDATE CONTAINING [removerace, [removeclass BUG FIXES*
- Sunday July 24/ 2005 9:41pm PST
The Dynamic Race/Class system is a script system I developed from scratch to provide administrators with a simple, highly customizable race/class system that can be implemented at anytime without a shard wipe.
Here are some key features:
- To add anything or change anything in the system, You NEVER have to edit code.
- Races and Classes can be added at ANYTIME, without even rebooting the server.
- VERY minimal editing of Distro scripts will ensure that there is no chance of a Playermobile wipe after install
- Almost every aspect of the system allows for customization.
- "Bonus Packs" to further the class choices for players (More information to follow below.
- ALL commands and item properties are admin access level for protection
Manual on operation: How the System Works.
Overall Commands:
[RCbegin : This command initiates the Race/Class system. An RCChest is created where the Administrator says the command. The RCChest is an invisible Chest metal chest that houses all the Items nescessary to operate the Race/Class system.
[RCremove : This command removes the race system from your shard, including all items involved with the race system.
[props on the RCChest that are customizable:
Active: (Default False) the Active property sets whether or not the system is active. An inactive system does not send new players to the Race Stone and does not utilize Stat caps based on Class.
Start_Map: (Default Trammel) this is the map that the Race stone is located on. All new players and all current players who have not used the race stone will be sent to this map upon login.
Start_X, Start_Y, Start_Z: (Default Center of Britain) these control the coordinates of the race stone. New players and current players who have not used the stone will be sent to this location upon login.
In order for new players and Players who have not used the race stone to be sent to the race stone, the Activate property on the RCChest must be set to True;
Creating a new Race:
First of all, when [RCbegin is used, an item called a RaceControl is created inside the RCChest, this item is essential for the correct operation of the race system.
[props on the Race Control that are customizable:
Set_Location: (default false) this determines whether players are sent to the location specified during Race creation after using the race stone. If set to true, all players who choose a certain race will be sent to a specific location specified for that race.
Race Creation Commands:
[addrace : This command opens the Gump to create a Race, when creating a race, you must enter the following information:
- Race Name
- Race Description
- Starting Map
- Starting Coordinates
- 1 - 10 Body Hues for the Race
- 1 - 10 Hair Hues for the Race
After creating a Race, a Race Orb will be creating in the RACES bag contained in the RCChest, the properties on a Race Orb should not be modified, however if Needed, the Description can be safetly modified.
[removerace : Removes the race and sends all players who were that race back to the Race stone on their next login.
[restrictclass : Allows up to 5 classes to be restricted from a certain race. Classes can be restricted and unrestricted at any time using this command.
Creating a new Class:
Once again, when [RCbegin is used, a ClassControl is generated, this Classcontrol controls many aspects of the systems Class system.
[props on the Class Control that are customizable:
Default_Cap: (Default 40.0) This is the skill cap that all Non-Primary, Non-Secondary, Non-Tertiary and Non-Restricted skills are set to.
Secondary_Cap: (Default 80.0) This is the cap all Secondary skills are set to.
Tertiary_Cap: (Default 70.0) This is the cap all Tertiary skills are set to.
Amount_Start_Skills: (Default 3) This is how many skills a new player will be allowed to pick to be set to a certain value upon using the Race stone. These skills replace the skills selected by the Player during OSI character creation.
Start_Skills_Value: (Default 50.0) This is the value the starting skills are set to.
Stat_Cap: (Default 300) This is the overall stat cap that for all players.
Equip_Players: (Default True) This determines whether or not the system strips a new player and re-equips them based on the class they choose.
Class Creation Commands:
[addclass : This opens the gump for creating a new class.
Page one of addclass gump:
- Class Name
- Class Description
- Starting Strength, Dexterity and Intelligence values for the Class
- Strength, Dexterity and Intelligence Caps for the Class
Page two of addclass gump:
- Select Up to 10 Primary Skill Caps for the Class to start with. The Cap Value is entered in the "Value" field. When you have entered all the Primary Caps you wish, click done.
Page three of addclass gump:
- Enter the amount (1 - 10) of Secondary skills a player choosing this class can pick.
Page four of addclass gump:
- Enter the amount (1 - 10) of Tertiary skills a player shoosing this class can pick.
Page five of addclass gump:
- Choose up to 10 Skills to Restricted (Set to a 0.0 Cap) for this class.
Once added, a Bag named "<Class Name> Class" will be generated inside the CLASSES bag in the RCChest. A Class Orb for the class with be generated inside the bag, aswell as Two more bags called "<Class Name> Equips" and "<Class Name> Items", these bags are for the following:
If Equip_Players is set to true in the Class Control, first all items currently on the Player and in their backpack will be deleted, then all items in the "<Class Name> Equips" Bag will be equipped onto a new player who selects this class and all items contained in the "<Class Name> Items" bag will be added to the new players backpack.
[removeclass : Removes the selected class and sends any player who was that class back to the race stone upon their next login.
Bonus Packs:
Bonus Packs are an optional feature that allows admins to create addition sets of skills that a player may choose by sacrificing Secondary Skill Points. (Like Chef skills, Spellcrafting Skills, ect)
Bonus Pack Commands:
[addbp : Opens the Add Bonus Pack Gump
Page one of addbonuspack gump:
- Enter the Name of the Bonus Pack
- Enter the amount of Secondary skills that choosing the Bonus Pack will cost
Page two of addbonuspack gump:
- Select up to 5 skills and values for the Bonus Pack.
Once created a Bonus Pack's info is Stored in a BonusPack Orb, which is Generated inside the BONUSPACKS bag, inside the CLASSES bag, inside the RCChest.
Like Classes, a bonuspack also has a bag called "<BonusPack Name> Items" which contained items to be added to a new players backpack if they select this Bonus Pack.
[removebp : Removes a selected BonusPack and sends all players who chose that bonus pack back to the race stone upon their next login.
Installation:
Step One: Download The Script Files and Unzip into your Custom Directory
* The ONLY distro files that are modified are SkillCheck.cs, BaseWeapon.cs, BaseArmor.cs and SpellBook.cs*
And now you are all set to Use the Dynamic Race/Class system.
I would like to thank the members of the RunUO community who have made many wonderfull scripts, which I studied greatly to learn many things in creating this System.