Go to Page... |
Compatibility: | Update 43 (10.1.0) |
Updated: | 10/04/24 09:27 AM |
Created: | 05/18/21 10:32 AM |
Monthly downloads: | 6,536 |
Total downloads: | 98,835 |
Favorites: | 70 |
MD5: |
File Name |
Version |
Size |
Uploader |
Date |
17.1.0 |
6kB |
VeronicaVyxie |
10/02/24 09:40 AM |
Comment Options |
05/18/21, 03:13 PM | |
Forum posts: 21
File comments: 30
Uploads: 0
|
thank you
I love you, my next son will be named Mario in your honor.
|
|
iksaa |
View Public Profile |
Send a private message to iksaa |
Find More Posts by iksaa |
Add iksaa to Your Buddy List |
05/18/21, 03:26 PM | ||
|
Re: thank you
|
|
|
VeronicaVyxie |
View Public Profile |
Send a private message to VeronicaVyxie |
Find More Posts by VeronicaVyxie |
Add VeronicaVyxie to Your Buddy List |
camrenis |
View Public Profile |
Send a private message to camrenis |
Find More Posts by camrenis |
Add camrenis to Your Buddy List |
VeronicaVyxie |
View Public Profile |
Send a private message to VeronicaVyxie |
Find More Posts by VeronicaVyxie |
Add VeronicaVyxie to Your Buddy List |
05/20/21, 04:25 PM | |
|
Thank you for the addon!
Please, if you create new addons, always think about Multi-server support for the SavedVariables and directly add the multi-server support in your ZO_SavedVars:NewAccountWide or ZO_SavedVars:NewCharacterIdSettings function! Many, many players play on NA AND EU servers and the addon settngs differ a lot depending on servers, especially if it's about prices as decimals and decimal points differ e.g. You can use the function GetWorldName() to get the String "NA Megaserver" or "EU Megaserver" and you can either use the 3rd parameter "namespace" of the ZO_SavedVars:New* functions with it, or the last/2nd last "profile" parameter ZO_SavedVars:NewAccountWide(savedVari, version, namespace, defaults, profile, displayName) ZO_SavedVars:NewCharacterIdSettins(savedVariableTable, version, namespace, defaults, profile) Adding it from the start will help you alot as you do not have to migrate them later on somehow. And about "overwriting" functions: Better use SecurePostHook instead, it should be enough: Lua Code:
Attention: It may not work within the inventory (PLAYER_INVENTORY.inventories[...]listView.dataTypes[1] )as you may get "call from insecure code" error messages if you try to use the SecurePostHook in the inventories. So use the --OLD -> troubling way via saving the current setupCallback function and calling it + your functions afterwards like you currently do. Small performance hint: Lua Code:
Lua Code:
Lua Code:
And watch your |c and |r color tags in the strings. Every |c needs to be csed via | before a new |c happens! And |r|r does nothing afaik, 1x r| is enough. Before using a \n you should end the color |c with |r again, or at least do not begin the new color |c before the \n, just do it directly after the \n. Your addon is also mixing the function calls with . and : e.g. ShowTTCPrice.SetupSettings() ShowTTCPrice:Initialize() You should not use : if you are not using an object oriented way, via ZO_Object, where you create new objects of a class via object = ClassName:New(), where self points to the object created. If you just want to call functions use . and not :, else you might get into trouble with e.g. event functions as the 1st parameter of your : called functions assumes it's the own object automatically passed in, where . functions explicitly need the 1st parameter passing in the object manually. Hard to explain, but there are other forum posts about it. Or check ZOs code about ZO_Object. e.g. this: https://github.com/esoui/esoui/blob/ea3a42c9344a610a1a49293f417b7c24db0da546/esoui/ingame/crafting/craftadvisor_manager.lua#L1 ZO_CraftAdvisorManager is the kind of class, inheriting from ZO_Object. ZO_CraftAdvisorManager:New will call initialize and create the object, then return it. The object is created in line 335 CRAFT_ADVISOR_MANAGER = ZO_CraftAdvisorManager:New() CRAFT_ADVISOR_MANAGER got all the : functions now that ZO_CraftAdvisorManager got. If you call them via : you can use self inside the functions where self points to CRAFT_ADVISOR_MANAGER. But if you call them via . only you MUST pass in CRAFT_ADVISOR_MANAGER as 1st parameter to the functions. So for your absic addons it won't make a big difference if you use : or . but the : notation often troubles reading and sometimes even errors then if you are not useing ZO_Object subclasses! Thank you.
Last edited by Baertram : 05/20/21 at 04:47 PM.
|
|
Baertram |
View Public Profile |
Send a private message to Baertram |
Find More Posts by Baertram |
Add Baertram to Your Buddy List |
05/20/21, 05:31 PM | ||
|
|
|
|
VeronicaVyxie |
View Public Profile |
Send a private message to VeronicaVyxie |
Find More Posts by VeronicaVyxie |
Add VeronicaVyxie to Your Buddy List |
05/20/21, 07:24 PM | |||
Forum posts: 0
File comments: 5
Uploads: 0
|
|
||
|
camrenis |
View Public Profile |
Send a private message to camrenis |
Find More Posts by camrenis |
Add camrenis to Your Buddy List |
05/21/21, 09:14 AM | |
|
You can apply the speedup variables for other tables like your SavedVariables in the LAM settings as well
Instead of always using ShowTTCPrice.savedVariables.PreferredPrice define once inside function ShowTTCPrice.SetupSettings() local settings = ShowTTCPrice.savedVariables and then use settings everywhere, instead of ShowTTCPrice.savedVariables.PreferredPrice -> settings.PreferredPrice Works for the getFunc and setFunc as well for defaults etc. as it points to the tables and updates them if you change the pointer. Whereever in your files you use 1 subtable entry more than once inside a scope, a local pointer "could" speed it up a bit. e.g. in function ShowTTCPrice.ChangeInventoryPrice -> settings instead of ShowTTCPrice.savedVariables 1 more hint as the setupFunction defined in for _, i in pairs(PLAYER_INVENTORY.inventories) will fire as well for your BAG_BACKPACK e.g. if you buy a new bagspace via the horse trainer. You should check if the current scene is not the stablescene before calling your custom setupFunction code as it might throw errors or a least it des not need any update there if you buy only backspace. And the quest items cannot be sold afaik so one can exclude the list of the questitems as well via checking for ZO_PlayerInventoryQuest as list's name: Lua Code:
Last edited by Baertram : 05/21/21 at 09:20 AM.
|
|
Baertram |
View Public Profile |
Send a private message to Baertram |
Find More Posts by Baertram |
Add Baertram to Your Buddy List |
07/09/21, 06:38 AM | |
Forum posts: 0
File comments: 15
Uploads: 0
|
Hello! Is there a way at all to have prices in inventory overridden only when its above a certain price? Like showing TTC price only for items above 1000 for example while keeping the rest as vendor prices. Absolutely loving the addon by the way, thanks a lot for your work on it!
|
|
noiamortale |
View Public Profile |
Send a private message to noiamortale |
Find More Posts by noiamortale |
Add noiamortale to Your Buddy List |
11/17/21, 08:33 PM | ||
|
I updated the addon and added your suggestion |
|
|
VeronicaVyxie |
View Public Profile |
Send a private message to VeronicaVyxie |
Find More Posts by VeronicaVyxie |
Add VeronicaVyxie to Your Buddy List |
02/09/22, 12:18 AM | |
|
Thanks for a super useful and well-written addon, Mario!
Being able to see the best way to sell an item (guild trader vs merchant) is fantastic. However, the rendering of the coins is really cramped and weird looking, with the coins butting against the price text. The rendering can be improved (more pleasing and balanced spacing) by adding spaces before each coin icon, as follows: Code:
local priceFormats = { ["Both"] = Colors.Orange .. data.TTCstackSellPrice .. "|r\n" .. Colors.White .. "(|r" .. Colors.DarkOrange .. data.TTCsellPrice .. "|r" .. Colors.White .. ")|r " .. coinIcon, ["Stack"] = Colors.Orange .. data.TTCstackSellPrice.. "|r " .. coinIcon, ["Unit"] = Colors.DarkOrange .. data.TTCsellPrice .. "|r " .. coinIcon } local priceFormatsHighlighted = { ["Both"] = Colors.Green .. data.TTCstackSellPrice .. "|r\n" .. Colors.White .. "(|r" .. Colors.DarkGreen .. data.TTCsellPrice .. "|r" .. Colors.White .. ")|r " .. coinIcon, ["Stack"] = Colors.Green .. data.TTCstackSellPrice.. "|r " .. coinIcon, ["Unit"] = Colors.DarkGreen .. data.TTCsellPrice .. "|r " .. coinIcon } By the way, it might be a good idea to use "Suggested" as the default price. Because "Average" is pure fantasy prices that you will almost never get. Tamriel Trade Centre suffers from data pollution by bots and guilds that intentionally list things extremely high to push up the average prices. Therefore, the min/average/max data in TTC is useless apart from the "min" value (the lowest price observed). The best TTC value is the "Suggested price", which uses an algorithm that combats most of the price-faking by removing all extreme outliers (such as super high values), then taking the cheapest 30% of the remainder (basically the lower third of prices, which is what any real buyer who browses TTC's website would choose to buy from), then it averages all of those "bottom third" prices together, and calculates 80% of that, which puts its final "Suggested price" very close to what the "real value" is (what people are willing to pay)... The official TTC tooltip then generates a suggested price range which is "that suggested price" +/- a few percent. So, here's TTC's price sources: - Average price: Useless (prices things too high since it's affected by all the fake data; for example, if an item has two sources, one for 1g and one for 1000000g, the average will say 500000g). - Max price: Extremely useless / harmful. Full of polluted bot / guild data from people faking the prices. - Min price: Useful sometimes, just to see how low an item has ever gone. I would love to configure TTC to remove the entire min/max/average row from my item tooltips, but Min is sometimes good to have. - Suggested price: Most useful. Lines up very well with the actual "good prices" on the TTC website. You may have seen lots of users complain about TTC, saying that it overvalues items and makes people overpay, and that other auction addons such as "MM" are "better" because they have more realistic prices than TTC? Well, that's because people think that reading the "average" is correct. It's not. The TTC average is a completely compromised number full of fake bot data. Not sure why they even publish that garbage data to players and mislead everyone. Anyway that's my feedback for your sweet addon. It's fantastic. Great job!
Last edited by Messajah : 02/09/22 at 12:31 AM.
|
|
Messajah |
View Public Profile |
Send a private message to Messajah |
Find More Posts by Messajah |
Add Messajah to Your Buddy List |
02/09/22, 09:26 AM | ||
|
Hey thanks for the feedback! Glad you like the addon Just fixed both things you suggested, along with a few other things. Should be updated soon. |
|
|
VeronicaVyxie |
View Public Profile |
Send a private message to VeronicaVyxie |
Find More Posts by VeronicaVyxie |
Add VeronicaVyxie to Your Buddy List |
02/09/22, 10:48 AM | ||
|
|
|
|
Messajah |
View Public Profile |
Send a private message to Messajah |
Find More Posts by Messajah |
Add Messajah to Your Buddy List |
02/09/22, 02:09 PM | |||
|
|
||
|
VeronicaVyxie |
View Public Profile |
Send a private message to VeronicaVyxie |
Find More Posts by VeronicaVyxie |
Add VeronicaVyxie to Your Buddy List |
02/09/22, 05:07 PM | ||
|
I was looking at a Carapace which is 6g to vendor, and is type "Trash". It has no uses in game. But "Show TTC Price" shows it as 26g since someone had listed it in a guild trader. I don't think an item whose only use is to sell for 6g to a vendor, will ever sell for 26g via a guild trader. So if it's possible to retrieve the item type, it may be a good idea to skip TTC prices for Trash items and show their normal gold price instead? |
|
|
Messajah |
View Public Profile |
Send a private message to Messajah |
Find More Posts by Messajah |
Add Messajah to Your Buddy List |