|
All Jobs Damage Simulator and Gear Sets
By Izanami 2023-05-10 19:59:19
I've updated the code ( actions page) to include a drop-down menu for Aftermath effects. The drop-down menu is located just below the Min/Max/Start TP entries.
For Mythic Lv1 and Lv2 aftermath, I assume 85% potency (between the lower/upper bounds for bonus stats from the aftermath effect), which is equivalent to saving TP until ~1810 TP for Lv1 or ~2830 TP for Lv2.
If you have a R/M/E weapon equipped in both the main and ranged slots, then you will gain both aftermath effects. For example: if you're testing Samurai with Amanomurakumo and Yoichinoyumi equipped with aftermath enabled, then you'll receive both aftermath effects (Zanshin+, StoreTP+, RAcc+). This is mostly an edge case unique to Samurai.
I also noticed and corrected a few issues:
Let me know if you run into any issues. I ran a few test cases to make sure things worked, but some issue nearly always manages to slip through.
New page edit for those that don't want to check back one page: The code now also includes the final stage prime weapons and new rings from the May 10th update.
By Izanami 2023-05-13 10:06:24
I have a feature request
How do you feel about adding a filter for gear based on the output of //gs export inv? It outputs all the items owned by the character, formatted like this:
. . .
The export function uses inventory names, indeed. However, it wouldn't be too hard to add a parameter to gearswap to make it write down long names, tho there wouldn't be too much use for it outside of this, I suppose.
Another alternative would be using windower's own resource files to link inventory names to long names automatically, without having to actually process any text. Python should be be faster than lua at this, even.
The code now includes a "Select From File" button (in the "Select Gear" tab) which prompts the user to provide an input file. The button should enable gear within this input file and disable gear not within the file. The input file must use the format provided by the Windower command "//gs export" as you provided in your example. Essentially, the code is only looking for text between the first set of double quotes on each line to be the item's name and ignoring the rest of the line. Let me know if you run into any errors/issues. I didn't find anything with my tests, at least.
Keep in mind that "//gs export all" does not include items within storage slips.
Some details:
I've set up this new algorithm to "upgrade" user inputs. For example: If the input file has "Ea Hat", then the code will find and select "Ea Hat +1" instead.
- Technically, the code is just selecting all items within the head slot of the gear.py file which contain the substring "Ea Hat" in their "Name" value. It would be easier/better to not do this, but the gear.py file does not have lower-quality equipment.
The Odyssey rank and Nyame selection has not changed. If the input file has ""name="Nyame Helm", augments={'Path: A',}"", then the code will select "Nyame Helm B" with whatever Odyssey rank you have selected.
Additionally, I had a separate request to allow the user to choose COR roll potency. I've added a drop-down menu for each of the two Corsair rolls which allows the user to define each roll's value (from 1 to 11) and included a checkbox to enable the bonus stats from having the relevant job in the party (SAM roll with a Samurai in the party is an extra +10 Store TP). For now, this checkbox affects both rolls.
[+]
By Lili 2023-05-13 16:34:08
The code now includes a "Select From File" button (in the "Select Gear" tab) which prompts the user to provide an input file.
This is an amazing functionality and I award you seven million trillion gajillion Lili points for it.
Thank you so much.
Keep in mind that "//gs export all" does not include items within storage slips.
I'm working on a rework of //gs export functionality to expand it some, I'll add "include slip items" to the list - it's not excessively complicated.
----
That said, I am either encountering a bug, or I am dumdum. When I change job/subjob, the WS dropdown list does not get updated. So I am stuck calculating katana WSs no matter what job I pick. What am I doing wrong?
EDIT: possible unrelated, I'm getting a bunch of these errors in the console Code 2023-05-13T21:40:50.968ZE [16612:NonCelloThread] registry_win.h:55:GetProtoFromRegistryValue Opening registry key Software\Google\DriveFS\Share failed with 0x2
EDIT 2: nevermind, I never realized I needed to select main hand weapon first.
By Izanami 2023-05-13 17:27:09
EDIT: possible unrelated, I'm getting a bunch of these errors in the console Code 2023-05-13T21:40:50.968ZE [16612:NonCelloThread] registry_win.h:55:GetProtoFromRegistryValue Opening registry key Software\Google\DriveFS\Share failed with 0x2
This seems very unrelated. I've never seen any errors like that before and I can't find any decent information on it through my quick searching. If it shows up in the same console as the gear swap print statements then it might be related.
Are you able to reproduce the errors consistently? If so, what steps are causing the errors and does it occur if you use the actions page version of the gui_wsdist.exe file (or my gui_wsdist.exe file if you're already using the GitHub-built one)?
Edit: More searching finds that it's just an issue with your local Google Drive, which shows up when using using a File Browsing widget (such as the new "Select From File" button). Were you loading an input file from a Google Drive folder? Alternatively Google Drive might be trying to do something (such as updating logs?) while you're loading a file somewhere else. That [16612:NonCelloThread] might be a process ID which would be the source of the warning/error. See this page and this page.
By Masaru 2023-05-26 16:39:10
Could you add TVR rings please
Asura.Bippin
Server: Asura
Game: FFXI
Posts: 1090
By Asura.Bippin 2023-05-26 16:40:47
Could you add TVR rings please Was added a few weeks ago
Server: Siren
Game: FFXI
Posts: 1028
By Siren.Demetreos 2023-05-28 10:30:23
I may be being dumb, but when I import my //gs export all file, it tries to select a bunch of gear I don't have and actually omits gear that I do have.
Tried it with multiple characters and same result, yet importing a friends file works as intended.
Am I doing something wrong or is this a bug somewhere?
By Izanami 2023-05-28 13:37:44
I may be being dumb, but when I import my //gs export all file, it tries to select a bunch of gear I don't have and actually omits gear that I do have.
Tried it with multiple characters and same result, yet importing a friends file works as intended.
Am I doing something wrong or is this a bug somewhere?
Sounds like a bug. It is probably a consequence of searching for substrings instead of complete item names. If you have an item named "a" in your output file, then the code will select all items with a lower-case "a" in them, which is a lot of items.
I could easily remove the substring search, but then the code would only select exact matches. "Peda. Gown +2" would not select "Peda. Gown +3". I think this would be best, but it would require that we include lower quality armor variants to the gear.py file or a lot of gear would potentially not be selected. I imagine that there are about ~1500 pieces of gear that would need to be added if we wanted to include the lower-quality versions of everything.
But in case it isn't a bug: make sure your input file is the same format as the "//gs export all" output (just give the output from export to the code directly if possible).
Code
hands={ name="Rawhide Gloves", augments={'HP+50','Accuracy+15','Evasion+20',}},
main={ name="Anguta", augments={'Path: A',}},
waist="Hachirin-no-Obi",
left_ring="Shiva Ring +1",
left_ring="Shiva Ring +1",
main={ name="Apocalypse", augments={'Path: A',}},
neck={ name="Warder's Charm +1", augments={'Path: A',}},
left_ear="Mache Earring +1",
main={ name="Liberator", augments={'Path: A',}},
body="Dagon Breast.",
ammo="Seki Shuriken",
left_ear="Trux Earring",
left_ring="Mujin Band",
ammo="Impatiens",
left_ring="Chirich Ring +1",
hands="Ken. Tekko +1",
back="Shadow Mantle",
waist="Engraved Belt",
left_ring="Archon Ring",
left_ear="Loquac. Earring",
head="Ea Hat +1",
head={ name="Taeon Chapeau", augments={'Evasion+25','Spell interruption rate down -10%','HP+49',}},
ammo="Sapience Orb",
left_ear="Regal Earring",
left_ear="Malignance Earring",
neck="Orunmila's Torque",
left_ear="Odr Earring",
Fenrir.Aladeus
Server: Fenrir
Game: FFXI
Posts: 350
By Fenrir.Aladeus 2023-05-28 14:32:03
Could you add TVR rings please Was added a few weeks ago
I looked at all the job links, and none of them have new rings added in. Is there somewhere else I should be looking?
By DrGonzo 2023-05-28 14:45:20
Not sure whats going on, but the executable build from May 13 doesnt update weapon skills when changing jobs?
By Izanami 2023-05-28 15:31:36
Could you add TVR rings please Was added a few weeks ago
I looked at all the job links, and none of them have new rings added in. Is there somewhere else I should be looking?
All of the new rings were added to the code on May 10. They can be accessed from the individual equip or select item lists in the GUI. See lines 820-826 of gear.py to view their stats, or equip one and mouse over it. The ring icons are not correct, though.
Edit: I think I misunderstood. The code has the new rings, but the posted gearsets do not. I will likely not add the new rings to the posted gearsets since the rings are all pretty good and we can only choose one. The code likes to stack the PDL and WSD rings together.
As a side note:
Do we know if Cornelia's Ring is actually Weapon Skill Damage +10%? The text on the ring matches Fotia Gorget and Fotia Belt, so I imagine there is at least some chance that the devs gave it FTP+0.1 instead. The code currently assumes WSD.
Not sure whats going on, but the executable build from May 13 doesnt update weapon skills when changing jobs? The weapon skill list is based on your equipped weapon, not your selected job. Try changing your main-hand or ranged weapon to select a different weapon skill. I may change this in the future, but I think it makes the most sense (and is much easier) to show weapon skills by weapon than by job.
[+]
Server: Siren
Game: FFXI
Posts: 1028
By Siren.Demetreos 2023-05-28 15:52:51
Sounds like a bug. It is probably a consequence of searching for substrings instead of complete item names. If you have an item named "a" in your output file, then the code will select all items with a lower-case "a" in them, which is a lot of items.
I could easily remove the substring search, but then the code would only select exact matches. "Peda. Gown +2" would not select "Peda. Gown +3". I think this would be best, but it would require that we include lower quality armor variants to the gear.py file or a lot of gear would potentially not be selected. I imagine that there are about ~1500 pieces of gear that would need to be added if we wanted to include the lower-quality versions of everything.
But in case it isn't a bug: make sure your input file is the same format as the "//gs export all" output (just give the output from export to the code directly if possible).
Code
hands={ name="Rawhide Gloves", augments={'HP+50','Accuracy+15','Evasion+20',}},
main={ name="Anguta", augments={'Path: A',}},
waist="Hachirin-no-Obi",
left_ring="Shiva Ring +1",
left_ring="Shiva Ring +1",
main={ name="Apocalypse", augments={'Path: A',}},
neck={ name="Warder's Charm +1", augments={'Path: A',}},
left_ear="Mache Earring +1",
main={ name="Liberator", augments={'Path: A',}},
body="Dagon Breast.",
ammo="Seki Shuriken",
left_ear="Trux Earring",
left_ring="Mujin Band",
ammo="Impatiens",
left_ring="Chirich Ring +1",
hands="Ken. Tekko +1",
back="Shadow Mantle",
waist="Engraved Belt",
left_ring="Archon Ring",
left_ear="Loquac. Earring",
head="Ea Hat +1",
head={ name="Taeon Chapeau", augments={'Evasion+25','Spell interruption rate down -10%','HP+49',}},
ammo="Sapience Orb",
left_ear="Regal Earring",
left_ear="Malignance Earring",
neck="Orunmila's Torque",
left_ear="Odr Earring",
I manually went into the file and removed any items leaving only gear and it seemed to work slightly closer to intended.
Fenrir.Aladeus
Server: Fenrir
Game: FFXI
Posts: 350
By Fenrir.Aladeus 2023-05-28 16:45:00
All of the new rings were added to the code on May 10. They can be accessed from the individual equip or select item lists in the GUI. See lines 820-826 of gear.py to view their stats, or equip one and mouse over it. The ring icons are not correct, though.
gotcha. i haven't looked at this gui yet. thanks
Asura.Bippin
Server: Asura
Game: FFXI
Posts: 1090
By Asura.Bippin 2023-06-14 10:21:15
Would be nice to be able to choose a TVR to run in sets. I am always having to uncheck a ton of them before running. Or more like I forget and then have to go back and try again.
Also Hasso+ gear is adding JA haste even when hasso is not up.
Bismarck.Nekhekh
Server: Bismarck
Game: FFXI
Posts: 55
By Bismarck.Nekhekh 2023-06-14 13:17:48
I’m surprised Ginsen is not in the ammo slot.
[Ammo] All Races
Accuracy+5 Attack+10 "Store TP"+3
LV 99 WAR MNK RDM THF PLD DRK BST BRD RNG SAM NIN DRG BLU COR DNC RUN
Good beginner tp piece that is easy to get.
[+]
By Izanami 2023-06-14 14:35:11
Would be nice to be able to choose a TVR to run in sets. I am always having to uncheck a ton of them before running. Or more like I forget and then have to go back and try again.
Also Hasso+ gear is adding JA haste even when hasso is not up.
I agree about the rings, and did not know about the Hasso issue. Thanks for letting me know.
I've fixed the Hasso+ JA haste issue by adding a "Hasso+ JA Haste" stat to the relevant gear.
I've added another drop down near the odyssey rank selector for selecting a specific TVR ring, which defaults to Cornelia's Ring. The "Select All" and "Select ALL Main Job" buttons will automatically deselect all other TVR rings now.
I've added the ring icons to the icons32/ folder and the item_list.txt file so they should be used in the equipment preview now.
I’m surprised Ginsen is not in the ammo slot.
Me too. Ginsen has been added to the ammo slot now.
The code on the GitHub ( actions) page has been updated. Let me know if I left something broken after making the above changes.
Since I'm already posting here:
I've finished rewriting/cleaning the main code entirely (not on GitHub) and have nearly finished rewriting the GUI using tkinter (instead of PySimpleGUI). Only the inputs tab works at the moment (so no automated set finder yet), but the other tabs should be mostly copy/pasting specific code from the inputs tab anyway. I'll be out of town soon, so it'll probably take at least a week or two to finish the updated GUI and code.
Edit: I forgot to update "Gurebu-Ogurebu's Ring" name (from "Gurebu-Orebu's Ring") in the new TVR ring thing, so it was being ignored from the auto-deselector. This has been fixed now.
Server: Asura
Game: FFXI
Posts: 160
By Asura.Bynebill 2023-06-14 15:18:49
Thanks for your continued work, given how hard it is to find up to date spreadsheets these days its nice to have a tool like this being actively supported.
Bismarck.Nekhekh
Server: Bismarck
Game: FFXI
Posts: 55
By Bismarck.Nekhekh 2023-06-14 17:08:53
Loving the updates. I believe you mentioned we can add items ourselves correct?
[+]
By Izanami 2023-06-14 18:54:14
Loving the updates. I believe you mentioned we can add items ourselves correct?
Thanks for reminding me about this. This is a common request. Previously, you could not both use the executable and add your own gear to the GUI; you would have to recompile the code yourself or use the gui_wsdist.py version of the code to see any changes made to equipment. Luckily, I found a stackoverflow post from nearly three years ago detailing exactly how to get around this issue.
I've just updated the code to exclude the gear.py file from the pyinstaller compilation. The executable code now reads the gear.py file separately with each run. This means that all users can now modify the gear.py file and see their changes in the GUI without having to recompile the code themselves. You should now be able to add your own custom Oseem augmented gear for testing. I've tested the feature on my computer a few times and confirm that modifying the gear.py file will produce changes in the available gear within the executable GUI, after the GUI has been relaunched.
This feature also means the the GUI will fail to open if you leave a python syntax error in your modified gear.py file. The GUI terminal will close immediately before you have a chance to read your error too, so be careful. I recommend running the gear.py file as a normal python file if you think you made a syntax error somewhere ("python gear.py").
Each piece of equipment is saved as a Python dictionary in the gear.py file. To add a new piece of equipment, simply create a new Python dictionary containing the case-sensitive stats in quotations, followed by the value for each stat as an integer or float, separated by a colon, with each different "stat":value pair separated by a comma.
After you've created the equipment dictionary, you'll need to put the equipment in some gearslot so the code knows where to read it from. For example, if you want to add Haubergeon to the body slot, then create a new Haubergeon dictionary (called whatever you want) with all of its stats, then paste the dictionary name (Haubergeon_test in the example below) into the "bodies" list with the other body equipment.
Code
Haubergeon_test = {"Name":"Haubergeon +1", "Name2":"Haubergeon +32", "Magic Burst Damage":40, "Weaponskill Damage":55, "Gear Haste":26, "PDL":25, "Crit Rate":15, "DT":100, "STR":1346, "DEX":536, "AGI":-45, "Accuracy":1122, "Attack":1122, "Evasion":-20, "Jobs":["war","pld","drk","bst","sam","nin"]}
bodies = [Haubergeon_test, Mallquis_Saio,Volte_Harness,Adhemar_Jacket_C,Sacro_Breastplate,Hjarrandi_Breastplate,Hashishin_Mintan,Luhlaza_Jubbah,Assimilator_Jubbah,Karagoz_Farsetto . . .]
If you are unfamiliar of the exact syntax required to add new gear, then I recommend simply copy/pasting one of the other pieces of equipment and changing the values.
Certain slots require specific stats to allow the code to function properly. A list of a few of the required stats is given below, but I may have left some out.
All equipment requires the "Jobs" stat, which is a list containing all jobs that you want able to equip your item (using "Jobs":all_jobs works)
All equipment requires the "Name" stat, which is used to pull the icon from the item_list.txt file. Without a matching name, the code with load a blank icon.
"Name2" is only required for special equipment to help the code distinguish them from other items with the same base name (think different augment paths). The code displays "Name2" throughout the GUI. If you do not provide "Name2", then the code automatically copies "Name"
Weapons require the stat "Type" ("Weapon", "Grip", "Shield", etc), which helps the code build valid gear sets.
Weapons also require "DMG", "Delay", and "Skill Type", which is just the combat skill name associated with the weapon ("Katana", "Dagger", "Sword", etc)
Ranged weapons require their "Type", which is either "Instrument", "Gun", "Bow", "Crossbow"
Ammo requires specifying a "Type": ("Equipment", "Bolt", "Arrow", "Bullet")
If you are not sure which stats are required, then you can check the hundreds of example dictionaries for common stats, or simply run the gear.py file like a normal python file after you add your gear. The code should tell you which stats are missing or have typos and on which piece.
The code on the GitHub page has been updated, including the workflow that automatically builds the GUI itself. Let me know if this created any weird consequences throughout the code.
I will continue to upload new versions of the gear.py file including new gear or new/corrected stats. Be sure to keep backups of the gear you create so you don't accidentally overwrite things. Keep letting me know if you see typos in the gear.py file so I can correct them myself.
[+]
Cerberus.Kylos
Server: Cerberus
Game: FFXI
Posts: 4473
By Cerberus.Kylos 2023-06-18 09:55:53
Currently working through my Rune Fencer and noticed the Refined Grip +1 is not included. If I see anything else, I shall let you know. Thanks!
Asura.Aragan
By Asura.Aragan 2023-06-18 15:49:40
Thnx for super post
Cerberus.Kylos
Server: Cerberus
Game: FFXI
Posts: 4473
By Cerberus.Kylos 2023-06-18 16:38:29
Is the new Aftermath menu choice giving additional accuracy (and possibly attack) while picking level 3? It would normally only give "Occasionally Attacks twice (40%) or thrice (20%)" on Epeolatry, but when I pick the level 3 option, it gives a TP set 130 accuracy less than a set with no aftermath using the same target/buffs. I tried working around this by picking Ozma as the target so I could scale back until finding something reasonable, but it gave me the same set as before. Something's not quite right about it.
Should be noted I am also looking for 75% pdt in this set too. My goal was to make a hybrid AM3/DT set that can hit a higher target, but the results aren't giving me something I believe will hit consistently. Maybe I'm just asking too much of it. Although, for example, it seems adamant to give me Agony Jerkin +1, so it's not like it couldn't lose that STP/Attack for something with more PDT and Accuracy. Technically, I have not exhausted it of options.
Edit: Noticed another oddity while testing what it would give me for my standard DT/TP set (which I had already made successfully), this time against Ozma with the intent of seeing what would happen. It seems that if the targets evasion is too high the program will default to a lower target. It basically says "nope" and chooses to give something resembling a set for an i135 target. When I set it back to the original i142 target, it reverted to giving me a proper set. Yet, the same cannot be said for the AM3/DT hybrid set with the same buffs/target. It outright refuses to go to the same level of accuracy as my other TP set.
By Izanami 2023-06-18 17:56:28
Currently working through my Rune Fencer and noticed the Refined Grip +1 is not included. If I see anything else, I shall let you know. Thanks!
Thanks. I've added Refined Grip +1 R15 to my version of the code. It'll be a few days before I can update the code on GitHub.
Is the new Aftermath menu choice giving additional accuracy (and possibly attack) while picking level 3? It would normally only give "Occasionally Attacks twice (40%) or thrice (20%)" on Epeolatry, but when I pick the level 3 option, it gives a TP set 130 accuracy less than a set with no aftermath using the same target/buffs.
Aftermath is generally hard-coded for each weapon based on the weapon name and the aftermath level selected.
For Epeolatry (and similar Mythic AMs), this is
Aftermath Lv1: Accuracy +46 (85% max potency)
Aftermath Lv2: Attack +90 (85% max potency)
Aftermath Lv3: OA3:20%, OA2:40%
This extra Accuracy and Attack shows up when you select your aftermath level and click the "show stats" button. I can't find any hidden accuracy/attack in the code related to aftermath. It appears that everything is working as intended.
Edit: Noticed another oddity while testing what it would give me for my standard DT/TP set (which I had already made successfully), this time against Ozma with the intent of seeing what would happen. It seems that if the targets evasion is too high the program will default to a lower target. It basically says "nope" and chooses to give something resembling a set for an i135 target. When I set it back to the original i142 target, it reverted to giving me a proper set. Yet, the same cannot be said for the AM3/DT hybrid set with the same buffs/target. It outright refuses to go to the same level of accuracy as my other TP set.
The "Ozma" enemy has 9999 evasion. The code notices that it will never increase TP gain by increasing accuracy because its hit rate is always floored (1500 accuracy has the same hit rate as 9000 accuracy against 9999 evasion). The only way the code can increase TP gain in this case is to ignore accuracy and focus on Store TP and multi-hit. This is why it looks like its building for an enemy with lower evasion. This will be the case for enemies with very high evasion if your starting set is significantly under the hit rate cap.
To get around this issue, you'll have to provide more accuracy from outside buffs (use accuracy food, or use madrigals) and/or manually select gear with very high accuracy as your starting set. You'll want to have your starting gear set have at least 20% hit rate against your selected enemy if you want to avoid this issue.
For example: I selected Lv147 Apex Cogs (evasion = 1628) and built a starting set with 1668 accuracy with sushi, sam+chaos, and HM,VM,min,min by pretty much equipping as much heavy accuracy gear as I could find. Running the set finder successfully finds a 75% PDT, 41% MDT (without Shell), AM3, high accuracy TP set.
I manually built this starting set to have very high accuracy so the code would not start at, and be stuck with, minimum hit rate.
This set coincidentally still has 1668 accuracy, which is capped hit rate against 1628 evasion.
[+]
Cerberus.Kylos
Server: Cerberus
Game: FFXI
Posts: 4473
By Cerberus.Kylos 2023-06-18 18:10:00
Cool, I felt like I was missing something but couldn't put my finger on it. Thanks for clearing it up.
Edit: Got an option to add for TP on lower targets for Rune Fencer. Carmine Greaves +1, Path B
Server: Carbuncle
Game: FFXI
Posts: 167
By Carbuncle.Samuraiking 2023-06-18 19:54:18
How much trouble would it be to code the program to factor in Zanhasso? I think the STP and DA rate values for Zanshin are on the wiki, but not sure how obnoxious that would be to code, and I know you are a NIN main, but it would be great to make TP sets for Zanhasso SAM when new gear comes out to make sure it's optimial.
Along the same lines, some kind of white dmg option for TP would be cool. If you could code it to track Empy AM3 for example, and then factor in the highest white dmg dps instead of tp/hit, this one would probably be harder to do and maybe not worth your time, but I think Zanhasso builds and EmpyCrit builds are the only things the program can't do well for TP sets atm.
Either way, been using the program a lot for other TP sets and WS sets. It's extremely helpful for testing and finding sets for jobs that don't have good guides. Most are outdated, even on this site, and it takes hours to sift through the 100+ page forums for them to find some random guy's theoretical set that may or may not be good. Thanks for all the hard work and sharing it.
By Izanami 2023-06-18 21:26:47
Carbuncle.Samuraiking said: »How much trouble would it be to code the program to factor in Zanhasso?
ZanHasso is already in the code, as well as Zanshin: OA2. However, after checking the logic for it again, I found that Zanshin was getting the full Hasso boost even without Hasso active. I've fixed this issue and updated the code (and included Refined Grip +1 and Carmine Greaves +1B).
It's probably important that a SAM main checks the order of operations for how I handle Zanshin+Hasso in general, since I mostly just guessed based on the wording on BG Wiki for each ability:
Samurai with Hasso gains an additional +25% Zanshin proc rate (applied as 125% of the original rate, or a 1.25 multiplier). I apply this +25% after traits, gear, merits, and job gifts.
ZanHasso procs at a rate equal to 1/4 of the total Zanshin rate (up to 25% base with 100% Zanshin rate)
- ZanHasso gains an additional +10% proc rate (up to 35% total proc rate) from the 100 and 1200 Job Point gifts
For example:
SAM/WAR with a 2-handed weapon equipped will have Zanshin = 50(traits) + 5(merits) + 10(job point gifts) +10(special JP gifts at 100 and 1200) = 75% Zanshin Rate. With Hasso, this increases by 25% to 93.75% Zanshin Rate.
SAM Job Point gifts (at 100 and 1200 JP) provide +10% to Zanshin and ZanHasso separately based on the wording "Hasso: increases the maximum chance of Zanshin activating, even when a melee attack hits, by 5%." This suggests that ZanHasso is then 1/4 of the 93.75% Zanshin rate, after first subtracting the +10% from the 100 and 1200 Job Point gifts to avoid double-counting it. The ZanHasso rate is then 1/4 of the remaining 81.25% Zanshin rate, resulting in 20.3125% ZanHasso. I then add +10% from the 100 and 1200 Job Point gifts back for a total of 30.3125% ZanHasso and 93.75% Zanshin rate.
Let me know if I should update how I handle this.
Carbuncle.Samuraiking said: »Along the same lines, some kind of white dmg option for TP would be cool. If you could code it to track Empy AM3 for example, and then factor in the highest white dmg dps instead of tp/hit, this one would probably be harder to do and maybe not worth your time
This is also already in the code, but not accessible unless you know how to modify the python files. Line 694 of wsdist.py hard-codes to use "time_to_ws" as the metric for finding "best" sets when checking TP sets specifically. You could change this to whatever you wanted, but the code is currently set to minimize this time, so remember to invert the metric if you want to maximize whatever you change it to (maximize damage for your case). I might enable this later, but I remember specifically disabling it because it felt misleading to include damage-based melee TP sets as is.
[+]
Ramuh.Austar
Server: Ramuh
Game: FFXI
Posts: 10481
By Ramuh.Austar 2023-06-18 21:37:51
I believe llewyn did testing forever ago on the gifts, it isn't (x * 0.25) + 0.1, it should just be (x * 0.35) on the zanshin to zanhasso rate.
as for the first part about 1.25x zanshin proc, I haven't seen any really good testing on that.
regular zanshin is pretty pathetic anyways, since you have to have a single hit attack round that misses. can't proc multi hit of any kind.
[+]
By Izanami 2023-06-18 22:05:48
I believe llewyn did testing forever ago on the gifts, it isn't (x * 0.25) + 0.1, it should just be (x * 0.35) on the zanshin to zanhasso rate.
Thanks for the information. It only took me a few minutes to find Llewelyn's post.
https://www.ffxiah.com/forum/topic/41903/bushido-the-way-of-the-samurai-a-guide-v-20/55#3118638
I've updated the code again based on these results. Zanshin now only gains +10% from job gifts (ignoring the 100 and 1200 gifts), and ZanHasso simply uses 35% of the total Zanshin rate (capped at 35% with 100% Zanshin).
In terms of the example I gave above, the new final values in that situation are ZanHasso=28.4375%, Zanshin=81.25%.
as for the first part about 1.25x zanshin proc, I haven't seen any really good testing on that.
I'm not sure about this either, so I'm trusting BG Wiki. I should try to find the source since that is a large increase. This should be easy to test during the next free login.
Ramuh.Austar
Server: Ramuh
Game: FFXI
Posts: 10481
By Ramuh.Austar 2023-06-18 22:26:17
my guess is someone noted an increased zanshin rate due to the zanhasso procs, none of the testing links on bg that I looked at show any real increase to normal zanshin with hasso active.
By Izanami 2023-06-18 22:41:47
my guess is someone noted an increased zanshin rate due to the zanhasso procs, none of the testing links on bg that I looked at show any real increase to normal zanshin with hasso active.
I skimmed the references on the Zanshin BG Wiki page and I agree. An additional +25% base Zanshin rate would've significantly skewed Llewelyn's results as well.
For now, I'll remove the 1.25x Zanshin multiplier from the code. I'll try to remember to test this during the next free login.
|
|