Go Back   RunUO - Ultima Online Emulation > RunUO > FAQ Forum

FAQ Forum A place to find answers to the most frequently asked questions, and a place to post said answers. Do NOT use this forum to ask questions.

Reply
 
Thread Tools Display Modes
Old 05-22-2006, 12:53 AM   #1 (permalink)
Forum Novice
 
Join Date: Oct 2004
Location: Canada
Posts: 174
Default 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 Custom Artwork How-To 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, 0x65, 0x3FEF, 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 Centaur( 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. Make any Creature Ridable.


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. (Re-Post)Drake,Polar Bear,and Skeletal Dragon mounts(1 MB Patch)

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

Last edited by yuri99; 07-30-2006 at 09:49 PM.
yuri99 is offline   Reply With Quote
Reply

Bookmarks


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off



Powered by vBulletin® Version 3.7.0
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0 RC5