Okay so here goes with the guide on how to add marriage...
Okay so first your going to need the packet for the MarriageMouse...:
Code:
public static byte[] MarriageMouse(uint CharUID)
{
byte[] Mouse = new byte[24];
fixed (byte* Ptr = Mouse)
{
*(ushort*)(Ptr + 0) = 24;
*(ushort*)(Ptr + 2) = 1010;
*(uint*)(Ptr + 8) = CharUID;
*(uint*)(Ptr + 12) = 1067;
*(uint*)(Ptr + 22) = 116;
return Mouse;
}
}
Okay so assuming your using an NPC your gonna want to use Client.Send(Packets.MarriageMouse(Client.Char.UID) );
to make the mouse appear from the npc...
okay next step..
Make sure that the GetPacket function is unsafe otherwise you can use 1337 Pointers lul... e.g. public unsafe void GetPacket(byte[] Data)
sending the marriage request and accepting the marriage request is an attack type so your going to wan to search for case 1022: in the packets file and add the following code:.. (baring in mind that ive just tried and tested this in lotf cause i assume your all using it):
Code:
if (AttackType == 8)//Marriage Proposal
{
fixed (byte* Ptr = Data)
{
uint TargetUID = *(uint*)(Ptr + 12);
Character Target = (Character)World.AllChars[TargetUID];
*(uint*)(Ptr + 8) = MyChar.UID;
Target.MyClient.SendPacket(Data);
}
}
Then for accepting the proposal you need below the other code :
Code:
if (AttackType == 9)//Marriage Accept
{
fixed (byte* Ptr = Data)
{
uint UID = *(uint*)(Ptr + 12);
Character Char = (Character)World.AllChars[UID];
Char.Spouse = MyChar.Name;
MyChar.Spouse = Char.Name;
}
}
And if you don't have variables for spouse in lotf well im not gonna explain i made this in 5 minutes : added all the variables changed the char info and made the spouse save and load... so if you can't do that... don't even bother with a server

it's bad enough that your using lotf anyway. And even if your not using lotf you can adapt this code to work with any server