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 RC1] FS: Animal Taming Systems Gen2

razzles

Wanderer
Memphis.Knox;781509 said:
Hi anyone know where i need to look to change the Display in wild critters so they dont show their max level.


Memphis

In BaseCreature.cs look for this method:
Code:
		public override void AddNameProperties( ObjectPropertyList list )
		{
			base.AddNameProperties( list );
			
			#region Mondain's Legacy
			if ( Backpack is StrongBackpack && Alive && Core.ML )
			{
				if ( TotalWeight == 1 )
					list.Add( 1072788, "{0}", 1 ); // Weight: ~1_WEIGHT~ stone
                else
                	list.Add( 1072789, "{0}", TotalWeight ); // Weight: ~1_WEIGHT~ stones
			}
			#endregion
			#region FS:ATS Edits
			if ( this.Tamable == true && FSATS.EnablePetBreeding == true )
			{
				bool nolevel = false;
				Type typ = this.GetType();
				string nam = typ.Name;

				foreach ( string check in FSATS.NoLevelCreatures )
				{
  					if ( check == nam )
    						nolevel = true;
				}

				if ( nolevel != true )
				{
					if ( this.Female == true )
						list.Add( 1060658, "Gender\tFemale" );
					else
						list.Add( 1060658, "Gender\tMale" );

					[COLOR="Red"]if ( this.Controlled == false )
						list.Add( 1060659, "Max Level\t{0}", this.MaxLevel );[/COLOR]
				}
			}
			#endregion

			if ( Controlled && Commandable )
			{
				if ( Summoned )
					list.Add( 1049646 ); // (summoned)
				else if ( IsBonded )	//Intentional difference (showing ONLY bonded when bonded instead of bonded & tame)
					list.Add( 1049608 ); // (bonded)
				else
					list.Add( 502006 ); // (tame)
			}
		}
The part highlighted in red adds the level, so you can just comment that portion out to not display the level.
 

Memphis.Knox

Sorceror
Thanks Razzles !!! I was testing Bods filled the Bod went back to animal trainer to turn it in he wont accept it. he tells me its not an acceptable bod?
 

Memphis.Knox

Sorceror
Hi i think it must be BaseVendor.cs script ****Woot I fixed the script its working*****

this area:

if ( m_Vendor.SupportsBulkOrders( m_From ) )

Code:
 if ( m_Vendor.SupportsBulkOrders( m_From ) )
				{
					TimeSpan ts = m_Vendor.GetNextBulkOrder( m_From );

					int totalSeconds = (int)ts.TotalSeconds;
					int totalHours = (totalSeconds + 3599) / 3600;
					int totalMinutes = (totalSeconds + 59) / 60;

					if ( ((Core.SE ) ? totalMinutes == 0 : totalHours == 0) )
					{
						m_From.SendLocalizedMessage( 1049038 ); // You can get an order now.

						if ( Core.AOS )
						{
							Item bulkOrder = m_Vendor.CreateBulkOrder( m_From, true );

							if ( bulkOrder is SmallMobileBOD )
								m_From.SendGump( new SmallMobileBODAcceptGump( m_From, (SmallMobileBOD)bulkOrder ) );
							else if ( bulkOrder is LargeMobileBOD )
								m_From.SendGump( new LargeMobileBODAcceptGump( m_From, (LargeMobileBOD)bulkOrder ) );
							else if ( bulkOrder is LargeBOD )

								m_From.SendGump( new LargeBODAcceptGump( m_From, (LargeBOD)bulkOrder ) );
							else if ( bulkOrder is SmallBOD )
								m_From.SendGump( new SmallBODAcceptGump( m_From, (SmallBOD)bulkOrder ) );
						}
					}
					else


Thanks for helping in advance.
 

seanandre

Sorceror
I'm getting these errors:

Errors:
+ Mobiles/Vendors/NPC/AnimalTrainer.cs:
CS0246: Line 53: The type or namespace name 'LargeTamingBOD' could not be fo
und (are you missing a using directive or an assembly reference?)
CS0103: Line 55: The name 'SmallTamingBOD' does not exist in the current con
text
CS0246: Line 63: The type or namespace name 'SmallTamingBOD' could not be fo
und (are you missing a using directive or an assembly reference?)
CS0246: Line 63: The type or namespace name 'LargeTamingBOD' could not be fo
und (are you missing a using directive or an assembly reference?)

Here is my AnimalTrainer.cs:
Code:
using System;
using System.Collections;
using System.Collections.Generic;
using Server;
using Server.ContextMenus;
using Server.Gumps;
using Server.Items;
using Server.Network;
using Server.Targeting;

namespace Server.Mobiles
{
	public class AnimalTrainer : BaseVendor
	{
		private ArrayList m_SBInfos = new ArrayList();
		protected override ArrayList SBInfos{ get { return m_SBInfos; } }

		[Constructable]
		public AnimalTrainer() : base( "the animal trainer" )
		{
			SetSkill( SkillName.AnimalLore, 64.0, 100.0 );
			SetSkill( SkillName.AnimalTaming, 90.0, 100.0 );
			SetSkill( SkillName.Veterinary, 65.0, 88.0 );
		}

		public override void InitSBInfo()
		{
			m_SBInfos.Add( new SBAnimalTrainer() );
		}

		public override VendorShoeType ShoeType
		{
			get{ return Female ? VendorShoeType.ThighBoots : VendorShoeType.Boots; }
		}

		#region Bulk Orders
		public override Item CreateBulkOrder( Mobile from, bool fromContextMenu )
		{
			PlayerMobile pm = from as PlayerMobile;

			if ( pm != null && pm.NextTamingBulkOrder == TimeSpan.Zero && (fromContextMenu || 0.2 > Utility.RandomDouble()) )
			{
				double theirSkill = pm.Skills[SkillName.AnimalTaming].Base;

				if ( theirSkill >= 70.1 )
					pm.NextTamingBulkOrder = TimeSpan.FromHours( 2.0 );
				else if ( theirSkill >= 50.1 )
					pm.NextTamingBulkOrder = TimeSpan.FromHours( 2.0 );
				else
					pm.NextTamingBulkOrder = TimeSpan.FromMinutes( 30.0 );

				if ( theirSkill >= 70.1 && ((theirSkill - 40.0) / 300.0) > Utility.RandomDouble() )
					return new LargeTamingBOD();

				return SmallTamingBOD.CreateRandomFor( from );
			}

			return null;
		}

		public override bool IsValidBulkOrder( Item item )
		{
			return ( item is SmallTamingBOD || item is LargeTamingBOD );
		}

		public override bool SupportsBulkOrders( Mobile from )
		{
			return ( from is PlayerMobile && from.Skills[SkillName.AnimalTaming].Base > 0 && FSATS.EnableTamingBODs == true );
		}

		public override TimeSpan GetNextBulkOrder( Mobile from )
		{
			if ( from is PlayerMobile )
				return ((PlayerMobile)from).NextTamingBulkOrder;

			return TimeSpan.Zero;
		}
		#endregion

		public override int GetShoeHue()
		{
			return 0;
		}

		public override void InitOutfit()
		{
			base.InitOutfit();

			AddItem( Utility.RandomBool() ? (Item)new QuarterStaff() : (Item)new ShepherdsCrook() );
		}

		private class StableEntry : ContextMenuEntry
		{
			private AnimalTrainer m_Trainer;
			private Mobile m_From;

			public StableEntry( AnimalTrainer trainer, Mobile from ) : base( 6126, 12 )
			{
				m_Trainer = trainer;
				m_From = from;
			}

			public override void OnClick()
			{
				m_Trainer.BeginStable( m_From );
			}
		}

		private class ClaimListGump : Gump
		{
			private AnimalTrainer m_Trainer;
			private Mobile m_From;
			private List<BaseCreature> m_List;

			public ClaimListGump( AnimalTrainer trainer, Mobile from, List<BaseCreature> list ) : base( 50, 50 )
			{
				m_Trainer = trainer;
				m_From = from;
				m_List = list;

				from.CloseGump( typeof( ClaimListGump ) );

				AddPage( 0 );

				AddBackground( 0, 0, 325, 50 + (list.Count * 20), 9250 );
				AddAlphaRegion( 5, 5, 315, 40 + (list.Count * 20) );

				AddHtml( 15, 15, 275, 20, "<BASEFONT COLOR=#FFFFFF>Select a pet to retrieve from the stables:</BASEFONT>", false, false );

				for ( int i = 0; i < list.Count; ++i )
				{
					BaseCreature pet = list[i];

					if ( pet == null || pet.Deleted )
						continue;

					AddButton( 15, 39 + (i * 20), 10006, 10006, i + 1, GumpButtonType.Reply, 0 );
					AddHtml( 32, 35 + (i * 20), 275, 18, String.Format( "<BASEFONT COLOR=#C0C0EE>{0}</BASEFONT>", pet.Name ), false, false );
				}
			}

			public override void OnResponse( NetState sender, RelayInfo info )
			{
				int index = info.ButtonID - 1;

				if ( index >= 0 && index < m_List.Count )
					m_Trainer.EndClaimList( m_From, m_List[index] );
			}
		}

		private class ClaimAllEntry : ContextMenuEntry
		{
			private AnimalTrainer m_Trainer;
			private Mobile m_From;

			public ClaimAllEntry( AnimalTrainer trainer, Mobile from ) : base( 6127, 12 )
			{
				m_Trainer = trainer;
				m_From = from;
			}

			public override void OnClick()
			{
				m_Trainer.Claim( m_From );
			}
		}

		public override void AddCustomContextEntries( Mobile from, List<ContextMenuEntry> list )
		{
			if ( from.Alive )
			{
				list.Add( new StableEntry( this, from ) );

				if ( from.Stabled.Count > 0 )
					list.Add( new ClaimAllEntry( this, from ) );
			}

			base.AddCustomContextEntries( from, list );
		}

		public static int GetMaxStabled( Mobile from )
		{
			double taming = from.Skills[SkillName.AnimalTaming].Value;
			double anlore = from.Skills[SkillName.AnimalLore].Value;
			double vetern = from.Skills[SkillName.Veterinary].Value;
			double sklsum = taming + anlore + vetern;

			int max;

			if ( sklsum >= 240.0 )
				max = 5;
			else if ( sklsum >= 200.0 )
				max = 4;
			else if ( sklsum >= 160.0 )
				max = 3;
			else
				max = 2;

			if ( taming >= 100.0 )
				max += (int)((taming - 90.0) / 10);

			if ( anlore >= 100.0 )
				max += (int)((anlore - 90.0) / 10);

			if ( vetern >= 100.0 )
				max += (int)((vetern - 90.0) / 10);

			return max;
		}

		private class StableTarget : Target
		{
			private AnimalTrainer m_Trainer;

			public StableTarget( AnimalTrainer trainer ) : base( 12, false, TargetFlags.None )
			{
				m_Trainer = trainer;
			}

			protected override void OnTarget( Mobile from, object targeted )
			{
				if ( targeted is BaseCreature )
					m_Trainer.EndStable( from, (BaseCreature)targeted );
				else if ( targeted == from )
					m_Trainer.SayTo( from, 502672 ); // HA HA HA! Sorry, I am not an inn.
				else
					m_Trainer.SayTo( from, 1048053 ); // You can't stable that!
			}
		}

		public void BeginClaimList( Mobile from )
		{
			if ( Deleted || !from.CheckAlive() )
				return;

			List<BaseCreature> list = new List<BaseCreature>();

			for ( int i = 0; i < from.Stabled.Count; ++i )
			{
				BaseCreature pet = from.Stabled[i] as BaseCreature;

				if ( pet == null || pet.Deleted )
				{
					pet.IsStabled = false;
					from.Stabled.RemoveAt( i );
					--i;
					continue;
				}

				list.Add( pet );
			}

			if ( list.Count > 0 )
				from.SendGump( new ClaimListGump( this, from, list ) );
			else
				SayTo( from, 502671 ); // But I have no animals stabled with me at the moment!
		}

		public void EndClaimList( Mobile from, BaseCreature pet )
		{
			if ( pet == null || pet.Deleted || from.Map != this.Map || !from.InRange( this, 14 ) || !from.Stabled.Contains( pet ) || !from.CheckAlive() )
				return;

			if ( (from.Followers + pet.ControlSlots) <= from.FollowersMax )
			{
				pet.SetControlMaster( from );

				if ( pet.Summoned )
					pet.SummonMaster = from;

				pet.ControlTarget = from;
				pet.ControlOrder = OrderType.Follow;

				pet.MoveToWorld( from.Location, from.Map );

				pet.IsStabled = false;
				from.Stabled.Remove( pet );

				SayTo( from, 1042559 ); // Here you go... and good day to you!
			}
			else
			{
				SayTo( from, 1049612, pet.Name ); // ~1_NAME~ remained in the stables because you have too many followers.
			}
		}

		public void BeginStable( Mobile from )
		{
			if ( Deleted || !from.CheckAlive() )
				return;

			if ( from.Stabled.Count >= GetMaxStabled( from ) )
			{
				SayTo( from, 1042565 ); // You have too many pets in the stables!
			}
			else
			{
				SayTo( from, 1042558 ); /* I charge 30 gold per pet for a real week's stable time.
										 * I will withdraw it from thy bank account.
										 * Which animal wouldst thou like to stable here?
										 */

				from.Target = new StableTarget( this );
			}
		}

		public void EndStable( Mobile from, BaseCreature pet )
		{
			if ( Deleted || !from.CheckAlive() )
				return;

			if ( !pet.Controlled || pet.ControlMaster != from )
			{
				SayTo( from, 1042562 ); // You do not own that pet!
			}
			else if ( pet.IsDeadPet )
			{
				SayTo( from, 1049668 ); // Living pets only, please.
			}
			else if ( pet.Summoned )
			{
				SayTo( from, 502673 ); // I can not stable summoned creatures.
			}
			else if ( pet.Body.IsHuman )
			{
				SayTo( from, 502672 ); // HA HA HA! Sorry, I am not an inn.
			}
			else if ( (pet is PackLlama || pet is PackHorse || pet is Beetle) && (pet.Backpack != null && pet.Backpack.Items.Count > 0) )
			{
				SayTo( from, 1042563 ); // You need to unload your pet.
			}
			else if ( pet.Combatant != null && pet.InRange( pet.Combatant, 12 ) && pet.Map == pet.Combatant.Map )
			{
				SayTo( from, 1042564 ); // I'm sorry.  Your pet seems to be busy.
			}
			else if ( from.Stabled.Count >= GetMaxStabled( from ) )
			{
				SayTo( from, 1042565 ); // You have too many pets in the stables!
			}
			else
			{
				Container bank = from.FindBankNoCreate();

				if ( bank != null && bank.ConsumeTotal( typeof( Gold ), 30 ) )
				{
					pet.ControlTarget = null;
					pet.ControlOrder = OrderType.Stay;
					pet.Internalize();

					pet.SetControlMaster( null );
					pet.SummonMaster = null;

					pet.IsStabled = true;

					if ( Core.SE )	
						pet.Loyalty = BaseCreature.MaxLoyalty; // Wonderfully happy

					from.Stabled.Add( pet );

					SayTo( from, 502679 ); // Very well, thy pet is stabled. Thou mayst recover it by saying 'claim' to me. In one real world week, I shall sell it off if it is not claimed!
				}
				else
				{
					SayTo( from, 502677 ); // But thou hast not the funds in thy bank account!
				}
			}
		}

		public void Claim( Mobile from )
		{
			if ( Deleted || !from.CheckAlive() )
				return;

			bool claimed = false;
			int stabled = 0;

			for ( int i = 0; i < from.Stabled.Count; ++i )
			{
				BaseCreature pet = from.Stabled[i] as BaseCreature;

				if ( pet == null || pet.Deleted )
				{
					pet.IsStabled = false;
					from.Stabled.RemoveAt( i );
					--i;
					continue;
				}

				++stabled;

				if ( (from.Followers + pet.ControlSlots) <= from.FollowersMax )
				{
					pet.SetControlMaster( from );

					if ( pet.Summoned )
						pet.SummonMaster = from;

					pet.ControlTarget = from;
					pet.ControlOrder = OrderType.Follow;

					pet.MoveToWorld( from.Location, from.Map );

					pet.IsStabled = false;

					if ( Core.SE )
						pet.Loyalty = BaseCreature.MaxLoyalty; // Wonderfully Happy

					from.Stabled.RemoveAt( i );
					--i;

					claimed = true;
				}
				else
				{
					SayTo( from, 1049612, pet.Name ); // ~1_NAME~ remained in the stables because you have too many followers.
				}
			}

			if ( claimed )
				SayTo( from, 1042559 ); // Here you go... and good day to you!
			else if ( stabled == 0 )
				SayTo( from, 502671 ); // But I have no animals stabled with me at the moment!
		}

		public override bool HandlesOnSpeech( Mobile from )
		{
			return true;
		}

		public override void OnSpeech( SpeechEventArgs e )
		{
			if ( !e.Handled && e.HasKeyword( 0x0008 ) )
			{
				e.Handled = true;
				BeginStable( e.Mobile );
			}
			else if ( !e.Handled && e.HasKeyword( 0x0009 ) )
			{
				e.Handled = true;

				if ( !Insensitive.Equals( e.Speech, "claim" ) )
					BeginClaimList( e.Mobile );
				else
					Claim( e.Mobile );
			}
			else
			{
				base.OnSpeech( e );
			}
		}

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

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

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

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

			int version = reader.ReadInt();
		}
	}
}
 

greywolf79

Sorceror
The problem is not with the animal trainer script... You did not place the bod folder as it said to in the directions, you cannot just place it anywhere - re-read the first post and follow the directions and place the bod folder where it goes. That should fix your bod errors.

GreyWolf.
 

seanandre

Sorceror
Yep.

3. Take the "Taming" folder and place it in "Data/Bulk Orders" of your server

That's exactly where I have it, and it still gives me that error.

Sean
 

greywolf79

Sorceror
Add this line:

Code:
using Server.Engines.BulkOrders; // added for breeding pack

Make it so that the top of the file looks like this:

Code:
using System;
using System.Collections;
using System.Collections.Generic;
using Server;
using Server.ContextMenus;
using Server.Gumps;
using Server.Items;
using Server.Network;
using Server.Targeting;
using Server.Engines.BulkOrders; // added for breeding pack

That should fix the issue. Your missing this line so it does not access the files from the bod folder...

GreyWolf.
 

seanandre

Sorceror
Thank you. It's working now. That text file I read on what to add and change in the distros that I used, and either I missed the part where it said to add using Server.Engines.BulkOrders; // added for breeding pack to the file, or it must not have been in there.

I am no good with WinMerge otherwise I would have used that. Whenever I load 2 files into WinMerge and compare them, it's for some strange reason always asking me to change stuff that doesn't need to be changed.

Sean
 

greywolf79

Sorceror
I am the same way... I do all my mods in c# 2008 express from microsoft's visual studio package. Every time I use winmerge it never highlights the parts I need to see... I am just glad you were able to get it running. It is a good package and I enjoy using it.

GreyWolf.
 

test444

Wanderer
its seems its impossible merge distro files of this pack with ML server version, because for example basecreature.cs you will find difference and you have choice either keep special code from this pack or special code from the ML, both are needed i guess for correct working of server.. so hard to say
 

greywolf79

Sorceror
test444;781730 said:
its seems its impossible merge distro files of this pack with ML server version, because for example basecreature.cs you will find difference and you have choice either keep special code from this pack or special code from the ML, both are needed i guess for correct working of server.. so hard to say

Then try to add it manually like described in the text file posted back a few pages (somewhere in the 13-15 area). It shows you what to add and roughly where to put it.

GreyWolf.
 

seanandre

Sorceror
It's on page 15. Just be careful with it, cause there's atleast 1 error in it. It doesn't say anything about puting in using Server.Engines.BulkOrders; // added for breeding pack at the beginning of AnimalTrainer.cs like greywolf showed me a couple of posts above.

I've gotten all the errors worked out, and everything is working fine, except for the fact that I completed a small bulk order deed for 20 Rideable Llamas, and when I tried to drop it onto the Animal Trainer the same way you drop BOD's on vendors, he keeps saying "That is not an acceptable bod".

And for some reason when I click on an Animal Breeder to buy items from them, or say "Vendor Buy" nothing happens.

And now, when I woke up this morning and restarted my server, I get the following error:

RunUO - [www.runuo.com] Version 2.0, Build 2959.20979
Core: Running on .NET Framework Version 2.0.50727
Scripts: Compiling C# scripts...done (cached)
Scripts: Compiling VB.NET scripts...no files found.
Scripts: Verifying...done (2845 items, 705 mobiles)
ACC Registered: Server.ACC.CM.CentralMemory
Regions: Loading...done
World: Loading...An error was encountered while loading a saved object
- Type: Server.Mobiles.PlayerMobile
- Serial: 0x00000001
Delete the object? (y/n)

It MUST be something to do with this system, because it didn't start happening until after I installed it.

Any ideas?

Sean
 

nevar2006

Sorceror
i am getting this error

Code:
RunUO - [www.runuo.com] Version 2.0, Build 2959.20979
Core: Running on .NET Framework Version 2.0.50727
Core: Running with arguments: -debug
Scripts: Compiling C# scripts...failed (1 errors, 0 warnings)
Errors:
 + Mobiles/Vendors/GenericBuy.cs:
    CS0535: Line 9: 'Server.Mobiles.GenericBuyInfo' does not implement interface
 member 'Server.IBuyItemInfo.GetObject()'
Scripts: One or more scripts failed to compile or no script files were found.
 - Press return to exit, or R to try again.


this is a brand new install, i have runuo 2.0 rc2, and neruns distro added and thats all. i have moved the taming folder to the data/bod folder replaced the distro files.
 

test444

Wanderer
hmmm thx for repply sean and wolf, it will be pain i guess, but i try that... oh you were right... thx to johabius that he uploaded the installtaion txt file... i followed instructions and edited manually http://www.runuo.com/forums/custom-script-releases/71212-runuo-2-0-rc1-fs-animal-taming-systems-gen2-14.html#post746706


thats fuckin, i was using some shrink system and i tried add this system when server starts there were messages that some shrink features are missing because i deleted them because of duplicity and it was asking about delete object i always choose yes, yes, yes, exeption is fatal, i run server again, and still in cycle..... then it ask about some mobile, delete all objects of thta type, and you have empty shard... really cool. it seems possible install only on fresh shard



wasted time with manual installation good
 

greywolf79

Sorceror
I am not sure it would work on an established shard because it involves massive changes to distro files, but try saving your saves to somewhere else to keep them safe then try loading it on your shard and see if it runs without a saves file to load from. Shrink bag and shrink stone are not in this system, so it makes sense those would need to be deleted... For the potions, I would guess there was something wrong when you replaced the files involving the potion section - but could not really be sure, I never had another shrink system in place.

GreyWolf.
 

test444

Wanderer
greywolf79;781812 said:
I am not sure it would work on an established shard because it involves massive changes to distro files, but try saving your saves to somewhere else to keep them safe then try loading it on your shard and see if it runs without a saves file to load from. Shrink bag and shrink stone are not in this system, so it makes sense those would need to be deleted... For the potions, I would guess there was something wrong when you replaced the files involving the potion section - but could not really be sure, I never had another shrink system in place.

GreyWolf.

hmm i have no problems with deleting shring bank and shrink stone from shard, but problem is, when you press yes delete, on the end there it wants delete some mobile (why???) with some serial, and if you repeat starting the shard the serial changes, and btw still questions about deleting shrinkg bag etc... and if you say yes, delete mobile, delete all types of that, it will delete all accounts, and almost everything on shard.
 

seanandre

Sorceror
I'm having the same problem with the PlayerMobile thing. Screw it, I'm dumping this system. Thanks for trying Greywolf.

Sean
 

greywolf79

Sorceror
Have you tried to do a search for any scripts that have "shrinkbag" in their scripts? Could there have been a creature/NPC that had it either on them as say loot or dropped it as loot or sold/purchased? If so this could be the problem. One reason to delete the saves folder though is so you know it is not that it is because it is in someones possesion/bank etc.

GreyWolf.
 

seanandre

Sorceror
I'm at it again, couldn't leave it alone.

I seem to have gotten it working on a fresh install of RunUo 2.0 RC2 correcting for minor errors in the text file that tells you what to edit. Sufficive to say it doesn't work when you simply copy the distro files to their perspective folders, but the text file works if you know what you're doing.

Now all I need to do is copy the other stuff from my shard over to the new one and see about merging everything so it'll work right.

If worse comes to worse, we may just wipe the player accounts and have everyone recreate them and give them what they've lost.

Thanks for all your help GreyWolf.

Sean
 

test444

Wanderer
sean how it looks with your shard? :D i still think about this distro too, i will need wipe shard too i guess.

greywolf but problem is, it will delete for example walls of house too... thats ilogicall.

anyway i have big problem, i deleted all prompted items, but still, when i restart shard, it wants delete me (my character mobile) because there is error with loading of this mobile on server start :( something is wrong.

edit:

OK I RESOLVED WHATS FOR PROBLEM!

the problem was in file PlayerMobile.cs Copy to Scripts\Mobiles

if you will read the installation.txt mentioned few post back, look at 34 a) and 34 b) point there si this:

34a.)In PlayerMobile.cs Find the following line(s):
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();

switch ( version )
{

34b.)In PlayerMobile.cs Add just after these line(s):
case 27:
{
m_TamingBOBFilter = new Engines.BulkOrders.TamingBOBFilter( reader );
goto case 26;
}
case 26:
{
m_Bioenginer = reader.ReadBool();
NextTamingBulkOrder = reader.ReadTimeSpan();
goto case 25;
}

but in my original file, there was something like this:

case 26:
{
#region Mondain's Legacy
m_Quests = QuestReader.Quests( reader, this );
m_Chains = QuestReader.Chains( reader );

m_Collections = new Dictionary<Collection,int>();
m_CollectionTitles = new List<object>();

for ( int i = reader.ReadInt(); i > 0; i -- )
m_Collections.Add( (Collection) reader.ReadInt(), reader.ReadInt() );

for ( int i = reader.ReadInt(); i > 0; i -- )
m_CollectionTitles.Add( QuestReader.Object( reader ) );

m_SelectedTitle = reader.ReadInt();
m_Peaced = reader.ReadDateTime();
#endregion

goto case 25;
}

the biggest mistake you can do, is this what i acutally did:

case 27:
{
m_TamingBOBFilter = new Engines.BulkOrders.TamingBOBFilter( reader );
goto case 26;
}

case 26:
{
#region Mondain's Legacy
m_Quests = QuestReader.Quests( reader, this );
m_Chains = QuestReader.Chains( reader );

m_Collections = new Dictionary<Collection,int>();
m_CollectionTitles = new List<object>();

for ( int i = reader.ReadInt(); i > 0; i -- )
m_Collections.Add( (Collection) reader.ReadInt(), reader.ReadInt() );

for ( int i = reader.ReadInt(); i > 0; i -- )
m_CollectionTitles.Add( QuestReader.Object( reader ) );

m_SelectedTitle = reader.ReadInt();
m_Peaced = reader.ReadDateTime();
#endregion

m_Bioenginer = reader.ReadBool();
NextTamingBulkOrder = reader.ReadTimeSpan();


goto case 25;
}

the correct solution is of course this:

case 28:
{
m_TamingBOBFilter = new Engines.BulkOrders.TamingBOBFilter( reader );
goto case 27;
}
case 27:
{
m_Bioenginer = reader.ReadBool();
NextTamingBulkOrder = reader.ReadTimeSpan();
goto case 26;
}

case 26:
{
#region Mondain's Legacy
m_Quests = QuestReader.Quests( reader, this );
m_Chains = QuestReader.Chains( reader );

m_Collections = new Dictionary<Collection,int>();
m_CollectionTitles = new List<object>();

for ( int i = reader.ReadInt(); i > 0; i -- )
m_Collections.Add( (Collection) reader.ReadInt(), reader.ReadInt() );

for ( int i = reader.ReadInt(); i > 0; i -- )
m_CollectionTitles.Add( QuestReader.Object( reader ) );

m_SelectedTitle = reader.ReadInt();
m_Peaced = reader.ReadDateTime();
#endregion
goto case 25;
}

and dont forget make this too: (36 a, 36 b)

instead of

writer.Write( (int) 27 ); // version

of course this

writer.Write( (int) 28 ); // version

thats how make it with SVN and ML.

btw thx graywolf too, for help.

this is excellent package...............
 
Top