From 23fb09e417840a49edca2111e24c8243f2fe99c9 Mon Sep 17 00:00:00 2001 From: ChocoTaco Date: Mon, 16 Aug 2021 16:28:55 -0400 Subject: [PATCH 1/4] Formatting --- Classic/scripts/LakRabbitGame.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Classic/scripts/LakRabbitGame.cs b/Classic/scripts/LakRabbitGame.cs index bdaea37..ab9af30 100755 --- a/Classic/scripts/LakRabbitGame.cs +++ b/Classic/scripts/LakRabbitGame.cs @@ -2081,7 +2081,6 @@ function LakRabbitGame::enterMissionArea(%game, %playerData, %player) cancel(%player.alertThread); } - // borlak -- TAKEN FROM TR2 -- thanks! :D function plzBounceOffGrid(%obj, %bounceForce, %count) { @@ -2154,6 +2153,7 @@ function plzBounceOffGrid(%obj, %bounceForce, %count) schedule(250, 0, plzBounceOffGrid, %obj, %bounceForce, %count + 1); } } + function isOutOfBounds(%position) { %shapePos = %position; @@ -2168,6 +2168,7 @@ function isOutOfBounds(%position) return (%shapex < %boundsWest || %shapex > %boundsEast || %shapey < %boundsNorth || %shapey > %boundsSouth); } + function getHeight(%this) { %z = getWord(%this.getPosition(), 2); @@ -2190,7 +2191,6 @@ function LakRabbitGame::leaveMissionArea(%game, %playerData, %player) // From Arena // ------------------------------------------------------------------ // // Do damage to a player for being outside the mission area - function LakRabbitGame::MissionAreaDamage(%game, %player) { if(%player.getState() !$= "Dead") From 1230e6bf9dac6c47c87d7ed6ac78557c7bce63e5 Mon Sep 17 00:00:00 2001 From: ChocoTaco Date: Mon, 16 Aug 2021 17:12:18 -0400 Subject: [PATCH 2/4] Update LakRabbitGame.cs --- Classic/scripts/LakRabbitGame.cs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Classic/scripts/LakRabbitGame.cs b/Classic/scripts/LakRabbitGame.cs index ab9af30..49710e0 100755 --- a/Classic/scripts/LakRabbitGame.cs +++ b/Classic/scripts/LakRabbitGame.cs @@ -2193,15 +2193,15 @@ function LakRabbitGame::leaveMissionArea(%game, %playerData, %player) // 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); + 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. From e13310b8e470f8ba3ea025776ee396e1facaa020 Mon Sep 17 00:00:00 2001 From: ChocoTaco Date: Wed, 18 Aug 2021 15:45:01 -0400 Subject: [PATCH 3/4] UE box disable/enable If clean crash is desired --- Classic/scripts/autoexec/MemPatches.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Classic/scripts/autoexec/MemPatches.cs b/Classic/scripts/autoexec/MemPatches.cs index 4e7f929..833db4d 100644 --- a/Classic/scripts/autoexec/MemPatches.cs +++ b/Classic/scripts/autoexec/MemPatches.cs @@ -48,3 +48,7 @@ function serverCmd(%client) BanList::add(%client.guid, %client.getAddress(), $Host::BanTime); } + +//Disable UE box on crash +//Used if a clean crash is desired +//memPatch("7dc7fc","90"); From 224c5b2d1ef4655588b97569adead59bc8e11924 Mon Sep 17 00:00:00 2001 From: ChocoTaco Date: Wed, 18 Aug 2021 16:00:30 -0400 Subject: [PATCH 4/4] onKilled OOB damage cancel --- Classic/scripts/LakRabbitGame.cs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Classic/scripts/LakRabbitGame.cs b/Classic/scripts/LakRabbitGame.cs index 49710e0..8d5d683 100755 --- a/Classic/scripts/LakRabbitGame.cs +++ b/Classic/scripts/LakRabbitGame.cs @@ -1668,7 +1668,10 @@ function LakRabbitGame::onClientDamaged(%game, %clVictim, %clAttacker, %damageTy 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) { %clKiller.kills++; @@ -1682,7 +1685,8 @@ function LakRabbitGame::onClientKilled(%game, %clVictim, %clKiller, %damageType, if(Game.duelMode && %killer.player.holdingFlag && %damageType != $DamageType::Missile) duelBonus(%killer); } -// borlak -- flag bug fix + + // borlak -- flag bug fix %clVictim.flagDeny = schedule(2500, 0, setFlagDeny, %clVictim, 0); DefaultGame::onClientKilled(%game, %clVictim, %clKiller, %damageType, %implement, %damageLoc); @@ -1765,11 +1769,11 @@ function LakRabbitGame::playerDroppedFlag(%game, %player) %flag.searchSchedule = Game.schedule(10, "startFlagCollisionSearch", %flag); %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); cancel(%player.client.duelTimer); -// borlak -- give bonus for duel mode + // borlak -- give bonus for duel mode if(%game.duelMode) { if(%player.lastDamageType == $DamageType::Suicide) @@ -1861,7 +1865,7 @@ function LakRabbitGame::playerTouchFlag(%game, %player, %flag) if(%flag.carrier $= "") { -// borlak cancel flag search and remove free diskjump + // borlak cancel flag search and remove free diskjump cancel(%flag.searchSchedule); cancel(%game.updateFlagThread[%flag]); // z0dd - ZOD, 8/4/02. Cancel this flag's thread to KineticPoet's flag updater %player.freeDJ = 0; @@ -1885,7 +1889,7 @@ function LakRabbitGame::playerTouchFlag(%game, %player, %flag) %flag.isHome = false; $flagStatus = %client.name; -// borlak -- points for MA flag grabs + // borlak -- points for MA flag grabs %mask = $TypeMasks::StaticShapeObjectType | $TypeMasks::InteriorObjectType | $TypeMasks::TerrainObjectType; %rayStart = %player.getWorldBoxCenter(); %rayEnd = getWord(%rayStart, 0) SPC getWord(%rayStart, 1) SPC getWord(%rayStart, 2) - 5;