ArteGordon
Wanderer
[RunUO 2.0] XmlSpawner2
XmlSpawner2
v3.24
RunUO 2.0 version
updated 2/11/08
ArteGordon
Latest News:
If you get an error like this on startup
Cannot implicitly convert type 'System.Collections.ArrayList' to 'System.Collections.Generic.List<Server.Tile>'
it means that you are running RunUO 2.0 RC1 instead of RC2 or the most recent SVN and you just need to uncomment this line at the beginning of xmlspawner2.cs
//#define RUNUO2RC1
so that it looks like
#define RUNUO2RC1
You will also need to comment out this line at the beginning of XmlQuestHolder.cs and PacketHandlerOverrides.cs because RC1 doesnt support UO clients beyond 6.0.1.7
#define CLIENT6017
so that it looks like
//#define CLIENT6017
Summary:
A spawn control system supporting sophisticated conditional spawn triggering, individual customization of spawns and their drops, spawn/item/mob search utilities, offline visual spawn editing, and systems for stealable rares, doom rares, interactive npcs, functional attachments, mob factions, pvp points/duels/games, custom special attacks, socketed items/creatures, and quests.
Recent Updates:
New to version 3.24
updated 2/11/08
Bug Fixes
- fixed a problem with xmldialogs no longer responding to keywords that was introduced in v3.23. (thanks to spookyroberts for pointing that out).
- fixed an exploit with playermade quests that allowed players to add to stackable rewards such as gold, and then use the quests as bags of sending. Players can no longer add to stackable rewards. (thanks to syznow for pointing this out)
Modified Features
- modified the #WAYPOINT keyword to use the z coord as well as the x,y coord of waypoint runes when trying to place spawns. Previously, only the x and y coord of the rune were used. (thanks to noonehome for the suggestion)
New Features
- added the new 'BSOUND,soundid' keyword that will broadcast a sound to all players. This is essentially BCAST for sounds. This is a standalone keyword. (thanks to BaronVallyr for the idea).
New to version 3.23
updated 2/2/08
If you are using SVN 241 or higher you will need to update to this version.
Bug Fixes
- fixed a problem with the GETONNEARBY keyword when used in condition tests with XmlDialogs. It was not using the location of the object that the XmlDialog was attached to as the reference location for the nearby search (thanks to Xerocrates for pointing this out).
- blocked the ability to use questholder rewards (by double clicking them while viewing them) before the quest is completed. (thanks to ABTOP for pointing this out).
- fixed a bug in which an attachment with a custom OnUse or OnUser function that deletes the item it is attached could cause the default Use function to crash with a null item error. (thanks to CEO for pointing this out).
- fixed a problem with orphaned attachments that try to remove items that they might be holding when they get cleaned up. This could generate warnings during world saves regarding attempts to delete items by attachments. (thanks to Vladimir for pointing this out)
Modified Features
- optimized the #WAYPOINT keyword for speed. Rather than searching all world items for named waypoints, it now uses a local hashtable lookup. This can significantly improve spawning performance when this keyword is used, particularly for servers with large item counts. The table will be reconstructed on server restarts or when spawners are manually reset. Note that if you use the #WAYPOINT keyword and add new waypoint runes, make sure that you reset the spawner so that they are recognized. (thanks to Xavier_WER for the suggestion).
- newly duped spawners are now automatically shut off before being placed in a pack. (thanks to Haazen for the suggestion).
- added support for accesslevel restrictions on constructable objects that was added in SVN 241. To enable this feature uncomment this line at the beginning of xmlspawner2.cs
//#define RESTRICTCONSTRUCTABLE
and then you can restrict spawning of objects that have an accesslevel restriction in their Constructable attribute by adjusting the value of this variable around line 92 of xmlspawner2.cs
public static AccessLevel ConstructableAccessLevel = AccessLevel.GameMaster; // only allow spawning of objects that have Constructable access restrictions at this level or lower. Must define RESTRICTCONSTRUCTABLE to enable this.
If you dont enable this feature, then things will work just as they have in the past, with no restrictions on spawning of objects that are marked Constructable.
- added the MaxTargetRange property to XmlUse attachments that allows you to specify the max allowed distance between the player and the target when using the targeting ability of XmlUse attachments. Default is 30 tiles.(thanks to Steelcap for the suggestion).
- added the ResetRange property to XmlDialogs that allows dialogs to automatically reset whenever the triggering player moves out of range. This means that when you have multiple players waiting to activate a dialog, they wont have to wait until the ResetTime for the dialog expires to trigger it again. This should improve the apparent responsiveness of dialogs. The default range is 16 tiles.
New Features
New to version 3.22b
updated 9/10/07
Bug Fixes
- fixes a problem with questholders not displaying rewards with 6.0.1.7+ clients.
This is only needed for 6.0.1.7+ client support in SVN 194+.
- fixed an exploit that allowed questholder rewards to be targeted and used before the quest was completed. (thanks to Stormwolf for pointing this out) Targeting of quest rewards is now blocked for players. Staff access is still allowed.
Only XmlQuestHolder.cs in XmlSpawner2-20-v322b-2of3.zip needs to be updated for these fixes.
New to version 3.22a
updated 9/1/07
Bug Fixes
- fixes a problem with text entry books for the spawner gumps not working properly with recent SVNs.
This adds a fix for packet handler overrides related to the 6.0.1.7+ client support in SVN 194+.
Only PacketHandlerOverrides.cs in XmlSpawner2-20-v322a-2of3.zip needs to be updated.
New to version 3.22
updated 8/31/07
Bug Fixes
- fixed a crash bug involving invalid XmlDialog reset times (thanks to Xavier_WER for pointing this out).
- fixed a bug in the SOUND keyword that wasnt allowing it to work properly in XmlDialog Actions. (thanks to PrinceArda for pointing this out)
Modified Features
- added some memory optimizations that should reduce save times a bit.
- added a new 'equippedonly' argument to the GETONCARRIED keyword. This allows you to restrict the target carried object to equipped items only. This upgrades the GETONCARRIED args to match those available to SETONCARRIED. The new syntax is
GETONCARRIED,itemname[,itemtype][,equippedonly],property
For example,
GETONCARRIED,*,baseweapon,true,name
would return the name of any equipped weapon on the triggering player.
- added additional journal logging options with the new 'NotifyAddJournalEntry' and 'EchoAddJournalEntry' properties on questholders (thanks to Syznow for the suggestion). These work in the same way as the recently added 'AddJournalEntry' property, but will also notify the holder of the quest when the entry is added (or modified) if the 'NotifyAddJournalEntry' property is set instead of the 'AddJournalEntry', and will both notify and echo the entry text if the 'EchoAddJournalEntry' property is used.
For example, the following spawn entry that would add a journal entry to the carried quest and also notify the questholder and echo the text to them
SETONCARRIED,Too many orcs,questholder/echoaddjournalentry/A simple request:You met a young woman named Tess outside of the Sweet Dreams inn. She asked if you could help with a small problem she was having with the growing orc population outside of her house near Britain.
would echo to the player
Journal entry 'A simple request' has been added to quest 'Too many orcs'.
You met a young woman named Tess outside of the Sweet Dreams inn. She asked if you could help with a small problem she was having with the growing orc population outside of her house near Britain.
The color of the notification and echoed text can also be configured by adding the following entries to the [XmlSpawner] section of Data/XmlSpawner.cfg .
JournalNotifyColor=0
JournalEchoColor=6
The numbers are the color values used to display the text.
New Features
- added a new targeting option to the XmlUse attachment that allows you to create custom use functions that bring up a targeting cursor on double click.
To enable this feature set the 'TargetingEnabled' property on the attachment to true.
Once this is done, then three additional properties that control targeting behavior become available.
The existing 'SuccessAction' will be performed once the object with the XmlUse attachment is successfully doubleclicked and the target is successfully selected.
When constructing an action, note that GETONTHIS and SETONTHIS will refer to the targeted object. So for example, a SuccessAction like
SETONTHIS/hue/500
would set the hue of the targeted object to 500.
Properties:
TargetingAction
Assign this string to specify custom actions that will be taken when the target cursor is brought up. The action string can be any spawnable entry string and supports multiple actions separated by semicolons.
TargetCondition
A test string that is the same as any xmlspawner condition test. It will be tested after an object is selected with the targeting cursor. If it returns true, then the object can be targeted and 'SuccessAction' will be performed. If it is false, then the 'TargetFailureAction' will be performed.
TargetFailureAction
This action will be executed when the target selection test in 'TargetCondition' is NOT satisfied.
- added the new 'ITEM,serial' keyword that you can use anywhere that you would normally be able to use loot keywords like TAKEN, or ARMOR to refer to arbitrary items by their serial number. (thanks to SteelCap for the suggestion)
So, for example, to take an existing item from a nearby container and drop it into a players bankbox you could do something like
SETONCARRIED,,bankbox,equippedonly/ADD/ITEM,{GETONNEARBY,1,,gold,true,serial}
- added the TakeArms.xml example to xmlextras.zip that demonstrates the use of the new ITEM keyword as well as the new 'equippedonly' argument to GETONCARRIED. To test it out, just '[xmlloadhere takearms.xml' and then walk past the spawner while you have a weapon equipped to trigger it.
The spawner will automatically take your equipped weapon and place it in a nearby container.
- added the 'BlockCommand' and 'ChangeCommand' configuration options to Data/XmlSpawner.cfg that allow commands to be blocked, renamed, or be given different accesslevels. This allows you to control command access without modifying any scripts. These will work on any commands, not just those added by the xmlspawner system. These should be added to the [XmlSpawner] section of Data/xmlspawner.cfg
The syntax for the BlockCommand option is
BlockCommand=commandname, commandname, etc.
The syntax for the ChangeCommand option is
ChangeCommand=oldname:newname[:accesslevel], oldname:newname[:accesslevel], etc.
If the newname argument is omitted, then the oldname will not be changed. If the accesslevel argument is omitted, then the accesslevel will not be changed.
Here is an example entry in xmlspawner.cfg
BlockCommand=freeze, freezemap, freezeworld, unfreeze, unfreezemap, unfreezeworld
ChangeCommand=add:a, xmlfind:xf:Administrator, xmlsave::Owner
This will completely block the freezing and unfreezing commands, rename the 'add' command to 'a', change the 'xmlfind' command to 'xmf' with the accesslevel of Administrator, and will change the accesslevel of the 'xmlsave' command to Owner.
Description:
see xmlspawner2.txt in xmlspawner2-support.zip for details and complete changelog.
Spawning System Features:
- spawn items and mobiles.
- spawn in containers.
- spawn stacked items.
- add items to spawned mobiles packs.
- spawnrange (how far they spawn) and homerange (how far they wander).
- spawn objects that require arguments to their constructors, such as runic hammers, or doors.
- set properties on any spawn without having to make script modifications.
- add items to spawned mobs backpacks without having to make script modifications.
- probabilistic spawning that can be used to implement rare mob spawns, such as a single spawn that you have to kill on average some number of times to get a rare named spawn to appear.
- time-limited spawns, such as rares that only appear for a certain amount of time.
- sequential champ-like spawning that advances by killing spawns.
- spawning in regions.
- linked spawning of multiple spawn entries using subgrouping.
- spawn on difficult surfaces such as multilevel tables/floors and water by adding a leading '*' to the spawn entry.
- control spawning location and selection with control keywords #XY, #DXY, #XFILL, #YFILL, #EDGE, #PLAYER, #WAYPOINT, #RELXY, #CONDITION, #WET, #TILES, #NOTILES
- special keywords can be used in spawning for control or effects:
- value keywords: RND, RNDBOOL, RNDLIST, RNDSTRLIST, RANDNAME, INC, MUL, MOB, SERIAL, SKILL
- control keywords: WAITUNTIL, IF, WHILE, and GOTO
- action keywords: ADD, EQUIP, GIVE, TAKE, TAKEBYTYPE, CAST, SAY, MSG, SENDMSG, BCAST, RESURRECT, POISON, DAMAGE, MUSIC, EFFECT, MEFFECT, SOUND, GUMP, SPAWN, DESPAWN, DELETE, KILL, ANIMATE, OFFSET
- loot keywords: ARMOR, WEAPON, JEWELRY, JARMOR, JWEAPON, SARMOR, SHIELD, LOOT, LOOTPACK, POTION, SCROLL, NECROSCROLL
- access keywords: GET, GETONTHIS, GETONPARENT, GETFROMFILE, GETONSPAWN, GETONCARRIED, GETONMOB, GETONTRIGMOB, SET, SETONTHIS, SETONPARENT, SETONSPAWN, SETONSPAWNENTRY, SETONCARRIED, SETONMOB, SETONTRIGMOB, PLAYERSINRANGE, TRIGSKILL, AMOUNTCARRIED
- spawner triggering by: player proximity, speech, player skill use, players carrying specific items, items or mobiles that have certain properties such as open doors or injured mobs, time of the day.
- automatic relocation of inaccessible spawns.
- "SmartSpawning" which allows spawners to automatically and transparently remove and restore spawns based on player proximity, reducing save times and mobile load.
Quest System Features:
- make complex multiple-objective quests ingame without any scripting.
- players can have multiple quests running at the same time.
- allow playermade quests that can be constructed by players and given to other players for things such as guild events.
- supports the following quest objective types: KILL, KILLNAMED, COLLECT, COLLECTNAMED, ESCORT, GIVE, GIVENAMED
- construct interactive npc conversations using the [xmledit command.
- control whether and how often quests can be repeated.
- quests can be assigned difficulty levels that are used to give out quest points on completion of the quest.
- players can be ranked by quest points. These shardwide rankings can be displayed using the [questranking command or saved to html for web display.
- quest rewards can be purchased using quest credits.
Support Features:
- searching/sorting for spawners/items/mobiles with the "[xmlfind" utility.
- creating interactive dialog objects/mobs ingame with the "[xmledit" utility.
- rapidly adding and configuring spawners and their spawns with the "[xmladd" utility.
- track down any spawn using the "goto" button in the spawner gump
- saving and loading of spawn files with [xmlsave, and [xmlload.
- import .map and .msf format spawn files with the "[xmlimportmap" and "[xmlimportmsf" utilities.
- export and import existing standard distro spawners using the [exportspawner and [importspawners commands.
Addon Systems:
The following additional optional addon systems are also available:
The Spawn Editor 2 visual spawn editing/mapping program can be found here Spawn Editor 2
The XmlPoints addon can be found here XmlPoints system
The XmlMobFactions addon can be found here XmlMobFactions system
The XmlCustomAttacks addon can be found here XmlCustomAttacks system
The XmlSockets addon can be found here XmlSockets system
The XmlSiege addon can be found here XmlSiege system
The PlayerRangeSensitiveMod provides the benefits of having PlayerRangeSensitive=false with virtually none of the server load. PlayerRangeSensitiveMod .
Additional Links:
Tryings beginners tutorial
Beginner's tutorial
Gator81's custom gauntlet with helpful walkthrough of setting up object-triggered spawners.
GatorsGauntlet using xmlspawner2 - RunUO Gaming Network
Eymerich's beginners guide to quest making. (thanks to DrussRob for the html rewrite)
LordHogFred's xml posts.
Diablo 2 quests
Halloween spawns
Erica'a ML Dungeon spawn maps
ML spawns
benchmarking information on spawner memory use.
RunUO Gaming Network - View Single Post - XmlSpawner2
XmlSpawner2
v3.24
RunUO 2.0 version
updated 2/11/08
ArteGordon
Latest News:
If you get an error like this on startup
Cannot implicitly convert type 'System.Collections.ArrayList' to 'System.Collections.Generic.List<Server.Tile>'
it means that you are running RunUO 2.0 RC1 instead of RC2 or the most recent SVN and you just need to uncomment this line at the beginning of xmlspawner2.cs
//#define RUNUO2RC1
so that it looks like
#define RUNUO2RC1
You will also need to comment out this line at the beginning of XmlQuestHolder.cs and PacketHandlerOverrides.cs because RC1 doesnt support UO clients beyond 6.0.1.7
#define CLIENT6017
so that it looks like
//#define CLIENT6017
Summary:
A spawn control system supporting sophisticated conditional spawn triggering, individual customization of spawns and their drops, spawn/item/mob search utilities, offline visual spawn editing, and systems for stealable rares, doom rares, interactive npcs, functional attachments, mob factions, pvp points/duels/games, custom special attacks, socketed items/creatures, and quests.
Recent Updates:
New to version 3.24
updated 2/11/08
Bug Fixes
- fixed a problem with xmldialogs no longer responding to keywords that was introduced in v3.23. (thanks to spookyroberts for pointing that out).
- fixed an exploit with playermade quests that allowed players to add to stackable rewards such as gold, and then use the quests as bags of sending. Players can no longer add to stackable rewards. (thanks to syznow for pointing this out)
Modified Features
- modified the #WAYPOINT keyword to use the z coord as well as the x,y coord of waypoint runes when trying to place spawns. Previously, only the x and y coord of the rune were used. (thanks to noonehome for the suggestion)
New Features
- added the new 'BSOUND,soundid' keyword that will broadcast a sound to all players. This is essentially BCAST for sounds. This is a standalone keyword. (thanks to BaronVallyr for the idea).
New to version 3.23
updated 2/2/08
If you are using SVN 241 or higher you will need to update to this version.
Bug Fixes
- fixed a problem with the GETONNEARBY keyword when used in condition tests with XmlDialogs. It was not using the location of the object that the XmlDialog was attached to as the reference location for the nearby search (thanks to Xerocrates for pointing this out).
- blocked the ability to use questholder rewards (by double clicking them while viewing them) before the quest is completed. (thanks to ABTOP for pointing this out).
- fixed a bug in which an attachment with a custom OnUse or OnUser function that deletes the item it is attached could cause the default Use function to crash with a null item error. (thanks to CEO for pointing this out).
- fixed a problem with orphaned attachments that try to remove items that they might be holding when they get cleaned up. This could generate warnings during world saves regarding attempts to delete items by attachments. (thanks to Vladimir for pointing this out)
Modified Features
- optimized the #WAYPOINT keyword for speed. Rather than searching all world items for named waypoints, it now uses a local hashtable lookup. This can significantly improve spawning performance when this keyword is used, particularly for servers with large item counts. The table will be reconstructed on server restarts or when spawners are manually reset. Note that if you use the #WAYPOINT keyword and add new waypoint runes, make sure that you reset the spawner so that they are recognized. (thanks to Xavier_WER for the suggestion).
- newly duped spawners are now automatically shut off before being placed in a pack. (thanks to Haazen for the suggestion).
- added support for accesslevel restrictions on constructable objects that was added in SVN 241. To enable this feature uncomment this line at the beginning of xmlspawner2.cs
//#define RESTRICTCONSTRUCTABLE
and then you can restrict spawning of objects that have an accesslevel restriction in their Constructable attribute by adjusting the value of this variable around line 92 of xmlspawner2.cs
public static AccessLevel ConstructableAccessLevel = AccessLevel.GameMaster; // only allow spawning of objects that have Constructable access restrictions at this level or lower. Must define RESTRICTCONSTRUCTABLE to enable this.
If you dont enable this feature, then things will work just as they have in the past, with no restrictions on spawning of objects that are marked Constructable.
- added the MaxTargetRange property to XmlUse attachments that allows you to specify the max allowed distance between the player and the target when using the targeting ability of XmlUse attachments. Default is 30 tiles.(thanks to Steelcap for the suggestion).
- added the ResetRange property to XmlDialogs that allows dialogs to automatically reset whenever the triggering player moves out of range. This means that when you have multiple players waiting to activate a dialog, they wont have to wait until the ResetTime for the dialog expires to trigger it again. This should improve the apparent responsiveness of dialogs. The default range is 16 tiles.
New Features
New to version 3.22b
updated 9/10/07
Bug Fixes
- fixes a problem with questholders not displaying rewards with 6.0.1.7+ clients.
This is only needed for 6.0.1.7+ client support in SVN 194+.
- fixed an exploit that allowed questholder rewards to be targeted and used before the quest was completed. (thanks to Stormwolf for pointing this out) Targeting of quest rewards is now blocked for players. Staff access is still allowed.
Only XmlQuestHolder.cs in XmlSpawner2-20-v322b-2of3.zip needs to be updated for these fixes.
New to version 3.22a
updated 9/1/07
Bug Fixes
- fixes a problem with text entry books for the spawner gumps not working properly with recent SVNs.
This adds a fix for packet handler overrides related to the 6.0.1.7+ client support in SVN 194+.
Only PacketHandlerOverrides.cs in XmlSpawner2-20-v322a-2of3.zip needs to be updated.
New to version 3.22
updated 8/31/07
Bug Fixes
- fixed a crash bug involving invalid XmlDialog reset times (thanks to Xavier_WER for pointing this out).
- fixed a bug in the SOUND keyword that wasnt allowing it to work properly in XmlDialog Actions. (thanks to PrinceArda for pointing this out)
Modified Features
- added some memory optimizations that should reduce save times a bit.
- added a new 'equippedonly' argument to the GETONCARRIED keyword. This allows you to restrict the target carried object to equipped items only. This upgrades the GETONCARRIED args to match those available to SETONCARRIED. The new syntax is
GETONCARRIED,itemname[,itemtype][,equippedonly],property
For example,
GETONCARRIED,*,baseweapon,true,name
would return the name of any equipped weapon on the triggering player.
- added additional journal logging options with the new 'NotifyAddJournalEntry' and 'EchoAddJournalEntry' properties on questholders (thanks to Syznow for the suggestion). These work in the same way as the recently added 'AddJournalEntry' property, but will also notify the holder of the quest when the entry is added (or modified) if the 'NotifyAddJournalEntry' property is set instead of the 'AddJournalEntry', and will both notify and echo the entry text if the 'EchoAddJournalEntry' property is used.
For example, the following spawn entry that would add a journal entry to the carried quest and also notify the questholder and echo the text to them
SETONCARRIED,Too many orcs,questholder/echoaddjournalentry/A simple request:You met a young woman named Tess outside of the Sweet Dreams inn. She asked if you could help with a small problem she was having with the growing orc population outside of her house near Britain.
would echo to the player
Journal entry 'A simple request' has been added to quest 'Too many orcs'.
You met a young woman named Tess outside of the Sweet Dreams inn. She asked if you could help with a small problem she was having with the growing orc population outside of her house near Britain.
The color of the notification and echoed text can also be configured by adding the following entries to the [XmlSpawner] section of Data/XmlSpawner.cfg .
JournalNotifyColor=0
JournalEchoColor=6
The numbers are the color values used to display the text.
New Features
- added a new targeting option to the XmlUse attachment that allows you to create custom use functions that bring up a targeting cursor on double click.
To enable this feature set the 'TargetingEnabled' property on the attachment to true.
Once this is done, then three additional properties that control targeting behavior become available.
The existing 'SuccessAction' will be performed once the object with the XmlUse attachment is successfully doubleclicked and the target is successfully selected.
When constructing an action, note that GETONTHIS and SETONTHIS will refer to the targeted object. So for example, a SuccessAction like
SETONTHIS/hue/500
would set the hue of the targeted object to 500.
Properties:
TargetingAction
Assign this string to specify custom actions that will be taken when the target cursor is brought up. The action string can be any spawnable entry string and supports multiple actions separated by semicolons.
TargetCondition
A test string that is the same as any xmlspawner condition test. It will be tested after an object is selected with the targeting cursor. If it returns true, then the object can be targeted and 'SuccessAction' will be performed. If it is false, then the 'TargetFailureAction' will be performed.
TargetFailureAction
This action will be executed when the target selection test in 'TargetCondition' is NOT satisfied.
- added the new 'ITEM,serial' keyword that you can use anywhere that you would normally be able to use loot keywords like TAKEN, or ARMOR to refer to arbitrary items by their serial number. (thanks to SteelCap for the suggestion)
So, for example, to take an existing item from a nearby container and drop it into a players bankbox you could do something like
SETONCARRIED,,bankbox,equippedonly/ADD/ITEM,{GETONNEARBY,1,,gold,true,serial}
- added the TakeArms.xml example to xmlextras.zip that demonstrates the use of the new ITEM keyword as well as the new 'equippedonly' argument to GETONCARRIED. To test it out, just '[xmlloadhere takearms.xml' and then walk past the spawner while you have a weapon equipped to trigger it.
The spawner will automatically take your equipped weapon and place it in a nearby container.
- added the 'BlockCommand' and 'ChangeCommand' configuration options to Data/XmlSpawner.cfg that allow commands to be blocked, renamed, or be given different accesslevels. This allows you to control command access without modifying any scripts. These will work on any commands, not just those added by the xmlspawner system. These should be added to the [XmlSpawner] section of Data/xmlspawner.cfg
The syntax for the BlockCommand option is
BlockCommand=commandname, commandname, etc.
The syntax for the ChangeCommand option is
ChangeCommand=oldname:newname[:accesslevel], oldname:newname[:accesslevel], etc.
If the newname argument is omitted, then the oldname will not be changed. If the accesslevel argument is omitted, then the accesslevel will not be changed.
Here is an example entry in xmlspawner.cfg
BlockCommand=freeze, freezemap, freezeworld, unfreeze, unfreezemap, unfreezeworld
ChangeCommand=add:a, xmlfind:xf:Administrator, xmlsave::Owner
This will completely block the freezing and unfreezing commands, rename the 'add' command to 'a', change the 'xmlfind' command to 'xmf' with the accesslevel of Administrator, and will change the accesslevel of the 'xmlsave' command to Owner.
Description:
see xmlspawner2.txt in xmlspawner2-support.zip for details and complete changelog.
Spawning System Features:
- spawn items and mobiles.
- spawn in containers.
- spawn stacked items.
- add items to spawned mobiles packs.
- spawnrange (how far they spawn) and homerange (how far they wander).
- spawn objects that require arguments to their constructors, such as runic hammers, or doors.
- set properties on any spawn without having to make script modifications.
- add items to spawned mobs backpacks without having to make script modifications.
- probabilistic spawning that can be used to implement rare mob spawns, such as a single spawn that you have to kill on average some number of times to get a rare named spawn to appear.
- time-limited spawns, such as rares that only appear for a certain amount of time.
- sequential champ-like spawning that advances by killing spawns.
- spawning in regions.
- linked spawning of multiple spawn entries using subgrouping.
- spawn on difficult surfaces such as multilevel tables/floors and water by adding a leading '*' to the spawn entry.
- control spawning location and selection with control keywords #XY, #DXY, #XFILL, #YFILL, #EDGE, #PLAYER, #WAYPOINT, #RELXY, #CONDITION, #WET, #TILES, #NOTILES
- special keywords can be used in spawning for control or effects:
- value keywords: RND, RNDBOOL, RNDLIST, RNDSTRLIST, RANDNAME, INC, MUL, MOB, SERIAL, SKILL
- control keywords: WAITUNTIL, IF, WHILE, and GOTO
- action keywords: ADD, EQUIP, GIVE, TAKE, TAKEBYTYPE, CAST, SAY, MSG, SENDMSG, BCAST, RESURRECT, POISON, DAMAGE, MUSIC, EFFECT, MEFFECT, SOUND, GUMP, SPAWN, DESPAWN, DELETE, KILL, ANIMATE, OFFSET
- loot keywords: ARMOR, WEAPON, JEWELRY, JARMOR, JWEAPON, SARMOR, SHIELD, LOOT, LOOTPACK, POTION, SCROLL, NECROSCROLL
- access keywords: GET, GETONTHIS, GETONPARENT, GETFROMFILE, GETONSPAWN, GETONCARRIED, GETONMOB, GETONTRIGMOB, SET, SETONTHIS, SETONPARENT, SETONSPAWN, SETONSPAWNENTRY, SETONCARRIED, SETONMOB, SETONTRIGMOB, PLAYERSINRANGE, TRIGSKILL, AMOUNTCARRIED
- spawner triggering by: player proximity, speech, player skill use, players carrying specific items, items or mobiles that have certain properties such as open doors or injured mobs, time of the day.
- automatic relocation of inaccessible spawns.
- "SmartSpawning" which allows spawners to automatically and transparently remove and restore spawns based on player proximity, reducing save times and mobile load.
Quest System Features:
- make complex multiple-objective quests ingame without any scripting.
- players can have multiple quests running at the same time.
- allow playermade quests that can be constructed by players and given to other players for things such as guild events.
- supports the following quest objective types: KILL, KILLNAMED, COLLECT, COLLECTNAMED, ESCORT, GIVE, GIVENAMED
- construct interactive npc conversations using the [xmledit command.
- control whether and how often quests can be repeated.
- quests can be assigned difficulty levels that are used to give out quest points on completion of the quest.
- players can be ranked by quest points. These shardwide rankings can be displayed using the [questranking command or saved to html for web display.
- quest rewards can be purchased using quest credits.
Support Features:
- searching/sorting for spawners/items/mobiles with the "[xmlfind" utility.
- creating interactive dialog objects/mobs ingame with the "[xmledit" utility.
- rapidly adding and configuring spawners and their spawns with the "[xmladd" utility.
- track down any spawn using the "goto" button in the spawner gump
- saving and loading of spawn files with [xmlsave, and [xmlload.
- import .map and .msf format spawn files with the "[xmlimportmap" and "[xmlimportmsf" utilities.
- export and import existing standard distro spawners using the [exportspawner and [importspawners commands.
Addon Systems:
The following additional optional addon systems are also available:
The Spawn Editor 2 visual spawn editing/mapping program can be found here Spawn Editor 2
The XmlPoints addon can be found here XmlPoints system
The XmlMobFactions addon can be found here XmlMobFactions system
The XmlCustomAttacks addon can be found here XmlCustomAttacks system
The XmlSockets addon can be found here XmlSockets system
The XmlSiege addon can be found here XmlSiege system
The PlayerRangeSensitiveMod provides the benefits of having PlayerRangeSensitive=false with virtually none of the server load. PlayerRangeSensitiveMod .
Additional Links:
Tryings beginners tutorial
Beginner's tutorial
Gator81's custom gauntlet with helpful walkthrough of setting up object-triggered spawners.
GatorsGauntlet using xmlspawner2 - RunUO Gaming Network
Eymerich's beginners guide to quest making. (thanks to DrussRob for the html rewrite)
LordHogFred's xml posts.
Diablo 2 quests
Halloween spawns
Erica'a ML Dungeon spawn maps
ML spawns
benchmarking information on spawner memory use.
RunUO Gaming Network - View Single Post - XmlSpawner2