Merge branch 'NoEvo'

This commit is contained in:
ChocoTaco1 2021-03-29 19:40:10 -04:00
commit 315a54ffb8
9 changed files with 189 additions and 48 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 !$= "")

View file

@ -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 !$= "")

View file

@ -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]));

View file

@ -0,0 +1,79 @@
// LockedTeams.cs
// Toggled in serverCmdStartNewVote in VoteMenu.cs
//
// case "ToggleLockedTeams":
// if (%client.isAdmin)
// {
// if(!$LockedTeams)
// {
// if(!isActivePackage(LockedTeams))
// activatePackage(LockedTeams);
// $LockedTeams = 1;
// messageClient( %client, '', "Locked Teams has been enabled.~wfx/powered/vehicle_screen_on.wav" );
// adminLog(%client, " has enabled Locked Teams.");
// }
// else
// {
// if(isActivePackage(LockedTeams))
// deactivatePackage(LockedTeams);
// $LockedTeams = 0;
// messageClient( %client, '', "Locked Teams has been disabled.~wfx/powered/vehicle_screen_on.wav" );
// adminLog(%client, " has disabled Locked Teams.");
// }
// }
// return;
// Reset in MissionTypeOptions.cs
//
// if(isActivePackage(LockedTeams) && !$LockedTeams)
// deactivatePackage(LockedTeams);
package LockedTeams
{
// function serverCmdClientJoinTeam(%client, %team)
// {
// if ($LockedTeams)
// {
// messageClient( %client, '', "Teams are locked. Asked the admin to set your team. (JoinTeam)" );
// return;
// }
// Parent::serverCmdClientJoinTeam(%client, %team);
// }
function serverCmdClientJoinGame(%client)
{
if ($LockedTeams)
{
messageClient( %client, '', "Teams are locked. Ask the admin to set your team." );
return;
}
Parent::serverCmdClientJoinGame(%client);
}
function serverCmdClientPickedTeam(%client, %option)
{
Parent::serverCmdClientPickedTeam(%client, %option); //Put first
if($LockedTeams) //Added
{
if($Host::TournamentMode && %client.team !$= 0) //Added
{
messageClient( %client, '', "Teams are locked. Ask the admin to set your team." );
serverCmdClientMakeObserver( %client );
}
return;
}
}
function serverCmdClientTeamChange(%client, %option)
{
if ($LockedTeams)
{
messageClient( %client, '', "Teams are locked. Ask the admin to set your team." );
return;
}
Parent::serverCmdClientTeamChange(%client, %option);
}
};

View file

@ -26,6 +26,7 @@ function loadMissionStage2()
$Host::Password = $Host::PUGPassword;
else if( !$Host::TournamentMode )
$Host::Password = "";
$LockedTeams = 0;
//Set server mode to SPEED
$Host::HiVisibility = "0";
@ -34,6 +35,7 @@ function loadMissionStage2()
{
$Host::Password = "";
$Host::TournamentMode = 0;
$LockedTeams = 0;
//Set server mode to DISTANCE
$Host::HiVisibility = "1";
@ -48,6 +50,9 @@ function loadMissionStage2()
$Host::NoBaseRapeEnabled = 0;
else
$Host::NoBaseRapeEnabled = 1;
if(isActivePackage(LockedTeams) && !$LockedTeams)
deactivatePackage(LockedTeams);
parent::loadMissionStage2();
}

View file

@ -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

15
Classic/scripts/autoexec/TacoOverrides.cs Normal file → Executable file
View file

@ -166,11 +166,11 @@ function DefaultGame::missionLoadDone(%game)
{
parent::missionLoadDone(%game);
for(%i = 0; %i < MissionGroup.getCount(); %i++)
InitContainerRadiusSearch("0 0 0", 2048, $TypeMasks::WaterObjectType);
while ((%itemObj = containerSearchNext()) != 0)
{
%obj = MissionGroup.getObject(%i);
if(%obj.getClassName() $= "WaterBlock")
%obj.viscosity = $globalviscosity;
if(%itemObj.getClassName() $= "WaterBlock")
%itemObj.viscosity = $globalviscosity;
}
}
@ -257,7 +257,7 @@ function VehicleData::respawn(%data, %marker)
{
%mask = $TypeMasks::PlayerObjectType | $TypeMasks::VehicleObjectType | $TypeMasks::TurretObjectType;
InitContainerRadiusSearch(%marker.getWorldBoxCenter(), %data.checkRadius, %mask);
if(containerSearchNext() == 0)
if(containerSearchNext() == 0)
{
%newObj = %data.create(%marker.curTeam, %marker);
%newObj.startFade(1000, 0, false);
@ -285,7 +285,7 @@ function VehicleData::createPositionMarker(%data, %obj)
deployed = %obj.deployed;
curTeam = %obj.team;
respawnTime = %obj.respawnTime;
};
};
%marker.setTransform(%obj.getTransform());
MissionCleanup.add(%marker);
return %marker;
@ -296,3 +296,6 @@ function VehicleData::createPositionMarker(%data, %obj)
// Prevent package from being activated if it is already
if (!isActivePackage(TacoOverrides))
activatePackage(TacoOverrides);
//Ban WhiteOut Grenade
$InvBanList[CTF, "FlashGrenade"] = 1;

View file

@ -171,6 +171,11 @@ function DefaultGame::sendGameVoteMenu(%game, %client, %key)
messageClient(%client, 'MsgVoteItem', "", %key, 'TogglePUGpassword', 'Disable PUG Password', 'Disable PUG Password');
else
messageClient(%client, 'MsgVoteItem', "", %key, 'TogglePUGpassword', 'Enable PUG Password', 'Enable PUG Password');
if($LockedTeams)
messageClient(%client, 'MsgVoteItem', "", %key, 'ToggleLockedTeams', 'Disable Locked Teams', 'Disable Locked Teams');
else
messageClient(%client, 'MsgVoteItem', "", %key, 'ToggleLockedTeams', 'Enable Locked Teams', 'Enable Locked Teams');
}
// if(%multipleTeams)
// {
@ -514,6 +519,27 @@ function serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, %
}
}
return;
case "ToggleLockedTeams":
if (%client.isAdmin)
{
if(!$LockedTeams)
{
if(!isActivePackage(LockedTeams))
activatePackage(LockedTeams);
$LockedTeams = 1;
messageClient( %client, '', "Locked Teams has been enabled.~wfx/powered/vehicle_screen_on.wav" );
adminLog(%client, " has enabled Locked Teams.");
}
else
{
if(isActivePackage(LockedTeams))
deactivatePackage(LockedTeams);
$LockedTeams = 0;
messageClient( %client, '', "Locked Teams has been disabled.~wfx/powered/vehicle_screen_on.wav" );
adminLog(%client, " has disabled Locked Teams.");
}
}
return;
case "ToggleTourneyNetClient":
if (%client.isAdmin)
{
@ -542,7 +568,7 @@ function serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, %
adminLog(%client, " has enabled Net Tourney Client checking.");
}
}
return;
return;
case "ForceVote":
if (%client.isAdmin && $Host::AllowAdminVotes)
{
@ -1389,7 +1415,11 @@ function calcVotes(%typeName, %arg1, %arg2, %arg3, %arg4)
}
}
Game.evalVote(%typeName, false, %arg1, %arg2, %arg3, %arg4);
if((Game.totalVotesFor + Game.totalVotesAgainst) >= mFloor(ClientGroup.getCount()/2))
Game.evalVote(%typeName, false, %arg1, %arg2, %arg3, %arg4);
else
messageAll('MsgVoteFailed', '\c2Vote minimum participation not reached. Total votes %1 out of %2 required.',(Game.totalVotesFor + Game.totalVotesAgainst),mFloor(ClientGroup.getCount()/2));
Game.scheduleVote = "";
Game.scheduleVoteArgs = "";
Game.kickClient = "";

View file

@ -216,14 +216,14 @@ function CreateServer(%mission, %missionType)
// z0dd - ZOD, 07/19/03. fix for stuttering dual processor servers.
// Moved here because it seems server must be created first.
if(($Host::ClassicUseHighPerformanceCounter $= "0") || ($Host::ClassicUseHighPerformanceCounter == 0))
setPerfCounterEnable(0);
else if(($Host::ClassicUseHighPerformanceCounter $= "1") || ($Host::ClassicUseHighPerformanceCounter == 1))
if(($Host::ClassicUseHighPerformanceCounter $= "1") || ($Host::ClassicUseHighPerformanceCounter == 1))
setPerfCounterEnable(1);
else if(($Host::ClassicUseHighPerformanceCounter $= "2") || ($Host::ClassicUseHighPerformanceCounter == 2))
setPerfCounterEnable(2);
else if(($Host::ClassicUseHighPerformanceCounter $= "3") || ($Host::ClassicUseHighPerformanceCounter == 3))
setPerfCounterEnable(3);
else
setPerfCounterEnable(0);
// Load Banlist
ClassicLoadBanlist();