mirror of
https://github.com/ChocoTaco1/TacoServer.git
synced 2026-01-19 16:14:44 +00:00
Reset FlagObs on F2-Name
This commit is contained in:
parent
e1069b6284
commit
e1771fbf88
|
|
@ -53,7 +53,7 @@ function Observer::onTrigger(%data, %obj, %trigger, %state)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// the flag isn't carried
|
// the flag isn't carried
|
||||||
if(%otherFlag.carrier $= "")
|
if(%otherFlag.carrier $= "")
|
||||||
observeFlag(%client, %otherFlag, 1, %otherFlagTeam);
|
observeFlag(%client, %otherFlag, 1, %otherFlagTeam);
|
||||||
|
|
@ -121,7 +121,15 @@ function Observer::setMode(%data, %obj, %mode, %targetObj)
|
||||||
default:
|
default:
|
||||||
Parent::setMode(%data, %obj, %mode, %targetObj);
|
Parent::setMode(%data, %obj, %mode, %targetObj);
|
||||||
}
|
}
|
||||||
%obj.mode = %mode;
|
%obj.mode = %mode;
|
||||||
|
}
|
||||||
|
|
||||||
|
function serverCmdObserveClient(%client, %target)
|
||||||
|
{
|
||||||
|
%client.observeFlyClient = "";
|
||||||
|
%client.observingFlag = false;
|
||||||
|
|
||||||
|
parent::serverCmdObserveClient(%client, %target);
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
@ -134,14 +142,14 @@ function serverCmdObserveFirstFlag(%client)
|
||||||
{
|
{
|
||||||
if(Game.class !$= CTFGame && Game.class !$= SCtFGame)
|
if(Game.class !$= CTFGame && Game.class !$= SCtFGame)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// client must be an observer
|
// client must be an observer
|
||||||
if(%client.team > 0 || !$Observers) //$Observers added; Serverside var; Needs to have value to work correctly
|
if(%client.team > 0 || !$Observers) //$Observers added; Serverside var; Needs to have value to work correctly
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// check if the flag is carried by someone
|
// check if the flag is carried by someone
|
||||||
%player = $TeamFlag[1].carrier;
|
%player = $TeamFlag[1].carrier;
|
||||||
|
|
||||||
if($TeamFlag[1].isHome || %player $= "")
|
if($TeamFlag[1].isHome || %player $= "")
|
||||||
observeFlag(%client, $TeamFlag[1], 1, 1);
|
observeFlag(%client, $TeamFlag[1], 1, 1);
|
||||||
else
|
else
|
||||||
|
|
@ -152,14 +160,14 @@ function serverCmdObserveSecondFlag(%client)
|
||||||
{
|
{
|
||||||
if(Game.class !$= CTFGame && Game.class !$= SCtFGame)
|
if(Game.class !$= CTFGame && Game.class !$= SCtFGame)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// client must be an observer
|
// client must be an observer
|
||||||
if(%client.team > 0 || !$Observers) //$Observers added; Serverside var; Needs to have value to work correctly
|
if(%client.team > 0 || !$Observers) //$Observers added; Serverside var; Needs to have value to work correctly
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// check if the flag is carried by someone
|
// check if the flag is carried by someone
|
||||||
%player = $TeamFlag[2].carrier;
|
%player = $TeamFlag[2].carrier;
|
||||||
|
|
||||||
if($TeamFlag[2].isHome || %player $= "")
|
if($TeamFlag[2].isHome || %player $= "")
|
||||||
observeFlag(%client, $TeamFlag[2], 1, 2);
|
observeFlag(%client, $TeamFlag[2], 1, 2);
|
||||||
else
|
else
|
||||||
|
|
@ -173,27 +181,27 @@ function observeFlag(%client, %target, %type, %flagTeam)
|
||||||
{
|
{
|
||||||
if(!isObject(%client) || !isObject(%target) || !isObject(%client.camera))
|
if(!isObject(%client) || !isObject(%target) || !isObject(%client.camera))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if(Game.class !$= CTFGame && Game.class !$= SCtFGame)
|
if(Game.class !$= CTFGame && Game.class !$= SCtFGame)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if(%client.team > 0)
|
if(%client.team > 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// cancel any scheduled update
|
// cancel any scheduled update
|
||||||
if(isEventPending(%client.obsHudSchedule))
|
if(isEventPending(%client.obsHudSchedule))
|
||||||
cancel(%client.obsHudSchedule);
|
cancel(%client.obsHudSchedule);
|
||||||
|
|
||||||
// must be an observer when observing other clients
|
// must be an observer when observing other clients
|
||||||
if(%client.getControlObject() != %client.camera)
|
if(%client.getControlObject() != %client.camera)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
//can't observer yourself
|
//can't observer yourself
|
||||||
if(%client == %target)
|
if(%client == %target)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
%count = ClientGroup.getCount();
|
%count = ClientGroup.getCount();
|
||||||
|
|
||||||
//can't go into observer mode if you're the only client
|
//can't go into observer mode if you're the only client
|
||||||
if(%count <= 1 && %type != 1)
|
if(%count <= 1 && %type != 1)
|
||||||
return;
|
return;
|
||||||
|
|
@ -202,18 +210,18 @@ function observeFlag(%client, %target, %type, %flagTeam)
|
||||||
{
|
{
|
||||||
if(isObject(%client.player))
|
if(isObject(%client.player))
|
||||||
%client.player.scriptKill(0); // the player is still playing (this shouldn't be happen)
|
%client.player.scriptKill(0); // the player is still playing (this shouldn't be happen)
|
||||||
|
|
||||||
%client.camera.getDataBlock().setMode(%client.camera, "followFlag", $TeamFlag[%flagTeam]);
|
%client.camera.getDataBlock().setMode(%client.camera, "followFlag", $TeamFlag[%flagTeam]);
|
||||||
%client.setControlObject(%client.camera);
|
%client.setControlObject(%client.camera);
|
||||||
clearBottomPrint(%client);
|
clearBottomPrint(%client);
|
||||||
|
|
||||||
// was the client observing a player before?
|
// was the client observing a player before?
|
||||||
if(%client.observeClient != -1)
|
if(%client.observeClient != -1)
|
||||||
{
|
{
|
||||||
observerFollowUpdate(%client, -1, false);
|
observerFollowUpdate(%client, -1, false);
|
||||||
messageClient(%client.observeClient, 'ObserverEnd', '\c1%1 is no longer observing you.', %client.name);
|
messageClient(%client.observeClient, 'ObserverEnd', '\c1%1 is no longer observing you.', %client.name);
|
||||||
%client.observeClient = -1;
|
%client.observeClient = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else // Player
|
else // Player
|
||||||
{
|
{
|
||||||
|
|
@ -232,22 +240,23 @@ function observeFlag(%client, %target, %type, %flagTeam)
|
||||||
if(!%found)
|
if(!%found)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(isObject(%client.player))
|
if(isObject(%client.player))
|
||||||
%client.player.scriptKill(0); // the player is still playing (this shouldn't be happen)
|
%client.player.scriptKill(0); // the player is still playing (this shouldn't be happen)
|
||||||
|
|
||||||
observerFollowUpdate(%client, %target, true);
|
observerFollowUpdate(%client, %target, true);
|
||||||
displayObserverHud(%client, %target);
|
displayObserverHud(%client, %target);
|
||||||
messageClient(%target, 'Observer', '\c1%1 is now observing you.', %client.name);
|
messageClient(%target, 'Observer', '\c1%1 is now observing you.', %client.name);
|
||||||
|
|
||||||
// was the client observing a player before?
|
// was the client observing a player before?
|
||||||
if(%client.observeClient != -1)
|
if(%client.observeClient != -1)
|
||||||
messageClient(%client.observeClient, 'ObserverEnd', '\c1%1 is no longer observing you.', %client.name);
|
messageClient(%client.observeClient, 'ObserverEnd', '\c1%1 is no longer observing you.', %client.name);
|
||||||
|
|
||||||
%client.camera.getDataBlock().setMode(%client.camera, "observerFollow", %target.player);
|
%client.camera.getDataBlock().setMode(%client.camera, "observerFollow", %target.player);
|
||||||
%client.setControlObject(%client.camera);
|
%client.setControlObject(%client.camera);
|
||||||
%client.observeClient = %target;
|
%client.observeClient = %target;
|
||||||
}
|
}
|
||||||
|
|
||||||
//clear the observer fly mode var...
|
//clear the observer fly mode var...
|
||||||
%client.observeFlyClient = -1;
|
%client.observeFlyClient = -1;
|
||||||
%client.observingFlag = true;
|
%client.observingFlag = true;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue