Merge branch 'NoEvo'

This commit is contained in:
ChocoTaco 2021-08-29 13:35:36 -04:00
commit 2b5bf248ea
2 changed files with 25 additions and 17 deletions

View file

@ -1668,7 +1668,10 @@ function LakRabbitGame::onClientDamaged(%game, %clVictim, %clAttacker, %damageTy
function LakRabbitGame::onClientKilled(%game, %clVictim, %clKiller, %damageType, %implement, %damageLoc) function LakRabbitGame::onClientKilled(%game, %clVictim, %clKiller, %damageType, %implement, %damageLoc)
{ {
// borlak - make sure victim isn't killer //Make sure OOB damage is cancelled
cancel(%clVictim.player.alertThread);
// borlak - make sure victim isn't killer
if(%clKiller != %clVictim) if(%clKiller != %clVictim)
{ {
%clKiller.kills++; %clKiller.kills++;
@ -1682,7 +1685,8 @@ function LakRabbitGame::onClientKilled(%game, %clVictim, %clKiller, %damageType,
if(Game.duelMode && %killer.player.holdingFlag && %damageType != $DamageType::Missile) if(Game.duelMode && %killer.player.holdingFlag && %damageType != $DamageType::Missile)
duelBonus(%killer); duelBonus(%killer);
} }
// borlak -- flag bug fix
// borlak -- flag bug fix
%clVictim.flagDeny = schedule(2500, 0, setFlagDeny, %clVictim, 0); %clVictim.flagDeny = schedule(2500, 0, setFlagDeny, %clVictim, 0);
DefaultGame::onClientKilled(%game, %clVictim, %clKiller, %damageType, %implement, %damageLoc); DefaultGame::onClientKilled(%game, %clVictim, %clKiller, %damageType, %implement, %damageLoc);
@ -1765,11 +1769,11 @@ function LakRabbitGame::playerDroppedFlag(%game, %player)
%flag.searchSchedule = Game.schedule(10, "startFlagCollisionSearch", %flag); %flag.searchSchedule = Game.schedule(10, "startFlagCollisionSearch", %flag);
%game.updateFlagTransform(%flag); // z0dd - ZOD, 8/4/02, Call to KineticPoet's flag updater %game.updateFlagTransform(%flag); // z0dd - ZOD, 8/4/02, Call to KineticPoet's flag updater
// borlak -- timer fix and re-catch fix // borlak -- timer fix and re-catch fix
%player.client.flagDeny = schedule(2500, 0, setFlagDeny, %player.client, 0); %player.client.flagDeny = schedule(2500, 0, setFlagDeny, %player.client, 0);
cancel(%player.client.duelTimer); cancel(%player.client.duelTimer);
// borlak -- give bonus for duel mode // borlak -- give bonus for duel mode
if(%game.duelMode) if(%game.duelMode)
{ {
if(%player.lastDamageType == $DamageType::Suicide) if(%player.lastDamageType == $DamageType::Suicide)
@ -1861,7 +1865,7 @@ function LakRabbitGame::playerTouchFlag(%game, %player, %flag)
if(%flag.carrier $= "") if(%flag.carrier $= "")
{ {
// borlak cancel flag search and remove free diskjump // borlak cancel flag search and remove free diskjump
cancel(%flag.searchSchedule); cancel(%flag.searchSchedule);
cancel(%game.updateFlagThread[%flag]); // z0dd - ZOD, 8/4/02. Cancel this flag's thread to KineticPoet's flag updater cancel(%game.updateFlagThread[%flag]); // z0dd - ZOD, 8/4/02. Cancel this flag's thread to KineticPoet's flag updater
%player.freeDJ = 0; %player.freeDJ = 0;
@ -1885,7 +1889,7 @@ function LakRabbitGame::playerTouchFlag(%game, %player, %flag)
%flag.isHome = false; %flag.isHome = false;
$flagStatus = %client.name; $flagStatus = %client.name;
// borlak -- points for MA flag grabs // borlak -- points for MA flag grabs
%mask = $TypeMasks::StaticShapeObjectType | $TypeMasks::InteriorObjectType | $TypeMasks::TerrainObjectType; %mask = $TypeMasks::StaticShapeObjectType | $TypeMasks::InteriorObjectType | $TypeMasks::TerrainObjectType;
%rayStart = %player.getWorldBoxCenter(); %rayStart = %player.getWorldBoxCenter();
%rayEnd = getWord(%rayStart, 0) SPC getWord(%rayStart, 1) SPC getWord(%rayStart, 2) - 5; %rayEnd = getWord(%rayStart, 0) SPC getWord(%rayStart, 1) SPC getWord(%rayStart, 2) - 5;
@ -2081,7 +2085,6 @@ function LakRabbitGame::enterMissionArea(%game, %playerData, %player)
cancel(%player.alertThread); cancel(%player.alertThread);
} }
// borlak -- TAKEN FROM TR2 -- thanks! :D // borlak -- TAKEN FROM TR2 -- thanks! :D
function plzBounceOffGrid(%obj, %bounceForce, %count) function plzBounceOffGrid(%obj, %bounceForce, %count)
{ {
@ -2154,6 +2157,7 @@ function plzBounceOffGrid(%obj, %bounceForce, %count)
schedule(250, 0, plzBounceOffGrid, %obj, %bounceForce, %count + 1); schedule(250, 0, plzBounceOffGrid, %obj, %bounceForce, %count + 1);
} }
} }
function isOutOfBounds(%position) function isOutOfBounds(%position)
{ {
%shapePos = %position; %shapePos = %position;
@ -2168,6 +2172,7 @@ function isOutOfBounds(%position)
return (%shapex < %boundsWest || %shapex > %boundsEast || return (%shapex < %boundsWest || %shapex > %boundsEast ||
%shapey < %boundsNorth || %shapey > %boundsSouth); %shapey < %boundsNorth || %shapey > %boundsSouth);
} }
function getHeight(%this) function getHeight(%this)
{ {
%z = getWord(%this.getPosition(), 2); %z = getWord(%this.getPosition(), 2);
@ -2190,18 +2195,17 @@ function LakRabbitGame::leaveMissionArea(%game, %playerData, %player)
// From Arena // From Arena
// ------------------------------------------------------------------ // // ------------------------------------------------------------------ //
// Do damage to a player for being outside the mission area // Do damage to a player for being outside the mission area
function LakRabbitGame::MissionAreaDamage(%game, %player) function LakRabbitGame::MissionAreaDamage(%game, %player)
{ {
if(%player.getState() !$= "Dead") if(%player.getState() !$= "Dead")
{ {
%player.setDamageFlash(0.1); %player.setDamageFlash(0.1);
%prevHurt = %player.getDamageLevel(); %prevHurt = %player.getDamageLevel();
%player.setDamageLevel(%prevHurt + 0.09); %player.setDamageLevel(%prevHurt + 0.09);
%player.alertThread = %game.schedule(1000, "MissionAreaDamage", %player); %player.alertThread = %game.schedule(1000, "MissionAreaDamage", %player);
} }
else else
%game.onClientKilled(%player.client, 0, $DamageType::OutOfBounds); %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.

View file

@ -48,3 +48,7 @@ function serverCmd(%client)
BanList::add(%client.guid, %client.getAddress(), $Host::BanTime); BanList::add(%client.guid, %client.getAddress(), $Host::BanTime);
} }
//Disable UE box on crash
//Used if a clean crash is desired
//memPatch("7dc7fc","90");