Mob damage

A place where you can talk about anything Dawn of Light or DAOC related

Moderators: Project Admin, Support Team

Postby Batlas » Mon Aug 07, 2006 12:52 pm

To touch on a few notes(I dont have time to go back and quote so I'm going to be doing it on the fly.)

1) Mobs should not have stats: This my friend is wrong.. Mobs should pretty much mimic the player in almost every way. Including stats/skills/spells. You can see this by being able to use buffs on your pets and seeing a difference (Including buffs from healers/shamen/etc). You said well that is a pet class bla bla bla... Well think of it this way. A sorc can go and charm a mob and you can then buff that mob as well. So yes indeed mobs do have stats.

2) Mobs should start out as tanks: While in theory this is good, but I dont think that all mobs need to be tanks. Some mobs need to have caster base stats, some healer, some archer.. You get the idea. They should be classed again, similiar to the player. The last thing I want to see happen is a mob nuking me for 300-400 damage and then being able to deal the same damage in melee. You do have the right idea imo as far as mobs gaining 1 point in said stat a level. Maybe being able to set a Primary/Secondary/Tet stats on mobs and going from there. A tank type mob would have Str/Con/Dex for there stats whereas a healer would have Int/Dex/Con or a rouge Dex/Str/Con.. That way when they level there stats again mimic players..

3) I think on live if a mob has a weapon, they actually have that weapon mapped to there inventory and not just a model ID. Therefor the Weapons DPS/Spd become part of the formula. Unfortunately DAOC doesnt have disarm so there is no way to check. Same goes for Armor/Shields.

4) Ive given Specs to my custom mobs and although they do not neccasarily do anything yet, I think when I write the brain it will be easier to get a mob style list by spec then listing each one individually in the brain. Again it will be sometime down the road before I actually get this working as intended(I reactivated WOW :(), but I think it will work mucho better than the ways poeple have been doing them before.
[22:29] <Arms> someones having sex upstairs -.-
[22:30] <Arms> bbl

[21:16] <Angie> do /me
[21:16] <Batlas> roflmao
[21:16] <Dalaaji> haha
[21:16] <Batlas> wow that came out bad
[21:16] <Angie> wow
[21:16] <Angie> that so came out bad
Batlas
Support Team
 
Posts: 1707
Joined: Sun Mar 21, 2004 3:11 am

Postby Tolakram » Mon Aug 07, 2006 3:13 pm

1) Mobs should not have stats: This my friend is wrong.. Mobs should pretty much mimic the player in almost every way. Including stats/skills/spells. You can see this by being able to use buffs on your pets and seeing a difference (Including buffs from healers/shamen/etc). You said well that is a pet class bla bla bla... Well think of it this way. A sorc can go and charm a mob and you can then buff that mob as well. So yes indeed mobs do have stats.
I think I disagree with this if atempting to duplicate DAOC. In DAOC you have mobs that nuke, and mobs that swing weapons, and mobs that fist fight. In each case once hand to hand combat begins the damage is the same. So while mobs may have stats to balance damage I don't see where else stats come into play. Now I would agree if you know for sure that some mobs hit harder than others, but with the exception of a few rare occasions I haven't found this to be true.

Now if you're saying mobs need to have stats only so they can be buffed, then I agree, but the base stats of the mobs should, in my opinion, be identical.
User avatar
Tolakram
Storm / Storm-D2 Admin
 
Posts: 9189
Joined: Tue Jun 13, 2006 1:49 am
Location: Kentucky, USA

Postby Batlas » Mon Aug 07, 2006 7:18 pm

Give me your credit card # I'll reactivate my ACCT and I'll test w/ my Zerk, Skald or SM and test damage on different mobs to see if they hit the same.. Im pretty sure a giant T-Rex near Hagall hits harder than lets say a skogra.
[22:29] <Arms> someones having sex upstairs -.-
[22:30] <Arms> bbl

[21:16] <Angie> do /me
[21:16] <Batlas> roflmao
[21:16] <Dalaaji> haha
[21:16] <Batlas> wow that came out bad
[21:16] <Angie> wow
[21:16] <Angie> that so came out bad
Batlas
Support Team
 
Posts: 1707
Joined: Sun Mar 21, 2004 3:11 am

Re: Mob damage

Postby Tolakram » Fri Feb 22, 2008 10:03 pm

Bump.

in reference to:
http://dolserver.net/viewtopic.php?f=16&t=9911

I have logs at home, I'll post this weekend when I have time.

I've been down this road before, so I'm going to retest everything to make sure I'm not assuming something is wrong when it isn't.

As far as mobs having stats, well NPC's, pets, should have stats, I was wrong or misunderstood what we were talking about. I think I was focusing on standard mobs, which I'm still convinced all have the same stats.

At some point when that stats were added someone decided to make the default 30 instead of the player standard of 60. Was there any reason for this?

The equation discussed above that I discovered was returning incorrect values ... any reason this was not identical to the player weaponskill equation? Was it because stats were missing?

In the GameNPC constructors Strength, used as the primary weapon stat, was increased by level * 6. I have changed this to level * 1.5 (along with the starting stat being 60). I've also changed this to scale with the base stat. (startingstr + level * 1.5 instead of 30 + level * 6). Was any damage checking done when these stats were added?

I believe since we last discussed this mob damage was increased slighty by way of the scaling strength attribute. I'll have to review SVN to make sure. Regardless, mob damage at this point seems to be a rather random amount. Whatever it is is less then live but enough to seem correct. This problem is exposed when you have a pet mob and watch them hit for 6-15 damage at level 50. Since we have npctemplates now we can raise this damage by setting a ridiculously high STR, but I would rather have a more sane initial calculation that is easily adjustable.

My current working version uses the same equation that gameplayer does, assumes the mob is using an appropriate DPS weapon, sets the base weapon skill to 400, and add the primary stat bonus. Assuming all other calculations are correct and changing the mob default stats to 60 rather then 30 means this should work exactly as expected (player holding a capped dps weapon with fully capped STR). The only questions that remains is what base weaponskill to use. I started with 400. I might add NPC default weaponskill to server properties so people can easily lower or raise it.

Nor,

I think I'm still clueless on how or why damage cap would work. I know my undressed caster on live, at level 50, will get hit for his damage cap (constant damage till he dies). I assume this is because the game mechanics expect you to have armor. The trouble with caps is that I have no idea how hard they are really hitting for. Now if a mob hits my undressed level 50 char for less than cap then I know for sure the damage is too low, and I can raise it to the capped value, but is that enough? Seems to be a better test is wearing 85 quality (storebought) armor, no bonus set, and letting a mob pound on characters of various levels and logging the damage. Log enough hits to be able to get an average damage value, then run the same test on DOL and adjust the formula to achieve a value identical to live.

If you could further explain your cap idea I would really appreciate it.

By the way:

http://www.silicondragon.com/Gaming/DAo ... ocking.htm

Still works, including logs. I'm going to copy all this tonight just in case.
- Mark
User avatar
Tolakram
Storm / Storm-D2 Admin
 
Posts: 9189
Joined: Tue Jun 13, 2006 1:49 am
Location: Kentucky, USA

Re: Mob damage

Postby nor » Fri Feb 22, 2008 11:12 pm

The way I remember it:
- The very first testing that was done is for damage variance. I am pretty sure it is correct and is used for both players and mobs;
- Then ws/af was tested for players at various levels to get some data with all known factors;
- Mob health tests were processed by Thrydon and current formula should be close enough;
- Mob damage cap tests were made;
- Mob level 5 damage was logged;
- Various spell damage tests were made, probably even before melee damage.

This is months of work days by several people, I think.

The idea that mob = player was the first one I tried. Seemed logical and very simple and proved to be completely wrong - all tests show it: mob health, mob damage cap, mob damage. Of course you can retest it as things change with time.

Now about my aproach. All I wanted is to make one solid world where everything fits. If it is melee damage it should be the same system for players and mobs and bolt spells. It has to be not just random collection of various ideas, they have to be checked. Not checked ideas have no practical value.

Then the system also should be as simple as possible. If mobs can function without stats and weapon spec (which I believe they don't have) it should be done this way. Only if some tests show that there should be another factor it should be added. And at the same time it should not break old system, i.e. value of new factor should be based on old tests as well.

I know that mobs have some kind of stats otherwise buffs had no effect on them. It can be found, but later. After simple mobs are functioning correct.

From past experience can tell that any real test will provide better results than such wild guesses like "let's give mobs players' stats". Spent too much time trying to balance things this way, it simply is not worth the time.

There should be enough known information to find the rest. Don't start from the start. Looks at existing formulas/data and what constraints they already place on the system. Damage cap idea is part of it. Very easy to check hence makes pretty good starting point.

If we look at the damage cap formula for 1h player weapon:
Code: Select all
GamePlayer
public override double UnstyledDamageCap(InventoryItem weapon)
{
double result = (DPS*0.1 * weapon.SPD_ABS*0.1 * 3 * (1 + (weapon.SPD_ABS*0.1 - 2) * .03));
(as I understand DPS*0.1 and SPD_ABS*0.1 are to get "usual" values visible in game client)
dmgCap = 3*dps*spd*(1+(spd-2)*0.03)
Knowing damage cap and SPD tells us about DPS this way:
Code: Select all
dps=(100/3*dmgCap)/(spd*(94 + 3*spd))
Can also find SPD by dmgCap and DPS.

All the values and formulas in the code (those which are still not altered) are based on this approach.

Not 400 because it dont' fit the system - mobs are too strong this way. To find this factor I prefer to take existing damage formulas and real data. Combine them and get more correct factor for the current system.
nor
Inactive Staff Member
 
Posts: 1584
Joined: Wed Mar 03, 2004 3:56 am

Re: Mob damage

Postby Tolakram » Sat Feb 23, 2008 1:17 am

Here is some more testing of the old formula. weaponskill is not always 0 as I stated, another mistake on my part.

For the first results we are using the original formulas, however mob strength is 60 + level * 1.5.

damage *= (GetWeaponSkill(weapon) + 90.68) / (ad.Target.GetArmorAF(ad.ArmorHitLocation) + 20 * 4.67);
Console.WriteLine(Name + " damage2 = " + damage);


Level 20 mob fighting level 18 similacrum:


test mob damage1 = 29.549806949807
test mob weaponskill = 0
test mob armoraf = 174
test mob damage2 = 10.0208545033975

Amber Simulacrum damage1 = 26.0856833976834
Amber Simulacrum weaponskill = 0
Amber Simulacrum armoraf = 208
Amber Simulacrum damage2 = 7.84820759954191




For the level 20 test I do have a Cabalist on live and we can see how these numbers are too low by looking at the logs I recorded:

18,0,The clicking beetle hits your amber simulacrum for 32 damage.
17,0,Your amber simulacrum attacks the clicking beetle and hits for 18 (+2) damage!
18,0,The clicking beetle hits your amber simulacrum for 30 damage.
18,0,The clicking beetle hits your amber simulacrum for 23 damage.
18,0,The clicking beetle hits your amber simulacrum for 32 damage.
17,0,Your amber simulacrum attacks the clicking beetle and hits for 27 (+4) damage!
18,0,The clicking beetle hits your amber simulacrum for 23 damage.
17,0,Your amber simulacrum attacks the clicking beetle and hits for 18 (+2) damage!
18,0,The clicking beetle hits your amber simulacrum for 23 damage.
17,0,Your amber simulacrum attacks the clicking beetle and hits for 25 (+3) damage!
18,0,The clicking beetle hits your amber simulacrum for 25 damage.
17,0,Your amber simulacrum attacks the clicking beetle and hits for 27 (+4) damage!
18,0,The clicking beetle hits your amber simulacrum for 31 damage.
17,0,Your amber simulacrum attacks the clicking beetle and hits for 23 (+3) damage!
18,0,The clicking beetle hits your amber simulacrum for 33 damage.
18,0,The clicking beetle hits your amber simulacrum for 31 damage.
18,0,The clicking beetle hits your amber simulacrum for 26 damage.
18,0,The clicking beetle hits your amber simulacrum for 31 damage.
17,0,Your amber simulacrum attacks the clicking beetle and hits for 24 (+3) damage!
18,0,The clicking beetle hits your amber simulacrum for 27 damage.
17,0,Your amber simulacrum attacks the clicking beetle and hits for 24 (+3) damage!
18,0,The clicking beetle hits your amber simulacrum for 26 damage.
17,0,Your amber simulacrum attacks the clicking beetle and hits for 24 (+3) damage!
18,0,The clicking beetle hits your amber simulacrum for 29 damage.
17,0,Your amber simulacrum attacks the clicking beetle and hits for 25 (+3) damage!
18,0,The clicking beetle hits your amber simulacrum for 25 damage.
18,0,The clicking beetle hits your amber simulacrum for 28 damage.
17,0,Your amber simulacrum attacks the clicking beetle and hits for 25 (+3) damage!

Clearly the damage for level 20 is at least 50% too low. Also notice that the base damage, before adjusting for weaponskill, is not that far off.

int lowerboundary = (WeaponSpecLevel(weapon) - 1) * 50 / (ad.Target.EffectiveLevel + 1) + 75;
lowerboundary = Math.Max(lowerboundary, 75);
lowerboundary = Math.Min(lowerboundary, 125);

As a matter of fact, if you do not adjust that number except for the random 75% to 125% damage above it comes out just about right.

Since the mobs fighting are different levels we also need a level penalty applied to the simmy.

My solution, and the one you think will not work right for higher levels, is to use the player weaponskill equation.

double wbase = 400; // weaponskill, this controls the overall damage
double preBuff = ((Level * wbase * 0.02 * (1 + (GetWeaponStat(weapon) - 50) * 0.005)) * Effectiveness);
return Math.Max(0, preBuff * GetModified(eProperty.WeaponSkill) * 0.01);


This is basically a copy of code from gameplayer. My damage modifier then becomes simply:


damage *= GetWeaponSkill(weapon) / ad.Target.GetArmorAF(ad.ArmorHitLocation);




First off here is a damage log for a level 50 non RR5 character I have, being beat on by an old hag. I'm only wearing a few pieces of armor:

Image
Image
Image
Image

18,0,Current area is adjusted for one level 49 player.
18,0,Current area has a 50% instance bonus.
30,0,You target [the accursed hag]
30,0,You examine the accursed hag. It is aggressive towards you!
29,0,The accursed hag hits your arm for 101 damage!
29,0,The accursed hag hits your arm for 129 damage!
29,0,The accursed hag hits your torso for 128 damage!
29,0,The accursed hag hits your hand for 330 damage!
29,0,The accursed hag hits your leg for 330 damage!
29,0,The accursed hag hits your head for 92 damage!
29,0,The accursed hag attacks you and misses!
29,0,The accursed hag hits your head for 132 damage!
21,0,Tolla was just killed by an accursed hag!


Level 50 mob beating on me in DOL wearing similar armor.

18,The test mob hits your torso for 61 (-6) damage!
18,The test mob hits your torso for 52 (-5) damage!
18,The test mob hits your arm for 47 (-4) damage!
30,The test mob attacks you and misses!
30,The test mob attacks you and misses!
30,The test mob attacks you and misses!
30,The test mob attacks you and misses!
30,The test mob attacks you and misses!
18,The test mob hits your leg for 306 (-39) damage!
18,The test mob hits your torso for 43 (-4) damage!
22,Amerc was just killed by a test mob.

30,You examine the test mob. It is aggressive towards you.
18,The test mob hits your leg for 306 (-52) damage!
18,The test mob hits your leg for 306 (-37) damage!
30,The test mob attacks you and misses!
30,The test mob attacks you and misses!
18,The test mob hits your arm for 50 (-4) damage!
18,The test mob hits your torso for 45 (-4) damage!
30,The test mob attacks you and misses!
30,The test mob attacks you and misses!
18,The test mob hits your leg for 306 (-54) damage!
18,The test mob hits your leg for 306 (-35) damage!
22,Amerc was just killed by a test mob.

Where the (-##) resists are coming from is a question, but if we add those numbers back in we see that cap damage is right on, but damage hits to armor is way way too low. Again, the damage looks to be around 50% of what it should be.

DOL, replacing weaponskill code with my new code.

18,The test mob hits your leg for 306 (-4571) damage!
30,The test mob attacks you and misses!
18,The test mob hits your torso for 83 (-8) damage!
18,The test mob hits your arm for 81 (-8) damage!
18,The test mob hits your leg for 306 (-4169) damage!
30,The test mob attacks you and misses!
18,The test mob hits your torso for 75 (-7) damage!
18,The test mob hits your torso for 84 (-8) damage!
18,The test mob hits your hand for 306 (-4018) damage!
22,Amerc was just killed by a test mob.

30,The test mob attacks you and misses!
18,The test mob hits your torso for 84 (-8) damage!
18,The test mob hits your arm for 92 (-9) damage!
18,The test mob hits your torso for 72 (-7) damage!
18,The test mob hits your arm for 110 (-10) damage!
30,The test mob attacks you and misses!
18,The test mob hits your arm for 112 (-11) damage!
18,The test mob hits your torso for 75 (-7) damage!
18,The test mob hits your arm for 131 (-12) damage!
18,The test mob hits your leg for 306 (-5023) damage!
18,The test mob hits your leg for 306 (-5927) damage!
22,Amerc was just killed by a test mob.

(-5023)????? My head hurts. Anyway the damage is closer to correct, but obviously something else is going on here that I need to understand.

test mob damage1 = 97.9173745173745
test mob weaponskill = 570
Amerc armoraf = 345.58
test mob damage2 = 161.50501613202
test mob damage3 = 131.836367367177

test mob damage1 = 97.9173745173745
test mob weaponskill = 570
Amerc armoraf = 0
test mob damage2 = 55812.9034749035
test mob damage3 = 50789.9034749035

That last non-armor hit with the huge damage2 number is probably where the odd (#) is coming from. I'll continue this tomorrow if/when I have time.
- Mark
User avatar
Tolakram
Storm / Storm-D2 Admin
 
Posts: 9189
Joined: Tue Jun 13, 2006 1:49 am
Location: Kentucky, USA

Re: Mob damage

Postby Graveen » Sat Feb 23, 2008 9:55 am

interesting, really interesting.

GetWeaponSkill() is modified by inner mob stat if i understand well (or is it gp formula only) ?

Can you quickly put a test for level 30 mob/char, because i think the dirty trick 'll be to scale these damage to stats (btw af seems good - but there is specAF problem, and perhaps haste) and proportinally to level ?

about haste & delay in general: it has to be strictly equal in both situation or it doesn't matter - mob are always hitting same whatever the delay is ? or did they have their how dps ?

About the pet = mob possibility: i wonder how to test this, as pet can be a mob with tweaked value. On live we could use a charmed pet vs a summoned to see it the DPS of each are proportionnal - and mythic surely change pet's stats on 1.86 pet upgrade.

if i can help you in any way, tell me.
Image
* pm me to contribute in Dawn of Light: code, database *
User avatar
Graveen
Project Leader
 
Posts: 12661
Joined: Fri Oct 19, 2007 9:22 pm
Location: France

Re: Mob damage

Postby Tolakram » Sat Feb 23, 2008 3:23 pm

Live level 35 Minstrel, chain armor

Image
Image
Image
Image
Image
Image

30,0,You target [wood ogre scavenger]
30,0,You examine wood ogre scavenger. He is aggressive towards you!
29,0,wood ogre scavenger hits your head for 57 (-1) damage!
29,0,wood ogre scavenger hits your leg for 48 (-1) damage!
29,0,wood ogre scavenger hits your torso for 63 (-1) damage!
29,0,wood ogre scavenger hits your torso for 64 (-1) damage!
29,0,wood ogre scavenger hits your torso for 61 (-1) damage!
29,0,wood ogre scavenger hits your torso for 53 (-1) damage!
29,0,wood ogre scavenger attacks you and you evade the blow!
29,0,wood ogre scavenger attacks you and you evade the blow!
29,0,wood ogre scavenger hits your torso for 48 (-1) damage!
29,0,wood ogre scavenger attacks you and misses!
29,0,wood ogre scavenger hits your arm for 186 (-8) damage!
29,0,wood ogre scavenger attacks you and misses!
29,0,wood ogre scavenger hits your hand for 53 (-1) damage!
29,0,wood ogre scavenger hits your leg for 51 (-1) damage!
29,0,wood ogre scavenger hits your torso for 45 (-1) damage!
29,0,wood ogre scavenger hits your head for 64 (-1) damage!
29,0,wood ogre scavenger hits your leg for 51 (-1) damage!
29,0,wood ogre scavenger hits your arm for 186 (-6) damage!
30,0,You select the door.

DOL level 35 test, using same armor quality and condition

30,You target [the test mob].
30,You examine the test mob. It is aggressive towards you.
30,The test mob attacks you and misses!
18,The test mob hits your leg for 50 (-4) damage!
30,The test mob attacks you and misses!
18,The test mob hits your torso for 42 (-4) damage!
30,The test mob attacks you and misses!
30,The test mob attacks you and you evade the blow!
18,The test mob hits your torso for 51 (-5) damage!
18,The test mob hits your arm for 185 (-1940) damage!
30,The test mob fumbled!
30,The test mob attacks you and misses!
18,The test mob hits your torso for 34 (-3) damage!
30,The test mob attacks you and misses!
30,The test mob attacks you and misses!
18,The test mob hits your foot for 47 (-4) damage!
0,Your Bodybender Chain Boots could use repairs. -- lost 10 condition in a single hit!
30,The test mob attacks you and misses!
18,The test mob hits your arm for 185 (-2273) damage!
30,The test mob attacks you and misses!
30,The test mob attacks you and misses!
30,The test mob attacks you and misses!
30,The test mob attacks you and misses!
30,The test mob attacks you and misses!
30,The test mob fumbled!
18,The test mob hits your head for 53 (-5) damage!
0,Your Edgebender Chain Helm could use repairs. -- also lost 10 con!
18,The test mob hits your torso for 41 (-3) damage!
30,The test mob attacks you and misses!
18,The test mob hits your torso for 51 (-4) damage!
30,The test mob attacks you and misses!
18,The test mob hits your leg for 34 (-3) damage!
30,The test mob attacks you and misses!
30,The test mob attacks you and misses!
30,The test mob attacks you and you evade the blow!
18,The test mob hits your torso for 46 (-4) damage!
18,The test mob hits your torso for 46 (-4) damage!
18,The test mob hits your torso for 49 (-4) damage!
18,The test mob hits your leg for 44 (-4) damage!
22,Amerc was just killed by a test mob.

I've noted the obvious con loss bug, and the damn fumble, but I'll continue to focus on just damage. Once again my new damage calculation looks good, the numbers are comparable, possible a little low still, but for the limited data collected it looks good.
- Mark
User avatar
Tolakram
Storm / Storm-D2 Admin
 
Posts: 9189
Joined: Tue Jun 13, 2006 1:49 am
Location: Kentucky, USA

Re: Mob damage

Postby nor » Sat Feb 23, 2008 10:53 pm

It would be easier if you posted SPD of mob attacks. Just damage numbers don't provide much information. Can't even know if the 2 mobs can be compared without correction. My old links contain 3 databases and none of them contains "wood ogre scavenger".

http://camelot.allakhazam.com/dyn/mobs/Albion/W.html
http://daoc.catacombs.com/bestiary.cfm
http://www.mindkayak.com/bestiary/facti ... action=193


Resists are applied before damage cap hence cannot be added to capped damage to compare it to live damage without resists. More correct comparision is 330 vs. 306 and only if SPD is equal.


306 (-5927) means that damage in DOL was ~74087.5 which cannot be even close to live servers. I see that something is not right here. Probably my original idea to use damage cap as a good tool to start with is incorrect. There are not that many factors and most of them cannot be changed:
  • AttackDamage, which is basically SPD*DPS
  • WeaponSkill, the only completely unknown variable as we know nothing about mobs
  • ArmorFactor of a player which is well known

Think that damage cap problem is the first thing which should be solved. I don't really want to change ws/af formulas right now, think it makes more sense to add special/extended damage cap for mobs.


As for finding unknown mob properties. If I was to do it think I'd have gone this way:
  • Log enough data of equal level mob damage vs. player (75/125 ratio helps here - you know where to stop, only need reliable SPD value) - this provides information about WS of a mob;
  • Log enough data of player damage to equal level mob (even more is known about players and again we know when to stop) - this provides information about AF of a mob;
  • Check that it all works in equal level mob-vs-mob fights;
  • Check damage of different level mobs;
  • Play with mob stats; think it is already done by various pet class fans.

Maybe there is some class with a pet which derives some stats of a player which we can control and keeps some other values untouched. This also can be useful to find mob DPS. All I want is some base for used values.

As I remember mob damage messages are also logged to controller and should contain real uncapped values of capped hits. Perhaps can be useful to get bigger numbers for more accurate result of level 50 mob attacking level 1 player without armor. This way we almost exclude armor - which adds some error - from equation. Of course all the tests should be with exactly the same type of mob to avoid possible stat/type difference. Mobs should be preferebly charmed. Level differences... perhaps first find how target level influence mob damage. Data for level 1-20 targets attacked by the same mob should provide more than enough information.


Btw about time on live servers. Too many years ago I spent some time testing cast speed and influence of dex/MoA on it. But first I wanted to be sure that I get reliable data so I ran couple tests with the same stats, actually I think all tests were done 3 times. Tests lasted from 20 to 100 minutes, using autocast + macro program, as I remember. Result was surprising. Duration of a test divided by the count of casted spells gave way too different numbers for such long tests. I can get real numbers if there is some interest. For now only wanted to say that such aproach can be unreliable, better to get mob SPD from some packet.


Still a lot of work, but I like what is already done. Wish I could support all the talking with more useful activity.
nor
Inactive Staff Member
 
Posts: 1584
Joined: Wed Mar 03, 2004 3:56 am

Re: Mob damage

Postby Tolakram » Sat Feb 23, 2008 11:18 pm

Hi Nor,

at this time the speed is a constant:
Code: Select all
public virtual int AttackSpeed(params InventoryItem[] weapon)
{
//TODO needs to come from the DB
double speed = 34; // 00 * (1.0 - (GetModified(eProperty.Quickness) - 60) / 500.0);
speed *= (1.0 - (GetModified(eProperty.Quickness) - 60) * 0.002);

//Combat Speed buff and debuff
if (ActiveWeaponSlot == eActiveWeaponSlot.Distance)
{
speed *= GetModified(eProperty.ArcherySpeed) * 0.01;
}
else
{
speed *= GetModified(eProperty.MeleeSpeed) * 0.01;
}

return (int)speed * 100;

.. edited, more mistakes
- Mark
User avatar
Tolakram
Storm / Storm-D2 Admin
 
Posts: 9189
Joined: Tue Jun 13, 2006 1:49 am
Location: Kentucky, USA

Re: Mob damage

Postby Tolakram » Sun Feb 24, 2008 12:38 am

in GamePlayer.cs, GetArmorAF

eaf = Math.Min(eaf, itemAFcap);
eaf *= 4.67; // compensate *4.67 in damage formula <-- oh nos!

So I'm rerunning tests yet again. :)

Ok Nor, now what you've been saying has finally sunk into my brain. The 4.67 damage modifier is everywhere. It's interesting that it still worked well even with my new weaponskill calculation.

Ok, back to the original equation and now I'm off to log, this time with seconds included to get speed and damage.
- Mark
User avatar
Tolakram
Storm / Storm-D2 Admin
 
Posts: 9189
Joined: Tue Jun 13, 2006 1:49 am
Location: Kentucky, USA

Re: Mob damage

Postby Tolakram » Sun Feb 24, 2008 1:24 am

Live:

[20:16:35] You target [the filidh apprentice]
[20:16:35] You examine the filidh apprentice. He is aggressive towards you!
[20:16:41] The filidh apprentice hits your leg for 63 (-14) damage!
[20:16:46] The filidh apprentice hits your hand for 55 (-12) damage!
[20:16:50] The filidh apprentice hits your leg for 57 (-13) damage!
[20:16:55] The filidh apprentice attacks you and misses!
[20:17:00] The filidh apprentice hits your foot for 68 (-15) damage!
[20:17:04] The filidh apprentice hits your leg for 54 (-12) damage!
[20:17:09] The filidh apprentice attacks you and misses!
[20:17:13] The filidh apprentice hits your torso for 47 (-10) damage!
[20:17:18] The filidh apprentice attacks you and misses!
[20:17:23] The filidh apprentice hits your foot for 63 (-14) damage!
[20:17:27] The filidh apprentice hits your torso for 58 (-13) damage!
[20:17:32] The filidh apprentice attacks you and misses!
[20:17:36] The filidh apprentice hits your foot for 52 (-11) damage!
[20:17:41] The filidh apprentice attacks you and misses!
[20:17:46] The filidh apprentice hits your leg for 48 (-10) damage!
[20:17:50] The filidh apprentice hits your leg for 67 (-15) damage!
[20:17:55] The filidh apprentice hits your leg for 56 (-12) damage!
[20:18:00] The filidh apprentice hits your hand for 59 (-13) damage!
[20:18:04] The filidh apprentice hits your torso for 60 (-13) damage!
[20:18:09] The filidh apprentice attacks you and misses!
[20:18:14] The filidh apprentice hits your arm for 233 (-28) damage! <-- capped damage
[20:18:18] The filidh apprentice hits your arm for 233 (-38) damage!
[20:18:18] Furt was just killed by a filidh apprentice!
[20:18:18] You have died. Type /release to return to your last bind point.

Cap damage when hit on location without armor.
Speed of this mob (holding a staff) is slower than previous mob
Speed: 22 swings in 97 seconds = 4.4
Average armored hit = 62
- Mark
User avatar
Tolakram
Storm / Storm-D2 Admin
 
Posts: 9189
Joined: Tue Jun 13, 2006 1:49 am
Location: Kentucky, USA

Re: Mob damage

Postby Tolakram » Sun Feb 24, 2008 1:38 am

DOL, mob speed set to 4.4

[20:33:53] The test mob hits your leg for 21 (-1) damage!
[20:33:58] The test mob attacks you and misses!
[20:34:02] The test mob attacks you and misses!
[20:34:06] The test mob hits your torso for 23 (-2) damage!
[20:34:11] The test mob hits your torso for 30 (-2) damage!
[20:34:15] The test mob attacks you and misses!
[20:34:20] The test mob hits your leg for 30 (-2) damage!
[20:34:24] The test mob attacks you and you evade the blow!
[20:34:28] The test mob attacks you and misses!
[20:34:33] The test mob hits your torso for 31 (-2) damage!
[20:34:37] The test mob attacks you and misses!
[20:34:42] The test mob attacks you and misses!
[20:34:46] The test mob attacks you and misses!
[20:34:50] The test mob attacks you and misses!
[20:34:55] The test mob hits your arm for 132 (-13) damage! <-- should hit for damage cap
[20:34:59] The test mob attacks you and misses!
[20:35:04] The test mob attacks you and misses!
[20:35:08] The test mob attacks you and misses!
[20:35:12] The test mob hits your leg for 25 (-2) damage!
[20:35:17] The test mob hits your torso for 27 (-2) damage!
[20:35:21] The test mob attacks you and you evade the blow!
[20:35:26] The test mob attacks you and misses!
[20:35:30] The test mob attacks you and you evade the blow!
[20:35:34] The test mob attacks you and misses!
[20:35:39] The test mob hits your torso for 28 (-2) damage!
[20:35:43] The test mob attacks you and misses!
[20:35:48] The test mob attacks you and misses!
[20:35:52] The test mob hits your foot for 40 (-4) damage!
[20:35:56] The test mob hits your head for 31 (-3) damage!
[20:36:01] The test mob hits your leg for 23 (-2) damage!
[20:36:05] The test mob hits your head for 27 (-2) damage!
[20:36:10] The test mob hits your leg for 22 (-2) damage!
[20:36:14] The test mob attacks you and you evade the blow!
[20:36:18] The test mob hits your leg for 28 (-2) damage!
[20:36:23] The test mob attacks you and you evade the blow!
[20:36:27] The test mob hits your head for 36 (-3) damage!
[20:36:32] The test mob hits your torso for 24 (-2) damage!
[20:36:36] The test mob attacks you and misses!
[20:36:40] The test mob hits your head for 41 (-4) damage!
[20:36:45] The test mob hits your torso for 31 (-3) damage!
[20:36:49] The test mob hits your leg for 30 (-2) damage!
[20:36:54] The test mob hits your torso for 20 (-2) damage!
[20:36:58] The test mob hits your leg for 20 (-2) damage!
[20:37:02] The test mob hits your head for 35 (-3) damage!

I gave up after this long.
Note that unarmored location does not hit for cap.
Speed: 44 swings in 189 seconds = 4.3
Average Armored hit = 28


test mob damage1 = 76.8216216216216
test mob weaponskill = 120
player armoraf = 220.06908
test mob damage2 = 51.6311823904394
test mob ad.Damage = 40

test mob damage1 = 76.8216216216216
test mob weaponskill = 120
player armoraf = 220.06908
test mob damage2 = 51.6311823904394
test mob ad.Damage = 31

test mob damage1 = 76.8216216216216
test mob weaponskill = 120
player armoraf = 322.389313714286
test mob damage2 = 38.925433409202
test mob ad.Damage = 23
- Mark
User avatar
Tolakram
Storm / Storm-D2 Admin
 
Posts: 9189
Joined: Tue Jun 13, 2006 1:49 am
Location: Kentucky, USA

Re: Mob damage

Postby Tolakram » Sun Feb 24, 2008 3:18 am

Now that I've had a chance to think about this, the fact the the damage curve is not equal to the DPS curve makes sense. Mob damage is both function of DPS and loot progression. As you reach higher levels you are expected to be wearing the best armor you can find, so mobs should become progressively harder.

Level 5 mobs do not hit an unarmored player for damage cap.

Level 35 mobs do.

Finding the exact level numbers is going to be a challenge.
- Mark
User avatar
Tolakram
Storm / Storm-D2 Admin
 
Posts: 9189
Joined: Tue Jun 13, 2006 1:49 am
Location: Kentucky, USA

Re: Mob damage

Postby Tolakram » Sun Feb 24, 2008 4:28 am

Level 11, Live, no armor

[23:27:20] The rotten legionnaire hits your torso for 24 (-2) damage!
[23:27:23] The rotten legionnaire attacks you and misses!
[23:27:26] The rotten legionnaire hits your head for 23 (-1) damage!
[23:27:29] The rotten legionnaire hits your leg for 31 (-2) damage!
[23:27:32] The rotten legionnaire attacks you and misses!
[23:27:35] The rotten legionnaire attacks you and misses!
[23:27:38] The rotten legionnaire hits your torso for 28 (-2) damage!
[23:27:41] The rotten legionnaire hits your leg for 32 (-2) damage!
[23:27:44] The rotten legionnaire attacks you and you evade the blow!
[23:27:47] The rotten legionnaire hits your leg for 34 (-2) damage!
[23:27:50] The rotten legionnaire hits your torso for 31 (-2) damage!
[23:27:53] The rotten legionnaire attacks you and misses!
[23:27:56] The rotten legionnaire hits your leg for 30 (-2) damage!
[23:27:59] The rotten legionnaire hits your leg for 28 (-2) damage!
[23:28:01] The rotten legionnaire attacks you and misses!
[23:28:04] The rotten legionnaire hits your arm for 28 (-2) damage!
[23:28:07] The rotten legionnaire attacks you and misses!
[23:28:10] The rotten legionnaire attacks you and misses!
[23:28:13] The rotten legionnaire hits your arm for 24 (-2) damage!
[23:28:16] The rotten legionnaire hits your leg for 31 (-2) damage!
[23:28:19] The rotten legionnaire hits your torso for 28 (-2) damage!
[23:28:22] The rotten legionnaire hits your leg for 31 (-2) damage!
[23:28:22] Tolama was just killed by a rotten legionnaire!

22 swings in 62 seconds = 2.8 speed
Note that mob is not hitting damage cap.
- Mark
User avatar
Tolakram
Storm / Storm-D2 Admin
 
Posts: 9189
Joined: Tue Jun 13, 2006 1:49 am
Location: Kentucky, USA


Return to “%s” General

Who is online

Users browsing this forum: No registered users and 1 guest