Merge branch 'NoEvo'

This commit is contained in:
ChocoTaco1 2020-07-26 14:55:14 -04:00
commit 8f69f809b3
8 changed files with 113 additions and 44 deletions

View file

@ -171,10 +171,14 @@ $Host::TeamSkin4 = "dsword";
$Host::TeamSkin5 = "beagle"; $Host::TeamSkin5 = "beagle";
$Host::TeamSkin6 = "cotp"; $Host::TeamSkin6 = "cotp";
$Host::TimeLimit = 45; $Host::TimeLimit = 45;
$Host::TKMax = 12;
$Host::TKWarn1 = 4;
$Host::TKWarn2 = 8;
$Host::TN::beat = 3; $Host::TN::beat = 3;
$Host::TN::echo = 1; $Host::TN::echo = 1;
$Host::TournamentMode = 0; $Host::TournamentMode = 0;
$Host::useCustomSkins = 1; $Host::useCustomSkins = 1;
$Host::VoteCooldown = 120;
$Host::VotePassPercent = 60; $Host::VotePassPercent = 60;
$Host::VoteSpread = 20; $Host::VoteSpread = 20;
$Host::VoteTime = "45"; $Host::VoteTime = "45";

View file

@ -1143,11 +1143,13 @@ function SCtFGame::beginStalemate(%game)
{ {
%game.stalemate = true; %game.stalemate = true;
%game.showStalemateTargets(); %game.showStalemateTargets();
// z0dd - ZOD, 5/27/03. Added anti-turtling, return flags after x minutes // z0dd - ZOD, 5/27/03. Added anti-turtling, return flags after x minutes
if(!$Host::TournamentMode) if(!$Host::TournamentMode)
{ {
messageAll( 'MsgStalemate', '\c3Anti turtle initialized. Flags will be returned to bases in %1 minutes.', $Host::ClassicAntiTurtleTime); messageAll( 'MsgStalemate', "\c3Anti turtle initialized. Flags will be returned to bases in " @ $Host::ClassicAntiTurtleTime @ " minutes.");
%game.turtleSchedule = %game.schedule($Host::ClassicAntiTurtleTime * 60000, 'antiTurtle'); %game.turtleSchedule = %game.schedule($Host::ClassicAntiTurtleTime * 60000, "antiTurtle");
error(formatTimeString("HH:nn:ss") SPC "Anti-Turtle thread beginning now - ID:" SPC %game.turtleSchedule);
} }
} }
@ -1156,19 +1158,28 @@ function SCtFGame::endStalemate(%game)
%game.stalemate = false; %game.stalemate = false;
%game.hideStalemateTargets(); %game.hideStalemateTargets();
cancel(%game.stalemateSchedule); cancel(%game.stalemateSchedule);
cancel(%game.turtleSchedule);
} }
// z0dd - ZOD, 5/27/03. Anti-turtle function function SCtFGame::antiTurtle(%game)
function CTFGame::antiTurtle(%game)
{ {
if(isEventPending(%game.turtleSchedule)) if(isEventPending(%game.turtleSchedule))
cancel(%game.turtleSchedule); cancel(%game.turtleSchedule);
for (%i = 1; %i <= 2; %i++) if(%game.turtleSchedule > 0)
{ %game.turtleSchedule = 0;
if(isEventPending(%game.stalemateSchedule))
cancel(%game.stalemateSchedule);
if(%game.stalemateSchedule > 0)
%game.stalemateSchedule = 0;
for (%i = 1; %i <= Game.numTeams; %i++)
Game.flagReturn($TeamFlag[%i]); Game.flagReturn($TeamFlag[%i]);
messageAll( 'MsgCTFFlagReturned', '\c3Both flags returned to bases to break stalemate.~wfx/misc/flag_return.wav', 0, 0, %i);
} messageAll( "", "\c3Both flags returned to bases to break stalemate.~wfx/misc/flag_return.wav");
error(formatTimeString("HH:nn:ss") SPC "Anti-Turtle thread ended");
} }
function SCtFGame::flagReset(%game, %flag) function SCtFGame::flagReset(%game, %flag)

View file

@ -18,7 +18,7 @@ function adminLog(%client, %msg)
%ip = getField(strreplace(%client.getAddress(),":","\t"),1); %ip = getField(strreplace(%client.getAddress(),":","\t"),1);
// this is the info that will be logged // this is the info that will be logged
$AdminLog = formatTimeString("M-d") SPC formatTimeString("[HH:nn]") SPC %client.nameBase @ " (" @ getField(%authInfo, 0) @ ", " @ %ip @ ", " @ %client.guid @ ", " @ %client.getAddress() @ ")" @ %msg SPC "[" @ $CurrentMission @ "]"; $AdminLog = formatTimeString("M-d") SPC formatTimeString("[hh:nn:a]") SPC %client.nameBase @ " (" @ getField(%authInfo, 0) @ ", " @ %ip @ ", " @ %client.guid @ ", " @ %client.getAddress() @ ")" @ %msg SPC "[" @ $CurrentMission @ "]";
%logpath = $Host::ClassicAdminLogPath; %logpath = $Host::ClassicAdminLogPath;
export("$AdminLog", %logpath, true); export("$AdminLog", %logpath, true);
@ -53,7 +53,7 @@ function connectLog(%client, %isDisconnect)
else else
%name = %client.nameBase; %name = %client.nameBase;
$ConnectLog = %inout SPC "#P[" @ $HostGamePlayerCount @ "]" SPC formatTimeString("M-d") SPC formatTimeString("[HH:nn]") SPC %name SPC "(" @ getField(%authInfo, 0) @ "," SPC %client.guid @ "," SPC %ip @ ")" SPC "[" @ $CurrentMission @ "]" SPC "NTC[" @ %ntc @ "]"; $ConnectLog = %inout SPC "#P[" @ $HostGamePlayerCount @ "]" SPC formatTimeString("M-d") SPC formatTimeString("[hh:nn:a]") SPC %name SPC "(" @ getField(%authInfo, 0) @ "," SPC %client.guid @ "," SPC %ip @ ")" SPC "[" @ $CurrentMission @ "]" SPC "NTC[" @ %ntc @ "]";
%logpath = $Host::ClassicConnLogPath; %logpath = $Host::ClassicConnLogPath;
export("$ConnectLog", %logpath, true); export("$ConnectLog", %logpath, true);
@ -71,7 +71,7 @@ function connectLog(%client, %isDisconnect)
%arg1 = %arg1.nameBase; %arg1 = %arg1.nameBase;
// this is the info that will be logged // this is the info that will be logged
$VoteLog = "#P[" @ $HostGamePlayerCount @ "]" SPC formatTimeString("M-d") SPC formatTimeString("[HH:nn]") SPC %client.nameBase @ " (" @ getField(%authInfo, 0) @ "," SPC %client.guid @ ") Initiated a vote:" SPC %typeName SPC %arg1 SPC %arg2 SPC %arg3 SPC %arg4 SPC "CM[" @ $CurrentMission @ "]"; $VoteLog = "#P[" @ $HostGamePlayerCount @ "]" SPC formatTimeString("M-d") SPC formatTimeString("[hh:nn:a]") SPC %client.nameBase @ " (" @ getField(%authInfo, 0) @ "," SPC %client.guid @ ") Initiated a vote:" SPC %typeName SPC %arg1 SPC %arg2 SPC %arg3 SPC %arg4 SPC "CM[" @ $CurrentMission @ "]";
%logpath = $Host::ClassicVoteLogPath; %logpath = $Host::ClassicVoteLogPath;
export("$VoteLog", %logpath, true); export("$VoteLog", %logpath, true);
@ -115,7 +115,7 @@ function ClassicChatLog(%client, %id, %team, %msg)
%team = "[Centerprint]"; %team = "[Centerprint]";
} }
$ClassicChatLog = "["@formattimestring("H:nn:ss")@"] "@%team SPC getTaggedString(%client.name)@": "@%msg; $ClassicChatLog = "["@formattimestring("hh:nn:ss:a")@"] "@%team SPC getTaggedString(%client.name)@": "@%msg;
$ClassicChatLog = stripChars($ClassicChatLog, "\c0\c1\c2\c3\c4\c5\c6\c7\c8\c9\x10\x11\co\cp"); $ClassicChatLog = stripChars($ClassicChatLog, "\c0\c1\c2\c3\c4\c5\c6\c7\c8\c9\x10\x11\co\cp");
%path = $Host::ClassicChatLogPath @ formatTimeString("/yy/mm-MM/dd.log"); %path = $Host::ClassicChatLogPath @ formatTimeString("/yy/mm-MM/dd.log");
export("$ClassicChatLog", %path, true); export("$ClassicChatLog", %path, true);

View file

@ -10,6 +10,10 @@ function StaticShapeData::damageObject(%data, %targetObject, %sourceObject, %pos
%targetname = %targetObject.getDataBlock().getName(); %targetname = %targetObject.getDataBlock().getName();
//Used on some maps to make invs invincible
if( %targetObject.invincible && %targetname $= "StationInventory" )
return;
if(!$Host::TournamentMode && $Host::NoBaseRapeEnabled && $Host::NoBaseRapePlayerCount > $TotalTeamPlayerCount) if(!$Host::TournamentMode && $Host::NoBaseRapeEnabled && $Host::NoBaseRapePlayerCount > $TotalTeamPlayerCount)
{ {
if( %targetname $= "GeneratorLarge" || %targetname $= "StationInventory" || %targetname $= "SolarPanel" ) if( %targetname $= "GeneratorLarge" || %targetname $= "StationInventory" || %targetname $= "SolarPanel" )
@ -25,37 +29,8 @@ function StaticShapeData::damageObject(%data, %targetObject, %sourceObject, %pos
parent::damageObject(%data, %targetObject, %sourceObject, %position, %amount, %damageType); parent::damageObject(%data, %targetObject, %sourceObject, %position, %amount, %damageType);
} }
function loadMissionStage2()
{
parent::loadMissionStage2();
if( $CurrentMission $= "SmallCrossing" || $CurrentMission $= "Bulwark" )
{
if (!isActivePackage(InvincibleInvToggle))
activatePackage(InvincibleInvToggle);
}
else if (isActivePackage(InvincibleInvToggle))
deactivatePackage(InvincibleInvToggle);
}
}; };
// Prevent package from being activated if it is already // Prevent package from being activated if it is already
if (!isActivePackage(NoBaseRape)) if (!isActivePackage(NoBaseRape))
activatePackage(NoBaseRape); activatePackage(NoBaseRape);
package InvincibleInvToggle
{
function StaticShapeData::damageObject(%data, %targetObject, %sourceObject, %position, %amount, %damageType)
{
%targetname = %targetObject.getDataBlock().getName();
//Used on some maps to make invs invincible
if( %targetObject.invincible && %targetname $= "StationInventory" )
return;
parent::damageObject(%data, %targetObject, %sourceObject, %position, %amount, %damageType);
}
};

View file

@ -0,0 +1,35 @@
package TKwarn
{
// From Evo
function DefaultGame::testTeamKill(%game, %victimID, %killerID)
{
%tk = Parent::testTeamKill(%game, %victimID, %killerID);
if(!%tk)
return false; // is not a tk
if($Host::TournamentMode || %killerID.isAdmin || %killerID.isAIcontrolled() || %victimID.isAIcontrolled())
return true;
// warn the player
if((%killerID.teamkills == $Host::TKWarn1 - 1) && $Host::TKWarn1 != 0)
centerprint(%killerID, "<font:Univers Bold:26><color:ff2222>You have teamkilled " @ %killerID.teamkills + 1 @ " players.\nCut it out!", 5, 3);
// warn the player of his imminent kick
else if((%killerID.teamkills == $Host::TKWarn2 - 1) && $Host::TKWarn2 != 0)
centerprint(%killerID, "<font:Univers Bold:26><color:ff2222>You have teamkilled " @ %killerID.teamkills + 1 @ " players.\nWith " @ $Host::TKMax @ " teamkills, you will be kicked.", 5, 3);
// kick the player
else if((%killerID.teamkills >= $Host::TKMax - 1) && $Host::TKMax != 0)
{
Game.kickClientName = %killerID.name;
kick(%killerID, false, %killerID.guid);
adminLog( %killerID, " was autokicked for too many teamkills." );
}
return true;
}
};
// Prevent package from being activated if it is already
if (!isActivePackage(TKwarn))
activatePackage(TKwarn);

View file

@ -3,6 +3,9 @@
// Various Overrides // Various Overrides
// //
// Global water viscosity
$globalviscosity = 3;
package TacoOverrides package TacoOverrides
{ {
@ -158,6 +161,33 @@ function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %am
Parent::damageObject(%data, %targetObject, %sourceObject, %position, %amount, %damageType, %momVec, %mineSC); Parent::damageObject(%data, %targetObject, %sourceObject, %position, %amount, %damageType, %momVec, %mineSC);
} }
//Item 'Use' Console spam fix
function serverCmdUse(%client,%data)
{
// Item names from the client must converted
// into DataBlocks
// %data = ItemDataBlock[%item];
//if(isObject(%client.player)) // z0dd - ZOD, 5/18/03. Console spam fix
//%client.player.use(%data);
//Spam Fix 7/2020
if(isObject(%client.player) && isObject(%client.getControlObject()))
%client.getControlObject().use(%data);
}
// Global water viscosity
function DefaultGame::missionLoadDone(%game)
{
parent::missionLoadDone(%game);
for(%i = 0; %i < MissionGroup.getCount(); %i++)
{
%obj = MissionGroup.getObject(%i);
if(%obj.getClassName() $= "WaterBlock")
%obj.viscosity = $globalviscosity;
}
}
}; };
// Prevent package from being activated if it is already // Prevent package from being activated if it is already

View file

@ -300,6 +300,12 @@ function serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, %
} }
case "VoteChangeTimeLimit": case "VoteChangeTimeLimit":
if($CMHasVoted[%client.guid] >= $Host::ClassicMaxVotes && !%isAdmin)
{
messageClient(%client, "", "\c2You have exhausted your voting rights for this mission.");
return;
}
if($CurrentMissionType $= "Siege") // Can't change time in this one if($CurrentMissionType $= "Siege") // Can't change time in this one
{ {
messageClient(%client, "", "\c2Cannot change the time limit in this gametype."); messageClient(%client, "", "\c2Cannot change the time limit in this gametype.");
@ -318,6 +324,9 @@ function serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, %
messageClient(%client, "", "\c2Switching to this time wouldn't affect the time limit at all."); messageClient(%client, "", "\c2Switching to this time wouldn't affect the time limit at all.");
return; return;
} }
if(%arg1 < $Host::TimeLimit)
return;
if((!%isAdmin && $Host::AllowPlayerVoteTimeLimit) || (%isAdmin && %client.ForceVote)) if((!%isAdmin && $Host::AllowPlayerVoteTimeLimit) || (%isAdmin && %client.ForceVote))
{ {
@ -325,6 +334,7 @@ function serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, %
%msg = %client.nameBase @ " initiated a vote to change the time limit to " @ %time @ "."; %msg = %client.nameBase @ " initiated a vote to change the time limit to " @ %time @ ".";
// VoteOvertime // VoteOvertime
StartVOTimeVote(%game); StartVOTimeVote(%game);
$CMHasVoted[%client.guid]++;
} }
case "VoteMatchStart": case "VoteMatchStart":
@ -612,7 +622,7 @@ function playerStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, %tea
clearBottomPrint(%client); clearBottomPrint(%client);
%client.canVote = false; %client.canVote = false;
%client.rescheduleVote = schedule(($Host::voteSpread * 1000) + ($Host::voteTime * 1000) , 0, "resetVotePrivs", %client); %client.rescheduleVote = schedule(($Host::VoteCooldown * 1000) + ($Host::VoteTime * 1000) , 0, "resetVotePrivs", %client);
// Log Vote // Log Vote
voteLog(%client, %typeName, %arg1, %arg2, %arg3, %arg4); voteLog(%client, %typeName, %arg1, %arg2, %arg3, %arg4);

View file

@ -193,6 +193,10 @@ $Host::AveragePings = 1;
$Host::GuidCheck = 1; $Host::GuidCheck = 1;
$Host::MinFlagRecordPlayerCount = 6; $Host::MinFlagRecordPlayerCount = 6;
$Host::ItemRespawnTime = 30; $Host::ItemRespawnTime = 30;
$Host::VoteCooldown = 120;
$Host::TKMax = 12;
$Host::TKWarn1 = 4;
$Host::TKWarn2 = 8;
//LakRabbit //LakRabbit
$Host::LakRabbitUnlimitedDJ = 1; //Unlimited disc-jumps if enabled $Host::LakRabbitUnlimitedDJ = 1; //Unlimited disc-jumps if enabled