mirror of
https://github.com/brues-code/Vanilla_MikScrollingBattleText.git
synced 2026-09-27 18:16:02 +00:00
73212ebe33
Clean MSBT 3.01 from Mik's
808 lines
39 KiB
HTML
808 lines
39 KiB
HTML
<html>
|
|
<head>
|
|
<title>Mik's Scrolling Battle Text Readme</title>
|
|
<style type="text/css">
|
|
body { font-size : 10pt; font-family : verdana,arial,helvetica.sans-serif; }
|
|
hr { color : #e0e0e0; }
|
|
|
|
a:link { color : #000060; text-decoration : none; }
|
|
a:visited { color : #000060; text-decoration : none; }
|
|
a:hover { text-decoration : underline; }
|
|
|
|
div#HeaderBlock {background-color : ivory; border : solid #000050 1px; padding : 1ex; margin-top : 2em; margin-bottom : 2em; }
|
|
|
|
div.TOCTitle { font-weight : bold; font-size : 12pt; }
|
|
div.TOC { margin : 2ex 1ex 4em 2ex; }
|
|
div.TOCSection { margin : 1ex 1ex 2ex 2ex; }
|
|
|
|
div.SectionTitle { margin-top : 6ex; font-weight : bold; font-size : 14pt; }
|
|
div.SectionBody { margin-top : 2ex; margin-left : 2ex; margin-bottom : 2em; }
|
|
div.SubsectionTitle { font-weight : bold; }
|
|
div.SubsectionBody { margin : 2ex 10ex 2ex 5ex; }
|
|
div.Syntax { background-color : #e0e0e0; }
|
|
|
|
td.ParameterName { font-size : 10pt; background-color : #e0e0e0; vertical-align : top; }
|
|
td.ParameterDesc { font-size : 10pt; background-color : #e0e0e0; text-align : left; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<center><b>Mik's Scrolling Battle Text Readme</b></center>
|
|
<div id="HeaderBlock">
|
|
Version: 3.01<br />
|
|
Author: Mik<br /><br />
|
|
Credits:
|
|
<ul>
|
|
<li>Thanks to grayhoof, the author of Scrolling Combat Text, for the original mod which inspired this mod.</li>
|
|
<li>Thanks to kergoth and Wobin for their suggestions on optimizations via reduced GC churn and namespacing tips.</li>
|
|
<li>Thanks to tekkub for compostLib which I borrowed some of the table recycling code from.</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div id="NotificationBlock">
|
|
</div>
|
|
|
|
<a name="TOC"><div class="TOCTitle">Table of Contents:</div></a>
|
|
<div class="TOC">
|
|
<a href="#QuickStart">Quick Start</a><br />
|
|
<a href="#Description">Description</a><br />
|
|
<a href="#Commands">Commands</a><br />
|
|
<a href="#TriggerSystem">Trigger System Documentation</a><br />
|
|
<a href="#SuppressionSystem">Suppression System Documentation</a><br />
|
|
<a href="#DisplayFunction">Display Function Documentation</a><br />
|
|
<a href="#FAQ">Frequently Asked Questions</a><br />
|
|
<div id="TOCSection">
|
|
<ul style="margin-top : 1ex;">
|
|
<li><a href="#FAQ1">I don't like any of the fonts supplied with MSBT. How do I use my own fonts?</a></li>
|
|
<li><a href="#FAQ2">How do I create a new trigger?</a></li>
|
|
<li><a href="#FAQ3">Some of the default triggers are not working for me while others are. What's up with that?</a></li>
|
|
<li><a href="#FAQ4">How do I create a new suppression?</a></li>
|
|
</ul>
|
|
</div>
|
|
<a href="#VersionHistory">Version History</a><br />
|
|
<div id="TOCSection">
|
|
<ul style="margin-top : 1ex;">
|
|
<li><a href="#Version3.01">3.01</a></li>
|
|
<li><a href="#Version3.0">3.0</a></li>
|
|
<li><a href="#Version2.11">2.11</a></li>
|
|
<li><a href="#Version2.1">2.1</a></li>
|
|
<li><a href="#Version2.0">2.0</a></li>
|
|
<li><a href="#Version1.03">1.03</a></li>
|
|
<li><a href="#Version1.02">1.02</a></li>
|
|
<li><a href="#Version1.01">1.01</a></li>
|
|
<li><a href="#Version1.0">1.0</a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="SectionTitle"><a name="QuickStart">Quick Start</a></div>
|
|
<hr size="1" />
|
|
<a href="#TOC">Return to TOC</a><br /><br />
|
|
<div class="SectionBody">
|
|
Unzip the contents into the AddOns directory of your WoW game directory.<br /><br />
|
|
This is typically C:\Program Files\World of Warcraft\Interface\AddOns.<br /><br />
|
|
If your are upgrading the mod from a previous version, make sure to delete the old version prior to installing
|
|
the new version.
|
|
</div>
|
|
|
|
<div class="SectionTitle"><a name="Description">Description</a></div>
|
|
<hr size="1" />
|
|
<a href="#TOC">Return to TOC</a><br /><br />
|
|
<div class="SectionBody">
|
|
This mod makes it easier to see combat information by scrolling it on the screen in 3 configurable scrolling areas.
|
|
There is a scroll area for incoming heals/damage, one for outgoing heals/damage, and a third for notifications.
|
|
Each scroll area is completely customizable.<br /><br />
|
|
|
|
<b>Features:</b>
|
|
<ul>
|
|
<li>Scroll incoming damage/heals, outgoing damage/heals, and notifications in separate configurable scroll areas on the playing field.</li>
|
|
<li>Customize the position, animation style, show state, font style, font size, and font outline for each of the scroll areas.</li>
|
|
<li>Customize each individual event's color, font style, font size, font outline, output message, and show state.</li>
|
|
<li>Set "Master Font" settings that will be inherited by all of the scroll areas and the events in them unless they are overriden at the scroll area or event level.</li>
|
|
<li>Merge AoE data into one event with cumulative damage/healing done with number of normal and crits specified.</li>
|
|
<li>Show overhealing amounts against yourself or party/raid members.</li>
|
|
<li>Add triggers that will allow you to show notifications based on various health and mana thresholds, or custom search patterns. Triggers are also set to only fire for specific classes.</li>
|
|
<li>Suppress particular messages you do not want to see such as mana gains from Blessing/Judgement of Wisdom.</li>
|
|
<li>Load on demand options.</li>
|
|
</ul>
|
|
|
|
<br />
|
|
<b>Supported Events:</b>
|
|
<ul>
|
|
<li>Incoming:</li>
|
|
<ul>
|
|
<li>Melee Damage</li>
|
|
<li>Melee Misses, Dodges, Parries, Blocks, Absorbs, and Immunes</li>
|
|
<li>Ability/Spell Damage</li>
|
|
<li>Ability/Spell Damage Over Time (DoTs)</li>
|
|
<li>Ability/Spell Misses, Dodges, Parries, Blocks, Absorbs, Immunes, and Reflects</li>
|
|
<li>Spell Resists</li>
|
|
<li>Heals</li>
|
|
<li>Heals Over Time (HoTs)</li>
|
|
<li>Environmental Damage</li>
|
|
</ul>
|
|
<br />
|
|
<li>Outgoing:</li>
|
|
<ul>
|
|
<li>Melee Damage</li>
|
|
<li>Melee Misses, Dodges, Parries, Blocks, Absorbs, and Evades</li>
|
|
<li>Ability/Spell Damage</li>
|
|
<li>Ability/Spell Damage Over Time (DoTs)</li>
|
|
<li>Ability/Spell Misses, Dodges, Parries, Blocks, Absorbs, Immunes, Reflects, and Evades</li>
|
|
<li>Spell Resists</li>
|
|
<li>Heals</li>
|
|
<li>Heals Over Time (HoTs)</li>
|
|
<li>Pet Melee Damage</li>
|
|
<li>Pet Melee Misses, Dodges, Parries, Blocks, Absorbs, Immunes, and Evades</li>
|
|
<li>Pet Ability/Spell Damage</li>
|
|
<li>Pet Ability/Spell Misses, Dodges, Parries, and Blocks, Absorbs, Immunes, Reflects, and Evades</li>
|
|
<li>Pet Spell Resists</li>
|
|
</ul>
|
|
|
|
<br />
|
|
<li>Notification:</li>
|
|
<ul>
|
|
<li>Debuffs</li>
|
|
<li>Buffs</li>
|
|
<li>Item Buffs</li>
|
|
<li>Buff Fades</li>
|
|
<li>Enter/Leave Combat</li>
|
|
<li>Power Gains and Losses</li>
|
|
<li>Combo Point Gains</li>
|
|
<li>Combo Points Full</li>
|
|
<li>Honor Gains</li>
|
|
<li>Reputation Gains and Losses</li>
|
|
<li>Skill Gains</li>
|
|
<li>Experience Gains</li>
|
|
<li>Killing Blows (Player and NPC)</li>
|
|
</ul>
|
|
|
|
<br />
|
|
<li>Default Triggers:</li>
|
|
<ul>
|
|
<li>Low Health</li>
|
|
<li>Low Mana</li>
|
|
<li>Low Pet Health</li>
|
|
<li>Execute</li>
|
|
<li>Counter Attack</li>
|
|
<li>Mongoose Bite
|
|
<li>Clearcast</li>
|
|
<li>Riposte</li>
|
|
<li>Windfury</li>
|
|
<li>Nightfall</li>
|
|
<li>Overpower</li>
|
|
</ul>
|
|
|
|
<br />
|
|
<li>Default Suppressions:</li>
|
|
<ul>
|
|
<li>Blessing/Judgement of Wisdom (+30 Mana, +33 Mana, +59 Mana)</li>
|
|
</ul>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="SectionTitle"><a name="Commands">Commands</a></div>
|
|
<hr size="1" />
|
|
<a href="#TOC">Return to TOC</a><br /><br />
|
|
<div class="SectionBody">
|
|
<table cellspacing="3">
|
|
<tr>
|
|
<td class="ParameterName">/msbt</td>
|
|
<td class="ParameterDesc">Shows the options interface.</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="ParameterName">/msbt reset</td>
|
|
<td class="ParameterDesc">Resets the current profile to the default settings.</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="ParameterName">/msbt disable</td>
|
|
<td class="ParameterDesc">Disables the mod.</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="ParameterName">/msbt enable</td>
|
|
<td class="ParameterDesc">Enables the mod.</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="ParameterName">/msbt version</td>
|
|
<td class="ParameterDesc">Shows the current version.</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="ParameterName">/msbt stats</td>
|
|
<td class="ParameterDesc">Reports stats about table recycling.</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="ParameterName">/msbt search pattern</td>
|
|
<td class="ParameterDesc">Sets a pattern for searching event types.</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="ParameterName">/msbt debug</td>
|
|
<td class="ParameterDesc">Toggles debug mode.</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="ParameterName">/msbt help</td>
|
|
<td class="ParameterDesc">Shows the command usage.</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
<div class="SectionTitle"><a name="TriggerSystem">Trigger System Documentation</a></div>
|
|
<hr size="1" />
|
|
<a href="#TOC">Return to TOC</a><br /><br />
|
|
<div class="SectionBody">
|
|
The trigger system allows you to specify notifications based on events that are not already covered by
|
|
MSBT's native events. The trigger system has been optimized so that having extra triggers which are
|
|
not enabled or which do not apply to the class you are currently playing add no overhead.
|
|
<br /><br />
|
|
|
|
Due to this optimization, a lot of triggers that people will want (Windfury, Nightfall, Mongoose Bite, etc)
|
|
are probably already there by default, and will not waste resources for those which don't apply to your
|
|
class or are not enabled.
|
|
<br /><br />
|
|
|
|
The following is a description of the fields unique to the Trigger Settings interface (see the <a href="#FAQ3">Frequently Asked
|
|
Questions</a> section for a tutorial on how to create a new trigger):
|
|
<br /><br />
|
|
|
|
<table cellspacing="3">
|
|
<tr>
|
|
<td class="ParameterName" nowrap="nowrap">Output Message</td>
|
|
<td class="ParameterDesc">
|
|
This is the message that will be displayed when the trigger fires. If you are using a Search Pattern
|
|
with captures you can enter %1 through %9 to use the data that was captured. Also, for trigger types
|
|
with thresholds, the amount of health or mana will be in %1.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="ParameterName" nowrap="nowrap">Applicable Trigger Classes:</td>
|
|
<td class="ParameterDesc">
|
|
These are the classes that you want the trigger to apply to. <b>NOTE: THIS IS YOUR CLASS NOT THE TARGET CLASS.</b>
|
|
You may look at the Execute trigger for an example. Since Warrior and Paladin are selected, the trigger
|
|
will only apply when you are playing on a warrior or paladin.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="ParameterName" nowrap="nowrap">Trigger Type:</td>
|
|
<td class="ParameterDesc">
|
|
This is the type of trigger.
|
|
<ul>
|
|
<li>Self Health - This will trigger when your health falls below the selected threshold.</li>
|
|
<li>Self Mana - This will trigger when your mana falls below the selected threshold.</li>
|
|
<li>Pet Health - This will trigger when your pet's health falls below the selected threshold.</li>
|
|
<li>Enemy Target Health - This will trigger when your target is an enemy and their health falls below the selected threshold.</li>
|
|
<li>Friendly Target Health - This will trigger when your target is friendly and their health falls below the selected threshold.</li>
|
|
<li>Search Pattern - This will trigger when the search pattern you enter is found.</li>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="ParameterName" nowrap="nowrap">Threshold:</td>
|
|
<td class="ParameterDesc">
|
|
This slider will only be present if the selected trigger type is one of the types that support it.
|
|
It specifies the threshold percentage that must be crossed for the trigger to fire.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="ParameterName" nowrap="nowrap">Trigger Event Types:</td>
|
|
<td class="ParameterDesc">
|
|
This list will only be present if the selected trigger type is Search Pattern.<br /><br />
|
|
|
|
This exists solely for optimization and is probably the most difficult field to enter. While not having this
|
|
field would make the trigger system easier to use, it would also make it extremely inefficient since searching
|
|
through an array of triggers which don't apply every time ANY event happens wastes precious resources. In order
|
|
to find the appropriate event types to use, type /msbt search pattern, where the word pattern is a lua search string.
|
|
Only combat messages that match the search string will display their associated event type. Once you are done you
|
|
can type /msbt search to toggle event searching mode back off.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="ParameterName" nowrap="nowrap">Search Pattern 1 & 2:</td>
|
|
<td class="ParameterDesc">
|
|
These fields will only be present if the selected trigger type is Search Pattern.<br /><br />
|
|
|
|
These fields can either contain a global string from globalstrings.lua (if you happen to know which one you want) or a
|
|
lua formatted search string. The mod also supports data captured from the pattern. The output message specified for
|
|
the trigger can use the captured data by putting %1 - %9 where the number is the position of the captured data.
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
|
|
<div class="SectionTitle"><a name="SuppressionSystem">Suppression System Documentation</a></div>
|
|
<hr size="1" />
|
|
<a href="#TOC">Return to TOC</a><br /><br />
|
|
<div class="SectionBody">
|
|
The suppression system allows you to suppress specific text that MSBT is displaying to the screen via lua search patterns.
|
|
<br /><br />
|
|
|
|
The text next to enable checkbox is the search pattern that will be checked for matches against the output text. If a match is made,
|
|
the output text will be suppressed.<br />
|
|
See the <a href="#FAQ4">Frequently Asked Questions</a> section for a tutorial on how to create a
|
|
new suppression.
|
|
<br /><br />
|
|
|
|
Here is the official lua reference for patterns:
|
|
<blockquote>
|
|
<span style="font-weight : bold; font-size : 110%">Character Class:</span>
|
|
<br /><br />
|
|
|
|
A <i>character class</i> is used to represent a set of characters. The following combinations are allowed in describing a character class:
|
|
<ul>
|
|
<li>x: (where x is not one of the magic characters ^$()%.[]*+-?) represents the character x itself.</li>
|
|
<li>.: (a dot) represents all characters.</li>
|
|
<li>%a: represents all letters.</li>
|
|
<li>%c: represents all control characters.</li>
|
|
<li>%d: represents all digits.</li>
|
|
<li>%l: represents all lowercase letters.</li>
|
|
<li>%p: represents all punctuation characters.</li>
|
|
<li>%s: represents all space characters.</li>
|
|
<li>%u: represents all uppercase letters.</li>
|
|
<li>%w: represents all alphanumeric characters.</li>
|
|
<li>%x: represents all hexadecimal digits.</li>
|
|
<li>%z: represents the character with representation 0.</li>
|
|
<li>
|
|
%x: (where x is any non-alphanumeric character) represents the character x. This is the standard way to escape the magic characters. Any punctuation character (even the non magic)
|
|
can be preceded by a '%' when used to represent itself in a pattern.
|
|
</li>
|
|
<li>
|
|
[set]: represents the class which is the union of all characters in set. A range of characters may be specified by separating the end characters of the range with a '-'. All classes
|
|
%x described above may also be used as components in set. All other characters in set represent themselves. For example, [%w_] (or [_%w]) represents all alphanumeric characters plus
|
|
the underscore, [0-7] represents the octal digits, and [0-7%l%-] represents the octal digits plus the lowercase letters plus the '-' character.
|
|
<br /><br />
|
|
The interaction between ranges and classes is not defined. Therefore, patterns like [%a-z] or [a-%%] have no meaning.
|
|
</li>
|
|
<br />
|
|
<li>[^set]: represents the complement of set, where set is interpreted as above.</li>
|
|
</ul>
|
|
For all classes represented by single letters (%a, %c, etc.), the corresponding uppercase letter represents the complement of the class. For instance, %S represents all non-space characters.
|
|
<br /><br />
|
|
The definitions of letter, space, and other character groups depend on the current locale. In particular, the class [a-z] may not be equivalent to %l.
|
|
<br /><br />
|
|
|
|
<span style="font-weight : bold; font-size : 110%">Pattern Item:</span>
|
|
<br /><br />
|
|
|
|
A pattern item may be:
|
|
<ul>
|
|
<li>a single character class, which matches any single character in the class;</li>
|
|
<li>a single character class followed by '*', which matches 0 or more repetitions of characters in the class. These repetition items will always match the longest possible sequence;</li>
|
|
<li>a single character class followed by '+', which matches 1 or more repetitions of characters in the class. These repetition items will always match the longest possible sequence;</li>
|
|
<li>a single character class followed by '-', which also matches 0 or more repetitions of characters in the class. Unlike '*', these repetition items will always match the shortest possible sequence;</li>
|
|
<li>a single character class followed by '?', which matches 0 or 1 occurrence of a character in the class;</li>
|
|
<li>%n, for n between 1 and 9; such item matches a substring equal to the n-th captured string (see below);</li>
|
|
<li>
|
|
%bxy, where x and y are two distinct characters; such item matches strings that start with x, end with y, and where the x and y are balanced. This means that, if one reads the string from left to right,
|
|
counting +1 for an x and -1 for a y, the ending y is the first y where the count reaches 0. For instance, the item %b() matches expressions with balanced parentheses.
|
|
</li>
|
|
</ul>
|
|
|
|
<span style="font-weight : bold; font-size : 110%">Pattern:</span>
|
|
<br /><br />
|
|
A <i>pattern</i> is a sequence of pattern items. A '^' at the beginning of a pattern anchors the match at the beginning of the subject string. A '$' at the end of a pattern anchors the match at the end of the subject string.
|
|
At other positions, '^' and '$' have no special meaning and represent themselves.
|
|
<br /><br />
|
|
|
|
<span style="font-weight : bold; font-size : 110%">Captures:</span>
|
|
<br /><br />
|
|
A pattern may contain sub-patterns enclosed in parentheses; they describe captures. When a match succeeds, the substrings of the subject string that match captures are stored (captured) for future use. Captures are numbered
|
|
according to their left parentheses. For instance, in the pattern "(a*(.)%w(%s*))", the part of the string matching "a*(.)%w(%s*)" is stored as the first capture (and therefore has number 1); the character matching "." is
|
|
captured with number 2, and the part matching "%s*" has number 3.
|
|
<br /><br />
|
|
|
|
As a special case, the empty capture () captures the current string position (a number). For instance, if we apply the pattern "()aa()" on the string "flaaap", there will be two captures: 3 and 5.
|
|
<br /><br />
|
|
A pattern cannot contain embedded zeros. Use %z instead.
|
|
</blockquote>
|
|
</div>
|
|
|
|
|
|
<div class="SectionTitle"><a name="DisplayFunction">Display Function Documentation</a></div>
|
|
<hr size="1" />
|
|
<a href="#TOC">Return to TOC</a><br /><br />
|
|
<div class="SectionBody">
|
|
<div class="Syntax"><b>MikSBT.DisplayMessage(</b><i>message</i> <b>[,</b> <i>displayType</i><b>,</b> <i>isSticky</i><b>,</b> <i>colorR</i><b>,</b> <i>colorG</i><b>,</b> <i>colorB</i><b>,</b> <i>fontSize</i><b>,</b> <i>fontIndex</i><b>,</b> <i>outlineIndex</i><b>])</b></div>
|
|
<br /><br />
|
|
<div class="SubsectionTitle">Parameters</div>
|
|
<div class="SubsectionBody">
|
|
<table cellspacing="3">
|
|
<tr>
|
|
<td class="ParameterName" nowrap="nowrap"><i>message</i> (Required)</td>
|
|
<td class="ParameterDesc">The string to display.</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="ParameterName" nowrap="nowrap"><i>displayType</i> (Optional)</td>
|
|
<td class="ParameterDesc">
|
|
Specifies the scroll area in which to display the message. This may be one of the following values:<br /><br />
|
|
|
|
MikSBT.DISPLAYTYPE_INCOMING<br />
|
|
MikSBT.DISPLAYTYPE_OUTGOING<br />
|
|
MikSBT.DISPLAYTYPE_NOTIFICATION<br /><br />
|
|
|
|
If the parameter is omitted or invalid a default of MikSBT.DISPLAYTYPE_NOTIFICATION will be used.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="ParameterName" nowrap="nowrap"><i>isSticky</i> (Optional)</td>
|
|
<td class="ParameterDesc">
|
|
Specifies whether or not the message should be displayed sticky style. This must be either true or false.<br /><br />
|
|
If the parameter is omitted a default of false will be used.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="ParameterName" nowrap="nowrap"><i>colorR</i> (Optional)</td>
|
|
<td class="ParameterDesc">
|
|
The red component of the color to display the message with. Value range is 0-255.<br /><br />
|
|
If the parameter is omitted a default of 255 will be used.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="ParameterName" nowrap="nowrap"><i>colorG</i> (Optional)</td>
|
|
<td class="ParameterDesc">
|
|
The green component of the color to display the message with. Value range is 0-255.<br /><br />
|
|
If the parameter is omitted a default of 255 will be used.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="ParameterName" nowrap="nowrap"><i>colorB</i> (Optional)</td>
|
|
<td class="ParameterDesc">
|
|
The blue component of the color to display the message with. Value range is 0-255.<br /><br />
|
|
If the parameter is omitted a default of 255 will be used.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="ParameterName" nowrap="nowrap"><i>fontSize</i> (Optional)</td>
|
|
<td class="ParameterDesc">
|
|
The font size to use. Value range is 12-32.<br /><br />
|
|
If this value is omitted or an invalid value is passed the settings for the scroll area will be used.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="ParameterName" nowrap="nowrap"><i>fontIndex</i> (Optional)</td>
|
|
<td class="ParameterDesc">
|
|
The index of the font to use. The valid indices can be seen by looking at the MikSBT.AVAILABLE_FONTS
|
|
table in the localization.lua file.<br /><br />
|
|
If the parameter is omitted or an invalid index is passed the font index for the scroll area will be used.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="ParameterName" nowrap="nowrap"><i>outlineIndex</i> (Optional)</td>
|
|
<td class="ParameterDesc">
|
|
The index of the outline to use. The valid indices can be seen by looking at the MikSBT.AVAILABLE_OUTLINES table in the localization.lua file.<br /><br />
|
|
If the parameter is omitted or an invalid index is passed the outline index for the scroll area will be used.
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
<div class="SubsectionTitle">Return Values</div>
|
|
<div class="SubsectionBody">None.</div>
|
|
|
|
<div class="SubsectionTitle">Examples</div>
|
|
<div class="SubsectionBody">
|
|
<div class="Syntax">
|
|
<pre>
|
|
-- Displays "Test Message" in the notification scroll area in white.
|
|
MikSBT.DisplayMessage("Test Message");
|
|
|
|
-- Displays "Another Message" in the incoming scroll area in white as a sticky.
|
|
MikSBT.DisplayMessage("Another Message", MikSBT.DISPLAYTYPE_INCOMING, true);
|
|
|
|
-- Displays "Uber Damage!" in the outgoing scroll area in blue.
|
|
MikSBT.DisplayMessage("Uber Damage!", MikSBT.DISPLAYTYPE_OUTGOING, false, 0, 0, 255);
|
|
|
|
-- Displays "Enemy begins to flee in fear" in the notification scroll area in green with the scroll area's
|
|
-- font size, the font set to index 2 and the outline set to index 1.
|
|
MikSBT.DisplayMessage("Enemy begins to flee in fear", nil, false, 0, 255, 0, nil, 2, 1);
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="SectionTitle"><a name="FAQ">Frequently Asked Questions</a></div>
|
|
<hr size="1" />
|
|
<a href="#TOC">Return to TOC</a><br /><br />
|
|
<div class="SectionBody">
|
|
<ol>
|
|
<li>
|
|
<a name="FAQ1"><b>I don't like any of the fonts supplied with MSBT. How do I use my own fonts?</b></a>
|
|
<br /><br />
|
|
|
|
<span style="color : red;">WARNING: ALL FONT MODIFICATION WILL REQUIRE THAT YOU COMPLETELY QUIT THE GAME AND RESTART IT.
|
|
RELOADING THE CONSOLE ALONE WILL NOT WORK.</span>
|
|
<br /><br />
|
|
|
|
NOTE: Keep in mind that if you use your own font files that you need to make sure the font
|
|
supports the characters that will be displayed. For example the typical way to display buff
|
|
gains is [BuffName]. If the font you use does not have a character glyph for the [ or ]
|
|
characters you will likely see a big ugly block instead of the intended characters. This is
|
|
especially important with non-English clients since a lot of characters aren't supported by
|
|
English fonts.
|
|
<br /><br />
|
|
|
|
There are two ways to use custom fonts:
|
|
<ul>
|
|
<li>
|
|
The first, and easiest, method is to simply replace one of the font files in the
|
|
MikScrollingBattleText\Fonts directory with the truetype font (.ttf) that you want. The drawback
|
|
to this approach is that the mod's option screen will still reference the font with the old font's name.
|
|
<br /><br />
|
|
|
|
For example, if you had a truetype font file "MyUberFont.ttf" you wanted to use. Rename MyUberFont.ttf to Adventure.ttf
|
|
and replace the Adventure.ttf font file in the MikScrollingBattleText\Fonts directory. In the MSBT options interface
|
|
it would still be called "Adventure," but it would actually be using the new font.
|
|
</li>
|
|
<br /><br />
|
|
<li>
|
|
The second method is to open the file localization.lua in the MikScrollingBattleText directory and find the
|
|
MikSBT.AVAILABLE_FONTS entry. You can add your font with the appropriate name and path. If you don't know
|
|
anything about programming, I wouldn't suggest trying this method. Another thing to keep in mind with this
|
|
approach is that due to the way WoW loads its data, I would suggest you put in new fonts you want to add in
|
|
the same place as the current fonts for the mod (MikScrollingBattleText\Fonts) to avoid problems with
|
|
loading.
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<br /><br />
|
|
|
|
<li>
|
|
<a name="FAQ2"><b>How do I create a new trigger?</b></a>
|
|
<br /><br />
|
|
|
|
Let's go through creating a trigger for a warrior's overpower ability which already exists, but will be used for illustrative purposes.
|
|
<br /><br />
|
|
|
|
A warrior's overpower ability becomes available once the enemy they are fighting dodges. So, the first that needs to be done is to
|
|
ascertain the appropriate event types.
|
|
<br />
|
|
Since we want the trigger to fire when the enemy dodges we need to take a look at what the combat log says when an enemy dodges. The combat
|
|
log message says "You attack. Mob dodges." To find out what event type this is you can type /msbt search dodge. What this will do is make
|
|
it so that every time an entry is added to the combat log with the word dodge in it, you will get a message
|
|
with the event type in your normal chat frame. In this case you would probably see something like:
|
|
<br /><br />
|
|
MSBT: CHAT_MSG_COMBAT_CREATURE_VS_SELF_MISSES - Mob attacks. You dodge.<br />
|
|
MSBT: CHAT_MSG_COMBAT_HOSTILEPLAYER_MISSES - Player attacks. You dodge.<br />
|
|
MSBT: CHAT_MSG_COMBAT_SELF_MISSES - You attack. Mob dodges. <span style="margin-left : 5ex;"><--- Aha, there is one.</span><br />
|
|
MSBT: CHAT_MSG_SPELL_SELF_DAMAGE - Your hamstring is dodged by Mob. <span style="margin-left : 5ex;"><--- There is another one.</span><br />
|
|
<br /><br />
|
|
So the correct event types to choose are CHAT_MSG_COMBAT_SELF_MISSES and CHAT_MSG_SPELL_SELF_DAMAGE. Type /msbt search
|
|
to turn the event searching mode back off.
|
|
<br /><br /><br />
|
|
Now that we know the correct event types we can create the trigger. Here are the steps to do so:
|
|
<br /><br />
|
|
<ol type="a">
|
|
<li>Since a new trigger is being created, click the Add Trigger button. A new trigger will appear in the list of triggers.</li>
|
|
<br /><br />
|
|
<li>Click the output message for the new trigger and enter Overpower!.</li>
|
|
<br /><br />
|
|
<li>Click the Trigger Settings button.</li>
|
|
<br /><br />
|
|
<li>
|
|
Uncheck "All" classes, and check Warrior for the class the trigger will apply to. It is better to select the
|
|
specific classes the trigger applies to instead of selecting all classes since by specifying classes, the mod
|
|
can completely ignore the trigger and save resources for the classes to which it does not apply. </li>
|
|
<li>Select Search Pattern for the Trigger Type.</li>
|
|
<br /><br />
|
|
<li>Choose the correct event types we ascertained above. CHAT_MSG_COMBAT_SELF_MISSES and CHAT_MSG_SPELL_SELF_DAMAGE.</li>
|
|
<br /><br />
|
|
<li>
|
|
Last, since there are two different combat log messages, you'll need to enter two different search patterns. In the
|
|
search pattern 1 field, enter "You attack. .+ dodges" to cover the first message and in the search pattern 2 field,
|
|
enter "Your .+ is dodged by .+". Both of those are entered without the quotes. There are other variations of the
|
|
search patterns that could be used, but these would work fine.
|
|
<br /><br />
|
|
NOTE: The trigger that is already setup uses the global strings VSDODGESELFOTHER and SPELLDODGEDSELFOTHER. Messages
|
|
that go to the combat log have an associated global string that is defined in globalstrings.lua by blizzard and can
|
|
be used. Global strings are really only useful in this sense if you are looking for a general event like dodges,
|
|
parries, misses, etc. Looking specifically for something like a buff name, for example, wouldn't have an available
|
|
global string and you'd need to enter a lua search pattern as demonstrated.
|
|
</li>
|
|
<br /><br />
|
|
<li>Click the Save Trigger button.</li>
|
|
</ol>
|
|
|
|
<br /><br />
|
|
The trigger is now set to fire any time a mob or player dodges one of your attacks (only if you are a warrior).
|
|
<br /><br />
|
|
The color, font settings, and sticky state for the trigger can be set like any other event.
|
|
|
|
</li>
|
|
<br /><br />
|
|
|
|
<li>
|
|
<a name="FAQ3"><b>Some of the default triggers are not working for me while others are. What's up with that?</b></a>
|
|
<br /><br />
|
|
Most likely, you are using a non-English client. Some of the search patterns for the triggers
|
|
use Blizzard's global strings which are translated by Blizzard and hence will work on your client
|
|
by default. Some other triggers have an English search pattern for when to fire the trigger. Simply
|
|
edit the trigger settings for the trigger that is not working and change the search pattern to an
|
|
appropriate one for your language.
|
|
</li>
|
|
<br /><br />
|
|
|
|
<li>
|
|
<a name="FAQ4"><b>How do I create a new suppression?</b></a>
|
|
<br /><br />
|
|
As an example, let's create a suppression for warrior stance switching.
|
|
<br /><br />
|
|
Unless you have changed the output message format for buff gains and fades, the warrior stance switch
|
|
messages should be:
|
|
<br /><br />
|
|
[Battle Stance]<br />
|
|
-[Battle Stance]<br />
|
|
[Defensive Stance]<br />
|
|
-[Defensive Stance]<br />
|
|
[Bersker Stance]<br />
|
|
-[Bersker Stance]<br />
|
|
<br />
|
|
What we want to do is create a search pattern that will match those output messages.
|
|
<br /><br />
|
|
Here is a search pattern that will match all of them:
|
|
<br /><br />
|
|
<b>%[.+ Stance%]</b>
|
|
<br /><br />
|
|
Now that we have a search pattern that will match all of the stance switching messages, we can
|
|
do the following to add the suppression:
|
|
<br /><br />
|
|
<ol>
|
|
<li>Go to the Suppressions tab.</li>
|
|
<li>Click the Add New Suppression button.</li>
|
|
<li>Click the label where it says "New Suppression: Click here to edit."</li>
|
|
<li>Enter the seach pattern from above.</li>
|
|
</ol>
|
|
<br />
|
|
All of the warrior stance switch messages should now be suppressed.
|
|
</li>
|
|
</ol>
|
|
</div>
|
|
|
|
<div class="SectionTitle"><a name="VersionHistory">Version History</a></div>
|
|
<hr size="1" />
|
|
<a href="#TOC">Return to TOC</a><br /><br />
|
|
<div class="SectionBody">
|
|
<table cellspacing="3">
|
|
<tr>
|
|
<td class="ParameterName" nowrap="nowrap"><a name="Version3.01">3.01</a></td>
|
|
<td class="ParameterDesc">
|
|
<ul>
|
|
<li>Fixed the bug where you could only add one suppression and adding a new one was overwriting it.</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="ParameterName" nowrap="nowrap"><a name="Version3.0">3.0</a></td>
|
|
<td class="ParameterDesc">
|
|
<ul>
|
|
<li>Implemented a low overhead trigger system. <a href="#TriggerSystem">See documentation above</a>.</li>
|
|
<li>Implemented a suppression system that allows you to suppress particular messages you don't want to see.</li>
|
|
<li>
|
|
Made significant changes to the scroll area settings interface. The new interface shows all three
|
|
scroll areas at the same time. Each scroll area is now titled with its coordinates and there are
|
|
editboxes to enter specific coordinates in addition to being able to drag the scroll areas around.
|
|
</li>
|
|
<li>
|
|
Changed the core animation routines to use function pointers in order to eliminate the need for a
|
|
ton of conditional testing. Previously, every time the animation routine was called (typically
|
|
60-70 times per second for every scrolling item), the animation style and scroll direction were
|
|
checked to calculate how to move the text. Now those items are only checked during the initial
|
|
animation object setup phase. This should help performance on slower PCs.
|
|
</li>
|
|
<li>Added the command "/msbt search pattern" to enable an event searching mode which helps identify event types used in the trigger system.</li>
|
|
<li>
|
|
Moved the Low Health, Low Mana, and Execute events into the trigger system. Due to this change
|
|
the Low Mana and Execute triggers will no longer waste resources checking on classes that don't
|
|
use mana or have an execute ability. Also moving them into the trigger system made the thresholds
|
|
at which to show the Low Health, and Low Mana warnings selectable.
|
|
</li>
|
|
<li>Made a few minor code performance tweaks to the animation setup "pipeline."</li>
|
|
<li>Added Killing Blow notification events for both players and NPCs.</li>
|
|
<li>Added crushing and glancing hit partial effects.</li>
|
|
<li>The font settings frame can now be moved.</li>
|
|
<li>Fixed a bug where messages added via the <a href="#DisplayFunction">MikSBT.DisplayMessage</a> function were being shown even if the scroll area was set to not show messages.</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="ParameterName" nowrap="nowrap"><a name="Version2.11">2.11</a></td>
|
|
<td class="ParameterDesc">
|
|
<ul>
|
|
<li>Disabled Blizzard's new floating text in Patch 1.12 when MSBT is enabled.</li>
|
|
<li>Updated for Patch 1.12.</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="ParameterName" nowrap="nowrap"><a name="Version2.1">2.1</a></td>
|
|
<td class="ParameterDesc">
|
|
<ul>
|
|
<li>Reduced memory usage a little by removing the underlying tables used to store crit information for events that can never be crits. (Down to around 477KB)</li>
|
|
<li>To go along with the above change, the font settings interface for events was reworked so that you can no longer set crit information for events that don't support them.</li>
|
|
<li>Added a title at the top of the font settings frame to help distinguish what is being modified.</li>
|
|
<li>Added an Experience Gains notification event.</li>
|
|
<li>Added the capability for notifications to be displayed "sticky" style.</li>
|
|
<li>Fixed the bug induced by patch 1.11 where reputation gains and losses weren't being displayed.</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="ParameterName" nowrap="nowrap"><a name="Version2.0">2.0</a></td>
|
|
<td class="ParameterDesc">
|
|
<ul>
|
|
<li>
|
|
MAJOR optimization code rewrite:
|
|
<ul>
|
|
<li>Made options load on demand to significantly reduce memory usage and start up time.</li>
|
|
<li>
|
|
Implemented a table recycling system to reuse tables created during combat instead
|
|
of creating new ones and allowing them to be garbage collected. The net effect is that a
|
|
ton of garbage collection churn has been eliminated. Thanks go to kergoth and Wobin for
|
|
tips on how to achieve this.
|
|
</li>
|
|
<li>The combat event parser has been changed to reuse one single table for storing the results of the parsed data.</li>
|
|
<li>Streamlined the combat event to screen animation "pipeline."</li>
|
|
<li>Namespaced all code to reduce global namespace pollution.</li>
|
|
<li>
|
|
Load up KB Usage in v1.03 was approximately 1050 KB. This has been reduced to around
|
|
488 KB. In addition, due to the table recycling system, memory usage during operation is
|
|
much more consistent instead of continuously increasing until the next garbage collection
|
|
cycle.
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<br />
|
|
<li>
|
|
Added a function to allow messages to be easily displayed through MSBT from external sources.<br />
|
|
This function is <a href="#DisplayFunction">MikSBT.DisplayMessage</a> and is detailed above.
|
|
</li>
|
|
<li>Added the command "/msbt stats" to report statistics about the table recycling system.</li>
|
|
<li>Changed the functionality of AoE merges so that the name reported is "Multiple" instead of the last affected unit.</li>
|
|
<li>Added the option to disable "game damage" instead of just always doing it.</li>
|
|
<li>Added the option to disable "sticky crits."</li>
|
|
<li>Added Execute/Hammer of Wrath notification event.</li>
|
|
<li>Separated Heals over time (HoTs) and Damage over time (DoTs) into their own events.</li>
|
|
<li>Added the option to display overhealing.v
|
|
<li>Fixed a bug where crits were not being recognized in non-English clients.</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="ParameterName" nowrap="nowrap"><a name="Version1.03">1.03</a></td>
|
|
<td class="ParameterDesc">
|
|
<ul>
|
|
<li>Fixed a bug where options set with a checkbox were not being properly saved on logout.</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="ParameterName" nowrap="nowrap"><a name="Version1.02">1.02</a></td>
|
|
<td class="ParameterDesc">
|
|
<ul>
|
|
<li>Fixed a bug where the global string parser wasn't appropriately accounting for the argument order of non-English clients.</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="ParameterName" nowrap="nowrap"><a name="Version1.01">1.01</a></td>
|
|
<td class="ParameterDesc">
|
|
<ul>
|
|
<li>Updated for Patch 1.11.</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="ParameterName" nowrap="nowrap"><a name="Version1.0">1.0</a></td>
|
|
<td class="ParameterDesc">
|
|
<ul>
|
|
<li>Initial version.</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</body>
|
|
</html> |