Originally when I upgraded, I left all of the rulesets the same, and I think that was part of the initial issue causing AC on both players and npcs to be completely out of wack. Last night, I enabled one of the new rulesets called Combat:UseIntervalAC and I set it to true. That rule is what actually makes AC work as it should work.
Once I made that change, I immediately noticed a difference in how AC was working for NPCs and players. I was able to adjust the NPCs' AC in most of my custom zones, and it seemed to help get the server closer to "normal" again. Players are now able to land hits more often and land them for more damage.
The damage still isn't as high as it was before, but that isn't a huge issue. This should bring melee and spell casters more in-line with each other at least for now. I can always adjust mob HPs so encounters still take the same amount of time as before. This also means I can make newer weapons with much higher DPS on them without worrying about ruining server balance.
The only issue I really need to figure out right now is how to adjust how often NPCs are able to hit players with high AC. As of right now, any level 70 player with 2500AC will be missed by ANY equal level mob with ANY stats about 9 out of 10 swings on average. This means that mobs can hardly hit at all, and the only way I can find to compensate is by increasing their hit speed by 2 or 3X as much, or increasing their STR and min/max dmg to MUCH higher than it previously was balanced at.
The problem with setting the speed high is that it doesn't allow much variance in encounters. Before I could just set the mobs to different speeds and adjust min/max to balance the encounter. Now, I am pretty much forced to set them all to very high attack speeds. If I try to use the second option of upping the min/max damage and STR, but I leave attack speed the same as before, the mob misses so much that I have to raise it's max really high for it to do decent dps to a player. But the problem with that is if the mob gets a few lucky hits in, no one will live through it.
Mobs should have a way to be set so they can land hits on players with X amount of AC for X% of hit landing rates. This would be the simplest solution to my problem right now. If I could just set my current custom mobs to land more often, then that would be ideal.
I seem to remember reading somewhere that mobs now use skill levels as defined in skills table in the database for their level. So, another way to possibly make mobs land hits more often might be to adjust the mob's level. In the current state, I am guessing it would take a level 100 mob to be able to land about 50% of hits on a player with 2500 AC. I have only tested mob levels a little, but I think that would probably work. I would just REALLY like to avoid needing level 100 trash mobs in my high level zones. I don't see why a level 71 mob shouldn't be able to do the trick.
From the testing I did last night, I think I have a few of the systems some-what figured out. In the examples below, I am just making them up vaguely from what I saw last night. The character I used for testing was a level 70 warrior with max AAs and skills, and had about 2500AC and 19% shielding. Here is what I have found:
STR - Strength dictates the possible range a mob can hit for and how often it will land higher or lower hits on players depending on their AC and skill levels. If you set a level 70 mob to have 100 STR and the min dmg to 300 and max to 2000, the mob will almost always hit for the minimum of 300 every time one actually lands. If you keep that same min/max and change the STR to 1000, the mob will now land most hits for 1300ish or so depending on the player's AC and skill levels. And if you keep the same min/max again but set the STR in the middle at around 500ish, you will get a large range of hits anywhere from 300 to 1300.
From my testing, it seems that STR has no effect at all on hit rate. The only thing it effects is the possible range of damage from the mob. In theory, if you could remove the min/max dmg factors, STR could be adjusted to fully tune any encounter. It is almost as if setting it has a min/max dmg of it's own. This means that not only do you have to set min/max damage, but you also have to set STR perfectly to line up with the limits you set. Otherwise, you will have a mob hitting for either min or max all of the time and not much in between.
You also have to take into factor the AC your players will have for whatever content you are designing, because STR is basically converted into Attack of the mob. So, how hard the mob will hit with certain levels of STR is highly dependent on how much AC the player has. It would be nice if someone could make some kinda table of how much STR hits for what min/max per every 500 player AC or so.
Max Damage - This one is very simple. It is the max damage a mob can hit on a player with no skills or AC. A mob will always hit for max on players who are sitting. This factor is where damage mitigation comes into play. My test character was able to mitigate around 50% of all damage with his high AC, skills and shielding. So, setting the max damage to 2500, was letting the mobs hit me for a max of around 1300ish or so (again, this is just a made up example, not real stats, but similar). Depending on the AC you intend players to have for your content, you will need to adjust max damage higher or lower to get hits to land for what you want them to max at.
Min Damage - This one work a lot different than it used to. Minimum damage is now enforced and completely disregards all forms of mitigation. This means that if you set a mob's min damage to 300, they will NEVER hit for less than 300 accept for kicks and bashes. It does not matter how much AC you have, how much shielding you have or even if you are using stonewall disc. If a hit lands, it will be no less than the min damage setting.This means you will want to set your range from min to max damage to be much wider than you may have previously set it. If they are set to close together, your character will mitigate max hits to land lower than min hits, but since min is always enforced, you will get hit for the exact same amount every time (min dmg setting).
AGI/DEX - I did some testing with this last night and it seems to have some effect on NPC damage avoidance, but AC is definitely much more of a factor into how often a player will miss. The difference from 1 AGI/DEX and 1000AGI/DEX isn't nearly as big as changing STR or AC. If I understand them correctly, AGI controls how often a mob will dodge attacks, and DEX controls how often they will parry, block, or riposte.
While writing this post, I did a little more searching and I came up with the following from the changelogs:
Quote:
KLS: Changed Mob::CheckHitChance() should be more consistant throughout the levels; puts more value into skill levels.
KLS: Changed Mob:AvoidDamage() to use a single roll system, as well as applied dex to parry, block and riposte chance and agil to dodge.
|
Are these new rules, or something else in the code that can't be changed without recompiling? If they are rules, the Mob:CheckHitChance may be exactly what I need to adjust so mobs land hits more often.
I was upgrading from 1071 to 1099, so there were many changes between. I think the reason I missed this info was because KLS and WildcardX write their logs a little differently. WildcardX will make a list of exactly what needs to be added to SQL like this:
Quote:
Required SQL:
insert into rule_values values(0, 'Character eathItemLossLevel', 10);
|
And KLS and FatherNitwit will mention something like:
Quote:
Added several rules to adjust the aggro system with:
Aggro:SmartAggroList ( true )
Aggro:SittingAggroMod ( 35 )
Aggro:MeleeRangeAggroMod ( 20 )
Aggro:CurrentTargetAggroMod ( 0 )
Aggro:CriticallyWoundedAggroMod ( 100 )
Aggro:SlowAggroMod ( 450 )
Aggro:IncapacitateAggroMod ( 500 )
Aggro:MovementImpairAggroMod ( 175 )
Changed Spells:SpellAggroModifier to Aggro:SpellAggroMod ( 100 )
Changed Spells:BardSpellAggroMod to Aggro:SongAggroMod ( 33 )
Changed Spells:PetSpellAggroMod to Aggro:PetSpellAggroMod ( 10 )
|
Which is fine, but it could be interpreted that nothing needs to be done for these to take effect. That is just my opinion though.
Also, when they mention new rules in the middle of the log entries instead of in the section at the bottom of the updates for that particular day like this:
Quote:
KLS: Added new rule NPC:BuffFriends, if false npcs will only heal and not buff their friends, defaults to false.
|
I didn't even notice that one until now.
I am not trying to sound like I am complaining. My point in mentioning that is maybe there is a new rule or something I have missed that went in between 1071 and 1099. As things are now, it seems like something still isn't right on my server. Does anyone have a complete list of the rulesets that is up-to-date?