Source code of the observer: Maybe it's better to just rewrite it without a package in case another add-on uses it for whatever reason
function SimObject::onCameraEnterOrbit(%obj, %camera)
{
%client = %obj.client;
if(!isObject(%client))
return;
%observerName = "<OBSERVER>";
if(%camera.getControllingClient())
%observerName = %camera.getControllingClient().getPlayerName();
%playerName = "<PLAYERNAME>";
if(%obj.getControllingClient())
%playerName = %obj.getControllingClient().getPlayerName();
else if(isObject(%obj.client))
%playerName = %obj.client.getPlayerName();
%obj.observerCount = %obj.observerCount + 1;
if(%obj.observerCount == 1)
commandToClient(%client, 'BottomPrint', "\c4" @ %obj.observerCount @ " observer", 2, 1);
else
commandToClient(%client, 'BottomPrint', "\c4" @ %obj.observerCount @ " observers", 2, 1);
}
function SimObject::onCameraLeaveOrbit(%obj, %camera)
{
%client = %obj.client;
if(!isObject(%client))
return;
%observerName = "<OBSERVER>";
if(%camera.getControllingClient())
%observerName = %camera.getControllingClient().getPlayerName();
%playerName = "<PLAYERNAME>";
if(%obj.getControllingClient())
%playerName = %obj.getControllingClient().getPlayerName();
else if(isObject(%obj.client))
%playerName = %obj.client.getPlayerName();
%obj.observerCount = %obj.observerCount - 1;
%mg = %client.miniGame;
if(isObject(%mg) && %mg.RespawnTime <= 0)
{
if (%obj.observerCount == 1)
commandToClient(%client, 'BottomPrint', "\c4" @ %obj.observerCount @ " observer", 2, 1);
else
commandToClient(%client, 'BottomPrint', "\c4" @ %obj.observerCount @ " observers", 2, 1);
}
}