Page 6 of 13

Re: [MOD] Meaner Monsters

Posted: Thu Feb 27, 2020 2:57 pm
by L57
squerol wrote: Thu Feb 27, 2020 11:58 am But every melee human or humanoid daedra (like daedroth or daedra lord) have no windup. Those enemies hit player immediately - visuals doesn't match colisions because player is getting hit even before enemy begin to swing his weapon
Yep, kinda. Especially those thievery-based NPCs whose fast combos are hard to evade.

I don't understand what's the problem with enemies not being able to reach player though. In my game they hit me easily while I'm stepping back. Is it possible that some mods unintentionally change how fight works? Have you tested all of this in pure vanilla DFU?

Re: [MOD] Meaner Monsters

Posted: Thu Feb 27, 2020 5:01 pm
by squerol
L57 wrote: Thu Feb 27, 2020 2:57 pm
Yep, kinda. Especially those thievery-based NPCs whose fast combos are hard to evade.

I don't understand what's the problem with enemies not being able to reach player though. In my game they hit me easily while I'm stepping back. Is it possible that some mods unintentionally change how fight works? Have you tested all of this in pure vanilla DFU?
When You got in their attack range You just can't evade NPCs because hit register happens before enemy animation is played.

Thanks for suggestion. Nope I've didn't tried vanilla dfu - I've installed tons of mods at same time right of the bat so indeed maybe something is messed by mods because even at 10 speed and 5% running skill no melee attacker can reach me while I'm walking back :roll:

Also I have idea how to improve dashing system - adding god-mode effect on player during few first frames of dash. Maybe with that it will be possibile to avoid damage from wrongly designed enemies attack animations.

Re: [MOD] Meaner Monsters

Posted: Thu Feb 27, 2020 6:48 pm
by L57
squerol wrote: Thu Feb 27, 2020 5:01 pm
Thanks for suggestion. Nope I've didn't tried vanilla dfu - I've installed tons of mods at same time right of the bat so indeed maybe something is messed by mods because even at 10 speed and 5% running skill no melee attacker can reach me while I'm walking back :roll:
The skeleton in your video is unusually slow, apparently there is some kind of buggy AI behaviour indeed.
When You got in their attack range You just can't evade NPCs because hit register happens before enemy animation is played.
Looks pretty close to the truth. However, it's still possible to provoke human enemy to make hit when you're no longer under attack. This works relatively well with warrior-type NPCs, but thieves are way too agile.

Re: [MOD] Meaner Monsters

Posted: Thu Feb 27, 2020 6:50 pm
by Magicono43
So I made some modifications to the values in your most recent release of the .dfmod and was wondering if you or anyone might find them more appropriate to their tastes or they think some of the numbers might have a better balance to them.

Code: Select all

// Rat
            EnemyBasics.Enemies[0].MinDamage = 1;
            EnemyBasics.Enemies[0].MaxDamage = 2;
            EnemyBasics.Enemies[0].MinHealth = 15;
            EnemyBasics.Enemies[0].MaxHealth = 30;
            EnemyBasics.Enemies[0].Level = 1;
            EnemyBasics.Enemies[0].ArmorValue = 8;

            // Giant Bat
            EnemyBasics.Enemies[3].MinDamage = 1;
            EnemyBasics.Enemies[3].MaxDamage = 4;
            EnemyBasics.Enemies[3].MinHealth = 5;
            EnemyBasics.Enemies[3].MaxHealth = 12;
            EnemyBasics.Enemies[3].Level = 2;
            EnemyBasics.Enemies[3].ArmorValue = 3;

            // Grizzly Bear
            EnemyBasics.Enemies[4].MinDamage = 4;
            EnemyBasics.Enemies[4].MaxDamage = 8;
            EnemyBasics.Enemies[4].MinDamage2 = 6;
            EnemyBasics.Enemies[4].MaxDamage2 = 10;
            EnemyBasics.Enemies[4].MinDamage3 = 8;
            EnemyBasics.Enemies[4].MaxDamage3 = 16;
            EnemyBasics.Enemies[4].MinHealth = 55;
            EnemyBasics.Enemies[4].MaxHealth = 110;
            EnemyBasics.Enemies[4].Level = 4;
            EnemyBasics.Enemies[4].ArmorValue = 9;

            // Sabertooth Tiger		
            EnemyBasics.Enemies[5].MinDamage = 6;
            EnemyBasics.Enemies[5].MaxDamage = 12;
            EnemyBasics.Enemies[5].MinDamage2 = 8;
            EnemyBasics.Enemies[5].MaxDamage2 = 16;
            EnemyBasics.Enemies[5].MinDamage3 = 10;
            EnemyBasics.Enemies[5].MaxDamage3 = 24;
            EnemyBasics.Enemies[5].MinHealth = 30;
            EnemyBasics.Enemies[5].MaxHealth = 60;
            EnemyBasics.Enemies[5].Level = 4;
            EnemyBasics.Enemies[5].ArmorValue = 4;

            // Spider		
            EnemyBasics.Enemies[6].MinDamage = 3;
            EnemyBasics.Enemies[6].MaxDamage = 9;
            EnemyBasics.Enemies[6].MinHealth = 12;
            EnemyBasics.Enemies[6].MaxHealth = 28;
            EnemyBasics.Enemies[6].Level = 2;
            EnemyBasics.Enemies[6].ArmorValue = 4;

            // Werewolf		
            EnemyBasics.Enemies[9].MinDamage = 6;
            EnemyBasics.Enemies[9].MaxDamage = 10;
            EnemyBasics.Enemies[9].MinDamage2 = 8;
            EnemyBasics.Enemies[9].MaxDamage2 = 12;
            EnemyBasics.Enemies[9].MinDamage3 = 12;
            EnemyBasics.Enemies[9].MaxDamage3 = 26;
            EnemyBasics.Enemies[9].MinHealth = 25;
            EnemyBasics.Enemies[9].MaxHealth = 50;
            EnemyBasics.Enemies[9].Level = 8;
            EnemyBasics.Enemies[9].ArmorValue = 2;

            // Wereboar		
            EnemyBasics.Enemies[14].MinDamage = 5;
            EnemyBasics.Enemies[14].MaxDamage = 8;
            EnemyBasics.Enemies[14].MinDamage2 = 8;
            EnemyBasics.Enemies[14].MaxDamage2 = 10;
            EnemyBasics.Enemies[14].MinDamage3 = 10;
            EnemyBasics.Enemies[14].MaxDamage3 = 22;
            EnemyBasics.Enemies[14].MinHealth = 60;
            EnemyBasics.Enemies[14].MaxHealth = 100;
            EnemyBasics.Enemies[14].Level = 8;
            EnemyBasics.Enemies[14].ArmorValue = 5;

            // Giant		
            EnemyBasics.Enemies[16].MinDamage = 15;
            EnemyBasics.Enemies[16].MaxDamage = 30;
            EnemyBasics.Enemies[16].MinHealth = 70;
            EnemyBasics.Enemies[16].MaxHealth = 110;
            EnemyBasics.Enemies[16].Level = 10;
            EnemyBasics.Enemies[16].ArmorValue = 8;

            // Zombie		
            EnemyBasics.Enemies[17].MinDamage = 4;
            EnemyBasics.Enemies[17].MaxDamage = 10;
            EnemyBasics.Enemies[17].MinHealth = 40;
            EnemyBasics.Enemies[17].MaxHealth = 110;
            EnemyBasics.Enemies[17].Level = 5;
            EnemyBasics.Enemies[17].ArmorValue = 7;

            // Mummy		
            EnemyBasics.Enemies[19].MinDamage = 7;
            EnemyBasics.Enemies[19].MaxDamage = 17;
            EnemyBasics.Enemies[19].MinHealth = 90;
            EnemyBasics.Enemies[19].MaxHealth = 130;
            EnemyBasics.Enemies[19].Level = 15;
            EnemyBasics.Enemies[19].ArmorValue = -5;

            // Giant Scorpion		
            EnemyBasics.Enemies[20].MinDamage = 9;
            EnemyBasics.Enemies[20].MaxDamage = 18;
            EnemyBasics.Enemies[20].MinHealth = 16;
            EnemyBasics.Enemies[20].MaxHealth = 52;
            EnemyBasics.Enemies[20].Level = 4;
            EnemyBasics.Enemies[20].ArmorValue = 3;

            // Vampire Ancient		
            EnemyBasics.Enemies[30].MinDamage = 25;
            EnemyBasics.Enemies[30].MaxDamage = 55;
            EnemyBasics.Enemies[30].MinHealth = 80;
            EnemyBasics.Enemies[30].MaxHealth = 170;
            EnemyBasics.Enemies[30].Level = 20;
            EnemyBasics.Enemies[30].ArmorValue = -6;

            // Daedra Lord		
            EnemyBasics.Enemies[31].MinDamage = 45;
            EnemyBasics.Enemies[31].MaxDamage = 90;
            EnemyBasics.Enemies[31].MinHealth = 110;
            EnemyBasics.Enemies[31].MaxHealth = 210;
            EnemyBasics.Enemies[31].Level = 21;
            EnemyBasics.Enemies[31].ArmorValue = -13;

            // Lich		
            EnemyBasics.Enemies[32].MinDamage = 50;
            EnemyBasics.Enemies[32].MaxDamage = 80;
            EnemyBasics.Enemies[32].MinHealth = 80;
            EnemyBasics.Enemies[32].MaxHealth = 180;
            EnemyBasics.Enemies[32].Level = 20;
            EnemyBasics.Enemies[32].ArmorValue = -7;

            // Ancient Lich		
            EnemyBasics.Enemies[33].MinDamage = 90;
            EnemyBasics.Enemies[33].MaxDamage = 115;
            EnemyBasics.Enemies[33].MinHealth = 130;
            EnemyBasics.Enemies[33].MaxHealth = 250;
            EnemyBasics.Enemies[33].Level = 21;
            EnemyBasics.Enemies[33].ArmorValue = -10;

            // Orc		
            EnemyBasics.Enemies[7].MinDamage = 10;
            EnemyBasics.Enemies[7].MaxDamage = 22;
            EnemyBasics.Enemies[7].MinHealth = 30;
            EnemyBasics.Enemies[7].MaxHealth = 60;
            EnemyBasics.Enemies[7].Level = 6;
            EnemyBasics.Enemies[7].ArmorValue = 6;

            // Orc Sargeant		
            EnemyBasics.Enemies[12].MinDamage = 15;
            EnemyBasics.Enemies[12].MaxDamage = 30;
            EnemyBasics.Enemies[12].MinHealth = 40;
            EnemyBasics.Enemies[12].MaxHealth = 90;
            EnemyBasics.Enemies[12].Level = 9;
            EnemyBasics.Enemies[12].ArmorValue = 4;

            // Orc Shaman		
            EnemyBasics.Enemies[21].MinDamage = 8;
            EnemyBasics.Enemies[21].MaxDamage = 25;
            EnemyBasics.Enemies[21].MinHealth = 60;
            EnemyBasics.Enemies[21].MaxHealth = 100;
            EnemyBasics.Enemies[21].Level = 15;
            EnemyBasics.Enemies[21].ArmorValue = 6;

            // Orc Warlord		
            EnemyBasics.Enemies[24].MinDamage = 20;
            EnemyBasics.Enemies[24].MaxDamage = 45;
            EnemyBasics.Enemies[24].MinHealth = 80;
            EnemyBasics.Enemies[24].MaxHealth = 160;
            EnemyBasics.Enemies[24].Level = 19;
            EnemyBasics.Enemies[24].ArmorValue = -2;

            // Fire Atronach		
            EnemyBasics.Enemies[35].MinDamage = 20;
            EnemyBasics.Enemies[35].MaxDamage = 35;
            EnemyBasics.Enemies[35].MinHealth = 35;
            EnemyBasics.Enemies[35].MaxHealth = 90;
            EnemyBasics.Enemies[35].Level = 16;
            EnemyBasics.Enemies[35].ArmorValue = 2;

            // Iron Atronach		
            EnemyBasics.Enemies[36].MinDamage = 25;
            EnemyBasics.Enemies[36].MaxDamage = 45;
            EnemyBasics.Enemies[36].MinHealth = 60;
            EnemyBasics.Enemies[36].MaxHealth = 170;
            EnemyBasics.Enemies[36].Level = 21;
            EnemyBasics.Enemies[36].ArmorValue = 3;

            // Flesh Atronach		
            EnemyBasics.Enemies[37].MinDamage = 7;
            EnemyBasics.Enemies[37].MaxDamage = 15;
            EnemyBasics.Enemies[37].MinHealth = 120;
            EnemyBasics.Enemies[37].MaxHealth = 310;
            EnemyBasics.Enemies[37].Level = 16;
            EnemyBasics.Enemies[37].ArmorValue = 9;

            // Ice Atronach		
            EnemyBasics.Enemies[38].MinDamage = 15;
            EnemyBasics.Enemies[38].MaxDamage = 30;
            EnemyBasics.Enemies[38].MinHealth = 55;
            EnemyBasics.Enemies[38].MaxHealth = 125;
            EnemyBasics.Enemies[38].Level = 16;
            EnemyBasics.Enemies[38].ArmorValue = 3;
As you can see, it's not THAT much different to what your original values were, but I think some of them make a bit more sense in my mind, as well as making some of the damage values for lower level monsters a bit less punishing for characters with a lower overall health pool perhaps. I also went with Armor Values sort of based on what I would imagine would be based on the creatures size, speed, and skill more than anything, at least if they were actually real creatures in a physical world. So a big hulking bear would not be a difficult target to hit, but a small flying bat would be a decent amount harder, but obviously MUCH more flimsy overall.

I might even add the rest of the roster of "monster" creatures into your script as well, since I think some of them could honestly use some work as well, like Dreugh being laughably weak, the Gargoyle doing stupidly little damage for being a huge construct of stone, or even the Fire Daedra having a surprisingly low minimum health pool for what it is, etc.

Re: [MOD] Meaner Monsters

Posted: Thu Feb 27, 2020 7:28 pm
by Hazelnut
You should collaborate with Ralzar about the values, but just so you know that code will be changing back since I have tracked down the issue that was stopping the mod from working.

Re: [MOD] Meaner Monsters

Posted: Thu Feb 27, 2020 7:44 pm
by Magicono43
Hazelnut wrote: Thu Feb 27, 2020 7:28 pm You should collaborate with Ralzar about the values, but just so you know that code will be changing back since I have tracked down the issue that was stopping the mod from working.
I'm guessing it was something silly? Or was it something really hard to notice?

Re: [MOD] Meaner Monsters

Posted: Thu Feb 27, 2020 9:26 pm
by Hazelnut
Just a limitation of the compiler the mod system uses, has issues with structs. Had to make it a class instead. I posted on the mod tutorial thread.

Re: [MOD] Meaner Monsters

Posted: Fri Feb 28, 2020 7:32 am
by Ralzar
Magicono43 wrote: Thu Feb 27, 2020 6:50 pm I might even add the rest of the roster of "monster" creatures into your script as well, since I think some of them could honestly use some work as well, like Dreugh being laughably weak, the Gargoyle doing stupidly little damage for being a huge construct of stone, or even the Fire Daedra having a surprisingly low minimum health pool for what it is, etc.
Agreed, a lot of these could use some adjustment. The original mod was just a first pass where I adjusted anything that looked completely absurd and to buff the boss monsters a bit.
The problem here is to make the monster stats more "realistic" while at the same time not make the game unplayable unless you make some kind of min/max munchkin character. I'll take a look at your numbers later today.

And agreed on the Gargoyle. It's pretty underwhelming.

Edit: Hm, I might actually create an alternative mod file with a "hard mode". Oh well, that's for later.

Re: [MOD] Meaner Monsters

Posted: Fri Feb 28, 2020 12:58 pm
by L57
Not contesting your idea, just want to notice that gargoyle attacks with a knobstick, and I think its effectiveness can be comparable with how humans could handle it. They have a thicker skin than usual for sure (and it's already reflected with their 0 armor rating), but their morphology is humanoid-like enough to not expect much larger force, in my opinion. So it's still not that absurd and even can be justified, unlike zombies stats.

Dreugh in Daggerfall has no chitin unlike later games, so it's hard to judge too.

To me, Iron Atronach, Zombies, and some animal stats balance are the weirdest ones in the game. Iron Atronachs are the worst, this is walking armor literally but it has absurdly high armor rating it's just makes no sense. Atronachs are very lazily done in the game in general.

Re: [MOD] Meaner Monsters

Posted: Fri Feb 28, 2020 1:19 pm
by Ralzar
Yeah, I wasn't sure what atronachs to give what buffs. So I split them up into:

Flesh: HP
Fire: Damage
Iron: Level
Ice: Armor

I can absolutely see the argument for switching ice and iron.