I apologize for such a long delay. There is STILL a bug with Hair/Facial hair in RunUO SVN 313 with clients above 6.0.1.7. This is an updated version of my previous thread. You can only fix this by doing the core modification.
Go to Server\Items\Container.cs - Look for this code
Change it to
Now underneath that function where you made the replacement, add this new function:
Now go to Scripts\Items\Misc\Corpses\Corpse.cs and find this code:
Replace that whole function with this:
Finally, replace the file in Scripts\Items\Misc\Corpses\Packets.cs with the one provided for download.
You're done!
Go to Server\Items\Container.cs - Look for this code
Code:
if ( state != null && state.IsPost6017 )
state.Send( new ContainerContent6017( state.Mobile, this ) );
else
state.Send( new ContainerContent( state.Mobile, this ) );
Change it to
Code:
SendContentTo( to.NetState );
Now underneath that function where you made the replacement, add this new function:
Code:
public virtual void SendContentTo( NetState state )
{
if ( state != null && state.IsPost6017 )
state.Send( new ContainerContent6017( state.Mobile, this ) );
else
state.Send( new ContainerContent( state.Mobile, this ) );
}
Now go to Scripts\Items\Misc\Corpses\Corpse.cs and find this code:
Code:
public override void SendInfoTo( NetState state, bool sendOplPacket )
{
base.SendInfoTo( state, sendOplPacket );
if ( ItemID == 0x2006 )
{
state.Send( new CorpseContent( state.Mobile, this ) );
state.Send( new CorpseEquip( state.Mobile, this ) );
}
}
Replace that whole function with this:
Code:
public override void SendContentTo( NetState state )
{
if ( state != null && state.IsPost6017 )
state.Send( new CorpseContent6017( state.Mobile, this ) );
else
state.Send( new CorpseContent( state.Mobile, this ) );
if ( ItemID == 0x2006 )
state.Send( new CorpseEquip( state.Mobile, this ) );
}
public override void SendInfoTo( NetState state, bool sendOplPacket )
{
base.SendInfoTo( state, sendOplPacket );
if ( ItemID == 0x2006 )
{
if ( state != null && state.IsPost6017 )
state.Send( new CorpseEquipContent6017( state.Mobile, this ) );
else
state.Send( new CorpseEquipContent( state.Mobile, this ) );
state.Send( new CorpseEquip( state.Mobile, this ) );
}
}
Finally, replace the file in Scripts\Items\Misc\Corpses\Packets.cs with the one provided for download.
You're done!