Hit % on armor parts.

Started 6 Jul 2019
by _Dax_
in Ask the Team
Whats the Hit % on armor parts?

I reccon it was: - Torso: 44%, Legs: 22% ,Head: 16, Arms: 12% ,Gloves: 3%, Boots: 3%

But a friend telling me that that is not the case here on phx?
Is he right?


//Dax
Sat 6 Jul 2019 3:09 PM by chewchew
Dont know where you got these numbers from.
Should be (iirc):
    chest: 40%
    legs: 25%
    arms: 15%
    head: 10%
    hands: 5%
    feet: 5%

Not sure if its like this here on phoenix, too.
But should be easy to test, just get yourself hit many times and check.
Sun 7 Jul 2019 8:57 AM by Ashok
Phoenix calculation:

public eArmorSlot CalculateArmorHitLocation(AttackData ad)
{
int chancehit = Util.Random(1, 100);

if (chancehit <= 40)
{
return eArmorSlot.TORSO;
}

if (chancehit <= 65)
{
return eArmorSlot.LEGS;
}

if (chancehit <= 80)
{
return eArmorSlot.ARMS;
}

if (chancehit <= 90)
{
return eArmorSlot.HEAD;
}

if (chancehit <= 95)
{
return eArmorSlot.HAND;
}
return eArmorSlot.FEET;
}
Sat 13 Jul 2019 2:43 PM by Kohi
chewchew wrote:
Sat 6 Jul 2019 3:09 PM
Dont know where you got these numbers from.
Should be (iirc):
    chest: 40%
    legs: 25%
    arms: 15%
    head: 10%
    hands: 5%
    feet: 5%

Not sure if its like this here on phoenix, too.
But should be easy to test, just get yourself hit many times and check.

He probably got them from here : http://disorder.dk/daoc/armor-hit-chance-and-location/ as I did.
But better source would have been this one : https://darkageofcamelot.com/article/friday-grab-bag-20102017
Now, as Ashok posted what seems to be in-house custom calculation for Phoenix, guess we can forget both sources above...
Sun 14 Jul 2019 11:52 PM by Chaskha
Kohi wrote:
Sat 13 Jul 2019 2:43 PM
chewchew wrote:
Sat 6 Jul 2019 3:09 PM
Dont know where you got these numbers from.
Should be (iirc):
    chest: 40%
    legs: 25%
    arms: 15%
    head: 10%
    hands: 5%
    feet: 5%

Not sure if its like this here on phoenix, too.
But should be easy to test, just get yourself hit many times and check.

He probably got them from here : http://disorder.dk/daoc/armor-hit-chance-and-location/ as I did.
But better source would have been this one : https://darkageofcamelot.com/article/friday-grab-bag-20102017
Now, as Ashok posted what seems to be in-house custom calculation for Phoenix, guess we can forget both sources above...

The quote of Chewchew is equal to the code Ashok posted
Mon 15 Jul 2019 2:19 AM by Kohi
Chaskha wrote:
Sun 14 Jul 2019 11:52 PM
Kohi wrote:
Sat 13 Jul 2019 2:43 PM
chewchew wrote:
Sat 6 Jul 2019 3:09 PM
Dont know where you got these numbers from.
Should be (iirc):
    chest: 40%
    legs: 25%
    arms: 15%
    head: 10%
    hands: 5%
    feet: 5%

Not sure if its like this here on phoenix, too.
But should be easy to test, just get yourself hit many times and check.

He probably got them from here : http://disorder.dk/daoc/armor-hit-chance-and-location/ as I did.
But better source would have been this one : https://darkageofcamelot.com/article/friday-grab-bag-20102017
Now, as Ashok posted what seems to be in-house custom calculation for Phoenix, guess we can forget both sources above...

The quote of Chewchew is equal to the code Ashok posted

Aha ? Like 1 + 1 = 3, or did i miss something ? ^^
Explain us how u understand the code line for arms & legs then.
Mon 15 Jul 2019 2:29 AM by ExcretusMaximus
Kohi wrote:
Mon 15 Jul 2019 2:19 AM
Aha ? Like 1 + 1 = 3, or did i miss something ? ^^
Explain us how u understand the code line for arms & legs then.


Roll 100:
1-40 = Body
41-65 = Legs
66-80 = Arms
81-90 = Head
91-95 = Hands
96-100 = Feet
Mon 15 Jul 2019 2:57 AM by Kohi
ExcretusMaximus wrote:
Mon 15 Jul 2019 2:29 AM
Kohi wrote:
Mon 15 Jul 2019 2:19 AM
Aha ? Like 1 + 1 = 3, or did i miss something ? ^^
Explain us how u understand the code line for arms & legs then.


Roll 100:
1-40 = Body
41-65 = Legs
66-80 = Arms
81-90 = Head
91-95 = Hands
96-100 = Feet

If i understand correctly the conditional statements, the chance to hit the given armor part has to be inferior or equal to the given amount (determined by the random 100 within those limits), so

if (chancehit <= 65){return eArmorSlot.LEGS;} = 35% (1% to 35%)
if (chancehit <= 80){return eArmorSlot.ARMS;} = 20% (1% to 20%)

which means it is not equal to the 25% (legs) & 15% (arms) from official live source/chewchew.
Same goes for torso which has 20% more chance to be hit (60% vs 40%).
Is that correct ?
Mon 15 Jul 2019 3:03 AM by gotwqqd
Yes and if it receives no for each condition the last subject is itilized
Mon 15 Jul 2019 3:16 AM by Kohi
gotwqqd wrote:
Mon 15 Jul 2019 3:03 AM
Yes and if it receives no for each condition the last subject is itilized

Thanks. =)
Mon 15 Jul 2019 6:21 AM by Estat
Kohi wrote:
Mon 15 Jul 2019 2:57 AM
ExcretusMaximus wrote:
Mon 15 Jul 2019 2:29 AM
Roll 100:
1-40 = Body
41-65 = Legs
66-80 = Arms
81-90 = Head
91-95 = Hands
96-100 = Feet

If i understand correctly the conditional statements, the chance to hit the given armor part has to be inferior or equal to the given amount (determined by the random 100 within those limits), so

if (chancehit <= 65){return eArmorSlot.LEGS;} = 35% (1% to 35%)
if (chancehit <= 80){return eArmorSlot.ARMS;} = 20% (1% to 20%)

which means it is not equal to the 25% (legs) & 15% (arms) from official live source/chewchew.
Same goes for torso which has 20% more chance to be hit (60% vs 40%).
Is that correct ?
No, you got it wrong.

Torso got 40% because the value in the code snippet is 40.

Legs got 25% because the value in the code snippet is 65 and 65 - 40 = 25.

And so on.
Mon 15 Jul 2019 8:06 AM by Kohi
Estat wrote:
Mon 15 Jul 2019 6:21 AM
Kohi wrote:
Mon 15 Jul 2019 2:57 AM
ExcretusMaximus wrote:
Mon 15 Jul 2019 2:29 AM
Roll 100:
1-40 = Body
41-65 = Legs
66-80 = Arms
81-90 = Head
91-95 = Hands
96-100 = Feet

If i understand correctly the conditional statements, the chance to hit the given armor part has to be inferior or equal to the given amount (determined by the random 100 within those limits), so

if (chancehit <= 65){return eArmorSlot.LEGS;} = 35% (1% to 35%)
if (chancehit <= 80){return eArmorSlot.ARMS;} = 20% (1% to 20%)

which means it is not equal to the 25% (legs) & 15% (arms) from official live source/chewchew.
Same goes for torso which has 20% more chance to be hit (60% vs 40%).
Is that correct ?
No, you got it wrong.

Torso got 40% because the value in the code snippet is 40.

Legs got 25% because the value in the code snippet is 65 and 65 - 40 = 25.

And so on.

I don't wanna play smartass here, just trying to understand as i'm not a coder, but how do u link 40 (65-40) to legs ? oO
I only see if (chancehit <= 65){return eArmorSlot.LEGS;} so for me the conditional is 65, with same random 100 as all parts, so 35%.
Don't follow ur logic (sincerely), so where does the 40 come from ?
And if torso is 40% because code snippet is 40, following this logic, hands and feet should be 95% because code snippet is 95... oO Not sure u're right here ?
Mon 15 Jul 2019 8:29 AM by Bicstor
How that code works:
you take a random number between 1 and 100,
the code then asks is that number 40 or less? if it is then the chest piece has been hit, we can stop here and return that result, we dont need to process any more of that code shown there.
the code continues only if a previous condition has not been met
The code then asks if the random number is 65 or less. if it is then the legs have been hit, because to get to this point the random number must of been greater than 40.
and so on.

it could of been written(psuedocode)
a=random number(1,100)
if (a<=40) then torso, return
if( a>40 and a<=65) then legs, return
however the lower limit is not needed (a>40) as it has been excluded by the previous conditional(if) ,the second if is only processed if a>40.
Mon 15 Jul 2019 8:35 AM by Kohi
Bicstor wrote:
Mon 15 Jul 2019 8:29 AM
How that code works:
you take a random number between 1 and 100,
the code then asks is that number 40 or less? if it is then the chest piece has been hit, we can stop here and return that result, we dont need to process any more of that code shown there.
the code continues only if a previous condition has not been met
The code then asks if the random number is 65 or less. if it is then the legs have been hit, because to get to this point the random number must of been greater than 40.
and so on.

it could of been written(psuedocode)
a=random number(1,100)
if (a<=40) then torso, return
if( a>40 and a<=65) then legs, return
however the lower limit is not needed (a>40) as it has been excluded by the previous conditional(if) ,the second if is only processed if a>40.

THANKS ! got it. =)
My mistake was to considere each part separetely. Makes sense.
This topic is locked and you can't reply.

Return to Ask the Team or the latest topics