diff --git a/Classic/prefs/serverPrefs.cs b/Classic/prefs/serverPrefs.cs index 1967cdb..bee4996 100644 --- a/Classic/prefs/serverPrefs.cs +++ b/Classic/prefs/serverPrefs.cs @@ -8,8 +8,8 @@ $Host::AllowAdminStopVote = 1; $Host::AllowAdminStopVotes = 1; $Host::AllowAdminVotes = 1; $Host::AllowMapScript = "True"; -$Host::AllowPlayerTournamentModeVotekick = 0; $Host::AllowPlayerVoteChangeMission = 1; +$Host::AllowPlayerVoteNextMission = 1; $Host::AllowPlayerVoteSkipMission = 1; $Host::AllowPlayerVoteTeamDamage = 0; $Host::AllowPlayerVoteTimeLimit = 1; diff --git a/Classic/scripts/autoexec/MissionTypeOptions.cs b/Classic/scripts/autoexec/MissionTypeOptions.cs index 0efe6b1..e724c36 100644 --- a/Classic/scripts/autoexec/MissionTypeOptions.cs +++ b/Classic/scripts/autoexec/MissionTypeOptions.cs @@ -28,37 +28,37 @@ function loadMissionStage2() { if($Host::TournamentMode && $Host::PUGautoPassword) $Host::Password = $Host::PUGPassword; - else if(!$Host::TournamentMode) - { - if($Host::Password) - $Host::Password = ""; - if($LockedTeams) - $LockedTeams = 0; - } //Set server mode to SPEED - $Host::HiVisibility = "0"; + $Host::HiVisibility = 0; } else if($CurrentMissionType $= "LakRabbit") { - if($Host::Password) - $Host::Password = ""; - if($LockedTeams) - $LockedTeams = 0; if($Host::TournamentMode) $Host::TournamentMode = 0; //Set server mode to DISTANCE - $Host::HiVisibility = "1"; + $Host::HiVisibility = 1; } case 1: $Host::Password = $Host::PUGPassword; - $Host::HiVisibility = "0"; //always SPEED + $Host::HiVisibility = 0; //always SPEED } - //TimeLimit Always 30 minutes in Tourney Mode if($Host::TournamentMode) - $Host::TimeLimit = "30"; + $Host::TimeLimit = 30; //TimeLimit Always 30 minutes in Tourney Mode + else + { + //Disable everything + if($Host::Password) + $Host::Password = ""; + if($LockedTeams) + $LockedTeams = 0; + if($RestrictedVoting) + $RestrictedVoting = 0; + } + if(isActivePackage(LockedTeams) && !$LockedTeams) + deactivatePackage(LockedTeams); //Siege NoBaseRape Fix if($CurrentMissionType $= "Siege") @@ -66,11 +66,9 @@ function loadMissionStage2() else $Host::NoBaseRapeEnabled = 1; - if(isActivePackage(LockedTeams) && !$LockedTeams) - deactivatePackage(LockedTeams); - parent::loadMissionStage2(); + //Map Change Center Print. Used to advertise upcoming events if($Host::MapChangeMSG) centerPrintAll($Host::MapChangeMSGContent, 12, 3); } diff --git a/Classic/scripts/autoexec/ObserverCooldown.cs b/Classic/scripts/autoexec/ObserverCooldown.cs index ac0b407..a0e071d 100644 --- a/Classic/scripts/autoexec/ObserverCooldown.cs +++ b/Classic/scripts/autoexec/ObserverCooldown.cs @@ -7,25 +7,27 @@ package ObserverTimeout { -function serverCmdClientMakeObserver( %client ) +function serverCmdClientMakeObserver(%client) { - //10 second cooldown on becoming an observer + //10 second cooldown on becoming an observer %timeDif = getSimTime() - %client.observerTimeout; %timeDif1 = getSimTime() - %client.observerMsg; if(%timeDif > 10000 || !%client.observerTimeout || %client.isAdmin) { - if ( isObject( Game ) && Game.kickClient != %client ) - Game.forceObserver( %client, "playerChoose" ); - %client.observerProtectStart = getSimTime(); %client.observerTimeout = getSimTime(); + + if (isObject(Game) && Game.kickClient != %client) + Game.forceObserver(%client, "playerChoose"); + if($Host::TournamentMode) //Added to clear FIRE centerPrint + ClearCenterPrint(%client); } //1 second cooldown on message else if((%timeDif1 > 1000 || !%client.observerMsg)) { %wait = mFloor((10000 - (getSimTime() - %client.observerProtectStart)) / 1000); messageClient(%client, 'MsgObserverCooldown', '\c3Observer Cooldown:\cr Please wait another %1 seconds.', %wait ); - + %client.observerMsg = getSimTime(); } } diff --git a/Classic/scripts/autoexec/VoteMenu.cs b/Classic/scripts/autoexec/VoteMenu.cs index ffbf88a..251c3a8 100644 --- a/Classic/scripts/autoexec/VoteMenu.cs +++ b/Classic/scripts/autoexec/VoteMenu.cs @@ -9,8 +9,7 @@ //$Host::AllowPlayerVoteTimeLimit = 1; //$Host::AllowPlayerVoteTournamentMode = 1; //$Host::AllowPlayerVoteTeamDamage = 0; -//$Host::AllowPlayerTournamentModeVotekick = 0; -$Host::AllowPlayerVoteNextMission = 1; +//$Host::AllowPlayerVoteNextMission = 1; //Vote Delay //Delay the ability to vote (For everyone) at the beginning of the match @@ -103,19 +102,16 @@ function DefaultGame::sendGameVoteMenu(%game, %client, %key) } // TEAM OPTIONS - if(!$Host::TournamentMode) + if(%client.team != 0) //he isn't an observer { - if(%client.team != 0) // he isn't an observer + if(!%client.isAdmin && !$Host::TournamentMode) { if(%multipleTeams) messageClient(%client, 'MsgVoteItem', "", %key, 'ChooseTeam', "", 'Change your Team'); if($MatchStarted) messageClient(%client, 'MsgVoteItem', "", %key, 'MakeObserver', "", 'Become an Observer'); } - } - else if(%client.isAdmin) // only admins can change team during tournament mode - { - if(%client.team != 0) // he isn't an observer + else if(%client.isAdmin) //only admins can change team during tournament mode { if(%multipleTeams) messageClient(%client, 'MsgVoteItem', "", %key, 'ChooseTeam', "", 'Change your Team'); @@ -124,11 +120,8 @@ function DefaultGame::sendGameVoteMenu(%game, %client, %key) } //Beginning match Vote Delay - if(!%client.isAdmin) - { - if((getSimTime() - $VoteDelay) < ($Host::VoteDelayTime * 1000)) + if(!%client.isAdmin && (getSimTime() - $VoteDelay) < ($Host::VoteDelayTime * 1000)) return; - } if(!%client.canVote && !%isAdmin) return; @@ -136,114 +129,129 @@ function DefaultGame::sendGameVoteMenu(%game, %client, %key) //Standard Vote Options if(%game.scheduleVote $= "") { - if(!%client.isAdmin) //Not an admin + //Start Match + if(!$MatchStarted && !$CountdownStarted && $Host::TournamentMode) { - if(!$Host::TournamentMode) + if(!%client.isAdmin) + messageClient(%client, 'MsgVoteItem', "", %key, 'VoteMatchStart', 'Start Match', 'Vote to Start the Match'); + else + messageClient(%client, 'MsgVoteItem', "", %key, 'VoteMatchStart', 'Start Match', 'Start Match'); + } + //Cancel Match Start + if(!$MatchStarted && $CountdownStarted && $Host::TournamentMode && %client.isAdmin) + messageClient(%client, 'MsgVoteItem', "", %key, 'cancelMatchStart', 'Cancel Match Start', 'Cancel Match Start'); + //Vote Free For All Mode + if($Host::TournamentMode) + { + if(!%client.isAdmin) + messageClient(%client, 'MsgVoteItem', "", %key, 'VoteFFAMode', 'Change server to Free For All.', 'Vote Free For All Mode'); + else + messageClient(%client, 'MsgVoteItem', "", %key, 'VoteFFAMode', 'Change server to Free For All.', 'Change FFA Mode'); + } + //Vote Tournament Mode + if(!$Host::TournamentMode) + { + if(!%client.isAdmin) { - //if($Host::AllowPlayerVoteChangeMission) //Tourny Only for now - messageClient(%client, 'MsgVoteItem', "", %key, 'VoteChangeMission', 'change the mission to', 'Vote to Change the Mission'); - if($Host::AllowPlayerVoteNextMission) - messageClient(%client, 'MsgVoteItem', "", %key, 'VoteNextMission', 'set next mission to', 'Vote to Set the Next Mission'); - if($Host::AllowPlayerVoteTournamentMode) + if($Host::AllowPlayerVoteTournamentMode && !$RestrictedVoting) messageClient(%client, 'MsgVoteItem', "", %key, 'VoteTournamentMode', 'Change server to Tournament.', 'Vote Tournament Mode'); - if($Host::AllowPlayerVoteTimeLimit) - messageClient(%client, 'MsgVoteItem', "", %key, 'VoteChangeTimeLimit', 'change the time limit', 'Vote to Change the Time Limit'); - if($Host::AllowPlayerVoteSkipMission) - messageClient(%client, 'MsgVoteItem', "", %key, 'VoteSkipMission', 'skip the mission to', 'Vote to Skip Mission' ); - - if(%multipleTeams && $Host::AllowPlayerVoteTeamDamage) - { - if($teamDamage) - messageClient(%client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'disable team damage', 'Vote to Disable Team Damage'); - else - messageClient(%client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'enable team damage', 'Vote to Enable Team Damage'); - } } else - { - if(!$MatchStarted && !$CountdownStarted) - messageClient(%client, 'MsgVoteItem', "", %key, 'VoteMatchStart', 'Start Match', 'Vote to Start the Match'); - if($Host::AllowPlayerVoteChangeMission) - messageClient(%client, 'MsgVoteItem', "", %key, 'VoteChangeMission', 'change the mission to', 'Vote to Change the Mission'); - if($Host::AllowPlayerVoteNextMission) - messageClient(%client, 'MsgVoteItem', "", %key, 'VoteNextMission', 'set next mission to', 'Vote to Set the Next Mission'); - messageClient(%client, 'MsgVoteItem', "", %key, 'VoteFFAMode', 'Change server to Free For All.', 'Vote Free For All Mode'); - if($Host::AllowPlayerVoteTimeLimit) - messageClient(%client, 'MsgVoteItem', "", %key, 'VoteChangeTimeLimit', 'change the time limit', 'Vote to Change the Time Limit'); - - if(%multipleTeams && $Host::AllowPlayerVoteTeamDamage) - { - if($teamDamage) - messageClient(%client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'disable team damage', 'Vote to Disable Team Damage'); - else - messageClient(%client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'enable team damage', 'Vote to Enable Team Damage'); - } - } - } - else //Is an Admin - { - if(!$Host::TournamentMode) - { messageClient(%client, 'MsgVoteItem', "", %key, 'VoteTournamentMode', 'Change server to Tournament.', 'Tournament Mode'); - messageClient(%client, 'MsgVoteItem', "", %key, 'VoteChangeMission', 'change the mission to', 'Change the Mission'); - if(!$voteNext) - messageClient(%client, 'MsgVoteItem', "", %key, 'VoteNextMission', 'set next mission to', 'Set the Next Mission'); - else - messageClient(%client, 'MsgVoteItem', "", %key, 'ClearNextMap', 'Clear Next Set Map', 'Clear Next Set Map'); - messageClient(%client, 'MsgVoteItem', "", %key, 'VoteSkipMission', 'skip the mission to', 'Skip the Mission' ); - messageClient(%client, 'MsgVoteItem', "", %key, 'VoteChangeTimeLimit', 'change the time limit', 'Change the Time Limit'); - if(%multipleTeams) + } + //Vote Change Mission + if(!%client.isAdmin) + { + if($Host::AllowPlayerVoteChangeMission && !$RestrictedVoting) + messageClient(%client, 'MsgVoteItem', "", %key, 'VoteChangeMission', 'change the mission to', 'Vote to Change the Mission'); + } + else + messageClient(%client, 'MsgVoteItem', "", %key, 'VoteChangeMission', 'change the mission to', 'Change the Mission'); + //Vote Change Next Mission + if(!%client.isAdmin) + { + if($Host::AllowPlayerVoteNextMission && !$RestrictedVoting) + messageClient(%client, 'MsgVoteItem', "", %key, 'VoteNextMission', 'set next mission to', 'Vote to Set the Next Mission'); + } + else + { + if(!$voteNext) + messageClient(%client, 'MsgVoteItem', "", %key, 'VoteNextMission', 'set next mission to', 'Set the Next Mission'); + else + messageClient(%client, 'MsgVoteItem', "", %key, 'ClearNextMap', 'Clear Next Set Map', 'Clear Next Set Map'); + } + //Vote Change Time + if(!%client.isAdmin) + { + if($Host::AllowPlayerVoteTimeLimit && !$RestrictedVoting) + messageClient(%client, 'MsgVoteItem', "", %key, 'VoteChangeTimeLimit', 'change the time limit', 'Vote to Change the Time Limit'); + } + else + messageClient(%client, 'MsgVoteItem', "", %key, 'VoteChangeTimeLimit', 'change the time limit', 'Change the Time Limit'); + //Vote Skip Mission + if(!%client.isAdmin) + { + if($Host::AllowPlayerVoteSkipMission && !$RestrictedVoting) + messageClient(%client, 'MsgVoteItem', "", %key, 'VoteSkipMission', 'skip the mission to', 'Vote to Skip Mission' ); + } + else + messageClient(%client, 'MsgVoteItem', "", %key, 'VoteSkipMission', 'skip the mission to', 'Skip the Mission' ); + //Admin Vote Menu + if(%client.isAdmin && $Host::AllowAdminVotes) + messageClient(%client, 'MsgVoteItem', "", %key, 'ForceVote', 'Vote to ...', 'Vote to ...'); + //PUG Password + if(%client.isAdmin && $Host::TournamentMode) + { + if($Host::Password !$= "") + messageClient(%client, 'MsgVoteItem', "", %key, 'TogglePUGpassword', 'Disable PUG Password', 'Disable PUG Password'); + else + messageClient(%client, 'MsgVoteItem', "", %key, 'TogglePUGpassword', 'Enable PUG Password', 'Enable PUG Password'); + } + //Locked Teams + if(%client.isAdmin && $Host::TournamentMode) + { + 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'); + } + //Restricted Voting + if(%client.isAdmin && $Host::TournamentMode) + { + if($RestrictedVoting) + messageClient(%client, 'MsgVoteItem', "", %key, 'ToggleRestrictedVoting', 'Disable Restricted Voting', 'Disable Restricted Voting'); + else + messageClient(%client, 'MsgVoteItem', "", %key, 'ToggleRestrictedVoting', 'Enable Restricted Voting', 'Enable Restricted Voting'); + } + //Vote Team Damage + if(%multipleTeams) + { + if(!%client.isAdmin) + { + if($Host::AllowPlayerVoteTeamDamage && !$RestrictedVoting) { if($teamDamage) - messageClient(%client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'disable team damage', 'Disable Team Damage'); + messageClient(%client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'disable team damage', 'Vote to Disable Team Damage'); else - messageClient(%client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'enable team damage', 'Enable Team Damage'); + messageClient(%client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'enable team damage', 'Vote to Enable Team Damage'); } - if($Host::AllowAdminVotes) - messageClient(%client, 'MsgVoteItem', "", %key, 'ForceVote', 'Vote to ...', 'Vote to ...'); } else { - if(!$MatchStarted && !$CountdownStarted) - messageClient(%client, 'MsgVoteItem', "", %key, 'VoteMatchStart', 'Start Match', 'Start Match'); - if(!$MatchStarted && $CountdownStarted) - messageClient(%client, 'MsgVoteItem', "", %key, 'cancelMatchStart', 'Cancel Match Start', 'Cancel Match Start'); - messageClient(%client, 'MsgVoteItem', "", %key, 'VoteFFAMode', 'Change server to Free For All.', 'Free For All Mode'); - messageClient(%client, 'MsgVoteItem', "", %key, 'VoteChangeMission', 'change the mission to', 'Change the Mission'); - if(!$voteNext) - messageClient(%client, 'MsgVoteItem', "", %key, 'VoteNextMission', 'set next mission to', 'Set the Next Mission'); + if($teamDamage) + messageClient(%client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'disable team damage', 'Disable Team Damage'); else - messageClient(%client, 'MsgVoteItem', "", %key, 'ClearNextMap', 'Clear Next Set Map', 'Clear Next Set Map'); - messageClient(%client, 'MsgVoteItem', "", %key, 'VoteChangeTimeLimit', 'change the time limit', 'Change the Time Limit'); - if($Host::AllowAdminVotes) - messageClient(%client, 'MsgVoteItem', "", %key, 'ForceVote', 'Vote to ...', 'Vote to ...'); - if($Host::Password !$= "") - 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) - { - if($teamDamage) - messageClient(%client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'disable team damage', 'Disable Team Damage'); - else - messageClient(%client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'enable team damage', 'Enable Team Damage'); - } + messageClient(%client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'enable team damage', 'Enable Team Damage'); } - - if(%client.isSuperAdmin) //Super Admin Only - { - if($Host::EnableNetTourneyClient) //Toggle Tournament Net Client - messageClient( %client, 'MsgVoteItem', "", %key, 'ToggleTourneyNetClient', 'Disable Tournament Net Client', "Disable Tournament Net Client" ); - else - messageClient( %client, 'MsgVoteItem', "", %key, 'ToggleTourneyNetClient', 'Enable Tournament Net Client', "Enable Tournament Net Client" ); - } - } - + //Super Admin Only + if(%client.isSuperAdmin) + { + if($Host::EnableNetTourneyClient) //Toggle Tournament Net Client + messageClient( %client, 'MsgVoteItem', "", %key, 'ToggleTourneyNetClient', 'Disable Tournament Net Client', "Disable Tournament Net Client" ); + else + messageClient( %client, 'MsgVoteItem', "", %key, 'ToggleTourneyNetClient', 'Enable Tournament Net Client', "Enable Tournament Net Client" ); + } //Everyone if ($Host::ServerRules[1] !$= "" ) messageClient( %client, 'MsgVoteItem', "", %key, 'showServerRules', 'show server rules', "Show Server Rules" ); @@ -281,9 +289,9 @@ function serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, % } else // Player is voting to kick { - if($Host::TournamentMode && !$Host::AllowPlayerTournamentModeVotekick) // Dont allow Votekicks in Tournament Mode + if($Host::TournamentMode && $RestrictedVoting) // Dont allow Votekicks in Tournament Mode { - messageClient(%client, "", "\c2No votekicks in Tournament Mode."); + messageClient(%client, "", "\c2No votekicks in Tournament Mode at this time."); return; } @@ -545,25 +553,25 @@ function serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, % } case "TogglePUGpassword": - if (%client.isAdmin) + if (%client.isAdmin && $Host::TournamentMode) { if($Host::Password !$= "") { $Host::Password = ""; - messageAdmins('', %client.nameBase @ " has disabled pug password.~wfx/powered/vehicle_screen_on.wav"); - adminLog(%client, " has disabled pug password." ); + messageAdmins('', %client.nameBase @ " has disabled the PUG password.~wfx/powered/vehicle_screen_on.wav"); + adminLog(%client, " has disabled PUG password." ); } else { $Host::Password = $Host::PUGPassword; - messageAdmins('', %client.nameBase @ " has enabled pug password.~wfx/powered/vehicle_screen_on.wav" ); - adminLog(%client, " has enabled pug password." ); + messageAdmins('', %client.nameBase @ " has enabled the PUG password (\"" @ $Host::PUGPassword @ "\").~wfx/powered/vehicle_screen_on.wav"); + adminLog(%client, " has enabled PUG password." ); } } return; case "ToggleLockedTeams": - if (%client.isAdmin) + if (%client.isAdmin && $Host::TournamentMode) { if(!$LockedTeams) { @@ -584,8 +592,26 @@ function serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, % } return; + case "ToggleRestrictedVoting": + if(%client.isAdmin && $Host::TournamentMode) + { + if(!$RestrictedVoting) + { + $RestrictedVoting = 1; + messageAdmins('', %client.nameBase @ " has enabled restricted voting (No Map, Time, Kick, or Team Damage Votes).~wfx/powered/vehicle_screen_on.wav"); + adminLog(%client, " has enabled restricted voting." ); + } + else + { + $RestrictedVoting = 0; + messageAdmins('', %client.nameBase @ " has disabled restricted voting.~wfx/powered/vehicle_screen_on.wav" ); + adminLog(%client, " has disabled restricted voting." ); + } + } + return; + case "ToggleTourneyNetClient": - if (%client.isAdmin) + if(%client.isAdmin && $Host::TournamentMode) { if($Host::EnableNetTourneyClient) { @@ -1447,12 +1473,12 @@ function DefaultGame::sendGamePlayerPopupMenu( %game, %client, %targetClient, %k messageClient( %client, 'MsgPlayerPopupItem', "", %key, "ChangeTeam", "", %str, %caseId ); } - // z0dd - ZOD, 7/11/03. Allow Super admins to force themselves to obs. - if( %isSuperAdmin ) - { - if(%isTargetSelf && !%isTargetObserver) - messageClient( %client, 'MsgPlayerPopupItem', "", %key, "ToObserver", "", 'Force observer', 5 ); - } + // z0dd - ZOD, 7/11/03. Allow Super admins to force themselves to obs. + if( %isSuperAdmin ) + { + if(%isTargetSelf && !%isTargetObserver) + messageClient( %client, 'MsgPlayerPopupItem', "", %key, "ToObserver", "", 'Force observer', 5 ); + } } else if ( %isTargetObserver ) { diff --git a/Classic/scripts/serverDefaults.cs b/Classic/scripts/serverDefaults.cs index dca31e9..07d1e8c 100755 --- a/Classic/scripts/serverDefaults.cs +++ b/Classic/scripts/serverDefaults.cs @@ -188,7 +188,7 @@ $Host::AllowPlayerVoteSkipMission = 1; $Host::AllowPlayerVoteTimeLimit = 1; $Host::AllowPlayerVoteTournamentMode = 1; $Host::AllowPlayerVoteTeamDamage = 1; -$Host::AllowPlayerTournamentModeVotekick = 1; +$Host::AllowPlayerVoteNextMission = 1; $Host::NoBaseRapeEnabled = 1; //Enable or Disable No Base Rape $Host::NoBaseRapePlayerCount = 14; //Min number players the turn off No Base Rape $Host::AveragePings = 1; //Show Average ping in F2 menu