Then go get two players and one of them double click npc and select the person you want to marry and when the accept the wedding starts.
function onCharDoubleClick( myPlayer, myNPC )
{
myPlayer.SetTag( "parentSerial", ( myNPC.serial ).toString() );
if(myPlayer.isGM)
{
ConfigGump( myPlayer, myNPC);
}
else
{
myNPC.SetTag( "playerName", myPlayer.name );
WeddingSystem( myPlayer, myNPC);
}
}
function WeddingSystem( pUser, myNPC)
{
var shardName = myNPC.GetTag( "shardName" );
var socket = pUser.socket;
var weddingGump = new Gump;
var AskingName = myNPC.GetTag( "playerName");
weddingGump.AddPage(0);
weddingGump.AddBackground(0, 0, 361, 283, 9270);
weddingGump.AddCheckerTrans(12, 12, 334, 258);
weddingGump.AddText(120, 17, 23, shardName + " Wedding");
weddingGump.AddButton(16, 58, 2444, 2443, 1, 0, 1);
weddingGump.AddText(28, 59, 187, "Select");
weddingGump.AddButton(16, 88, 2444, 2443, 1, 0, 2);
weddingGump.AddText(28, 89, 134, "Select");
weddingGump.AddText(82, 61, 92, "Husband:");
if( pUser.gender == 0 && AskingName != "")
{
weddingGump.AddText(145, 61, 187, AskingName.toString());
}
else
{
weddingGump.AddText(145, 61, 187,"None");
}
weddingGump.AddText(82, 90, 34, "Wife:");
if( pUser.gender == 1 && AskingName != "")
{
weddingGump.AddText(147, 89, 18, name.toString());
}
else
{
weddingGump.AddText(147, 89, 18, "None");
}
weddingGump.Send(pUser);
weddingGump.Free();
}
function onGumpPress(pSock, pButton, gumpData)
{
var shardName = gumpData.getEdit(0);
var pUser = pSock.currentChar;
var asking = pSock.tempObj;
var parentNpc = CalcCharFromSer( parseInt( pUser.GetTag( "parentSerial" )));
var Him_x = pUser.GetTempTag( "Him_x" );
var Him_y = pUser.GetTempTag( "Him_y" );
var Him_z = pUser.GetTempTag( "Him_z" );
var Her_x = pUser.GetTempTag( "Her_x" );
var Her_y = pUser.GetTempTag( "Her_y" );
var Her_z = pUser.GetTempTag( "Her_z" );
var GetHim_x = parentNpc.GetTag("Him_x");
var GetHim_y = parentNpc.GetTag("Him_y");
var GetHim_z = parentNpc.GetTag("Him_z");
var GetHer_x = parentNpc.GetTag("Her_x");
var GetHer_y = parentNpc.GetTag("Her_y");
var GetHer_z = parentNpc.GetTag("Her_z");
switch (pButton)
{
case 0:break;
case 1:
pUser.socket.CustomTarget( 0, "Target who you want to marry" );
break;
case 2:
pUser.socket.CustomTarget( 0, "Target who you want to marry" );
break;
case 3:
pUser.SetTag( "Married", true );
asking.SetTag( "Married", true );
pUser.Teleport( GetHim_x, GetHim_y, GetHim_z );
asking.Teleport( GetHer_x, GetHer_y, GetHer_z );
pUser.direction = 0x4;
asking.direction = 0x0;
pUser.frozen = 1;
asking.frozen = 1;
parentNpc.StartTimer(500, 1, true);
parentNpc.SetTag( "parentSerialask", ( asking.serial ).toString() );
parentNpc.SetTag( "parentSerialyes", ( pUser.serial ).toString() );
parentNpc.SetTag("askingName", asking.name);
parentNpc.SetTag("SaidyesName", pUser.name);
break;
case 4:
break;
case 5:
parentNpc.SetTag("shardName", shardName);
parentNpc.SetTag("Him_x", Him_x);
parentNpc.SetTag("Him_y", Him_y);
parentNpc.SetTag("Him_z", Him_z);
parentNpc.SetTag("Her_x", Her_x);
parentNpc.SetTag("Her_y", Her_y);
parentNpc.SetTag("Her_z", Her_z);
break;
case 6:
pSock.CustomTarget( 1, "Set Husband's Location" );
break
case 7:
pSock.CustomTarget( 2, "Set Wifes's Location" );
break
}
}
function onCallback0( socket, myTarget )
{
var iUsed = socket.tempObj;
var pUser = socket.currentChar;
var npc = pUser.GetTag( "parentSerial");
if( myTarget.GetTag( "Married" ) == true)
{
socket.SysMessage( "That Person is already married this is not allowed by laws of the land." );
return false;
}
else
{
AcceptGump( pUser, myTarget );
myTarget.SetTag( "parentSerial", npc );
pUser.SetTag( "parentSerial", null);
}
}
function onCallback1( socket, ourObj )
{
var pUser = socket.currentChar;
var cancelCheck = parseInt( socket.GetByte( 11 ));
if( cancelCheck == 255 )
return;
// Fetch coordinates for where gm targeted
var targX = socket.GetWord( 11 );
var targY = socket.GetWord( 13 );
var targZ = socket.GetSByte( 16 );
pUser.SetTempTag( "Him_x",targX );
pUser.SetTempTag( "Him_y",targY );
pUser.SetTempTag( "Him_z",targZ );
ConfigGump( pUser );
}
function onCallback2( socket, ourObj )
{
var pUser = socket.currentChar;
var cancelCheck = parseInt( socket.GetByte( 11 ));
if( cancelCheck == 255 )
return;
// Fetch coordinates for where gm targeted
var targX = socket.GetWord( 11 );
var targY = socket.GetWord( 13 );
var targZ = socket.GetSByte( 16 );
pUser.SetTempTag( "Her_x",targX );
pUser.SetTempTag( "Her_y",targY );
pUser.SetTempTag( "Her_z",targZ );
ConfigGump( pUser );
}
function AcceptGump(asking, myTarget)
{
var socket = myTarget.socket;
socket.tempObj = asking;
var weddingGump = new Gump;
weddingGump.AddPage(0);
weddingGump.AddBackground(0, 0, 236, 135, 9270);
weddingGump.AddCheckerTrans(12, 12, 212, 110);
weddingGump.AddText(97, 30, 13, asking.name.toString());
weddingGump.AddText(24, 51, 10, "Has asked for your hand");
weddingGump.AddText(26, 68, 10, "in marriage. Do you accept?");
weddingGump.AddButton(18, 93, 2444, 2443, 1, 0, 3);
weddingGump.AddText(27, 94, 53, "Accept");
weddingGump.AddButton(154, 93, 2444, 2443, 1, 0, 4);
weddingGump.AddText(162, 94, 31, "Decline");
weddingGump.Send(myTarget);
weddingGump.Free();
}
function onTimer(myNPC,timerID)
{
var socket = myNPC.socket;
var ask = myNPC.GetTag("askingName");
var yes = myNPC.GetTag("SaidyesName");
var askingperson = CalcCharFromSer( parseInt(myNPC.GetTag( "parentSerialask" )));
var yesperson = CalcCharFromSer( parseInt(myNPC.GetTag( "parentSerialyes" )));
switch (timerID)
{
case 1:
myNPC.TextMessage( "We gather here today to witness the joining of these two souls in marrage. A public display of their love and affection for one another." );
myNPC.StartTimer(3000, 2, true);
break;
case 2:
myNPC.TextMessage( "Do you " + ask.toString() + " promise to love cherish honor and obey " + yes.toString() + " as long as your adventure in Britannia lasts." );
myNPC.StartTimer(3000, 3, true);
break;
case 3:
myNPC.TextMessage( "Through death and resurection in sickness and in hunger through connection loss and Client failure?" );
myNPC.StartTimer(3000, 4, true);
break;
case 4:
askingperson.TextMessage( "I Do" );
myNPC.StartTimer(3000, 5, true);
break;
case 5:
myNPC.TextMessage( "Do you " + yes.toString() + " promise to love cherish honor and obey " + ask.toString() + " as long as your adventure in Britannia lasts." );
myNPC.StartTimer(3000, 6, true);
break;
case 6:
yesperson.TextMessage( "I Do" );
myNPC.StartTimer(3000, 7, true);
break;
case 7:
myNPC.TextMessage( "By the power invested in me by the Gods of Britannia and the Gamemasters of Distant Land, I pronounce this union complete you may now celebrate you affections." );
askingperson.frozen = 0;
askingperson.Refresh();
yesperson.frozen = 0;
yesperson.Refresh();
break;
}
}
function ConfigGump( pUser )
{
var socket = pUser.socket;
var ConfigGump = new Gump;
var Him_x = pUser.GetTempTag( "Him_x" );
var Him_y = pUser.GetTempTag( "Him_y" );
var Him_z = pUser.GetTempTag( "Him_z" );
var Her_x = pUser.GetTempTag( "Her_x" );
var Her_y = pUser.GetTempTag( "Her_y" );
var Her_z = pUser.GetTempTag( "Her_z" );
ConfigGump.AddPage(0);
ConfigGump.AddBackground(0, 0, 350, 411, 9270);
ConfigGump.AddCheckerTrans(13, 14, 324, 384);
ConfigGump.AddText(100, 17, 477, "Wedding Config");
ConfigGump.AddText(25, 145, 232, "Shard Name");
ConfigGump.AddText(25, 201, 4, "Husbands Location");
ConfigGump.AddButton(275, 201, 247, 248, 1, 0, 6);
ConfigGump.AddText(150, 201, 4, "( " + Him_x + "," + Him_y + "," + Him_z + " )");
ConfigGump.AddText(25, 258, 19, "Wifes Location");
ConfigGump.AddButton(275, 258, 247, 248, 1, 0, 7);
ConfigGump.AddText(150, 258, 19, "( " + Her_x + "," + Her_y + "," + Her_z + " )");
ConfigGump.AddCheckerTrans(100, 145, 152, 19);
ConfigGump.AddTextEntry(100, 145, 151, 20, 98, 0, 7, "UOX3");
ConfigGump.AddButton(275, 145, 247, 248, 1, 0, 5);
ConfigGump.Send(pUser);
ConfigGump.Free();
}
{
myPlayer.SetTag( "parentSerial", ( myNPC.serial ).toString() );
if(myPlayer.isGM)
{
ConfigGump( myPlayer, myNPC);
}
else
{
myNPC.SetTag( "playerName", myPlayer.name );
WeddingSystem( myPlayer, myNPC);
}
}
function WeddingSystem( pUser, myNPC)
{
var shardName = myNPC.GetTag( "shardName" );
var socket = pUser.socket;
var weddingGump = new Gump;
var AskingName = myNPC.GetTag( "playerName");
weddingGump.AddPage(0);
weddingGump.AddBackground(0, 0, 361, 283, 9270);
weddingGump.AddCheckerTrans(12, 12, 334, 258);
weddingGump.AddText(120, 17, 23, shardName + " Wedding");
weddingGump.AddButton(16, 58, 2444, 2443, 1, 0, 1);
weddingGump.AddText(28, 59, 187, "Select");
weddingGump.AddButton(16, 88, 2444, 2443, 1, 0, 2);
weddingGump.AddText(28, 89, 134, "Select");
weddingGump.AddText(82, 61, 92, "Husband:");
if( pUser.gender == 0 && AskingName != "")
{
weddingGump.AddText(145, 61, 187, AskingName.toString());
}
else
{
weddingGump.AddText(145, 61, 187,"None");
}
weddingGump.AddText(82, 90, 34, "Wife:");
if( pUser.gender == 1 && AskingName != "")
{
weddingGump.AddText(147, 89, 18, name.toString());
}
else
{
weddingGump.AddText(147, 89, 18, "None");
}
weddingGump.Send(pUser);
weddingGump.Free();
}
function onGumpPress(pSock, pButton, gumpData)
{
var shardName = gumpData.getEdit(0);
var pUser = pSock.currentChar;
var asking = pSock.tempObj;
var parentNpc = CalcCharFromSer( parseInt( pUser.GetTag( "parentSerial" )));
var Him_x = pUser.GetTempTag( "Him_x" );
var Him_y = pUser.GetTempTag( "Him_y" );
var Him_z = pUser.GetTempTag( "Him_z" );
var Her_x = pUser.GetTempTag( "Her_x" );
var Her_y = pUser.GetTempTag( "Her_y" );
var Her_z = pUser.GetTempTag( "Her_z" );
var GetHim_x = parentNpc.GetTag("Him_x");
var GetHim_y = parentNpc.GetTag("Him_y");
var GetHim_z = parentNpc.GetTag("Him_z");
var GetHer_x = parentNpc.GetTag("Her_x");
var GetHer_y = parentNpc.GetTag("Her_y");
var GetHer_z = parentNpc.GetTag("Her_z");
switch (pButton)
{
case 0:break;
case 1:
pUser.socket.CustomTarget( 0, "Target who you want to marry" );
break;
case 2:
pUser.socket.CustomTarget( 0, "Target who you want to marry" );
break;
case 3:
pUser.SetTag( "Married", true );
asking.SetTag( "Married", true );
pUser.Teleport( GetHim_x, GetHim_y, GetHim_z );
asking.Teleport( GetHer_x, GetHer_y, GetHer_z );
pUser.direction = 0x4;
asking.direction = 0x0;
pUser.frozen = 1;
asking.frozen = 1;
parentNpc.StartTimer(500, 1, true);
parentNpc.SetTag( "parentSerialask", ( asking.serial ).toString() );
parentNpc.SetTag( "parentSerialyes", ( pUser.serial ).toString() );
parentNpc.SetTag("askingName", asking.name);
parentNpc.SetTag("SaidyesName", pUser.name);
break;
case 4:
break;
case 5:
parentNpc.SetTag("shardName", shardName);
parentNpc.SetTag("Him_x", Him_x);
parentNpc.SetTag("Him_y", Him_y);
parentNpc.SetTag("Him_z", Him_z);
parentNpc.SetTag("Her_x", Her_x);
parentNpc.SetTag("Her_y", Her_y);
parentNpc.SetTag("Her_z", Her_z);
break;
case 6:
pSock.CustomTarget( 1, "Set Husband's Location" );
break
case 7:
pSock.CustomTarget( 2, "Set Wifes's Location" );
break
}
}
function onCallback0( socket, myTarget )
{
var iUsed = socket.tempObj;
var pUser = socket.currentChar;
var npc = pUser.GetTag( "parentSerial");
if( myTarget.GetTag( "Married" ) == true)
{
socket.SysMessage( "That Person is already married this is not allowed by laws of the land." );
return false;
}
else
{
AcceptGump( pUser, myTarget );
myTarget.SetTag( "parentSerial", npc );
pUser.SetTag( "parentSerial", null);
}
}
function onCallback1( socket, ourObj )
{
var pUser = socket.currentChar;
var cancelCheck = parseInt( socket.GetByte( 11 ));
if( cancelCheck == 255 )
return;
// Fetch coordinates for where gm targeted
var targX = socket.GetWord( 11 );
var targY = socket.GetWord( 13 );
var targZ = socket.GetSByte( 16 );
pUser.SetTempTag( "Him_x",targX );
pUser.SetTempTag( "Him_y",targY );
pUser.SetTempTag( "Him_z",targZ );
ConfigGump( pUser );
}
function onCallback2( socket, ourObj )
{
var pUser = socket.currentChar;
var cancelCheck = parseInt( socket.GetByte( 11 ));
if( cancelCheck == 255 )
return;
// Fetch coordinates for where gm targeted
var targX = socket.GetWord( 11 );
var targY = socket.GetWord( 13 );
var targZ = socket.GetSByte( 16 );
pUser.SetTempTag( "Her_x",targX );
pUser.SetTempTag( "Her_y",targY );
pUser.SetTempTag( "Her_z",targZ );
ConfigGump( pUser );
}
function AcceptGump(asking, myTarget)
{
var socket = myTarget.socket;
socket.tempObj = asking;
var weddingGump = new Gump;
weddingGump.AddPage(0);
weddingGump.AddBackground(0, 0, 236, 135, 9270);
weddingGump.AddCheckerTrans(12, 12, 212, 110);
weddingGump.AddText(97, 30, 13, asking.name.toString());
weddingGump.AddText(24, 51, 10, "Has asked for your hand");
weddingGump.AddText(26, 68, 10, "in marriage. Do you accept?");
weddingGump.AddButton(18, 93, 2444, 2443, 1, 0, 3);
weddingGump.AddText(27, 94, 53, "Accept");
weddingGump.AddButton(154, 93, 2444, 2443, 1, 0, 4);
weddingGump.AddText(162, 94, 31, "Decline");
weddingGump.Send(myTarget);
weddingGump.Free();
}
function onTimer(myNPC,timerID)
{
var socket = myNPC.socket;
var ask = myNPC.GetTag("askingName");
var yes = myNPC.GetTag("SaidyesName");
var askingperson = CalcCharFromSer( parseInt(myNPC.GetTag( "parentSerialask" )));
var yesperson = CalcCharFromSer( parseInt(myNPC.GetTag( "parentSerialyes" )));
switch (timerID)
{
case 1:
myNPC.TextMessage( "We gather here today to witness the joining of these two souls in marrage. A public display of their love and affection for one another." );
myNPC.StartTimer(3000, 2, true);
break;
case 2:
myNPC.TextMessage( "Do you " + ask.toString() + " promise to love cherish honor and obey " + yes.toString() + " as long as your adventure in Britannia lasts." );
myNPC.StartTimer(3000, 3, true);
break;
case 3:
myNPC.TextMessage( "Through death and resurection in sickness and in hunger through connection loss and Client failure?" );
myNPC.StartTimer(3000, 4, true);
break;
case 4:
askingperson.TextMessage( "I Do" );
myNPC.StartTimer(3000, 5, true);
break;
case 5:
myNPC.TextMessage( "Do you " + yes.toString() + " promise to love cherish honor and obey " + ask.toString() + " as long as your adventure in Britannia lasts." );
myNPC.StartTimer(3000, 6, true);
break;
case 6:
yesperson.TextMessage( "I Do" );
myNPC.StartTimer(3000, 7, true);
break;
case 7:
myNPC.TextMessage( "By the power invested in me by the Gods of Britannia and the Gamemasters of Distant Land, I pronounce this union complete you may now celebrate you affections." );
askingperson.frozen = 0;
askingperson.Refresh();
yesperson.frozen = 0;
yesperson.Refresh();
break;
}
}
function ConfigGump( pUser )
{
var socket = pUser.socket;
var ConfigGump = new Gump;
var Him_x = pUser.GetTempTag( "Him_x" );
var Him_y = pUser.GetTempTag( "Him_y" );
var Him_z = pUser.GetTempTag( "Him_z" );
var Her_x = pUser.GetTempTag( "Her_x" );
var Her_y = pUser.GetTempTag( "Her_y" );
var Her_z = pUser.GetTempTag( "Her_z" );
ConfigGump.AddPage(0);
ConfigGump.AddBackground(0, 0, 350, 411, 9270);
ConfigGump.AddCheckerTrans(13, 14, 324, 384);
ConfigGump.AddText(100, 17, 477, "Wedding Config");
ConfigGump.AddText(25, 145, 232, "Shard Name");
ConfigGump.AddText(25, 201, 4, "Husbands Location");
ConfigGump.AddButton(275, 201, 247, 248, 1, 0, 6);
ConfigGump.AddText(150, 201, 4, "( " + Him_x + "," + Him_y + "," + Him_z + " )");
ConfigGump.AddText(25, 258, 19, "Wifes Location");
ConfigGump.AddButton(275, 258, 247, 248, 1, 0, 7);
ConfigGump.AddText(150, 258, 19, "( " + Her_x + "," + Her_y + "," + Her_z + " )");
ConfigGump.AddCheckerTrans(100, 145, 152, 19);
ConfigGump.AddTextEntry(100, 145, 151, 20, 98, 0, 7, "UOX3");
ConfigGump.AddButton(275, 145, 247, 248, 1, 0, 5);
ConfigGump.Send(pUser);
ConfigGump.Free();
}