Minor Adjustments

Removed the rest of the PGD Connect stuff (Did a test run on a server to check).

Another quick balance pass on weapons and adjustment to Zombie HP due to a reduction of damage values in many weapons to PvP balance the mod.
This commit is contained in:
Robert Fritzen 2021-01-14 19:32:09 -06:00
parent 52ad2235c7
commit 6070426c06
16 changed files with 82 additions and 66 deletions

View file

@ -59,7 +59,7 @@ PLEASE NOTE: I've moved all old changelogs into the version_history folder. This
* PGD Connect * PGD Connect
* As I have closed down the Phantom Games Development website, PGD Connect services are no longer active, I have removed all functioning of PGD Connect from the mod to allow users to continue to enjoy TWM2 without requiring this. * As I have closed down the Phantom Games Development website, PGD Connect services are no longer active, I have removed all functioning of PGD Connect from the mod to allow users to continue to enjoy TWM2 without requiring this.
* The Mod Load Menu has been updated, removing old links to PGD and now showing the mod's GitHub Repository Page. * The Mod Load Menu has been updated, removing old links to PGD and now showing the mod's GitHub Repository Page.
* The following mod features have been depricated and no longer available due to the removal of PGD Connect: * The following mod features have been depricated and are no longer available due to the removal of PGD Connect:
* Cross-Server Rank Files * Cross-Server Rank Files
* Cross-Server Buildings * Cross-Server Buildings
* Daily Challenges * Daily Challenges
@ -71,26 +71,33 @@ PLEASE NOTE: I've moved all old changelogs into the version_history folder. This
* Massive "spring cleaning" of the zombie code files, fixing a bunch of bad coding practices and a few logic errors. * Massive "spring cleaning" of the zombie code files, fixing a bunch of bad coding practices and a few logic errors.
* Moved all functioning into a core control script, added additional modifiers and flags to grant more customizability to zombies * Moved all functioning into a core control script, added additional modifiers and flags to grant more customizability to zombies
* **WARNING: Only specific zombies are functional at this moment in time** * **WARNING: Only specific zombies are functional at this moment in time**
* Normal
* Reduced HP from 280 (2.8) to 200 (2.0)
* Given damage number reductions in a large amount of the mod's arsenal to balance things, zombie HP needed to be cut across the board for the most part.
* Ravager * Ravager
* Ravagers will now perform ambush style attacks on targets, making them much more challenging * Ravagers will now perform ambush style attacks on targets, making them much more challenging
* Increased the XP reward from killing ravager zombies * Increased the XP reward from killing ravager zombies
* Lord * Lord
* Reduced HP from 1800 (18.0) to 1250 (12.5)
* Modified the behavior of zombie lords * Modified the behavior of zombie lords
* Replaced the acid cannon with an anti-tank photon cannon * Replaced the acid cannon with an anti-tank photon cannon
* Zombie lords will now preferential target enemy ground armor before infantry, and engage their photon cannon on targets * Zombie lords will now preferential target enemy ground armor before infantry, and engage their photon cannon on targets
* Zombie lords can now activate a defensive barrier to protect themselves and allies from damage temporarily... enjoy this new rage inducing mechanic :) * Zombie lords can now activate a defensive barrier to protect themselves and allies from damage temporarily... enjoy this new rage inducing mechanic :)
* Demon * Demon
* Reduced HP from 400 (4.0) to 300 (3.0)
* Increased resistance to fire damage to 1000% from 3% * Increased resistance to fire damage to 1000% from 3%
* Demon Zombies now light players on fire instead of infecting them on collision * Demon Zombies now light players on fire instead of infecting them on collision
* Players will be knocked back with a higher force when hit by demon zombies * Players will be knocked back with a higher force when hit by demon zombies
* Air Rapier * Air Rapier
* Modified the damage scalar of missiles to be a OHK on rapier zombies * Modified the damage scalar of missiles to be a OHK on rapier zombies
* Demon Lord * Demon Lord
* Reduced HP from 900 (9.0) to 750 (7.5)
* Cleaned up this script file substantially * Cleaned up this script file substantially
* Replaced the standard lunge with a fire lunge which creates a firey explosion on impact * Replaced the standard lunge with a fire lunge which creates a firey explosion on impact
* Reduced the hit damage of the demon lord from 0.8 to 0.5 * Reduced the hit damage of the demon lord from 0.8 to 0.5
* Demon Lords, like the regular demons will no longer infect on collision, but set the player on fire instead * Demon Lords, like the regular demons will no longer infect on collision, but set the player on fire instead
* Shifter * Shifter
* Reduced HP from 280 (2.8) to 225 (2.25)
* The change to the shifter teleportation in 3.91 made these zombies ridiculously overpowered, they will be tuned down * The change to the shifter teleportation in 3.91 made these zombies ridiculously overpowered, they will be tuned down
* Increased the maximum targeting range of the teleport attack from 200m to 400m * Increased the maximum targeting range of the teleport attack from 200m to 400m
* Increased the cooldown of the teleport attack from 7 seconds to 12.5 seconds * Increased the cooldown of the teleport attack from 7 seconds to 12.5 seconds
@ -99,7 +106,7 @@ PLEASE NOTE: I've moved all old changelogs into the version_history folder. This
* The sniper zombie is now armed with two new weapons. * The sniper zombie is now armed with two new weapons.
* The first is an acid sniper rifle which infects players on striking * The first is an acid sniper rifle which infects players on striking
* The second is a rapid fire sidearm that the sniper will use when targets move too close * The second is a rapid fire sidearm that the sniper will use when targets move too close
* Reduced the health of Sniper Zombies from 40 (4.0) to 25 (2.5) * Reduced the health of Sniper Zombies from 400 (4.0) to 250 (2.5)
* Added Boss Proficiency * Added Boss Proficiency
* Hidden challenges embedded in boss fights that award additional experience for completing tough feats * Hidden challenges embedded in boss fights that award additional experience for completing tough feats
* For example: Defeat the shade lord without dying by the elemental shades * For example: Defeat the shade lord without dying by the elemental shades
@ -215,11 +222,11 @@ PLEASE NOTE: I've moved all old changelogs into the version_history folder. This
* Reduced the clip reload time from 5 seconds to 4 seconds * Reduced the clip reload time from 5 seconds to 4 seconds
* Reduced the round rechamber time from 1.1 seconds to 0.9 seconds * Reduced the round rechamber time from 1.1 seconds to 0.9 seconds
* R700 * R700
* The monstrous R700 sniper rifle has for the most part, gone completely unchallenged since the release of the mod * The monstrous R700 sniper rifle has for the most part, gone completely unchallenged since the release of the mod, and it's time for it to be reigned in.
* This weapon is about to get a lesson in Newton's Law of Gravity. * Reduced direct impact damage from 0.62 to 0.6
* Changed the projectile type from Tracer to Grenade * Removed the headshot multiplier on the projectile (The weapon still OHK on headshot, but this will affect high-tier PvE combatants)
* Bullets will now drop as they travel, reducing the effective range with the same look angle. * Increased the ammo per clip from 4 to 7
* Players will now need to aim their shots based on distance too. * The goal of this adjustment pass is to make the R700 a high-end choice in regards to having moderate damage and the largest magazine size, but allow the other two snipers to be competitive in choice.
* Assault Rifles * Assault Rifles
* Assault Rifles have always felt good in TWM2, the strong jack of all trade weapons good for most ranges, while being outperformed in the range of other tools * Assault Rifles have always felt good in TWM2, the strong jack of all trade weapons good for most ranges, while being outperformed in the range of other tools
* Only minor tweaking is needed here to help some of the unused tools get up to speed * Only minor tweaking is needed here to help some of the unused tools get up to speed

View file

@ -215,7 +215,7 @@ function PromoteToPrestige(%client) {
SaveClientFile(%client); SaveClientFile(%client);
MessageAll('msgSpecial', "\c5"@%client.namebase@" has promoted to Officer level "@%next@"."); MessageAll('msgSpecial', "\c5"@%client.namebase@" has promoted to Officer level "@%next@".");
recordAction(%client, "", ""); //record blank action for the challenges to pick off any officer challenges //recordAction(%client, "", ""); //record blank action for the challenges to pick off any officer challenges
for(%i = %next; %i > 0; %i--) { for(%i = %next; %i > 0; %i--) {
%oChN = "Prestige"@%i; %oChN = "Prestige"@%i;

View file

@ -86,7 +86,7 @@ function BossCheckUp(%boss, %name) {
%count = ClientGroup.getCount(); %count = ClientGroup.getCount();
for(%i = 0; %i < %count; %i++) { for(%i = 0; %i < %count; %i++) {
%cl = ClientGroup.getObject(%i); %cl = ClientGroup.getObject(%i);
recordAction(%cl, "BOSS", "Vardison1"); //recordAction(%cl, "BOSS", "Vardison1");
} }
SpawnVardison2(%boss.getPosition()); SpawnVardison2(%boss.getPosition());
return; return;
@ -95,7 +95,7 @@ function BossCheckUp(%boss, %name) {
%count = ClientGroup.getCount(); %count = ClientGroup.getCount();
for(%i = 0; %i < %count; %i++) { for(%i = 0; %i < %count; %i++) {
%cl = ClientGroup.getObject(%i); %cl = ClientGroup.getObject(%i);
recordAction(%cl, "BOSS", "Vardison2"); //recordAction(%cl, "BOSS", "Vardison2");
} }
SpawnVardison3(%boss.getPosition()); SpawnVardison3(%boss.getPosition());
return; return;
@ -143,7 +143,7 @@ function GameConnection::GiveBossAward(%client, %bossName) {
%percentage = (%damageCount / %maxHP) * 100; %percentage = (%damageCount / %maxHP) * 100;
if(%percentage > 5) { if(%percentage > 5) {
recordAction(%client, "BOSS", %bossName); //recordAction(%client, "BOSS", %bossName);
if(!isSet(%scriptController.bossDefeatCount[%bossName])) { if(!isSet(%scriptController.bossDefeatCount[%bossName])) {
%scriptController.bossDefeatCount[%bossName] = 0; %scriptController.bossDefeatCount[%bossName] = 0;

View file

@ -33,6 +33,5 @@ function LoadClientFile(%client) {
exec(%file); exec(%file);
ClientContainer(%client); ClientContainer(%client);
// //
loadChallengeData(%client);
loadSettings(%client); loadSettings(%client);
} }

View file

@ -90,7 +90,8 @@ function GetRequiredKills(%client, %streakVal, %plZ) {
} }
function GameConnection::OnUseKillstreak(%client, %ID) { function GameConnection::OnUseKillstreak(%client, %ID) {
recordAction(%client, "KSCC", %ID@"\t1"); //TWM2 3.9.2: Depricated, but keeping this callback in case we'd like it in the future.
//recordAction(%client, "KSCC", %ID@"\t1");
} }
//Handles Player Based Killstreaks //Handles Player Based Killstreaks

View file

@ -370,7 +370,7 @@ function postObjectDestroyed(%source, %targetObject, %dType, %dLoc) {
} }
} }
//Challenges, Successive Kills, Killstreaks //Challenges, Successive Kills, Killstreaks
doChallengeCheck(%sourceClient, %targetClient); //doChallengeCheck(%sourceClient, %targetClient);
%sourceObject.killsinarow++; %sourceObject.killsinarow++;
%sourceObject.killsinarow2++; %sourceObject.killsinarow2++;
//TWM2 3.2 -> Successive Kills //TWM2 3.2 -> Successive Kills
@ -391,7 +391,7 @@ function postObjectDestroyed(%source, %targetObject, %dType, %dLoc) {
} }
} }
//Record Challenge Kill //Record Challenge Kill
doChallengeKillRecording(%sourceObject, %targetObject); //doChallengeKillRecording(%sourceObject, %targetObject);
//martydom //martydom
if(%targetClient !$= "" && %targetClient != 0 && %targetClient.IsActivePerk("Martydom")) { if(%targetClient !$= "" && %targetClient != 0 && %targetClient.IsActivePerk("Martydom")) {
serverPlay3d(SatchelChargeActivateSound, %targetObject.getPosition()); serverPlay3d(SatchelChargeActivateSound, %targetObject.getPosition());

View file

@ -29,7 +29,7 @@ function ResetSuccessive(%player) {
function DoStreakPrint(%player, %kills, %damageType) { function DoStreakPrint(%player, %kills, %damageType) {
%client = %player.client; %client = %player.client;
recordAction(%client, "SKSC", %kills@"\t1"); //recordAction(%client, "SKSC", %kills@"\t1");
switch(%kills) { switch(%kills) {
case 5: case 5:
BottomPrint(%client, "<color:EE0000><Font:Arial Bold:18>KILLING SPREE", 3, 3); BottomPrint(%client, "<color:EE0000><Font:Arial Bold:18>KILLING SPREE", 3, 3);
@ -55,7 +55,7 @@ function DoSuccessivePrint(%player) {
} }
%client = %player.client; %client = %player.client;
messageClient(%client, 'msgSoundFX', "~wfx/misc/MA1.wav"); messageClient(%client, 'msgSoundFX', "~wfx/misc/MA1.wav");
recordAction(%client, "SKC", %player.successive@"\t1"); //recordAction(%client, "SKC", %player.successive@"\t1");
switch(%player.successive) { switch(%player.successive) {
case 2: case 2:
CenterPrint(%client, "<color:EE0000><Font:Arial Bold:18>DOUBLE KILL", 3, 3); CenterPrint(%client, "<color:EE0000><Font:Arial Bold:18>DOUBLE KILL", 3, 3);

View file

@ -2,7 +2,7 @@ $TWM2::ArmorHasCollisionFunction[DemonZombieArmor] = true;
datablock PlayerData(DemonZombieArmor) : LightMaleHumanArmor { datablock PlayerData(DemonZombieArmor) : LightMaleHumanArmor {
boundingBox = "1.63 1.63 2.6"; boundingBox = "1.63 1.63 2.6";
maxDamage = 4.0; maxDamage = 3.0;
minImpactSpeed = 35; minImpactSpeed = 35;
shapeFile = "bioderm_heavy.dts"; shapeFile = "bioderm_heavy.dts";

View file

@ -2,7 +2,7 @@ $TWM2::ArmorHasCollisionFunction[DemonMotherZombieArmor] = true;
datablock PlayerData(DemonMotherZombieArmor) : LightMaleHumanArmor { datablock PlayerData(DemonMotherZombieArmor) : LightMaleHumanArmor {
boundingBox = "1.5 1.5 2.6"; boundingBox = "1.5 1.5 2.6";
maxDamage = 9.0; maxDamage = 7.5;
minImpactSpeed = 35; minImpactSpeed = 35;
shapeFile = "medium_female.dts"; shapeFile = "medium_female.dts";

View file

@ -15,7 +15,7 @@ datablock AudioProfile(HZLordFootSound) {
datablock PlayerData(LordZombieArmor) : HeavyMaleBiodermArmor { datablock PlayerData(LordZombieArmor) : HeavyMaleBiodermArmor {
shapefile = "TR2medium_male.dts"; shapefile = "TR2medium_male.dts";
mass = 500; mass = 500;
maxDamage = 18.0; maxDamage = 12.5;
minImpactSpeed = 50; minImpactSpeed = 50;
speedDamageScale = 0.015; speedDamageScale = 0.015;
boundingBox = "2.9 2.9 4.8"; boundingBox = "2.9 2.9 4.8";

View file

@ -10,7 +10,7 @@ datablock PlayerData(ZombieArmor) : LightMaleHumanArmor {
jumpForce = 14.0 * 90; jumpForce = 14.0 * 90;
maxDamage = 2.8; maxDamage = 2.0;
minImpactSpeed = 35; minImpactSpeed = 35;
shapeFile = "bioderm_medium.dts"; shapeFile = "bioderm_medium.dts";
jetEmitter = BiodermArmorJetEmitter; jetEmitter = BiodermArmorJetEmitter;

View file

@ -10,7 +10,7 @@ datablock PlayerData(ShifterZombieArmor) : LightMaleHumanArmor {
jumpForce = 14.0 * 90; jumpForce = 14.0 * 90;
maxDamage = 2.8; maxDamage = 2.25;
minImpactSpeed = 35; minImpactSpeed = 35;
shapeFile = "bioderm_light.dts"; shapeFile = "bioderm_light.dts";
jetEmitter = BiodermArmorJetEmitter; jetEmitter = BiodermArmorJetEmitter;

View file

@ -3,8 +3,7 @@
// and Modified later by the T2CC // and Modified later by the T2CC
//------------------------------------------- //-------------------------------------------
package loadmodinfo package loadmodinfo {
{
function GetTipMessage() { function GetTipMessage() {
%r = getRandom(1,19); %r = getRandom(1,19);
@ -52,8 +51,8 @@ package loadmodinfo
} }
function sendLoadInfoToClient( %client ) { function sendLoadInfoToClient( %client ) {
Parent::sendLoadInfoToClient(%client); Parent::sendLoadInfoToClient(%client);
schedule(1000, 0, "sendLoadscreen", %client); schedule(1000, 0, "sendLoadscreen", %client);
} }
function sendLoadscreen(%client){ function sendLoadscreen(%client){
@ -64,8 +63,7 @@ package loadmodinfo
messageClient(%client, 'MsgDebriefResult', "", "<Font:Arial Bold:14><Just:CENTER>Total Warfare Mod 2 : Advanced Warfare"); messageClient(%client, 'MsgDebriefResult', "", "<Font:Arial Bold:14><Just:CENTER>Total Warfare Mod 2 : Advanced Warfare");
messageClient(%client, 'MsgDebriefResult', "", "<Font:Arial Bold:14><Just:CENTER>Mod Version: "@$TWM2::ModVersionString); messageClient(%client, 'MsgDebriefResult', "", "<Font:Arial Bold:14><Just:CENTER>Mod Version: "@$TWM2::ModVersionString);
%Credits = "\n<Font:Arial:16>Version v"@$TWM2::ModVersionString@"" @ %Credits = "\n<Font:Arial:14>TWM 2 Creator (Lead Developer): Phantom139"@
"\n<Font:Arial:14>TWM 2 Creator (Lead Developer): Phantom139"@
"\n<Font:Arial:14>TWM 2 Co-Devs: Dark Dragon DX, DarknessOfLight, and Signal360"@ "\n<Font:Arial:14>TWM 2 Co-Devs: Dark Dragon DX, DarknessOfLight, and Signal360"@
"\n<Font:Arial:14>CCM Developers: Dondelium_X, FalconBlade, and Ur_A_Dum"; "\n<Font:Arial:14>CCM Developers: Dondelium_X, FalconBlade, and Ur_A_Dum";

View file

@ -1399,7 +1399,7 @@ datablock PlayerData(LightMaleHumanArmor) : LightPlayerDamageProfile
max[G41Rifle] = 1; max[G41Rifle] = 1;
max[G41RifleAmmo] = 20; max[G41RifleAmmo] = 20;
max[R700SniperRifle] = 1; max[R700SniperRifle] = 1;
max[R700SniperRifleAmmo] = 4; max[R700SniperRifleAmmo] = 7;
max[Javelin] = 0; max[Javelin] = 0;
max[JavelinAmmo] = 0; max[JavelinAmmo] = 0;
max[Stinger] = 0; max[Stinger] = 0;
@ -2017,7 +2017,7 @@ datablock PlayerData(HeavyMaleHumanArmor) : HeavyPlayerDamageProfile
max[G41Rifle] = 0; max[G41Rifle] = 0;
max[G41RifleAmmo] = 0; max[G41RifleAmmo] = 0;
max[R700SniperRifle] = 1; max[R700SniperRifle] = 1;
max[R700SniperRifleAmmo] = 4; max[R700SniperRifleAmmo] = 7;
max[MiniChaingun] = 1; max[MiniChaingun] = 1;
max[MiniChaingunAmmo] = 100; max[MiniChaingunAmmo] = 100;
max[MiniColliderCannon] = 1; max[MiniColliderCannon] = 1;

View file

@ -42,36 +42,52 @@ datablock ParticleEmitterData(R700SmokeEmitter) {
particles = "R700SmokeParticle"; particles = "R700SmokeParticle";
}; };
datablock GrenadeProjectileData(R700Bullet) { datablock LinearFlareProjectileData(R700Bullet)
projectileShapeName = "weapon_missile_projectile.dts"; {
emitterDelay = -1; projectileShapeName = "weapon_missile_projectile.dts";
directDamage = 0.62; scale = "1.0 1.0 1.0";
hasDamageRadius = false; faceViewer = true;
directDamageType = $DamageType::R700; directDamage = 0.6;
kickBackStrength = 6400; kickBackStrength = 6400;
bubbleEmitTime = 1.0; radiusDamageType = $DamageType::R700;
HeadMultiplier = 1.5; LegsMultiplier = 0.35;
LegsMultiplier = 0.35;
HeadShotKill = 1; HeadShotKill = 1;
ImageSource = "R700SniperRifleImage"; ImageSource = "R700SniperRifleImage";
sound = ChaingunProjectile; explosion = "ChaingunExplosion";
explosion = "ChaingunExplosion"; splash = ChaingunSplash;
underwaterExplosion = "ChaingunExplosion";
velInheritFactor = 0.5;
splash = ChaingunSplash;
baseEmitter = R700SmokeEmitter; baseEmitter = R700SmokeEmitter;
bubbleEmitter = R700SmokeEmitter;
grenadeElasticity = 0.35; dryVelocity = 2000.0;
grenadeFriction = 0.2; wetVelocity = 2000.0;
armingDelayMS = 1; velInheritFactor = 1.0;
muzzleVelocity = 2000.00; fizzleTimeMS = 1000;
drag = 0.1; lifetimeMS = 1000;
explodeOnDeath = false;
reflectOnWaterImpactAngle = 0.0;
explodeOnWaterImpact = false;
deflectionOnWaterImpact = 0.0;
fizzleUnderwaterMS = 3000;
//activateDelayMS = 100;
activateDelayMS = -1;
size[0] = 0.2;
size[1] = 0.5;
size[2] = 0.1;
numFlares = 5; //less flares = less lag
flareColor = "1 0.18 0.03";
flareModTexture = "flaremod";
flareBaseTexture = "flarebase";
hasLight = true;
lightRadius = 10.0;
lightColor = "0.94 0.03 0.12";
}; };
datablock ItemData(R700SniperRifleAmmo) { datablock ItemData(R700SniperRifleAmmo) {
@ -98,7 +114,7 @@ datablock ShapeBaseImageData(R700SniperRifleImage) {
item = R700SniperRifle; item = R700SniperRifle;
ammo = R700SniperRifleAmmo; ammo = R700SniperRifleAmmo;
projectile = R700Bullet; projectile = R700Bullet;
projectileType = GrenadeProjectile; projectileType = LinearFlareProjectile;
emap = true; emap = true;
armThread = looksn; armThread = looksn;
@ -108,7 +124,7 @@ datablock ShapeBaseImageData(R700SniperRifleImage) {
ClipPickupName["R700Clip"] = "A Few Boxes Of R700 Sniper Bullets"; ClipPickupName["R700Clip"] = "A Few Boxes Of R700 Sniper Bullets";
ShowsClipInHud = 1; ShowsClipInHud = 1;
ClipReloadTime = 7; ClipReloadTime = 7;
ClipReturn = 4; ClipReturn = 7;
InitialClips = 6; InitialClips = 6;
// //
//Challenges //Challenges

View file

@ -5,11 +5,6 @@ $TWM2::DisabledMissionTypes = ""; //Horde\tHorde4
$ScoreHudInventory::Active = 0; //0 returns the inv. hud to the normal one $ScoreHudInventory::Active = 0; //0 returns the inv. hud to the normal one
//This global variable can disable the features of PGD Connect on the server. If the service
// goes down at any time, please set this to 1. All PGD Connect Servive info may be viewed on
// the PGD fourms (http://forums.phantomdev.net)
$TWM2::PGDConnectDisabled = 0;
$TWM2::PGDCredentials = "";
$TWM2::RestartOnEmpty = 0; $TWM2::RestartOnEmpty = 0;
//CHAT BOT //CHAT BOT
@ -238,10 +233,10 @@ $Host::UseGlobalBanList = 1;
$TWM2::UseGoreMod = 0; //set this to 1 for bl00d $TWM2::UseGoreMod = 0; //set this to 1 for bl00d
$Server::MOTD = "Welcome To Total Warfare Mod 2 : Advanced Warfare, Please Enjoy your time, but behave, Advertisers and spam bots are not accepted here and will be punshised with kick/ban."; $Server::MOTD = "Set a MOTD for the mod's load window and in-game menu here.";
//This is center printed when a client enters the game window (Observer) //This is center printed when a client enters the game window (Observer)
$Host::ServerPopup = "<just:center><color:ffffff>http://www.phantomdev.net \n Home of TWM2 \n Hosted by: Phantom139"; $Host::ServerPopup = "<just:center><color:ffffff>Place your desired text here";
$TWM2::FFAMode = 0; // the /tkToggle command Sets This too $TWM2::FFAMode = 0; // the /tkToggle command Sets This too