diff --git a/Classic/scripts/autoexec/LockedTeams.cs b/Classic/scripts/autoexec/LockedTeams.cs new file mode 100644 index 0000000..84aca36 --- /dev/null +++ b/Classic/scripts/autoexec/LockedTeams.cs @@ -0,0 +1,50 @@ +//LockedTeams.cs + +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. Asked 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. Asked the admin to set your team." ); + serverCmdClientMakeObserver( %client ); + } + return; + } +} + +function serverCmdClientTeamChange(%client, %option) +{ + if ($LockedTeams) + { + messageClient( %client, '', "Teams are locked. Asked the admin to set your team." ); + return; + } + Parent::serverCmdClientTeamChange(%client, %option); +} + +}; \ No newline at end of file diff --git a/Classic/scripts/autoexec/MissionTypeOptions.cs b/Classic/scripts/autoexec/MissionTypeOptions.cs index 0515b6c..5db87b4 100644 --- a/Classic/scripts/autoexec/MissionTypeOptions.cs +++ b/Classic/scripts/autoexec/MissionTypeOptions.cs @@ -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(); } diff --git a/Classic/scripts/autoexec/VoteMenu.cs b/Classic/scripts/autoexec/VoteMenu.cs index 59312b7..552b331 100644 --- a/Classic/scripts/autoexec/VoteMenu.cs +++ b/Classic/scripts/autoexec/VoteMenu.cs @@ -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) {