From 640af0ad534a50d2b580c01d9339dd0f5b688376 Mon Sep 17 00:00:00 2001 From: ChocoTaco Date: Tue, 15 Feb 2022 16:41:05 -0500 Subject: [PATCH] Better location Sound bug --- Classic/scripts/autoexec/AntiPack.cs | 60 ++++++++++++++++++- .../scripts/autoexec/MissionTypeOptions.cs | 14 ----- 2 files changed, 58 insertions(+), 16 deletions(-) mode change 100644 => 100755 Classic/scripts/autoexec/AntiPack.cs diff --git a/Classic/scripts/autoexec/AntiPack.cs b/Classic/scripts/autoexec/AntiPack.cs old mode 100644 new mode 100755 index 1994616..a67758d --- a/Classic/scripts/autoexec/AntiPack.cs +++ b/Classic/scripts/autoexec/AntiPack.cs @@ -79,14 +79,43 @@ package AntiPackCloak function CloakingPackImage::onActivate(%data, %obj, %slot) { + if(%obj.reCloak !$= "") + { + Cancel(%obj.reCloak); + %obj.reCloak = ""; + } + if(%obj.client.armor $= "Light") { + // can the player currently cloak (function returns "true" or reason for failure)? if(%obj.canCloak() $= "true") - messageClient(%obj.client, 'MsgCloakingPackInvalid', '\c2Cloakpack is disabled until %1 players.', $Host::AntiPackPlayerCount ); + { + if(%obj.getImageState($BackpackSlot) $= "activate") + { + // cancel recloak thread + if(%obj.reCloak !$= "") + { + Cancel(%obj.reCloak); + %obj.reCloak = ""; + } + + messageClient(%obj.client, 'MsgCloakingPackInvalid', '\c2Cloakpack is disabled until %1 players.', $Host::AntiPackPlayerCount ); + %obj.setCloaked(false); + %obj.setImageTrigger($BackpackSlot, false); + } + } + else + { + // notify player that they cannot cloak + messageClient(%obj.client, 'MsgCloakingPackFailed', '\c2Jamming field prevents cloaking.'); + %obj.setImageTrigger(%slot, false); + } } - else + else { + // hopefully avoid some loopholes messageClient(%obj.client, 'MsgCloakingPackInvalid', '\c2Cloaking available for light armors only.'); + %obj.setImageTrigger(%slot, false); } } @@ -109,4 +138,31 @@ function ShieldPackImage::onDeactivate(%data, %obj, %slot) }; +package AntiPack +{ + +//Reset Everything +function DefaultGame::gameOver(%game) +{ + Parent::gameOver(%game); + + if($InvBanList[CTF, "CloakingPack"]) + $InvBanList[CTF, "CloakingPack"] = 0; + if(isActivePackage(AntiPackCloak)) + deactivatePackage(AntiPackCloak); + + if($InvBanList[CTF, "ShieldPack"]) + $InvBanList[CTF, "ShieldPack"] = 0; + if(isActivePackage(AntiPackShield)) + deactivatePackage(AntiPackShield); + + $AntiPackStatus = "OFF"; +} + +}; + +// Prevent package from being activated if it is already +if (!isActivePackage(AntiPack)) + activatePackage(AntiPack); + diff --git a/Classic/scripts/autoexec/MissionTypeOptions.cs b/Classic/scripts/autoexec/MissionTypeOptions.cs index 02dc2bb..e5bf44d 100644 --- a/Classic/scripts/autoexec/MissionTypeOptions.cs +++ b/Classic/scripts/autoexec/MissionTypeOptions.cs @@ -52,20 +52,6 @@ function loadMissionStage2() $Host::HiVisibility = "0"; //always SPEED } - //Disable Antipack in tournament mode - if($Host::TournamentMode) - { - if($InvBanList[CTF, "CloakingPack"]) - $InvBanList[CTF, "CloakingPack"] = 0; - if(isActivePackage(AntiPackCloak)) - deactivatePackage(AntiPackCloak); - - if($InvBanList[CTF, "ShieldPack"]) - $InvBanList[CTF, "ShieldPack"] = 0; - if(isActivePackage(AntiPackShield)) - deactivatePackage(AntiPackShield); - } - //Siege NoBaseRape Fix if($CurrentMissionType $= "Siege") $Host::NoBaseRapeEnabled = 0;