Resource icon

Level System Extreme 2023-11-18

No permission to download
The master has been updated to include a missing null check as well as a change to XMLSpawnerEXT. All the files have been adjusted as well as the name for the XMLSpawner was changed to be more uniform.

This should be the last gigantic change for a bit.
There has been minor/major changes across the board for most of the files, including the setup instructions. There should be no serial changes, so drag and drop (with care) should be possible, always make backups. The biggest highlight of this update was to address the Lag.
  • Changed the way the in world config item is called, instead of searching the world values, the script now just searches a small 3x3 block (Gave some space around it just in case), and then pulls the XML config. This will greatly reduce the amount of request done on the server and should greatly reduce the amount of lag.
  • Added an entry to ignore summoned creatures on the createmovement eventsink, this caused crashes on newest versions of servuo.
  • removed the option within the control config gump that made it easy for an admin to pull the item to their pack.
  • Added a special item that has no item limit and no weight limit and is even blessed to hold items on a player. Current level requirement is 100, can change that within the script. TreasureTrove.cs .
  • I have no intention of changing the datastore type from XML attachments at this time, it serves the intended purpose and also allows additional features to work. I will not be removing the custom XML Spawner, as not all versions of ServUO will contain it.
The changes made Should not have broken anything, however if something is broken please report it.

Important Note!
With the new method of grabbing the config file within game, you cannot move the config item! if you choose to relocate it, please change the coordinates in LevelControlConfigExt.cs, ideally the coordinates should be exact! With this the token is now set by default as not movable, and hidden.

And yes, I'm still alive!
  • Like
Reactions: Chucl
- Adding a missing Pet Stat Gump
- Made Changes to distro edits, less now needed.
- Fixed DoSkillsGainExp playerlevel check

Various other scripts updated and improved.
No Serial Changes.
Advised to manual update or carefully merge files after comparison.

PlayerLevelGump.cs
LevelHandlerExt.cs
FeatureHandlerExt.cs
PetFeatureHandlerExt.cs
LevelSheetAtt1.cs - added - future feature
LevelSheet.cs
LevelControlSys.cs
LevelControlSysItem.cs
LevelSystemAttachExt - Updated all files within the Attachment Folder
LevelBag.cs
PlayerStatsConfig.cs - added

Confirmed backwards compatibility is questionable as not all current functions are supported in previous editions of servuo or runuo. Added last known version of UO and Servuo system is confirmed working on within the setup Instructions.

Setup Instructions has also been updated to include the commands and further detail on distro edits.

As the usual, if anything is else out place please leave a note on the discussion thread.

Also moved the file to GitHub as its to large for ServUO file system.
  • Like
Reactions: sahisahi
Here comes the big update that I've boasted about. There is now an in-game control item to handle the system. Using [levelcontrol will start the Gump and add the item in the green acres area. The Gump has its own options to track the control item and teleport the GM to it or even bring it to the GM's pack.

The Level Bag is still an external config, that is still under review.
The Ability to add items to new players upon logging in has been commented out for now.

Added new features and a lot of enhancements to existing code.

I will warn once, do 'not' delete the level control item and leave it in a place where you 'might' wipe it by mistake, it won't break anything but you need to set options up again if you do so, on a production server that could be painful.

There will be no additional serial changes moving forward, the way the control item is designed and the way the future development is set up, enhancements are done in a very non impacting lenear way. Feel free to take this and run with it.

This is a hybrid adjustment, a reworked attachment system for storage as well as the items to hold level information as well as other features.

There are a lot of changes that I still need to push through, mainly finish the additional equipment level system and some cosmetic defects through the menu's. I will be taking a week to recharge my batteries then resume development, unless somehting game breaking is brought to my attention.

PLEASE PLEASE test things out and let me know if something is missing or not working. Per the usual, please include details. Simply stating ' IT DOESN'T WORK' doesn't tell me anything. =p


Cautionary Statement! If this is going to a server that has or had a previous version of this, then you NEED TO REMOVE THE OLD DISTRO EDITS.
Big Change. Moved LevelOrbs for pets into the pets 'bank'. Backpacks are no longer used for this. This means a lot of scripts that referenced the pets backpack has been updated to now reference the pets bank.

This has also removed the need to retrieve the level orb upon death which means we no longer use the event sync to handle that process. This also removed a distro edit from the packanimals and from the AnimalTrainer.cs since no backpack exist and the animal trainer doesn't check for the mobile bank.

Restructured Project Folder
Added more system toggle switches.
Added MountEXTCheck.cs (Mount Check) (Toggle in ConfiguredPetXML)
Added BootsOfTravel.cs (Will eventually be adding some level bonuses to this)
Updated CreatureMovement.cs (Added MountCheck - OnMovement - Not OnClick)
Updated SetupInstructions.cs
Updated: FeatureHandlerExt.cs
Updated: LevelBag.cs
Updated: NewPlayerStatsAndEquip.cs
Updated: LevelHandlerPetExt.cs
Updated: PetLevelOrb.cs
Updated: LevelSheet.cs
Updated: LevelCore.cs
Updated: Configuration.cs
Updated: CreatureDeathEventExt.cs (removed petorb retrieval)
Updated: PetFeatureHandlerExt.cs
Updated: PetLevelGump.cs
Updated: PetLevelSheet.cs
Updated: LevelCore.cs

As always, if you run into any problems please post and I will respond as soon as I can. I have some more planned features of course, but I wanted to at least get this out.
Additions: (serialization changes in LevelSheet and PetLevelOrb!! - Loss of Data will happen!!)

Added CreatureMovement.cs
Added PetFeatureHandlerExt.cs
Added StatBoostHandlerExt.cs
Updated LevelSheet.cs
Updated PetLevelOrb.cs
Updated NewPlayerStatsAndEquip.cs
Updated PetLevelGumpExt.cs
Updated CreatureMovement.cs to include LevelOrb check.
Updated SetupInstructions.cs
Updated LevelBag.cs - refactored code / added features (seralization change)
Updated LevelBagConfig.cs - Added in expansion to other groups
Updated CreatureDeathEventExt.cs (crash when BaseCreature killed another BaseCreature)

Certain changes to basecreature.cs no longer needed, while a few have been added. Please be sure to compare against the setupinstructions and post any questions. Because the levelorb is now checked based on movement, basecreature edit to add this is no longer a thing. Only petattacks and getprops are now in basecreature.

If there is a demand to keep items on death for the LevelBag, post a thread. Still working on the mounts, I think I may have an interesting way to do it.
Additions
- Added Script CreatureDeathEventExt.cs - Talks to Level system without distro edits and now preserves level orb on pet death.
- Updated SetupInstructions to reflect CreatureDeathEventExt changes
- Updated Titles.cs instructions and modified , missing null check for playermobile.
- Updated LevelHandler.cs for exp skill gain issues.
- Updated SetupInstructions to reflect the skillcheck.cs edits, dialing 4 to 1 edit needed.
- updated FeatureHandlerExt.cs to remove a duplicate line and put in the correct code.
- Updated ConfiguredSkillsEXP.cs - Cosmetics mainly.
- Added Example Pack Creatures with the commented out 'CreatureDeathEvent' .

Removals:
- Removed the distro edit for basecreature . level system now talks without distro edits.
- Removed the distro edit for basecreature . deathmoveresult - this does not fix pack animals.

You will need to remove distro edits for basecreature if you download this over existing folder.
Back