Jump to content

StalysRex

Members
  • Posts

    31
  • Joined

  • Last visited

  • Days Won

    3

Everything posted by StalysRex

  1. Agreed. If(DamagOutput < 0) then{ DamagOutput = 0; } I'm sure there is a reason, they do not currently.
  2. Based on the formula 1000 armor/resist is 100% mitigation. That means 1 point of armor is going to = 0.001% mitigation. If you are going to sit at 1 Attack, 1 Base damage then you are right, 1 armor isn't going to do anything for you. You can stack armor all day and will barely see that 2 dmg, go to 1. It is not supposed to completely negate damage into the ground, it only negates a % of it. So you are right the armor isn't what is actually being factored, its just being used as a % of your damage you are receiving/doing. The actual change is in your final damage output. Its supposed to let players with low stats still do some sort of damage to Npc's/players with 1000 armor/resist without negative results. This is meant to be a scaling calculation so the higher the stats go the better the calculations. To address the main issue though, adjust the conversion factor from 0.001 to 0.01 or whatever is desired. This makes your max armor threshold 100 though if you make it 0.01, so that's why I didn't choose it by default. You just have to tinker with the conversion to get desirable results. You should always know how high you want your MAX level player with MAX armor and MAX damage to top out at anyway. Again you are right its not perfect (I never thought it was), but for what is currently available I would go with mitigation instead of flat values of Attack - Defense, otherwise we see stuff like in a previous post where high armor values start giving you negative values... Here is a changed sheet, to anyone who would like it. New Combat Formulas.xlsx
  3. The defense/resist is used in the calculation to get the mitigation, so I am not sure what you mean? Example, 1000 armor is 100% mitigation. 500 armor is 0.50% mitigation and so forth. So if we do 100 damage and our enemy has 500 armor, which we are talking high level here than our damage is reduced by 0.50%. I just used even numbers here so we can see how it works. Getting back to your point, if you have 0 armor and you don't put stat points into it, you are always going to have 0% mitigation. (V_Defense * 0.001) The above piece of code for the formula doesn't make armor/resist irrelevant it just converts it to a percent based on 1000 being 100%. Not sure if you seen my note at the bottom, about testing it in-game and not theorizing it. Give it a try. The only thing you would have to make sure of is, have Scaling Amount % to be 100 when creating classes and weapons for the spreadsheet to transpose accurately to game. I read my previous post and it did seem a little confusing, sorry I did it late last night. What I was trying to say was the formulas in excel are only choosing the actual values of A_Attack and A_AbilityPwr since it isn't set up to differentiate when you just choose scaling stat like Intersect is, sorry about that.
  4. Turn armor into a percent with a max threshold of 1000 armor (I personally don't think anyone should have over 1,000 armor or resist, and if they do the formula can be adjusted), then multiply our damage by that percent to get a percent of our damage. Then we minus that percent of our damage from our original damage. If you go over 1,000 armor or resist, the calculation will break. It can be easily fixed though. Ill post the formula here, but I've also piggy backed off of Joyce spread sheet to show you what is actually going on with the calculations. <?xml version="1.0" encoding="utf-8"?> <!--formulas.xml generated automatically by Intersect Server. Here you can modify formulas used in the Intersect Engine. The three main formulas are for calculating Physical, Magical, and True Damage. The following functions can be used: Random(min,max): Returns an integer value between min and max. The following variables can be used: BaseDamage: Base damage of weapon or spell used. ScalingStat: Value of stat that was selected in the item/spell editor to scale with the attack. ScaleFactor: Value set in editors for how spell/weapon should scale off of the scaling stat. CritFactor: Value to multiply potential damage by if the attack is a critical strike. (Server provides 0 is not a crit, and 2 if it is a crit) A_Attack: Attackers attack stat. A_Defense: Attackers defense stat. A_Speed: Attackers speed stat. A_AbilityPwr Attackers ability power stat. A_MagicResist: Attackers magic resist stat. V_Attack: Victims attack stat. V_Defense: Victims defense stat. V_Speed: Victims speed stat. V_AbilityPwr Victims ability power stat. V_MagicResist: Victims magic resist stat. --> <Formulas> <!-- Old Formulas <PhysicalDamage>Random(((BaseDamage + (ScalingStat * ScaleFactor))) * CritFactor * .975, ((BaseDamage + (ScalingStat * ScaleFactor))) * CritFactor * 1.025) * (100 / (100 + V_Defense))</PhysicalDamage> <MagicDamage>Random(((BaseDamage + (ScalingStat * ScaleFactor))) * CritFactor * .975, ((BaseDamage + (ScalingStat * ScaleFactor))) * CritFactor * 1.025) * (100 / (100 + V_MagicResist))</MagicDamage> <TrueDamage>Random(((BaseDamage + (ScalingStat * ScaleFactor))) * CritFactor * .975, ((BaseDamage + (ScalingStat * ScaleFactor))) * CritFactor * 1.025)</TrueDamage> End Old Formulas--> <!-- New Formulas! We turn our armor/resist into % damage reduction, by turning armor/resist into a %. Then multiplying our damage by that to get that % of our damage, and we subtract from our original damage to get the mitigated amount.--> <PhysicalDamage>Random((BaseDamage + ScalingStat * ScaleFactor * CritFactor) - (BaseDamage + ScalingStat * ScaleFactor * CritFactor) * (V_Defense * 0.001), (BaseDamage + ScalingStat * ScaleFactor * CritFactor * 1.2) - (BaseDamage + ScalingStat * ScaleFactor * CritFactor) * (V_Defense * 0.001))</PhysicalDamage> <MagicDamage>Random((BaseDamage + ScalingStat * ScaleFactor * CritFactor) - (BaseDamage + ScalingStat * ScaleFactor * CritFactor) * (V_MagicResist * 0.001), (BaseDamage + ScalingStat * ScaleFactor * CritFactor * 1.2) - (BaseDamage + ScalingStat * ScaleFactor * CritFactor) * (V_MagicResist * 0.001))</MagicDamage> <TrueDamage>Random((BaseDamage + ScalingStat * ScaleFactor * CritFactor) - (BaseDamage + ScalingStat * ScaleFactor * CritFactor) * (0.001), (BaseDamage + ScalingStat * ScaleFactor * CritFactor * 1.5) - (BaseDamage + ScalingStat * ScaleFactor * CritFactor) * (0.001))</TrueDamage> </Formulas> I have confirmed it works accurately from spreadsheet to actual game play, also in the spreadsheet you will see tags with <--EDIT ME: for ease of use, anything else isn't used in the calculations currently. ScalingStat was left out of physical and magical calculations in the spreadsheet since it cant represent both in the math, with the way Intersect's formulas work. So I just used A_Attack, and A_AbilityPwr instead, just to get a representation in the sheet. True damage calculation does use it, to give you an idea of how its going to be calculated though. The maximum damage may be adjusted to fit your needs by editing the '1.2' after CritFactor in the formula to something like 1.1 or 1.5, as a side note. New Combat Formulas.xlsx
×
×
  • Create New...