Alot of people like myself can find XML System rather intimidating. But I found a few key things after many hours of playing around with this system. I thought Id share my development process or way of thinking when designing these stagged events.
Reverse Logic
Most the time when your designing ahead of time or on the fly, or just playing around with things. You always start from the beginning of the project then get to the end. Thats the standard life cycle of a design. There are pros and cons to this type of development but everybody has there own unique design system or template they follow. Here is mine with XML.
My PvM Event Example
Ill use my Automated Player Vs Monster Event That took me about 2 hours to set up. Here is the list I made in my head of how I wanted it to work.
1) I wanted gates to appear by every bank in Malas, Felucca and Tokuno that stayed up during the whole event.
2) I wanted the players to control the event based off their progression through it.
3) I wanted walls placed down so they couldnt advance to the next stage withouth killing all of the previous spawn.
4) I wanted this system to use our [Event] Tagged monsters in each section but only at a fixxed frequency or rate of appearing.
5) I wanted the system to broadcast every 30 seconds that the event was coming up as well as where the gates would appear to the players.
6) And finally at the end of the event I wanted players to do a pre staged champ spawn with a few champs at the end.
With that said Here is the way it works.
1) The system sets up the spawn and walls
2) Broadcasts for 2 minutes every 30 seconds displaying till event starts
3) Places Blue Gates at every bank
4) Players come in and progress through 7 rooms. They cannont goto next room till the previous room has been cleared.
5) they then encounter a champ spawn
6) once thats done the broadcast This event is now finished is displayed.
7) the system shuts everything down and resets everything for the next time you want to run the event.
So then I started to work the xml magic in the following manner.
First thing I did was create the champ spawn in the last room. Got that up and running useing a sequence spawn. This spawner uses a Sequence in which untill everything is dead from that Sub Phase. It wouldnt goto the next phase. I used a few spawns on this one as well. All the creature entries used this for a special treat.
Monster/IsParagon/RNDLIST,true,false,false,false,false
this allowed me to have them when they appeared to be 1 in 5 chance for paragon. So each time the event runs. This stage is different.
I then spawned all the creatures in the rooms (stationary facing south) Each section used its own xmlspawner. all of them useing the #XFILL,3; spawnedcreature/Direction/South/RangeHome/0. I set these up to be a sequence where when they creatures die in Sub 0. It would Find the next wall and run a DORESET on its spawner. Thus removing them. It would then DORESET itself, then it would be ready for the next time this event was ran. On my server I created a EVENT Tagged monster. they are way harder to kill and give out reward tokens and small bank checks to players on occasion. I set all these monsters on every row to
Monster/IsEventMonster/RNDLIST,true,false,false,false,false,false,false this allowed me to have a random amount of Event tagged monsters. This way each phase though this event was different everytime the event was ran.
I then created each wall subsection with its own XMLSpawner. This way I could Turn on and off the blocking walls.
At this point I could have manually worked and spawned every spawn and remove walls by myself just by useing the RESPAWN/RESET buttons on the XML Gump. But who would want to do that every time?
So I converted over the Monster Spawners to sequence spawns. When the Spawn was dead it would do this...
SET,NextWall Serial,xmlspawner/DORESET/TRUE on sub 1
SETONTHIS/RUNNING/FALSE/DORESET/TRUEon sub 2
Now with each phase set like this. Everytime They killed the phase of monsters. It would open up the next level of spawned stuff and stop itself from respawning again.
From here I saw that from start to end, my system worked great. now to get the players here to kill the spawn at this event.
I first created 1 xml spawner to spawn a Undispellable moongate at a x,y,z postion, that took players to the Event Position. Here is what I did for each entry (or each bank I wanted this gate to appear at)
*Teleporter/MapDest/Trammel/PointDest/(EventX,EventY,EventZ)/Map/(Bank Map)/Location/(Bank Location)/Hue/1266
I repeted this combantion at each bank, for 14 in total I think. Now for this I set the spawner to be a Group Spawn, and to only spawn 1 gate per location. So here Im sitting I got a event that runs through, and players can get here. Whats left to do? Let the players know whats going on.
New spawner again this time doing this...
Phase 0:
Activate all walls and put them up useing
SET,WallSerial,xmlspawner/DORESPAWN/TRUE on all wall sections
Phase 1:
Activate all the Spawns including last boss spawn
SET,SpawnedSectionSerial,xlmspawner/DORESPAWN/TRUE
Phase 2:
Broadcast to players 2 minutes till event.
Phase 3:
Broadcast to players 1 min 30 sec till event.
Phase 4:
Broadcast to players 1 minutes till event.
Phase 5:
Broadcast to players 30 sec till event.
Phase 6:
Activate the Gate xmlspawner
SET,GateSerial,xmlspawner/DORESPAWN/TRUE
I had to set this spawner sequence up on a 30-31 second timer to spawn each phase. At this point I was nearly done with my system. I just had to shut everything off at the end. Since every spawn but the Gate sequence shuts themselves off. I had to go back to the Spawner for the pregenerated Champ spawn and the last sequence removes the gates at every bank by...
SET,GateSpawner,xmlspawner/DORESET/TRUE
In case your wondering I have a publicmoongate in the event area if they want to leave. This might not be the most constructive guide. But it shows how i Created a Automated event. Also ill be adding in a feature where...
I create 3 TOD spawners to kick in the Control spawner that runs the event which is the 6 phase spawner that sets it up. This means i can have a PvM event running 3 times a day or when ever I want. And I dont ever have to be around to spawn anything. So as you can see if your wondering if XML is for you. Its for anybody because this is a good example of how Great this system really is. My server thanks you for this. I love this system more then anything i have ever seen for the RunUO Community. Hope you enjoyed this guide.
thanks for the walkthrough. It is always fun to see the ways that people are able to use the system.