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::AllowPlayerVoteChangeMission = 1;
$Host::AllowPlayerVoteSkipMission = 1;
$Host::AllowPlayerVoteTeamDamage = 0;
$Host::AllowPlayerVoteTimeLimit = 1;
$Host::AllowPlayerVoteTournamentMode = 0;
$Host::AnimateWithTransitions = 1;
@ -180,6 +181,7 @@ $Host::TN::echo = 1;
$Host::TournamentMode = 0;
$Host::useCustomSkins = 1;
$Host::VoteCooldown = 120;
$Host::VoteDelayTime = 120;
$Host::VotePassPercent = 60;
$Host::VoteSpread = 20;
$Host::VoteTime = "45";

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

@ -17,6 +17,9 @@
// Thanks for helping me test!
// 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
// Added Observer GameOver (Mainly for switching to CTF)
// Added Missile Lak Fix
@ -2067,13 +2070,15 @@ function LakRabbitGame::resetScore(%game, %client)
function LakRabbitGame::enterMissionArea(%game, %playerData, %player)
{
if(%player.getState() $= "Dead")
return;
if(%player.getState() $= "Dead")
return;
%player.client.outOfBounds = false;
messageClient(%player.client, 'EnterMissionArea', '\c1You are back in the mission area.');
logEcho(%player.client.nameBase@" (pl "@%player@"/cl "@%player.client@") entered mission area");
cancel(%player.alertThread);
%player.client.outOfBounds = false;
messageClient(%player.client, 'EnterMissionArea', '\c1You are back in the mission area.');
logEcho(%player.client.nameBase@" (pl "@%player@"/cl "@%player.client@") entered mission area");
// Disable out of bounds kill
cancel(%player.alertThread);
}
@ -2171,9 +2176,34 @@ function getHeight(%this)
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);
}
// 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.
// borlak -- stolen from classic
function LakRabbitGame::startFlagCollisionSearch(%game, %flag)

View file

@ -278,6 +278,68 @@ if (!isActivePackage(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
//
// Determines which team needs players and proceeds to switch them

View file

@ -9,6 +9,15 @@
//$Host::AllowPlayerVoteSkipMission = 1;
//$Host::AllowPlayerVoteTimeLimit = 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
{
@ -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, 'VoteChangeMission', 'change the mission to', 'Vote to Change the Mission');
// if(%multipleTeams)
// {
// 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');
// }
if(%multipleTeams)
{
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');
}
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, '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
if(%client.canVote)
{
if($CurrentMissionType $= "CTF" || $CurrentMissionType $= "SCtF")
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
switch$($CurrentMissionType)
{
if($CurrentMissionType $= "LakRabbit") %cap = "2000 Points to Win";
else %cap = "25 Points to Win"; //DM
messageClient(%client, 'MsgVoteItem', "", %key, '', $MissionDisplayName SPC "(" @ $MissionTypeDisplayName @ "):" SPC %cap,
$MissionDisplayName SPC "(" @ $MissionTypeDisplayName @ "):" SPC %cap);
case CTF or SCtF:
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");
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');
}
}
//Beginning match Vote Delay
if(!%client.isAdmin)
{
if((getSimTime() - $VoteDelay) < ($Host::VoteDelayTime * 1000))
return;
}
if(!%client.canVote && !%isAdmin)
return;
@ -115,13 +138,13 @@ function DefaultGame::sendGameVoteMenu(%game, %client, %key)
if($Host::AllowPlayerVoteTimeLimit)
messageClient(%client, 'MsgVoteItem', "", %key, 'VoteChangeTimeLimit', 'change the time limit', 'Vote to Change the Time Limit');
// if(%multipleTeams)
// {
// 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');
// }
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');
}
if($Host::AllowPlayerVoteSkipMission)
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, 'VoteChangeTimeLimit', 'change the time limit', 'Vote to Change the Time Limit');
// if(%multipleTeams)
// {
// 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');
// }
if(%multipleTeams)
{
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
@ -177,13 +200,14 @@ function DefaultGame::sendGameVoteMenu(%game, %client, %key)
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');
// }
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');
}
//Toggle Tournament Net Client
if(%client.isAdmin && $Host::EnableNetTourneyClient)
@ -314,7 +338,7 @@ function serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, %
}
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.";
}
@ -709,6 +733,9 @@ function DefaultGame::gameOver(%game)
//Reset ClassicMaxMapChangeVotes
deleteVariables("$CMHasVoted*"); // Eolk - let people who have voted vote again
//Beginning match Vote Delay
$VoteDelay = getSimTime();
}
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::AllowPlayerVoteTimeLimit = 1;
$Host::AllowPlayerVoteTournamentMode = 0;
$Host::AllowPlayerVoteTeamDamage = 0;
$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
$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::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::TKWarn1 = 4; //Max tks before 1st 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::ClassicBanlist = "prefs/banlist.cs";
$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
$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();
%className = %vehicle.getDataBlock().className;
if(%className $= WheeledVehicleData || %className $= FlyingVehicleData || %className $= HoverVehicleData)
if(%className $= WheeledVehicleData || %className $= FlyingVehicleData || %className $= HoverVehicleData)
return true;
else
return false;
@ -66,19 +66,19 @@ function ForceFieldBareData::damageObject(%data, %targetObject, %position, %sour
// 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
function AIConnection::startMission(%client)
{
// assign the team
if (%client.team <= 0)
Game.assignClientTeam(%client);
if(%client.lastTeam !$= "")
{
if(%client.team != %client.lastTeam)
Game.AIChangeTeam( %client, %client.lastTeam );
}
}
// set the client's sensor group...
setTargetSensorGroup( %client.target, %client.team );
%client.setSensorGroup( %client.team );
@ -179,7 +179,7 @@ datablock TriggerData(flagTrigger)
tickPeriodMS = 10;
};
function flagTrigger::onEnterTrigger(%data, %obj, %colObj)
function flagTrigger::onEnterTrigger(%data, %obj, %colObj)
{
%flag = %obj.flag;
if($flagStatus[%flag.team] $= "<At Base>")
@ -313,4 +313,13 @@ function KickByCID(%client, %reason, %time)
// Keep them out
// if(%time != 0)
// 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
- Admin Logging
- Teamkill Warnings
- General Improvments
- General Improvements
---