mirror of
https://github.com/ChocoTaco1/TacoServer.git
synced 2026-01-20 00:24:49 +00:00
Observer Camera Update
This commit is contained in:
parent
c8a2205caa
commit
acc3e987f2
|
|
@ -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 !$= "")
|
||||
|
|
|
|||
|
|
@ -658,11 +658,14 @@ function SCtFGame::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));
|
||||
|
|
@ -795,11 +798,14 @@ function SCtFGame::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);
|
||||
|
|
@ -829,11 +835,14 @@ function SCtFGame::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?
|
||||
|
|
@ -978,11 +987,14 @@ function SCtFGame::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 !$= "")
|
||||
|
|
|
|||
|
|
@ -57,9 +57,9 @@ function GetTeamCounts(%game)
|
|||
$Observers = 0;
|
||||
for(%i = 0; %i < ClientGroup.getCount(); %i++)
|
||||
{
|
||||
%cl = ClientGroup.getObject(%i);
|
||||
if(%cl.team $= 0)
|
||||
$ObserverArray[$Observers++] = %cl;
|
||||
%cl = ClientGroup.getObject(%i);
|
||||
if(%cl.team $= 0)
|
||||
$Observers++;
|
||||
}
|
||||
|
||||
//echo("$PlayerCount[0] " @ $HostGamePlayerCount - ($TeamRank[1, count] + $TeamRank[2, count]));
|
||||
|
|
|
|||
|
|
@ -136,7 +136,7 @@ function serverCmdObserveFirstFlag(%client)
|
|||
return;
|
||||
|
||||
// client must be an observer
|
||||
if(%client.team > 0)
|
||||
if(%client.team > 0 || !$Observers) //$Observers added; Serverside var; Needs to have value to work correctly
|
||||
return;
|
||||
|
||||
// check if the flag is carried by someone
|
||||
|
|
@ -154,7 +154,7 @@ function serverCmdObserveSecondFlag(%client)
|
|||
return;
|
||||
|
||||
// client must be an observer
|
||||
if(%client.team > 0)
|
||||
if(%client.team > 0 || !$Observers) //$Observers added; Serverside var; Needs to have value to work correctly
|
||||
return;
|
||||
|
||||
// check if the flag is carried by someone
|
||||
|
|
|
|||
Loading…
Reference in a new issue