mirror of
https://github.com/ChocoTaco1/TacoServer.git
synced 2026-07-15 08:04:39 +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;
|
%client = %player.client;
|
||||||
%flag = %player.holdingFlag;
|
%flag = %player.holdingFlag;
|
||||||
|
|
||||||
%game.updateFlagTransform(%flag); // z0dd - ZOD, 8/4/02, Call to KineticPoet's flag updater
|
%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?
|
%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;
|
%client = %player.client;
|
||||||
%flag = %player.holdingFlag;
|
%flag = %player.holdingFlag;
|
||||||
%flag.carrier = "";
|
%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?
|
%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;
|
%client = %player.client;
|
||||||
%flag = %player.holdingFlag;
|
%flag = %player.holdingFlag;
|
||||||
%flag.carrier = "";
|
%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?
|
%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
|
// Prevent package from being activated if it is already
|
||||||
|
|
@ -146,6 +168,9 @@ function serverCmdObserveSecondFlag(%client)
|
||||||
observeFlag(%client, %player.client, 2, 2);
|
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)
|
function observeFlag(%client, %target, %type, %flagTeam)
|
||||||
{
|
{
|
||||||
if(!isObject(%client) || !isObject(%target) || !isObject(%client.camera))
|
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")
|
if( %client.camera.mode $= "observerFly" || %client.camera.mode $= "justJoined")
|
||||||
{
|
{
|
||||||
%observer = true;
|
%observer = true;
|
||||||
|
|
||||||
|
%client.observingFlag = false;
|
||||||
|
%client.flagObserved = "";
|
||||||
|
%client.flagObsTeam = "";
|
||||||
|
|
||||||
%client.observerStartTime = getSimTime();
|
%client.observerStartTime = getSimTime();
|
||||||
commandToClient(%client, 'setHudMode', 'Observer');
|
commandToClient(%client, 'setHudMode', 'Observer');
|
||||||
%client.setControlObject( %client.camera );
|
%client.setControlObject( %client.camera );
|
||||||
|
|
||||||
//displayObserverHud( %client, 0 );
|
//displayObserverHud( %client, 0 );
|
||||||
// Eolk - flag stats stuff
|
// Eolk - flag stats stuff
|
||||||
//updateObserverFlyHud(%client);
|
//updateObserverFlyHud(%client);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue