From 6070426c0652a9a137ff514f5304f0d52fb0af9f Mon Sep 17 00:00:00 2001 From: Robert Fritzen Date: Thu, 14 Jan 2021 19:32:09 -0600 Subject: [PATCH] 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. --- README.md | 27 +++++--- scripts/TWM2/Systems/AdvancedRankSystem.cs | 2 +- scripts/TWM2/Systems/BossSystem.cs | 6 +- scripts/TWM2/Systems/Directorate.cs | 1 - scripts/TWM2/Systems/Killstreak.cs | 3 +- scripts/TWM2/Systems/ObjectDamage.cs | 4 +- scripts/TWM2/Systems/SuccessiveKills.cs | 4 +- scripts/TWM2/Zombie/ZombieTypes/Demon.cs | 2 +- scripts/TWM2/Zombie/ZombieTypes/DemonLord.cs | 2 +- scripts/TWM2/Zombie/ZombieTypes/Lord.cs | 2 +- scripts/TWM2/Zombie/ZombieTypes/Normal.cs | 2 +- scripts/TWM2/Zombie/ZombieTypes/Shifter.cs | 2 +- scripts/TWM2/loadMenu.cs | 10 ++- scripts/player.cs | 4 +- scripts/weapons/Rifles/R700Sniper.cs | 68 ++++++++++++-------- serverControl.cs | 9 +-- 16 files changed, 82 insertions(+), 66 deletions(-) diff --git a/README.md b/README.md index cdac688..93dac2f 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ PLEASE NOTE: I've moved all old changelogs into the version_history folder. This * 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. * 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 Buildings * 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. * 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** + * 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 * Ravagers will now perform ambush style attacks on targets, making them much more challenging * Increased the XP reward from killing ravager zombies * Lord + * Reduced HP from 1800 (18.0) to 1250 (12.5) * Modified the behavior of zombie lords - * 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 can now activate a defensive barrier to protect themselves and allies from damage temporarily... enjoy this new rage inducing mechanic :) + * 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 can now activate a defensive barrier to protect themselves and allies from damage temporarily... enjoy this new rage inducing mechanic :) * Demon + * Reduced HP from 400 (4.0) to 300 (3.0) * Increased resistance to fire damage to 1000% from 3% * 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 * Air Rapier * Modified the damage scalar of missiles to be a OHK on rapier zombies * Demon Lord + * Reduced HP from 900 (9.0) to 750 (7.5) * Cleaned up this script file substantially * 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 * Demon Lords, like the regular demons will no longer infect on collision, but set the player on fire instead * 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 * 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 @@ -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 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 - * 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 * 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 @@ -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 round rechamber time from 1.1 seconds to 0.9 seconds * R700 - * The monstrous R700 sniper rifle has for the most part, gone completely unchallenged since the release of the mod - * This weapon is about to get a lesson in Newton's Law of Gravity. - * Changed the projectile type from Tracer to Grenade - * Bullets will now drop as they travel, reducing the effective range with the same look angle. - * Players will now need to aim their shots based on distance too. + * 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. + * Reduced direct impact damage from 0.62 to 0.6 + * Removed the headshot multiplier on the projectile (The weapon still OHK on headshot, but this will affect high-tier PvE combatants) + * Increased the ammo per clip from 4 to 7 + * 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 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 diff --git a/scripts/TWM2/Systems/AdvancedRankSystem.cs b/scripts/TWM2/Systems/AdvancedRankSystem.cs index 6182fb7..3d2c4f1 100644 --- a/scripts/TWM2/Systems/AdvancedRankSystem.cs +++ b/scripts/TWM2/Systems/AdvancedRankSystem.cs @@ -215,7 +215,7 @@ function PromoteToPrestige(%client) { SaveClientFile(%client); 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--) { %oChN = "Prestige"@%i; diff --git a/scripts/TWM2/Systems/BossSystem.cs b/scripts/TWM2/Systems/BossSystem.cs index ba9020a..84ef34c 100644 --- a/scripts/TWM2/Systems/BossSystem.cs +++ b/scripts/TWM2/Systems/BossSystem.cs @@ -86,7 +86,7 @@ function BossCheckUp(%boss, %name) { %count = ClientGroup.getCount(); for(%i = 0; %i < %count; %i++) { %cl = ClientGroup.getObject(%i); - recordAction(%cl, "BOSS", "Vardison1"); + //recordAction(%cl, "BOSS", "Vardison1"); } SpawnVardison2(%boss.getPosition()); return; @@ -95,7 +95,7 @@ function BossCheckUp(%boss, %name) { %count = ClientGroup.getCount(); for(%i = 0; %i < %count; %i++) { %cl = ClientGroup.getObject(%i); - recordAction(%cl, "BOSS", "Vardison2"); + //recordAction(%cl, "BOSS", "Vardison2"); } SpawnVardison3(%boss.getPosition()); return; @@ -143,7 +143,7 @@ function GameConnection::GiveBossAward(%client, %bossName) { %percentage = (%damageCount / %maxHP) * 100; if(%percentage > 5) { - recordAction(%client, "BOSS", %bossName); + //recordAction(%client, "BOSS", %bossName); if(!isSet(%scriptController.bossDefeatCount[%bossName])) { %scriptController.bossDefeatCount[%bossName] = 0; diff --git a/scripts/TWM2/Systems/Directorate.cs b/scripts/TWM2/Systems/Directorate.cs index bdd0a95..6762e45 100644 --- a/scripts/TWM2/Systems/Directorate.cs +++ b/scripts/TWM2/Systems/Directorate.cs @@ -33,6 +33,5 @@ function LoadClientFile(%client) { exec(%file); ClientContainer(%client); // - loadChallengeData(%client); loadSettings(%client); } diff --git a/scripts/TWM2/Systems/Killstreak.cs b/scripts/TWM2/Systems/Killstreak.cs index 12c7ba7..0cfe2e8 100644 --- a/scripts/TWM2/Systems/Killstreak.cs +++ b/scripts/TWM2/Systems/Killstreak.cs @@ -90,7 +90,8 @@ function GetRequiredKills(%client, %streakVal, %plZ) { } 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 diff --git a/scripts/TWM2/Systems/ObjectDamage.cs b/scripts/TWM2/Systems/ObjectDamage.cs index 12cd377..dd9fce3 100644 --- a/scripts/TWM2/Systems/ObjectDamage.cs +++ b/scripts/TWM2/Systems/ObjectDamage.cs @@ -370,7 +370,7 @@ function postObjectDestroyed(%source, %targetObject, %dType, %dLoc) { } } //Challenges, Successive Kills, Killstreaks - doChallengeCheck(%sourceClient, %targetClient); + //doChallengeCheck(%sourceClient, %targetClient); %sourceObject.killsinarow++; %sourceObject.killsinarow2++; //TWM2 3.2 -> Successive Kills @@ -391,7 +391,7 @@ function postObjectDestroyed(%source, %targetObject, %dType, %dLoc) { } } //Record Challenge Kill - doChallengeKillRecording(%sourceObject, %targetObject); + //doChallengeKillRecording(%sourceObject, %targetObject); //martydom if(%targetClient !$= "" && %targetClient != 0 && %targetClient.IsActivePerk("Martydom")) { serverPlay3d(SatchelChargeActivateSound, %targetObject.getPosition()); diff --git a/scripts/TWM2/Systems/SuccessiveKills.cs b/scripts/TWM2/Systems/SuccessiveKills.cs index 9382c38..a213777 100644 --- a/scripts/TWM2/Systems/SuccessiveKills.cs +++ b/scripts/TWM2/Systems/SuccessiveKills.cs @@ -29,7 +29,7 @@ function ResetSuccessive(%player) { function DoStreakPrint(%player, %kills, %damageType) { %client = %player.client; - recordAction(%client, "SKSC", %kills@"\t1"); + //recordAction(%client, "SKSC", %kills@"\t1"); switch(%kills) { case 5: BottomPrint(%client, "KILLING SPREE", 3, 3); @@ -55,7 +55,7 @@ function DoSuccessivePrint(%player) { } %client = %player.client; messageClient(%client, 'msgSoundFX', "~wfx/misc/MA1.wav"); - recordAction(%client, "SKC", %player.successive@"\t1"); + //recordAction(%client, "SKC", %player.successive@"\t1"); switch(%player.successive) { case 2: CenterPrint(%client, "DOUBLE KILL", 3, 3); diff --git a/scripts/TWM2/Zombie/ZombieTypes/Demon.cs b/scripts/TWM2/Zombie/ZombieTypes/Demon.cs index 8d2fcc2..009b7ac 100644 --- a/scripts/TWM2/Zombie/ZombieTypes/Demon.cs +++ b/scripts/TWM2/Zombie/ZombieTypes/Demon.cs @@ -2,7 +2,7 @@ $TWM2::ArmorHasCollisionFunction[DemonZombieArmor] = true; datablock PlayerData(DemonZombieArmor) : LightMaleHumanArmor { boundingBox = "1.63 1.63 2.6"; - maxDamage = 4.0; + maxDamage = 3.0; minImpactSpeed = 35; shapeFile = "bioderm_heavy.dts"; diff --git a/scripts/TWM2/Zombie/ZombieTypes/DemonLord.cs b/scripts/TWM2/Zombie/ZombieTypes/DemonLord.cs index 3b833f9..66f760b 100644 --- a/scripts/TWM2/Zombie/ZombieTypes/DemonLord.cs +++ b/scripts/TWM2/Zombie/ZombieTypes/DemonLord.cs @@ -2,7 +2,7 @@ $TWM2::ArmorHasCollisionFunction[DemonMotherZombieArmor] = true; datablock PlayerData(DemonMotherZombieArmor) : LightMaleHumanArmor { boundingBox = "1.5 1.5 2.6"; - maxDamage = 9.0; + maxDamage = 7.5; minImpactSpeed = 35; shapeFile = "medium_female.dts"; diff --git a/scripts/TWM2/Zombie/ZombieTypes/Lord.cs b/scripts/TWM2/Zombie/ZombieTypes/Lord.cs index cf0443b..b39fd6b 100644 --- a/scripts/TWM2/Zombie/ZombieTypes/Lord.cs +++ b/scripts/TWM2/Zombie/ZombieTypes/Lord.cs @@ -15,7 +15,7 @@ datablock AudioProfile(HZLordFootSound) { datablock PlayerData(LordZombieArmor) : HeavyMaleBiodermArmor { shapefile = "TR2medium_male.dts"; mass = 500; - maxDamage = 18.0; + maxDamage = 12.5; minImpactSpeed = 50; speedDamageScale = 0.015; boundingBox = "2.9 2.9 4.8"; diff --git a/scripts/TWM2/Zombie/ZombieTypes/Normal.cs b/scripts/TWM2/Zombie/ZombieTypes/Normal.cs index b237812..6374b42 100644 --- a/scripts/TWM2/Zombie/ZombieTypes/Normal.cs +++ b/scripts/TWM2/Zombie/ZombieTypes/Normal.cs @@ -10,7 +10,7 @@ datablock PlayerData(ZombieArmor) : LightMaleHumanArmor { jumpForce = 14.0 * 90; - maxDamage = 2.8; + maxDamage = 2.0; minImpactSpeed = 35; shapeFile = "bioderm_medium.dts"; jetEmitter = BiodermArmorJetEmitter; diff --git a/scripts/TWM2/Zombie/ZombieTypes/Shifter.cs b/scripts/TWM2/Zombie/ZombieTypes/Shifter.cs index bcf7ea4..1bdcb41 100644 --- a/scripts/TWM2/Zombie/ZombieTypes/Shifter.cs +++ b/scripts/TWM2/Zombie/ZombieTypes/Shifter.cs @@ -10,7 +10,7 @@ datablock PlayerData(ShifterZombieArmor) : LightMaleHumanArmor { jumpForce = 14.0 * 90; - maxDamage = 2.8; + maxDamage = 2.25; minImpactSpeed = 35; shapeFile = "bioderm_light.dts"; jetEmitter = BiodermArmorJetEmitter; diff --git a/scripts/TWM2/loadMenu.cs b/scripts/TWM2/loadMenu.cs index 78674fb..17ccc35 100644 --- a/scripts/TWM2/loadMenu.cs +++ b/scripts/TWM2/loadMenu.cs @@ -3,8 +3,7 @@ // and Modified later by the T2CC //------------------------------------------- -package loadmodinfo -{ +package loadmodinfo { function GetTipMessage() { %r = getRandom(1,19); @@ -52,8 +51,8 @@ package loadmodinfo } function sendLoadInfoToClient( %client ) { - Parent::sendLoadInfoToClient(%client); - schedule(1000, 0, "sendLoadscreen", %client); + Parent::sendLoadInfoToClient(%client); + schedule(1000, 0, "sendLoadscreen", %client); } function sendLoadscreen(%client){ @@ -64,8 +63,7 @@ package loadmodinfo messageClient(%client, 'MsgDebriefResult', "", "Total Warfare Mod 2 : Advanced Warfare"); messageClient(%client, 'MsgDebriefResult', "", "Mod Version: "@$TWM2::ModVersionString); - %Credits = "\nVersion v"@$TWM2::ModVersionString@"" @ - "\nTWM 2 Creator (Lead Developer): Phantom139"@ + %Credits = "\nTWM 2 Creator (Lead Developer): Phantom139"@ "\nTWM 2 Co-Devs: Dark Dragon DX, DarknessOfLight, and Signal360"@ "\nCCM Developers: Dondelium_X, FalconBlade, and Ur_A_Dum"; diff --git a/scripts/player.cs b/scripts/player.cs index 3bd9ee3..1eaedc9 100644 --- a/scripts/player.cs +++ b/scripts/player.cs @@ -1399,7 +1399,7 @@ datablock PlayerData(LightMaleHumanArmor) : LightPlayerDamageProfile max[G41Rifle] = 1; max[G41RifleAmmo] = 20; max[R700SniperRifle] = 1; - max[R700SniperRifleAmmo] = 4; + max[R700SniperRifleAmmo] = 7; max[Javelin] = 0; max[JavelinAmmo] = 0; max[Stinger] = 0; @@ -2017,7 +2017,7 @@ datablock PlayerData(HeavyMaleHumanArmor) : HeavyPlayerDamageProfile max[G41Rifle] = 0; max[G41RifleAmmo] = 0; max[R700SniperRifle] = 1; - max[R700SniperRifleAmmo] = 4; + max[R700SniperRifleAmmo] = 7; max[MiniChaingun] = 1; max[MiniChaingunAmmo] = 100; max[MiniColliderCannon] = 1; diff --git a/scripts/weapons/Rifles/R700Sniper.cs b/scripts/weapons/Rifles/R700Sniper.cs index 913e634..6c7b0fb 100644 --- a/scripts/weapons/Rifles/R700Sniper.cs +++ b/scripts/weapons/Rifles/R700Sniper.cs @@ -42,36 +42,52 @@ datablock ParticleEmitterData(R700SmokeEmitter) { particles = "R700SmokeParticle"; }; -datablock GrenadeProjectileData(R700Bullet) { - projectileShapeName = "weapon_missile_projectile.dts"; - emitterDelay = -1; - directDamage = 0.62; - hasDamageRadius = false; - directDamageType = $DamageType::R700; - kickBackStrength = 6400; - bubbleEmitTime = 1.0; +datablock LinearFlareProjectileData(R700Bullet) +{ + projectileShapeName = "weapon_missile_projectile.dts"; + scale = "1.0 1.0 1.0"; + faceViewer = true; + directDamage = 0.6; + kickBackStrength = 6400; + radiusDamageType = $DamageType::R700; - HeadMultiplier = 1.5; - LegsMultiplier = 0.35; + LegsMultiplier = 0.35; - HeadShotKill = 1; + HeadShotKill = 1; - ImageSource = "R700SniperRifleImage"; + ImageSource = "R700SniperRifleImage"; - sound = ChaingunProjectile; - explosion = "ChaingunExplosion"; - underwaterExplosion = "ChaingunExplosion"; - velInheritFactor = 0.5; - splash = ChaingunSplash; + explosion = "ChaingunExplosion"; + splash = ChaingunSplash; - baseEmitter = R700SmokeEmitter; - bubbleEmitter = R700SmokeEmitter; + baseEmitter = R700SmokeEmitter; - grenadeElasticity = 0.35; - grenadeFriction = 0.2; - armingDelayMS = 1; - muzzleVelocity = 2000.00; - drag = 0.1; + dryVelocity = 2000.0; + wetVelocity = 2000.0; + velInheritFactor = 1.0; + fizzleTimeMS = 1000; + 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) { @@ -98,7 +114,7 @@ datablock ShapeBaseImageData(R700SniperRifleImage) { item = R700SniperRifle; ammo = R700SniperRifleAmmo; projectile = R700Bullet; - projectileType = GrenadeProjectile; + projectileType = LinearFlareProjectile; emap = true; armThread = looksn; @@ -108,7 +124,7 @@ datablock ShapeBaseImageData(R700SniperRifleImage) { ClipPickupName["R700Clip"] = "A Few Boxes Of R700 Sniper Bullets"; ShowsClipInHud = 1; ClipReloadTime = 7; - ClipReturn = 4; + ClipReturn = 7; InitialClips = 6; // //Challenges diff --git a/serverControl.cs b/serverControl.cs index 4dd41e4..c2da510 100644 --- a/serverControl.cs +++ b/serverControl.cs @@ -5,11 +5,6 @@ $TWM2::DisabledMissionTypes = ""; //Horde\tHorde4 $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; //CHAT BOT @@ -238,10 +233,10 @@ $Host::UseGlobalBanList = 1; $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) -$Host::ServerPopup = "http://www.phantomdev.net \n Home of TWM2 \n Hosted by: Phantom139"; +$Host::ServerPopup = "Place your desired text here"; $TWM2::FFAMode = 0; // the /tkToggle command Sets This too