This idea caught me so I made this, hope it helps ya.
//Change JUMP_PARTY to 1 to have all party member within the limit jump also
//the float JUMP_LIMIT is used to only jump party members that are near oPC
//the string JUMP_TAG will be the waypoint tag the pc is jumping to fill that in
const int JUMP_PARTY = 0;
const float JUMP_LIMIT = 1.0;//adjust as you desire
const string JUMP_TAG = "";//fill this in with the waypoint tag
void main()
{
object oPC = GetEnteringObject();
object oCycle = GetFirstFactionMember(oPC);
object oFamiliar = GetAssociate(ASSOCIATE_TYPE_FAMILIAR);
location lJump = GetLocation(GetWaypointByTag(JUMP_TAG));
float fChk; int nRun; object oJumper; int nCount = 0;
if(JUMP_PARTY == 0)
{//this is where we jump just the PC and their Familiar
AssignCommand(oPC, ClearAllActions(TRUE));
AssignCommand(oPC, JumpToLocation(lJump));
if(oFamiliar != OBJECT_INVALID)
{//if the familiar is in existence
AssignCommand(oFamiliar, ClearAllActions(TRUE));
AssignCommand(oFamiliar, JumpToLocation(lJump));
}
}
else if(JUMP_PARTY == 1)
{//here we jump PC, Familiar and all faction members within JUMP_LIMIT
while(oCycle != OBJECT_INVALID)
{//loop thro party members and mark em for jumping
if(oCycle == oPC)GetNextFactionMember(oPC);
fChk = GetDistanceBetween(oPC, oCycle);
if(fChk <= JUMP_LIMIT)
{//set objects on the pc for faster jumping, those within jump limit
nCount = nCount+1;
SetLocalObject(oPC, "JUMPER_"+IntToString(nCount), oCycle);
SetLocalInt(oPC, "JUMP_RUN", nCount);
}
oCycle = GetNextFactionMember(oPC);
}
AssignCommand(oPC, ClearAllActions(TRUE));
AssignCommand(oPC, JumpToLocation(lJump));
if(oFamiliar != OBJECT_INVALID)
{//if the familiar is in existence
AssignCommand(oFamiliar, ClearAllActions(TRUE));
AssignCommand(oFamiliar, JumpToLocation(lJump));
}
nRun = GetLocalInt(oPC, "JUMP_RUN");//retreive number of jumpers
nCount = 0;//reset nCount
while(nRun != 0)
{//jump faction members that are marked on the pc
oJumper = GetLocalObject(oPC, "JUMPER_"+IntToString(nCount+1));
AssignCommand(oJumper, ClearAllActions(TRUE));
AssignCommand(oJumper, JumpToLocation(lJump));
nRun = nRun-1;
}
}
}