mirror of
https://github.com/ChocoTaco1/TacoServer.git
synced 2026-04-04 19:25:04 +00:00
More ObsFlag Things
This commit is contained in:
parent
7477a11c2f
commit
76511f8938
4 changed files with 56 additions and 0 deletions
|
|
@ -584,6 +584,7 @@ function CTFGame::playerDroppedFlag(%game, %player)
|
|||
{
|
||||
%client = %player.client;
|
||||
%flag = %player.holdingFlag;
|
||||
|
||||
%game.updateFlagTransform(%flag); // z0dd - ZOD, 8/4/02, Call to KineticPoet's flag updater
|
||||
%held = %game.formatTime(getSimTime() - %game.flagHeldTime[%flag], false); // z0dd - ZOD, 8/15/02. How long did player hold flag?
|
||||
|
||||
|
|
@ -628,6 +629,18 @@ function CTFGame::flagCap(%game, %player)
|
|||
%client = %player.client;
|
||||
%flag = %player.holdingFlag;
|
||||
%flag.carrier = "";
|
||||
|
||||
// when a player cap the flag, continue observing the player
|
||||
for(%i = 0; %i < ClientGroup.getCount(); %i++)
|
||||
{
|
||||
%cl = ClientGroup.getObject(%i);
|
||||
if(%cl.team <= 0 && %cl.observingFlag && %cl.flagObsTeam == %flag.team)
|
||||
{
|
||||
%cl.observingFlag = false;
|
||||
%cl.flagObserved = "";
|
||||
%cl.flagObsTeam = "";
|
||||
}
|
||||
}
|
||||
|
||||
%held = %game.formatTime(getSimTime() - %game.flagHeldTime[%flag], false); // z0dd - ZOD, 8/15/02. How long did player hold flag?
|
||||
|
||||
|
|
|
|||
|
|
@ -906,6 +906,18 @@ function SCtFGame::flagCap(%game, %player)
|
|||
%client = %player.client;
|
||||
%flag = %player.holdingFlag;
|
||||
%flag.carrier = "";
|
||||
|
||||
// when a player cap the flag, continue observing the player
|
||||
for(%i = 0; %i < ClientGroup.getCount(); %i++)
|
||||
{
|
||||
%cl = ClientGroup.getObject(%i);
|
||||
if(%cl.team <= 0 && %cl.observingFlag && %cl.flagObsTeam == %flag.team)
|
||||
{
|
||||
%cl.observingFlag = false;
|
||||
%cl.flagObserved = "";
|
||||
%cl.flagObsTeam = "";
|
||||
}
|
||||
}
|
||||
|
||||
%held = %game.formatTime(getSimTime() - %game.flagHeldTime[%flag], false); // z0dd - ZOD, 8/15/02. How long did player hold flag?
|
||||
|
||||
|
|
|
|||
|
|
@ -102,6 +102,28 @@ function Observer::onTrigger(%data, %obj, %trigger, %state)
|
|||
}
|
||||
}
|
||||
|
||||
function Observer::setMode(%data, %obj, %mode, %targetObj)
|
||||
{
|
||||
if(%mode $= "")
|
||||
return;
|
||||
|
||||
%client = %obj.getControllingClient();
|
||||
if(%client $= "")
|
||||
return;
|
||||
|
||||
switch$(%mode)
|
||||
{
|
||||
case "followFlag":
|
||||
%transform = %targetObj.getTransform();
|
||||
// observe the flag 2x more far than the normal
|
||||
%obj.setOrbitMode(%targetObj, %transform, 1.0, 9.0, 9.0);
|
||||
|
||||
default:
|
||||
Parent::setMode(%data, %obj, %mode, %targetObj);
|
||||
}
|
||||
%obj.mode = %mode;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
// Prevent package from being activated if it is already
|
||||
|
|
@ -146,6 +168,9 @@ function serverCmdObserveSecondFlag(%client)
|
|||
observeFlag(%client, %player.client, 2, 2);
|
||||
}
|
||||
|
||||
// observeFlag(%client, %target, %type, %flagTeam)
|
||||
// Info: handle the observe flag feature
|
||||
// observeFlag(%cl, $TeamFlag[%flag.team], 1, %flag.team);
|
||||
function observeFlag(%client, %target, %type, %flagTeam)
|
||||
{
|
||||
if(!isObject(%client) || !isObject(%target) || !isObject(%client.camera))
|
||||
|
|
|
|||
|
|
@ -1718,9 +1718,15 @@ function DefaultGame::clientMissionDropReady(%game, %client)
|
|||
if( %client.camera.mode $= "observerFly" || %client.camera.mode $= "justJoined")
|
||||
{
|
||||
%observer = true;
|
||||
|
||||
%client.observingFlag = false;
|
||||
%client.flagObserved = "";
|
||||
%client.flagObsTeam = "";
|
||||
|
||||
%client.observerStartTime = getSimTime();
|
||||
commandToClient(%client, 'setHudMode', 'Observer');
|
||||
%client.setControlObject( %client.camera );
|
||||
|
||||
//displayObserverHud( %client, 0 );
|
||||
// Eolk - flag stats stuff
|
||||
//updateObserverFlyHud(%client);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue