I didn't know where to put this so I put it here as it's battle related. I did a bunch of test on the test server to express the distribution of melee hits between min damage and max damage, assuming they are given.
Let r=(your attack)/(mob's defense) [not bothering with level correction]
First case 0.75< r <1.25
Call a and b min and maximum damage, DMG your total weapon damage (incl fstr for those that know what it is). If you know what the 5% "randomizer" is those are values before accounting for this randomizer. The law of the random damage generated by the game is
d=((1-U)*V1+U*DMG)*(1+e)
e= unfiorm between 0 and 0.05; this is the so-called randomizer.
DMG= your weapon damage
U= a bernouilli variable which parameter is unknow so far, taking 2 values, 0 or 1
V1=uniform on [a,b]
In other words
IF U=0 THEN d=DMG*(1+e) ELSE d=V1*(1+e) END IF;
is a simple code that give this random variable.
Notes : this is obtained through data. When fighting EM sandsweepers in aby-altepa, if your def is in the correct range then there is a fixed interval of values (it's the same interval regarless of your attack) that have high frequencies, and they are always DMG->DMG+5%. For instance I was on pup and had 104 total damage including fstr, then I would find that the values 104,105,106,107,108,109 happen nearly 30-50% of the time.
This implies the following form for the distribution of the random damage 'd'
The average damage is therefore
d*=(1-q)*1.025*(b+a)/2+q*DMG*1.025 where q is parameter of the Bernouilli U
The proportion of numbers lying is the interval [DMG,DMG*1.05] seems constant equal to about 35% and doesn't seem to vary much with attack values. This proportion is , with the above model,
q+(1-q)*ln(1.05)*DMG/(b-a) .
Can provide data if needed.
second case 0.75> r > 0.5
In this case of DMG is equal to b we still have:
d=((1-U)*V1+U*(DMG)*(1+e)
The frequency spike happens at the upper bound of the damage range (b=DMG so the actual maximum observed is DMG*1.05).
second case case r>1.5
In this case DMG is still outside of [a,b] (DMG<=a) there are not high frequency values, so it's natural assumption that the roll U is equal to 1. It means that the parameter of the bernouilli U is likely zero when ratio>=1.25
exemple
(only the shape of the graph is relevant)
How to find a mob's damage
Easy. Get hit a a couple of times with a non retarded def and examines is the lowest value of the frequency spikes. Exemples, the chigoes in caedaerva mire have about 70 damage as "weapon"
**asuming mob's pdif works the same**
How to find a mob's VIT
Check what is the minimum frequency spike you are getting and reverse the fstr formula.