exp formula(s)

Discussion in 'General Discussion' started by nomade, Oct 8, 2024.

  1. nomade
    Offline

    nomade Well-Known Member

    Joined:
    Jun 22, 2021
    Messages:
    162
    Likes Received:
    157
    Location:
    Chief's oases
    Country Flag:
    Level:
    A
    This is my personal experiments attempting to find the rules of exp sharing after some time passed.
    All the formulas listed below are limited to be a theory. Keep in mind they might be wrong.
    • By the time posting this I only have done tests on Skelegon - HP: 80,000 EXP: 4,500 and a few other mobs.
      I use Skelegon as main target of verification in this post.​
    • There is sometimes a tiny exp discrepancy (+- 1-2) between these calculation results and the ground truth, the real exp you get.
      This is I'd assume derived from how exactly the exp given to players is implemented in the code, the cascaded calculations, numerical operations, and maybe the loss of precision from data type conversion or something related to program interpreting the number. Chances are I'm wrong here.​
    • There're situations haven't been tested, such as:
      What if the mob recovers hp, for example Krex and Vikerola, how to calculate dmg% in this case.
      What if you're below -5 levels of the mob and do damage.
      What if you're below -5 levels of the mob and leeching from an attacker within 5 levels gap.
      Haven't tested with high level boss.​



    Here exp formulas are listed case by case, all without HS bonus (1.5x).
    All final exp go through a Floor(exp), this step is omitted in formula.

    Definition:

    - mobexp = Monster base exp, 4500 for Skelegon
    - cptsize = factor of party size =
    (a) (1.1 + 0.05 * N) / (N + 1) if N >= 2 (N := party size)
    (b) 0.5 if N = 1 (1 man pt)
    or
    Code:
    0.5    when N = 1
    0.4    when N = 2
    0.3125 when N = 3
    0.26   when N = 4
    0.225  when N = 5
    0.2    when N = 6
    
    - lv = leecher's level (who did 0 damage)
    - avglv = Floor(average party level)
    - dmg% = damage dealt by single attacker / total monster hp
    - party total dmg% = sum of dmg% among all attackers in pt


    1. All damages come from only 1 party

    for damage dealer:
    exp = mobexp*3.2 * cptsize * (1 + dmg%)

    for leecher:
    exp = mobexp*3.2 * cptsize * Min(lv/avglv, 1)

    damages
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    pt1:
    attacker Lv139 54221/80000 (10699 + 16667 + 12537 + 14308)
    attacker Lv200 25779/80000 (80000 - 54221)
    leecher Lv190
    leecher Lv200
    leecher Lv142

    exp gain (theoretical / real exp)
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    pt1:
    cptsize = 0.225
    avglv = Floor( (139 + 190 + 142 + 200 + 200) / 5 ) = 174
    attacker Lv139 4500*3.2 * 0.225 * (1 + /80000) = 5435.95 / 5435
    attacker Lv200 4500*3.2 * 0.225 * (1 + /80000) = 4284.04 / 4283
    leecher Lv190 4500*3.2 * 0.225 * Min(190/174, 1) = 3240 / 3239
    leecher Lv200 4500*3.2 * 0.225 * Min(200/174, 1) = 3240 / 3239
    leecher Lv142 4500*3.2 * 0.225 * Min(142/174, 1) = 2644.13 / 2643

    2. Damages done by multiple parties

    for damage dealer:
    exp = mobexp*3.2 * cptsize * (party total dmg% + dmg%)

    for leecher:
    exp = mobexp*3.2 * cptsize * Min(lv/avglv, 1) * party total dmg%

    damages
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    pt1:
    attacker Lv200 46025/80000
    attacker Lv139 17075/80000

    pt2:
    attacker Lv190 2063/80000 (609 + 1454)
    leecher Lv142

    pt3:
    attacker Lv200 14837/80000 (80000 - 46025 - 2063 - 17075)

    exp gain (theoretical / real exp)
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    pt1:
    cptsize = 0.4
    avglv = Floor( (139 + 200) / 2 ) = 169
    attacker Lv200 4500*3.2 * 0.4 * (63100/80000 + 46025/80000) = 7857.00 / 7856
    attacker Lv139 4500*3.2 * 0.4 * (63100/80000 + 17075/80000) = 5772.60 / 5771

    pt2:
    cptsize = 0.4
    avglv = Floor( (190 + 142) / 2 ) = 166
    attacker Lv190 4500*3.2 * 0.4 * (2063/80000 + 2063/80000) = 297.07 / 297
    leecher Lv142 4500*3.2 * 0.4 * Min(142/166, 1) * 2063/80000 = 127.06 / 127

    pt3:
    cptsize = 0.5
    attacker Lv200 4500*3.2 * 0.5 * (14837/80000 + 14837/80000) = 2670.66 / 2670

    3. If you are not in any pt

    exp = mobexp*3.2 * 0.8 * dmg%

    4. If you are not in any pt and Last hit

    exp = mobexp*3.2 * (0.8 * dmg% + 0.2)

    damages
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    pt1:
    attacker Lv190 4202/80000 (113 + 1883 + 2206)
    leecher Lv139
    leecher Lv142

    unpt'd:
    Lv200 40441/80000
    Lv200 Last hit 35357/80000 (80000 - 4202 - 40441)

    exp gain (theoretical / real exp)
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    pt1:
    cptsize = 0.3125
    avglv = Floor( (139 + 190 + 142) / 3 ) = 157
    attacker Lv190 4500*3.2 * 0.3125 * (4202/80000 + 4202/80000) = 472.72 / 472
    leecher Lv139 4500*3.2 * 0.3125 * Min(139/157, 1) * 4202/80000 = 209.26 / 209
    leecher Lv142 4500*3.2 * 0.3125 * Min(142/157, 1) * 4202/80000 = 213.78 / 213

    unpt'd:
    Lv200 4500*3.2 * (0.8 * 40441/80000) = 5823.50 / 5823
    Lv200 Last hit 4500*3.2 * (0.8 * 35357/80000 + 0.2) = 7971.40 / 7971

    5. If someone in pt died and stay in the map

    N of cptsize and average party level degrade to those who are alive.
    e.g. In a 3 man pt 1 member is dead, cptsize = (1.1 + 0.05 * 2) / 3 = 0.4 instead of (1.1 + 0.05 * 3) / 4 = 0.3125
    e.g. In a 4 man pt 3 members are dead, cptsize = 0.5

    dmg% and party total dmg% remain unchanged (meaning, dead attackers' dmg% still count into party total dmg%)

    damages
    [​IMG]
    [​IMG]
    pt1:
    attacker Lv139 1/80000 (80000 - 79999)
    attacker Lv190 dead 79999/80000
    leecher Lv142

    exp gain (theoretical / real exp)
    [​IMG]
    [​IMG]
    pt1:
    cptsize = 0.4
    avglv = Floor( (139 + 142) / 2 ) = 140
    attacker Lv139 4500*3.2 * 0.4 * (80000/80000 + 1/80000) = 5760.07 / 5759
    leecher Lv142 4500*3.2 * 0.4 * Min(142/140, 1) = 5760 / 5759

    6. If someone in pt left the map

    Anyone leaving the map is seen as outside pt. N of cptsize decreases and his dmg% is deducted from party total dmg%.
    -----

    Another experiment
    damages
    [​IMG]
    [​IMG] [​IMG]
    [​IMG]
    pt1
    attacker Lv200 dead 16547/80000 (6016 + 10531)
    attacker Lv142 leave map 4709/80000
    leecher Lv139 +HS

    pt2
    attacker Lv200 +HS 9612/80000
    attacker Lv190 +HS leave pt and Last hit 49132/80000 (80000 - 16547 - 4709 - 9612)

    exp gain
    [​IMG]
    [​IMG]
    [​IMG]
    pt1
    cptsize = 0.5
    avglv = 139
    leecher Lv139 4500*3.2 * 0.5 * Min(139/139, 1) * 16547/80000 * 1.1 = 1638.15 / 1638
    pt2
    cptsize = 0.5
    attacker Lv200 4500*3.2 * 0.5 * (9612/80000 + 9612/80000) * 1.1 = 1903.17 / 1903

    unpt'd
    Lv190 Last hit 4500*3.2 * (0.8 * 49132/80000 + 0.2) * 1.1 = 10950.50 / 10950


    Extra

    - To reflect on one of Sylafia's finding: leecher exp is capped at half of the exp mage gets?
    Yes when the single mage does 100% damage on mobs. In this situation exp formulas can be simplified as following:
    mage exp = mobexp*3.2 * cptsize * (1 + dmg%) = mobexp*3.2 * cptsize * 2
    leecher exp = mobexp*3.2 * cptsize * Min(lv/avglv, 1), max at leecher level >= average party level, exp = mobexp*3.2 * cptsize * 1



    In your dream, beside a fire in a great hall you start dancing with balrog. You think about those people you met who have quit, who are banned, who are still active on the field, their words, those times you've made together, and the exp formulas. Sometimes Rich Text Editor comes to your dream, throwing you unexpected BBcode tags. When you see those weird Spoilers out of nowhere you realize it's not reality. You wake up, open the BBcode Editor, say shiiit and start to remove those dummy tags manually.
     
    BusControl and Zenoooo like this.
  2. Zenoooo
    Offline

    Zenoooo Donator

    Joined:
    Apr 2, 2015
    Messages:
    1,218
    Likes Received:
    657
    Gender:
    Female
    Country Flag:
    IGN:
    Jan 2015
    Level:
    -
    Guild:
    Oct 2017
    should be in Guides forum
     
    Last edited: Oct 8, 2024
  3. NehZu
    Offline

    NehZu Well-Known Member

    Joined:
    Dec 10, 2023
    Messages:
    229
    Likes Received:
    369
    Gender:
    Male
    Country Flag:
    you two would make a nice couple.
     
  4. nomade
    Offline

    nomade Well-Known Member

    Joined:
    Jun 22, 2021
    Messages:
    162
    Likes Received:
    157
    Location:
    Chief's oases
    Country Flag:
    Level:
    A
    because it's not accurate and I hope there will be some discussion

    ??
     

Share This Page