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
Blizzard Entertainment
View All Posts by This User ignore-inactive
Slouken
Blizzard Poster
  • 165. Re: Upcoming 2.4 Changes - Concise List   01/31/2008 09:37:20 AM PST
quote reply
FYI, this is a moderated thread for technical discussion of upcoming features. Off topic posts will be deleted. :)
70
View All Posts by This User Toggle Ignore / Unignore This User
  • Thorium Brotherhood
  • 167. Re: Upcoming 2.4 Changes - Concise List   01/31/2008 02:33:07 PM PST
quote reply

Q u o t e:
Interface Options Revamp

Along with Patch 2.4 we will be releasing a revamped in-game Interface Options screen. Most of the systems that interact with the current Interface Options screen have seen some code changes as a result. The new architecture for the system should allow AddOn authors to modify its contents without the taint issues presented by the current Interface Options system.

Additionally, this new system will contain an area for AddOn authors to present their own configuration options to players with a custom heading, subcategories, and frames. I'd like to encourage authors interested in utilizing these features to try the new system on the PTRs before Patch 2.4 is released. Basic details on how to use this system can be found in code comments in Blizzard_InterfaceUI.lua.

Please be aware that AddOns that interact with the Interface Options screen, modify it, or change the way that its options affect other systems within the game will need to be updated with the release of Patch 2.4.


Heya Zoot,
My initial enthusiasm was tempered a little upon re-reading your post. I'm unclear about whether this new stuff is only for AddOns that interact with the existing settings in the Interface Options, or whether all AddOns will be able to place their configuration frame within Interface Options, regardless of what the addon's doing (specifically, we guessed in Auctioneer that we could "copy" our Configator frame into Interface Options but agreed your post could be read a couple of ways and were going to wait for 2.4PTR went up for clarification). If you have a chance, could you clear this up for us please?

Thanks

I am not paid to listen to this drivel. You are a terminal fool.
80
View All Posts by This User Toggle Ignore / Unignore This User
  • 168. Re: Upcoming 2.4 Changes - Concise List   01/31/2008 03:09:22 PM PST
quote reply
What is this 'GUID' you speak of?
80
View All Posts by This User Toggle Ignore / Unignore This User
  • 169. Re: Upcoming 2.4 Changes - Concise List   01/31/2008 03:11:59 PM PST
quote reply

Q u o t e:


Heya Zoot,
My initial enthusiasm was tempered a little upon re-reading your post. I'm unclear about whether this new stuff is only for AddOns that interact with the existing settings in the Interface Options, or whether all AddOns will be able to place their configuration frame within Interface Options, regardless of what the addon's doing (specifically, we guessed in Auctioneer that we could "copy" our Configator frame into Interface Options but agreed your post could be read a couple of ways and were going to wait for 2.4PTR went up for clarification). If you have a chance, could you clear this up for us please?

Thanks


From what I was able to decode it sounds like that existing addons that modify blizzard UI options will now be able to do so without tainting as easy or at all? It also sounds like they are adding an options interface standard for addons which will be accessible through the interface options menu. If this is true it sounds like a nice addition since this will help elevate the some of the need for screen clutter and /command collision >.>
80
View All Posts by This User Toggle Ignore / Unignore This User
  • 171. Re: Upcoming 2.4 Changes - Concise List   01/31/2008 03:54:14 PM PST
quote reply
70
View All Posts by This User Toggle Ignore / Unignore This User
  • 172. Re: Upcoming 2.4 Changes - Concise List   01/31/2008 05:03:06 PM PST
quote reply

Q u o t e:
What is this 'GUID' you speak of?


Typically that stands for 'Globally Unique IDentifier' (For some definition of 'Globally')

UI and Macros Forum MVP - Understand GC!
80
View All Posts by This User Toggle Ignore / Unignore This User
  • 173. Re: Upcoming 2.4 Changes - Concise List   01/31/2008 10:21:23 PM PST
quote reply
The comment about threads being allowed to be passed to debugstack is interesting, and it makes sense the analysis Cogwheel/Iriel have given. What I really want to know is whether or not debugstack has the facility to do this on already-crashed threads (that is, ones that threw an error propagated all the way to resume, which thus means the thread is no longer valid). According to the manual, the stack will have already been unwound and information is not available on where the error came from.

Hopefully Blizzard caught them for us, but I guess we may not know until PTR time.

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

Shakespeare loved regexes too: /(bb|[^b]{2})/
80
View All Posts by This User Toggle Ignore / Unignore This User
  • 175. Re: Upcoming 2.4 Changes - Concise List   02/04/2008 09:17:24 AM PST
quote reply

Q u o t e:

Q u o t e:
They can implement this now, by using a [bonusbar:5] state driver with their action bar.

err but the switch does not work incombat unlike the default UI??? kinda pointless to implement that but then be unable to use it..

I said that they CAN implement it, not that they HAVE implemented it. Any bar mod author who wants an example is welcome to check out the code at http://wowi.pastey.net/81766 for an example of how to do this, which I have tested with Eyes of the Beast and Mind Control. It worked in combat for me.

UI & Macros Forum MVP

"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."
Blizzard Entertainment
View All Posts by This User ignore-inactive
Slouken
Blizzard Poster
  • 177. Re: Upcoming 2.4 Changes - Concise List   02/04/2008 02:47:49 PM PST
quote reply
2.4.0 Guide to the New Combat Log

Hello Fellow UI Modders,

With the release of patch 2.4.0, we’ve made some enormous changes to the existing combat log. While this will result in some hard work now, it should be easier to maintain your AddOns in the future.

The feature we’re most proud of is the ability to filter your combat log. The combat log stores the last five minutes worth of raw combat events. Filters can be setup on multiple criteria, affiliation, ownership, etc. Any events that match the current filter are passed through the client via the COMBAT_LOG_EVENT message. The combat log filter is global. However, AddOns which want to parse all events the moment they happen can register for the COMBAT_LOG_EVENT_UNFILTERED message. This should allow all existing AddOns to still respond to combat events without a complicated middle-manager AddOn.
While the default combat log will only be setting 1-2 filters at a time, the WoW client supports many simultaneous filters. It’s possible to setup multiple filters to filter very specific source-target-event combinations. If a combat log event passes any of the filters, the COMBAT_LOG_EVENT event fires. This allows AddOns to define extremely specific settings we chose not expose in the base UI.

The new combat log will be coming with two text formats. One is the familiar, grammatically correct sentences with substitutions. The other is a terse format, containing the source, target, spell, action and result. There will be a number of ways to manipulate the formatting, from unit name coloring to coloring the damage numbers by their magic school. The settings used for these formats are stored in the Blizzard_CombatLog_Filters variable.

The result of the new terse format is that it’s very easy to write AddOns to modify or extend the format which ships with 2.4.0. In the formatting section, you can read up on a quick demonstration of how to convert the combat log to a “Nurfed” style combat log. While you can do a lot by just adjusting the settings within WoW, it’s also possible to provide an AddOn that changes the strings used to generate the Combat Log messages. This allows for more extensive formatting changes without re-writing the entire parsing engine. See the Formatting Section for an example.

The whole combat log also supports a new coloring model, based on context. While by default, entire lines are a single color, highlighting the most important details. The combat log also supports coloring just unit names, spells, actions and damage numbers. Spells and damage can also be colored by school. However, there are several features not exposed in the base UI that AddOns can use right away. These are event-specific coloring, unit coloring with greater granularity and the ability to customize the list of highlighted events.

There are several other formatting related features. You can enable timestamps which show the time that spell or attack happened. You can show or hide square braces, change formatting without refreshing the combat log and disable the display of raid icons. These features were too niche to go into the base UI, but can be easily exposed for power users. By now you’ve already thought of some features of your own and are ready to get to coding. So let’s jump straight to some examples.
Blizzard Entertainment
View All Posts by This User ignore-inactive
Slouken
Blizzard Poster
  • 178. Re: Upcoming 2.4 Changes - Concise List   02/04/2008 02:49:11 PM PST
quote reply
Formatting & Coloring
One of the major combat log formats we considered while redoing the combat log was the Nurfed Combat Log format. This combat log format was very concise, made heavy use of color-coding and was one of the final candidates for the combat log. We eventually axed it on the basis of being too overwhelming for new users. However, we left in all of the options to convert the current combat log into the Nurfed combat log.

Here’s how:

Combat Log Settings -> Colors

Unit Colors:
Me -> Green
My Pet -> Dark Green
Friends -> Blue
Enemies -> Red
Neutral -> Yellow
Colorize:
Unit Names -> Checked
Spell Names -> Checked
Spell Color-by-School -> Checked
Damage Number -> Checked
Damage Color-by-School -> Checked
Damage School -> Checked
Entire Line -> Unchecked
All Highlighting Options-> Unchecked

Formatting:
Verbose -> Unchecked
Braces -> Checked
Timestamps -> Checked


However, some people may want it even more terse than that. For this, we present:

Hyper Condensed Mode

To get rid of the word “Fire” and “Frost” type:

/script TEXT_MODE_A_STRING_VALUE_SCHOOL = “”;

That will remove the Fire from “55 Fire”. However, let’s go even farther:

(Critical) (Crushing) (Blocked) (Resisted)

All of these are really long. Let’s compress them:

TEXT_MODE_A_STRING_RESULT_RESISTED = "R";
TEXT_MODE_A_STRING_RESULT_BLOCKED = "B";
TEXT_MODE_A_STRING_RESULT_ABSORBED = "A";
TEXT_MODE_A_STRING_RESULT_CRITICAL = "C";
TEXT_MODE_A_STRING_RESULT_GLANCING = "G";
TEXT_MODE_A_STRING_RESULT_CRUSHING = "Cr";

Now we get

[You] [Fireball] Hit [Spider] 64. (C) (5 R)
Blizzard Entertainment
View All Posts by This User ignore-inactive
Slouken
Blizzard Poster
  • 179. Re: Upcoming 2.4 Changes - Concise List   02/04/2008 02:49:54 PM PST
quote reply
Filters
Filters consistent of 3 parts:

  • Source
  • Target
  • Events

Source & Target can be one of two types:

  • String
  • Number

If it is a string, then that string is assumed to be the GUID of the unit in question. If it’s a number, it is assumed to be a bitfield assembled from the following criteria:

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;

A unit can only be one of the following four categories:
1. Affiliation
2. Reaction
3. Ownership
4. Type

Here’s a quick explanation of how these flags are broken down:

Affiliation:
A unit’s affiliation is the unit’s relationship relative to YOU. Either it is owned by you, your party, your raid or someone else.

[[[Mine]Party]Raid] Outsiders

Reaction:
This is the unit’s faction reaction, relative to you. Anything that hates you is Hostile, anything that is friendly with you is Friendly, everything else is Neutral.

Ownership:
This is who owns this object. It can only be controlled by a player or the server.

Unit Type:
This is the way the unit is currently being controlled. Units directly controlled by their owner are players. Units controlled by the server are NPCs. Pets are controlled by another player or unit. Guardians are automatons that are not controlled, but automatically defend their master. Objects are everything else, such as Traps.

The result is that these bits can tell you what kind of unit that combat log object was.

Example:
A player who is dueling you is 0x0548.
(A hostile outsider who is both owned by a player and controlled as a player)
A player who was mind controlled that attacks you is 0x1148.
(A hostile outsiders who is owned by a player, but controlled as a pet)

Default Filters
The default filters are constructed by summing certain bit combinations together:

COMBATLOG_FILTER_MINE = bit.bor (
COMBATLOG_OBJECT_AFFILIATION_MINE,
COMBATLOG_OBJECT_REACTION_FRIENDLY,
COMBATLOG_OBJECT_CONTROL_PLAYER,
COMBATLOG_OBJECT_TYPE_PLAYER,
COMBATLOG_OBJECT_TYPE_OBJECT
);

This means that everything colored mine by default must be affiliated with me, friendly, controlled by a player and be a player.

Any unit that matches at least one bit in each of the four exclusive categories will pass the filter test. Filters can have more than one bit set in a category.

COMBATLOG_FILTER_FRIENDLY_UNITS = bit.bor(
COMBATLOG_OBJECT_AFFILIATION_PARTY,
COMBATLOG_OBJECT_AFFILIATION_RAID,
COMBATLOG_OBJECT_AFFILIATION_OUTSIDER,
COMBATLOG_OBJECT_REACTION_FRIENDLY,
COMBATLOG_OBJECT_CONTROL_PLAYER,
COMBATLOG_OBJECT_CONTROL_NPC,
COMBATLOG_OBJECT_TYPE_PLAYER,
COMBATLOG_OBJECT_TYPE_NPC,
COMBATLOG_OBJECT_TYPE_PET,
COMBATLOG_OBJECT_TYPE_GUARDIAN,
COMBATLOG_OBJECT_TYPE_OBJECT
);

This will allow messages relating to any unit who has a friendly reaction with you, the player. (Another way to do this is to use the “_MASK” suffixed globals, rather than specifying all bits, but I did it this way to make the point clear).
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