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!

How to: Make any Creature Ridable.

yuri99

Wanderer
How to: Make any Creature Ridable.

I quit RunUO so I am no longer offering support for this, please don't PM me as I probably won't view them.





This patch is less than 1 mb and it takes 1-2 seconds to download. It's super fast!


Ok, so you wanna know how to make any creature mountable? Even humans? Well I'll tell you how. First of all download Mulpatcher and extract it to your UO Folder. I won't go into detail with this but pretty much this is the tool you NEED to get all this done. Tannis's guide has some stuff about it http://www.runuo.com/forums/showthread.php?t=55184 but besides that I currently can't find where to download it.

Well Once you get that step figured out on your own, load up the MulPatcher. Ok make sure you BACK UP your tile data. Stick it somewhere besides the actualy UO Folder. In the Mulpatcher, your probably under settings, so under the TileData/TileData.mul catagory, load up your Tiledata.mul Backup (the one thats not in your UO folder). After clicking load, go to Tiledata (S). Scroll down to the wayyyy bottom and find an empty slot, for example 0x3FEF. Click on it. In Name stick Centaur. In Animation ID stick 0x65. In Height stick one. In Quality stick 25. Check the boxes Animation and Wearable.

Your probably wondering, how did I get the 0x65 for the Animation ID? Well if your trying to make any animal to a mountable animal you have to find out their Bodyvalue. So type in [props and go for a few pages till you see Body --- 0x65, or BodyValue ---- 101 [0x65]. Once you find that number, for example humans are 0x190, then you just stick it in teh Animation ID.

But back to our lesson. Once you have all the stuff filled out for your Centaur, SAVE IT FIRST, then it's time to script it. Go to Scripts/Monsters/Misc/Melee and you will see the Centaur Script. Now this is what an unmodified Centaur script will look like. This script is the tope half of the unmodified script.

Code:
using System;
using System.Collections;
using Server.Items;
using Server.Targeting;

namespace Server.Mobiles
{
	[CorpseName( "a centaur corpse" )]
	public class Centaur : BaseCreature
	{
		[Constructable]
		public Centaur() : base( AIType.AI_Melee, FightMode.Agressor, 10, 1, 0.2, 0.4 )
		{
			Name = NameList.RandomName( "centaur" );
			Body = 101;
			BaseSoundID = 679;

Ok well we want to make it so it's ridable. So first we make sure that it's BaseMount, and that it's name is probably filled out.
Code:
[CorpseName( "a Centaur corpse" )]
	public class Centaur : BaseMount
	{
		[Constructable]
		public Centaur() : this( "a ridable Centaur" )
		{
		}
Now we work on this line
Code:
public Centaur( string name ) : base( name, [COLOR="Red"]0x65[/COLOR], [COLOR="Blue"]0x3FEF[/COLOR], AIType.AI_Animal, FightMode.Agressor, 10, 1, 0.2, 0.4 )
The Red number 0x65 is the Bodyvalue of it. You find that by [props. The Blue number is our Tiledata (s) listing number. For each new creature you make the numbers should be different. So the final code should look something like this.



Code:
using System;
using System.Collections;
using Server.Items;
using Server.Targeting;

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

		[Constructable]
		public Centaur( string name ) : base( name, 0x65, 0x3FEF, AIType.AI_Animal, FightMode.Agressor, 10, 1, 0.2, 0.4 )
		{

			Body = 101;
			BaseSoundID = 679;

			SetStr( 202, 300 );
			SetDex( 104, 260 );
			SetInt( 91, 100 );

			SetHits( 130, 172 );

			SetDamage( 13, 24 );

			SetDamageType( ResistanceType.Physical, 100 );

			SetResistance( ResistanceType.Physical, 45, 55 );
			SetResistance( ResistanceType.Fire, 35, 45 );
			SetResistance( ResistanceType.Cold, 25, 35 );
			SetResistance( ResistanceType.Poison, 45, 55 );
			SetResistance( ResistanceType.Energy, 35, 45 );

			SetSkill( SkillName.Anatomy, 95.1, 115.0 );
			SetSkill( SkillName.Archery, 95.1, 100.0 );
			SetSkill( SkillName.MagicResist, 50.3, 80.0 );
			SetSkill( SkillName.Tactics, 90.1, 100.0 );
			SetSkill( SkillName.Wrestling, 95.1, 100.0 );

			Fame = 6500;
			Karma = 0;

			VirtualArmor = 50;

			AddItem( new Bow() );
			PackItem( new Arrow( Utility.RandomMinMax( 80, 90 ) ) ); // OSI it is different: in a sub backpack, this is probably just a limitation of their engine
		}

		public override void GenerateLoot()
		{
			AddLoot( LootPack.Rich );
			AddLoot( LootPack.Average );
			AddLoot( LootPack.Gems );
		}

		public override int Meat{ get{ return 1; } }
		public override int Hides{ get{ return 8; } }
		public override HideType HideType{ get{ return HideType.Spined; } }

		public [COLOR="Red"]Centaur[/COLOR]( 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();

			if ( BaseSoundID == 678 )
				BaseSoundID = 679;
		}
	}
}
Ahh I forgot to add Change the thing at the bottom to reflect your .cs name. It would normally stay the same if your just editing a creature but if you making a creature but adding a new script called like ridablecentaur.cs, make sure everythnig says ridablecentaur including the thing at the bottom.

It is very easy to do this with any thing in UO that is a mobile. Now your wondering how to make it so the mounted creature shows up on your server? Well first of all make sure you replaced your old Centaur script with your new one.

Then you will have to patch the Tiledata.Mul. Use WinRaR, and pack it up. So now you should have a WinRar with the Tieldata.Mul insde it. Now go to your own site, or use a free hosting one and host your WinRar containing the tiledata.mul. I use filelodge.bolt.com. Copy the adress of your hosted Rar file then go to www.UOGateway.com then settings. You'll see about eight spaces for a patch so paste your URL of your hosted RaR'd tiledata into the first one. Should take about 30 minjutes to load up then you should be good to go!

For Local server patches, open your UOG then click "settings" of your shard, then paste it in the first Patch slot. Then do save settings.

I hope you enjoyed this guide and if you need any help don't hesitate to ask. Please PM if there's something not working because I did this in a rush. You can have an example pack of creatures done by me here. http://www.runuo.com/forums/showthread.php?t=68652


EDIT: I've now made a drake, skeledrag, spider, and polar bear patch (just like the original one) but this one is like 10 times smaller. http://www.runuo.com/forums/showthread.php?t=69368&highlight=ridable

Please make sure to give me credit if you make your own animals and use this FAQ =/
 

Vrael

Traveler
when I ride one of this mounts (Centaur), I don't see me on this mount, I see me by foot but running like I'm mounted. What's the problem??
 

tass23

Page
Yeah, there were big changes from 2.0 to 2.1, I'm guessing it's a tiledata problem. I'm not sure how to fix it really. I had to adjust several new mounts that got added to my shard to get them to work as well.
 

mitty

Sorceror
tass23 what did you actually *adjust* to make them work? I'm running latest client 7.0.16.3, latest 2.1 svn- R 719. Do you have to add something to clientside body.def? or mob.type?
 

mallorea

Wanderer
i dont have a site i upload to or a uog cause uog is gone now so how do i get it to be patched with my lan server. do i just put the files in uofolder
 

mallorea

Wanderer
i figured out how to do this finally, but i seem to be riding in the middle of the creatures back, how do i change this, would i have to manually change the .vd file to achieve this, please help. thank you.
 
Top