RunUO Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

[RunUO 2.0 RC2] Doom Systems

Makaar

Sorceror
[RunUO 2.0 RC2] Doom Systems

INFO: First and foremost I take absolutely no credit for these. The proper credit is usually marked within the scripts but these are devoid of those. I was sent these a year or so ago and lost contact with the individual...recently a few here have been asking me for the Doom Poison room or this and that from Doom, so this package should contain everything needed...I believe? Post below if you need something else...I will release it as long as its unmarked by the creator and I know its ok or I wrote it myself.

Contains the Doom Poison room, and the Dark Guardian mobiles that go inside. To generate the Doom Poison room type: GenDoomSystem after dropping it somewhere in your scripts directory. You might have a few of these as a couple refer to the Doom Gauntlet...but regardless I have released it due to the fact that I didn't want these to get lost forever like my Hydra I had Demortis script for me long ago (that I lost in a hard drive crash before I was going to release it :( )

This is different than will_man's Poison Room, and should be compatible with RC2 (as it works on mine).

Enjoy!

THANKS: Thanks goes to the original authors who wrote the Poison Room...



ALSO: I have included my custom armor set called the Necro Lord (Sarang-Oul) set, which is an homage to the Trang-Oul set armor from Diablo 2. I made them drop in my Doom dungeon as a random and had it part of these systems. Its here if you want it...just a golden bone armor set that when you double click on the Visage bone helm you transform into a Lich (toggles on/off for looks). Neat? You be the judge. Enjoy...
 

Attachments

  • Doom.rar
    17 KB · Views: 185
  • DarkGuardian.cs
    3 KB · Views: 155
  • SarangOulArms.cs
    1.1 KB · Views: 87
  • SarangOulBoneHelm.cs
    3 KB · Views: 84
  • SarangOulChest.cs
    1.2 KB · Views: 89
  • SarangOulCloak.cs
    1 KB · Views: 89
  • SarangOulGloves.cs
    1.1 KB · Views: 83
  • SarangOulGorget.cs
    1.3 KB · Views: 81
  • SarangOulLegs.cs
    1.1 KB · Views: 83
  • ddd.jpg
    ddd.jpg
    45.1 KB · Views: 699

Corpsecrank

Sorceror
Was it RoninGT? I remember he did this system once and it used a command like that to generate it.

What I would really like to see is the doom points system they introduced last year that works similar to the treasures of tokuno system. For each boss in the gauntlet you defeat you are assigned points and the points gradually increase your chance to get an artifact. So your chance gets higher until one drops and if nothing drops before your points equal a 100% then they will reach 100% and the next time you will a boss you are given an artifact.

It still takes a while to earn the artifacts and the points are different for dark fathers than for the bosses in the rooms. You also need to do a certain amount of damage to earn the points but it's not much. If you do about 500 damage you should get points.

If you wanted to work on this I could find the exact information for it just let me know.
 

oohg-jesusoo

Sorceror
You forgot to put some scripts in the pack.

missing scripts : SarangOulBoneHelm, SarangOulCloak, SarangOulArms, SarangOulChest, SarangOulGloves, SarangOulGorget, SarangOulLegs.
 

Corpsecrank

Sorceror
oohg-jesusoo;809951 said:
You forgot to put some scripts in the pack.

missing scripts : SarangOulBoneHelm, SarangOulCloak, SarangOulArms, SarangOulChest, SarangOulGloves, SarangOulGorget, SarangOulLegs.

Those look like customs you can go in to the script that asks for them and remove them and everything will work fine.
 

oohg-jesusoo

Sorceror
Corpsecrank;809961 said:
Those look like customs you can go in to the script that asks for them and remove them and everything will work fine.

ohh, so i can just edit it to something like this ?
Code:
					case 0: c.DropItem( new BoneHelm() ); break;
					case 1: c.DropItem( new Cloak() ); break;
					case 2: c.DropItem( new LeatherArms() ); break;
					case 3: c.DropItem( new LeatherChest() ); break;
					case 4: c.DropItem( new LeatherGloves() ); break;
					case 5: c.DropItem( new LeatherGorget() ); break;
					case 6: c.DropItem( new LeatherLegs() ); break;

or am i totaly lost ? :confused:
 

Corpsecrank

Sorceror
oohg-jesusoo;809971 said:
ohh, so i can just edit it to something like this ?
Code:
					case 0: c.DropItem( new BoneHelm() ); break;
					case 1: c.DropItem( new Cloak() ); break;
					case 2: c.DropItem( new LeatherArms() ); break;
					case 3: c.DropItem( new LeatherChest() ); break;
					case 4: c.DropItem( new LeatherGloves() ); break;
					case 5: c.DropItem( new LeatherGorget() ); break;
					case 6: c.DropItem( new LeatherLegs() ); break;

or am i totaly lost ? :confused:

That should work. Or you can remove the entire statement from the script. Either way is fine. With what you have there it will randomly drop one of those items but they will have base properties. Still it takes care of the error and allows compiling.

Remove the part marked in red and you will not have it ask for those items. You will also avoid having code that isn't needed in the script.

Code:
using System;
using Server;
using Server.Items;
using Server.Mobiles;

namespace Server.Mobiles
{
	[CorpseName( "a dark guardian corpse" )]
	public class DarkGuardian : BaseCreature
	{
		[Constructable]
		public DarkGuardian() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			Name = "a dark guardian";
			Body = 79;
			BaseSoundID = 412;

			Hue = 2406;

			SetStr( 126, 150 );
			SetDex( 101, 120 );
			SetInt( 201, 235 );

			SetHits( 153, 179 );

			SetDamage( 11, 13 );

			SetDamageType( ResistanceType.Physical, 10 );
			SetDamageType( ResistanceType.Cold, 40 );
			SetDamageType( ResistanceType.Energy, 50 );

			SetResistance( ResistanceType.Physical, 40, 50 );
			SetResistance( ResistanceType.Fire, 20, 45 );
			SetResistance( ResistanceType.Cold, 50, 60 );
			SetResistance( ResistanceType.Poison, 20, 45 );
			SetResistance( ResistanceType.Energy, 30, 40 );

			SetSkill( SkillName.Meditation, 85.1, 95.0 );
			SetSkill( SkillName.EvalInt, 40.1, 50.0 );
			SetSkill( SkillName.Magery, 50.1, 60.0 );
			SetSkill( SkillName.MagicResist, 50.0, 70.0 );
			SetSkill( SkillName.Tactics, 50.1, 70.0 );

			Fame = 18000;
			Karma = -18000;

			VirtualArmor = 50;
			PackItem( new GnarledStaff() );
			PackItem( new DaemonBone( 30 ) );
			PackNecroReg( 15, 20 );
		}

		public override OppositionGroup OppositionGroup
		{
			get{ return OppositionGroup.FeyAndUndead; }
		}

		public override void GenerateLoot()
		{
			AddLoot( LootPack.FilthyRich );
			AddLoot( LootPack.MedScrolls, 2 );
		}

[COLOR="Red"]		public override void OnDeath( Container c )
		{
			base.OnDeath( c );		
			
			if ( Utility.RandomDouble() < 0.025 )
			{
				switch( Utility.Random( 7 ) )
				{
					case 0: c.DropItem( new SarangOulBoneHelm() ); break;
					case 1: c.DropItem( new SarangOulCloak() ); break;
					case 2: c.DropItem( new SarangOulArms() ); break;
					case 3: c.DropItem( new SarangOulChest() ); break;
					case 4: c.DropItem( new SarangOulGloves() ); break;
					case 5: c.DropItem( new SarangOulGorget() ); break;
					case 6: c.DropItem( new SarangOulLegs() ); break;
				}
			}
		}[/COLOR]

		public override bool CanRummageCorpses{ get{ return true; } }
		public override bool BleedImmune{ get{ return true; } }
		public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
		public override int TreasureMapLevel{ get{ return 4; } }

		public override int GetIdleSound()
		{
			return 413;
		}

		public override int GetAngerSound()
		{
			return 412;
		}

		public override int GetDeathSound()
		{
			return 416;
		}

		public override int GetAttackSound()
		{
			return 414;
		}

		public override int GetHurtSound()
		{
			return 415;
		}

		public DarkGuardian( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.Write( (int) 0 );
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadInt();
		}
	}
}

You see by simply adding some junk items in that part your leaving junk code in the script to work around an error when you are better off just pulling that section of code out because you don't need what it does.

Not if you wanted to replace the items with something special that you have rather than some junk leather and bone you could and then the code might be useful. But with just base leather and bone items there is no point. When loot is generated it creates items and adds properties based on a set of rules and the objects you told it to add will not be added following the same rules. You could code them to generate similar to normal loot or any way that you want but it really wouldn't be a good way to do it.
 

oohg-jesusoo

Sorceror
Ahh okay.

what if i change "switch( Utility.Random( 7 ) )" to something like "switch( Utility.Random( 15 ) )"

will the droprate be lower by that ?

this will be my last question ;)
 

Corpsecrank

Sorceror
oohg-jesusoo;809974 said:
Ahh okay.

what if i change "switch( Utility.Random( 7 ) )" to something like "switch( Utility.Random( 15 ) )"

will the droprate be lower by that ?

this will be my last question ;)

Yes if you did make the switch higher it would lower the drop rate however you would still want to add some other type of item that is more worth while than junk leather and bone. Look at my post again I noticed you replied while I was still editing it should help explain this a little better.

But yes if you do choose to add special items or something to that switch you can raise the number to lower the drop rate.

The way it works is this. If you have 3 items you want to drop your Utility.Random number would need to be 3 and you would have 3 cases below that starting with 0 and it would go case0 case1 case2 so the Utility.Random number would always end 1 number higher than the last case number because of the list starting at 0. Now it will randomly pick one of those 3 every time and if you raise the number to 15 it will have 3 chances to hit one of the cases and 12 to not if I remember correctly meaning you have roughly a 1 in 5 chance to get one of the items in the list. This is not the best method for a random drop though so keep that in mind.
 

oohg-jesusoo

Sorceror
Corpsecrank;809977 said:
Yes if you did make the switch higher it would lower the drop rate however you would still want to add some other type of item that is more worth while than junk leather and bone. Look at my post again I noticed you replied while I was still editing it should help explain this a little better.

But yes if you do choose to add special items or something to that switch you can raise the number to lower the drop rate.

The way it works is this. If you have 3 items you want to drop your Utility.Random number would need to be 3 and you would have 3 cases below that starting with 0 and it would go case0 case1 case2 so the Utility.Random number would always end 1 number higher than the last case number because of the list starting at 0. Now it will randomly pick one of those 3 every time and if you raise the number to 15 it will have 3 chances to hit one of the cases and 12 to not if I remember correctly meaning you have roughly a 1 in 5 chance to get one of the items in the list. This is not the best method for a random drop though so keep that in mind.

ahh okay. this explaind alot to me :) thanks.
i will keep that in mind, but its a start to leaning ;)
 

Erica

Knight
Guardian Room and Lamp puzzle was added in latest svn so would get those instead just thought i let you know.
 
Top