Go to Page... |
Compatibility: | Scions of Ithelia (9.3.0) Endless Archive (9.2.5) base-game patch (9.1.5) Necrom (9.0.0) Scribes of Fate (8.3.5) Firesong (8.2.5) Lost Depths (8.1.5) High Isle (8.0.0) |
Updated: | 03/27/24 11:14 PM |
Created: | 06/09/17 03:03 PM |
Monthly downloads: | 639 |
Total downloads: | 104,378 |
Favorites: | 209 |
MD5: |
File Name |
Version |
Size |
Uploader |
Date |
3.2 |
41kB |
Shadowfen |
11/16/23 02:36 PM |
|
3.1 |
40kB |
Shadowfen |
10/30/23 11:26 AM |
|
3.0 |
40kB |
Shadowfen |
05/03/23 02:44 PM |
|
2.21 |
39kB |
Shadowfen |
03/12/23 06:28 PM |
|
2.20 |
38kB |
Shadowfen |
10/30/22 04:28 PM |
|
2.19 |
39kB |
Shadowfen |
06/05/22 05:16 PM |
|
2.18 |
40kB |
Shadowfen |
03/12/22 03:24 PM |
|
2.17 |
40kB |
Shadowfen |
12/05/21 01:13 AM |
|
2.16 |
39kB |
Shadowfen |
11/04/21 08:49 PM |
|
2.15 |
40kB |
Shadowfen |
08/25/21 09:37 PM |
|
2.13 |
39kB |
Shadowfen |
05/30/21 05:54 PM |
|
2.12 |
39kB |
Shadowfen |
03/07/21 09:23 PM |
|
2.10.2 |
39kB |
Shadowfen |
11/01/20 04:17 PM |
|
2.10.1 |
39kB |
Shadowfen |
11/01/20 02:46 PM |
|
2.10 |
39kB |
Shadowfen |
08/02/20 08:53 PM |
|
2.9 |
39kB |
Shadowfen |
04/30/20 06:17 PM |
|
2.8.2 |
38kB |
Shadowfen |
04/01/20 07:22 PM |
|
2.7.1 |
38kB |
Shadowfen |
10/20/19 05:03 PM |
|
2.7 |
37kB |
Shadowfen |
08/15/19 10:58 PM |
|
2.6 |
37kB |
Shadowfen |
05/02/19 11:10 PM |
|
2.6 |
87kB |
Shadowfen |
02/25/19 10:17 PM |
|
2.4 |
86kB |
Shadowfen |
12/24/18 09:56 PM |
|
2.3.3 |
85kB |
Shadowfen |
10/22/18 06:09 PM |
|
2.3.2 |
85kB |
Shadowfen |
08/13/18 05:56 PM |
|
2.3.1 |
85kB |
Shadowfen |
07/17/18 09:24 PM |
|
2.3 |
85kB |
Shadowfen |
07/09/18 09:17 PM |
|
2.1.14 |
84kB |
Shadowfen |
05/20/18 02:55 PM |
|
2.1.13 |
84kB |
Shadowfen |
03/30/18 11:01 PM |
|
2.1.12 |
84kB |
Shadowfen |
03/30/18 04:10 PM |
|
2.1.12 |
84kB |
Shadowfen |
03/30/18 04:08 PM |
|
2.1.11 |
84kB |
Shadowfen |
03/25/18 04:49 PM |
|
2.1.9 |
84kB |
Shadowfen |
01/08/18 10:50 PM |
|
2.1.6 |
88kB |
Shadowfen |
10/26/17 07:44 PM |
|
2.1.5 |
88kB |
Shadowfen |
10/25/17 06:12 PM |
|
2.1.4 |
89kB |
Shadowfen |
10/09/17 03:19 PM |
|
2.1.3 |
84kB |
Shadowfen |
09/04/17 05:03 PM |
|
2.1.3 |
84kB |
Shadowfen |
09/04/17 04:52 PM |
|
2.1.2 |
83kB |
Shadowfen |
08/20/17 09:53 PM |
|
2.1.1 |
83kB |
Shadowfen |
08/17/17 07:32 PM |
|
2.1.0 |
82kB |
Shadowfen |
08/13/17 02:22 PM |
|
2.0.2 |
82kB |
Shadowfen |
08/10/17 01:32 PM |
|
2.0.1 |
82kB |
Shadowfen |
08/09/17 09:27 PM |
|
2.0 |
82kB |
Shadowfen |
08/06/17 03:02 PM |
|
1.1.1 |
67kB |
Shadowfen |
07/12/17 07:31 AM |
|
1.1.0 |
65kB |
Shadowfen |
07/10/17 07:10 PM |
|
1.0.6 |
63kB |
Shadowfen |
07/02/17 12:43 PM |
|
1.0.5 |
62kB |
Shadowfen |
06/25/17 02:51 PM |
|
1.0.4 |
62kB |
Shadowfen |
06/22/17 11:25 PM |
|
1.0.3 |
59kB |
Shadowfen |
06/16/17 08:49 AM |
|
1.0.2 |
59kB |
Shadowfen |
06/15/17 10:25 PM |
|
1.0.1 |
58kB |
Shadowfen |
06/11/17 05:44 PM |
|
1.0 |
58kB |
06/09/17 03:03 PM |
Comment Options |
05/21/20, 08:00 AM | ||
Hey there,
Glad to see that my code is helpful… for others to copy. You could at least have PM me.
Anyway... Please don't copy how I included the timers in the UI. ... I am really proud of that one. ( It's kind of my signature to fit the info the best possible way in the UI in my Loot'n'Steal addon. ) Cheers, N'Tak'
Last edited by NTak : 05/21/20 at 08:23 AM.
|
||
|
NTak |
View Public Profile |
Send a private message to NTak |
Send email to NTak |
Visit NTak's homepage! |
Find More Posts by NTak |
Add NTak to Your Buddy List |
Sargon_Starblade |
View Public Profile |
Send a private message to Sargon_Starblade |
Send email to Sargon_Starblade |
Visit Sargon_Starblade's homepage! |
Find More Posts by Sargon_Starblade |
Add Sargon_Starblade to Your Buddy List |
05/16/20, 11:06 PM | |
Forum posts: 7
File comments: 11
Uploads: 0
|
Request Bounty Timer
Is it possible to have a timer function added to Thief Tools that will let you know how much time until you are reputable again?
|
|
Sargon_Starblade |
View Public Profile |
Send a private message to Sargon_Starblade |
Send email to Sargon_Starblade |
Visit Sargon_Starblade's homepage! |
Find More Posts by Sargon_Starblade |
Add Sargon_Starblade to Your Buddy List |
05/14/20, 10:21 AM | |||
Forum posts: 0
File comments: 6
Uploads: 0
|
but I will take a look at the other addons code and try to figure out the difference... you might however help me with an example including numbers... if you are at CP220 with 3/4 swiftly forgotten you should have a bounty decay of 92 every 3 minutes (you can verify this by hovering over swiftly forgotten and see if the tooltip is identical), which is what the addon would be using as a value... may I ask, have you been raking up bounty by getting a bounty, waiting some minutes and then getting more bounty? (like getting caught several times a few minutes apart before the bounty decayed) this would tend to destabilize my code and I know the reason behind it but I haven't been able to fix it yet... maybe the other addon would help me with this one.. I am truely sorry that my code didn't work out for you and cast a bad light on shadowfens addon since it's solely my fault that this doesn't work as intended... I hope with your help I can figure out what happend and hopefully how to fix it... ----------------------------------------------------------------- edit: I found out how the other addon manages to be more precise... during the Update 24 API patch a little known function GetSecondsUntilBountyDecaysToZero() has been added to the API, which I didn't see before now... ThiefTools uses a self-written function that tries to determine the time until the bounty decays based on level and swiftly forgotten ranks but this isn't always perfect before the API update there hasn't been a way to accurately determine how long the bounty decay would be and had to be guessed by using only the amount of bounty, the level of the char and the rank of swiftly forgotten... this new function makes this sooo much easier since it gives an accurate value in seconds which only has to get converted to minutes / hours and refreshed every x seconds... NTak Loot Steal uses a simple function for that, based on that it would be easy to adapt the timer in thiefTools too: Code:
local function FormatTimer(s) if s <= 0 then return "" end if s > 3600 then return math.floor(s / 3600) .. "h" end if s > 60 then return math.floor(s / 60) .. "m" end return s .. "s" end local runningBounty = false local function UpdateBountyTimer() local s = FormatTimer(GetSecondsUntilBountyDecaysToZero()) bountyTimer:SetText(s) if s == "" then runningBounty = false return end zo_callLater(UpdateBountyTimer, 1000) end local function OnBountyUpdate(eventCode, oldBounty, newBounty, isInitialize) if not(runningBounty) then runningBounty = true UpdateBountyTimer() end end Thanks for the hint
Last edited by cheshire1981 : 05/14/20 at 10:49 AM.
|
||
|
cheshire1981 |
View Public Profile |
Send a private message to cheshire1981 |
Send email to cheshire1981 |
Visit cheshire1981's homepage! |
Find More Posts by cheshire1981 |
Add cheshire1981 to Your Buddy List |
05/05/20, 02:53 AM | ||
Forum posts: 0
File comments: 26
Uploads: 0
|
What I ended up realising is that the number is way off and there's nothing I can do about it I was kinda hoping I was doing something wrong.. but I guess not. Anyway for that particular feature I'll just continue using NTak Loot'n'Steal.. and if you need help with the math behind the correct number, I suggest you take look in that mods code or contact the author and see how it's done.. because those numbers work very accurately for me. And in case it matters, I'm CP220 or something.. and my Swiftly Forgotten is on 3/4. Legerdemain also not maxed out. GL and thx for the reply |
|
|
denzil |
View Public Profile |
Send a private message to denzil |
Send email to denzil |
Visit denzil's homepage! |
Find More Posts by denzil |
Add denzil to Your Buddy List |
05/04/20, 05:52 PM | ||
|
Code:
GetSkillAbilityInfo(5, 5, 2) |
|
|
Shadowfen |
View Public Profile |
Send a private message to Shadowfen |
Send email to Shadowfen |
Visit Shadowfen's homepage! |
Find More Posts by Shadowfen |
Add Shadowfen to Your Buddy List |
05/04/20, 07:13 AM | |
Forum posts: 0
File comments: 26
Uploads: 0
|
How does the timer for bounty work exactly?
And does it take into account passive "TSwiftly Forgotten"? Because the numbers I'm seeing displayed here make literally ZERO sense So I'm guessing I'm missing something... |
|
denzil |
View Public Profile |
Send a private message to denzil |
Send email to denzil |
Visit denzil's homepage! |
Find More Posts by denzil |
Add denzil to Your Buddy List |
04/23/20, 12:57 PM | |
Forum posts: 0
File comments: 6
Uploads: 0
|
hmmm suggestion:
how about we use my solution as "optional files" for those who would prefer the better estimate and leave your addon as is for those who prefer the (very slightly) lower cpu usage? This might be a good point to branch this with both branches under your control or we could simply add an options in your config menu where players can toggle the more precise timer for lower levels, so we can have the best of both worlds in one version of the addon
Last edited by cheshire1981 : 04/23/20 at 04:03 PM.
|
|
cheshire1981 |
View Public Profile |
Send a private message to cheshire1981 |
Send email to cheshire1981 |
Visit cheshire1981's homepage! |
Find More Posts by cheshire1981 |
Add cheshire1981 to Your Buddy List |
04/22/20, 10:31 AM | |
Forum posts: 0
File comments: 6
Uploads: 0
|
Re: Re: Re: Re: Re: Re: Bounty Reset Clock
I now changed the code of your ThiefTools.lua beginning in line 1058 from this:
Code:
local _,_,earnedRank,_,_,_,_,progressionIndex = GetSkillAbilityInfo(5, 5, 2) local perk = (progressionIndex * 23 + 23) local estimate = ((TT.bounty) * 180.0/perk) - (now - TT.bounty_start) Code:
local _,_,earnedRank,_,_,_,_,progressionIndex = GetSkillAbilityInfo(5, 5, 2) --[[ edited by Ysrthgrathe Thais, EU --]] local function roundnum(num, numDecimalPlaces) -- lua doesn't have a proper rounding function local mult = 10^(numDecimalPlaces or 0) return math.floor(num * mult + 0.5) / mult end local level = GetUnitLevel("player") if level == 50 then -- cp don't count below lvl 50 local cp = GetUnitChampionPoints("player") if cp < 161 then -- above 160 cp there is no change anymore level = level + (math.floor(cp/10)) -- treating every 10cp as 1 lvl for this calculation else level = 66 end end local base = level*0.346 --base bounty decay times the level gives the appropriate bounty decay for each level base = roundnum(base, 1) local perk = (progressionIndex*base+base) perk = roundnum(perk,0) --actual bounty decay based on rank of swiftly forgotten and level of the char, rounded to full gold if (TT.bounty%perk ~= 0) then TT.bounty = (math.ceil(TT.bounty/perk)*perk) --quick and dirty fix to make sure that the timer always starts at a multiple of 3 since bounty only decreases every 3 minutes end --[[ end of edit --]] local estimate = ((TT.bounty) * 180.0/perk) - (now - TT.bounty_start) (edit: it might give you timer which is 3 minutes off within the first 3 minutes of your bounty if you are at lvl 50 cp 160 and have EXACTLY 12996 bounty (or a multiple thereof) but this would correct itself after 3 minutes thanks to your magic and wouldn't even matter much when you already have to wait 5.7 hours (or a multiple thereof) for your bounty to decay ) unfortunately I have to keep most of the checks in your local function bountyCheck(now, drift) since your level, cp and swiftly forgotten could change while you have a bounty on your head and your bounty decay would change accordingly... turns out I need your self-correction magic after all but these calculations really shouldn't make any impact on any CPU that's capable of running ESO at all, even if you have a ton of addons active. I estimate the whole part of my code should use up no more than 150 cycles, which on a 1.2 Ghz single core CPU should take about 1/8000000th of a second or about 0.000000125 seconds... for a measurable impact you would need about 2 million addons doing similar work on this CPU, provided you can actually feel a delay of a quarter of a second feel free to do with my solution as you please, I would be happy if you were to use it and improve your estimates for alot of players (actually EVERY thief below lvl 50 cp 160 since the cp don't get counted for your bounty decay if you are below lvl 50, even if your twink/toon has cp) but since this is your addon it's obviously up to you if you want to use it or not, sorry if I overstepped any boundaries In any case, please know that I deeply appreciate your addon and your work (and your commented code, it's actually quite beautiful), thanks for your great contribution to ESO
Last edited by cheshire1981 : 04/23/20 at 08:45 AM.
|
|
cheshire1981 |
View Public Profile |
Send a private message to cheshire1981 |
Send email to cheshire1981 |
Visit cheshire1981's homepage! |
Find More Posts by cheshire1981 |
Add cheshire1981 to Your Buddy List |
04/22/20, 09:56 AM | ||
|
Re: Re: Re: Re: Re: Bounty Reset Clock
One of the reasons that I haven't bothered to correct for lower level characters is because that problem is self-mitigated as people level up. Toons spend the majority of their playtime above lvl 50/cp 160+ because once you hit CP160 the first time, all new toons after that become CP160 as soon as they hit lvl 50. I don't want to introduce a long calculation/lookup/adjustment for a problem that only is needed when the toon is a "child" and would otherwise unnecessarily add useless calculation. Being able to easily skip the child adjustment without performance penalty is essential. While the performance penalty for unnecessary calculation is probably rather small, people run with LOTS of addons sometimes and it adds up if all of the addons think "just a little bit won't hurt". I know people who run with well over 100 addons. |
|
|
Shadowfen |
View Public Profile |
Send a private message to Shadowfen |
Send email to Shadowfen |
Visit Shadowfen's homepage! |
Find More Posts by Shadowfen |
Add Shadowfen to Your Buddy List |
04/22/20, 05:06 AM | |||
Forum posts: 0
File comments: 6
Uploads: 0
|
Re: Re: Re: Re: Bounty Reset Clock
you set a base value of 23 (for lvl 50 cp 160) but this base value changes with level in the following way: base value = character level * 0.346 (rounded to one decimal point after the comma) to incorporate cp simply treat cp as levels, every 10 cp is 1 level as long as the character is lvl 50, below that the cp don't matter (so a lvl 50 cp 160 would become a lvl 66 char) to use a lvl 50 cp 140 char as an example, treat him like a lvl 64 char so the calculation would look somewhat like this: base = 64*0.346 = 21.798 decay at max swiftly forgotten is 4*base+base, which would be 4*21.8+21.8 = 109 which is exactly the value I was hoping for the value decrease should be rounded to the nearest full number without any decimal points, it should be max. 1 gold off, which would be close enough for a good estimate in nearly every case... I can come up with the appropriate lua code if you want but it shouldn't be that hard to read the character level and cp and round some values in any case... GetUnitLevel("player") and GetUnitChampionPoints("player") should do the trick for this one this leaves only the problem of your timer starting while the heat is still on, which makes your guess somewhat incorrect in the first 3 minutes since a huge amount of heat takes some time to dissipate either we let the timer wait until the heat is gone or I need to start a new excel table and come up with a formula to determine how long the heat takes to dissipate and add this time to your timer at the start in either case you should probably check for GetPlayerInfamyData() which returns heat and bounty as two seperate integers instead of GetFullBountyPayoffAmount() and only start your bounty timer when the heat returns to 0 question is, how do we get your code to wait for the appropriate time... we could either check every second if heat is 0 or I need to come up with a formula of heat dissipation per level to wait for the appropriate time... any suggestion on your part would be quite helpful here oh and what I just noticed: since bounty is only decreased every 3 minutes your initial estimate of the decay time should be a multiple of 3... lets say your bounty is 172g on a lvl 50 cp 160 char, your addon would suggest that the decay time is 4.5 minutes while in fact it would be 6 minutes since it only decreases every 3 minutes, regardless of the amount of bounty left. we should look into this as well to get a perfect estimate (wouldn't be too hard to fix: bounty divided by our estimated bounty decay, rounded up, times 3 should give us the right initial decay time) oh and another addendum, I'm beginning to be a windbag.. it's probably your self-correction magic that's the cause of the frozen timer... as soon as the timer reaches zero (since it doesn't start with a multiple of 3 minutes) it simply freezes on the initial estimated time left and doesn't tick down anymore... but that problem should simply go away once we have my level-dependant base value, the heat fix and the corrected initial estimate in place
Last edited by cheshire1981 : 04/22/20 at 09:42 AM.
|
||
|
cheshire1981 |
View Public Profile |
Send a private message to cheshire1981 |
Send email to cheshire1981 |
Visit cheshire1981's homepage! |
Find More Posts by cheshire1981 |
Add cheshire1981 to Your Buddy List |
04/21/20, 07:59 PM | ||||
|
Re: Re: Re: Bounty Reset Clock
I'm basically calculating decay as seconds/gold and then multiplying by the amount of bounty (gold) to get the number of seconds that it should decay to nothing. I would appreciate the help if you can come up with an equation that can work for lower level characters more accurately as well as maxed characters.
|
|||
|
Shadowfen |
View Public Profile |
Send a private message to Shadowfen |
Send email to Shadowfen |
Visit Shadowfen's homepage! |
Find More Posts by Shadowfen |
Add Shadowfen to Your Buddy List |
04/21/20, 07:27 AM | ||
Forum posts: 0
File comments: 6
Uploads: 0
|
Re: Re: Bounty Reset Clock
I have rank 20 in legerdemain and rank 12 in the thieves guild with every passive skill maxed out and the estimate is still WAY off. I am deeply thankful for your addon, it helped me quite alot. Because of this I would love to help with this problem. According to your code you determine the rank of swiftly forgotton and modify your estimate accordingly but your values don't correlate to my swiftly forgotten modifiers, is it possible that swiftly forgotten takes your character level into account? It should be a bounty decay of 115 but on a lvl 37 char it's only 64 (and on 38 it's 66)... maybe if we figure this out we can make your estimates a bit more reliable... Since it appears to be level dependant and your bounty decay is (<swiftly forgotten rank>*<base value>)+<base value> it all depends on how your base value is being modified by your lower level... I definetely need more data to help with this one but I am getting there edit: As far as I can determine your estimate would have to be based on the rank of swiftly forgotten, the character level and apparently your legerdemain skill... I am getting closer to this but there is another factor that throws off your estimate: your timer starts while the character still have heat though your bounty only decreases after the heat is off... I hope you don't mind me messing about with your addon
Last edited by cheshire1981 : 04/21/20 at 09:25 AM.
|
|
|
cheshire1981 |
View Public Profile |
Send a private message to cheshire1981 |
Send email to cheshire1981 |
Visit cheshire1981's homepage! |
Find More Posts by cheshire1981 |
Add cheshire1981 to Your Buddy List |
04/06/20, 06:09 PM | |
|
Just the status bar
@BassZ1890
When wanting only the status bar, you can turn off auto-looting while stealing and auto-junking with slash commands in chat: /thieftools - Display all of the chat commands for ThiefTools with a brief description of what they do. Of particular interest: /tt.as - Toggle auto-steal mode /tt.tm or /tt.safe - Toggle kill innocents mode /tt.junk - Toggle auto-junk mode |
|
Shadowfen |
View Public Profile |
Send a private message to Shadowfen |
Send email to Shadowfen |
Visit Shadowfen's homepage! |
Find More Posts by Shadowfen |
Add Shadowfen to Your Buddy List |
12/15/19, 06:02 PM | ||
|
Re: Re: Re: Crashing with this mod installed
Another possibility is the library addons that you have installed... You need to check each of the addons you use to find out which libraries they require and then make sure that you have ONLY those required library addons installed. One of my friends installed all of the libraries from minion and then I had to help him track down the unrequired library which was actually causing a problem. I don't run with JunkBuster, so I suppose there could be a conflict between JB and TT in fighting over how the inventory is handled - in particular with stolen items. Probably only one of them should be moving items into Junk. ThiefTools only touches stolen items, you could have it continue to do that (telling JB to leave stolen items alone), or disable the TT autojunking and allow JB to do the whole job of inventory managing. You can try doing a /tt.junk in chat to turn off/on ThiefTools autojunking and see if that helps too.
Last edited by Shadowfen : 12/15/19 at 06:11 PM.
|
|
|
Shadowfen |
View Public Profile |
Send a private message to Shadowfen |
Send email to Shadowfen |
Visit Shadowfen's homepage! |
Find More Posts by Shadowfen |
Add Shadowfen to Your Buddy List |