New to version 3.16
Bug Fixes
- disabled the SpawnIdleTime feature that wasnt working properly under RunUO 2.0 (thanks to Allmight for pointing this out). This feature was designed to reposition spawns that had been around for more than the SpawnIdleTime (72 hours by default) under the assumption that they might not be accessible for players to kill. Under RunUO 2.0, after the SpawnIdleTime elapsed, spawns were being repositioned on every spawner tick due to changes in the Mobile class CreationTime property.
- fixed the XmlDeathAction attachment so that Action strings that spawn mobiles with property settings will apply those settings to the mobile and not the corpse that spawned it. So adding an attachment like
"[addatt xmldeathaction "daemon/name/bozo/hue/500" will correctly spawn a blue daemon named bozo when the creature with the attachment is killed.
- fixed [xmlfind so that searches on partial string matches of spawner entries works again.
Modified Features
- modified the new BCAST keyword options to allow a unicode font to be specified with a font type of -1. So to specify colored unicode broadcast messages, use
BCAST,33,-1/System is going down now
The default font was also changed from ascii back to the unicode style, so
BCAST/Blorgmeister has been killed
would broadcast in default white unicode.
- default spawn placement will now automatically take into consideration the CanSwim and CantWalk mobile properties when calculating valid spawn locations. This will allow water creatures to automatically be allowed to spawn on water without having to explictly inform the spawner with '*' or #WET, and will prevent creatures that cant walk from being spawned on land.
- slight change to the DAMAGE keyword to allow a range value of 0. Previously range had to be greater than zero.
- added keyring keys to the list of valid internal map items that are excluded in [xmlfind when the 'Hide valid internal' box is checked (thanks to Kamuflaro for pointing this out).
New Features
- added the ability to adjust the spawner timer priority for individual spawners so that you can have things like sequentialspawn-controlled animation running at up to the maximum timer priority.
One limitation of the current sequential spawning is that the minimum spawner clock tick is 1 second, even if you set min/maxdelay to zero. That is because the spawner timer priority is fixed at 1 second. To change this priority for individual spawners, set the BasePriority property on the spawner to one of these values (or their int equivalents)
public enum TimerPriority
{
EveryTick,
TenMS,
TwentyFiveMS,
FiftyMS,
TwoFiftyMS,
OneSecond,
FiveSeconds,
OneMinute
}
That will define the spawner timer interval when min/maxdelay is set to zero.
To prevent accidentally leaving spawners with modified timer priorities, the BasePriority is reset back to the default of one second on server restarts.
- included an example of the use of modified timer priority in boulder.xml which creates an animated boulder moving across the screen triggered by nearby players, and if it detects a collision with the triggering player then it kills them (thanks to Xerrox for the idea).
You can play around with changing the basepriority setting in the spawner entry to see how it changes the animation speed.