X
Xanthos
Guest
Evolution Creature System 1.15
Evo Creature System 1.15 Notes, 2/25/06
This system comes with the Evolution dragon, hiyru and mercenary and allows fast and easy creation of new creatures by simply filling in the details of a set of table like structures, one for each stage in the creature's evolution and copying a small set of template classes and replacing the class names with a newly chosen name. It also allows almost anyone to quickly and easily tune evos created under this framework. Unlike other evolution creatures found on the boards timers are not used, resulting in less server lag. This system was not copied from the code of the other evo systems (which all share the same poorly written code base) and therefore is well written and rock solid.
Acknowledgements
This framework is my own design. The idea of the evolution creatures and the shrink system and its features are borrowed from the creative minds of the RunUO forum. I do not know the origin of all of these ideas, however there are a few people whose code I used as a guide to model this system. Most notably are: Ronin GT and Asayre8 for their shrink systems, Raelis for the Evolution Dragon and mating gump, GG521 for the Evolution Hiryu, and Sadoul/Grae for their Evolution Mercenary ideas. Thanks also to Protius73 and bzk90 for their contributions in this thread. Special thanks to Princess Monika for her inspiration and to Thundar for his testing and great ideas. Also thanks to Darcana for contributions changes limiting Evo training.
Features
This system is not compatible with other shrink systems as the format of shrunken pets my be different what other systems expect. However, this shrink system will coexist with others allowing you to cut users over to the new shrink system after installation.
For installation, simply place the EVO directory into your customs directory. All shrink system configuration variables are maintained in ShrinkConfig.cs. Configuration of the Evo creatures is done in your derived classes.
How To Create A New Evo
You may use or modify this system in any way you desire, however I ask that you leave the original headers in the source files if you redistribute the sources in any way.
Changes in 1.15
See the changelog for the entire list of historical changes.
Evo Creature System 1.15 Notes, 2/25/06
This system comes with the Evolution dragon, hiyru and mercenary and allows fast and easy creation of new creatures by simply filling in the details of a set of table like structures, one for each stage in the creature's evolution and copying a small set of template classes and replacing the class names with a newly chosen name. It also allows almost anyone to quickly and easily tune evos created under this framework. Unlike other evolution creatures found on the boards timers are not used, resulting in less server lag. This system was not copied from the code of the other evo systems (which all share the same poorly written code base) and therefore is well written and rock solid.
Acknowledgements
This framework is my own design. The idea of the evolution creatures and the shrink system and its features are borrowed from the creative minds of the RunUO forum. I do not know the origin of all of these ideas, however there are a few people whose code I used as a guide to model this system. Most notably are: Ronin GT and Asayre8 for their shrink systems, Raelis for the Evolution Dragon and mating gump, GG521 for the Evolution Hiryu, and Sadoul/Grae for their Evolution Mercenary ideas. Thanks also to Protius73 and bzk90 for their contributions in this thread. Special thanks to Princess Monika for her inspiration and to Thundar for his testing and great ideas. Also thanks to Darcana for contributions changes limiting Evo training.
Features
- Easy creation of new evolution creatures (a.k.a. Evos), as well as the associated eggs and dust
- A command (EP) that can be used by players to get the experience points of their Evo
- Easy tuning of deployed Evos, by admins - no programming experience necessary for most changes
- Evos can be configured to always remain "Wonderfully Happy" or, without feeding, allow loyalty to decay like other pets
- Integrated shrink system that works with Evos and any other creature derived from BaseCreature (and BaseMount)
- Shrink system comes with shrink command, pet leash and hitching post items
- Shrinking tools can be configured to require zero or more points of taming. They may also be configured to use charges
- Shrunken pets can optionally show stats, be locked or blessed based on configuration variables
- The shrinking is fast and error free as it uses the same method as the RunUO stable, placing pets on the internal map with IsStabled set to true
- The Evos in this system implement only one timer; the pregnancy timer, resulting in less server lag than many other evolution creature designs
- The Evo system comes with three Evo creatures: Dragon, Hiryu, and Mercenary
- The system is compatible with RunUO 1.0.0 and requires no changes to the RunUO distro files
- Easy to install and configure.
This system is not compatible with other shrink systems as the format of shrunken pets my be different what other systems expect. However, this shrink system will coexist with others allowing you to cut users over to the new shrink system after installation.
For installation, simply place the EVO directory into your customs directory. All shrink system configuration variables are maintained in ShrinkConfig.cs. Configuration of the Evo creatures is done in your derived classes.
How To Create A New Evo
- Make a copy of the Hiryu (if it is to be a mount) or Dragon directory under the EVO directory and rename it to YourClass.
- Rename all of the files, replacing EvoHiryu in each file name with YourClass.
- Inside the YourClass directory, open each file and replace all occurreneces of EvoHiryu to YourClass.
- In YourClass.cs, YourClassDust.cs and YourClassEgg.cs change the respective strings "a hiryu corpse", "hiryu dust", and "a hiryu egg" as appropriate.
- Open YourClassSpec.cs.
- In the constructor of the YourClassSpec class, edit the variable values as you see fit.
- Add or remove YourClassStageX class definitions, according to how many stages you plan to have, by copying and pasting one of the exisiting definitions.
- Change the assignment of the m_Stages vairable in the YourClassSpec constructor according to the number of stages YourClassStageX class definitions you have.
- Edit the values of the variables in each of the YourClassStageX as appropriate for each stage of the creatures evolution. Setting any of the array type variables to null will cause them to not be changed in that stage of the evolution. Damage amount, hits, strength, dexterity and intelligence can be applied relatively or absolutely depending on the value of YourClassSpec.m_AbsoluteStatValues. All of the other variables are applied absolutely.
You may use or modify this system in any way you desire, however I ask that you leave the original headers in the source files if you redistribute the sources in any way.
Changes in 1.15
- Fixed a bug introduced in 1.12 that resulted in Evos gaining a stage when trained after a server restart. This release does not reset the Evos to the appropiate stage. Go to this thread to learn how to "repair" the Evos.
- Added a modified BallOfSummoning that works well with shrunken pets. Delete's the statuette when summoning a shrunken pet. Allows a shrunken pet statuette to be targeted as a link target. Each pet must be unshrunk and then re-shrunken one time before the ball will work properly.
- The stage at which crafted and artifact items are equipable are now configurable in the Mercenary Spec.
- The Servant and Avenger titles are now configurable in the Mercenary Spec.
- A handy new command [Findmobs has been added to the utilities allowing staff to easily find mobiles by name or type. Gump buttons allow the mobs to be summoned or visited quickly without all the steps required using the stock admin interface.
- Mercenary got a code reduction by relying on a utility method to check for artifact item equip attempts.
- Changed checking of pack animal types to be consistent with other Xanthos systems; based on fully qualified class name rather than short class name as string.
- ConfigParser no longer halts shard start-up when a bad value is found in the xml file. Instead it displays the error on the console, leaving the default value untouched.
- Added a ConfigParser option to halt the shard on bad values in the xml config file.
- Re-fixed the dead pet Auction exploit in a way that does not demand you have Xanthos shrink system. Any shrink system that implements the IShrinkItem interface will do. Xanthos shrink system does implement the IShrinkItem interface.
- A new Training Elemental Deed can be used by players to place a Training Elemental Spawner in a player's home.
- Mountable evos that produce young prompt, on double click, as to whether the user wants to ride.
- A configuration option allows Evos to stop gaining off of training elementals at a specified stage.
- The Shrink System provides support to fix an exploit in version 1.9 of the Auction System.
- A number of ShrinkSystem parameters are available for configuration in the file ShrinkConfig.xml (place this in your RunUO\Data directory). This allows configuration parameters to be modified without code changes.
- The package now unzips into a Xanthos directory - keeping the package files within the Xanthos directory in your customs directory is recommended.
- Fixed a bug introduced in 1.10 whereby mercs would not feed themselves and therefore not regain loyalty.
- BaseEvoSpec now has a variable to set the chance for Evos to hatch as female. This is to limit egg production
capability in the case of breedable Evos and thereby control the population. - Added Guardian that are stronger than normal Evos and have a chance to drop eggs/deeds on death.
- Fixed a problem with Evos not always eating and becoming grumpy and unbonded.
- Added a command to get the Evo system version from a merc.
- Took out code that never really worked to change the title of mercs who change masters.
- Evo specific props are modifiable only to admins now
- Evos now have configurable max resists (defaulted to 90)
- Allgined BaseEvoMount with the recent changes in BaseEvo
- A config option allows training ells to be set to not move when spawned
- Mercs cannot use bows - they are melee AI and they were not consuming arrows (will be addressed in a future release).
See the changelog for the entire list of historical changes.