A Scholar's Education (Guide)

言語: JP EN DE FR
2010-06-21
New Items
users online
フォーラム » FFXI » Jobs » Scholar » A Scholar's Education (Guide)
A Scholar's Education (Guide)
First Page 2 3 ... 97 98 99 100 101
 Asura.Shaedhen
Offline
サーバ: Asura
Game: FFXI
user: Shadowwww
Posts: 86
By Asura.Shaedhen 2022-11-23 06:52:35  
Sylph.Reain said: »
The Wind-50% there actually means geomancy resistance 50%.
Thanks ! That make more sense then.

Ramuh.Austar said: »
...
Is your optimizer available to download somewhere ? I'd like to play a bit with it and try different things for my burst sets.
[+]
 Asura.Sechs
Offline
サーバ: Asura
Game: FFXI
user: Akumasama
Posts: 10068
By Asura.Sechs 2022-11-25 03:17:43  
Ramuh.Austar said: »
They do without agwu and +3 empyrean. I don't have them added at the moment, but I can check later if you have specifics.
Would love to see the results you get with this pool of available items
1) Unaugmented Agwu set
2) Amalric+1 set
3) Arbatel+2 set
4) Merlinic augmented set (see spoiler for stats)

Also specifically for Helix, do you have a tier list of the three main waist options I can think of? Acuity+1 R15, Skrymir+1, Sacro Cord.

Merlinic augs


I get the strong feeling there's no point updating my very old nuking set, unless I get past a certain Agwu level (I would assume at least R20 on the relevant pieces)



Also, what do you people say with Akademos (A) + Enki Strap, vs Bunzi R0 + Ammurapi?
I feel the former would be slightly more damage, but only in situations where you can afford the pretty big loss in terms of Macc.
Anywhere else where Macc would matter, the latter combination should win.
 Ramuh.Austar
Offline
サーバ: Ramuh
Game: FFXI
user: Austar
Posts: 10481
By Ramuh.Austar 2022-11-25 09:30:21  
Asura.Sechs said: »
Ramuh.Austar said: »
They do without agwu and +3 empyrean. I don't have them added at the moment, but I can check later if you have specifics.
Would love to see the results you get with this pool of available items
1) Unaugmented Agwu set
2) Amalric+1 set
3) Arbatel+2 set
4) Merlinic augmented set (see spoiler for stats)

Also specifically for Helix, do you have a tier list of the three main waist options I can think of? Acuity+1 R15, Skrymir+1, Sacro Cord.

Merlinic augs


I get the strong feeling there's no point updating my very old nuking set, unless I get past a certain Agwu level (I would assume at least R20 on the relevant pieces)



Also, what do you people say with Akademos (A) + Enki Strap, vs Bunzi R0 + Ammurapi?
I feel the former would be slightly more damage, but only in situations where you can afford the pretty big loss in terms of Macc.
Anywhere else where Macc would matter, the latter combination should win.
If you have a full list of available gear, I can run it. What kind of target are you looking at? Just Apex or bursting on sortie/ongo stuff?
 Asura.Sechs
Offline
サーバ: Asura
Game: FFXI
user: Akumasama
Posts: 10068
By Asura.Sechs 2022-11-26 07:39:29  
Ramuh.Austar said: »
If you have a full list of available gear, I can run it. What kind of target are you looking at? Just Apex or bursting on sortie/ongo stuff?
I was thinking about something like Ongo V20, but feel free to use any target you want.

Here is the full list of available gear that I can think of.
Hopefully I didn't forget anything of what I have available.
Thanks in advance!


Waist part is only for Helix of course.
I assume obi is gonna win every time for the elementally-alligned nukes.
 Cerberus.Shadowmeld
Offline
サーバ: Cerberus
Game: FFXI
Posts: 1775
By Cerberus.Shadowmeld 2022-11-26 08:56:31  
Get an ongo v1 win and augment agwus up to r15. It really would help
 Asura.Sechs
Offline
サーバ: Asura
Game: FFXI
user: Akumasama
Posts: 10068
By Asura.Sechs 2022-11-26 09:23:03  
I have Ongo V20 win Shadow, but RP won't magically appear on my gear with a snap of my fingers.

I used around 300k Segments the past few weeks to cap several other items to R25.
Now my segments are low and either way I'm not able to solo Ongo V20 RP
I might be able to do 6% HP with a solo SC from my SCH, but I need to test it and either way I have no segs atm so I'm gonna have to farm segs for the upcoming weeks.


Which brings back to my initial question: is there space for improvement on my old, outdated MBB set? Or should I simply not bother until Agwu is past a certain Rank?
Which is exactely why I asked Austar if he can be bothered to use his tool with my list of available gear.

If, like I suspect, the result will be to just leave my set as it is, then I'll just give up tryin to update it until Agwu is augmented :D
 Ramuh.Austar
Offline
サーバ: Ramuh
Game: FFXI
user: Austar
Posts: 10481
By Ramuh.Austar 2022-11-26 10:21:12  
Are you trying to do 6% solo without any buffs?

With your gear list and assuming regular buffs for V20: 2H INT songs, 2H INT and -MDB GEO, Crooked Wizard's, Impact, Burn, Vidohunir, and Rayke active:

Stone V
ItemSet 388476

Although metamorph ring +1 is really close and pulls ahead when buffs drop. R0 agwu legs also are pretty close to your merlinic, so you could honestly probably just ditch merlinic completely. The helix damage values on BG stated need verification, but looks like individual pages are fine, so I'll run a check on those.
[+]
 Asura.Toralin
Offline
サーバ: Asura
Game: FFXI
user: toralin
Posts: 1394
By Asura.Toralin 2022-11-26 10:56:19  
Asura.Sechs said: »
I have Ongo V20 win Shadow, but RP won't magically appear on my gear with a snap of my fingers.

I used around 300k Segments the past few weeks to cap several other items to R25.
Now my segments are low and either way I'm not able to solo Ongo V20 RP
I might be able to do 6% HP with a solo SC from my SCH, but I need to test it and either way I have no segs atm so I'm gonna have to farm segs for the upcoming weeks.


Which brings back to my initial question: is there space for improvement on my old, outdated MBB set? Or should I simply not bother until Agwu is past a certain Rank?
Which is exactely why I asked Austar if he can be bothered to use his tool with my list of available gear.

If, like I suspect, the result will be to just leave my set as it is, then I'll just give up tryin to update it until Agwu is augmented :D
Run + SCH for 6% on ongo

Gambit rayke helix don’t tp it on RUN. Regen5 should keep a properly geared run up fine
 Asura.Hya
Offline
サーバ: Asura
Game: FFXI
user: HyaAsura
Posts: 313
By Asura.Hya 2022-11-26 11:18:33  
With a RUN to give you Rayke and Gambit you could bring V20 Ongo down to ~70% pretty easily. For the purpose of farming RP, I wouldn't drop it to below 75% to avoid the pet though. Ygnas can solo heal this, you don't even need to cast Regen V if you want to be lazy. You are timing out on this anyways, so there's no reason not to bring Ongo to a lower HP% to get a (slightly) higher RP reward threshold.
 Ramuh.Austar
Offline
サーバ: Ramuh
Game: FFXI
user: Austar
Posts: 10481
By Ramuh.Austar 2022-11-26 12:39:31  
@Sechs

If you're just going in to burst a Geohelix II, if you can bring a RUN that can at least Rayke, this set with no other buffs besides food gets pretty close to capped damage.

ItemSet 388495
[+]
 Asura.Sechs
Offline
サーバ: Asura
Game: FFXI
user: Akumasama
Posts: 10068
By Asura.Sechs 2022-11-26 14:17:42  
Thanks a lot everyone!
 Bismarck.Yvan
Offline
サーバ: Bismarck
Game: FFXI
user: yvan
Posts: 46
By Bismarck.Yvan 2022-11-26 17:01:56  
Asura.Sechs said: »
Ramuh.Austar said: »
If you have a full list of available gear, I can run it. What kind of target are you looking at? Just Apex or bursting on sortie/ongo stuff?
I was thinking about something like Ongo V20, but feel free to use any target you want.

Here is the full list of available gear that I can think of.
Hopefully I didn't forget anything of what I have available.
Thanks in advance!


Waist part is only for Helix of course.
I assume obi is gonna win every time for the elementally-alligned nukes.

Would be interested in seeing how Mpaca's Staff does as well. Is there anywhere we can get the optimizer to play around with different sets?
 Ramuh.Austar
Offline
サーバ: Ramuh
Game: FFXI
user: Austar
Posts: 10481
By Ramuh.Austar 2022-11-26 17:15:23  
Bismarck.Yvan said: »
Asura.Sechs said: »
Ramuh.Austar said: »
If you have a full list of available gear, I can run it. What kind of target are you looking at? Just Apex or bursting on sortie/ongo stuff?
I was thinking about something like Ongo V20, but feel free to use any target you want.

Here is the full list of available gear that I can think of.
Hopefully I didn't forget anything of what I have available.
Thanks in advance!


Waist part is only for Helix of course.
I assume obi is gonna win every time for the elementally-alligned nukes.

Would be interested in seeing how Mpaca's Staff does as well. Is there anywhere we can get the optimizer to play around with different sets?
R0 staff doesn't beat R0 club.

As far as the optimizer, it isn't very user friendly. I don't have an interface for it and don't care to make one, so you'd have to do a little bit of modifying for gear, mob stats, and buffs
 Bismarck.Yvan
Offline
サーバ: Bismarck
Game: FFXI
user: yvan
Posts: 46
By Bismarck.Yvan 2022-11-26 19:32:02  
I'm not worried about having to make any modifications but would like to give it a shot if you don't mind sharing.
 Ramuh.Austar
Offline
サーバ: Ramuh
Game: FFXI
user: Austar
Posts: 10481
By Ramuh.Austar 2022-11-26 19:40:02  
Bismarck.Yvan said: »
I'm not worried about having to make any modifications but would like to give it a shot if you don't mind sharing.

Should only have to mess with the variables at the top, spell base damage functions, and gear.

I would suggest using notepad++ or a more robust editor like VS Code. You can run online if you don't want to install python 3
https://www.tutorialspoint.com/execute_python3_online.php works well
Code
from itertools import product
from math import floor

base_int = 114  # Base, GEO, BRD
base_macc = 456 + 42 + 15  # Dark Arts/Merits/Master, Gifts, Klimaform
target_int = 425
mab_buffs = 0  # Roll
target_mdb = 0

sc_multiplier = 1.75
target_mdt = 0.8
day_weather = 1.25

macc_required = 1060 - 100  # -100 for Burst


# Stone V
# def dINT(dint):
#     if dint < 50:
#         d = dint
#         v = 650
#         m = 6
#     elif dint < 100:
#         d = dint - 50
#         v = 950
#         m = 5
#     elif dint < 200:
#         d = dint - 100
#         v = 1200
#         m = 4
#     elif dint < 300:
#         d = dint - 200
#         v = 1600
#         m = 3
#     elif dint < 400:
#         d = dint - 300
#         v = 1900
#         m = 2
#     elif dint < 500:
#         d = dint - 400
#         v = 2
#         m = 1

#     return floor(v + d * m)

# Helix II
def dINT(dint):
    if dint < 50:
        d = dint
        v = 75
        m = 2
    elif dint < 100:
        d = dint - 50
        v = 175
        m = 1
    else:
        d = dint - 100
        v = 225
        m = 0

    return floor(v + d * m)


def dACC(dint):
    if dint < -70:
        d = 0
        m = 0
        b = 0
    elif dint < -30:
        d = dint - -70
        m = 0.25
        b = 0
    elif dint < -10:
        d = dint - -30
        m = 0.5
        b = 10
    elif dint < 11:
        d = dint - -10
        m = 1
        b = 20
    elif dint < 31:
        d = dint - 11
        m = 0.5
        b = 10
    elif dint < 71:
        d = dint - 31
        m = 0.25
        b = 50
    else:
        d = 0
        m = 0
        b = 60

    return floor(d * m) + b


def amalric(set_count):
    if set_count > 1:
        return 10 * set_count
    else:
        return 0


def af_set(set_count):
    if set_count > 1:
        return 15 * (set_count - 1)
    else:
        return 0


# a function to calculate the sum of some stat for an equipment_set
def stat_sum(equipment_set, stat):
    return sum(item.get(stat, 0) for item in equipment_set)


def main():
    # equipment is grouped up into sub-lists by slot name
    equipment = [
        [
            {"Name": "C. Snow Cone", "INT": 5, "Magic Atk. Bonus": 13},
            {"Name": "Tropical Crepe", "INT": 2, "Magic Accuracy": 90},
        ],
        [
            {
                "Name": "Maxentius",
                "INT": 15 + 13,
                "Magic Accuracy": 40 + 250 + 38,
                "Magic Atk. Bonus": 21 + 38,
                "Magic Damage": 232,
                "Magic Burst Damage": 4,
                # Ammurapi Shield
            },
            {
                "Name": "Daybreak",
                "INT": 13,
                "Magic Accuracy": 40 + 242 + 38,
                "Magic Atk. Bonus": 40 + 38,
                "Magic Damage": 241,
                # "Affinity": 50,
                # Ammurapi Shield
            },
            {
                "Name": "Bunzi's Rod",
                "INT": 15 + 13,
                "Magic Accuracy": 40 + 255 + 38,
                "Magic Atk. Bonus": 35 + 38,
                "Magic Damage": 248,
                "Magic Burst Damage": 10,
                # Ammurapi Shield
            },
            {
                "Name": "Mpaca's Staff",
                "INT": 15 + 10,
                "Magic Accuracy": 40 + 255 + 10,
                "Magic Atk. Bonus": 35,
                "Magic Damage": 263,
                "Magic Burst Damage II": 2,
                # Enki Strap
            },
        ],
        [
            {"Name": "Ghastly Tathlum +1", "Magic Damage": 11 + 10, "INT": 6 + 5},
            {
                "Name": "Pemphredo Tathlum",
                "INT": 4,
                "Magic Accuracy": 8,
                "Magic Atk. Bonus": 4,
            },
        ],
        [
            {
                "Name": "Arbatel Bonnet +2",
                "INT": 33,
                "Magic Accuracy": 51,
                "Magic Atk. Bonus": 46,
                "Magic Damage": 21,
            },
            {
                "Name": "Peda. M.Board +3",
                "INT": 39,
                "Magic Accuracy": 37 + 15,
                "Magic Atk. Bonus": 49,
                "Elemental Magic Skill": 19,
                "Magic Burst Damage II": 4,
            },
            {
                "Name": "Agwu's Cap",
                "INT": 33,
                "Magic Accuracy": 40,
                "Magic Atk. Bonus": 35,
                "Magic Damage": 20,
                "Magic Burst Damage": 7,
            },
            {
                "Name": "C. Palug Crown",
                "INT": 34,
                "Magic Accuracy": 50,
                "Magic Atk. Bonus": 45,
            },
            {
                "Name": "Merlinic Hood",
                "INT": 29,
                "Magic Accuracy": 15 + 20,
                "Magic Atk. Bonus": 10 + 30,
                "Magic Burst Damage": 7,
            },
        ],
        [
            {
                "Name": "Arbatel Gown +2",
                "INT": 45,
                "Magic Accuracy": 54,
                "Magic Atk. Bonus": 54,
                "Magic Damage": 24,
            },
            {
                "Name": "Agwu's Robe",
                "INT": 47,
                "Magic Accuracy": 40,
                "Magic Atk. Bonus": 35,
                "Magic Damage": 20,
                "Magic Burst Damage": 10,
            },
            {
                "Name": "Amalric Doublet +1",
                "INT": 38,
                "Magic Accuracy": 33 + 20,
                "Magic Atk. Bonus": 33 + 20,
                "Set Bonus": 1,
            },
            {
                "Name": "Merlinic Jubbah",
                "INT": 40 + 5,
                "Magic Accuracy": 20 + 15,
                "Magic Atk. Bonus": 20 + 16,
                "Magic Burst Damage": 9,
            },
        ],
        [
            {
                "Name": "Arbatel Bracers +2",
                "INT": 31,
                "Magic Accuracy": 52,
                "Magic Atk. Bonus": 47,
                "Magic Damage": 22,
                "Magic Burst Damage": 10,
            },
            {
                "Name": "Agwu's Gages",
                "INT": 33,
                "Magic Accuracy": 40,
                "Magic Atk. Bonus": 35,
                "Magic Damage": 20,
                "Magic Burst Damage": 8,
            },
            {
                "Name": "Amalric Gages +1",
                "INT": 24 + 12,
                "Magic Accuracy": 20,
                "Magic Atk. Bonus": 33 + 20,
                "Elemental Magic Skill": 14,
                "Magic Burst Damage II": 6,
                "Set Bonus": 1,
            },
        ],
        [
            {
                "Name": "Arbatel Pants +2",
                "INT": 48,
                "Magic Accuracy": 53 + 31,
                "Magic Atk. Bonus": 48,
                "Magic Damage": 23,
            },
            {
                "Name": "Agwu's Slops",
                "INT": 49,
                "Magic Accuracy": 40,
                "Magic Atk. Bonus": 35,
                "Magic Damage": 20,
                "Magic Burst Damage": 9,
            },
            {
                "Name": "Merlinic Shalwar",
                "INT": 43,
                "Magic Accuracy": 20 + 10,
                "Magic Damage": 13,
                "Magic Atk. Bonus": 15 + 37,
                "Magic Burst Damage": 9,
            },
            {
                "Name": "Amalric Slops +1",
                "INT": 40,
                "Magic Accuracy": 20,
                "Magic Atk. Bonus": 40 + 20,
                "Set Bonus": 1,
            },
        ],
        [
            {
                "Name": "Arbatel Loafers +2",
                "INT": 29,
                "Magic Accuracy": 50,
                "Magic Atk. Bonus": 45,
                "Magic Damage": 20,
                "Elemental Magic Skill": 28,
                "Magic Burst Damage II": 4,
                "Klimaform": 20,
            },
            {
                "Name": "Agwu's Pigaches",
                "INT": 30,
                "Magic Accuracy": 40,
                "Magic Atk. Bonus": 35,
                "Magic Damage": 20,
                "Magic Burst Damage": 6,
            },
            {
                "Name": "Amalric Nails +1",
                "INT": 21,
                "Magic Damage": 20,
                "Magic Accuracy": 20,
                "Magic Atk. Bonus": 32 + 20,
                "Set Bonus": 1,
            },
        ],
        [
            # {"Name": "Sibyl Scarf", "INT": 10, "Magic Atk. Bonus": 10},
            # {
            #     "Name": "Argute Stole +2",
            #     "Magic Accuracy": 30,
            #     "Magic Burst Damage": 10,
            #     "INT": 15,
            #     "Magic Damage": 25,
            # },
            {
                "Name": "Mizu. Kubikazari",
                "INT": 4,
                "Magic Atk. Bonus": 8,
                "Magic Burst Damage": 10,
            },
            {"Name": "Quanpur Necklace", "Magic Atk. Bonus": 7, "Affinity": 5},
        ],
        [
            {
                "Name": "Sacro Cord",
                "INT": 8,
                "Magic Accuracy": 8,
                "Magic Atk. Bonus": 8,
            },
            {
                "Name": "Skrymir Cord +1",
                "Magic Accuracy": 7,
                "Magic Atk. Bonus": 7,
                "Magic Damage": 35,
            },
            {"Name": "Acuity Belt +1", "INT": 6 + 7 + 10, "Magic Accuracy": 15},
        ],
        [
            {"Name": "Regal Earring", "INT": 10, "Magic Atk. Bonus": 7, "AF Set": 1},
            {
                "Name": "Barkaro. Earring",
                "INT": 3,
                "Magic Accuracy": 8,
                "Magic Atk. Bonus": 8,
            },
        ],
        [
            {
                "Name": "Malignance Earring",
                "INT": 8,
                "Magic Accuracy": 10,
                "Magic Atk. Bonus": 8,
            }
        ],
        [
            {"Name": "Mujin Band", "Magic Burst Damage II": 5},
            {"Name": "Metamor. Ring +1", "INT": 6 + 10, "Magic Accuracy": 5 + 10},
            {"Name": "Locus Ring", "Magic Burst Damage": 5},
        ],
        [
            # {"Name": "Mujin Band", "Magic Burst Damage II": 5},
            {"Name": "Freke Ring", "INT": 10, "Magic Atk. Bonus": 8},
            {"Name": "Locus Ring", "Magic Burst Damage": 5},
        ],
        [
            {
                "Name": "Lugh's Cape",
                "INT": 20 + 10,
                "Magic Accuracy": 20,
                "Magic Damage": 20,
                "Magic Atk. Bonus": 10,
            }
        ],
    ]

    # User itertools method product to get every potential set of equipment
    # https://d...content-available-to-author-only...n.org/3/library/itertools.html#itertools.product
    equipment_sets = product(*equipment)
    # with the usage of list comprehension
    valid_equipment_sets = [
        equipment_set
        for equipment_set in equipment_sets
        if base_macc
        + stat_sum(equipment_set, "Magic Accuracy")
        + stat_sum(equipment_set, "Elemental Magic Skill")
        + dACC(base_int + stat_sum(equipment_set, "INT") - target_int)
        + af_set(stat_sum(equipment_set, "AF Set"))
        >= macc_required
    ]
    # find the equipment set with the highest sum of the stat 'RapidShot'
    top_valid_equipment_set = max(
        valid_equipment_sets,
        key=lambda x: (
            floor(
                floor(
                    floor(
                        floor(
                            floor(
                                floor(
                                    floor(
                                        (
                                            stat_sum(x, "Magic Damage")
                                            + dINT(
                                                base_int
                                                + stat_sum(x, "INT")
                                                - target_int
                                            )
                                        )
                                        * (1 + stat_sum(x, "Affinity") / 100)
                                    )
                                    * sc_multiplier
                                )
                                * (
                                    1
                                    + (
                                        min(40, stat_sum(x, "Magic Burst Damage"))
                                        + stat_sum(x, "Magic Burst Damage II")
                                        + 22
                                    )
                                    / 100
                                )
                            )
                            * day_weather
                        )
                        * (
                            (
                                1
                                + (
                                    mab_buffs
                                    + stat_sum(x, "Magic Atk. Bonus")
                                    + amalric(stat_sum(x, "Set Bonus"))
                                    + 60
                                )
                                / 100
                            )
                            / (1 + target_mdb / 100)
                        )
                    )
                    * target_mdt
                )
                * (1 + stat_sum(x, "Klimaform") / 100)
            )
        ),
    )

    print(len(valid_equipment_sets), "valid sets.", end="\n\n")
    print("Top Valid Set:", *top_valid_equipment_set, sep="\n", end="\n\n")
    print(
        "Magic Damage:",
        stat_sum(top_valid_equipment_set, "Magic Damage"),
        sep="\n",
    )
    print("INT:", stat_sum(top_valid_equipment_set, "INT") + base_int, sep="\n")
    print(
        "Magic Accuracy:",
        base_macc
        + stat_sum(top_valid_equipment_set, "Magic Accuracy")
        + stat_sum(top_valid_equipment_set, "Elemental Magic Skill")
        + dACC(base_int + stat_sum(top_valid_equipment_set, "INT") - target_int)
        + af_set(stat_sum(top_valid_equipment_set, "AF Set")),
        sep="\n",
    )
    print(
        "Magic Atk. Bonus:",
        stat_sum(top_valid_equipment_set, "Magic Atk. Bonus")
        + amalric(stat_sum(top_valid_equipment_set, "Set Bonus"))
        + mab_buffs
        + 60,
        sep="\n",
    )
    print(
        "Magic Burst Damage:",
        stat_sum(top_valid_equipment_set, "Magic Burst Damage"),
        sep="\n",
    )
    print(
        "Magic Burst Damage II:",
        stat_sum(top_valid_equipment_set, "Magic Burst Damage II") + 22,
        sep="\n",
    )
    print()

    print(
        floor(
            floor(
                floor(
                    floor(
                        floor(
                            floor(
                                floor(
                                    (
                                        stat_sum(
                                            top_valid_equipment_set, "Magic Damage"
                                        )
                                        + dINT(
                                            base_int
                                            + stat_sum(top_valid_equipment_set, "INT")
                                            - target_int
                                        )
                                    )
                                    * (
                                        1
                                        + stat_sum(top_valid_equipment_set, "Affinity")
                                        / 100
                                    )
                                )
                                * sc_multiplier
                            )
                            * (
                                1
                                + (
                                    min(
                                        40,
                                        stat_sum(
                                            top_valid_equipment_set,
                                            "Magic Burst Damage",
                                        ),
                                    )
                                    + stat_sum(
                                        top_valid_equipment_set, "Magic Burst Damage II"
                                    )
                                    + 22
                                )
                                / 100
                            )
                        )
                        * day_weather
                    )
                    * (
                        (
                            1
                            + (
                                mab_buffs
                                + stat_sum(top_valid_equipment_set, "Magic Atk. Bonus")
                                + amalric(
                                    stat_sum(top_valid_equipment_set, "Set Bonus")
                                )
                                + 60
                            )
                            / 100
                        )
                        / (1 + target_mdb / 100)
                    )
                )
                * target_mdt
            )
            * (1 + stat_sum(top_valid_equipment_set, "Klimaform") / 100)
        )
    )


main()
[+]
 Bismarck.Yvan
Offline
サーバ: Bismarck
Game: FFXI
user: yvan
Posts: 46
By Bismarck.Yvan 2022-11-26 23:03:41  
Assuming I did everything properly and the values we had earlier are correct. Target Aiti

Updated base INT to 141 (my current int as ML26)
Buffs: 6 Wizards Roll, Geo Int/Acumen and Malaise

Nukes:
Code
{'Name': 'C. Snow Cone', 'INT': 5, 'Magic Atk. Bonus': 13}
{'Name': "Bunzi's Rod r25", 'INT': 28, 'Magic Accuracy': 343, 'Magic Atk. Bonus': 98, 'Magic Damage': 248, 'Magic Burst Damage': 10}
{'Name': 'Ghastly Tathlum +1', 'Magic Damage': 21, 'INT': 11}
{'Name': "Agwu's Cap r25", 'INT': 33, 'Magic Accuracy': 50, 'Magic Atk. Bonus': 58, 'Magic Damage': 33, 'Magic Burst Damage': 7}
{'Name': 'Arbatel Gown +3', 'INT': 50, 'Magic Accuracy': 64, 'Magic Atk. Bonus': 59, 'Magic Damage': 34}
{'Name': "Agwu's Gages r25", 'INT': 33, 'Magic Accuracy': 50, 'Magic Atk. Bonus': 58, 'Magic Damage': 20, 'Magic Burst Damage': 8, 'Magic Burst Damage II': 5}
{'Name': "Agwu's Slops r25", 'INT': 49, 'Magic Accuracy': 50, 'Magic Atk. Bonus': 58, 'Magic Damage': 20, 'Magic Burst Damage': 9}
{'Name': 'Arbatel Loafers +3', 'INT': 34, 'Magic Accuracy': 60, 'Magic Atk. Bonus': 50, 'Magic Damage': 30, 'Elemental Magic Skill': 33, 'Magic Burst Damage II': 5, 'Klimaform': 25}
{'Name': 'Argute Stole +2', 'Magic Accuracy': 30, 'Magic Burst Damage': 10, 'INT': 15, 'Magic Damage': 25}
{'Name': 'Acuity Belt +1', 'INT': 23, 'Magic Accuracy': 15}
{'Name': 'Regal Earring', 'INT': 10, 'Magic Atk. Bonus': 7, 'AF Set': 1}
{'Name': 'Malignance Earring', 'INT': 8, 'Magic Accuracy': 10, 'Magic Atk. Bonus': 8}
{'Name': 'Metamor. Ring +1', 'INT': 16, 'Magic Accuracy': 15}
{'Name': 'Freke Ring', 'INT': 10, 'Magic Atk. Bonus': 8}
{'Name': "Lugh's Cape", 'INT': 30, 'Magic Accuracy': 20, 'Magic Damage': 20, 'Magic Atk. Bonus': 10}


Helix:
Code
{'Name': 'C. Snow Cone', 'INT': 5, 'Magic Atk. Bonus': 13}
{'Name': "Bunzi's Rod r25", 'INT': 28, 'Magic Accuracy': 343, 'Magic Atk. Bonus': 98, 'Magic Damage': 248, 'Magic Burst Damage': 10}
{'Name': 'Ghastly Tathlum +1', 'Magic Damage': 21, 'INT': 11}
{'Name': "Agwu's Cap r25", 'INT': 33, 'Magic Accuracy': 50, 'Magic Atk. Bonus': 58, 'Magic Damage': 33, 'Magic Burst Damage': 7}
{'Name': 'Arbatel Gown +3', 'INT': 50, 'Magic Accuracy': 64, 'Magic Atk. Bonus': 59, 'Magic Damage': 34}
{'Name': 'Arbatel Bracers +3', 'INT': 36, 'Magic Accuracy': 62, 'Magic Atk. Bonus': 52, 'Magic Damage': 32, 'Magic Burst Damage': 15}
{'Name': 'Arbatel Pants +3', 'INT': 53, 'Magic Accuracy': 99, 'Magic Atk. Bonus': 53, 'Magic Damage': 33}
{'Name': 'Arbatel Loafers +3', 'INT': 34, 'Magic Accuracy': 60, 'Magic Atk. Bonus': 50, 'Magic Damage': 30, 'Elemental Magic Skill': 33, 'Magic Burst Damage II': 5, 'Klimaform': 25}
{'Name': 'Argute Stole +2', 'Magic Accuracy': 30, 'Magic Burst Damage': 10, 'INT': 15, 'Magic Damage': 25}
{'Name': 'Skrymir Cord +1', 'Magic Accuracy': 7, 'Magic Atk. Bonus': 7, 'Magic Damage': 35}
{'Name': 'Regal Earring', 'INT': 10, 'Magic Atk. Bonus': 7, 'AF Set': 1}
{'Name': 'Malignance Earring', 'INT': 8, 'Magic Accuracy': 10, 'Magic Atk. Bonus': 8}
{'Name': 'Metamor. Ring +1', 'INT': 16, 'Magic Accuracy': 15}
{'Name': 'Freke Ring', 'INT': 10, 'Magic Atk. Bonus': 8}
{'Name': "Lugh's Cape", 'INT': 30, 'Magic Accuracy': 20, 'Magic Damage': 20, 'Magic Atk. Bonus': 10}


Difference between nuke numbers with Bunzi vs Mpaca Staff (r25) if you wanted to keep Myrkr as an option.

Bunzi r25:
Code
Magic Damage:
451
INT:
541
Magic Accuracy:
1307
Magic Atk. Bonus:
544
Magic Burst Damage:
44
Magic Burst Damage II:
32

18926


Mpaca r25:
Code
Magic Damage:
478
INT:
541
Magic Accuracy:
1291
Magic Atk. Bonus:
500
Magic Burst Damage:
41
Magic Burst Damage II:
29

17663
 Ramuh.Austar
Offline
サーバ: Ramuh
Game: FFXI
user: Austar
Posts: 10481
By Ramuh.Austar 2022-11-26 23:08:09  
you'll want to comment out the waists for non-helix nukes since you should be using obi for those.

marin +1 would probably beat mpaca 25 also if you need a staff

You might have something wrong, though, using only the gear sech's had, so R0 everything and only +2, and no waist(for weather), I get values near that
 Bismarck.Yvan
Offline
サーバ: Bismarck
Game: FFXI
user: yvan
Posts: 46
By Bismarck.Yvan 2022-11-26 23:25:35  
Good catch thanks, that does change this up a bit as we end up at 17136 (bunzi r25 )and 15935 (mpaca r25). mpaca is coming ahead of marin +1 at r24.
 Ramuh.Austar
Offline
サーバ: Ramuh
Game: FFXI
user: Austar
Posts: 10481
By Ramuh.Austar 2022-11-26 23:27:25  
What did you set your variables to? Adding in R25 to agwu and weapons and +3 on emp gear, my results are higher than yours
 Bismarck.Yvan
Offline
サーバ: Bismarck
Game: FFXI
user: yvan
Posts: 46
By Bismarck.Yvan 2022-11-26 23:31:12  
I added 45 int/mab for geo buffs, 12 for wizards roll

based everything off Aiti from earlier in the thread.
set base mdb to 77 (122 + malaise)
set target_int to 494
 Ramuh.Austar
Offline
サーバ: Ramuh
Game: FFXI
user: Austar
Posts: 10481
By Ramuh.Austar 2022-11-26 23:35:05  
change the mdb to -23, default should be 0. if it has 22 bonus, and mailaise brings it to 77, you'd put that 77 - 100 for -23

settings should look like this
Code
base_int = 141 + 45  # 114  # Base + GEO
base_macc = 456 + 42 + 15  # Dark Arts/Merits/Master + Gifts + Klimaform
target_int = 494
mab_buffs = 45 + 12  # GEO + Roll
target_mdb = -23

sc_multiplier = 1.85
target_mdt = 1
day_weather = 1.25

macc_required = 1344 - 100  # -100 for Burst


Code
76536 valid sets.

Top Valid Set:
{'Name': 'C. Snow Cone', 'INT': 5, 'Magic Atk. Bonus': 13}
{'Name': "Bunzi's Rod", 'INT': 28, 'Magic Accuracy': 343, 'Magic Atk. Bonus': 98, 'Magic Damage': 248, 'Magic Burst Damage': 10}
{'Name': 'Ghastly Tathlum +1', 'Magic Damage': 21, 'INT': 11}
{'Name': "Agwu's Cap", 'INT': 33, 'Magic Accuracy': 50, 'Magic Atk. Bonus': 58, 'Magic Damage': 33, 'Magic Burst Damage': 7}
{'Name': 'Arbatel Gown +3', 'INT': 50, 'Magic Accuracy': 64, 'Magic Atk. Bonus': 55, 'Magic Damage': 34}
{'Name': 'Arbatel Bracers +3', 'INT': 36, 'Magic Accuracy': 62, 'Magic Atk. Bonus': 52, 'Magic Damage': 32, 'Magic Burst Damage': 15}
{'Name': 'Arbatel Pants +3', 'INT': 53, 'Magic Accuracy': 99, 'Magic Atk. Bonus': 54, 'Magic Damage': 33}
{'Name': 'Arbatel Loafers +3', 'INT': 34, 'Magic Accuracy': 60, 'Magic Atk. Bonus': 50, 'Magic Damage': 30, 'Elemental Magic Skill': 33, 'Magic Burst Damage II': 5, 'Klimaform': 25}
{'Name': 'Argute Stole +2', 'Magic Accuracy': 30, 'Magic Burst Damage': 10, 'INT': 15, 'Magic Damage': 25}
{'Name': 'Regal Earring', 'INT': 10, 'Magic Atk. Bonus': 7, 'AF Set': 1}
{'Name': 'Malignance Earring', 'INT': 8, 'Magic Accuracy': 10, 'Magic Atk. Bonus': 8}
{'Name': 'Metamor. Ring +1', 'INT': 16, 'Magic Accuracy': 15}
{'Name': 'Freke Ring', 'INT': 10, 'Magic Atk. Bonus': 8}
{'Name': "Lugh's Cape", 'INT': 30, 'Magic Accuracy': 20, 'Magic Damage': 20, 'Magic Atk. Bonus': 10}

Magic Damage:
476
INT:
525
Magic Accuracy:
1349
Magic Atk. Bonus:
530
Magic Burst Damage:
42
Magic Burst Damage II:
27

51811


then you should get marin+1 beating mpaca as well and competitive with bunzi's rod

Code
66197 valid sets.

Top Valid Set:
{'Name': 'C. Snow Cone', 'INT': 5, 'Magic Atk. Bonus': 13}
{'Name': 'Marin Staff +1', 'INT': 47, 'Magic Accuracy': 293, 'Magic Atk. Bonus': 68, 'Magic Damage': 217}
{'Name': 'Ghastly Tathlum +1', 'Magic Damage': 21, 'INT': 11}
{'Name': "Agwu's Cap", 'INT': 33, 'Magic Accuracy': 50, 'Magic Atk. Bonus': 58, 'Magic Damage': 33, 'Magic Burst Damage': 7}
{'Name': "Agwu's Robe", 'INT': 47, 'Magic Accuracy': 50, 'Magic Atk. Bonus': 58, 'Magic Damage': 20, 'Magic Burst Damage': 10}
{'Name': 'Arbatel Bracers +3', 'INT': 36, 'Magic Accuracy': 62, 'Magic Atk. Bonus': 52, 'Magic Damage': 32, 'Magic Burst Damage': 15}
{'Name': 'Arbatel Pants +3', 'INT': 53, 'Magic Accuracy': 99, 'Magic Atk. Bonus': 54, 'Magic Damage': 33}
{'Name': 'Arbatel Loafers +3', 'INT': 34, 'Magic Accuracy': 60, 'Magic Atk. Bonus': 50, 'Magic Damage': 30, 'Elemental Magic Skill': 33, 'Magic Burst Damage II': 5, 'Klimaform': 25}
{'Name': 'Argute Stole +2', 'Magic Accuracy': 30, 'Magic Burst Damage': 10, 'INT': 15, 'Magic Damage': 25}
{'Name': 'Regal Earring', 'INT': 10, 'Magic Atk. Bonus': 7, 'AF Set': 1}
{'Name': 'Malignance Earring', 'INT': 8, 'Magic Accuracy': 10, 'Magic Atk. Bonus': 8}
{'Name': 'Metamor. Ring +1', 'INT': 16, 'Magic Accuracy': 15}
{'Name': 'Freke Ring', 'INT': 10, 'Magic Atk. Bonus': 8}
{'Name': "Lugh's Cape", 'INT': 30, 'Magic Accuracy': 20, 'Magic Damage': 20, 'Magic Atk. Bonus': 10}

Magic Damage:
431
INT:
541
Magic Accuracy:
1289
Magic Atk. Bonus:
503
Magic Burst Damage:
42
Magic Burst Damage II:
27

51508
 Asura.Seizan
Offline
サーバ: Asura
Game: FFXI
user: Seiza
Posts: 124
By Asura.Seizan 2022-11-27 11:09:47  
Ramuh.Austar said: »
Bismarck.Yvan said: »
I'm not worried about having to make any modifications but would like to give it a shot if you don't mind sharing.

Should only have to mess with the variables at the top, spell base damage functions, and gear.

I would suggest using notepad++ or a more robust editor like VS Code. You can run online if you don't want to install python 3
https://www.tutorialspoint.com/execute_python3_online.php works well
Code
from itertools import product
from math import floor

base_int = 114  # Base, GEO, BRD
base_macc = 456 + 42 + 15  # Dark Arts/Merits/Master, Gifts, Klimaform
target_int = 425
mab_buffs = 0  # Roll
target_mdb = 0

sc_multiplier = 1.75
target_mdt = 0.8
day_weather = 1.25

macc_required = 1060 - 100  # -100 for Burst


# Stone V
# def dINT(dint):
#     if dint < 50:
#         d = dint
#         v = 650
#         m = 6
#     elif dint < 100:
#         d = dint - 50
#         v = 950
#         m = 5
#     elif dint < 200:
#         d = dint - 100
#         v = 1200
#         m = 4
#     elif dint < 300:
#         d = dint - 200
#         v = 1600
#         m = 3
#     elif dint < 400:
#         d = dint - 300
#         v = 1900
#         m = 2
#     elif dint < 500:
#         d = dint - 400
#         v = 2
#         m = 1

#     return floor(v + d * m)

# Helix II
def dINT(dint):
    if dint < 50:
        d = dint
        v = 75
        m = 2
    elif dint < 100:
        d = dint - 50
        v = 175
        m = 1
    else:
        d = dint - 100
        v = 225
        m = 0

    return floor(v + d * m)


def dACC(dint):
    if dint < -70:
        d = 0
        m = 0
        b = 0
    elif dint < -30:
        d = dint - -70
        m = 0.25
        b = 0
    elif dint < -10:
        d = dint - -30
        m = 0.5
        b = 10
    elif dint < 11:
        d = dint - -10
        m = 1
        b = 20
    elif dint < 31:
        d = dint - 11
        m = 0.5
        b = 10
    elif dint < 71:
        d = dint - 31
        m = 0.25
        b = 50
    else:
        d = 0
        m = 0
        b = 60

    return floor(d * m) + b


def amalric(set_count):
    if set_count > 1:
        return 10 * set_count
    else:
        return 0


def af_set(set_count):
    if set_count > 1:
        return 15 * (set_count - 1)
    else:
        return 0


# a function to calculate the sum of some stat for an equipment_set
def stat_sum(equipment_set, stat):
    return sum(item.get(stat, 0) for item in equipment_set)


def main():
    # equipment is grouped up into sub-lists by slot name
    equipment = [
        [
            {"Name": "C. Snow Cone", "INT": 5, "Magic Atk. Bonus": 13},
            {"Name": "Tropical Crepe", "INT": 2, "Magic Accuracy": 90},
        ],
        [
            {
                "Name": "Maxentius",
                "INT": 15 + 13,
                "Magic Accuracy": 40 + 250 + 38,
                "Magic Atk. Bonus": 21 + 38,
                "Magic Damage": 232,
                "Magic Burst Damage": 4,
                # Ammurapi Shield
            },
            {
                "Name": "Daybreak",
                "INT": 13,
                "Magic Accuracy": 40 + 242 + 38,
                "Magic Atk. Bonus": 40 + 38,
                "Magic Damage": 241,
                # "Affinity": 50,
                # Ammurapi Shield
            },
            {
                "Name": "Bunzi's Rod",
                "INT": 15 + 13,
                "Magic Accuracy": 40 + 255 + 38,
                "Magic Atk. Bonus": 35 + 38,
                "Magic Damage": 248,
                "Magic Burst Damage": 10,
                # Ammurapi Shield
            },
            {
                "Name": "Mpaca's Staff",
                "INT": 15 + 10,
                "Magic Accuracy": 40 + 255 + 10,
                "Magic Atk. Bonus": 35,
                "Magic Damage": 263,
                "Magic Burst Damage II": 2,
                # Enki Strap
            },
        ],
        [
            {"Name": "Ghastly Tathlum +1", "Magic Damage": 11 + 10, "INT": 6 + 5},
            {
                "Name": "Pemphredo Tathlum",
                "INT": 4,
                "Magic Accuracy": 8,
                "Magic Atk. Bonus": 4,
            },
        ],
        [
            {
                "Name": "Arbatel Bonnet +2",
                "INT": 33,
                "Magic Accuracy": 51,
                "Magic Atk. Bonus": 46,
                "Magic Damage": 21,
            },
            {
                "Name": "Peda. M.Board +3",
                "INT": 39,
                "Magic Accuracy": 37 + 15,
                "Magic Atk. Bonus": 49,
                "Elemental Magic Skill": 19,
                "Magic Burst Damage II": 4,
            },
            {
                "Name": "Agwu's Cap",
                "INT": 33,
                "Magic Accuracy": 40,
                "Magic Atk. Bonus": 35,
                "Magic Damage": 20,
                "Magic Burst Damage": 7,
            },
            {
                "Name": "C. Palug Crown",
                "INT": 34,
                "Magic Accuracy": 50,
                "Magic Atk. Bonus": 45,
            },
            {
                "Name": "Merlinic Hood",
                "INT": 29,
                "Magic Accuracy": 15 + 20,
                "Magic Atk. Bonus": 10 + 30,
                "Magic Burst Damage": 7,
            },
        ],
        [
            {
                "Name": "Arbatel Gown +2",
                "INT": 45,
                "Magic Accuracy": 54,
                "Magic Atk. Bonus": 54,
                "Magic Damage": 24,
            },
            {
                "Name": "Agwu's Robe",
                "INT": 47,
                "Magic Accuracy": 40,
                "Magic Atk. Bonus": 35,
                "Magic Damage": 20,
                "Magic Burst Damage": 10,
            },
            {
                "Name": "Amalric Doublet +1",
                "INT": 38,
                "Magic Accuracy": 33 + 20,
                "Magic Atk. Bonus": 33 + 20,
                "Set Bonus": 1,
            },
            {
                "Name": "Merlinic Jubbah",
                "INT": 40 + 5,
                "Magic Accuracy": 20 + 15,
                "Magic Atk. Bonus": 20 + 16,
                "Magic Burst Damage": 9,
            },
        ],
        [
            {
                "Name": "Arbatel Bracers +2",
                "INT": 31,
                "Magic Accuracy": 52,
                "Magic Atk. Bonus": 47,
                "Magic Damage": 22,
                "Magic Burst Damage": 10,
            },
            {
                "Name": "Agwu's Gages",
                "INT": 33,
                "Magic Accuracy": 40,
                "Magic Atk. Bonus": 35,
                "Magic Damage": 20,
                "Magic Burst Damage": 8,
            },
            {
                "Name": "Amalric Gages +1",
                "INT": 24 + 12,
                "Magic Accuracy": 20,
                "Magic Atk. Bonus": 33 + 20,
                "Elemental Magic Skill": 14,
                "Magic Burst Damage II": 6,
                "Set Bonus": 1,
            },
        ],
        [
            {
                "Name": "Arbatel Pants +2",
                "INT": 48,
                "Magic Accuracy": 53 + 31,
                "Magic Atk. Bonus": 48,
                "Magic Damage": 23,
            },
            {
                "Name": "Agwu's Slops",
                "INT": 49,
                "Magic Accuracy": 40,
                "Magic Atk. Bonus": 35,
                "Magic Damage": 20,
                "Magic Burst Damage": 9,
            },
            {
                "Name": "Merlinic Shalwar",
                "INT": 43,
                "Magic Accuracy": 20 + 10,
                "Magic Damage": 13,
                "Magic Atk. Bonus": 15 + 37,
                "Magic Burst Damage": 9,
            },
            {
                "Name": "Amalric Slops +1",
                "INT": 40,
                "Magic Accuracy": 20,
                "Magic Atk. Bonus": 40 + 20,
                "Set Bonus": 1,
            },
        ],
        [
            {
                "Name": "Arbatel Loafers +2",
                "INT": 29,
                "Magic Accuracy": 50,
                "Magic Atk. Bonus": 45,
                "Magic Damage": 20,
                "Elemental Magic Skill": 28,
                "Magic Burst Damage II": 4,
                "Klimaform": 20,
            },
            {
                "Name": "Agwu's Pigaches",
                "INT": 30,
                "Magic Accuracy": 40,
                "Magic Atk. Bonus": 35,
                "Magic Damage": 20,
                "Magic Burst Damage": 6,
            },
            {
                "Name": "Amalric Nails +1",
                "INT": 21,
                "Magic Damage": 20,
                "Magic Accuracy": 20,
                "Magic Atk. Bonus": 32 + 20,
                "Set Bonus": 1,
            },
        ],
        [
            # {"Name": "Sibyl Scarf", "INT": 10, "Magic Atk. Bonus": 10},
            # {
            #     "Name": "Argute Stole +2",
            #     "Magic Accuracy": 30,
            #     "Magic Burst Damage": 10,
            #     "INT": 15,
            #     "Magic Damage": 25,
            # },
            {
                "Name": "Mizu. Kubikazari",
                "INT": 4,
                "Magic Atk. Bonus": 8,
                "Magic Burst Damage": 10,
            },
            {"Name": "Quanpur Necklace", "Magic Atk. Bonus": 7, "Affinity": 5},
        ],
        [
            {
                "Name": "Sacro Cord",
                "INT": 8,
                "Magic Accuracy": 8,
                "Magic Atk. Bonus": 8,
            },
            {
                "Name": "Skrymir Cord +1",
                "Magic Accuracy": 7,
                "Magic Atk. Bonus": 7,
                "Magic Damage": 35,
            },
            {"Name": "Acuity Belt +1", "INT": 6 + 7 + 10, "Magic Accuracy": 15},
        ],
        [
            {"Name": "Regal Earring", "INT": 10, "Magic Atk. Bonus": 7, "AF Set": 1},
            {
                "Name": "Barkaro. Earring",
                "INT": 3,
                "Magic Accuracy": 8,
                "Magic Atk. Bonus": 8,
            },
        ],
        [
            {
                "Name": "Malignance Earring",
                "INT": 8,
                "Magic Accuracy": 10,
                "Magic Atk. Bonus": 8,
            }
        ],
        [
            {"Name": "Mujin Band", "Magic Burst Damage II": 5},
            {"Name": "Metamor. Ring +1", "INT": 6 + 10, "Magic Accuracy": 5 + 10},
            {"Name": "Locus Ring", "Magic Burst Damage": 5},
        ],
        [
            # {"Name": "Mujin Band", "Magic Burst Damage II": 5},
            {"Name": "Freke Ring", "INT": 10, "Magic Atk. Bonus": 8},
            {"Name": "Locus Ring", "Magic Burst Damage": 5},
        ],
        [
            {
                "Name": "Lugh's Cape",
                "INT": 20 + 10,
                "Magic Accuracy": 20,
                "Magic Damage": 20,
                "Magic Atk. Bonus": 10,
            }
        ],
    ]

    # User itertools method product to get every potential set of equipment
    # https://d...content-available-to-author-only...n.org/3/library/itertools.html#itertools.product
    equipment_sets = product(*equipment)
    # with the usage of list comprehension
    valid_equipment_sets = [
        equipment_set
        for equipment_set in equipment_sets
        if base_macc
        + stat_sum(equipment_set, "Magic Accuracy")
        + stat_sum(equipment_set, "Elemental Magic Skill")
        + dACC(base_int + stat_sum(equipment_set, "INT") - target_int)
        + af_set(stat_sum(equipment_set, "AF Set"))
        >= macc_required
    ]
    # find the equipment set with the highest sum of the stat 'RapidShot'
    top_valid_equipment_set = max(
        valid_equipment_sets,
        key=lambda x: (
            floor(
                floor(
                    floor(
                        floor(
                            floor(
                                floor(
                                    floor(
                                        (
                                            stat_sum(x, "Magic Damage")
                                            + dINT(
                                                base_int
                                                + stat_sum(x, "INT")
                                                - target_int
                                            )
                                        )
                                        * (1 + stat_sum(x, "Affinity") / 100)
                                    )
                                    * sc_multiplier
                                )
                                * (
                                    1
                                    + (
                                        min(40, stat_sum(x, "Magic Burst Damage"))
                                        + stat_sum(x, "Magic Burst Damage II")
                                        + 22
                                    )
                                    / 100
                                )
                            )
                            * day_weather
                        )
                        * (
                            (
                                1
                                + (
                                    mab_buffs
                                    + stat_sum(x, "Magic Atk. Bonus")
                                    + amalric(stat_sum(x, "Set Bonus"))
                                    + 60
                                )
                                / 100
                            )
                            / (1 + target_mdb / 100)
                        )
                    )
                    * target_mdt
                )
                * (1 + stat_sum(x, "Klimaform") / 100)
            )
        ),
    )

    print(len(valid_equipment_sets), "valid sets.", end="\n\n")
    print("Top Valid Set:", *top_valid_equipment_set, sep="\n", end="\n\n")
    print(
        "Magic Damage:",
        stat_sum(top_valid_equipment_set, "Magic Damage"),
        sep="\n",
    )
    print("INT:", stat_sum(top_valid_equipment_set, "INT") + base_int, sep="\n")
    print(
        "Magic Accuracy:",
        base_macc
        + stat_sum(top_valid_equipment_set, "Magic Accuracy")
        + stat_sum(top_valid_equipment_set, "Elemental Magic Skill")
        + dACC(base_int + stat_sum(top_valid_equipment_set, "INT") - target_int)
        + af_set(stat_sum(top_valid_equipment_set, "AF Set")),
        sep="\n",
    )
    print(
        "Magic Atk. Bonus:",
        stat_sum(top_valid_equipment_set, "Magic Atk. Bonus")
        + amalric(stat_sum(top_valid_equipment_set, "Set Bonus"))
        + mab_buffs
        + 60,
        sep="\n",
    )
    print(
        "Magic Burst Damage:",
        stat_sum(top_valid_equipment_set, "Magic Burst Damage"),
        sep="\n",
    )
    print(
        "Magic Burst Damage II:",
        stat_sum(top_valid_equipment_set, "Magic Burst Damage II") + 22,
        sep="\n",
    )
    print()

    print(
        floor(
            floor(
                floor(
                    floor(
                        floor(
                            floor(
                                floor(
                                    (
                                        stat_sum(
                                            top_valid_equipment_set, "Magic Damage"
                                        )
                                        + dINT(
                                            base_int
                                            + stat_sum(top_valid_equipment_set, "INT")
                                            - target_int
                                        )
                                    )
                                    * (
                                        1
                                        + stat_sum(top_valid_equipment_set, "Affinity")
                                        / 100
                                    )
                                )
                                * sc_multiplier
                            )
                            * (
                                1
                                + (
                                    min(
                                        40,
                                        stat_sum(
                                            top_valid_equipment_set,
                                            "Magic Burst Damage",
                                        ),
                                    )
                                    + stat_sum(
                                        top_valid_equipment_set, "Magic Burst Damage II"
                                    )
                                    + 22
                                )
                                / 100
                            )
                        )
                        * day_weather
                    )
                    * (
                        (
                            1
                            + (
                                mab_buffs
                                + stat_sum(top_valid_equipment_set, "Magic Atk. Bonus")
                                + amalric(
                                    stat_sum(top_valid_equipment_set, "Set Bonus")
                                )
                                + 60
                            )
                            / 100
                        )
                        / (1 + target_mdb / 100)
                    )
                )
                * target_mdt
            )
            * (1 + stat_sum(top_valid_equipment_set, "Klimaform") / 100)
        )
    )


main()

This is awsome, been fooling around with this all day, lol. TY! /bow /kneel.
 Ramuh.Austar
Offline
サーバ: Ramuh
Game: FFXI
user: Austar
Posts: 10481
By Ramuh.Austar 2022-11-27 11:28:08  
I made a quick change so you can easily change spells without having to comment anything out. This also contains R25 and emp +3 stats instead. If you want to add new spells, just get the values off of BG wiki, make a new function like ThunderV or something and just create it like the other spells are. Then scroll down and change the spell variable to whatever the function name is, without the parenthesis.

Just don't forget to comment out waist list on non-helix nukes
Code
from itertools import product
from math import floor

# Stone V
def StoneV(dint):
    if dint < 50:
        d = dint
        v = 650
        m = 6
    elif dint < 100:
        d = dint - 50
        v = 950
        m = 5
    elif dint < 200:
        d = dint - 100
        v = 1200
        m = 4
    elif dint < 300:
        d = dint - 200
        v = 1600
        m = 3
    elif dint < 400:
        d = dint - 300
        v = 1900
        m = 2
    elif dint < 500:
        d = dint - 400
        v = 2
        m = 1

    return floor(v + d * m)


# Helix II
def HelixII(dint):
    if dint < 50:
        d = dint
        v = 75
        m = 2
    elif dint < 100:
        d = dint - 50
        v = 175
        m = 1
    else:
        d = dint - 100
        v = 225
        m = 0

    return floor(v + d * m)


def dACC(dint):
    if dint < -70:
        d = 0
        m = 0
        b = 0
    elif dint < -30:
        d = dint - -70
        m = 0.25
        b = 0
    elif dint < -10:
        d = dint - -30
        m = 0.5
        b = 10
    elif dint < 11:
        d = dint - -10
        m = 1
        b = 20
    elif dint < 31:
        d = dint - 11
        m = 0.5
        b = 10
    elif dint < 71:
        d = dint - 31
        m = 0.25
        b = 50
    else:
        d = 0
        m = 0
        b = 60

    return floor(d * m) + b


def amalric(set_count):
    if set_count > 1:
        return 10 * set_count
    else:
        return 0


def af_set(set_count):
    if set_count > 1:
        return 15 * (set_count - 1)
    else:
        return 0


spell = HelixII

base_int = 141 + 45  # 114  # Base + GEO
base_macc = 456 + 42 + 15  # Dark Arts/Merits/Master + Gifts + Klimaform
target_int = 494
mab_buffs = 45 + 12  # GEO + Roll
target_mdb = -23

sc_multiplier = 1.85
target_mdt = 1
day_weather = 1.25

macc_required = 1344 - 100  # -100 for Burst


# a function to calculate the sum of some stat for an equipment_set
def stat_sum(equipment_set, stat):
    return sum(item.get(stat, 0) for item in equipment_set)


def main():
    # equipment is grouped up into sub-lists by slot name
    equipment = [
        [
            {"Name": "C. Snow Cone", "INT": 5, "Magic Atk. Bonus": 13},
            {"Name": "Tropical Crepe", "INT": 2, "Magic Accuracy": 90},
        ],
        [
            {
                "Name": "Marin Staff +1",
                "INT": 12 + 15 + 10 + 10,
                "Magic Accuracy": 15 + 228 + 40 + 10,
                "Magic Atk. Bonus": 28 + 40,
                "Magic Damage": 217,
                # "Affinity": 11,
                # Enki Strap
            },
            {
                "Name": "Maxentius",
                "INT": 15 + 13,
                "Magic Accuracy": 40 + 250 + 38,
                "Magic Atk. Bonus": 21 + 38,
                "Magic Damage": 232,
                "Magic Burst Damage": 4,
                # Ammurapi Shield
            },
            {
                "Name": "Daybreak",
                "INT": 13,
                "Magic Accuracy": 40 + 242 + 38,
                "Magic Atk. Bonus": 40 + 38,
                "Magic Damage": 241,
                # "Affinity": 50,
                # Ammurapi Shield
            },
            # {
            #     "Name": "Bunzi's Rod",
            #     "INT": 15 + 13,
            #     "Magic Accuracy": 40 + 255 + 10 + 38,
            #     "Magic Atk. Bonus": 35 + 25 + 38,
            #     "Magic Damage": 248,
            #     "Magic Burst Damage": 10,
            #     # Ammurapi Shield
            # },
            {
                "Name": "Mpaca's Staff",
                "INT": 15 + 10,
                "Magic Accuracy": 40 + 255 + 10 + 10,
                "Magic Atk. Bonus": 35 + 25,
                "Magic Damage": 263,
                "Magic Burst Damage II": 2,
                # Enki Strap
            },
        ],
        [
            {"Name": "Ghastly Tathlum +1", "Magic Damage": 11 + 10, "INT": 6 + 5},
            {
                "Name": "Pemphredo Tathlum",
                "INT": 4,
                "Magic Accuracy": 8,
                "Magic Atk. Bonus": 4,
            },
        ],
        [
            {
                "Name": "Peda. M.Board +3",
                "INT": 39,
                "Magic Accuracy": 37 + 15,
                "Magic Atk. Bonus": 49,
                "Elemental Magic Skill": 19,
                "Magic Burst Damage II": 4,
            },
            {
                "Name": "Arbatel Bonnet +3",
                "INT": 38,
                "Magic Accuracy": 61,
                "Magic Atk. Bonus": 51,
                "Magic Damage": 31,
            },
            {
                "Name": "Agwu's Cap",
                "INT": 33,
                "Magic Accuracy": 40 + 10,
                "Magic Atk. Bonus": 35 + 23,
                "Magic Damage": 20 + 13,
                "Magic Burst Damage": 7,
            },
        ],
        [
            {
                "Name": "Arbatel Gown +3",
                "INT": 50,
                "Magic Accuracy": 64,
                "Magic Atk. Bonus": 55,
                "Magic Damage": 34,
            },
            {
                "Name": "Agwu's Robe",
                "INT": 47,
                "Magic Accuracy": 40 + 10,
                "Magic Atk. Bonus": 35 + 23,
                "Magic Damage": 20,
                "Magic Burst Damage": 10,
            },
            {
                "Name": "Amalric Doublet +1",
                "INT": 38,
                "Magic Accuracy": 33 + 20,
                "Magic Atk. Bonus": 33 + 20,
                "Set Bonus": 1,
            },
        ],
        [
            {
                "Name": "Arbatel Bracers +3",
                "INT": 36,
                "Magic Accuracy": 62,
                "Magic Atk. Bonus": 52,
                "Magic Damage": 32,
                "Magic Burst Damage": 15,
            },
            {
                "Name": "Agwu's Gages",
                "INT": 33,
                "Magic Accuracy": 40 + 10,
                "Magic Atk. Bonus": 35 + 23,
                "Magic Damage": 20,
                "Magic Burst Damage": 8,
                "Magic Burst Damage II": 5,
            },
            {
                "Name": "Amalric Gages +1",
                "INT": 24 + 12,
                "Magic Accuracy": 20,
                "Magic Atk. Bonus": 33 + 20,
                "Elemental Magic Skill": 14,
                "Magic Burst Damage II": 6,
                "Set Bonus": 1,
            },
        ],
        [
            {
                "Name": "Arbatel Pants +3",
                "INT": 53,
                "Magic Accuracy": 63 + 36,
                "Magic Atk. Bonus": 54,
                "Magic Damage": 33,
            },
            {
                "Name": "Agwu's Slops",
                "INT": 49,
                "Magic Accuracy": 40 + 10,
                "Magic Atk. Bonus": 35 + 23,
                "Magic Damage": 20,
                "Magic Burst Damage": 9,
            },
            {
                "Name": "Amalric Slops +1",
                "INT": 40,
                "Magic Accuracy": 20,
                "Magic Atk. Bonus": 40 + 20,
                "Set Bonus": 1,
            },
        ],
        [
            {
                "Name": "Arbatel Loafers +3",
                "INT": 34,
                "Magic Accuracy": 60,
                "Magic Atk. Bonus": 50,
                "Magic Damage": 30,
                "Elemental Magic Skill": 33,
                "Magic Burst Damage II": 5,
                "Klimaform": 25,
            },
            {
                "Name": "Agwu's Pigaches",
                "INT": 30,
                "Magic Accuracy": 40 + 10,
                "Magic Atk. Bonus": 35 + 23,
                "Magic Damage": 20,
                "Magic Burst Damage": 6,
            },
            {
                "Name": "Amalric Nails +1",
                "INT": 21,
                "Magic Damage": 20,
                "Magic Accuracy": 20,
                "Magic Atk. Bonus": 32 + 20,
                "Set Bonus": 1,
            },
        ],
        [
            {"Name": "Sibyl Scarf", "INT": 10, "Magic Atk. Bonus": 10},
            {
                "Name": "Argute Stole +2",
                "Magic Accuracy": 30,
                "Magic Burst Damage": 10,
                "INT": 15,
                "Magic Damage": 25,
            },
            {
                "Name": "Mizu. Kubikazari",
                "INT": 4,
                "Magic Atk. Bonus": 8,
                "Magic Burst Damage": 10,
            },
            {"Name": "Quanpur Necklace", "Magic Atk. Bonus": 7, "Affinity": 5},
        ],
        # [
        #     {
        #         "Name": "Sacro Cord",
        #         "INT": 8,
        #         "Magic Accuracy": 8,
        #         "Magic Atk. Bonus": 8,
        #     },
        #     {
        #         "Name": "Skrymir Cord +1",
        #         "Magic Accuracy": 7,
        #         "Magic Atk. Bonus": 7,
        #         "Magic Damage": 35,
        #     },
        #     {"Name": "Acuity Belt +1", "INT": 6 + 7 + 10, "Magic Accuracy": 15},
        # ],
        [
            {"Name": "Regal Earring", "INT": 10, "Magic Atk. Bonus": 7, "AF Set": 1},
            {
                "Name": "Barkaro. Earring",
                "INT": 3,
                "Magic Accuracy": 8,
                "Magic Atk. Bonus": 8,
            },
        ],
        [
            {
                "Name": "Malignance Earring",
                "INT": 8,
                "Magic Accuracy": 10,
                "Magic Atk. Bonus": 8,
            }
        ],
        [
            {"Name": "Mujin Band", "Magic Burst Damage II": 5},
            {"Name": "Metamor. Ring +1", "INT": 6 + 10, "Magic Accuracy": 5 + 10},
            {"Name": "Locus Ring", "Magic Burst Damage": 5},
        ],
        [
            # {"Name": "Mujin Band", "Magic Burst Damage II": 5},
            {"Name": "Freke Ring", "INT": 10, "Magic Atk. Bonus": 8},
            {"Name": "Locus Ring", "Magic Burst Damage": 5},
        ],
        [
            {
                "Name": "Lugh's Cape",
                "INT": 20 + 10,
                "Magic Accuracy": 20,
                "Magic Damage": 20,
                "Magic Atk. Bonus": 10,
            }
        ],
    ]

    # User itertools method product to get every potential set of equipment
    # https://d...content-available-to-author-only...n.org/3/library/itertools.html#itertools.product
    equipment_sets = product(*equipment)
    # with the usage of list comprehension
    valid_equipment_sets = [
        equipment_set
        for equipment_set in equipment_sets
        if base_macc
        + stat_sum(equipment_set, "Magic Accuracy")
        + stat_sum(equipment_set, "Elemental Magic Skill")
        + dACC(base_int + stat_sum(equipment_set, "INT") - target_int)
        + af_set(stat_sum(equipment_set, "AF Set"))
        >= macc_required
    ]
    # find the equipment set with the highest sum of the stat 'RapidShot'
    top_valid_equipment_set = max(
        valid_equipment_sets,
        key=lambda x: (
            floor(
                floor(
                    floor(
                        floor(
                            floor(
                                floor(
                                    floor(
                                        (
                                            stat_sum(x, "Magic Damage")
                                            + spell(
                                                base_int
                                                + stat_sum(x, "INT")
                                                - target_int
                                            )
                                        )
                                        * (1 + stat_sum(x, "Affinity") / 100)
                                    )
                                    * sc_multiplier
                                )
                                * (
                                    1
                                    + (
                                        min(40, stat_sum(x, "Magic Burst Damage"))
                                        + stat_sum(x, "Magic Burst Damage II")
                                        + 22
                                    )
                                    / 100
                                )
                            )
                            * day_weather
                        )
                        * (
                            (
                                1
                                + (
                                    mab_buffs
                                    + stat_sum(x, "Magic Atk. Bonus")
                                    + amalric(stat_sum(x, "Set Bonus"))
                                    + 60
                                )
                                / 100
                            )
                            / (1 + target_mdb / 100)
                        )
                    )
                    * target_mdt
                )
                * (1 + stat_sum(x, "Klimaform") / 100)
            )
        ),
    )

    print(len(valid_equipment_sets), "valid sets.", end="\n\n")
    print("Top Valid Set:", *top_valid_equipment_set, sep="\n", end="\n\n")
    print(
        "Magic Damage:",
        stat_sum(top_valid_equipment_set, "Magic Damage"),
        sep="\n",
    )
    print("INT:", stat_sum(top_valid_equipment_set, "INT") + base_int, sep="\n")
    print(
        "Magic Accuracy:",
        base_macc
        + stat_sum(top_valid_equipment_set, "Magic Accuracy")
        + stat_sum(top_valid_equipment_set, "Elemental Magic Skill")
        + dACC(base_int + stat_sum(top_valid_equipment_set, "INT") - target_int)
        + af_set(stat_sum(top_valid_equipment_set, "AF Set")),
        sep="\n",
    )
    print(
        "Magic Atk. Bonus:",
        stat_sum(top_valid_equipment_set, "Magic Atk. Bonus")
        + amalric(stat_sum(top_valid_equipment_set, "Set Bonus"))
        + mab_buffs
        + 60,
        sep="\n",
    )
    print(
        "Magic Burst Damage:",
        stat_sum(top_valid_equipment_set, "Magic Burst Damage"),
        sep="\n",
    )
    print(
        "Magic Burst Damage II:",
        stat_sum(top_valid_equipment_set, "Magic Burst Damage II") + 22,
        sep="\n",
    )
    print()

    print(
        floor(
            floor(
                floor(
                    floor(
                        floor(
                            floor(
                                floor(
                                    (
                                        stat_sum(
                                            top_valid_equipment_set, "Magic Damage"
                                        )
                                        + spell(
                                            base_int
                                            + stat_sum(top_valid_equipment_set, "INT")
                                            - target_int
                                        )
                                    )
                                    * (
                                        1
                                        + stat_sum(top_valid_equipment_set, "Affinity")
                                        / 100
                                    )
                                )
                                * sc_multiplier
                            )
                            * (
                                1
                                + (
                                    min(
                                        40,
                                        stat_sum(
                                            top_valid_equipment_set,
                                            "Magic Burst Damage",
                                        ),
                                    )
                                    + stat_sum(
                                        top_valid_equipment_set, "Magic Burst Damage II"
                                    )
                                    + 22
                                )
                                / 100
                            )
                        )
                        * day_weather
                    )
                    * (
                        (
                            1
                            + (
                                mab_buffs
                                + stat_sum(top_valid_equipment_set, "Magic Atk. Bonus")
                                + amalric(
                                    stat_sum(top_valid_equipment_set, "Set Bonus")
                                )
                                + 60
                            )
                            / 100
                        )
                        / (1 + target_mdb / 100)
                    )
                )
                * target_mdt
            )
            * (1 + stat_sum(top_valid_equipment_set, "Klimaform") / 100)
        )
    )


main()
[+]
 Asura.Sechs
Offline
サーバ: Asura
Game: FFXI
user: Akumasama
Posts: 10068
By Asura.Sechs 2022-12-01 05:35:21  
Ramuh.Austar said: »
Austar mind refreshing this set? It appears empty to me atm.
Offline
Posts: 46
By piggy 2022-12-04 19:01:25  
Are Merlinic Shalwar with INT13, magic acc 25, magic attack 39, magic burst damage 9% still worth using over rank20 Agwu’s Slops?
 Ramuh.Austar
Offline
サーバ: Ramuh
Game: FFXI
user: Austar
Posts: 10481
By Ramuh.Austar 2022-12-04 19:05:15  
no
[+]
 Asura.Toralin
Offline
サーバ: Asura
Game: FFXI
user: toralin
Posts: 1394
By Asura.Toralin 2022-12-21 19:07:10  
Edit I see Ammurapi is built in with Bunzi rod, makes sense,

I bumped all the Ody to r30

came up with this for MB
MB
ItemSet 343187

Helix
ItemSet 356832
[+]
 Asura.Itsasaga
Offline
サーバ: Asura
Game: FFXI
user: xXSagaXx
Posts: 23
By Asura.Itsasaga 2023-01-05 13:49:38  
I havnt seen any mention of Sroda tathlum at all, which makes me guess (im not a math guy): is it reliquished for magical WS on rdm mostyl for now, as SE "might" add some more mCrit II eventually, or would it have some room in some nuking sets?
 Asura.Geriond
Offline
サーバ: Asura
Game: FFXI
user: Gerion
Posts: 3184
By Asura.Geriond 2023-01-05 15:35:49  
Sroda Tathlum is a damage bonus of +2.5% on average over no ammo, which might win on high tier nukes when the target has very, very low INT (like, INT that a mob needs to be less than 99 for), but that's not really a situation that anyone gears for.

On any remotely relevant foe, 11 INT and 21 MDMG will be much more significant for nuking. It's only better for magic WSs because they're much less effected by INT and MDMG.
[+]
 Asura.Sechs
Offline
サーバ: Asura
Game: FFXI
user: Akumasama
Posts: 10068
By Asura.Sechs 2023-01-22 14:58:20  
Managed to upgrade a few SCH pieces to +3 finally and I was comparing body and hands for free nukes (no MBB)

Amalric +1 (+20 mab set bonus included)
INT 74
Macc 87
Mab 126

Empy+3
INT 86
Macc 126
Mab 111
Mdmg 66


It's basically a loss of 15 Mab, but a substantial gain in everything else.
I don't have access to spreasheets or python calculators to get unbiased outcoms but on a hunch I would say it seems worth it?
First Page 2 3 ... 97 98 99 100 101
Log in to post.