Its a nice idea to be clever in swapping records around players for local file storage. I'll have to think about it, cause that opens up for a lot of possible hacks and the potential for a LOT of overhead. I guess what I'm trying to say is that the ideal situation would be to allow a method on load and on save (similar to local save/load variables) where you can post formatted variables (or load) via http. This would allow people to populate a db on a website. Also, if, say, Im out for a day and raid the next, the addon would auto pull the most recent data from the site. This would allow for only totals to be stored in guild storage, which would be very small.
The whole EPGP addon project would be worlds simpler if we just stored total scores, but Im sure you can understand that this is a nightmare waiting, as any corruption to the data, via user mistake or bug, would have catastrophic results.
1.8 live changelist:
* The persistance library, including Utility.Serialize.* and SavedVariables, will now properly deal with tables that contain more than 65,535 items. Note that large tables will result in extraordinarily ugly and non-human-readable output.
* Many enduser experience improvements!
* We've added an Addon Error dialog that will display a user-friendly warning about addon errors. This provides an easy way to ignore errors, an easy way to disable broken addons, and an easy way to copy entire error messages to your clipboard. This also makes broken addons a bit noisier and more irritating. If your addon is broken, we recommend making it un-broken. This dialog can be disabled in Settings, under the Misc section.
* We've changed the standard addon error spam to give a user-friendly single line, with a link that can be clicked for more details. This behavior can be overridden in Settings, under the Misc section.
* Implemented the Addon Performance Watchdog. The Watchdog will monitor Lua execution performance. If a single Lua environment call (generally defined as "all the handlers of an event") takes more than a predefined amount of time (currently 0.1s), it will print out a performance warning once the execution is done. If it takes more than a much longer amount of time it will begin rapidly injecting errors into that execution, in the hopes to return control to the user. Note that this isn't intended to be a clean exit or a clean recovery - this is a hack attempt to forcibly keep the game playable. We've also introduced Inspect.System.Watchdog() that tells you how much time you have remaining until warnings are generated, but we strongly don't recommend using this for performance-sensitive things - it is not 100% accurate.
* Reworked the unit availability system. The original intention was that units would be either "available" or "unavailable". It turns out reality is more complicated than that - many units also have a partial availability, such as partymembers in a different map, or the player themselves before login. Added Event.Unit.Availability.* to notify you on availability changes. Added .availability member to Inspect.Unit.Detail() to monitor current availability. Added Utility.Unit.Availability() which outputs the members you can expect to see in various availability levels. This should make it possible to accurately track buff changes on partymembers.
* Added the ability to handle limited HTML in Text elements. Right now, this is limited to <b>, <i>, <u>, <font color="#rrggbb">, and <a lua="scriptToBeRunOnClick()">. Support for more tags may be added later. See documentation for Text:SetText() for details.
* Added Inspect.Setting.*, which can be used to inspect the user's game settings.
* Added Inspect.Console.*, which can be used to inspect information about the user's open console windows.
* Added Command.UI.Error(), which can be used to bring up the error window based on an error ID.
* Added Command.Console.Display(), which can be used to display plaintext or HTML text in any console window.
* Added clientside storage of recent addon errors. The ID is provided in Event.System.Error(), and Inspect.System.Error.Detail() can be used to inspect them. Note that there is an upper limit on how many will be stored, and old ones will be thrown away gradually.
* Added Inspect.Time.Server().
* Inspect.Addon.Detail() now includes name, nameShort, and description fields, to aid in displaying information for internationalized addons.
* Added UI.Native.Conquest, UI.Native.Streaming, and UI.Native.TraySocial.
* RiftScrollbar and RiftSlider now support ranges where the min is equal to the max.
* Event.Cursor(), Inspect.Cursor(), Event.Tooltip(), and Inspect.Tooltip() will immediately use the new style of Ability ID. Look at the lower "Upcoming Breaking Changes" section for more detail.
UPCOMING BREAKING CHANGES:
* The old 'a' style of ability ID is going away! Ability IDs are taking on a new format. If the old ability was a0000000012345678, the new ability ID will be A12345678xxxxxxxx, where the x's will be some hex value. This is going to be a gradual changeover.
First, all existing *.Ability.* functionality has been duplicated into *.Ability.New.* functionality, and "ability" return members will be supplemented by "abilityNew" members.
In a future patch, the old *.Ability.* functionality, and "ability" members, will be removed.
We'll then wait for another patch, then re-introduce the *.Ability.* functions with new behavior.
Finally, we'll remove the now-redundant *.Ability.New.* functions. Note that the *.Cursor.* and *.Tooltip.* APIs will be changed immediately, as per the above "Breaking Changes" section.
"So, what should I do about this?"
* If your addon does not deal with abilities in any way, you don't need to worry about this.
* If your addon deals with abilities, but does not store ability IDs either in an internal database or in SavedVariables, then you'll need to replace any *.Ability.* API calls or event hooks with *.Ability.New.* API calls and event hooks. Later, you'll need to change that back. This should be all the changes required.
* If your addon uses an internal ability database for player abilities, you'll also need to convert your database over. This can be done by calling Inspect.Ability.New.Detail() for each item in your database and replacing the old-style key with the idNew member of Inspect.Ability.Detail().
* If your addon stores player ability IDs in SavedVariables, you'll need to convert your database over on each user's computer. This can, again, be done via Inspect.Ability.New.Detail(). Note that the ability to read old-style ability IDs will be going away eventually - if you wait until the last minute to implement this, any user who doesn't get your update may end up unable to convert their old settings.
* If your addon stores non-player ability IDs, either as a database or as SavedVariables, and you don't have an easy way to get new ability IDs, then you may want to implement your own matching function. As mentioned, an ability of format a0000000012345678 will now show up as A12345678xxxxxxxx. You can therefore convert new-style ability IDs to old-style ability IDs easily, although the reverse conversion is not possible.
* The old functions will remain fully functional until 1.10. They may generate warnings or require user intervention to work after that. Fix your code sooner, rather than later!
* Event.Unit.Available and Event.Unit.Unavailable are going away, and being replaced by the new Event.Unit.Availability.* hierarchy. See New Features for details.
* print_raw is now deprecated and will be removed. Use Command.Console.Display() instead.
* Added a valid Addon directory under My Documents. Rift will use this new directory if it has things in it. If not, it will check the old directory under the Rift install location. If neither location has addons installed, it will use the new location. This shouldn't break any existing installations, although new addon users will have their addons stored in a new place. Addon updater authors should be aware of this change!
* Updated Luajit to 2.0b9p1 (plus one cherrypicked patch from 2.0b10 that you don't have to worry about.)
* Fix a glitch preventing the "stack" and "stackMax" members from being included in Inspect.Item.Detail() calls when querying a guild bank item.
* The persistance library, including Utility.Serialize.* and SavedVariables, will now properly deal with tables that contain more than 65,535 items. Note that this will result in extraordinarily ugly and non-human-readable output for large tables.
* "@mouseoverui" targeting will now properly understand the addon system.
Code:Inspectors: Inspect.Ability.New.Detail Inspect.Ability.New.List Inspect.Console.Detail Inspect.Console.List Inspect.Setting.Detail Inspect.Setting.List Inspect.System.Error.Detail Inspect.System.Watchdog Inspect.Time.Server Commands: Command.Console.Display Command.UI.Error Utilities: Utility.Unit.Availability Native frames: UI.Native.Conquest UI.Native.Streaming UI.Native.TraySocial Events: Event.Ability.New.Add Event.Ability.New.Cooldown.Begin Event.Ability.New.Cooldown.End Event.Ability.New.Range.False Event.Ability.New.Range.True Event.Ability.New.Remove Event.Ability.New.Target Event.Ability.New.Usable.False Event.Ability.New.Usable.True Event.Unit.Availability.Full Event.Unit.Availability.None Event.Unit.Availability.Partial Parameter types: console error
I actually have no idea how that got checked in in the first place.
Can we use native frames as parents for our frames? I tried to set UI.Native.MapMini as frame's parent, got "Incorrect function usage".
Are saved variables saved in this folder too? Then I'd say everyone using addons on PTS should be aware of this change. If addon uses global saved variables, then any changes made on PTS will override live settings and vice versa.* Added a valid Addon directory under My Documents. Rift will use this new directory if it has things in it. If not, it will check the old directory under the Rift install location. If neither location has addons installed, it will use the new location. This shouldn't break any existing installations, although new addon users will have their addons stored in a new place. Addon updater authors should be aware of this change!
Feminism is the radical notion that women are people.
Last edited by Kreiri; 06-19-2012 at 02:36 AM.
Feminism is the radical notion that women are people.
* The addon system is no longer in beta!
* The addon manager is now accessible through the escape menu. It is no longer necessary to return to character select in order to change addons, although changing addons will still trigger a UI reload.
* Add Command.Item.Standard.*. These functions are defined to behave exactly like the standard UI behaves, and should make it easier to implement inventory addons of various kinds.
* Added Inspect.TEMPORARY.Experience() and Event.TEMPORARY.Experience(). Like *.TEMPORARY.Role(), these will probably be moved at some point in the future, but they won't be removed until the same functionality is available elsewhere.
* Text HTML links will now work properly with Text frames.
* Inspect.Documentation()'s machine-readable mode will now include information on whether a given function is disabled for deprecation reasons.
* Slightly reduce the addon system's memory usage.
* Multiple uses of an addon texture will no longer result in that texture being loaded multiple times.
* Add support for "warfront" flag to Inspect.Console.Detail().
* "combatOther" flag will no longer incorrectly appear in the results for Inspect.Console.Detail().
* "accolade" flag will now correctly appear in the results for Inspect.Console.Detail().
* "general" and "combat" console IDs can now be used as parameters to all *.Console.* functions.
* Fix incorrect parameter errors generated by Console functions when passing in a raw console ID.
* Event.Unit.Unavailable will no longer trigger every single frame.
* Event.Unit.Available/Unavailable should now properly parallel their old behavior.
* Fix issues with using Command.Cursor() on an equipped item.
* Fix various problems with using Command.Cursor() in a mouse button event handler.
* It should now be possible to create non-buyout auctions with Command.Auction.Post().
* HTML functions will no longer fail silently on a parse error.
* Fix issues with HTML Text frames defaulting to an improper size.
* Command.Unit.Menu() will now function properly on logged-out partymembers.
* Event.Ability.New.Cooldown.Begin will now show the time remaining on new cooldowns, not the total time. This should be the same in almost all situations but fixes a bug where talented Pyromancers would see 1.5s for their global cooldown.
* Fix problems with the parameter type list shown on error when the first parameter is a string or a table.
* Fix several cases where errors in /script would be reported as "Unknown Addon".
* Ensure that the watchdog error will always end up reported before any errors caused by the watchdog's hard cutoff.
* Inspect.Documentation() will no longer incorrectly stash deprecation information in the signatures table.
* Fix tooltips for addon options.
Code:Inspectors: Inspect.TEMPORARY.Experience Commands: Command.Item.Standard.Drag Command.Item.Standard.Drop Command.Item.Standard.Left Command.Item.Standard.Right Native frames: UI.Native.Mentor Events: Event.TEMPORARY.Experience
Last edited by ZorbaTHut; 06-19-2012 at 02:53 AM.
How to dump the documentation then?Code:Error: performance warning In TrionDevelopmentTools / Slash command stack traceback: TrionDevelopmentTools/dump.lua:43: in function 'print_all' TrionDevelopmentTools/dump.lua:59: in function 'print_all' TrionDevelopmentTools/dump.lua:107: in function 'dump' TrionDevelopmentTools/dump.lua:285: in function <TrionDevelopmentTools/dump.lua:283>
With the addon manager window open in game if I hit apply, after the reloadui some addons will end up above the manager window. This could be a particular issue with unit/raid frames that are inactive and only show a very transparent frame.
oh I got a good one here.
With the in-game addon manage open, if you enable an addon (with Apply) that causes Watchdog to fire off and click Disable, the reloadui will go off, but the addon will still appear to Enabled. Subsequently trying to click the checkbox to disable it will result in the addon being enabled again.
Also there is not a link for the Addon Manager in the System Menu Bar.