ArteGordon
Wanderer
XmlSpawner2 v3.11
XmlSpawner2
v3.11
RunUO 1.0 version
updated 6/14/05
ArteGordon
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.11
updated 6/14/06
- added support for proximity triggering by non-player npcs. Setting the new AllowNPCTrig property on the spawner to true will allow it to be triggered by both players and non-player npcs.
NPC proximity triggering is configured the same as regular player proximity triggering by setting the ProximityRange and the other optional triggering controls such as SpawnOnTrigger or even things like SpeechTrigger (when used with xmlquestnpcs that can generate actual speech), or the PlayerTrigProp property to test for properties on the triggering npc just as it used to for players.
- a small change to the XmlDialog attachment that allows it to be reset by setting the DoReset property via an Action field in XmlDialog entries (thanks to Vladimir for the idea). This allows the use of an action such as
SETONTHIS/doreset/true
to allow the xmldialog to become immediately available for reactivation without having to wait for it to timeout from the last player.
- added a new IgnoreCarried flag to xmldialog entries that will allow them to ignore the Trigger/NoTriggerOnCarried settings that normally control their activation (thanks to Vladimir for the idea). Previously, if the Trigger/NoTriggerOnCarried fields were set then all speech-dependent entries required that condition to be satisfied before they could be activated. In the [xmledit gump, the flag can be toggled by checking the new IgnoreCar box.
This will allow you to set up entries that you want to keep separate from the main triggering conditions.
- added a check to xmldialogs to prevent assigning invalid speechhue values (greater than 37852) that could cause client crashes.
- added the new spawn position control keywords #DXY,dx,dy[,dz] and #XY,x,y[,z].
#DXY will place the spawn at the specified delta xy coordinates relative to the spawner location.
#XY will place the spawn at the specified absolute xy coordinates.
For example, the spawn entries
#DXY,2,3 ; orc
#XY,5441,1700 ; troll
would spawn an orc at a location relative to the spawner and a troll at an absolute location.
- fixed a problem in referring to mobile or item type properties when assigning other mobile or item type properties. Mobile or Item type properties that return the name as well as the serial numbers of the target were not being properly parsed that caused examples like masterhelper.xml not to work. So spawn entries like
SETONSPAWN,1/combatant/GETONSPAWN,2,combatant
will now work properly.
- added the ability for [xmlfind to search spawners based on the type of objects being spawned and not just the spawner entry string itself. By specifying the search type as either 'xmlspawner' or 'spawner' and checking the new 'type' checkbox next to the 'entry' field, the entry string will be treated as the type of the spawn entry to be found instead of just a string to be matched against the spawn entry.
With both the entry and type boxes checked, the search will find all spawners that contain entries that are of the the specified type. So to find all spawners with vendors on them, specify an entry field of 'basevendor'.
This will work for both xmlspawners and regular distro spawners.
finding all spawners with baseweapon type spawn entries
- fixed a possible [xmlfind search results gump display synchronization problem. This may have produced garbled text or lost client connections when displaying search results under certain conditions. (thanks to LowCastle and CEO for pointing this out).
- added a new attachment called XmlDeathAction. This attachment, when applied to a creature allows any spawnable action to be performed on the creatures death. (thanks to Syntria for the idea). This could include sending the killer a gump or a message, adding items to the corpse, spawning another creature, etc. (the killer is considered to be the trigger mob in these actions).
An example of these applications is included in deathaction.xml in xmlextras.zip. Just "[xmlloadhere deathaction.xml" and start killing the creatures to see what happens.
For example, with this spawn entry
harpy/ATTACH/<xmldeathaction/action/@GUMP,Harpy be gone,0/Congratulations! You killed a harpy.
killing the harpy gives you this
You must perform xmlspawner installation step #2 for this attachment to work.
- added the XmlAddTithing attachment which is just like the XmlAddFame, or XmlAddKarma attachments but for tithing points.
- fixed a problem with TalkingBaseEscortable destinations that were not being properly restored after server restarts (thanks to EtraDor for pointing this out).
- added the 'stafflevel' property of the staffcloak (or any other item) to the protected property list that blocks any attempt to set it via xmlspawner to prevent possible exploits (thanks to snicker7 for pointing that out).
- spawn entry strings displayed in the properties list on mouseover of the spawner crystal are now truncated at 20 chars. This improves the appearance and avoids any problems the client might have trying to display extremely long spawn entries.
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
- 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, SOUND, GUMP, DESPAWN, DELETE, 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
- 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 PlayerRangeSensitiveMod provides the benefits of having PlayerRangeSensitive=false with virtually none of the server load. PlayerRangeSensitiveMod .
Additional Links:
godfood's XmlSpawner support forum
XmlSpawnerFan forum
Tryings beginners tutorial
Beginner's tutorial
Gator81's custom gauntlet with helpful walkthrough of setting up object-triggered spawners.
http://runuo.com/forums/showthread.php?t=50444
Eymerich's beginners guide to quest making. (thanks to DrussRob for the html rewrite)
Beginner's quest guide
LordHogFred's xml posts.
Diablo 2 quests
Halloween spawns
benchmarking information on spawner memory use.
http://runuo.com/forums/showpost.php?p=448568&postcount=1078
Installation:
The installation packages are available at XmlSpawnerFan forum
The are also mirrored here Orbsydia mirror
XmlSpawner2
v3.11
RunUO 1.0 version
updated 6/14/05
ArteGordon
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.11
updated 6/14/06
- added support for proximity triggering by non-player npcs. Setting the new AllowNPCTrig property on the spawner to true will allow it to be triggered by both players and non-player npcs.
NPC proximity triggering is configured the same as regular player proximity triggering by setting the ProximityRange and the other optional triggering controls such as SpawnOnTrigger or even things like SpeechTrigger (when used with xmlquestnpcs that can generate actual speech), or the PlayerTrigProp property to test for properties on the triggering npc just as it used to for players.
- a small change to the XmlDialog attachment that allows it to be reset by setting the DoReset property via an Action field in XmlDialog entries (thanks to Vladimir for the idea). This allows the use of an action such as
SETONTHIS/doreset/true
to allow the xmldialog to become immediately available for reactivation without having to wait for it to timeout from the last player.
- added a new IgnoreCarried flag to xmldialog entries that will allow them to ignore the Trigger/NoTriggerOnCarried settings that normally control their activation (thanks to Vladimir for the idea). Previously, if the Trigger/NoTriggerOnCarried fields were set then all speech-dependent entries required that condition to be satisfied before they could be activated. In the [xmledit gump, the flag can be toggled by checking the new IgnoreCar box.
This will allow you to set up entries that you want to keep separate from the main triggering conditions.
- added a check to xmldialogs to prevent assigning invalid speechhue values (greater than 37852) that could cause client crashes.
- added the new spawn position control keywords #DXY,dx,dy[,dz] and #XY,x,y[,z].
#DXY will place the spawn at the specified delta xy coordinates relative to the spawner location.
#XY will place the spawn at the specified absolute xy coordinates.
For example, the spawn entries
#DXY,2,3 ; orc
#XY,5441,1700 ; troll
would spawn an orc at a location relative to the spawner and a troll at an absolute location.
- fixed a problem in referring to mobile or item type properties when assigning other mobile or item type properties. Mobile or Item type properties that return the name as well as the serial numbers of the target were not being properly parsed that caused examples like masterhelper.xml not to work. So spawn entries like
SETONSPAWN,1/combatant/GETONSPAWN,2,combatant
will now work properly.
- added the ability for [xmlfind to search spawners based on the type of objects being spawned and not just the spawner entry string itself. By specifying the search type as either 'xmlspawner' or 'spawner' and checking the new 'type' checkbox next to the 'entry' field, the entry string will be treated as the type of the spawn entry to be found instead of just a string to be matched against the spawn entry.
With both the entry and type boxes checked, the search will find all spawners that contain entries that are of the the specified type. So to find all spawners with vendors on them, specify an entry field of 'basevendor'.
This will work for both xmlspawners and regular distro spawners.
finding all spawners with baseweapon type spawn entries
- fixed a possible [xmlfind search results gump display synchronization problem. This may have produced garbled text or lost client connections when displaying search results under certain conditions. (thanks to LowCastle and CEO for pointing this out).
- added a new attachment called XmlDeathAction. This attachment, when applied to a creature allows any spawnable action to be performed on the creatures death. (thanks to Syntria for the idea). This could include sending the killer a gump or a message, adding items to the corpse, spawning another creature, etc. (the killer is considered to be the trigger mob in these actions).
An example of these applications is included in deathaction.xml in xmlextras.zip. Just "[xmlloadhere deathaction.xml" and start killing the creatures to see what happens.
For example, with this spawn entry
harpy/ATTACH/<xmldeathaction/action/@GUMP,Harpy be gone,0/Congratulations! You killed a harpy.
killing the harpy gives you this
You must perform xmlspawner installation step #2 for this attachment to work.
- added the XmlAddTithing attachment which is just like the XmlAddFame, or XmlAddKarma attachments but for tithing points.
- fixed a problem with TalkingBaseEscortable destinations that were not being properly restored after server restarts (thanks to EtraDor for pointing this out).
- added the 'stafflevel' property of the staffcloak (or any other item) to the protected property list that blocks any attempt to set it via xmlspawner to prevent possible exploits (thanks to snicker7 for pointing that out).
- spawn entry strings displayed in the properties list on mouseover of the spawner crystal are now truncated at 20 chars. This improves the appearance and avoids any problems the client might have trying to display extremely long spawn entries.
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
- 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, SOUND, GUMP, DESPAWN, DELETE, 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
- 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 PlayerRangeSensitiveMod provides the benefits of having PlayerRangeSensitive=false with virtually none of the server load. PlayerRangeSensitiveMod .
Additional Links:
godfood's XmlSpawner support forum
XmlSpawnerFan forum
Tryings beginners tutorial
Beginner's tutorial
Gator81's custom gauntlet with helpful walkthrough of setting up object-triggered spawners.
http://runuo.com/forums/showthread.php?t=50444
Eymerich's beginners guide to quest making. (thanks to DrussRob for the html rewrite)
Beginner's quest guide
LordHogFred's xml posts.
Diablo 2 quests
Halloween spawns
benchmarking information on spawner memory use.
http://runuo.com/forums/showpost.php?p=448568&postcount=1078
Installation:
The installation packages are available at XmlSpawnerFan forum
The are also mirrored here Orbsydia mirror