Using Python3 To Estimate BIS Gear Sets For Ninja.

Language: JP EN DE FR
2010-09-08
New Items
users online
Forum » FFXI » Jobs » Ninja » Using Python3 to estimate BIS gear sets for Ninja.
Using Python3 to estimate BIS gear sets for Ninja.
First Page 2 3 4 5 6 7 8 9
 Asura.Saevel
Offline
Server: Asura
Game: FFXI
Posts: 9701
By Asura.Saevel 2022-01-29 10:54:02
Link | Quote | Reply
 
Python wasn't really made with graphics in mind, it can be done but usually easier to use a different front end like C# / .NET / Visual C++ / ect if on windows and one of the various GNU libraries if on Linux.
[+]
Offline
Posts: 298
By Izanami 2022-01-29 12:37:07
Link | Quote | Reply
 
Thanks for the tips, Austar and Saevel. I'm glad you all posted before I invested a ton of potentially wasted time into tkinter. I'll look into other options such as IronPython before I jump into making the GUI.


Since we're on a fresh page, here's a summary of my update post on the previous page that is now out of sight:

  • The gearsets on the original post have been updated for ML20 NIN and R25 Odyssey gear.

  • The output distribution images through the Imgur links have also been updated.

  • Great Katana weapon skills have been added to the original post on the first page.

  • The code itself has been rearranged to reduce clutter and make reading easier. A new Github link was provided.

[+]
 Ramuh.Austar
Offline
Server: Ramuh
Game: FFXI
user: Austar
Posts: 10457
By Ramuh.Austar 2022-01-29 12:42:10
Link | Quote | Reply
 
you can make tkinter work but it's not nearly as simple as just dragging and dropping the objects since you have to code every dimension and location, kind of obnoxious imo. and everything just looks so blocky. and if something is a different size, it takes trial and error to line them up horizontally where in visual studio, it will show you blue and pink lines to "snap."
[+]
 Ramuh.Austar
Offline
Server: Ramuh
Game: FFXI
user: Austar
Posts: 10457
By Ramuh.Austar 2022-02-25 15:33:22
Link | Quote | Reply
 
if I could make a suggestion, I notice you have some stats as a float and some as an integer. i would make them all integers and divide by 100 in the calculation functions, this would make it easier for anyone to edit or add gear not having to go and look up if something is supposed to be 0.07 or if it's just 7 and avoids any float additions that could end up 0.1400000000000000000000000001.
Offline
Posts: 298
By Izanami 2022-02-25 15:44:18
Link | Quote | Reply
 
Ramuh.Austar said: »
if I could make a suggestion, I notice you have some stats as a float and some as an integer. i would make them all integers and divide by 100 in the calculation functions, this would make it easier for anyone to edit or add gear not having to go and look up if something is supposed to be 0.07 or if it's just 7 and avoids any float additions that could end up 0.1400000000000000000000000001.

This is something I've been meaning to do for a while since the gear.py file an absolute mess. Even I have to control+F to check if I made 'Store TP' an integer or 'Crit Rate' a float before adding new gear... I can see how this is frustrating for anyone else trying to add more gear to their local versions.

Similar frustrations arise with stat names. I currently use "TA" for Triple Attack, but I changed "STP" to "Store TP" in the newer version. These are just dictionary keys, but I may as well just use full names for everything to stay consistent.
 Ramuh.Austar
Offline
Server: Ramuh
Game: FFXI
user: Austar
Posts: 10457
By Ramuh.Austar 2022-02-25 15:48:15
Link | Quote | Reply
 
oh, something else too then. if a stat is named wrong or doesn't exist, print an error. for example if i add a piece of gear with "WSD" when it's supposed to be "Weapon Skill Damage", it will just assume 0 since the "WSD" variable is not instantiated.

Edit: I don't think the naming conventions matter as much as being given some kind of warning that the stat doesn't exist. If it's "WSD" or "STP" i'm sure anyone bothering to edit would know what it meant, just if you type it wrong or make a typo, there isn't any indication that something was wrong, that i noticed at least, unless you can just tell something is off by the results.
Offline
Posts: 298
By Izanami 2022-02-26 22:20:17
Link | Quote | Reply
 
Ramuh.Austar said: »
oh, something else too then.

I've made minor updates based on your suggestions. Thanks again for looking into the code in a bit of detail.

The gear.py file now exclusively uses integer values for stats ("Weaponskill Damage":5, instead of 0.05, for example). The main code was updated to divide by 100 when reading these dictionary values into variables. This consistency should make adding more gear to the file easier.

I've added a short block of code to the gear.py file that checks the stat names for each stat included in each piece of gear being considered. It will throw an error if a piece of gear has a typo in one of its stat names (doesn't match a list of accepted stats) and will print which stat/gear threw the error(s). This caught a single typo in my old gear file: "AttacK" should've been "Attack" in Mpaca's Boots, which was worth +65 Attack.

I've replaced the "apex_toad" enemy in the wsdist.py code with a generic "enemy" dictionary that takes its values from the init.py file, which reads the new enemies.py file for stats. I've only included Lv129 Apex Bats (Dho Gates), Lv132 Apex Toad (Woh Gates), and Lv135 Apex Bat (Outer Ra'Kaznar). I may rerun everything against the Lv135 Apex Bat later and update the sets on the front page to see if they change much with the increased stats. The currently published sets are against the Lv132 Apex Toad. I'd like to add Omen bosses and Dynamis W2/W3 enemy stats, but I'm not sure where to find this information.

Finally, some Scythe-DRK gear was copy/pasted over from an older version of my code where I was testing Scythe TP/WS sets. This seemed like a good time to finally update the gear.py file since I already had those dictionaries made. The published version of the code still doesn't deal with TP sets, though.
necroskull Necro Bump Detected! [36 days between previous and next post]
Offline
Posts: 5
By quadramet 2022-04-03 11:54:56
Link | Quote | Reply
 
Hello,
Love the data and thanks for the work you have done!
I was looking at your lua and saw this:

function precast(spell)

attack = player.attack
if attack < 1500 then
AtkFlag = 0 -- Low attack TP sets (trusts)
elseif attack < 3000 then
AtkFlag = 1 -- Mid Attack TP set (normal buffs)
else
AtkFlag = 2 -- Max Attack TP set (2h buffs, SV, crooked chaos, etc)
end

I don't see in the lua where you have sets defined as low attack, mid, and max. Am I just missing it (which is a strong possibility).
Offline
Posts: 298
By Izanami 2022-04-03 13:14:15
Link | Quote | Reply
 
quadramet said: »
Hello,
Love the data and thanks for the work you have done!
I was looking at your lua and saw this:

function precast(spell)

attack = player.attack
if attack < 1500 then
AtkFlag = 0 -- Low attack TP sets (trusts)
elseif attack < 3000 then
AtkFlag = 1 -- Mid Attack TP set (normal buffs)
else
AtkFlag = 2 -- Max Attack TP set (2h buffs, SV, crooked chaos, etc)
end



I don't see in the lua where you have sets defined as low attack, mid, and max. Am I just missing it (which is a strong possibility).


I have two NIN gearswap files. The one I uploaded is the one I actually use. The second one is for testing large changes so I don't break my actual gearswap file before an event.

My in-use file does not have variable attack sets, but that bit of code is the bare minimum to allow variable attack sets to work without having to throw in another F-key toggle. I ended up getting busy and not finishing the test version of that feature a few months ago and have been too lazy to go back and finish it. Since all of the variable attack WS sets are already defined in this thread, it would probably take another ~30 minutes of modifying the lua to make it work in practice.

So you didn't miss anything, I just haven't gone back to add that feature to my actual lua yet.



Edit 2022 June 08:

I've updated my Kastra_NIN.lua file to equip weapon skill sets based on the player's Attack stat immediately before using the weapon skill. This is usually attack in a TP set.

The updated lua appears to function properly, but deciding on exactly what Attack stat qualifies as "mid buff" and "high buff" in my TP set is not easy. For now I've set it to midbuff=2200 and highbuff=3600 based on my no-buff TP sets having around 1200~1300 attack, but these values may be too low still. Generally, WS sets have more attack than TP sets, so being slightly too low should be fine.
Offline
Posts: 5
By quadramet 2022-04-03 13:28:21
Link | Quote | Reply
 
Thanks for the info. I agree that having that function without having to press another f key would be great.

Thanks again for the explanation and the work you are doing.
necroskull Necro Bump Detected! [66 days between previous and next post]
Offline
Posts: 10
By cosmicdivinity 2022-06-08 16:19:49
Link | Quote | Reply
 
I was wondering if there was a list of which weapon skills to use, for which mobs in odyssey C, kinda like bippin has the end of his samurai guide.
Offline
Posts: 298
By Izanami 2022-06-08 16:40:15
Link | Quote | Reply
 
cosmicdivinity said: »
I was wondering if there was a list of which weapon skills to use, for which mobs in odyssey C, kinda like bippin has the end of his samurai guide.

There are a few lists out there, but from what I could tell, many of them have "too much" information to be useful. For example: they may claim that Chi/Teki/To/Ten are all good weapon skills to use on a specific monster group, but in reality you'll notice that only Chi does >70k consistently, while the others do 30~40k without multi-attacks. I think it's much more useful to only list the strongest weapon skill per enemy group.

I've been running the Windower logger for a few years, and based on my damage history in Odyssey C, I've created a list of enemies to use hybrid weapon skills on. I haven't updated it in at least a few months since I generally know what to use by-eye these days, but see below for the list I made that shows which hybrid weapon skills I use on which enemy groups.
I typically use Savage Blade on all other enemies with the exception of Lamia, which I use Evisceration on.
[+]
necroskull Necro Bump Detected! [60 days between previous and next post]
 Asura.Neviskio
Offline
Server: Asura
Game: FFXI
user: Neviskio
Posts: 115
By Asura.Neviskio 2022-08-07 18:46:48
Link | Quote | Reply
 
Been wondering something, I don't usually tier my ws gearsets for buffs but more for ACC needs, been kinda struggling to fit the sets into my setup for normal/acc/highacc/fullacc, I suppose I could still consider the 3 sets tiers as normal/acc/highacc?

Been wondering for a while since I imagine everyone has a different way to handle it. Sorry if it's obvious to everyone else, barely play ninja, but just going to make heishi shorinken soon and was trying to update my gear...
Offline
Posts: 8846
By SimonSes 2022-08-07 19:35:54
Link | Quote | Reply
 
Asura.Neviskio said: »
Been wondering something, I don't usually tier my ws gearsets for buffs but more for ACC needs, been kinda struggling to fit the sets into my setup for normal/acc/highacc/fullacc, I suppose I could still consider the 3 sets tiers as normal/acc/highacc?

Been wondering for a while since I imagine everyone has a different way to handle it. Sorry if it's obvious to everyone else, barely play ninja, but just going to make heishi shorinken soon and was trying to update my gear...

Accuracy issues in WS sets are very rare now on most jobs with MLs being a thing. Much more often now WS sets will be divided on uncapped attack and capped attack. I would maybe use 1 tier of accuracy at most. So all options would be:

  • Uncapped attack

  • Capped attack

  • Full Accuracy


If you are non Mastered and have no MLs and often find yourself with uncapped accuracy in WS set, then you probably need to modify those sets for your needs.
[+]
Offline
Posts: 298
By Izanami 2022-08-10 12:00:33
Link | Quote | Reply
 
I'm not surprised, but the Hattori +2 armor is very underwhelming. It looks like we'll have to wait until Hattori +3 releases to see some potentially useful upgrades. Based on Artifact and Relic, the +3 Empyrean will likely just be more generic stats, though.

I have updated the main post to reflect changes introduced with this updated gear. Hattori Earring +2 is the only new Empyrean +2 item that shows up in these sets.

I give my opinion on each piece below.


  • The "Innin: Double Attack +11%" is likely only active when behind the enemy, which is difficult to maintain. Ryuo Somen +1 (path A or C) should still win for low-haste TP unless you really need the defensive upgrades that Hattori Zukin +2 offers.



  • Hattori Ningi +2 is equally underwhelming. It may have a place for critical hit weapon skills like Evisceration and Blade: Hi in the future as +3, though.

  • Unfortunately, the "upgraded" Migawari causes it to proc at a lower HP percentage. This is generally not a good thing if you remain near full HP anyway, since you do not want to lose Migawari to a move that would only do 50% of your HP and then die to the move that does 80% while Migawari is on recast. I would have much preferred an "Augments Migawari" that provides a chance to proc without consuming the buff.

  • Edit: Thinking about it a bit more, the "Migawari +14" paired with "Damage Taken -12%" can be quite useful. Currently, I use some variation of F12 to manually equip my DT set when I know a big hit is coming. I may modify my lua to additionally equip Hattori Ningi +2 in my panic-button DT set if buffactive['Migawari'] and player.hpp<50. The combination of DT and Migawari+ may save me in those rare situations.


  • Hattori Tekko +2 were not given any Magic Damage or Magic Attack Bonus, which causes them to still lose to Nyame (any path any rank) outside of Futae. At the very least, it's nice to not lose a lot of Magic Accuracy on Futae nukes now.

  • Their new "Magic Burst Damage +10" allows us to swap in Sibyl Scarf and Static Earring, but only while using Futae for our bursts.

  • I would like to see some testing to confirm if the "Elemental Ninjutsu Damage +16%" is still just a mistranslation of "Elemental Ninjutsu: Magic Attack Bonus +16" or if it is a proper x1.16 multiplier now.


  • Hattori Hakama +2 now have Damage Taken -11%, which pairs well with the "Yonin: Counter +16." Unfortunately, Counter is checked after Evade, Parry, and Utsusemi, so building a Counter set for Ninja is exceptionally niche. These are still nice for your engaged tanking set with few or no shadows up.



  • I'm disappointed that Hattori Kyahan +2 were not given "Utsusemi +2." I was looking forward to losing up to 8 shadows per AoE instead of 7.

  • The weapon skill damage is a nice addition for newer players who are still working their way up to augmented Nyame, or those who chose a different Nyame path than B.



  • The Hattori Earring +2 is quite powerful, even without augments. I'm glad the developers at least included Ninja in the "PDL +9%" earring group. The "Katana Skill +12" should not be ignored either, since this converts into both Attack and Accuracy for Katana attacks. This earring is obviously the top choice for weapon skill earrings at attack cap.



In terms of upgrade priority, I'd say Earring >> Hands >> Body > Legs. After obtaining the earring, it's probably best to work on other jobs assuming that they all share the same upgrade currency.
[+]
 Bahamut.Kacil
Offline
Server: Bahamut
Game: FFXI
user: Kacil
By Bahamut.Kacil 2022-09-07 15:51:22
Link | Quote | Reply
 
If I'm using Blade: Shun with TP bonus +950 and it's a WS that increases attack with TP is it reasonable to consider I might be at attack cap doing stuff like Sortie or Omen?

If I have something like 1500 attack in my WS set does Blade: Shun bring that to 3000 at 2000 tp? Or is it more complicated?
Offline
Posts: 298
By Izanami 2022-09-07 16:57:44
Link | Quote | Reply
 
Bahamut.Kacil said: »
If I'm using Blade: Shun with TP bonus +950 and it's a WS that increases attack with TP is it reasonable to consider I might be at attack cap doing stuff like Sortie or Omen?

I'm not sure what the defense of Omen and Sortie fodder is, but if I assume it's around 1000~1200, then you're probably just over attack cap for Blade: Shun in your situation. The BGWiki PDIF page suggests that you'll need at least 3.35 times more attack than the enemy's defense to be capped. Assuming Dia3 is up (-20%), then you'll need 2680~3216 attack to be considered capped with that defense range.

I recommend using the mid-buff set from the front page, but maybe swapping out the body and/or hands for what the low-buff set uses just to get a bit more attack.

As a side note:
If you've built your Hybrid WS set (maybe R15+ Nyame), then I strongly recommend using Hybrid WSs on fodder instead of physical weapon skills. With R25 Nyame, I regularly see 80k-100k damage on the Sortie fodder with standard BRD+COR buffs. A single Hybrid SC (To+Chi=Impaction for example) is usually enough to take down fodder in Sortie. With lower ranked Nyame, you could extend this to To+Chi+To or any of the other Hybrid SC variants seen in the Hybrid WS section of the main post.

Bahamut.Kacil said: »
If I have something like 1500 attack in my WS set does Blade: Shun bring that to 3000 at 2000 tp? Or is it more complicated?

This sounds close enough to correct to me. My code treats Blade: Shun at 2000 TP as +100% (x2 multiplier) to the base attack before any other buffs. (edit: I actually apply Shun's attack bonus with other percentage-based buffs like Berserk, Chaos, and Kikoku's aftermath.) Somebody else may have done more testing on this and can provide exact details on how Blade: Shun's "Damage varies with TP" works. For now, the BGWiki page is still labelled as +100% Attack and "Needs Verification."
[+]
Offline
Posts: 8846
By SimonSes 2022-09-08 01:59:09
Link | Quote | Reply
 
One thing that I'm still not 100% sure is, if that attack bonus is unique multiplier or just adds to other % attack buffs like Chaos roll or berserk? I think it's the latter, but yeah, not 100% sure.
[+]
Offline
Posts: 298
By Izanami 2022-09-08 10:35:18
Link | Quote | Reply
 
SimonSes said: »
One thing that I'm still not 100% sure is, if that attack bonus is unique multiplier or just adds to other % attack buffs like Chaos roll or berserk? I think it's the latter, but yeah, not 100% sure.

What you said makes sense. I agree that Blade: Shun's attack buff is most likely applied with other percentage-based buffs.

My previous comment was incorrect. I checked the code once more to be safe and confirmed that I apply the attack boost with other percentage-based buffs like Chaos Roll and Kikoku's aftermath (see line 257 of set_stats.py).

 Bahamut.Kacil
Offline
Server: Bahamut
Game: FFXI
user: Kacil
By Bahamut.Kacil 2022-09-08 11:26:56
Link | Quote | Reply
 
Have you run calculation with Agony Jerkin +1 R15? I have been using that over Adhemar's body which I augmented for fast cast instead. There is almost a 100 attack difference between Malignance body.
Offline
Posts: 298
By Izanami 2022-09-08 12:10:53
Link | Quote | Reply
 
Bahamut.Kacil said: »
Have you run calculation with Agony Jerkin +1 R15? I have been using that over Adhemar's body which I augmented for fast cast instead. There is almost a 100 attack difference between Malignance body.

I checked every piece of modern NIN gear, Agony Jerkin +1 R15 included. Agony Jerkin +1 R15 is a good body for Blade: Shun, but my code finds that Adhemar Jacket +1B wins. This is likely due to the Triple Attack +4%, which plays well with FTP transferring weapon skills like Blade: Shun. The higher accuracy on Adhemar Jacket +1 certainly helps too.

I doubt Adhemar Jacket +1B wins by a huge margin, though. If you already have Agony Jerkin +1 R15, then I recommend using that instead of buying another Adhemar Jacket +1. However, I do not recommend going out of your way to create an Agony Jerkin +1 R15 if you do not already have one.

The complete list of gear I checked, and their stats, can be viewed in the gear.py file. Although, the version on Github hasn't been updated to include recent items like Hattori +2 or the Oshasha's Treatise. I'll push an update to Github later today to include these missing items which are in my local version, but not the Github version.
[+]
 Phoenix.Xax
Offline
Server: Phoenix
Game: FFXI
Posts: 31
By Phoenix.Xax 2022-09-19 21:41:21
Link | Quote | Reply
 
was the gui of this ever released? i would like to play with it and even for possibly other jobs if so
Offline
Posts: 298
By Izanami 2022-09-20 08:34:20
Link | Quote | Reply
 
Phoenix.Xax said: »
was the gui of this ever released? i would like to play with it and even for possibly other jobs if so

The GUI version is not yet finished and I have not even looked at it in many months.

The current status is that a Python-based front end is approaching completion, but I was getting stuck while trying to convert it to one of the other languages mentioned earlier in this thread. I suppose I can simply keep the Python-based GUI that I've been using for concept work and skip using other programming languages for now. I'll work on this more next month after my deadlines pass.

There is a picture of the current layout on the front page in one of the spoilers. I'd like to reorganize it a bit too, but that's relatively simple when compared to changing languages entirely.
 Quetzalcoatl.Langly
Offline
Server: Quetzalcoatl
Game: FFXI
user: Langly
Posts: 684
By Quetzalcoatl.Langly 2022-09-20 10:37:06
Link | Quote | Reply
 
Do you have a timeline for implementing Daken into your calculations?
Offline
Posts: 298
By Izanami 2022-09-20 11:07:45
Link | Quote | Reply
 
Quetzalcoatl.Langly said: »
Do you have a timeline for implementing Daken into your calculations?

Daken is already taken into account for the TP sets, also accounting for the 8-hit limit per attack round (check Daken only "if main_hits + sub_hits < 8"). I don't remember publishing the TP part of the code since it was written on a different computer than the main code. I'll throw the TP sets code on Github after I clean it up bit and confirm that it still works with the main code. This should be done before finishing the GUI too, since I'll now have to include another tab in the GUI for "TP sets."

The problem with the TP sets shown on the front page is that they only consider how quickly you can get TP for your next weapon skill, ignoring damage dealt during TP phase. I don't consider this to be huge problem since the damage dealt during TP phase only really matters for Kannagi Aftermath builds, which rarely get used.
[+]
 Quetzalcoatl.Langly
Offline
Server: Quetzalcoatl
Game: FFXI
user: Langly
Posts: 684
By Quetzalcoatl.Langly 2022-09-20 11:18:00
Link | Quote | Reply
 
Izanami said: »
Daken is already taken into account for the TP sets, also accounting for the 8-hit limit per attack round (check Daken only "if main_hits + sub_hits < 8"). I don't remember publishing the TP part of the code since it was written on a different computer than the main code. I'll throw the TP sets code on Github after I clean it up bit and confirm that it still works with the main code. This should be done before finishing the GUI too, since I'll now have to include another tab in the GUI for "TP sets."

Wonderful, that would be why I didn't find it. Appreciate it!

Izanami said: »
The problem with the TP sets shown on the front page is that they only consider how quickly you can get TP for your next weapon skill, ignoring damage dealt during TP phase. I don't consider this to be huge problem since the damage dealt during TP phase only really matters for Kannagi Aftermath builds, which rarely get used.

It's a pretty rare instance I've found when your white damage skews gearsets by any meaningful amount. With recent MLevel 40 farming I've seen my WS/TP phase damage spread leaning towards 80/20. Of course take that with a grain of salt as that's basically spamming WSs with little regard for SC or others in the party as we're all just blowing through enemies mindlessly.
Offline
Posts: 298
By Izanami 2022-10-11 12:39:52
Link | Quote | Reply
 
I've updated the main post with Hattori +3. I have not updated the TP sets since this part of my code is being updated/cleaned.

I'm still disappointed in this set, but 4/5 pieces make an appearance in the current "best-in-slot" sets calculated for the specific scenario my code uses. I still recommend making small adjustments to the sets presented in this thread based on your exact situation.

  • Hattori Zukin +3 does not show up in any of the weapon skill sets I checked.

  • I still expect Ryuo Somen +1 (path A or C) to win for low-haste TP sets since maintaining position behind the enemy for "Innin: Double Attack +13%" is not easy.


  • Hattori Ningi +3 shows up as best for un-capped Evisceration and Blade: Hi. This is not surprising given the enhanced stats and critical hit rate.

  • I expect Blade: Hi to favor Nyame Mail R30B when it releases.


  • Hattori Tekko +3 finally shows up in our burst set without Futae.

  • The Ichi set technically prefers Gyve Doublet with Warder's Charm R15 for bursts, but I recommend copying the Ni/San set and using Nyame Mail with Sibyl Scarf instead just to maintain a decent amount of Magic Accuracy.

  • Because our burst set uses Hattori Tekko +3 anyway, there are no swaps to use with Futae. Our free nuke set only swaps in Hattori Tekko +3 for Futae.

  • Our burst sets no longer require spending gil on Warder's Charm +1 R15.


  • Hattori Hakama +3 makes an appearance in our Ku set with low buffs. I suppose this is simply due to the raw stats it provides; +44 STR, +63 Accuracy, +63 Attack, and +33 Katana Skill (more accuracy and attack for katana) are a lot for one slot.

  • Seems to only replace Rao Haidate +1B for the most part, but this still saves inventory and gil.


  • The improved generic stats and higher weapon skill damage move these to current "best-in-slot" for many sets when you only consider raw damage.

  • I recommend using Nyame Boots R25B over Hattori Kyahan +3 for weapon skills that benefit heavily from skillchain bonus, such as Blade: Metsu. I do prefer the extra accuracy on Hattori Kyahan +3 for Savage Blade with Hitaki until we see Nyame Sollerets R30B.

  • Hattori Kyahan +3 generally replace Kendatsuba Sune-ate +1, Mpaca Boots R25, and Nyame Boots R25B.

  • Evisceration still uses Kendatsuba Sune-ate +1 due to the triple attack and critical hit rate.

  • I was really looking forward to seeing "Utsusemi+2" on these, but Ninja aren't allowed to have nice things anymore.

[+]
necroskull Necro Bump Detected! [39 days between previous and next post]
Offline
Posts: 298
By Izanami 2022-11-18 23:49:31
Link | Quote | Reply
 
I finally had a bit of time to sit down and work on this over the last week. I pretty much had to restart from scratch, but I believe I have the GUI in a useable form right now. I've written this using PySimpleGUI, which is a Python GUI based on TKinter. As Austar previously mentioned, properly aligning GUI elements is a huge pain using a TKinter-based GUI. This seems to be especially troublesome when I tried my GUI on different computers and screen resolutions. Unfortunately, I do not have the time to learn a proper GUI programming language, so I'll have to stick with Python for now.

While the UI scaling and element positioning definitely need improvement, the code appears to work well enough to at least release it in sort of a "beta" form while I work on the details of making it look pretty. If you can at least see all of the buttons and input fields (your GUI looks roughly similar to the images below) then you should be able to calculate damage and estimate best WS sets much easier than with the original code.

To run the code, simply download and unpack the code in the original GitHub repository and run gui_wsdist.py as you would any other Python file (I use "python3 gui_wsdist.py"). If you run into the error "ModuleNotFoundError: No module named '<name>'", then you simply need to install the module using "pip install --user <name>" or "pip3 install --user <name>" and try again.

The code now also requires installing PySimpleGUI (pip3 install --user PySimpleGUI) and Pillow (pip3 install --user Pillow). There appears to be a way to turn this into a Windows executable that doesn't require any Python, but I need to look into this more. See my next post; the gui_wsdist.exe seems to work now.

The GUI is currently organized into three tabs:




If you do decide to try it out and run into issues, feel free to send me a ffxiah private message (or post an "issue" on the Github page, I'm not sure how that works yet) describing your issue. I have a feeling that a diverse set of users will result in an unreasonably diverse set of issues that will quickly flood this thread if we posted them here. I'm expecting many UI scaling related issues. From what I can tell, for the most part, things looks fine on my Windows10 (1920x1080) and Macbook (Mojave; 2560x1600) computers.

TP sets and nuking sets will be added as separate tabs, currently in progress.
[+]
 Ramuh.Austar
Offline
Server: Ramuh
Game: FFXI
user: Austar
Posts: 10457
By Ramuh.Austar 2022-11-19 09:27:51
Link | Quote | Reply
 
Izanami said: »
There appears to be a way to turn this into a Windows executable that doesn't require any Python, but I need to look into this more.
I use pyinstaller to turn mine into an exe
[+]
Offline
Posts: 298
By Izanami 2022-11-19 14:44:34
Link | Quote | Reply
 
Ramuh.Austar said: »
Izanami said: »
There appears to be a way to turn this into a Windows executable that doesn't require any Python, but I need to look into this more.
I use pyinstaller to turn mine into an exe

Thanks for the note. I had previously given up on pyinstaller after running into an incorrect "missing win32-ctypes" error before making that post. I decided to give it another try after seeing your reply. Reinstalling Python3.8.8 and updating all of my modules appears to have fixed the issue.

I tested the GUI with a few WS sets and everything appears to still work. Unfortunately, even using a virtual environment, the .exe file is still >50MB. I'll look into reducing this further later.

Apparently, you do not need any form of Python interpreter on your computer to run the code with the gui_wsdist.exe file. I'm not sure how this works exactly, but it probably explains why the .exe is >50MB. To run the code, you simply need the gui_wsdist.exe and item_list.txt files and the icons32/ and icons64/ directories. The code can then be run by simply double-clicking on the gui_wsdist.exe file.
[+]
First Page 2 3 4 5 6 7 8 9
Log in to post.