World of Warcraft

1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 . 20 . 21 . 22 . 23 . 24 . 25 . 26 . 27 . 28 . 29 . 30 . 31
77
View All Posts by This User Toggle Ignore / Unignore This User
  • 0. Upcoming 2.4 Changes - Concise List   11/19/2007 05:31:47 PM PST
quote reply
This is a consolidated list of the announced (and sometimes observed) changes in the User Interface API's and functionality for the 2.4 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!

Significant Changes
* The combat logging mechanism is completely overhauled with explicit data instead of text strings delivered to the UI. See slouken's post below for a sneak-peak at some of the current details. Highlights include detailed flags indicating relationship of involved units to player, unique identifiers for units with the same name within the combat log -- great for log analysis.

http://forums.worldofwarcraft.com/thread.html?topicId=2968233433&postId=43107123291&sid=1#177
http://forums.worldofwarcraft.com/thread.html?topicId=2968233433&postId=44224446158&sid=1#200
http://forums.worldofwarcraft.com/thread.html?topicId=2968233433&postId=44224448659&sid=1#207
http://forums.worldofwarcraft.com/thread.html?topicId=2968233433&postId=44201363100&sid=1#231

* The combat log range is now everything you can see.

* The In-game Interface Options screen is being revamped and the new architecture should allow AddOn authors to modify its contents without the taint issues presented by the current system. Additionally this system will contain an area for AddOn authors to present their own configuration options. Authors interested in this feature should be sure to experiment on the PTRs before patch 2.4 is released so that any issues can be surfaced and discussed. Basic details on how to use this system can be found in code comments in the 2.4 UIOptionsPanel.lua.

http://forums.worldofwarcraft.com/thread.html?topicId=2968233433&postId=43106843945&sid=1#156
http://forums.worldofwarcraft.com/thread.html?topicId=2968233433&postId=44930053120&sid=1#294

Font String Display
* Textures can now be included in FontStrings locally using a new | escape code: |T<path>:<width>[:<height>:<xOffset>:<yOffset>]|t
* Selected textures can also be included in Chat messages and sent to other users, the current available textures are represented in a form like: {star}

http://forums.worldofwarcraft.com/thread.html?topicId=2968233433&postId=44930053081&sid=1#293

Visual Settings
* There's a new cVar unitHighlights; 0 = no model highlighting with Alt-Z, 1 = model highlighting on with Alt-Z. (e.g. /console unitHighlights 1)
* Players can now toggle the display of Friendly and Enemy player names, as well as their pets and creations. You can toggle cosmetic pet names too. :)

(Continued...)

[ Post edited by Iriel ]


UI and Macros Forum MVP - Understand GC!
77
View All Posts by This User Toggle Ignore / Unignore This User
  • 1. Re: Upcoming 2.4 Changes - Concise List   11/19/2007 05:32:49 PM PST
quote reply
Inventory Management
* NEW - freeSlots, bagType = GetContainerNumFreeSlots(bagIndex) -- Returns the number of free slots in a bag, and the type of items that can go in the bag. For bagType, 0 means any item can go in the bag.
* NEW - bagType = GetItemFamily(itemID | "name" | "itemLink") -- When used with a container, this returns the type of container. When used with an item, it returns the type of container the item can go in. However, bagType is a bitflag, so GetItemFamily for something that could go in a quiver (bagType 1) and an ammo pouch (bagType 2) would return 3. A bag that can hold both arrows and bullets would also return 3.

Information
* NEW - icon = GetItemIcon(item) -- Returns the icon for an item (as long as the item is valid), even if GetItemInfo returns nil.
* NEW - inRange = UnitInRange(unit) -- Determines if a unit is within a (fixed by Blizzard) useful range based on flash heal/cure range) This is now used by the Blizzard Raid UI (Confirmed to only apply to party/raid units)
* NEW - guid = UnitGUID("unit") - Returns a string representing a unique identifier for the given unit. This is the same string that is used in the combat log to identify a unit.

Events
* PARTY_MEMBER_ENABLE and PARTY_MEMBER_DISABLE will no longer provide information about which party member was enabled or disabled.
* There is a new event, UPDATE_INVENTORY_DURABILITY which will fire whenever the durability of an item in your inventory changes. (UPDATE_INVENTORY_ALERTS has not changed, and is sent in conjunction with UPDATE_INVENTORY_DURABILITY when appropriate.)

Secure Templates
* The SecureStateHeader now provides a mechanism to change its own attributes in response to state changes.

Debugging
* In 2.4, you'll be able to pass a coroutine as a first (optional) parameter to debugstack()

(Last Updated 2008-02-28 12:26 Pacific)

[ Post edited by Iriel ]


UI and Macros Forum MVP - Understand GC!
77
View All Posts by This User Toggle Ignore / Unignore This User
  • 2. Re: Upcoming 2.4 Changes - Concise List   11/19/2007 05:33:54 PM PST
quote reply
The "Actual changes 2.3.3 - 2.4.1" thread can be found here:
http://forums.worldofwarcraft.com/thread.html?topicId=5835557417&sid=1

[ Post edited by Iriel ]


UI and Macros Forum MVP - Understand GC!
77
View All Posts by This User Toggle Ignore / Unignore This User
  • 3. Re: Upcoming 2.4 Changes - Concise List   11/19/2007 05:35:06 PM PST
quote reply
2.4.2 Changes
* Fixed an issue where UNIT_DIED is not firing for player deaths.

* GlobalStrings.lua has been overhauled and a number of strings restructured or changed in support of greater flexibility in localization.

* Removed the ability to target spells via the minimap ping.

2.4.3 Changes

* Custom categories in the UI Options panel will be alphabetized, and subcategories shown in the order they were registered. Subcategories will also be re-sortable by AddOn code.

* Double quotes within strings will be correctly escaped in combat logfile output.

* Regions (FontStrings/Textures) can no longer be set to have no parent.

Updated: 2008-07-15 20:03 Pacific

[ Post edited by Iriel ]


UI and Macros Forum MVP - Understand GC!
77
View All Posts by This User Toggle Ignore / Unignore This User
  • 4. Re: Upcoming 2.4 Changes - Concise List   11/19/2007 05:36:07 PM PST
quote reply
(Almost done with the overflow posts.... please stand by)

UI and Macros Forum MVP - Understand GC!
77
View All Posts by This User Toggle Ignore / Unignore This User
  • 5. Re: Upcoming 2.4 Changes - Concise List   11/19/2007 05:37:30 PM PST
quote reply
(Last overflow post, let's see if we can reach it!!)

UI and Macros Forum MVP - Understand GC!
Blizzard Entertainment
View All Posts by This User ignore-inactive
Slouken
Blizzard Poster
  • 9. Re: Upcoming 2.4 Changes - Concise List   11/19/2007 05:43:10 PM PST
quote reply
Combat Log Revamp!

In 2.4 the combat log is being completely reimplemented so that it sends events with arguments instead of text strings to the UI code.

It's still in development, so nothing is final, but here is a raw sneak preview:


-- Object type constants
-- Affiliation
COMBATLOG_OBJECT_AFFILIATION_MINE = 0x00000001;
COMBATLOG_OBJECT_AFFILIATION_PARTY = 0x00000002;
COMBATLOG_OBJECT_AFFILIATION_RAID = 0x00000004;
COMBATLOG_OBJECT_AFFILIATION_OUTSIDER = 0x00000008;
COMBATLOG_OBJECT_AFFILIATION_MASK = 0x0000000F;
-- Reaction
COMBATLOG_OBJECT_REACTION_FRIENDLY = 0x00000010;
COMBATLOG_OBJECT_REACTION_NEUTRAL = 0x00000020;
COMBATLOG_OBJECT_REACTION_HOSTILE = 0x00000040;
COMBATLOG_OBJECT_REACTION_MASK = 0x000000F0;
-- Ownership
COMBATLOG_OBJECT_CONTROL_PLAYER = 0x00000100;
COMBATLOG_OBJECT_CONTROL_NPC = 0x00000200;
COMBATLOG_OBJECT_CONTROL_MASK = 0x00000300;
-- Unit type
COMBATLOG_OBJECT_TYPE_PLAYER = 0x00000400;
COMBATLOG_OBJECT_TYPE_NPC = 0x00000800;
COMBATLOG_OBJECT_TYPE_PET = 0x00001000;
COMBATLOG_OBJECT_TYPE_GUARDIAN = 0x00002000;
COMBATLOG_OBJECT_TYPE_OBJECT = 0x00004000;
COMBATLOG_OBJECT_TYPE_MASK = 0x0000FC00;
-- Special cases (non-exclusive)
COMBATLOG_OBJECT_TARGET = 0x00010000;
COMBATLOG_OBJECT_FOCUS = 0x00020000;
COMBATLOG_OBJECT_MAINTANK = 0x00040000;
COMBATLOG_OBJECT_MAINASSIST = 0x00080000;
COMBATLOG_OBJECT_RAIDTARGET1 = 0x00100000;
COMBATLOG_OBJECT_RAIDTARGET2 = 0x00200000;
COMBATLOG_OBJECT_RAIDTARGET3 = 0x00400000;
COMBATLOG_OBJECT_RAIDTARGET4 = 0x00800000;
COMBATLOG_OBJECT_RAIDTARGET5 = 0x01000000;
COMBATLOG_OBJECT_RAIDTARGET6 = 0x02000000;
COMBATLOG_OBJECT_RAIDTARGET7 = 0x04000000;
COMBATLOG_OBJECT_RAIDTARGET8 = 0x08000000;
COMBATLOG_OBJECT_NONE = 0x80000000;
COMBATLOG_OBJECT_SPECIAL_MASK = 0xFFFF0000;

COMBATLOG = ChatFrame2;

-- Process the event and add it to the combat log
function CombatLog_AddEvent(...)
local info = ChatTypeInfo["COMBAT_MISC_INFO"];
local timestamp, type, srcGUID, srcName, srcFlags, dstGUID, dstName, dstFlags = select(1, ...);
local message = format("%s> %s, %s, %s, 0x%x, %s, %s, 0x%x",
date("%H:%M:%S", timestamp), type,
srcGUID, srcName or "nil", srcFlags,
dstGUID, dstName or "nil", dstFlags);
for i = 9, select("#", ...) do
message = message..", "..(select(i, ...) or "nil");
end
COMBATLOG:AddMessage(message, info.r, info.g, info.b);
end

-- Save the original event handler
local original_OnEvent = COMBATLOG:GetScript("OnEvent");
COMBATLOG:SetScript("OnEvent",
function(self, event, ...)
if ( event == "COMBAT_LOG_EVENT" ) then
CombatLog_AddEvent(...);
return;
end
original_OnEvent(self, event, ...);
end
);
COMBATLOG:RegisterEvent("COMBAT_LOG_EVENT");

.

New API functions:
CombatLogResetFilter()
CombatLogAddFilter("events", "srcGUID" or srcMask, "dstGUID" or dstMask)
CombatLogSetRetentionTime(seconds)
seconds = CombatLogGetRetentionTime()
count = CombatLogGetNumEntries()
CombatLogSetCurrentEntry(index)
timestamp, type, srcGUID, srcName, srcFlags, dstGUID, dstName, dstFlags, ... = CombatLogGetCurrentEntry()
hasEntries = CombatLogAdvanceEntry(count)
CombatLogClearEntries()

Note that you can change filters on the fly and re-query previous combat log entries, which are retained for 5 minutes by default.

[ Post edited by Slouken ]

Blizzard Entertainment
View All Posts by This User ignore-inactive
Slouken
Blizzard Poster
  • 10. Re: Upcoming 2.4 Changes - Concise List   11/19/2007 06:00:01 PM PST
quote reply
There is a new console variable in 2.4:

unitHighlights
0 = no model highlighting with Alt-Z
1 = model highlighting on with Alt-Z

e.g.
/console unitHighlights 0
/console unitHighlights 1
80
View All Posts by This User Toggle Ignore / Unignore This User
  • 12. Re: Upcoming 2.4 Changes - Concise List   11/19/2007 06:06:25 PM PST
quote reply
I know it's not final code, but is select(1, ...) in there instead of ... for any particular reason?

"That's the great thing about being a 'lock...you don't have to eat; you don't have to drink; you don't even have to BREATHE. You can subsist entirely on the suffering of your enemies."
80
View All Posts by This User Toggle Ignore / Unignore This User
  • 13. Re: Upcoming 2.4 Changes - Concise List   11/19/2007 06:09:20 PM PST
quote reply

Q u o t e:
I know it's not final code, but is select(1, ...) in there instead of ... for any particular reason?

It definitely says select(i, ...) not select(1, ...) there
EDIT: Never mind I see what you said


Shrig: Die, this is not the general forums. Go away.

Slouken: Out of curiosity, will the old CHAT_MSG_COMBAT_... events still be sent, or will the new combat log event be the only one transmitted?

[ Post edited by Kimina ]


Shirik - Former Co-Author, RDX.Cid
Are you ready for... the conspiracy?
http://conspiracy-ui.com

Shakespeare loved regexes too: /(bb|[^b]{2})/
Blizzard Entertainment
View All Posts by This User ignore-inactive
Slouken
Blizzard Poster
  • 14. Re: Upcoming 2.4 Changes - Concise List   11/19/2007 06:11:43 PM PST
quote reply

Q u o t e:
I know it's not final code, but is select(1, ...) in there instead of ... for any particular reason?


Mostly for clarity, since this this is just sample code.
80
View All Posts by This User Toggle Ignore / Unignore This User
  • 15. Re: Upcoming 2.4 Changes - Concise List   11/19/2007 06:12:21 PM PST
quote reply
Slouken, your babies, can I have them please?

Will there be a way to to get a name/level/whatever from a GUID? Something analogous to UnitName(GUID)?

[ Post edited by Adrine ]


Author of Sanity, SanityBags, Hemlock, and Omen, project lead on Threat-1.0.
Blizzard Entertainment
View All Posts by This User ignore-inactive
Slouken
Blizzard Poster
  • 16. Re: Upcoming 2.4 Changes - Concise List   11/19/2007 06:12:26 PM PST
quote reply

Q u o t e:

Slouken: Out of curiosity, will the old CHAT_MSG_COMBAT_... events still be sent, or will the new combat log event be the only one transmitted?


The old combat events are no longer generated. All existing combat log AddOns will need to be rewritten.
Blizzard Entertainment
View All Posts by This User ignore-inactive
Slouken
Blizzard Poster
  • 17. Re: Upcoming 2.4 Changes - Concise List   11/19/2007 06:13:21 PM PST
quote reply

Q u o t e:
Slouken, your babies, can I have them please?



You'll have to work that out with my beautiful and pregnant wife. :)


Q u o t e:

Will there be a way to to get a name/level/whatever from a GUID? Something analogous to UnitName(GUID)?


Not at the moment, although you'll notice that the name comes with it in the event.

[ Post edited by Slouken ]

80
View All Posts by This User Toggle Ignore / Unignore This User
  • 18. Re: Upcoming 2.4 Changes - Concise List   11/19/2007 06:17:57 PM PST
quote reply

Q u o t e:
You'll have to work that out with my beautiful and pregnant wife. :)

Nuts. Beaten to the punch again.

(My wife probably wouldn't have approved.)

((Congrats. :D))


Q u o t e:
Not at the moment, although you'll notice that the name comes with it in the event.

I'm thinking about Threatlib, and communicating threat levels on mobs in multi-locale groups.

Let's say we have two players, deDE and enGB. deDE sees a combat log event from mob 1234, name is "deDEName". He'll then pass "I have 600 threat on ID 1234" to enUS.

If enGB hasn't seen an event with 1234 yet, though, then they'll have no name to associate with 1234, and deDE can't pass across a name when asked for it, since they won't have the enGB equivalent. It'd be nice to get data via GUID to patch up holes like that, though admittedly, it won't be too critical so long as players have sane combat log ranges.

[ Post edited by Adrine ]


Author of Sanity, SanityBags, Hemlock, and Omen, project lead on Threat-1.0.
80
View All Posts by This User Toggle Ignore / Unignore This User
  • 19. Re: Upcoming 2.4 Changes - Concise List   11/19/2007 06:20:23 PM PST
quote reply

Q u o t e:
All existing combat log AddOns will need to be rewritten.
Looks like I know what the first thing I need to put in the 2.4.0 "It's Patch Day!" sticky is...

Q u o t e:
You'll have to work that out with my beautiful and pregnant wife. :)
Congrats!

[ Post edited by Kaydeethree ]


Live or die trying.

Q u o t e:
Mage - This fight is for the ones who say "SHAMAN NEED BUFFS" HAHAHA!! because mage is EZ SELECT MODE.
1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 . 20 . 21 . 22 . 23 . 24 . 25 . 26 . 27 . 28 . 29 . 30 . 31
Forum Nav : Jump To This Forum
Blizzard Entertainment