Merge branch 'NoEvo'

This commit is contained in:
ChocoTaco 2021-08-16 16:12:17 -04:00
commit 4738aad971
9 changed files with 183 additions and 51 deletions

View file

@ -10,6 +10,7 @@ $Host::AllowAdminVotes = 1;
$Host::AllowMapScript = "True"; $Host::AllowMapScript = "True";
$Host::AllowPlayerVoteChangeMission = 1; $Host::AllowPlayerVoteChangeMission = 1;
$Host::AllowPlayerVoteSkipMission = 1; $Host::AllowPlayerVoteSkipMission = 1;
$Host::AllowPlayerVoteTeamDamage = 0;
$Host::AllowPlayerVoteTimeLimit = 1; $Host::AllowPlayerVoteTimeLimit = 1;
$Host::AllowPlayerVoteTournamentMode = 0; $Host::AllowPlayerVoteTournamentMode = 0;
$Host::AnimateWithTransitions = 1; $Host::AnimateWithTransitions = 1;
@ -180,6 +181,7 @@ $Host::TN::echo = 1;
$Host::TournamentMode = 0; $Host::TournamentMode = 0;
$Host::useCustomSkins = 1; $Host::useCustomSkins = 1;
$Host::VoteCooldown = 120; $Host::VoteCooldown = 120;
$Host::VoteDelayTime = 120;
$Host::VotePassPercent = 60; $Host::VotePassPercent = 60;
$Host::VoteSpread = 20; $Host::VoteSpread = 20;
$Host::VoteTime = "45"; $Host::VoteTime = "45";

42
Classic/scripts/LakRabbitGame.cs Normal file → Executable file
View file

@ -17,6 +17,9 @@
// Thanks for helping me test! // Thanks for helping me test!
// maradona, pip, phantom jaguar, hilikus, the_ham, pip, wiggle, dragon, pancho villa, w/o, nectar and many others.. // maradona, pip, phantom jaguar, hilikus, the_ham, pip, wiggle, dragon, pancho villa, w/o, nectar and many others..
// //
// v3.39 Aug 2021
// Added Leave Mission Area Damage from Arena
//
// v3.38 Nov 2020 // v3.38 Nov 2020
// Added Observer GameOver (Mainly for switching to CTF) // Added Observer GameOver (Mainly for switching to CTF)
// Added Missile Lak Fix // Added Missile Lak Fix
@ -2067,13 +2070,15 @@ function LakRabbitGame::resetScore(%game, %client)
function LakRabbitGame::enterMissionArea(%game, %playerData, %player) function LakRabbitGame::enterMissionArea(%game, %playerData, %player)
{ {
if(%player.getState() $= "Dead") if(%player.getState() $= "Dead")
return; return;
%player.client.outOfBounds = false; %player.client.outOfBounds = false;
messageClient(%player.client, 'EnterMissionArea', '\c1You are back in the mission area.'); messageClient(%player.client, 'EnterMissionArea', '\c1You are back in the mission area.');
logEcho(%player.client.nameBase@" (pl "@%player@"/cl "@%player.client@") entered mission area"); logEcho(%player.client.nameBase@" (pl "@%player@"/cl "@%player.client@") entered mission area");
cancel(%player.alertThread);
// Disable out of bounds kill
cancel(%player.alertThread);
} }
@ -2171,9 +2176,34 @@ function getHeight(%this)
function LakRabbitGame::leaveMissionArea(%game, %playerData, %player) function LakRabbitGame::leaveMissionArea(%game, %playerData, %player)
{ {
if(%player.getState() $= "Dead")
return;
%player.client.outOfBounds = true;
// Schedule out of bounds kill
%player.alertThread = %game.schedule(3500, "MissionAreaDamage", %player);
plzBounceOffGrid(%player, 65); plzBounceOffGrid(%player, 65);
} }
// From Arena
// ------------------------------------------------------------------ //
// Do damage to a player for being outside the mission area
function LakRabbitGame::MissionAreaDamage(%game, %player)
{
if(%player.getState() !$= "Dead")
{
%player.setDamageFlash(0.1);
%prevHurt = %player.getDamageLevel();
%player.setDamageLevel(%prevHurt + 0.09);
%player.alertThread = %game.schedule(1000, "MissionAreaDamage", %player);
}
else
%game.onClientKilled(%player.client, 0, $DamageType::OutOfBounds);
}
// z0dd - ZOD, 10/02/02. Hack for flag collision bug. // z0dd - ZOD, 10/02/02. Hack for flag collision bug.
// borlak -- stolen from classic // borlak -- stolen from classic
function LakRabbitGame::startFlagCollisionSearch(%game, %flag) function LakRabbitGame::startFlagCollisionSearch(%game, %flag)

View file

@ -278,6 +278,68 @@ if (!isActivePackage(ResetTBNGameOver))
activatePackage(ResetTBNGameOver); activatePackage(ResetTBNGameOver);
// No Base Rape Notify Script
//
// Notifys clients if NoBase rape is on or off.
//
// Enable or Disable
// $Host::EnableNoBaseRapeNotify = 1;
//
// Called in GetTeamCounts.cs
function NBRStatusNotify( %game )
{
if( $Host::EnableNoBaseRapeNotify && $Host::NoBaseRapeEnabled )
{
//On
if( $Host::NoBaseRapePlayerCount > $TotalTeamPlayerCount )
{
if( $NBRStatus !$= "PLAYEDON" )
$NBRStatus = "ON";
}
//Off
else
{
if( $NBRStatus !$= "PLAYEDOFF" )
$NBRStatus = "OFF";
}
switch$($NBRStatus)
{
case ON:
messageAll('MsgNoBaseRapeNotify', '\c1No Base Rape: \c0Enabled.');
$NBRStatus = "PLAYEDON";
case OFF:
messageAll('MsgNoBaseRapeNotify', '\c1No Base Rape: \c0Disabled.~wfx/misc/diagnostic_on.wav');
$NBRStatus = "PLAYEDOFF";
case PLAYEDON:
//Do Nothing
case PLAYEDOFF:
//Do Nothing
}
}
}
// Reset gameover
package ResetNBRNotify
{
function DefaultGame::gameOver(%game)
{
Parent::gameOver(%game);
//Reset NoBaseRapeNotify
$NBRStatus = "IDLE";
}
};
// Prevent package from being activated if it is already
if (!isActivePackage(ResetNBRNotify))
activatePackage(ResetNBRNotify);
// Team Autobalance Script // Team Autobalance Script
// //
// Determines which team needs players and proceeds to switch them // Determines which team needs players and proceeds to switch them

View file

@ -9,6 +9,15 @@
//$Host::AllowPlayerVoteSkipMission = 1; //$Host::AllowPlayerVoteSkipMission = 1;
//$Host::AllowPlayerVoteTimeLimit = 1; //$Host::AllowPlayerVoteTimeLimit = 1;
//$Host::AllowPlayerVoteTournamentMode = 1; //$Host::AllowPlayerVoteTournamentMode = 1;
//$Host::AllowPlayerVoteTeamDamage = 0;
//Vote Delay
//Delay the ability to vote (For everyone) at the beginning of the match
//$Host::VoteDelayTime = 120; //(120 is 2 mins)
//Vote Cooldown
//Time cooldown that dosnt allow a player to vote again after theyve initiated a vote
//$Host::VoteCooldown = 120; //(120 is 2 mins)
package ExtraVoteMenu package ExtraVoteMenu
{ {
@ -48,13 +57,15 @@ function DefaultGame::sendGameVoteMenu(%game, %client, %key)
{ {
messageClient(%client, 'MsgVoteItem', "", %key, 'VoteTournamentMode', 'change server to Tournament.', 'Vote Tournament Mode'); messageClient(%client, 'MsgVoteItem', "", %key, 'VoteTournamentMode', 'change server to Tournament.', 'Vote Tournament Mode');
messageClient(%client, 'MsgVoteItem', "", %key, 'VoteChangeMission', 'change the mission to', 'Vote to Change the Mission'); messageClient(%client, 'MsgVoteItem', "", %key, 'VoteChangeMission', 'change the mission to', 'Vote to Change the Mission');
// if(%multipleTeams)
// { if(%multipleTeams)
// if($teamDamage) {
// messageClient(%client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'disable team damage', 'Vote to Disable Team Damage'); if($teamDamage)
// else messageClient(%client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'disable team damage', 'Vote to Disable Team Damage');
// messageClient(%client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'enable team damage', 'Vote to Enable Team Damage'); else
// } messageClient(%client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'enable team damage', 'Vote to Enable Team Damage');
}
messageClient(%client, 'MsgVoteItem', "", %key, 'VoteChangeTimeLimit', 'change the time limit', 'Vote to Change the Time Limit'); messageClient(%client, 'MsgVoteItem', "", %key, 'VoteChangeTimeLimit', 'change the time limit', 'Vote to Change the Time Limit');
messageClient(%client, 'MsgVoteItem', "", %key, 'VoteSkipMission', 'skip the mission to', 'Vote to Skip Mission' ); messageClient(%client, 'MsgVoteItem', "", %key, 'VoteSkipMission', 'skip the mission to', 'Vote to Skip Mission' );
messageClient(%client, 'MsgVoteItem',"", %key, 'ForceVote', 'Cancel Force Vote', "Cancel 'Vote To...'"); messageClient(%client, 'MsgVoteItem',"", %key, 'ForceVote', 'Cancel Force Vote', "Cancel 'Vote To...'");
@ -65,15 +76,19 @@ function DefaultGame::sendGameVoteMenu(%game, %client, %key)
//Mission Info Header - Mission Name, Type, Caps to Win //Mission Info Header - Mission Name, Type, Caps to Win
if(%client.canVote) if(%client.canVote)
{ {
if($CurrentMissionType $= "CTF" || $CurrentMissionType $= "SCtF") switch$($CurrentMissionType)
messageClient(%client, 'MsgVoteItem', "", %key, '', $MissionDisplayName SPC "(" @ $MissionTypeDisplayName @ "):" SPC MissionGroup.CTF_scoreLimit SPC "Caps to Win",
$MissionDisplayName SPC "(" @ $MissionTypeDisplayName @ "):" SPC MissionGroup.CTF_scoreLimit SPC "Caps to Win");
else
{ {
if($CurrentMissionType $= "LakRabbit") %cap = "2000 Points to Win"; case CTF or SCtF:
else %cap = "25 Points to Win"; //DM messageClient(%client, 'MsgVoteItem', "", %key, '', $MissionDisplayName SPC "(" @ $MissionTypeDisplayName @ "):" SPC MissionGroup.CTF_scoreLimit SPC "Caps to Win",
messageClient(%client, 'MsgVoteItem', "", %key, '', $MissionDisplayName SPC "(" @ $MissionTypeDisplayName @ "):" SPC %cap, $MissionDisplayName SPC "(" @ $MissionTypeDisplayName @ "):" SPC MissionGroup.CTF_scoreLimit SPC "Caps to Win");
$MissionDisplayName SPC "(" @ $MissionTypeDisplayName @ "):" SPC %cap); case LakRabbit:
%cap = "2000 Points to Win";
messageClient(%client, 'MsgVoteItem', "", %key, '', $MissionDisplayName SPC "(" @ $MissionTypeDisplayName @ "):" SPC %cap,
$MissionDisplayName SPC "(" @ $MissionTypeDisplayName @ "):" SPC %cap);
case DM:
%cap = "25 Points to Win";
messageClient(%client, 'MsgVoteItem', "", %key, '', $MissionDisplayName SPC "(" @ $MissionTypeDisplayName @ "):" SPC %cap,
$MissionDisplayName SPC "(" @ $MissionTypeDisplayName @ "):" SPC %cap);
} }
} }
@ -99,6 +114,14 @@ function DefaultGame::sendGameVoteMenu(%game, %client, %key)
messageClient(%client, 'MsgVoteItem', "", %key, 'MakeObserver', "", 'Become an Observer'); messageClient(%client, 'MsgVoteItem', "", %key, 'MakeObserver', "", 'Become an Observer');
} }
} }
//Beginning match Vote Delay
if(!%client.isAdmin)
{
if((getSimTime() - $VoteDelay) < ($Host::VoteDelayTime * 1000))
return;
}
if(!%client.canVote && !%isAdmin) if(!%client.canVote && !%isAdmin)
return; return;
@ -115,13 +138,13 @@ function DefaultGame::sendGameVoteMenu(%game, %client, %key)
if($Host::AllowPlayerVoteTimeLimit) if($Host::AllowPlayerVoteTimeLimit)
messageClient(%client, 'MsgVoteItem', "", %key, 'VoteChangeTimeLimit', 'change the time limit', 'Vote to Change the Time Limit'); messageClient(%client, 'MsgVoteItem', "", %key, 'VoteChangeTimeLimit', 'change the time limit', 'Vote to Change the Time Limit');
// if(%multipleTeams) if(%multipleTeams && $Host::AllowPlayerVoteTeamDamage)
// { {
// if($teamDamage) if($teamDamage)
// messageClient(%client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'disable team damage', 'Vote to Disable Team Damage'); messageClient(%client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'disable team damage', 'Vote to Disable Team Damage');
// else else
// messageClient(%client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'enable team damage', 'Vote to Enable Team Damage'); messageClient(%client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'enable team damage', 'Vote to Enable Team Damage');
// } }
if($Host::AllowPlayerVoteSkipMission) if($Host::AllowPlayerVoteSkipMission)
messageClient(%client, 'MsgVoteItem', "", %key, 'VoteSkipMission', 'skip the mission to', 'Vote to Skip Mission' ); messageClient(%client, 'MsgVoteItem', "", %key, 'VoteSkipMission', 'skip the mission to', 'Vote to Skip Mission' );
@ -135,13 +158,13 @@ function DefaultGame::sendGameVoteMenu(%game, %client, %key)
messageClient(%client, 'MsgVoteItem', "", %key, 'VoteFFAMode', 'Change server to Free For All.', 'Vote Free For All Mode'); messageClient(%client, 'MsgVoteItem', "", %key, 'VoteFFAMode', 'Change server to Free For All.', 'Vote Free For All Mode');
messageClient(%client, 'MsgVoteItem', "", %key, 'VoteChangeTimeLimit', 'change the time limit', 'Vote to Change the Time Limit'); messageClient(%client, 'MsgVoteItem', "", %key, 'VoteChangeTimeLimit', 'change the time limit', 'Vote to Change the Time Limit');
// if(%multipleTeams) if(%multipleTeams)
// { {
// if($teamDamage) if($teamDamage)
// messageClient(%client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'disable team damage', 'Vote to Disable Team Damage'); messageClient(%client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'disable team damage', 'Vote to Disable Team Damage');
// else else
// messageClient(%client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'enable team damage', 'Vote to Enable Team Damage'); messageClient(%client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'enable team damage', 'Vote to Enable Team Damage');
// } }
} }
} }
else else
@ -177,13 +200,14 @@ function DefaultGame::sendGameVoteMenu(%game, %client, %key)
else else
messageClient(%client, 'MsgVoteItem', "", %key, 'ToggleLockedTeams', 'Enable Locked Teams', 'Enable Locked Teams'); messageClient(%client, 'MsgVoteItem', "", %key, 'ToggleLockedTeams', 'Enable Locked Teams', 'Enable Locked Teams');
} }
// if(%multipleTeams)
// { if(%multipleTeams)
// if($teamDamage) {
// messageClient(%client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'disable team damage', 'Disable Team Damage'); if($teamDamage)
// else messageClient(%client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'disable team damage', 'Disable Team Damage');
// messageClient(%client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'enable team damage', 'Enable Team Damage'); else
// } messageClient(%client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'enable team damage', 'Enable Team Damage');
}
//Toggle Tournament Net Client //Toggle Tournament Net Client
if(%client.isAdmin && $Host::EnableNetTourneyClient) if(%client.isAdmin && $Host::EnableNetTourneyClient)
@ -314,7 +338,7 @@ function serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, %
} }
case "VoteTeamDamage": case "VoteTeamDamage":
if(!%isAdmin) if((!%isAdmin && $Host::AllowPlayerVoteTeamDamage) || (%isAdmin && %client.ForceVote)) // not admin
{ {
%msg = %client.nameBase @ " initiated a vote to " @ ($TeamDamage == 0 ? "enable" : "disable") @ " team damage."; %msg = %client.nameBase @ " initiated a vote to " @ ($TeamDamage == 0 ? "enable" : "disable") @ " team damage.";
} }
@ -709,6 +733,9 @@ function DefaultGame::gameOver(%game)
//Reset ClassicMaxMapChangeVotes //Reset ClassicMaxMapChangeVotes
deleteVariables("$CMHasVoted*"); // Eolk - let people who have voted vote again deleteVariables("$CMHasVoted*"); // Eolk - let people who have voted vote again
//Beginning match Vote Delay
$VoteDelay = getSimTime();
} }
function DefaultGame::cancelMatchStart(%game, %admin) function DefaultGame::cancelMatchStart(%game, %admin)

4
Classic/scripts/serverDefaults.cs Normal file → Executable file
View file

@ -187,13 +187,13 @@ $Host::AllowPlayerVoteChangeMission = 1;
$Host::AllowPlayerVoteSkipMission = 1; $Host::AllowPlayerVoteSkipMission = 1;
$Host::AllowPlayerVoteTimeLimit = 1; $Host::AllowPlayerVoteTimeLimit = 1;
$Host::AllowPlayerVoteTournamentMode = 0; $Host::AllowPlayerVoteTournamentMode = 0;
$Host::AllowPlayerVoteTeamDamage = 0;
$Host::NoBaseRapeEnabled = 1; //Enable or Disable No Base Rape $Host::NoBaseRapeEnabled = 1; //Enable or Disable No Base Rape
$Host::NoBaseRapePlayerCount = 14; //Min number players the turn off No Base Rape $Host::NoBaseRapePlayerCount = 14; //Min number players the turn off No Base Rape
$Host::AveragePings = 1; //Show Average ping in F2 menu $Host::AveragePings = 1; //Show Average ping in F2 menu
$Host::GuidCheck = 1; //Dont allow players to join without a Guid or Name $Host::GuidCheck = 1; //Dont allow players to join without a Guid or Name
$Host::MinFlagRecordPlayerCount = 6; //Min number players to allow flag record to be recorded $Host::MinFlagRecordPlayerCount = 6; //Min number players to allow flag record to be recorded
$Host::ItemRespawnTime = 30; //Time it takes for items to respawn (repairpacks) $Host::ItemRespawnTime = 30; //Time it takes for items to respawn (repairpacks)
$Host::VoteCooldown = 120; //Time cooldown to allow a player to vote again after a vote (120 is 2 mins)
$Host::TKMax = 12; //Max tks before kick $Host::TKMax = 12; //Max tks before kick
$Host::TKWarn1 = 4; //Max tks before 1st warning $Host::TKWarn1 = 4; //Max tks before 1st warning
$Host::TKWarn2 = 8; //Max tks before 2nd warning $Host::TKWarn2 = 8; //Max tks before 2nd warning
@ -201,6 +201,8 @@ $Host::KickObserverStartOnJoin = 0; //Start KickObserver Timer as so
$Host::KickObserverTimeout = 1200; //How long player can stay in observer before being booted (1200 is 20 mins) $Host::KickObserverTimeout = 1200; //How long player can stay in observer before being booted (1200 is 20 mins)
//$Host::ClassicBanlist = "prefs/banlist.cs"; //$Host::ClassicBanlist = "prefs/banlist.cs";
$Host::dtBanlist = "prefs/dtBanlist.cs"; //Alternate Ban System $Host::dtBanlist = "prefs/dtBanlist.cs"; //Alternate Ban System
$Host::VoteCooldown = 120; //Time cooldown that dosnt allow a player to vote again after theyve initiated a vote (120 is 2 mins)
$Host::VoteDelayTime = 120; //Delay the ability to vote (For everyone) at the beginning of the match (120 is 2 minutes)
//LakRabbit //LakRabbit
$Host::LakRabbitUnlimitedDJ = 1; //Unlimited disc-jumps if enabled $Host::LakRabbitUnlimitedDJ = 1; //Unlimited disc-jumps if enabled

21
Classic/scripts/supportClassic.cs Normal file → Executable file
View file

@ -46,7 +46,7 @@ function AIConnection::isMounted(%client)
{ {
%vehicle = %client.getControlObject(); %vehicle = %client.getControlObject();
%className = %vehicle.getDataBlock().className; %className = %vehicle.getDataBlock().className;
if(%className $= WheeledVehicleData || %className $= FlyingVehicleData || %className $= HoverVehicleData) if(%className $= WheeledVehicleData || %className $= FlyingVehicleData || %className $= HoverVehicleData)
return true; return true;
else else
return false; return false;
@ -66,19 +66,19 @@ function ForceFieldBareData::damageObject(%data, %targetObject, %position, %sour
// Random Teams code by Founder (founder@mechina.com) 6/13/02 /////////////////////////// // Random Teams code by Founder (founder@mechina.com) 6/13/02 ///////////////////////////
///////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////
// Couple other files edited for Random Teams. // Couple other files edited for Random Teams.
// Hud.cs and DefaultGame.cs // Hud.cs and DefaultGame.cs
function AIConnection::startMission(%client) function AIConnection::startMission(%client)
{ {
// assign the team // assign the team
if (%client.team <= 0) if (%client.team <= 0)
Game.assignClientTeam(%client); Game.assignClientTeam(%client);
if(%client.lastTeam !$= "") if(%client.lastTeam !$= "")
{ {
if(%client.team != %client.lastTeam) if(%client.team != %client.lastTeam)
Game.AIChangeTeam( %client, %client.lastTeam ); Game.AIChangeTeam( %client, %client.lastTeam );
} }
// set the client's sensor group... // set the client's sensor group...
setTargetSensorGroup( %client.target, %client.team ); setTargetSensorGroup( %client.target, %client.team );
%client.setSensorGroup( %client.team ); %client.setSensorGroup( %client.team );
@ -179,7 +179,7 @@ datablock TriggerData(flagTrigger)
tickPeriodMS = 10; tickPeriodMS = 10;
}; };
function flagTrigger::onEnterTrigger(%data, %obj, %colObj) function flagTrigger::onEnterTrigger(%data, %obj, %colObj)
{ {
%flag = %obj.flag; %flag = %obj.flag;
if($flagStatus[%flag.team] $= "<At Base>") if($flagStatus[%flag.team] $= "<At Base>")
@ -313,4 +313,13 @@ function KickByCID(%client, %reason, %time)
// Keep them out // Keep them out
// if(%time != 0) // if(%time != 0)
// BanList::add(%client.guid, %client.getAddress(), %time); // BanList::add(%client.guid, %client.getAddress(), %time);
} }
//More Spam
function TSStatic::onTrigger(%this, %triggerId, %on){
//anti console spam
}
function TSStatic::onTriggerTick(%this, %triggerId){
//anti console spam
}

View file

@ -39,7 +39,7 @@ Discord: [Tribes 2 Discord](https://discord.gg/Y4muNvF)
- Shocklance Only Deathmatch Mode - Shocklance Only Deathmatch Mode
- Admin Logging - Admin Logging
- Teamkill Warnings - Teamkill Warnings
- General Improvments - General Improvements
--- ---