World of Warcraft

1 . 2 . 3 . 4 . 5
77
View All Posts by This User Toggle Ignore / Unignore This User
  • 0. 3.3 API Changes   10/13/2009 07:34:49 PM PDT
quote reply
This is a consolidated list of the changes to the User Interface API's (and significant blizzard UI components, when appropriate) for the WoW 3.3 release. The purpose is to have an easy place to find out what changes are coming, and discuss how they work.

IMPORTANT: Off topic/entirely redundant posts are liable to get deleted. This wastes everyone's time so please keep it relevant!

DO's
* Please post details on how new features work, or on important changes we've missed so far.
* Feel free to suggest useful improvements to the way new features are implemented (or bugs in them)
* Ask questions about the new features (that haven't already been asked/answered)

DO NOT's
* Please DO NOT post massive diffs or raw lists of changes in this thread, create separate threads for those.
* DO NOT request random new features, those go in one of the suggestion threads.
* DO NOT complain about a feature just because it's not useful to you.


ADDON LOADING
When a .lua file is loaded you can now access the name of the AddOn containing it, and an AddOn specific table (essentially an AddOn variable scope) by assigning them from ...:

local addonName, addonTable = ...;

The same table is sent to every file in a particular AddOn (each AddOn gets its own table).

QUEST INFORMATION
* NEW - QueryQuestsCompleted() requests that the server send the client a list of completed quest ids. Once the list is received the QUEST_QUERY_COMPLETE event is fired. (There is a limit on how frequently this can be called)
* NEW - tbl = GetQuestsCompleted([tbl]) populates a table (creating one if necessary) with the ids of completed quests as keys with true values.

GUIDs
* The format of NPC GUId's has changed, the creature ID is now two hex digits (8 bits) to the left, e.g. Hogger (0x1C0) is now xF13001C0000005D2 (formerly xF1300001C00005D2)

WIDGET API: GLOBAL
* The deprecated GetFrameType method has been completely removed (GetObjectType offers the same result)

WIDGET API: REGION
* NEW - isOver = region:IsMouseOver() -- Tests whether the mouse is over the region, replaces the MouseIsOver FrameXML lua function.

FRAME API: BUTTONS
* NEW - Button:SetMotionScriptsWhileDisabled(enable) --Allows OnEnter and OnLeave to fire while the button is disabled.
* NEW - isEnabled = Button:GetMotionScriptsWhileDisabled()
* This can also be set from XML: <Button motionScriptsWhileDisabled="true">
* The registerForClicks property can now be set from XML.

FRAME API: TEXTURES
* NEW - width = Texture:GetFileWidth() --Gets the width/height of the actual file in use by the texture. (0 if we can't access the texture for some reason) (Note: These currently aren't returning the right values for some Blizzard UI images)
* NEW - height = Texture:GetFileHeight()

MACROS
* The @ symbol has been added as a synonym for 'target=' to help avoid confusion and compact macros, you can do /cast [@focus] Obliterate
* The following new macro conditionals have been added:
vehicleui -- the PLAYER has a vehicle UI
unithasvehicleui -- the target of the macro has a vehicle UI

(Last update, 2009-10-21, 7:30pm ish)

[ Post edited by Iriel ]


UI and Macros Forum MVP - Building a better secure mousetrap!
77
View All Posts by This User Toggle Ignore / Unignore This User
  • 1. Re: 3.3 API Changes   10/13/2009 07:35:45 PM PDT
quote reply
(Reserved for growth)

UI and Macros Forum MVP - Building a better secure mousetrap!
77
View All Posts by This User Toggle Ignore / Unignore This User
  • 2. Re: 3.3 API Changes   10/13/2009 07:36:33 PM PDT
quote reply
(Reserved for more growth)

UI and Macros Forum MVP - Building a better secure mousetrap!
77
View All Posts by This User Toggle Ignore / Unignore This User
  • 3. Re: 3.3 API Changes   10/13/2009 07:37:06 PM PDT
quote reply
(Reserved for wild growth)

UI and Macros Forum MVP - Building a better secure mousetrap!
77
View All Posts by This User Toggle Ignore / Unignore This User
  • 4. Re: 3.3 API Changes   10/13/2009 07:37:47 PM PDT
quote reply
(Reserved for rampant growth)

UI and Macros Forum MVP - Building a better secure mousetrap!
77
View All Posts by This User Toggle Ignore / Unignore This User
  • 5. Re: 3.3 API Changes   10/13/2009 07:40:31 PM PDT
quote reply
(Reserved for suspicious growth)

UI and Macros Forum MVP - Building a better secure mousetrap!
77
View All Posts by This User Toggle Ignore / Unignore This User
  • 6. Re: 3.3 API Changes   10/13/2009 07:41:18 PM PDT
quote reply
(Reserved for more suspicious growth)

[ Post edited by Iriel ]


UI and Macros Forum MVP - Building a better secure mousetrap!
80
View All Posts by This User Toggle Ignore / Unignore This User
  • Burning Legion
  • 7. Re: 3.3 API Changes   10/13/2009 09:49:46 PM PDT
quote reply
Wow, finally we can have mods tell us where to go for those pesky Loremaster achievements. But seriously, this is awesome. And welcome back Iriel :) It's good to get some new green text 'round these parts.

ベロニカ
80
View All Posts by This User Toggle Ignore / Unignore This User
  • 8. Re: 3.3 API Changes   10/13/2009 09:53:25 PM PDT
quote reply

Q u o t e:

The @ symbol has been added as a synonym for 'target=' to help compact macros, you can do /cast [@focus] Obliterate



I'm kinda wondering if this will result in less network traffic being transferred due to 1 character being sent instead of 8.

Then again I have no idea of the dynamics of what happens from the moment you click a macro button server side and client side in terms of traffic.

How to Repair the WOW client on OS X :
http://forums.worldofwarcraft.com/thread.html?topicId=19381850448&postId=193654583826&sid=1#0

PRIVATE MESSAGE ME ON WOWINTERFACE.COM IF YOU NEED TO
80
View All Posts by This User Toggle Ignore / Unignore This User
  • 9. Re: 3.3 API Changes   10/13/2009 09:58:24 PM PDT
quote reply

Q u o t e:


I'm kinda wondering if this will result in less network traffic being transferred due to 1 character being sent instead of 8.

Then again I have no idea of the dynamics of what happens from the moment you click a macro button server side and client side in terms of traffic.


It parses the macros on the C side and calls any relevant functions /cast Nourish calls CastSpellByName("Nourish"), /cast [target=target] Nourish calls CastSpellByName("Nourish", "target") and so on. Technically it saves space in the storing of macros on the server, but it's not going to save anything when you press the macro.

http://www.wowinterface.com/list.php?skinnerid=26677
1
View All Posts by This User Toggle Ignore / Unignore This User
  • The Underbog
  • 10. Re: 3.3 API Changes   10/13/2009 10:59:10 PM PDT
quote reply
The timeout on the quest query is around a minute according to my testing earlier.

--Stewart

[ Post edited by Cuculola ]

80
View All Posts by This User Toggle Ignore / Unignore This User
  • Cenarion Circle
  • 11. Re: 3.3 API Changes   10/14/2009 09:40:03 AM PDT
quote reply

Q u o t e:
The timeout on the quest query is around a minute according to my testing earlier.
--Stewart
Thanks for doing this. (I was going to ask the question when I first saw the topic but didn't want to get a post in before all of Iriel's "suspicious growth" posts.)
Any idea if the timeout increases with a greater number of quests completed (i.e. more data traffic)?

Also, @Blizzard: can we get a function return similar to the canQueryAll of canQuery,canQueryAll = CanSendAuctionQuery()?
Thanks!

Author of ItemLinkMacros, SummonBox, FactionDiscount AutoRepair and AutoStock:
http://wowinterface.com/list.php?skinnerid=103653

Co-founder of the Oldschool channel on [H]Cenarion Circle-US
80
View All Posts by This User Toggle Ignore / Unignore This User
  • 12. Re: 3.3 API Changes   10/14/2009 11:35:26 AM PDT
quote reply
Yay stickied.

I'm going to post a response here from Alestane in my other thread. Hope you don't mind Alestane but I'ld rather this information be in a stickied thread versus a non stickied thread. It also has the benefit of consolidating discussion on things to one thread :)


Q u o t e:

Bluspacecow :

The @ thing for "target=" for macros is interesting as it looks like their trying to save on traffic by making it possible to do the same thing in a macro with 1 character rather than 8. And with some players spamming macros several times a minute I'm guessing the traffic saving will add up. Space saving too :)



Q u o t e:

Alestane :

While these are worthy changes, ironically the reason I originally proposed this change is that it is much harder to mistake for a test. I'm sort of hoping that it will reduce the number of people who attempt things like [notarget=player].

[ Post edited by Bluspacecow ]


How to Repair the WOW client on OS X :
http://forums.worldofwarcraft.com/thread.html?topicId=19381850448&postId=193654583826&sid=1#0

PRIVATE MESSAGE ME ON WOWINTERFACE.COM IF YOU NEED TO
80
View All Posts by This User Toggle Ignore / Unignore This User
  • Drak'Tharon
  • 13. Re: 3.3 API Changes   10/14/2009 11:40:09 AM PDT
quote reply
Any ideas on a best-practice use for that addon table? I'm thinking of using mine to store localization instead of as an addon namespace, since I'll want my addon accessible through a global anyway.

Will there possibly be an API to get a reference to an addon's table if it hasn't been garbage collected? If that were the case, maybe I could do away with my addons' global references.
70
View All Posts by This User Toggle Ignore / Unignore This User
  • Mal'Ganis
  • 14. Re: 3.3 API Changes   10/14/2009 12:07:25 PM PDT
quote reply
There are four new unit id tokens. It appears that additional unit frames will be used for these tokens in the default UI.

The new tokens are boss1, boss2, boss3, boss4.
77
View All Posts by This User Toggle Ignore / Unignore This User
  • 15. Re: 3.3 API Changes   10/14/2009 02:30:24 PM PDT
quote reply

Q u o t e:
Will there possibly be an API to get a reference to an addon's table if it hasn't been garbage collected? If that were the case, maybe I could do away with my addons' global references.


That would defeat the purpose of making it non-global in the first place, if you're going to be doing a global already you should probably continue using it the way it's used now. The idea is that it's a private namespace for that addon (which is messy to do reliably otherwise, short of messing around with globals that are then cleared.

If you like the convenience of having it passed in, but want it global, you could have your first (or really ANY) of your lua files assign it to a global reference.

Aside from that, it's just a table, there's nothing magic about it, so developers shouldn't feel compelled to use it if they dont need it.

UI and Macros Forum MVP - Building a better secure mousetrap!
77
View All Posts by This User Toggle Ignore / Unignore This User
  • 16. Re: 3.3 API Changes   10/14/2009 02:44:17 PM PDT
quote reply

Q u o t e:
I'm going to post a response here from Alestane in my other thread. Hope you don't mind Alestane but I'ld rather this information be in a stickied thread versus a non stickied thread. It also has the benefit of consolidating discussion on things to one thread :)


Cool thanks, I've updated the summary to reflect the benefits.

UI and Macros Forum MVP - Building a better secure mousetrap!
70
View All Posts by This User Toggle Ignore / Unignore This User
  • Mal'Ganis
  • 17. Re: 3.3 API Changes   10/14/2009 02:54:34 PM PDT
quote reply
The frame:GetFrameType() method has been replaced with a new method named frame:GetObjectType(). The returned value is the same.
77
View All Posts by This User Toggle Ignore / Unignore This User
  • 18. Re: 3.3 API Changes   10/14/2009 03:07:19 PM PDT
quote reply

Q u o t e:
The frame:GetFrameType() method has been replaced with a new method named frame:GetObjectType(). The returned value is the same.


GetObjectType has been around for a long time (Since 2.something) - Its introduction deprecated the old GetFrameType - has GetFrameType finally been removed?

UI and Macros Forum MVP - Building a better secure mousetrap!
70
View All Posts by This User Toggle Ignore / Unignore This User
  • Mal'Ganis
  • 19. Re: 3.3 API Changes   10/14/2009 03:09:01 PM PDT
quote reply

Q u o t e:


GetObjectType has been around for a long time (Since 2.something) - Its introduction deprecated the old GetFrameType - has GetFrameType finally been removed?

Yes, I cannot find a single frame where the method :GetFrameType() still exists.
1 . 2 . 3 . 4 . 5
Forum Nav : Jump To This Forum
Blizzard Entertainment