2.0.0 Changes - Concise List

by Iriel | 02/09/2006 04:12:11

Iriel

This is a consolidated list of the announced (and sometimes observed) changes in the User Interface API's and functionality for the Burning Crusade expansion (2.0) 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!

WoW 2.0 represents a major change in the UI code, and as such ALL AddOns will need to be updated before they will work, if for no other reason than the Lua 5.0 to Lua 5.1 changes. Some AddOns will be more seriously affected, and a few will have to be redesigned.

Interface AddOn Kit
The WoW 2.0 *BETA* Interface AddOn Kit is now available for download here (For use with the Beta only):
http://www.worldofwarcraft.com/downloads/expansion-bc/addonkit.zip


Significant Changes

The expansion will be using Lua version 5.1.1, which provides a number of useful features, most notably incremental garbage collection and memory-efficient variable arguments. There ARE some incompatible changes with Lua 5.0 and authors are advised to familiarize themselves with http://www.lua.org/manual/5.1
* There is a new unit "focus" which behaves like target, the "PLAYER_FOCUS_CHANGED" event is fired when it is changed, and you receive unit events for this unit.

The protected code mechanism introduced in 1.10 has been extended to cover more functions. Blizzard code is considered secure, all other code is untrusted. The following function types are restricted for AddOns:
* Movement is never allowed.
* Spell casting is allowed outside of combat when initiated interactively. In combat it requires use of the secure templates.
* Targeting is allowed only using secure templates.
* Programatic modification of macros, key bindings, and the action bar page only allowed outside of combat.
* Trading and reloading the UI only allowed interactively.
* Action buttons and targeting frames are now "protected". Protected frames cannot be programmatically moved, shown or hidden, or have their attributes (unit, action, etc) changed during combat.

In addition:
* Script handlers defined in SecureXML templates remain secure when they are inherited, unless overridden by AddOn code.
* The parent of a protected frame is implicitly protected also, as are any frames which it is anchored to.

Lua environment
* The Lua coroutine library is now available - Coroutines create a new Lua state and should be used sparingly to conserve memory.

Slash Commands
The following new slash commands will be available:
* Targeting: /targetlasttarget
* Items and equipment: /use <itemname>, /use <slot>, /use <bagid> <bagslot>, /equip <itemname>, /equipslot <slot> <itemname>
* Pet control: /petattack, /petfollow, /petstay, /petpassive, /petdefensive, /petaggressive
* Casting: /stopcasting will cancel the spell that is currently being cast
* Action bar: /changeactionbar <num> and /swapactionbar <num1> <num2>
* Attacking: /startattack [unit], /stopattack
* Buffs/Auras: /cancelaura name - cancels an aura as if it were right clicked
* /target, /focus, and /startattack take all valid unit ids as well as entity names. Where applicable they default to target if no unit is specified.
* In WoW 2.0, feeding your pet, poisons, etc. will be even easier to macro: /cast Feed Pet then /use Dry Pork Ribs. You will also be able to click on food in your action bar when you are targeting Feed Pet and other item targeting spells.

Spell Casting
* When casting a ranked buff spell that's too high a level for a friendly target the game will automatically use the highest appropriate rank of the spell instead.

Secure Templates
There are several secure templates that AddOns can use to create new functional buttons:
* SecureActionButtonTemplate
* SecureUnitButtonTemplate
* SecureRaidGroupHeaderTemplate
* SecurePartyHeaderTemplate
* SecureStateHeaderTemplate
* SecureStanceStateDriverTemplate
* SecureAnchorButtonTemplate
* SecureAnchorEnterTemplate
* SecureAnchorUpDownTemplate
* The secure button templates have support for pre-loaded items which are used as spell targets for feeding, poisoning, etc.

Actions
* The old CURRENT_ACTIONBAR_PAGE variable is no longer used. There's a new slash command /changeactionbar <num>. Macros that used to do /script CURRENT_ACTIONBAR_PAGE=2 ChangeActionBarChange() can now simply do /changeactionbar 2

(continued...)

[ Post edited by Iriel ]


UI and Macros Forum MVP - Understand GC!

by Slouken | 07/10/2006 04:12:30

Slouken


Q u o t e:


Maybe it would be a good idea to have "PLAYER_REGEN_DISABLED" (or some other event) run when combat is started but before those protections get activated, so mods that present a different interface for combat can continue to work.


Not a bad idea, thanks! :)

by Slouken | 07/10/2006 04:43:59

Slouken


Q u o t e:


Does this work when clicking on enemy players in the world frame? Could I say, set my UI so when i control click a hostile it'll Blind or Poly them, without losing my target (and in the case of a rogue, my combo points?)


That's an interesting idea... :) No, it doesn't work like that right now.

by Slouken | 07/10/2006 22:42:40

Slouken

Okay, back to work... *keeps working on WoW 2.0 features...*

Bump! Recently Bumped Threads

 

Blizzard Announcement Recent Blizzard Announcements

 

We suggest