come here so that we do not clog this thread with this issue http://www.bluegartr.com/threads/119...18#post6289718
and post your lua to past bin and i take a look at it
if your using something like this sets.nohead = {head={name="empty",priority=1},lring={name="Angha ring",priority=2}}
it could be that you are reversing a equip order like main/sub which could cause an error
or you put priority_order= when it should be priority=
Given how Apnea's Latent Checker doess't work anymore, have there ever been plans to release something similar as a Windower Addon?
Apnea's latent checker does still work, but not in the same way that it used to.
Unequip the weapon, open the program, select the weapon.
Go back to FFXI, move the item to another bag.
Now the LatentChecker will show the latent.
SE stopped sending the latent count with normal item update packets to avoid people being able to see how many WSs they had left (idk why). However, they do still accidentally send it in the packet that should blank a given inventory slot when you move the item away. That's why this trick works.
As far as a plan for release it as a windower addon, it would be hard to make an addon that could do what I described above (which is what it would have to do), but the extdata library does currently include this information if you can figure out how to use it.
I knew about that trick Byrth (altough I didn't know the reason behind it, thanks!), but it doesn't work anymore.
It just doesn't see the weapons, not just the points.
Oh, that's an inventory structure problem then. I no longer own any breakable weapons, so I can't test anything in Lua. The code would look something like:
It requires that you write the name of the equipment that you're interested in when it says 'Name', that it be unequipped, and that you have at least 1 inventory spot open in your satchel.Code:extdata = require 'extdata' res = require 'resources' target_item = 'Kodachi of trials' index = false for i,v in pairs(windower.ffxi.get_items().inventory) do if v.id and res.items[v.id] and (res.items[v.id].en:lower() == target_item:lower() or res.items[v.id].enl:lower() == target_item:lower()) then print('found the item') index = i break end end windower.register_event('load',function () windower.packets.inject_outgoing(0x29,string.char(0x29,6,0,0,1,0,0,0,0,5,index,0x52)) coroutine.sleep(2) print(extdata.decode(windower.ffxi.get_items().inventory[index]).ws_points) end)
missing a closing parethesys on the windower.packets.inject_outgoing line.
When I load it with the item unequipped in my inventory (with the right name written in the lua) I get an error "Lua Error (unknown: 1) - attempt to yield across metamethod/C-call boundary"
Okay, I changed it. Try that.
Still get the same c-call boundary error when I attempt to load it with free space in my satchels and the item unequipped in my inventory
Okay, one more try.
It appearently works, and returns value in the Console after like 1 second.
I love it, thanks.
Should consider releasing it as an official addon![]()
you could also check to see which of them is in your inventory(you can only hold one at a time) then automatically move it and move it back the out put the amount of ws's you have done
i think this might work
Code:_addon.name = 'LatentChecker' _addon.author = 'Byrth' _addon.command = 'latentchecker' _addon.commands = {'lc'} _addon.version = '1.0' extdata = require 'extdata' res = require 'resources' index = false function find_item(target_item) for i,v in pairs(windower.ffxi.get_items().inventory) do if v.id and res.items[v.id] and (res.items[v.id].en:lower() == target_item:lower() or res.items[v.id].enl:lower() == target_item:lower()) then print('found the item') index = i run_check() break end end end function run_check() windower.packets.inject_outgoing(0x29,string.char(0x29,6,0,0,1,0,0,0,0,5,index,0x52)) coroutine.sleep(2) print(extdata.decode(windower.ffxi.get_items().inventory[index]).ws_points) end) windower.register_event('addon command', function(command, ...) command = command or 'help' args = L{...} local trial_weapons = {'Axe of Trials','Gun of Trials','Sword of Trials','Knuckles of Trials','Spear of Trials','Scythe of Trials','Sapara of Trials', 'Bow of Trials','Club of Trials','Pole of Trials ','Pick of Trials','Dagger of Trials','Tachi of Trials','Kodachi of Trials'} if command == 'run' then for i,v in pairs(trial_weapons) do find_item(v) end end end)
Definitely should release this as an add-on.
There are more trial weapons btw! The ones used for Mythic WS for instance (which are the ones I'm using right now). Dunno which more, I guess the level 70 ones (Destroyers, Senjunrikio etc) but I doubt anybody cares for those lol
this is the one byrth started i added ware you can put in what bag you want to use and ware it will unequip (before checking) and retrieve the item back after it checks it
it also has the mythic weapons(not sure if these will work)
all you need to do is type in lc run or latentchecker runCode:_addon.name = 'LatentChecker' _addon.author = 'Byrth,Smd111' _addon.command = 'latentchecker' _addon.commands = {'lc'} _addon.version = '1.0' extdata = require 'extdata' res = require 'resources' bag = 'Satchel' bag_id = 0 unequip = true for i,v in pairs(res.bags) do if v.en == bag:lower():gsub("^%l", string.upper) then bag_id = i end end function find_item(target_item) for i,v in pairs(windower.ffxi.get_items().inventory) do if v.id and res.items[v.id] and (res.items[v.id].en:lower() == target_item:lower() or res.items[v.id].enl:lower() == target_item:lower()) then windower.packets.inject_outgoing(0x29,string.char(0x29,6,0,0,1,0,0,0,0,5,i,0x52)) coroutine.sleep(2) print('Weapon Skills Done = '..extdata.decode(windower.ffxi.get_items().inventory[i]).ws_points) coroutine.sleep(2) get_back_item(target_item) break end end end function get_back_item(target_item) for i,v in pairs(windower.ffxi.get_items()[bag:lower()]) do if v.id and res.items[v.id] and (res.items[v.id].en:lower() == target_item:lower() or res.items[v.id].enl:lower() == target_item:lower()) then windower.packets.inject_outgoing(0x29,string.char(0x29,6,0,0,1,0,0,0,bag_id,0,i,0x52)) print('Done') break end end end windower.register_event('addon command', function(command, ...) command = command or 'help' args = L{...} local trial_weapons = {"Axe of Trials","Gun of Trials","Sword of Trials","Knuckles of Trials","Spear of Trials","Scythe of Trials","Sapara of Trials", "Bow of Trials","Club of Trials","Pole of Trials ","Pick of Trials","Dagger of Trials","Tachi of Trials","Kodachi of Trials","Sturdy Axe","Burning Fists", "Werebuster","Mage's Staff","Vorpal Sword","Swordbreaker","Brave Blade","Death Sickle","Double Axe","Dancing Dagger","Killer Bow","Windslicer","Sasuke Katana", "Radiant Lance","Scepter Staff","Wightslayer","Quicksilver","Inferno Claws","Main Gauche","Elder Staff"} if command == 'run' then print('Starting') if unequip then windower.ffxi.set_equip(0, 0, 0) end for i,v in pairs(trial_weapons) do find_item(v) end end end)
you can change unequip to false so it wont try to unequip your main hand
if byrth is ok with what i have done with his post he can release it
thats a different kind of latent effect that what this is looking for
and i think that one is server side only
You need to add a check that makes sure there is space in both bags (and perhaps searches for other bags to transfer to if there isn't), but otherwise I'd say that's good.
Release! Release! Release!
Sorry for sounding conceited, but I'm pretty confident a lot of people would apreciate such an addon![]()
added
--edit--Code:_addon.name = 'LatentChecker' _addon.author = 'Byrth,Smd111' _addon.command = 'latentchecker' _addon.commands = {'lc'} _addon.version = '1.0' extdata = require 'extdata' res = require 'resources' bag = 'Satchel' bag_id = 5 unequip = true function check_space() for i,v in pairs(res.bags) do if v.access == "Everywhere" and v.en ~= "Inventory" and windower.ffxi.get_items(v.id).max ~= windower.ffxi.get_items(v.id).count then bag = v.en:lower():gsub("^%l", string.upper) bag_id = i break end end end function find_item(target_item) if windower.ffxi.get_items(bag_id).max == windower.ffxi.get_items(bag_id).count then check_space() end for i,v in pairs(windower.ffxi.get_items().inventory) do if v.id and res.items[v.id] and (res.items[v.id].en:lower() == target_item:lower() or res.items[v.id].enl:lower() == target_item:lower()) then windower.packets.inject_outgoing(0x29,string.char(0x29,6,0,0,1,0,0,0,0,bag_id,i,0x52)) coroutine.sleep(2) print('Weapon Skills Done = '..extdata.decode(windower.ffxi.get_items().inventory[i]).ws_points) coroutine.sleep(2) get_back_item(target_item) break end end end function get_back_item(target_item) for i,v in pairs(windower.ffxi.get_items()[bag:lower()]) do if v.id and res.items[v.id] and (res.items[v.id].en:lower() == target_item:lower() or res.items[v.id].enl:lower() == target_item:lower()) then windower.packets.inject_outgoing(0x29,string.char(0x29,6,0,0,1,0,0,0,bag_id,0,i,0x52)) print('Done') break end end end windower.register_event('addon command', function(command, ...) command = command or 'help' args = L{...} local trial_weapons = {"Axe of Trials","Gun of Trials","Sword of Trials","Knuckles of Trials","Spear of Trials","Scythe of Trials","Sapara of Trials", "Bow of Trials","Club of Trials","Pole of Trials ","Pick of Trials","Dagger of Trials","Tachi of Trials","Kodachi of Trials","Sturdy Axe","Burning Fists", "Werebuster","Mage's Staff","Vorpal Sword","Swordbreaker","Brave Blade","Death Sickle","Double Axe","Dancing Dagger","Killer Bow","Windslicer","Sasuke Katana", "Radiant Lance","Scepter Staff","Wightslayer","Quicksilver","Inferno Claws","Main Gauche","Elder Staff"} if command == 'run' then print('Starting') if unequip then windower.ffxi.set_equip(0, 0, 0) end for i,v in pairs(trial_weapons) do find_item(v) end end end)
added a to have it check to find any of these bags Satchel,Sack,Case,Wardrobe have an open slot to move and retreve the item how ever if you have any items in your lot box and thay drop in to your inventory and fill it up it wont retrieve the weapon back
I pushed a new version of Scoreboard to -dev this morning. It should fix the Daken issues as well as some other issues people have reported in the last few months.
Longer explanation:
Suji took a very object-oriented approach when designing scoreboard, which makes it fairly easy to update as long as you aren't changing the way its objects relate to one another. I wasn't doing that, but when I went in to look at how he was parsing the action packet it seemed less than ideal and not very robust (hence not catching Daken). In order to make it more robust (and, consequently, catch Daken), I chose to move most of the action packet processing out of scoreboard and into the actions library.
In the actions library I have implemented something similar to the way GearSwap and Battlemod dissect the action packet, but I tried to do so while maintaining Suji's object oriented approach (and probably did it poorly). Anyway, the bottom line is that it should be more reliable and opens a lot of doors for scoreboard in the long run (in terms of parsing healing, parsing-by-WS, etc.) but currently relies on a lot of code that hasn't been tested a lot. I did something like 80% of the implementation this morning while soloing merit points in Kamihr Drifts on Dancer and then left it running while I did a JP Incursion run and didn't notice anything too strange.
Oh yeah, if you heal a monster now (for instance, if it absorbs physical damage), then that much damage will be subtracted from your current total. Also, drains should count as damage but only up to the value that you see in your log.
I'd appreciate it if you guys could give it a shot and tell me if it works:
Put this in ..windower/addons/scoreboard: https://www.dropbox.com/s/ntau2bs7m0...board.lua?dl=0
Put this in ..windower/addons/libs: https://www.dropbox.com/s/vul8fdbfdl...tions.lua?dl=0
PS. We also do know about the add_to_chat bug and are working to try and figure out why it occurs.
Any suggestions for making this check the equipped weapon if its in either inventory or wardrobe and not just one?
Code:local weapon = res.items[windower.ffxi.get_items().inventory[windower.ffxi.get_items().equipment.main].id].english