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!

Skill Mount and Keeper RunUO 2.0

Hotshot

Sorceror
Skill Mount and Keeper RunUO 2.0

This is kinda cool i think, I created a Kepper that randomly drops a Mondains Ethereal Mount that adds +10 to fighting skills when mounted and on dismount it drops skills back to normal.
skills are
+10 Swords
+10 Archery
+10 Fencing
+10 Anatomy
+10 Macing
+10 Meditation
+10 Wrestling
+10 Magery
+10 Evaluating Intelligence

The Keeper holds the Ethereal Hue for skin and Robe, which robe cannot be removed, its just for looks...
Feel Free to Change to fit your shard . Its cool with me. :)
If you want to Make this better in anyway and repost thats fine to.
Enjoy... Your PvPer's will :) lol
 

Attachments

  • Skill Mount.rar
    1.7 KB · Views: 364

Joeku

Lord
Hmm... mounts that add attributes like wearables.
That's a great idea!

You should expand upon that further and give mounts all of the capabilities that weapons/armor have :D
 

Hotshot

Sorceror
Thanks for comments guys :)
yeah, thought it would be kinda cool... I'm trying to get my Multi Evolution to work now, Just think its cool that people can just d-click and use any weapon that fits their style or mood for that day of playing or creature theor fighting, just need to have use sound for that weapon the primary and secondary attributes for that weap chosed, sometimes you need AI or sometimes you need BA possible disarm, this gives them that chance to just d-click weap and use that weap of choice. If anyone finishes it feel free to post, just search for Multi Evolution.
 

Hotshot

Sorceror
Fix to Skill Mount retaining name after server reboot

After rebooting my server i seen the skill mount going back to Charger Of The Fallen, So here is a replacement for SkillMount.CS or you can just go to line 72 and 73 and replace the words Charger Of The Fallen to Skill Mount.
 

Attachments

  • SkillMount.cs
    2.2 KB · Views: 85

jklamm1980

Wanderer
can someone repost this the zip file doesnt work i need both files i love the skill mount and keeper script ive seen it in another shard and like it so decided to use it
 

oiii88

Sorceror
Here ya go. But just for future notes if you use the repair archive function in winrar most extraction errors can be cured.
 

Attachments

  • SkillMount.cs
    2.2 KB · Views: 54
  • KeeperOfTheSkillMount.cs
    2.5 KB · Views: 45

Hotshot

Sorceror
Hey Levi, lol... Here is the Script. You don't have to send it to me... It's taking you too ling anyway, LOL....
 
I've tried adding this theory to a normal mount to have the same effect, essentially, I copied and pasted into another script to see if it would still work. However, I got a couple of errors in the server.

CS0115: Line 49: 'Server.Mobiles.WarriorSteed.OnAdded(object)': no suitable methong found to override
CS0115: Line 66: 'Server.Mobiles.WarriorSteed.OnRemoved(object)': no suitable methong found to override

Here's the script as modified.

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

namespace Server.Mobiles
{
	[CorpseName( "a warrior steed corpse" )]
	public class WarriorSteed : BaseMount
	{
		[Constructable]
		public WarriorSteed() : this( "a warrior steed" )
		{
		}

		[Constructable]
		public WarriorSteed( string name ) : base( name, 0xBE, 0x3E9E, AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			BaseSoundID = 0xA8;

			SetStr( 376, 400 );
			SetDex( 91, 120 );
			SetInt( 291, 300 );

			SetHits( 226, 240 );

			SetDamage( 11, 30 );

			SetDamageType( ResistanceType.Physical, 20 );
			SetDamageType( ResistanceType.Fire, 80 );

			SetResistance( ResistanceType.Physical, 30, 40 );
			SetResistance( ResistanceType.Fire, 70, 80 );
			SetResistance( ResistanceType.Cold, 20, 30 );
			SetResistance( ResistanceType.Poison, 30, 40 );
			SetResistance( ResistanceType.Energy, 30, 40 );

			SetSkill( SkillName.MagicResist, 100.0, 120.0 );
			SetSkill( SkillName.Tactics, 100.0 );
			SetSkill( SkillName.Wrestling, 100.0 );

			Fame = 20000;
			Karma = -20000;

			Tamable = true;
			ControlSlots = 2;
			MinTameSkill = 106.0;
		}

			public override void OnAdded( object parent )
		{
			base.OnAdded( parent );
			if( parent is Mobile )
			{
				Mobile from = (Mobile)parent;
				from.Skills.Swords.Base += 10;
                                from.Skills.Fencing.Base += 10;
                                from.Skills.Magery.Base += 10;
                                from.Skills.Archery.Base += 10;
                                from.Skills.Macing.Base += 10;
                                from.Skills.Wrestling.Base += 10;
                                from.Skills.Anatomy.Base += 10; 
                                from.Skills.Meditation.Base += 10;
                                from.Skills.EvalInt.Base += 10;
			}
		}
		public override void OnRemoved( object parent )
		{
			base.OnRemoved( parent );
			if( parent is Mobile )
			{
				Mobile from = (Mobile)parent;
				from.Skills.Swords.Base -= 10;
                                from.Skills.Fencing.Base -= 10;
                                from.Skills.Magery.Base -= 10;
                                from.Skills.Archery.Base -= 10;
                                from.Skills.Macing.Base -= 10;
                                from.Skills.Wrestling.Base -= 10;
                                from.Skills.Anatomy.Base -= 10;
                                from.Skills.Meditation.Base -= 10;
                                from.Skills.EvalInt.Base -= 10;
			}
			
		}

		public override void GenerateLoot()
		{
			PackItem( new SulfurousAsh( Utility.RandomMinMax( 151, 300 ) ) );
			PackItem( new Ruby( Utility.RandomMinMax( 16, 30 ) ) );
		}

		public override bool HasBreath{ get{ return true; } } // fire breath enabled
		public override FoodType FavoriteFood{ get{ return FoodType.Meat; } }
		public override PackInstinct PackInstinct{ get{ return PackInstinct.Daemon | PackInstinct.Equine; } }

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

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );

			writer.Write( (int) 1 ); // version
		}

		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			int version = reader.ReadInt();

			if ( BaseSoundID <= 0 )
				BaseSoundID = 0xA8;

			if( version < 1 )
			{
				for ( int i = 0; i < Skills.Length; ++i )
				{
					Skills[i].Cap = Math.Max( 100.0, Skills[i].Cap * 0.9 );

					if ( Skills[i].Base > Skills[i].Cap )
					{
						Skills[i].Base = Skills[i].Cap;
					}
				}
			}
		}
	}
}

This was modified from the Fire Steed script.
 
Top