mirror of
https://github.com/ChocoTaco1/TacoServer.git
synced 2026-03-17 02:20:36 +00:00
Merge branch 'NoEvo'
This commit is contained in:
commit
4738aad971
9 changed files with 183 additions and 51 deletions
|
|
@ -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
42
Classic/scripts/LakRabbitGame.cs
Normal file → Executable 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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
4
Classic/scripts/serverDefaults.cs
Normal file → Executable 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
21
Classic/scripts/supportClassic.cs
Normal file → Executable 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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ Discord: [Tribes 2 Discord](https://discord.gg/Y4muNvF)
|
|||
- Shocklance Only Deathmatch Mode
|
||||
- Admin Logging
|
||||
- Teamkill Warnings
|
||||
- General Improvments
|
||||
- General Improvements
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue