WoW 2.3 Changes - Concise List

by Iriel | 08/08/2007 03:21:37

Iriel

This is a consolidated list of the announced (and sometimes observed) changes in the User Interface API's and functionality for the 2.3 release. Please note that this thread is to discuss the upcoming changes and any clarifications or features that are a direct result of those changes, or things which we've been asked to remind slouken of.

IMPORTANT: Off-topic or entirely redundant posts are liable to get deleted. It is however in everyone's best interest to not post them in the first place - We'd rather slouken could spend his time coding us cool things than moderating this thread!

Important Changes
* The spell casting mechanism will be improved to remove the need for /stopcasting workarounds on high-latency connections or 'fallthrough' instant cast macros. In 2.3 chat channels are rate limited on the client in the same way whispers are now.
* Each chat channel is limited separately, at a rate of 10 messages in 10 seconds. This means that you can send one message every second without ever seeing delays, or a burst of 10 messages every 10 seconds without seeing delays. Messages that exceed this rate are not dropped, but simply delayed in order until they can be sent. (This does not affect SendAddonMessage() or party/raid/guild chat. )

Macro Commands
* NEW - /petautocasttoggle <slot or spell name>
* NEW - /targetlastenemy, /targetlastfriend
* NEW - /targetexact <name>
* UPDATED - /cancelform will be recognized instantly (as /dismount is currently)
* Added the following macro conditional abbreviations; modifier -> mod, button -> btn, actionbar -> bar, equipped -> worn , stance -> form(e.g. [mod:SELFCAST])

Frame methods
* You should no longer need to call ScrollFrame:UpdateScrollChildRect(). If a child frame, texture or fontstring has changed, the scroll parent will automatically recalculate it's scroll rect and dispatch events appropriately. Of course, please test this out on the test realm when it goes live, and report any bugs.

* NEW - registered = Frame:IsEventRegistered("event")
* NEW - FontString:SetFormattedText(format, ...) -- Like setting the text to be the result of a string.format call, but without the garbage overhead of creating a temporary lua string for the result.
* NEW - Button:SetFormattedText(format, ...)
* NEW - height = FontString:GetStringHeight()
* UPDATED - width = FontString:GetWidth([explicitOnly]) -- Added new optional parameter which, if provided and true, returns 0 if the width has not been explicitly set rather than returning the effective width. Defaults to false.
* UPDATED - height = FontString:GetHeight([explicitOnly]) -- as above, but for height
* NEW - EditBox:SetCursorPosition(position)
* NEW - position = EditBox:GetCursorPosition()
* NEW - ScrollingMessageFrame:SetInsertMode("mode") -- Sets the location into which new strings are added to the frame, mode is one of "TOP" or "BOTTOM". (There's an insertMode XML attribute also)
* NEW - mode = ScrollingMessageFrame:GetInsertMode() -- Gets the current insert mode for a frame
* RENAMED - ScrollingMessageFrame:SetScrollFromBottom(offset) is now ScrollingMessageFrame:SetScrollOffset(offset)


Frame Support
* NEW - frame1, frame2, ... = GetFramesRegisteredForEvent("event")

API Methods
* Explicit calls to message(string) will show the window even if lua errors are turned off in the UI options.

* NEW - PickupItem(itemID or "item")
* UPDATED - count = GetItemCount(item, includeBank,[ includeUses]) -- new includeUses flag that returns the same value that GetActionCount() would for that item
* NEW - count = GetSpellCount("name" or slot [,book]) -- Returns the same value that GetActionCount() would return for that spell
* NEW - selected = IsSelectedSpell(slot) -- Replaces IsCurrentCast()
* REMOVED - IsCurrentCast(slot) -- Replaced with IsSelectedSpell
* NEW - current = IsCurrentSpell("name" or slot [,book]) -- Consistent with IsCurrentAction
* NEW - isConsumable = IsConsumableSpell("name" or slot [,book]) -- Consistent with IsConsumableAction
* NEW - helpful = IsHelpfulItem(item) - Contains a right click ability that targets friendly units (Note that a few spells are neither helpful nor harmful and can be cast on anyone.)
* NEW - harmful = IsHarmfulItem(item) - Contains a right click ability that targets enemy units (See note above)
* NEW - helpful = IsHelpfulSpell("name" or slot,"book") - The spell targets friendly units (See note above)
* NEW - harmful = IsHarmfulSpell("name" or slot,"book") - The spell targets enemy units (See note above)
* NEW - item, link = GetMacroItem(macro)
* NEW - spell, rank = GetMacroSpell(macro)

continued...

[ Post edited by Iriel ]


UI and Macros Forum MVP - Understand GC!

by Slouken | 01/11/2007 17:03:15

Slouken

In 2.3 chat channels are rate limited on the client in the same way whispers are now.
Each chat channel is limited separately, at a rate of 10 messages in 10 seconds. This means that you can send one message every second without ever seeing delays, or a burst of 10 messages every 10 seconds without seeing delays. Messages that exceed this rate are not dropped, but simply delayed in order until they can be sent.

This does not affect SendAddonMessage() or party/raid/guild chat.

by Slouken | 01/11/2007 17:21:44

Slouken

No problem.

by Slouken | 02/11/2007 00:49:56

Slouken

In the next test realm update, spells in /cast and /castsequence will no longer toggle.
This means that a macro like:
/cast Auto Shot
will no longer be exactly equivalent to putting Auto Shot on your action bar, instead it will always try to cast Auto Shot.

by Slouken | 02/11/2007 00:52:56

Slouken

FYI, the secure action buttons use a new secure function ClickSpellByName(), so they still have the expected behavior of toggling spells that you would see by clicking a spell directly in the UI.

by Slouken | 03/11/2007 19:33:54

Slouken


Q u o t e:


Did this make it into 7521, because I'm still having a ton of trouble with global variables not getting loaded properly?


Yes, it should have. Do things work if you turn off taint log? (/console taintLog 0)

by Slouken | 05/11/2007 18:11:20

Slouken


Q u o t e:

No change. I think there's another issue here, but haven't been able to track down where it's breaking.



Did you figure this one out?

by Slouken | 11/11/2007 01:16:17

Slouken

Great. :)

by Slouken | 14/11/2007 13:43:28

Slouken

The name of the turtle polymorph spell changed. Just re-link it into your macro from your spellbook.

by Slouken | 14/11/2007 17:29:37

Slouken

No, the limit has been 50 yards as far as I know since the game shipped. There was a bug however, that you could edit the value in the Config.wtf file and that would bypass the validation. This has been fixed. :)

Edit: What Kysia said. :)

by Slouken | 15/11/2007 18:28:11

Slouken

FYI, the ability to query all of the auction house results was temporarily disabled since it would swamp the client on a full auction house. We plan to re-enable this feature in a future patch.

by Slouken | 16/11/2007 03:28:43

Slouken


Q u o t e:
Regarding the NEW /TARGETEXACT, it is incomplete in design. Please enable the partial match of the left portion of the name, just like the /TARGET command allowed us to do. Spelling out the entire complicated long name is impractical and wastes macro space too. Only need to match the left partial portion of a name to find a target. For example, /TARGETEXACT GROM, will find the something in range starting with GROM, like GROMDEN, GROMER, etc., otherwise no target as expected.

In its simplest form, /TARGETEXACT is technically like /TARGET, except when a match fails and will set no target and does not pick something at random.

The whole point this new macro command is added, should have been to fix, /TARGET, which annoyingly picked any random name that started with the same first letter when the actual target was not found.

Thanks.


The functionality you're asking for is the way /target works now. The bug you mention has been fixed for a while.

Try it! :)

by Slouken | 16/11/2007 16:36:42

Slouken

In 2.3 /cast only does a cast, it doesn't toggle auras. There have been a lot of people asking that this be changed back to the way it used to work, and I'd like to put a few options out there and see what people like most:

* Do nothing, leave things as they are now.
* Change CastSpellByName() to always toggle auras that are marked "togglable", like it did prior to 2.3.
* Add /activate which is similar to /cast, but toggles auras and auto shot, acting like a real action button.
* Add /toggleaura which acts to toggle any aura that follows it, regardless of it's marked "toggleable"

Thoughts?

by Slouken | 16/11/2007 18:54:15

Slouken

Okay, after your feedback and lots of discussion, I think for 2.3.2 we'll add /activate, which will act as though you had clicked on the action directly in the action bar.

Thanks!

by Slouken | 19/11/2007 21:38:23

Slouken


Q u o t e:

So, that also means that, say, a druid could write this macro:
/cast [modifier] !Dire Bear Form; Dire Bear Form

And it would send her straight to bear form from any other form (including caster), toggle her OUT of bear form into caster form with no modifier, but recast DBF (breaking roots and resetting Furor) if she held a modifier.


Yep!

by Slouken | 26/11/2007 23:05:15

Slouken

There's a new macro option in 2.3.2:
bonusbar:N
This evaluates to true if the bonus bar is set to the specified value, or if you leave the value off, it will evaluate to true if any bonus bar is in use.

Each stance and shapeshift form uses a bonus bar, in addition the new possession uses bonus bar 5.

So for example, you could create a mind control toggle macro like this:
/cast [nobonusbar:5] Mind Control
/cancelaura Mind Control

by Slouken | 30/11/2007 23:45:12

Slouken

UIParent_ManageFramePositions() and ShowUIPanel() and HideUIPanel() have been completely reworked to avoid taint issues for 2.3.2.

If you have code that manages or overrides frame positions, please test your code out on the test realm to make sure it still works.

Blizzard Announcement Recent Blizzard Announcements

 



Loaded in 0.21869 seconds