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!

Complete Messaging System

Fury

Wanderer
You talking about my old quests? If not im assuming you loaded onece and it ran fine when you went to restart you had issues.. if thats the case you prolly have something out of order or missing in your deserialize.. if you want just post the serialize/deserialize of the playermobile
 

Bane

Wanderer
Fury said:
You talking about my old quests? If not im assuming you loaded onece and it ran fine when you went to restart you had issues.. if thats the case you prolly have something out of order or missing in your deserialize.. if you want just post the serialize/deserialize of the playermobile

I updated my post, tried to make it more clear.

Here is my current searialize/deserialize., The only change I have ever made to playermobile is adding the messaging system.

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

switch ( version )
{
case 18: // changed how DoneQuests is serialized
case 17:
{
m_Quest = QuestSerializer.DeserializeQuest( reader );

if ( m_Quest != null )
m_Quest.From = this;

int count = reader.ReadEncodedInt();

if ( count > 0 )
{
m_DoneQuests = new ArrayList();

for ( int i = 0; i < count; ++i )
{
Type questType = QuestSerializer.ReadType( QuestSystem.QuestTypes, reader );
DateTime restartTime;

if ( version < 18 )
restartTime = DateTime.MaxValue;
else
restartTime = reader.ReadDateTime();

m_DoneQuests.Add( new QuestRestartInfo( questType, restartTime ) );
}
}

m_Profession = reader.ReadEncodedInt();
goto case 16;
}

case 16:
{

m_LastCompassionLoss = reader.ReadDeltaTime();
goto case 15;
}
case 15:
{
Onshow = reader.ReadBool();
goto case 14;
}
case 14:
{
m_CompassionGains = reader.ReadEncodedInt();

if ( m_CompassionGains > 0 )
m_NextCompassionDay = reader.ReadDeltaTime();

goto case 13;
}
case 13: // just removed m_PayedInsurance list
case 12:
{
m_BOBFilter = new Engines.BulkOrders.BOBFilter( reader );
goto case 11;
}
case 11:
{
if ( version < 13 )
{
ArrayList payed = reader.ReadItemList();

for ( int i = 0; i < payed.Count; ++i )
((Item)payed).PayedInsurance = true;
}

goto case 10;
}
case 10:
{
if ( reader.ReadBool() )
{
m_HairModID = reader.ReadInt();
m_HairModHue = reader.ReadInt();
m_BeardModID = reader.ReadInt();
m_BeardModHue = reader.ReadInt();

// We cannot call SetHairMods( -1, -1 ) here because the items have not yet loaded
Timer.DelayCall( TimeSpan.Zero, new TimerCallback( RevertHair ) );
}

goto case 9;
}
case 9:
{
SavagePaintExpiration = reader.ReadTimeSpan();

if ( SavagePaintExpiration > TimeSpan.Zero )
{
BodyMod = ( Female ? 184 : 183 );
HueMod = 0;
}

goto case 8;
}
case 8:
{
m_NpcGuild = (NpcGuild)reader.ReadInt();
m_NpcGuildJoinTime = reader.ReadDateTime();
m_NpcGuildGameTime = reader.ReadTimeSpan();
goto case 7;
}
case 7:
{
m_PermaFlags = reader.ReadMobileList();
goto case 6;
}
case 6:
{
NextTailorBulkOrder = reader.ReadTimeSpan();
goto case 5;
}
case 5:
{
NextSmithBulkOrder = reader.ReadTimeSpan();
goto case 4;
}
case 4:
{
m_LastJusticeLoss = reader.ReadDeltaTime();
m_JusticeProtectors = reader.ReadMobileList();
goto case 3;
}
case 3:
{
m_LastSacrificeGain = reader.ReadDeltaTime();
m_LastSacrificeLoss = reader.ReadDeltaTime();
m_AvailableResurrects = reader.ReadInt();
goto case 2;
}
case 2:
{
m_Flags = (PlayerFlag)reader.ReadInt();
goto case 1;
}
case 1:
{
m_LongTermElapse = reader.ReadTimeSpan();
m_ShortTermElapse = reader.ReadTimeSpan();
m_GameTime = reader.ReadTimeSpan();
goto case 0;
}
case 0:
{
break;
}
}

if ( m_IgnoreList == null )
m_IgnoreList = new ArrayList();

if ( m_PermaFlags == null )
m_PermaFlags = new ArrayList();

if ( m_JusticeProtectors == null )
m_JusticeProtectors = new ArrayList();

if ( m_BOBFilter == null )
m_BOBFilter = new Engines.BulkOrders.BOBFilter();

ArrayList list = this.Stabled;

for ( int i = 0; i < list.Count; ++i )
{
BaseCreature bc = list as BaseCreature;

if ( bc != null )
bc.IsStabled = true;
}
}

public override void Serialize( GenericWriter writer )
{
//cleanup our anti-macro table
foreach ( Hashtable t in m_AntiMacroTable.Values )
{
ArrayList remove = new ArrayList();
foreach ( CountAndTimeStamp time in t.Values )
{
if ( time.TimeStamp + SkillCheck.AntiMacroExpire <= DateTime.Now )
remove.Add( time );
}

for (int i=0;i<remove.Count;++i)
t.Remove( remove );
}

//decay our kills
if ( m_ShortTermElapse < this.GameTime )
{
m_ShortTermElapse += TimeSpan.FromHours( 8 );
if ( ShortTermMurders > 0 )
--ShortTermMurders;
}

if ( m_LongTermElapse < this.GameTime )
{
m_LongTermElapse += TimeSpan.FromHours( 40 );
if ( Kills > 0 )
--Kills;
}

base.Serialize( writer );

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



QuestSerializer.Serialize( m_Quest, writer );

if ( m_DoneQuests == null )
{
writer.WriteEncodedInt( (int) 0 );
}
else
{
writer.WriteEncodedInt( (int) m_DoneQuests.Count );

for ( int i = 0; i < m_DoneQuests.Count; ++i )
{
QuestRestartInfo restartInfo = (QuestRestartInfo)m_DoneQuests;

QuestSerializer.Write( (Type) restartInfo.QuestType, QuestSystem.QuestTypes, writer );
writer.Write( (DateTime) restartInfo.RestartTime );
}
}

writer.WriteEncodedInt( (int) m_Profession );

writer.Write( (bool) Onshow );
writer.WriteDeltaTime( m_LastCompassionLoss );



writer.WriteEncodedInt( m_CompassionGains );

if ( m_CompassionGains > 0 )
writer.WriteDeltaTime( m_NextCompassionDay );

m_BOBFilter.Serialize( writer );

bool useMods = ( m_HairModID != -1 || m_BeardModID != -1 );

writer.Write( useMods );

if ( useMods )
{
writer.Write( (int) m_HairModID );
writer.Write( (int) m_HairModHue );
writer.Write( (int) m_BeardModID );
writer.Write( (int) m_BeardModHue );
}

writer.Write( SavagePaintExpiration );

writer.Write( (int) m_NpcGuild );
writer.Write( (DateTime) m_NpcGuildJoinTime );
writer.Write( (TimeSpan) m_NpcGuildGameTime );

writer.WriteMobileList( m_PermaFlags, true );

writer.Write( NextTailorBulkOrder );

writer.Write( NextSmithBulkOrder );

writer.WriteDeltaTime( m_LastJusticeLoss );
writer.WriteMobileList( m_JusticeProtectors, true );

writer.WriteDeltaTime( m_LastSacrificeGain );
writer.WriteDeltaTime( m_LastSacrificeLoss );
writer.Write( m_AvailableResurrects );

writer.Write( (int) m_Flags );

writer.Write( m_LongTermElapse );
writer.Write( m_ShortTermElapse );
writer.Write( this.GameTime );
}

Thanx for taking a look, this has been running for a few weeks now, and I did have to carry my players foreward from 36.
 

Fury

Wanderer
out of order


serialize as you have it

writer.WriteEncodedInt( (int) m_Profession );
writer.Write( (bool) Onshow );
writer.WriteDeltaTime( m_LastCompassionLoss );
writer.WriteEncodedInt( m_CompassionGains );

deserialize as you have it

case 16:
{
m_LastCompassionLoss = reader.ReadDeltaTime();
goto case 15;
}

case 15:
{
Onshow = reader.ReadBool();
goto case 14;
}

case 14:
{
m_CompassionGains = reader.ReadEncodedInt();
if ( m_CompassionGains > 0 )
m_NextCompassionDay = reader.ReadDeltaTime();
goto case 13;
}


Change your deserialize to look like this and it should be fine.. you are trying to load in a different order than you saved.

case 16:
{
Onshow = reader.ReadBool();
goto case 14;
}

case 15:
{

m_LastCompassionLoss = reader.ReadDeltaTime();
goto case 15;
}

case 14:
{
m_CompassionGains = reader.ReadEncodedInt();
if ( m_CompassionGains > 0 )
m_NextCompassionDay = reader.ReadDeltaTime();
goto case 13;
}
 

Bane

Wanderer
It did not fix it but did give me a new profound appreciation for the playermobile.cs fiel.

The three day old save did have to be used as I could load it, better then a player wipe. I was able to load / change write / and save. Then remove the message system and return to the distro player mobile and all is good.

Except I lost your message system, this is a great script so it is a bit of a bummer.

Thanks for the info you provided as it did allow me to make a great recovery.
 

Fury

Wanderer
If you were using a basic playermobile why was the msg save in middle of the ser/des? when you add to the playermobile you need a new case at the top.. for instance runuo 1.0 playermobile ends at case 18 .... if you add to it you want to make a case 19.. not just add somewhere in the middle.

I will work with ya, if you cant get it pm me... there are alternatives to saving.. instead you can add to login method so players login visible and staff logs in invisible.. and you dont need to save at all.
 

Bane

Wanderer
Fury said:
If you were using a basic playermobile why was the msg save in middle of the ser/des? when you add to the playermobile you need a new case at the top.. for instance runuo 1.0 playermobile ends at case 18 .... if you add to it you want to make a case 19.. not just add somewhere in the middle.

I will work with ya, if you cant get it pm me... there are alternatives to saving.. instead you can add to login method so players login visible and staff logs in invisible.. and you dont need to save at all.


I brought it in from 36, so i had to match cases. I realize that if i re add it i will need to add it to the end of the case. Something which i do not believe i will be doing again.

I am going to research the making of a dovplayermobile for any future playermobile changes. If i decide to go down that road again.

Once again thanks your help allowed me to get a better understanding of the process.
 

Bane

Wanderer
Fury said:
I will work with ya, if you cant get it pm me... there are alternatives to saving.. instead you can add to login method so players login visible and staff logs in invisible.. and you dont need to save at all.


Are you saying I may be able to use the system without doing a playermobile mod, that would be awsome if it is the case. Any info you could give me would be great.

I am a fairly strong c programmer, I just don't have a great understanding of the way runuo impliments some of its classes especially concerning serialize and deserialize.

I am stable now and am fortionate to have a great player base which understands ^%it happens. I am running a distro pm and it seems to be working well. Of course I am yet to add the quests. ( Holds Breath )
 

Fury

Wanderer
Heres a repost from page 3... you can use this method rather than ser/des of OnShow.

Code:
	PlayerMobile pm = from as PlayerMobile;

	if ( pm.m_IgnoreList == null ) 
		pm.m_IgnoreList = new ArrayList();

	if ( pm.AccessLevel == AccessLevel.Player )
		pm.Onshow = true;
	else
		pm.Onshow = false;

all that should be in the onlogin method in playermobile so it looks like this..

Code:
		private static void OnLogin( LoginEventArgs e )
		{
			Mobile from = e.Mobile;

			PlayerMobile pm = from as PlayerMobile;

			if ( pm.m_IgnoreList == null ) 
				pm.m_IgnoreList = new ArrayList();

			if ( pm.AccessLevel == AccessLevel.Player )
				pm.Onshow = true;
			else
				pm.Onshow = false;

			SacrificeVirtue.CheckAtrophy( from );
			JusticeVirtue.CheckAtrophy( from );
			CompassionVirtue.CheckAtrophy( from );

			if ( AccountHandler.LockdownLevel > AccessLevel.Player )
			{
				string notice;

				Accounting.Account acct = from.Account as Accounting.Account;

				if ( acct == null || !acct.HasAccess( from.NetState ) )
				{
					if ( from.AccessLevel == AccessLevel.Player )
						notice = "The server is currently under lockdown. No players are allowed to log in at this time.";
					else
						notice = "The server is currently under lockdown. You do not have sufficient access level to connect.";

					Timer.DelayCall( TimeSpan.FromSeconds( 1.0 ), new TimerStateCallback( Disconnect ), from );
				}
				else if ( from.AccessLevel == AccessLevel.Administrator )
				{
					notice = "The server is currently under lockdown. As you are an administrator, you may change this from the [Admin gump.";
				}
				else
				{
					notice = "The server is currently under lockdown. You have sufficient access level to connect.";
				}

				from.SendGump( new NoticeGump( 1060637, 30720, notice, 0xFFC000, 300, 140, null, null ) );
			}
		}

If you do this you shouldnt need to serialize anything really.
 

SonOfANut

Sorceror
I get this fun littler error that everyone else seems to be getting.

an error has encountered while loading a saved object

Type: Server.Mobiles.PlayerMobile
Serial: 0x000000022

Delete this object? (y/n)QUOTE]

You guys say it is the serilaization and stuff...but im pretty sure its all right =\

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

			switch ( version )
			{
				case 18: // changed how DoneQuests is serialized
				case 17:
				{
					m_Quest = QuestSerializer.DeserializeQuest( reader );

					if ( m_Quest != null )
						m_Quest.From = this;

					int count = reader.ReadEncodedInt();

					if ( count > 0 )
					{
						m_DoneQuests = new ArrayList();

						for ( int i = 0; i < count; ++i )
						{
							Type questType = QuestSerializer.ReadType( QuestSystem.QuestTypes, reader );
							DateTime restartTime;

							if ( version < 17 )
								restartTime = DateTime.MaxValue;
							else
								restartTime = reader.ReadDateTime();

							m_DoneQuests.Add( new QuestRestartInfo( questType, restartTime ) );
						}
					}

					m_Profession = reader.ReadEncodedInt();
					goto case 15;
				}
				case 16:
				{
					m_LastCompassionLoss = reader.ReadDeltaTime();
					goto case 14;
				}
				case 15: 
				{
					Onshow = reader.ReadBool();
					goto case 14;
				}
				case 14:
				{
					m_CompassionGains = reader.ReadEncodedInt();

					if ( m_CompassionGains > 0 )
						m_NextCompassionDay = reader.ReadDeltaTime();

					goto case 13;
				}
				case 13: // just removed m_PayedInsurance list
				case 12:
				{
					m_BOBFilter = new Engines.BulkOrders.BOBFilter( reader );
					goto case 11;
				}
				case 11:
				{
					if ( version < 13 )
					{
						ArrayList payed = reader.ReadItemList();

						for ( int i = 0; i < payed.Count; ++i )
							((Item)payed[i]).PayedInsurance = true;
					}

					goto case 10;
				}
				case 10:
				{
					if ( reader.ReadBool() )
					{
						m_HairModID = reader.ReadInt();
						m_HairModHue = reader.ReadInt();
						m_BeardModID = reader.ReadInt();
						m_BeardModHue = reader.ReadInt();

						// We cannot call SetHairMods( -1, -1 ) here because the items have not yet loaded
						Timer.DelayCall( TimeSpan.Zero, new TimerCallback( RevertHair ) );
					}

					goto case 9;
				}
				case 9:
				{
					SavagePaintExpiration = reader.ReadTimeSpan();

					if ( SavagePaintExpiration > TimeSpan.Zero )
					{
						BodyMod = ( Female ? 184 : 183 );
						HueMod = 0;
					}

					goto case 8;
				}
				case 8:
				{
					m_NpcGuild = (NpcGuild)reader.ReadInt();
					m_NpcGuildJoinTime = reader.ReadDateTime();
					m_NpcGuildGameTime = reader.ReadTimeSpan();
					goto case 7;
				}
				case 7:
				{
					m_PermaFlags = reader.ReadMobileList();
					goto case 6;
				}
				case 6:
				{
					NextTailorBulkOrder = reader.ReadTimeSpan();
					goto case 5;
				}
				case 5:
				{
					NextSmithBulkOrder = reader.ReadTimeSpan();
					goto case 4;
				}
				case 4:
				{
					m_LastJusticeLoss = reader.ReadDeltaTime();
					m_JusticeProtectors = reader.ReadMobileList();
					goto case 3;
				}
				case 3:
				{
					m_LastSacrificeGain = reader.ReadDeltaTime();
					m_LastSacrificeLoss = reader.ReadDeltaTime();
					m_AvailableResurrects = reader.ReadInt();
					goto case 2;
				}
				case 2:
				{
					m_Flags = (PlayerFlag)reader.ReadInt();
					goto case 1;
				}
				case 1:
				{
					m_LongTermElapse = reader.ReadTimeSpan();
					m_ShortTermElapse = reader.ReadTimeSpan();
					m_GameTime = reader.ReadTimeSpan();
					goto case 0;
				}
				case 0:
				{
					break;
				}
						}
			if ( m_IgnoreList == null ) 
				m_IgnoreList = new ArrayList();
			
			if ( m_PermaFlags == null )
				m_PermaFlags = new ArrayList();

			if ( m_JusticeProtectors == null )
				m_JusticeProtectors = new ArrayList();

			if ( m_BOBFilter == null )
				m_BOBFilter = new Engines.BulkOrders.BOBFilter();

			ArrayList list = this.Stabled;

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

				if ( bc != null )
					bc.IsStabled = true;
			}
		}
		
		public override void Serialize( GenericWriter writer )
		{
			//cleanup our anti-macro table 
			foreach ( Hashtable t in m_AntiMacroTable.Values )
			{
				ArrayList remove = new ArrayList();
				foreach ( CountAndTimeStamp time in t.Values )
				{
					if ( time.TimeStamp + SkillCheck.AntiMacroExpire <= DateTime.Now )
						remove.Add( time );
				}

				for (int i=0;i<remove.Count;++i)
					t.Remove( remove[i] );
			}

			//decay our kills
			if ( m_ShortTermElapse < this.GameTime )
			{
				m_ShortTermElapse += TimeSpan.FromHours( 8 );
				if ( ShortTermMurders > 0 )
					--ShortTermMurders;
			}

			if ( m_LongTermElapse < this.GameTime )
			{
				m_LongTermElapse += TimeSpan.FromHours( 40 );
				if ( Kills > 0 )
					--Kills;
			}

			base.Serialize( writer );
			
			writer.Write( (int) 17 ); // version

			QuestSerializer.Serialize( m_Quest, writer );

			if ( m_DoneQuests == null )
			{
				writer.WriteEncodedInt( (int) 0 );
			}
			else
			{
				writer.WriteEncodedInt( (int) m_DoneQuests.Count );

				for ( int i = 0; i < m_DoneQuests.Count; ++i )
				{
					QuestRestartInfo restartInfo = (QuestRestartInfo)m_DoneQuests[i];

					QuestSerializer.Write( (Type) restartInfo.QuestType, QuestSystem.QuestTypes, writer );
					writer.Write( (DateTime) restartInfo.RestartTime );
				}
			}

			writer.WriteEncodedInt( (int) m_Profession );

			writer.Write( (bool) Onshow );		

			writer.WriteDeltaTime( m_LastCompassionLoss );

			writer.WriteEncodedInt( m_CompassionGains );

			if ( m_CompassionGains > 0 )
				writer.WriteDeltaTime( m_NextCompassionDay );

			m_BOBFilter.Serialize( writer );

			bool useMods = ( m_HairModID != -1 || m_BeardModID != -1 );

			writer.Write( useMods );

			if ( useMods )
			{
				writer.Write( (int) m_HairModID );
				writer.Write( (int) m_HairModHue );
				writer.Write( (int) m_BeardModID );
				writer.Write( (int) m_BeardModHue );
			}

			writer.Write( SavagePaintExpiration );

			writer.Write( (int) m_NpcGuild );
			writer.Write( (DateTime) m_NpcGuildJoinTime );
			writer.Write( (TimeSpan) m_NpcGuildGameTime );

			writer.WriteMobileList( m_PermaFlags, true );

			writer.Write( NextTailorBulkOrder );

			writer.Write( NextSmithBulkOrder );

			writer.WriteDeltaTime( m_LastJusticeLoss );
			writer.WriteMobileList( m_JusticeProtectors, true );

			writer.WriteDeltaTime( m_LastSacrificeGain );
			writer.WriteDeltaTime( m_LastSacrificeLoss );
			writer.Write( m_AvailableResurrects );

			writer.Write( (int) m_Flags );

			writer.Write( m_LongTermElapse );
			writer.Write( m_ShortTermElapse );
			writer.Write( this.GameTime );
		}
 

slithers

Sorceror
SonOfANut said:
I get this fun littler error that everyone else seems to be getting.

an error has encountered while loading a saved object

Type: Server.Mobiles.PlayerMobile
Serial: 0x000000022

Delete this object? (y/n)QUOTE]

You guys say it is the serilaization and stuff...but im pretty sure its all right =\

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

			switch ( version )
			{
				case 18: // changed how DoneQuests is serialized
				case 17:
				{
					m_Quest = QuestSerializer.DeserializeQuest( reader );

					if ( m_Quest != null )
						m_Quest.From = this;

					int count = reader.ReadEncodedInt();

					if ( count > 0 )
					{
						m_DoneQuests = new ArrayList();

						for ( int i = 0; i < count; ++i )
						{
							Type questType = QuestSerializer.ReadType( QuestSystem.QuestTypes, reader );
							DateTime restartTime;

							if ( version < 17 )
								restartTime = DateTime.MaxValue;
							else
								restartTime = reader.ReadDateTime();

							m_DoneQuests.Add( new QuestRestartInfo( questType, restartTime ) );
						}
					}

					m_Profession = reader.ReadEncodedInt();
					goto case 15;
				}
				case 16:
				{
					m_LastCompassionLoss = reader.ReadDeltaTime();
					goto case 14;
				}
				case 15: 
				{
					Onshow = reader.ReadBool();
					goto case 14;
				}
				case 14:
				{
					m_CompassionGains = reader.ReadEncodedInt();

					if ( m_CompassionGains > 0 )
						m_NextCompassionDay = reader.ReadDeltaTime();

okay im fairly new at this but i think i see a problem and that is in your statement for case 16 you have a goto statement for case 14 so it skips case 15 which if i remember correctly is the one for the message system. again im just guessing here cause i am still learning, but that seems like the error to me
 

BlackKnight

Wanderer
HI, Well I just instilled a 1.0c version. I place this script in server before I started the server the first time. This script and the playermobile script is the only thing I have place or adjusted in anyway. I logged on got my admin account. Load just fine. Ran around just to check things out and after a world save closed the shard. Restarted the shard to check for errors. I found the Serialize/Deserialize error: Do I delete playermoblie. Well I have tried to figure this out and with no luck. I wont give up until I get this right. I know you can adjust the login and everything so you don't have to Serialize but I want it to work the way Fury made the script. Call me bullheaded , but we all have faults. Yes this is the first time I used the script, and I made a new case. Case: 18 and I placed writer.Write( (bool) Onshow ); so it the first thing serialized. I hope someone can help. Any insight would be great.


Here's my code:

switch ( version )
{
case 18:
{
Onshow = reader.ReadBool();
goto case 17;
}
case 17: // changed how DoneQuests is serialized
case 16:

Now the Seriilized part:

base.Serialize( writer );

writer.Write( (bool) Onshow );

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



Thanks for your time,
BlackKnight
 

Fury

Wanderer
you loaded fine but you never saved it... try this.




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

writer.Write( (bool) Onshow );
 

Cmonkey123

Wanderer
Using 1.0, I put the messaging system on the server and made the necessary changes to my playermobile then fired my server up... stragely, I got these errors, which no one else seems to have gotten:

Code:
 - Error: Scripts\Custom\New\FuryMessaging1[1].5\MsgClientGump.cs: CS0029: (line
 88, column 21) Cannot implicitly convert type 'Server.Guilds.BaseGuild' to 'Ser
ver.Guilds.Guild'
 - Error: Scripts\Custom\New\FuryMessaging1[1].5\MsgClientGump.cs: CS0029: (line
 173, column 19) Cannot implicitly convert type 'Server.Guilds.BaseGuild' to 'Se
rver.Guilds.Guild'
 - Error: Scripts\Custom\New\FuryMessaging1[1].5\MsgClientGump.cs: CS0029: (line
 210, column 19) Cannot implicitly convert type 'Server.Guilds.BaseGuild' to 'Se
rver.Guilds.Guild'

Help would be greatly appreciated.
 

Fury

Wanderer
Cmonkey123 said:
Using 1.0, I put the messaging system on the server and made the necessary changes to my playermobile then fired my server up... stragely, I got these errors, which no one else seems to have gotten:

Code:
 - Error: Scripts\Custom\New\FuryMessaging1[1].5\MsgClientGump.cs: CS0029: (line
 88, column 21) Cannot implicitly convert type 'Server.Guilds.BaseGuild' to 'Ser
ver.Guilds.Guild'
 - Error: Scripts\Custom\New\FuryMessaging1[1].5\MsgClientGump.cs: CS0029: (line
 173, column 19) Cannot implicitly convert type 'Server.Guilds.BaseGuild' to 'Se
rver.Guilds.Guild'
 - Error: Scripts\Custom\New\FuryMessaging1[1].5\MsgClientGump.cs: CS0029: (line
 210, column 19) Cannot implicitly convert type 'Server.Guilds.BaseGuild' to 'Se
rver.Guilds.Guild'

Help would be greatly appreciated.


Go to those error lines... heres how they should read

Code:
Guild guild = m.Guild as Guild;
 

exide

Wanderer
Good looking script, however, im not a huge fan of the sort of gump you made... Could you tell me how to change the background and hue of the "Guild chat"? Other then that, great!

Btw guys, I found it easiest to just set default for players to visable and admins not. I just left out the serialization and deserialization - Its just easier. That if you just want to get it up and running of coarse. If anyone wants a pre-modified PlayerMobile.cs, (without deser/ser), for RunUO RCO v1.0, then PM me. (Coz the pack doesnt come with a pre-done one for RCO V1.0)...

Once again great script, and I would appreciate it if you could get back to me on the background/hue change info!

Bye ~ Exide.
 

exide

Wanderer
DW about it Fury, if got most of the gumps changed. I based it on the scroll style look rather then your stone one. Just personal preference - It fits in better with my shard. I dont only have one problem - Could you please refer to my post in the script support forum. (Called "Fury Msg System Gump reworking" - or something close!)

Bye! ~Exide
 

sadoul

Wanderer
Default online - I know...

Was wondering if someone could enlighten me/us on how to make so when players login they are set to visible. I'm a newb scripter and I work full time so I dont' have a ton of time to shift through these great scripts. I figured out how to make them stay visibile, etc. I know a few people have posted wanting default login to be visible and as far as I can tell, a few solutions have been given but not in great detail. I love this script, great look. If someone could give a detailed way to do this from the latest system given by fury, I would be very thankful : ) thanks
 
Top