Observer Camera Update

This commit is contained in:
ChocoTaco1 2021-03-16 13:01:21 -04:00
parent c8a2205caa
commit acc3e987f2
4 changed files with 61 additions and 37 deletions

View file

@ -421,11 +421,14 @@ function CTFGame::playerTouchEnemyFlag(%game, %player, %flag)
%flag.carrier = %player; //this %flag is carried by %player
// attach the camera to the flag.carrier
for(%i = 0; %i < $Observers; %i++)
if($Observers)
{
%cl = $ObserverArray[%i];
if(%cl.observingFlag)
observeFlag(%cl, %player.client, 2, %flag.team);
for(%i = 0; %i < ClientGroup.getCount(); %i++)
{
%cl = ClientGroup.getObject(%i);
if(%cl.team <= 0 && %cl.observingFlag && %cl.flagObsTeam == %flag.team)
observeFlag(%cl, %player.client, 2, %flag.team);
}
}
%player.mountImage(FlagImage, $FlagSlot, true, %game.getTeamSkin(%flag.team));
@ -570,11 +573,14 @@ function CTFGame::playerDroppedFlag(%game, %player)
$flagStatus[%flag.team] = "<In the Field>";
// attach the camera to the flag
for(%i = 0; %i < $Observers; %i++)
if($Observers)
{
%cl = $ObserverArray[%i];
if(%cl.observingFlag)
observeFlag(%cl, $TeamFlag[%flag.team], 1, %flag.team);
for(%i = 0; %i < ClientGroup.getCount(); %i++)
{
%cl = ClientGroup.getObject(%i);
if(%cl.team <= 0 && %cl.observingFlag && %cl.flagObsTeam == %flag.team)
observeFlag(%cl, $TeamFlag[%flag.team], 1, %flag.team);
}
}
%player.unMountImage($FlagSlot);
@ -604,11 +610,14 @@ function CTFGame::flagCap(%game, %player)
%flag.carrier = "";
// when a player cap the flag, attach to flag again
for(%i = 0; %i < $Observers; %i++)
if($Observers)
{
%cl = $ObserverArray[%i];
if(%cl.observingFlag)
observeFlag(%cl, $TeamFlag[%flag.team], 1, %flag.team);
for(%i = 0; %i < ClientGroup.getCount(); %i++)
{
%cl = ClientGroup.getObject(%i);
if(%cl.team <= 0 && %cl.observingFlag && %cl.flagObsTeam == %flag.team)
observeFlag(%cl, $TeamFlag[%flag.team], 1, %flag.team);
}
}
%held = %game.formatTime(getSimTime() - %game.flagHeldTime[%flag], false); // z0dd - ZOD, 8/15/02. How long did player hold flag?
@ -759,11 +768,14 @@ function CTFGame::flagReturn(%game, %flag, %player)
%teamName = %game.getTeamName(%flag.team);
// when the flag return, attach to flag again
for(%i = 0; %i < $Observers; %i++)
if($Observers)
{
%cl = $ObserverArray[%i];
if(%cl.observingFlag)
observeFlag(%cl, $TeamFlag[%flag.team], 1, %flag.team);
for(%i = 0; %i < ClientGroup.getCount(); %i++)
{
%cl = ClientGroup.getObject(%i);
if(%cl.team <= 0 && %cl.observingFlag && %cl.flagObsTeam == %flag.team)
observeFlag(%cl, $TeamFlag[%flag.team], 1, %flag.team);
}
}
if (%player !$= "")