Welcome to the DFO World Wiki. With many major updates since the release of DFO, many items are missing. Visit Item Database Project to learn more.
Please remember to click "show preview" before saving the page.
Thanks for the updated logo snafuPop!

Using Mathematical Expressions for Skill Pages

Jump to: navigation, search

Hey Bah Wikier, welcome back. I've noticed that you've been updating quite a few of the F. Priest (Shaman) skill pages recently.

Just so you know, you don't have to put all the values on one page. Inputting all the values on a page can be painstakingly mind-numbing, and becomes cumbersome when the Neople team adds a balance patch. You can use a mathematical expression instead; it will save you a lot time and prevent frustration later.

For reference, you can look at the Agent Skill Pages.

21:24, 22 September 2018

Out of curiosity, where did those formulas come from? Are they estimations made by players?

11:05, 23 September 2018

Kinda. The formulas can be found manually in game with a little bit of mathematics.

For most percentage values it goes as follows:

For all values of n >= 1 (with n being the current skill's level):

Base Level 1 Percentage Value + Per Level Multiplier*(n-1)%

For Fixed Damage attacks it works pretty much the same way, just requires a lot more code...

For a more precise estimation for the Per Level Multiplier, I usually use the highest possible values and use a little algebra to solve for the multiplier.

11:30, 23 September 2018

So fixed damage skills are like:

(fixed damage * independent attack) + (independent level multiplier * independent attack)*(n-1);

11:34, 23 September 2018

Not exactly. It would be: (Skill's Level 1 Fixed Damage/Your Independent Attack) + (Independent Attack Level Multiplier) * (n-1)

To solve for the Independent Attack Level Multiplier: Let's treat the 'Independent Attack Level Multiplier' as 'X' and 'n' as the skill's current level.

X = ((Skill's highest possible Fixed Damage/Your Independent Attack) - (The Skill's Level 1 Fixed Damage/Your Independent Attack))/(n-1)

OR

X = (Skill's highest possible fixed damage - Skill's Level 1 Fixed Damage)/(Your Independent Attack * (n-1))

Also, we do have template to calculate the Ratio for Independent Attack called AbsoluteDamage.

11:57, 23 September 2018
Edited by author.
Last edit: 12:08, 23 September 2018

So something like: {{AbsoluteDamage|472|472}} + {{AbsoluteDamage|47|472}}*(n-1)

12:05, 23 September 2018

{{AbsoluteDamage|472|472}} + {{AbsoluteDamage|472|472}}*(n-1)

12:06, 23 September 2018

Yeah something like that. Thanks for pointing that out to me.

It might even be easier if we just omit the 'Your Independent Attack' from the equation I stated earlier.

So it turns out like this:

X = (Skill's highest possible fixed damage - Skill's Level 1 Fixed Damage)/(n-1)

As mentioned in your example, it would be basically this:

{{AbsoluteDamage|Skill's level 1 Fixed damage|Your Independent Attack}}+{{AbsoluteDamage|X|Your Independent Attack}}*(n-1)
12:24, 23 September 2018

Hey, I've noticed that certain skills like Aura Javelin and Lollipop Crush have quite extensive tables that might hover off the page once we put in the expressions. Do you think it would be better if we keep this information in a table or list them out similarly to the 'Skill Options' in-game?

09:47, 24 September 2018

Because we are now using a single formula instead of listing each level in a table, we don't necessarily need to use tables at all. It's just that the current skill page template automatically takes a table. I actually tried putting two separate tables on the Lolipop Crush page, but the skill page refused to display a second table correctly. I ended up squishing both tables into the single skill growth table.

I guess the question is if we're going to create a new skill page template.

09:59, 24 September 2018

Creating a new skill page template is unnecessary as the table function is completely independent from the template for it to display correctly. You can literally type anything in the area and it should be able to display normally, with the exception of tables or tabs for some reason which require an outer call of

<span style="display:none">{{</span> <span style="display:none">}}</span>

.

To list out the skill options under skill growth, we can always use the SkillAttribute template and put in the individual expressions there.

10:21, 24 September 2018

Is there any limit to the SkillAttribute template? Some skills have lots of various effects and I don't know if it matters what we try to list that way.

10:30, 24 September 2018

The SkillAttribute Template can only hold two arguments, the name of the option and the value (or in this case the skill growth expression).

So in the case of Lollipop Smash, it would be something like this:

*{{SkillAttribute|Level|n}}
*{{SkillAttribute|Lv Req|80+2(n-1)}}
*{{SkillAttribute|MP|800+133.334(n-1)}}
*{{SkillAttribute|Smash Atk|{{AbsoluteDamage|364914|1265}} +{{AbsoluteDamage|37018|1265}}(n-1)}}
*{{SkillAttribute|Sugar Doll Explosion Attack|{{AbsoluteDamage|99340|1265}} +{{AbsoluteDamage|10082|1265}}(n-1)}}
*{{SkillAttribute|Boss/Named Doll Explosion Attack|{{AbsoluteDamage|233303|1265}} +{{AbsoluteDamage|23668.334|1265}}(n-1)}}
*'''{{IconLink|Blind (Status)}} Effect:'''
**{{SkillAttribute|Lv|82+2(n-1)}}
**{{SkillAttribute|Chance|50%+5(n-1)%}}
**{{SkillAttribute|Duration|2+0.5(n-1) sec}}
*'''{{IconLink|Shock (Status)}} Effect:'''
**{{SkillAttribute|Lv|82+2(n-1)}}
**{{SkillAttribute|Chance|50%+10(n-1)%}}
**{{SkillAttribute|Atk.|{{AbsoluteDamage|8626|1265}} +{{AbsoluteDamage|875.667|1265}}(n-1)}}
  • Level: n
  • Lv Req: 80+2(n-1)
  • MP: 800+133.334(n-1)
  • Smash Atk:
    288.47
    max-width:200px 100
    +
    29.26
    max-width:200px 100
    (n-1)
  • Sugar Doll Explosion Attack:
    78.53
    max-width:200px 100
    +
    7.97
    max-width:200px 100
    (n-1)
  • Boss/Named Doll Explosion Attack:
    184.43
    max-width:200px 100
    +
    18.71
    max-width:200px 100
    (n-1)
  • Blind (Status).png Blind (Status) Effect:
    • Lv: 82+2(n-1)
    • Chance: 50%+5(n-1)%
    • Duration: 2+0.5(n-1) sec
  • Electrocution (Status).png Shock (Status) Effect:
    • Lv: 82+2(n-1)
    • Chance: 50%+10(n-1)%
    • Atk.:
      6.82
      max-width:200px 100
      +
      0.69
      max-width:200px 100
      (n-1)
10:44, 24 September 2018

That doesn't look too bad. Looks nicer than my two tables squished together. I guess we could do things that way. Might make things easier to read for people using smartphones.

10:50, 24 September 2018

Looks good to me too. I suppose we can make this the new makeshift standard. I'll go inform User:Dfoplayer of the change. Let's just be sure to update the older (up-to-date) pages to this format later.

11:06, 24 September 2018
 

I would probably recommend something that allowed a "live" fiddling with the level, or at least showing the "Level 1 and Max" versions of a skill.

In addition several skills have breakpoints, where it might be better to list what's going on Lesser Spirit: Stalker.

In a perfect world, there would be a widget that had a slider where you could see breakpoints, but that's never going to happen I think.

I don't think pure mathematical expressions are useful for the average player.

11:00, 5 November 2018

Haven't seen you here in a while. Welcome back.

Originally, this was a plan to minimize the amount of editing when it came to updating these skills. After switching to this new format, the amount of editing required to update a recently patched (updated) skill takes up to 5 minutes on average compared to the hours it took before updating each individual value. But I understand what you are suggesting.

I was planning on making a widget that included all levels of the skill, but I encountered a few problems.

Ideally, it would display something similar to the per level Statistic growth as shown on the League of Legends typical champion page. When given a mathematical expression, it would solve the for the values provided, either by a for loop or by being given two values as a arguments stored as variables. However, a few problems arose.

  • I couldn't figure out how MediaWiki stores integers as values for parameters to be plugged into an upper limit for the widget or the #expr expression.
  • Certain skills such like Aerial Fire.png Aerial Fire and Lesser Spirit- Stalker.png Lesser Spirit: Stalker had set levels to which which bonuses were unlocked. I wasn't sure if the numbers were based off of the typical rounding numbers rule or by ceil or floor calculations. Additionally, other skills like G-0 Battleroid.png G-0 Battleroid doesn't seem to have a consistent growth pattern for these attributes (the Lock-On Missile Targets).
  • Other skills like Core Shield.png Core Shield, Energy Shield (Female).png Energy Shield, and Light of Divinity.png Light of Divinity do not have a consistent growth pattern when it comes to Shield Health. Most skills tend to follow some kind of arithmetic sequence, and are rarely geometric. These ones are a bit different. I viewed the growth pattern through other sequences, Fibonacci, Triangular Numbers, and Partial Sums, but they do not yield the expressions I required.

Eventually, due to these problems (mostly the latter), I just figured we just write down the expressions.

Perhaps we can meet somewhere in the middle. We could display three parts: n, Min Lv. (Base Lv 1), Max Lv. (According to Lv. Cap) and default to either n or Min Lv. We could separate the values by tabs, and manually input the Min/Max Lv. values. However, I'm worried that the SkillGrowth section may become a bit too cluttered.

12:05, 5 November 2018
 
 
 
 
 
 
 
 
 
 
 
 
 

Hey there, we updated the format for the skill tables a few months ago. Please refer to Skill Table Format for more details. Using the mathematical equations, it auto generates a table for the skills.

00:11, 26 February 2019