vanilla-wow-addons – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 --[[
2 --
3 -- DamageMeters Localization Data (ENGLISH)
4 --
5 --]]
6  
7  
8 -------------------------------------------------------------------------------
9  
10 -- General --
11 DamageMeters_PRINTCOLOR = "|cFF8F8FFF"
12  
13 -- Bindings --
14 BINDING_HEADER_DAMAGEMETERSHEADER = "DamageMeters";
15 BINDING_NAME_DAMAGEMETERS_TOGGLESHOW = "Toggle Visible";
16 BINDING_NAME_DAMAGEMETERS_CYCLEQUANT = "Cycle Visible Quantity";
17 BINDING_NAME_DAMAGEMETERS_CYCLEQUANTBACK= "Cycle Visible Quantity Backwards";
18 BINDING_NAME_DAMAGEMETERS_CLEAR = "Clear Data";
19 BINDING_NAME_DAMAGEMETERS_TOGGLEPAUSED = "Toggle Paused";
20 BINDING_NAME_DAMAGEMETERS_SHOWREPORTFRAME = "Show Report Frame";
21 BINDING_NAME_DAMAGEMETERS_SWAPMEMORY = "Swap Memory";
22 BINDING_NAME_DAMAGEMETERS_TOGGLESHOWMAX = "Toggle Show Max Bars";
23 BINDING_NAME_DAMAGEMETERS_SYNCREADY = "Send Sync Ready";
24 BINDING_NAME_DAMAGEMETERS_TOGGLESHOWFIGHTASPS = "Toggle Show Fight Data As Per/Second";
25 BINDING_NAME_DAMAGEMETERS_TOGGLENORMALANDFIGHT = "Toggle Between Normal and Fight Quantities";
26 BINDING_NAME_DAMAGEMETERS_TOGGLEMINIMODE = "Toggle Mini Mode";
27 BINDING_NAME_DAMAGEMETERS_SYNCPAUSE = "Sync Pause";
28 BINDING_NAME_DAMAGEMETERS_SYNCUNPAUSE = "Sync Unpause";
29 BINDING_NAME_DAMAGEMETERS_SYNCCLEAR = "Sync Clear";
30  
31 --[[ work in progress
32 -- command, function, help string
33 DM_HELPDEF = {
34 -- Main commands.
35 { "help", DamageMeters_Help, DM_CMD_HELP },
36 { "cmd", DamageMeters_ListCommands, DM_CMD_CMD },
37 { "version", DamageMeters_ShowVersion, DM_CMD_VERSION },
38 { "show", DamageMeters_ToggleShow, DM_CMD_SHOW },
39 { "hide", DamageMeters_Hide, DM_CMD_HIDE },
40 { "clear", DamageMeters_Clear, DM_CMD_CLEAR },
41 { "report", DamageMeters_Report, DM_CMD_REPORT },
42 { "sort", DamageMeters_SetSort, DM_CMD_SORT },
43 { "count", DamageMeters_SetCount, DM_CMD_SETCOUNT },
44 { "autocount", DamageMeters_SetAutoCount, DM_CMD_AUTOCOUNT },
45 { "lock", DamageMeters_ToggleLock, DM_CMD_LOCK },
46 { "pause", DamageMeters_TogglePause, DM_CMD_PAUSE },
47 { "ready", DamageMeters_SetReady, DM_CMD_READY },
48 { "resetpos", DamageMeters_ResetPos, DM_CMD_RESETPOS },
49 { "pop", DamageMeters_Populate, DM_CMD_POP },
50 { "listbanned", DamageMeters_ListBanned, DM_CMD_LISTBANNED },
51 { "clearbanned", DamageMeters_ClearBanned, DM_CMD_CLEARBANNED },
52  
53 -- Memory
54 { "save", DamageMeters_Save, DM_CMD_SAVE },
55 { "restore", DamageMeters_Restore, DM_CMD_RESTORE },
56 { "swap", DamageMeters_Swap, DM_CMD_SWAP },
57 { "memclear", DamageMeters_MemClear, DM_CMD_MEMCLEAR },
58  
59 -- These all have menu options.
60 { "color", DamageMeters_SetColorScheme, DM_CMD_COLOR },
61 { "quant", DamageMeters_SetQuantity, DM_CMD_QUANT },
62 { "text", DamageMeters_SetTextOptions, DM_CMD_TEXT },
63 { "visinparty", DamageMeters_SetVisibleInParty, DM_CMD_VISINPARTY },
64 { "lockpos", DamageMeters_ToggleLockPos, DM_CMD_LOCKPAUSE },
65 { "grouponly", DamageMeters_ToggleGroupMembersOnly, DM_CMD_GROUPONLY },
66 { "addpettoplayer", DamageMeters_ToggleAddPetToPlayer, DM_CMD_ADDPETTOPLAYER },
67 { "resetoncombat", DamageMeters_ToggleResetWhenCombatStarts, DM_CMD_RESETONCOMBAT },
68 { "total", DamageMeters_ToggleTotal, DM_CMD_TOTAL },
69 { "showmax", DamageMeters_ToggleMaxBars, DM_CMD_SHOWMAX },
70  
71 -- Sync commands.
72 { "sync", DamageMeters_Sync, DM_CMD_SYNC },
73 { "syncchan", DamageMeters_SyncChan, DM_CMD_SYNCCHAN },
74 { "syncleave", DamageMeters_SyncLeaveChanCmd, DM_CMD_SYNCLEAVE },
75 { "syncsend", DamageMeters_SyncReport, DM_CMD_SYNCSEND },
76 { "syncrequest", DamageMeters_SyncRequest, DM_CMD_SYNCREQUEST },
77 { "syncclear", DamageMeters_SyncClear, DM_CMD_SYNCCLEAR },
78 { "syncmsg", DamageMeters_SendSyncMsg, DM_CMD_SYNCMSG },
79 { "syncbroadcastchan", DamageMeters_SyncBroadcastChan, DM_CMD_SYNCBROADCASTCHAN },
80 { "syncping", DamageMeters_SyncPingRequest, DM_CMD_SYNCPING },
81 { "syncpause", DamageMeters_SyncPause, DM_CMD_SYNCPAUSE },
82 { "syncunpause", DamageMeters_SyncUnpause, DM_CMD_SYNCUNPAUSE },
83 { "syncready", DamageMeters_SyncReady, DM_CMD_SYNCREADY },
84 { "synckick", DamageMeters_SyncKick, DM_CMD_SYNCKICK },
85 { "synclabel", DamageMeters_SyncLabel, DM_CMD_SYNCLABEL },
86 { "syncstart", DamageMeters_SyncStart, DM_CMD_SYNCSTART },
87 { "synchalt", DamageMeters_SyncHalt, DM_CMD_SYNCHALT },
88 { "synce", DamageMeters_SyncEmote, DM_CMD_SYNCEMOTE },
89  
90 -- Debug commands.
91 { "reset", DamageMeters_Reset, DM_CMD_RESET },
92 { "test", DamageMeters_Test, DM_CMD_TEST },
93 { "add", DamageMeters_Add, DM_CMD_ADD },
94 { "dumptable", DamageMeters_DumpTable, DM_CMD_DUMPTABLE },
95 { "debug", DM_ToggleDMPrintD, DM_CMD_DEBUG },
96 { "dumpmsg", DM_DumpMsg, DM_CMD_DUMPMSG },
97 { "print", DM_ConsolePrint, DM_CMD_PRINT },
98 };
99 ]]--
100  
101 -- Help --
102 DamageMeters_helpTable = {
103 "The following commands can be entered into the console:",
104 "/dm help : Gives help on using DamageMeters.",
105 "/dm cmd : Lists available /dm (DamageMeters) commands.",
106 "/dm show : Toggles whether or not the meters are visible. Note that data collection continues when meters are not visible.",
107 "/dm hide : Hides the meters.",
108 "/dm clear [#] : Removes entries from the bottom of the list, leaving #. If # not specified, entire list is cleared.",
109 "/dm report [help] [total] [c/s/p/r/w/h/g/f[#]] [whispertarget/channelNAME] - Prints a report of the current data: use '/dm report help' for details.",
110 "/dm sort [#] - Sets sorting style. Specify no number for a list of available styles.",
111 "/dm count [#] - Sets number of bars visible at once. If # not given shows the maximum possible.",
112 "/dm save - Saves the current table internally.",
113 "/dm restore - Restores a previously saved table, overwriting any new data.",
114 --"/dm merge - Merges a previously saved table with any existing data.",
115 "/dm swap - Swaps the previously saved table with the current one.",
116 "/dm memclear - Clears the saved table.",
117 "/dm resetpos - Resets the position of the window (helpful incase you lose it)%.",
118 "/dm text 0/<[r][n][p][l][v]> - Sets what text should be shown on the bars. r - Rank. n - Player name. p - Percentage of total. l - Percentage of leader. v - Value.",
119 "/dm color # - Sets the color scheme for the bars. Specify no # for a list of options.",
120 "/dm quant # - Sets the quantity the bars should use. Specify no # for a list of options.",
121 "/dm visinparty [y/n] - Sets whether or not the window should only be visible while you are in a party/raid. Specify no argument to toggle.",
122 "/dm autocount # - If # is greater than zero, then the window will show as many bars as it has information for up to #. If # is zero, it turns off the auto-count function.",
123 "/dm listbanned - Lists all banned entities.",
124 "/dm clearbanned - Clears list of all banned entities.",
125  
126 "/dm sync [d#] [e] - Causes you to synchronize your data with other users using the same sync channel. (Calls dmsyncsend and dmsyncrequest.) If d specified, the sync will be delayed that many seconds. If e specified, event data will be sent/requested.",
127 --"/dm syncchan - Sets the name of the channel to use for synchronizing.",
128 --"/dm syncleave - Leaves the current sync chan.",
129 "/dm syncsend - Sends sync information on the sync channel.",
130 "/dm syncrequest - Sends request for an automatic dmsync to other people using your sync channel.",
131 "/dm syncclear - Sends request for everyone to clear their data.",
132 "/dm syncmsg msg - Sends a message to other people in the same syncchan. Can also use /dm m.",
133 --"/dm syncbroadcastchan - Broadcasts the current sync channel to your party or raid. Can also use /dm syncb.",
134 "/dm syncping - 'Pings' the other people in the sync chan, causing them to respond with their current version of DM.",
135 "/dm syncpause - Makes other DMs on your syncchan pause.",
136 "/dm syncunpause - Makes other DMs on your syncchan unpause.",
137 "/dm syncready - Transmits a command to make everyone in the sync chan go into the ready state.",
138 --"/dm synckick player - Kickes player out of the sync channel.",
139 "/dm synclabel label - Labels the current session. (Index defaults to 1).",
140 "/dm syncstart label - Convenience function which does dmsynclabel, dmsyncpause, and dmsyncclear automatically.",
141 "/dm synchalt - Aborts any syncing in progress (clears incoming and outgoing message queues).",
142  
143 "/dm pop - Populates it with your current party/raid members (though will not remove any existing entries)%.",
144 "/dm lock - Toggles whether or not the list is locked. New people cannot be added to a locked list, but people already in can are updated.",
145 "/dm pause - Toggles whether or not the parsing of data is to occur.",
146 "/dm lockpos - Toggles whether or not the position of the window is locked.",
147 "/dm grouponly - Toggles whether or not to reject anyone who is not in your raid/party. (Your pet will be monitored regardless of this setting.)",
148 "/dm addpettoplayer - Toggles whether or not to consider pet's data as coming directly from the player.",
149 "/dm resetoncombat = Toggles whether or not to reset data when combat starts.",
150 "/dm version - Shows version information.",
151 "/dm total - Toggles display of the total display.",
152 "/dm showmax - Toggles whether or not to show the max number of bars.",
153 };
154  
155 -- Filters --
156 DamageMeters_Filter_STRING1 = "party members";
157 DamageMeters_Filter_STRING2 = "all friendly characters";
158  
159 -- Relationships --
160 DamageMeters_Relation_STRING = {
161 "Self",
162 "Your Pet",
163 "Party",
164 "Friendly"};
165  
166 -- Color Schemes --
167 DamageMeters_colorScheme_STRING = {
168 "Relationship",
169 "Class Colors"};
170  
171 -- Quantities --
172 DM_QUANTSTRING_DAMAGEDONE = "Damage Done";
173 DM_QUANTSTRING_HEALINGDONE = "Healing Done";
174 DM_QUANTSTRING_DAMAGETAKEN = "Damage Taken";
175 DM_QUANTSTRING_HEALINGTAKEN = "Healing Taken";
176 DM_QUANTSTRING_DAMAGEDONE_FIGHT = "Fight Damage Done";
177 DM_QUANTSTRING_HEALINGDONE_FIGHT = "Fight Healing Done";
178 DM_QUANTSTRING_DAMAGETAKEN_FIGHT = "Fight Damage Taken";
179 DM_QUANTSTRING_HEALINGTAKEN_FIGHT = "Fight Healing Taken";
180 DM_QUANTSTRING_DAMAGEDONE_PS = "DPS";
181 DM_QUANTSTRING_HEALINGDONE_PS = "HPS";
182 DM_QUANTSTRING_DAMAGETAKEN_PS = "DTPS";
183 DM_QUANTSTRING_HEALINGTAKEN_PS = "HTPS";
184 DM_QUANTSTRING_IDLETIME = "Idle Time";
185 DM_QUANTSTRING_NETDAMAGE = "Net Damage";
186 DM_QUANTSTRING_NETHEALING = "Net Healing";
187 DM_QUANTSTRING_DAMAGEPLUSHEALING = "Damage+Healing";
188 DM_QUANTSTRING_CURING = "Curing Done";
189 DM_QUANTSTRING_CURING_FIGHT = "Fight Curing Done";
190 DM_QUANTSTRING_CURING_PS = "Cures PS";
191 DM_QUANTSTRING_OVERHEAL = "Overhealing";
192 DM_QUANTSTRING_OVERHEAL_FIGHT = "Fight Overhealing";
193 DM_QUANTSTRING_OVERHEAL_PS = "OHPS";
194 DM_QUANTSTRING_HEALTH = "Health";
195 DM_QUANTSTRING_OVERHEAL_PERCENTAGE = "Overheal %";
196 DM_QUANTSTRING_ABSHEAL = "Raw Heal Done";
197 DM_QUANTSTRING_ABSHEAL_FIGHT = "Fight Raw Heal Done";
198 DM_QUANTSTRING_ABSHEAL_PS = "Raw. HPS";
199  
200 DMI_NAMES = {
201 DM_QUANTSTRING_DAMAGEDONE,
202 DM_QUANTSTRING_HEALINGDONE,
203 DM_QUANTSTRING_DAMAGETAKEN,
204 DM_QUANTSTRING_HEALINGTAKEN,
205 DM_QUANTSTRING_CURING,
206 DM_QUANTSTRING_OVERHEAL,
207 DM_QUANTSTRING_ABSHEAL,
208 };
209  
210 DM_QUANTABBREV_DAMAGEDONE = "D";
211 DM_QUANTABBREV_HEALINGDONE = "H";
212 DM_QUANTABBREV_DAMAGETAKEN = "DT";
213 DM_QUANTABBREV_HEALINGTAKEN = "HT";
214 DM_QUANTABBREV_CURING = "Cu";
215 DM_QUANTABBREV_OVERHEAL = "Oh";
216 DM_QUANTABBREV_ABSHEAL = "RawHD";
217  
218 DM_QUANTABBREV_DAMAGEDONE_PS = "DPS";
219 DM_QUANTABBREV_HEALINGDONE_PS = "HPS";
220 DM_QUANTABBREV_DAMAGETAKEN_PS = "DTPS";
221 DM_QUANTABBREV_HEALINGTAKEN_PS = "HTPS";
222 DM_QUANTABBREV_CURING_PS = "CuPS";
223 DM_QUANTABBREV_OVERHEAL_PS = "OHPS";
224 DM_QUANTABBREV_ABSHEAL_PS = "RawHDPS";
225  
226 DM_QUANTABBREV_IDLETIME = "IT";
227 DM_QUANTABBREV_NETDAMAGE = "NetD";
228 DM_QUANTABBREV_NETHEALING = "NetH";
229 DM_QUANTABBREV_DAMAGEPLUSHEALING = "D+H";
230 DM_QUANTABBREV_HEALTH = "HP";
231 DM_QUANTABBREV_OVERHEAL_PERCENTAGE = "Oh%";
232  
233  
234 -- Sort --
235 DamageMeters_Sort_STRING = {
236 "Decreasing",
237 "Increasing",
238 "Alphabetical"};
239  
240 -- Class Names
241 function DamageMeters_GetClassColor(className)
242 return RAID_CLASS_COLORS[string.upper(className)];
243 end
244  
245 -- This associates the string names of damage types (schools) with the DM_DMGTYPE constants.
246 DM_DMGNAMETOID = {
247 Arcane = DM_DMGTYPE_ARCANE,
248 Fire = DM_DMGTYPE_FIRE,
249 Nature = DM_DMGTYPE_NATURE,
250 Frost = DM_DMGTYPE_FROST,
251 Shadow = DM_DMGTYPE_SHADOW,
252 Holy = DM_DMGTYPE_HOLY,
253 Physical = DM_DMGTYPE_PHYSICAL,
254 };
255  
256 DM_DMGTYPENAMES = {
257 "Arcane",
258 "Fire",
259 "Nature",
260 "Frost",
261 "Shadow",
262 "Holy",
263 "Physical",
264 "Default",
265 };
266  
267 -- Errors --
268 DM_ERROR_INVALIDARG = "DamageMeters: Invalid argument(s).";
269 DM_ERROR_MISSINGARG = "DamageMeters: Argument(s) missing.";
270 DM_ERROR_NOSAVEDTABLE = "DamageMeters: No saved table.";
271 DM_ERROR_BADREPORTTARGET = "DamageMeters: Invalid report target = ";
272 DM_ERROR_MISSINGWHISPERTARGET = "DamageMeters: Whisper specified but no player given.";
273 DM_ERROR_MISSINGCHANNEL = "DamageMeters: Channel specified but no number given.";
274 DM_ERROR_NOSYNCCHANNEL = "DamageMeters: Sync channel must be specified with dmsyncchan before calling sync functions.";
275 DM_ERROR_JOINSYNCCHANNEL = "DamageMeters: You must join sync channel ('%s') before you can call sync functions.";
276 DM_ERROR_SYNCTOOSOON = "DamageMeters: Sync request too soon after last one; ignoring.";
277 DM_ERROR_POPNOPARTY = "DamageMeters: Cannot populate table; you are not in a party or raid.";
278 DM_ERROR_NOROOMFORPLAYER = "DamageMeters: Cannot merge pet data with players because cannot add player to list (list full?).";
279 DM_ERROR_BROADCASTNOGROUP = "DamageMeters: Must be in a party or raid to broadcast the sync channel.";
280 DM_ERROR_NOPARTY = "DamageMeters: You are not in a party.";
281 DM_ERROR_NORAID = "DamageMeters: You are not in a raid.";
282  
283 -- Messages --
284 DM_MSG_SETQUANT = "DamageMeters: Setting visible quantity to ";
285 DM_MSG_CURRENTQUANT = "DamageMeters: Current quantity = ";
286 DM_MSG_CURRENTSORT = "DamageMeters: Current sort = ";
287 DM_MSG_SORT = "DamageMeters: Setting sort to ";
288 DM_MSG_CLEAR = "DamageMeters: Removing entries %d to %d.";
289 --DM_MSG_REMAINING = "DamageMeters: %d items remaining.";
290 DM_MSG_REPORTHEADER = "DamageMeters: <%s> report on %d/%d sources:";
291 DM_MSG_PLAYERREPORTHEADER = "DamageMeters: Player report on %s:";
292 DM_MSG_SETCOUNTTOMAX = "DamageMeters: No count argument specified, setting to max.";
293 DM_MSG_SETCOUNT = "DamageMeters: New bar count = ";
294 DM_MSG_RESETFRAMEPOS = "DamageMeters: Resetting frame position.";
295 DM_MSG_SAVE = "DamageMeters: Saving table.";
296 DM_MSG_RESTORE = "DamageMeters: Restoring saved table.";
297 DM_MSG_MERGE = "DamageMeters: Merging saved table with current.";
298 DM_MSG_SWAP = "DamageMeters: Swapping normal (%d) and saved (%d) table.";
299 DM_MSG_SETCOLORSCHEME = "DamageMeters: Setting color scheme to ";
300 DM_MSG_TRUE = "true";
301 DM_MSG_FALSE = "false";
302 DM_MSG_SETVISINPARTY = "DamageMeters: Visible-only-in-party is set to ";
303 DM_MSG_SETAUTOCOUNT = "DamageMeters: Setting new autocount limit to ";
304 DM_MSG_LISTBANNED = "DamageMeters: Listing banned entities:";
305 DM_MSG_CLEARBANNED = "DamageMeters: Clearing all banned entities.";
306 DM_MSG_HOWTOSHOW = "DamageMeters: Hiding window. Use /dm show to make it visible again.";
307 DM_MSG_SYNCCHAN = "DamageMeters: Synchronization channel name set to ";
308 DM_MSG_SYNCREQUESTACK = "DamageMeters: Sync requested from player ";
309 DM_MSG_SYNCREQUESTACKEVENTS = "DamageMeters: Sync (with events) requested from player ";
310 DM_MSG_SYNC = "DamageMeters: Sending sync data.";
311 DM_MSG_SYNCEVENTS = "DamageMeters: Sending sync data (with events).";
312 DM_MSG_LOCKED = "DamageMeters: List now locked.";
313 DM_MSG_NOTLOCKED = "DamageMeters: List unlocked.";
314 DM_MSG_PAUSED = "DamageMeters: Parsing paused.";
315 DM_MSG_UNPAUSED = "DamageMeters: Parsing resumed.";
316 DM_MSG_POSLOCKED = "DamageMeters: Position locked.";
317 DM_MSG_POSNOTLOCKED = "DamageMeters: Position unlocked.";
318 DM_MSG_CLEARRECEIVED = "DamageMeters: Clear request received from player ";
319 DM_MSG_ADDINGPETTOPLAYER = "DamageMeters: Now treating pet data as though it was yours.";
320 DM_MSG_NOTADDINGPETTOPLAYER = "DamageMeters: Pet data now treated separately from yours.";
321 DM_MSG_PETMERGE = "DamageMeters: Merging pet's (%s) information into your's.";
322 DM_MSG_RESETWHENCOMBATSTARTSCHANGE = "DamageMeters: Reset when combat starts = ";
323 DM_MSG_SHOWFIGHTASPS = "DamageMeters: Showing fight data as per/second = ";
324 DM_MSG_COMBATDURATION = "Combat duration = %.2f seconds.";
325 DM_MSG_RECEIVEDSYNCDATA = "DamageMeters: Receiving Sync data from %s.";
326 DM_MSG_TOTAL = "TOTAL";
327 DM_MSG_VERSION = "DamageMeters Version %s Active.";
328 DM_MSG_REPORTHELP = "The /dm report command consists of three parts:\n\n1) The destination character. This can be one of the following letters:\n c - Console (only you can see it)%.\n s - Say\n p - Party chat\n r - Raid chat\n g - Guild chat\n o - Guild Officer chat\n h - Chat cHannel. /dm report h mychannel\n w - Whisper to player. /dm report w dandelion\n f - Frame: Shows the report in this window.\n\nIf the letter is lower case the report will be in reverse order (lowest to highest)%.\n\n2) Optionally, the number of people to limit it to. This number goes right after the destination character.\nExample: /dm report p5.\n\n3) By default, reports are on the currently visible quantity only. If the word 'total' is specified before the destination character, though, the report will be on the totals for every quantity. 'Total' reports are formatted so that they look good when cut-and-paste into a text file, and so work best with the Frame destination.\nExample: /dm report total f\n\nExample: Whisper to player 'dandelion' the top three people in the list:\n/dm report w3 dandelion";
329 DM_MSG_COLLECTORS = "Data collectors: (%s)";
330 DM_MSG_ACCUMULATING = "DamageMeters: Accumulating data in memory register.";
331 DM_MSG_REPORTTOTALDPS = "Total = %.1f (%.1f visible)";
332 DM_MSG_REPORTTOTAL = "Total = %d (%d visible)";
333 DM_MSG_SYNCMSG = "[DMM] |Hplayer:%s|h[%s]|h: %s";
334 DM_MSG_MEMCLEAR = "DamageMeters: Saved table cleared.";
335 DM_MSG_MAXBARS = "DamageMeters: Setting show-max-bars to %s.";
336 DM_MSG_MINBARS = "DamageMeters: Setting minimized to %s.";
337 DM_MSG_LEADERREPORTHEADER = "DamageMeters: Leaders Report on %d/%d Sources:\n #";
338 -- This causes disconnects...maybe its too long? ..maybe WoW doesn't like the \n character?
339 --DM_MSG_FULLREPORTHEADER = "DamageMeters: Full Report on %d/%d Sources:\nPlayer Damage Healing Damaged Healed Hits Crits\n_______________________________________________________________________________";
340 DM_MSG_FULLREPORTHEADER1 = "DamageMeters: Full Report on %d/%d Sources:";
341 DM_MSG_FULLREPORTHEADER2 = "Player Damage Healing Damaged Healed Hits Crits";
342 DM_MSG_FULLREPORTHEADER3 = "_______________________________________________________________________________";
343 DM_MSG_CLEARACKNOWLEDGED = "DamageMeters: Clear acknowledged from player %s.";
344 DM_MSG_EVENTREPORTHEADER = "DamageMeters: Event report on %d/%d sources:\n";
345 DM_MSG_PLAYERONLYEVENTDATAOFF = "DamageMeters: Recording all player's event data.";
346 DM_MSG_PLAYERONLYEVENTDATAON = "DamageMeters: Now recording only your own event data.";
347 DM_MSG_SYNCCHANBROADCAST = "<DamageMeters>: Setting this group's sync channel to: ";
348 DM_MSG_SYNCINGROUPON = "DamageMeters: You will now only sync with group members.";
349 DM_MSG_SYNCINGROUPOFF = "DamageMeters: You can now sync with anyone.";
350 DM_MSG_AUTOSYNCJOINON = "DamageMeters: You will automatically join broadcasted sync channels.";
351 DM_MSG_AUTOSYNCJOINOFF = "DamageMeters: You will no longer automatically join broadcasted sync channels.";
352 DM_MSG_SYNCHELP = "DamageMeters Sync'ing (short for synchronization) is a process whereby multiple DM users can transmit their data to each other. Its primary use is for instances where the players are often far from each other and thus miss some of each other's combat messages.\n\nSync Quick-Start Guide:\n\n1) Someone (I'll call her the Sync Leader) chooses a channel name and joins it, ie. /dm syncchan ourchannel.\n2) The Sync Leader then calls /dm syncbroadcastchan (or just /dm syncb). Anyone who is running a sufficiently recent version of DM will automatically be joined into that channel.\n3) The Sync Leader choses a name for the session--for example, Onyxia-- then calls /dm syncstart with that name. (/dm syncstart Onyxia_. This will clear everyone's data and pause them, as well as mark them with this label.\n3) Once everyone is in the channel, but before the activity begins, the Sync Leader should call /dm syncready or /dm syncunpause so that data collection can happen.\n4) Play! Collect data!\n5) Finally, the Sync Leader calls /dm sync whenever she wants the raid to share data. Since it can cause a little slowdown it is best to do this between fights (though not necessarily between every fight). If event data is desired, call (/dm sync e), though it takes a lot longer to sync.\n\nNote: There is nothing special about the Sync Leader: any player can perform any of these commands. It just seems simpler to have one person in charge of it.";
353 DM_MSG_PINGING = "DamageMeters: Pinging other players...";
354 DM_MSG_SYNCONLYPLAYEREVENTSON = "DamageMeters: Only your event information will be transmitted.";
355 DM_MSG_SYNCONLYPLAYEREVENTSOFF = "DamageMeters: All player's event information will be transmitted.";
356 DM_MSG_SYNCPAUSE = "DamageMeters: Pause command recieved from %s.";
357 DM_MSG_SYNCUNPAUSE = "DamageMeters: Unpause command recieved from %s.";
358 DM_MSG_SYNCREADY = "DamageMeters: Ready command recieved from %s.";
359 DM_MSG_SYNCPAUSEREQ = "DamageMeters: Transmitting pause command...";
360 DM_MSG_SYNCUNPAUSEREQ = "DamageMeters: Transmitting unpause command...";
361 DM_MSG_SYNCREADYREQ = "DamageMeters: Transmitting ready command...";
362 DM_MSG_PRESSCONTROLEVENT = "Press Control To See Event Data";
363 DM_MSG_PRESSCONTROLQUANTITY = "Press Control To See Quantity Data";
364 DM_MSG_PRESSALTSINGLEQUANTITY = "Press Alt To See Only Current Quantity";
365 DM_MSG_PAUSEDTITLE = "Paused";
366 DM_MSG_READYTITLE = "Ready";
367 DM_MSG_EVENTDATALEVEL = {
368 "DamageMeters: Parsing no event data.",
369 "DamageMeters: Parsing player's event data only.",
370 "DamageMeters: Parsing all players' event data."
371 };
372 DM_MSG_SYNCEVENTDATALEVEL = {
373 "DamageMeters: Transmitting no event data.",
374 "DamageMeters: Transmitting player's event data only.",
375 "DamageMeters: Transmitting all players' event data."
376 };
377 DM_MSG_HELP = "- Enter /dm cmd for a list of commands.\n- If you cannot see the DM window, try /dm resetpos.";
378 DM_MSG_LEAVECHAN = "DamageMeters: Leaving sync channel '%s'.";
379 DM_MSG_READYUNPAUSING = "DamageMeters: Damage event received, transmitting sync unpause command...";
380 DM_MSG_KICKED = "DamageMeters: You have been removed from the sync channel by %s.";
381 DM_MSG_SETLABEL = "DamageMeters: Session label set to <%s>. (Index = %d)";
382 DM_MSG_SESSIONMISMATCH = "DamageMeters: Sync received with different session information. Auto-clearing.";
383 DM_MSG_SHOWINGFIGHTEVENTSONLY = "Showing events for current fight only.";
384 DM_MSG_SYNCCLEARREQ = "DamageMeters: Transmitting clear request...";
385 DM_MSG_CURRENTBARWIDTH = "DamageMeters: Current bar width = %d.\nCall (/dm setbarwidth default) to reset.";
386 DM_MSG_NEWBARWIDTH = "DamageMeters: New bar width = %d.";
387 DM_MSG_PLAYERJOINEDSYNCCHAN = "DamageMeters: Player %s joined sync channel. [Version %s]";
388 DM_MSG_SYNCSESSIONMISMATCH = "Player %s's session (%s:%d) mismatched: Player's data cleared.";
389 DM_MSG_SYNCHALTRECEIVED = "DamageMeters: Sync Halt command received from %s.";
390 DM_MSG_SYNCHALTSENT = "DamageMeters: Transmitting halt command...";
391 DM_MSG_SYNCSESSIONCURRENT = "DamageMeters: You already have the current majority session.";
392 DM_MSG_SYNCNOSESSIONS = "DamageMeters: No current sessions found.";
393 -- RPS
394 DM_MSG_RPS_CHALLENGE = "You challenge %s to Rock-Paper Scissors! You play %s.";
395 DM_MSG_RPS_CHALLENGED = "%s has challenged you to Rock-Paper-Scissors! Use /dm rpsr [player] [r/p/s] to respond.";
396 DM_MSG_RPS_MISSING_PLAYER = "ERROR: Missing Arg. Player argument can be omitted if and only if there is only one player currently challenging you.";
397 DM_MSG_RPS_NOTCHALLENGED = "Error: You were not challenged by %s.";
398 DM_MSG_RPS_YOUPLAY = "You play %s.";
399 DM_MSG_RPS_PLAYS = "%s plays %s.";
400 DM_MSG_RPS_DEFEATED = "%s has defeated you.";
401 DM_MSG_RPS_VICTORIOUS = "You have defeated %s!"
402 DM_MSG_RPS_TIE = "You have tied with %s.";
403  
404 --[[ Note: This is only to help construct the DM_MSG_REPORTHELP string.
405 The /dm report command consists of three parts:
406  
407 1) The destination character. This can be one of the following letters:
408 c - Console (only you can see it)%.
409 s - Say
410 p - Party chat
411 r - Raid chat
412 g - Guild chat
413 h - Chat cHannel. /dm report h mychannel
414 w - Whisper to player. /dm report w dandelion
415 f - Frame: Shows the report in this window.
416  
417 If the letter is lower case the report will be in reverse order (lowest to highest)%.
418  
419 2) Optionally, the number of people to limit it to. This number goes right after the destination character.
420 Example: /dm report p5
421  
422 3) By default, reports are on the currently visible quantity only. If the word 'total' is specified before the destination character, though, the report will be on the totals for every quantity. 'Total' reports are formatted so that they look good when cut-and-paste into a text file, and so work best with the Frame destination.
423 Example: /dm report total f
424  
425 Example: Whisper to player "dandelion" the top three people in the list:
426 /dm report w3 dandelion
427 ]]--
428  
429 --[[ Note: This is only to help construct the DM_MSG_SYNCHELP string.
430 DamageMeters Sync'ing (short for synchronization) is a process whereby multiple DM users can transmit their data to each other. Its primary use is for instances where the players are often far from each other and thus miss some of each other's combat messages.\n\nSync Quick-Start Guide:\n\n1) Someone (I'll call her the Sync Leader) chooses a channel name and joins it, ie. /dm syncchan ourchannel.\n2) The Sync Leader then calls /dm syncbroadcastchan (or just /dm syncb). Anyone who is running a sufficiently recent version of DM will automatically be joined into that channel.\n3) The Sync Leader choses a name for the session--for example, Onyxia-- then calls /dm syncstart with that name. (/dm syncstart Onyxia_. This will clear everyone's data and pause them, as well as mark them with this label.\n3) Once everyone is in the channel, but before the activity begins, the Sync Leader should call /dm syncready or /dm syncunpause so that data collection can happen.\n4) Play! Collect data!\n5) Finally, the Sync Leader calls /dm sync whenever she wants the raid to share data. Since it can cause a little slowdown it is best to do this between fights (though not necessarily between every fight). If event data is desired, call (/dm sync e), though it takes a lot longer to sync.\n\nNote: There is nothing special about the Sync Leader: any player can perform any of these commands. It just seems simpler to have one person in charge of it.
431 ]]--
432  
433 -- Menu Options --
434 DM_MENU_CLEAR = "Clear";
435 DM_MENU_RESETPOS = "Reset Position";
436 DM_MENU_HIDE = "Hide Window";
437 DM_MENU_SHOW = "Show Window";
438 DM_MENU_VISINPARTY = "Visible Only While In A Party";
439 DM_MENU_REPORT = "Report";
440 DM_MENU_BARCOUNT = "Bar Count";
441 DM_MENU_AUTOCOUNTLIMIT = "Auto Count Limit";
442 DM_MENU_SORT = "Sort Type";
443 DM_MENU_VISIBLEQUANTITY = "Visible Quantity";
444 --DM_MENU_COLORSCHEME = "Color Scheme";
445 DM_MENU_MEMORY = "Memory Register";
446 DM_MENU_SAVE = "Save";
447 DM_MENU_RESTORE = "Restore";
448 DM_MENU_MERGE = "Merge";
449 DM_MENU_SWAP = "Swap";
450 DM_MENU_DELETE = "Delete";
451 DM_MENU_BAN = "Ban";
452 DM_MENU_CLEARABOVE = "Clear Above";
453 DM_MENU_CLEARBELOW = "Clear Below";
454 --DM_MENU_LOCK = "Lock List";
455 --DM_MENU_UNLOCK = "Unlock List";
456 DM_MENU_PAUSE = "Pause Parsing";
457 --DM_MENU_UNPAUSE = "Resume Parsing";
458 DM_MENU_LOCKPOS = "Lock Position";
459 DM_MENU_UNLOCKPOS = "Unlock Position";
460 DM_MENU_GROUPMEMBERSONLY = "Only Monitor Group Members";
461 DM_MENU_ADDPETTOPLAYER = "Treat Pet Data As Your Data";
462 DM_MENU_TEXT = "Text Options";
463 DM_MENU_TEXT_RANK = "Rank";
464 DM_MENU_TEXT_NAME = "Name";
465 DM_MENU_TEXT_TOTALPERCENTAGE = "% of Total";
466 DM_MENU_TEXT_LEADERPERCENTAGE = "% of Leader's";
467 DM_MENU_TEXT_VALUE = "Value";
468 DM_MENU_TEXT_DELTA = "Delta";
469 DM_MENU_SETCOLORFORALL = "Set Color For All";
470 DM_MENU_DEFAULTCOLORS = "Restore Default Colors";
471 DM_MENU_RESETONCOMBATSTARTS = "Reset Data When Combat Starts";
472 DM_MENU_SHOWFIGHTASPS = "Show Fight Data as Per/Second";
473 DM_MENU_REFRESHBUTTON = "Refresh";
474 DM_MENU_TOTAL = "Total";
475 DM_MENU_CHOOSEREPORT = "Choose Report";
476 -- Note reordered this list in version 2.2.0
477 DM_MENU_REPORTNAMES = {"Frame", "Console", "Say", "Party", "Raid", "Guild", "Officer"};
478 DM_MENU_TEXTCYCLE = "Cycle";
479 DM_MENU_QUANTCYCLE = "Auto-Cycle";
480 DM_MENU_HELP = "Help";
481 DM_MENU_ACCUMULATEINMEMORY = "Accumulate Data";
482 DM_MENU_POSITION = "Position";
483 DM_MENU_RESIZELEFT = "Resize Left";
484 DM_MENU_RESIZEUP = "Resize Up";
485 DM_MENU_SHOWMAX = "Show Max";
486 DM_MENU_SHOWTOTAL = "Show Total";
487 DM_MENU_LEADERS = "Leaders";
488 DM_MENU_PLAYERREPORT = "Player Report";
489 DM_MENU_EVENTREPORT = "Event Report";
490 DM_MENU_EVENTDATA = "Event Data";
491 DM_MENU_EVENTDATA_NONE = "Parse No Events";
492 DM_MENU_EVENTDATA_PLAYER = "Parse Own Events";
493 DM_MENU_EVENTDATA_ALL = "Parse All Events";
494 --DM_MENU_SYNCEVENTDATA_NONE = "Transmit No Events";
495 --DM_MENU_SYNCEVENTDATA_PLAYER = "Transmit Own Events";
496 --DM_MENU_SYNCEVENTDATA_ALL = "Transmit All Events";
497 DM_MENU_SHOWEVENTDATATOOLTIP = "Tooltip Default";
498 DM_MENU_EVENTS1 = "Events 1-20";
499 DM_MENU_EVENTS2 = "Events 21-40";
500 DM_MENU_EVENTS3 = "Events 41-50";
501 DM_MENU_SYNC = "Synchronization";
502 DM_MENU_ONLYSYNCWITHGROUP = "Only Sync With Group";
503 DM_MENU_PERMITSYNCAUTOJOIN = "Join Broadcasted Channels";
504 DM_MENU_CLEARONAUTOJOIN = "Clear When Joining";
505 DM_MENU_SYNCBROADCASTCHAN = "Broadcast Channel";
506 DM_MENU_SYNCLEAVECHAN = "Leave Channel";
507 DM_MENU_SYNCONLYPLAYEREVENTS = "Sync Self Events Only";
508 DM_MENU_ENABLEDMM = "Show DMM Messages";
509 DM_MENU_NOSYNCCHAN = "NO SYNC CHANNEL SET";
510 DM_MENU_SYNCCHAN = "Current syncchan = ";
511 DM_MENU_SESSION = "Current session = ";
512 DM_MENU_SAVEDSESSION = "Session = ";
513 DM_MENU_JOINSYNCCHAN = "Join Channel: Use /dm syncchan";
514 DM_MENU_PARSEEVENTMESSAGES = "Parse Incoming Events";
515 DM_MENU_SENDINGBAR = "Sending...";
516 DM_MENU_PROCESSINGBAR = "Processing...";
517 DM_MENU_QUANTITYFILTER = "Quantity Filter";
518 DM_MENU_MINIMIZE = "Minimize";
519 DM_MENU_LEFTJUSTIFYTEXT = "Left-Justify";
520 DM_MENU_RESTOREDEFAULTOPTIONS = "Restore Default Options";
521 DM_MENU_PLAYERALWAYSVISIBLE = "Self Always Visible";
522 DM_MENU_APPLYFILTERTOMANUALCYCLING = "Apply to Manual Cycling";
523 DM_MENU_APPLYFILTERTOAUTOCYCLING = "Apply to Auto-Cycle";
524 DM_MENU_GENERAL = "General Options";
525 DM_MENU_GROUPDPSMODE = "Group DPS Mode";
526 DM_MENU_CLEARBANNED = "Un-ban All";
527 DM_MENU_CONSTANTVISUALUPDATE = "Constant Visual Update";
528 DM_MENU_CLEARWHENJOINPARTY = "Clear When Joining A Party";
529 DM_MENU_AUTOSYNC = "Sync Automaticly";
530 DM_MENU_STARTNEWSESSION = "Start A New Session";
531 DM_MENU_SYNCGROUPDATA = "Syncronize Group Data";
532 DM_MENU_SYNCREADY = "Request Ready";
533 DM_MENU_SYNCPAUSE = "Request Pause";
534 DM_MENU_SYNCCLEAR = "Request Clear";
535 DM_MENU_REPORTCHANNEL = "Channel";
536 DM_MENU_REPORTWHISPER = "Whisper";
537 DM_MENU_ENABLESYNC = "Enable Data Sync";
538 DM_MENU_SYNCREQSESSION = "Request Session ID";
539 DM_MENU_HIDESCROLLBAR = "Hide Scroll Bar";
540  
541  
542 -- Misc
543 DM_CLASS = "Class"; -- The word for player class, like Druid or Warrior.
544 DM_TOOLTIP = "\nTime since last action = %.1fs\nRelationship = %s";
545 DM_YOU = "you"
546 DM_CRITSTR = "Crit";
547 DM_UNKNOWNENTITY = "Unknown Entity";
548 DM_SYNCSPELLNAME = "[Sync]";
549 DM_NEWSESSIONID = "Enter new session ID: "
550 DM_REPORTCHANNEL = "Enter the name or number of the channel to report to: "
551 DM_REPORTWHISPER = "Enter the name of the player to report to: "
552  
553 DM_DMG_MELEE = "[Melee]";
554 DM_DMG_FALLING = "[Falling]";
555 DM_DMG_LAVA = "[Lava]";
556 DM_DMG_DAMAGESHIELD = "[DmgShield]";
557 DM_DMG_DEATH = "[Death]";
558 DM_DMG_COMBAT = "[Out of Combat]";
559  
560 DamageMeters_RPSmoveStrings =
561 {
562 r = "Rock",
563 p = "Paper",
564 s = "Scissors"
565 };
566  
567 -------------------------------------------------------------------------------
568  
569 --[[ This system based on the one in Gello's Recap, which itself was based on the one in Telo's MobHealth.
570 - source and dest = 0 means the player
571  
572 TODO: These are all special cases in English because they contain apostrophes.
573 Julie's Dagger
574 Rammstein's Lightning Bolts
575 Night Dragon's Breath
576  
577 ]]--
578  
579 --[[
580 This table defines types of messages that DM parses and how to parse them.
581  
582 The index of the table is a human-readable name, which by convention is
583 normally the name of the string variable (as defined in GlobalStrings.lua) that
584 is being parsed. Every type of message that is parsed for the "Damage Done",
585 "Healing Done", "Damage Taken", and "Healing Taken" quantities must be defined in this
586 table.
587  
588 The key to the system is the "pattern" member. This is usually (there are some
589 special cases) a string defined in GlobalStrings.lua. An example is COMBATHITSELFOTHER =
590 "You hit %s for %d.". When DM loads up it goes through this list and converts all the
591 patterns into "regular expression" search strings. So, for example, the above becomes
592 "You hit (.+) for (%d+)%."
593  
594 When a match is found there will be an array of "elements" for
595 each unknown in the pattern. In the above pattern, elements[1] will be the string name
596 of who was hit, and elements[2] will be how much damage was done. Each msgInfo has fields
597 in which you specify which elements mean what. So, in the msgInfo for this example we set
598 "dest=1" and "amount=2".
599  
600 The fields of each entry are defined as follows:
601 - source: The index of the element that specifies the source of the amount. The source is the
602 person doing damage or doing the healing in the case of "Damage done" and "healing done" messages,
603 but it is the the person being hit in the case of "damage received" messages. When source=0, it
604 means the player (us) is the source.
605 - dest: The name of the entity being effected. Again, dest=0 means the player.
606 - amount: The index of the element that contains the quantity of damage/healing done.
607 - spell: This is the index of the element which references the spell that is doing the damage/healing.
608 Alternately, if it is a string that spell will be used explicitly. Spell=0 or nil defaults to regular
609 melee damage.
610 - damageType: Also known as "school", this is the index of the element which specifies the type of
611 damage done, ie. "physical", "fire", "frost", etc.
612 - crit: This is one of three defined values: DM_HIT, DM_CRT, DM_DOT. Set this to specify whether
613 the message represents a spell that hit normally, critically hit, or was a non-crittable spell.
614 (Damage Over Time spells, DOTs, cannot crit, hence the name.)
615 - pattern: This is the pattern, usually a string from GlobalStrings.lua.
616 - custom: If this is set to true, the pattern will not be transformed when DM is loaded. Use
617 this for custom patterns.
618 ]]--
619  
620 DamageMeters_msgInfo = {
621 -- CHAT_MSG_COMBAT_SELF_HITS
622 _COMBATHITSELFOTHER =
623 { source=0, dest=1, amount=2, spell=0, damageType=0, crit=DM_HIT, pattern=COMBATHITSELFOTHER }, -- You hit (.+) for (%d+)
624 _COMBATHITCRITSELFOTHER =
625 { source=0, dest=1, amount=2, spell=0, damageType=0, crit=DM_CRT, pattern=COMBATHITCRITSELFOTHER }, -- You crit (.+) for (%d+)
626 _VSENVIRONMENTALDAMAGE_FALLING_SELF =
627 { source=0, dest=0, amount=1, spell=DM_DMG_FALLING, damageType=0, crit=DM_DOT, pattern=VSENVIRONMENTALDAMAGE_FALLING_SELF }, -- You fall and lose (%d+) health
628 _VSENVIRONMENTALDAMAGE_LAVA_SELF =
629 { source=0, dest=0, amount=1, spell=DM_DMG_LAVA, damageType=0, crit=DM_DOT, pattern=VSENVIRONMENTALDAMAGE_LAVA_SELF }, -- You lose %d health for swimming in lava.
630  
631  
632 -- CHAT_MSG_SPELL_SELF_DAMAGE
633 _SPELLLOGSCHOOLSELFOTHER =
634 { source=0, dest=2, amount=3, spell=1, damageType=4, crit=DM_HIT, pattern=SPELLLOGSCHOOLSELFOTHER }, -- Your (.+) hits (.+) for (%d+) (.+)%.
635 _SPELLLOGCRITSCHOOLSELFOTHER =
636 { source=0, dest=2, amount=3, spell=1, damageType=4, crit=DM_CRT, pattern=SPELLLOGCRITSCHOOLSELFOTHER }, -- "Your %s crits %s for %d %s damage.";
637 _SPELLLOGSELFOTHER =
638 { source=0, dest=2, amount=3, spell=1, damageType=0, crit=DM_HIT, pattern=SPELLLOGSELFOTHER }, -- Your (.+) hits (.+) for (%d+)
639 _SPELLLOGCRITSELFOTHER =
640 { source=0, dest=2, amount=3, spell=1, damageType=0, crit=DM_CRT, pattern=SPELLLOGCRITSELFOTHER }, -- Your (.+) crits (.+) for (%d+)
641  
642 -- "CHAT_MSG_SPELL_PERIODIC_CREATURE_DAMAGE" or event == "CHAT_MSG_SPELL_PERIODIC_HOSTILEPLAYER_DAMAGE"
643 -- No such message.
644 --_PERIODICAURADAMAGEABSORBEDSELFOTHER =
645 -- { source=0, dest=1, amount=2, spell=4, damageType=3, crit=DM_DOT, pattern=PERIODICAURADAMAGEABSORBEDSELFOTHER }, -- = "%s suffers %d %s damage from your %s (%d absorbed)."
646 _PERIODICAURADAMAGESELFOTHER =
647 { source=0, dest=1, amount=2, spell=4, damageType=3, crit=DM_DOT, pattern=PERIODICAURADAMAGESELFOTHER }, -- (.+) suffers (%d+) (.+) damage from your (.+).
648 -- No such message.
649 --_PERIODICAURADAMAGEABSORBEDOTHEROTHER =
650 -- { source=4, dest=1, amount=2, spell=5, damageType=3, crit=DM_DOT, pattern=PERIODICAURADAMAGEABSORBEDOTHEROTHER }, -- %s suffers %d %s damage from %s's %s (%d absorbed).
651 _PERIODICAURADAMAGEOTHEROTHER =
652 { source=4, dest=1, amount=2, spell=5, damageType=0, crit=DM_DOT, pattern=PERIODICAURADAMAGEOTHEROTHER }, -- (.+) suffers (%d+) (.+) damage from (.+)'s (.+)
653  
654 -- "CHAT_MSG_COMBAT_PARTY_HITS" or "CHAT_MSG_COMBAT_FRIENDLYPLAYER_HITS" or "CHAT_MSG_COMBAT_PET_HITS")
655 _COMBATHITOTHEROTHER =
656 { source=1, dest=2, amount=3, spell=7, damageType=0, crit=DM_HIT, pattern=COMBATHITOTHEROTHER }, -- (.+) hits (.+) for (%d+)
657 _COMBATHITCRITOTHEROTHER =
658 { source=1, dest=2, amount=3, spell=7, damageType=0, crit=DM_CRT, pattern=COMBATHITCRITOTHEROTHER }, -- (.+) crits (.+) for (%d+)
659 _VSENVIRONMENTALDAMAGE_FALLING_OTHER =
660 { source=1, dest=1, amount=2, spell=DM_DMG_FALLING, damageType=0, crit=DM_DOT, pattern=VSENVIRONMENTALDAMAGE_FALLING_OTHER }, -- %s falls and loses %d health.
661 _VSENVIRONMENTALDAMAGE_LAVA_OTHER =
662 { source=1, dest=1, amount=2, spell=DM_DMG_LAVA, damageType=0, crit=DM_DOT, pattern=VSENVIRONMENTALDAMAGE_LAVA_OTHER }, -- %s loses %d health for swimming in lava.
663  
664 -- "CHAT_MSG_SPELL_PARTY_DAMAGE" "CHAT_MSG_SPELL_FRIENDLYPLAYER_DAMAGE" "CHAT_MSG_SPELL_PET_DAMAGE"
665 _SPELLLOGOTHEROTHER =
666 { source=1, dest=3, amount=4, spell=2, damageType=0, crit=DM_HIT, pattern=SPELLLOGOTHEROTHER }, -- (.+)'s (.+) hits (.+) for (%d+)
667 _SPELLLOGCRITOTHEROTHER =
668 { source=1, dest=3, amount=4, spell=2, damageType=0, crit=DM_CRT, pattern=SPELLLOGCRITOTHEROTHER }, -- (.+)'s (.+) crits (.+) for (%d+)
669 _SPELLSPLITDAMAGEOTHEROTHER =
670 { source=1, dest=3, amount=4, spell=2, damageType=0, crit=DM_DOT, pattern=SPELLSPLITDAMAGEOTHEROTHER }, -- (.+)'s (.+) causes (.+) (%d+) damage
671  
672 -- CHAT_MSG_SPELL_DAMAGESHIELDS_ON_SELF
673 _DAMAGESHIELDSELFOTHER =
674 { source=0, dest=3, amount=1, spell=DM_DMG_DAMAGESHIELD, damageType=0, crit=DM_DOT, pattern=DAMAGESHIELDSELFOTHER }, -- You reflect (%d+) (.+) damage to (.+)
675  
676 -- CHAT_MSG_SPELL_DAMAGESHIELDS_ON_OTHERS
677 _DAMAGESHIELDOTHEROTHER =
678 { source=1, dest=4, amount=2, spell=DM_DMG_DAMAGESHIELD, damageType=0, crit=DM_DOT, pattern=DAMAGESHIELDOTHEROTHER }, -- (.+) reflects (%d+) (.+) damage to (.+)
679 -- ? soul link or something?
680 _SPELLSPLITDAMAGESELFOTHER =
681 { source=0, dest=2, amount=3, spell=1, damageType=0, crit=DM_DOT, pattern=SPELLSPLITDAMAGESELFOTHER }, -- Your (.+) causes (.+) (%d+) damage
682  
683 -- DAMAGE TAKEN
684 --"CHAT_MSG_COMBAT_CREATURE_VS_SELF_HITS" -- this gets complicated with pets.
685 --"CHAT_MSG_COMBAT_CREATURE_VS_PARTY_HITS"
686 --"CHAT_MSG_COMBAT_CREATURE_VS_CREATURE_HITS"
687 _COMBATHITOTHERSELF =
688 { source=1, dest=0, amount=2, crit=DM_HIT, pattern=COMBATHITOTHERSELF }, -- "%s hits you for %d.";
689 _COMBATHITCRITOTHERSELF =
690 { source=1, dest=0, amount=2, crit=DM_CRT, pattern=COMBATHITCRITOTHERSELF }, -- "%s crits you for %d.";
691 _COMBATHITOTHEROTHER =
692 { source=1, dest=2, amount=3, crit=DM_HIT, pattern=COMBATHITOTHEROTHER }, -- "%s hits %s for %d.";
693 _COMBATHITCRITOTHEROTHER =
694 { source=1, dest=2, amount=3, crit=DM_CRT, pattern=COMBATHITCRITOTHEROTHER }, -- "%s crits %s for %d.";
695 _COMBATHITCRITSCHOOLOTHEROTHER =
696 { source=1, dest=2, amount=3, damageType=4, crit=DM_CRT, pattern=COMBATHITCRITSCHOOLOTHEROTHER }, -- "%s crits %s for %d %s damage.";
697 _COMBATHITSCHOOLOTHEROTHER =
698 { source=1, dest=2, amount=3, damageType=4, crit=DM_HIT, pattern=COMBATHITSCHOOLOTHEROTHER }, -- "%s hits %s for %d %s damage.";
699 _COMBATHITCRITSCHOOLOTHERSELF =
700 { source=1, dest=0, amount=2, damageType=3, crit=DM_CRT, pattern=COMBATHITCRITSCHOOLOTHERSELF }, -- "%s crits you for %d %s damage.";
701 _COMBATHITSCHOOLOTHERSELF =
702 { source=1, dest=0, amount=2, damageType=3, crit=DM_HIT, pattern=COMBATHITSCHOOLOTHERSELF }, -- "%s hits you for %d %s damage.";
703  
704  
705 --"CHAT_MSG_SPELL_CREATURE_VS_SELF_DAMAGE" or
706 --"CHAT_MSG_SPELL_CREATURE_VS_PARTY_DAMAGE" or
707 --"CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE") then
708 _SPELLLOGOTHERSELF =
709 { source=1, dest=0, amount=3, spell=2, damageType=0, crit=DM_HIT, pattern=SPELLLOGOTHERSELF }, -- "%s's %s hits you for %d.";
710 _SPELLLOGSCHOOLOTHERSELF =
711 { source=1, dest=0, amount=3, spell=2, damageType=4, crit=DM_HIT, pattern=SPELLLOGSCHOOLOTHERSELF }, -- "%s's %s hits you for %d %s damage.";
712 _SPELLLOGCRITSCHOOLOTHERSELF =
713 { source=1, dest=0, amount=3, spell=2, damageType=4, crit=DM_CRT, pattern=SPELLLOGCRITSCHOOLOTHERSELF }, -- "%s's %s crits you for %d %s damage.";
714 _SPELLLOGCRITOTHERSELF =
715 { source=1, dest=0, amount=3, spell=2, crit=DM_CRT, pattern=SPELLLOGCRITOTHERSELF }, -- "%s's %s crits you for %d.";
716 -- bunch of junk in here in the old code
717 _SPELLRESISTOTHERSELF =
718 { source=1, dest=0, amount=0, spell=2, crit=DM_HIT, pattern=SPELLRESISTOTHERSELF }, -- "%s's %s was resisted.";
719  
720 _SPELLLOGSCHOOLOTHEROTHER =
721 { source=1, dest=3, amount=4, spell=2, damageType=5, crit=DM_HIT, pattern=SPELLLOGSCHOOLOTHEROTHER }, -- "%s's %s hits %s for %d %s damage.";
722 _SPELLLOGCRITSCHOOLOTHEROTHER =
723 { source=1, dest=3, amount=4, spell=2, damageType=5, crit=DM_CRT, pattern=SPELLLOGCRITSCHOOLOTHEROTHER }, -- "%s's %s crits %s for %d %s damage.";
724 _SPELLRESISTOTHEROTHER =
725 { source=1, dest=3, amount=0, spell=2, crit=DM_HIT, pattern=SPELLRESISTOTHEROTHER }, -- "%s's %s was resisted by %s.";
726  
727 --"CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE"
728 _PERIODICAURADAMAGEOTHERSELF =
729 { source=3, dest=0, amount=1, spell=4, damageType=2, crit=DM_DOT, pattern=PERIODICAURADAMAGEOTHERSELF }, -- "You suffer %d %s damage from %s's %s."
730 _PERIODICAURADAMAGESELFSELF =
731 { source=0, dest=0, amount=1, spell=3, damageType=2, crit=DM_DOT, pattern=PERIODICAURADAMAGESELFSELF }, -- "You suffer %d %s damage from your %s."
732 -- pet
733 _PERIODICAURADAMAGEOTHEROTHER =
734 { source=4, dest=1, amount=2, spell=5, damageType=3, crit=DM_DOT, pattern=PERIODICAURADAMAGEOTHEROTHER }, -- "%s suffers %d %s damage from %s's %s."
735  
736 --HEALING
737 -- "CHAT_MSG_SPELL_SELF_BUFF" "CHAT_MSG_SPELL_PARTY_BUFF" "CHAT_MSG_SPELL_FRIENDLYPLAYER_BUFF" "CHAT_MSG_SPELL_HOSTILEPLAYER_BUFF"
738 _HEALEDSELFSELF =
739 { source=0, dest=0, amount=2, spell=1, crit=DM_HIT, pattern=HEALEDSELFSELF }, -- "Your %s heals you for %d.";
740 _HEALEDCRITSELFSELF =
741 { source=0, dest=0, amount=2, spell=1, crit=DM_CRT, pattern=HEALEDCRITSELFSELF }, -- "Your %s critically heals you for %d.";
742 _HEALEDSELFOTHER =
743 { source=0, dest=2, amount=3, spell=1, crit=DM_HIT, pattern=HEALEDSELFOTHER }, -- "Your %s heals %s for %d."
744 -- missing some here, ie. HEALEDSELFSELF "Your %s heals you for %d."
745 _HEALEDCRITSELFOTHER =
746 { source=0, dest=2, amount=3, spell=1, crit=DM_CRT, pattern=HEALEDCRITSELFOTHER }, -- "Your %s critically heals %s for %d.";
747 __NIGHTDRAGONSBREATHOTHER =
748 { source=1, dest=2, amount=3, spell="Night Dragon's Breath", crit=DM_HIT, pattern="(.+)'s Night Dragon's Breath heals (.+) for (%d+)%.", custom=true }, -- "%s's Night Dragon's Breath heals %s for %d.";
749 __NIGHTDRAGONSBREATHOTHERCRIT =
750 { source=1, dest=2, amount=3, spell="Night Dragon's Breath", crit=DM_CRT, pattern="(.+)'s Night Dragon's Breath critically heals (.+) for (%d+)%.", custom=true }, -- "%s's Night Dragon's Breath heals %s for %d.";
751 _HEALEDOTHERSELF =
752 { source=1, dest=0, amount=3, spell=2, crit=DM_HIT, pattern=HEALEDOTHERSELF }, -- "%s's %s heals %s you %d.";
753 _HEALEDCRITOTHERSELF =
754 { source=1, dest=0, amount=3, spell=2, crit=DM_CRT, pattern=HEALEDCRITOTHERSELF }, -- "%s's %s critically heals %s you %d.";
755 _HEALEDOTHEROTHER =
756 { source=1, dest=3, amount=4, spell=2, crit=DM_HIT, pattern=HEALEDOTHEROTHER }, -- "%s's %s heals %s for %d.";
757 _HEALEDCRITOTHEROTHER =
758 { source=1, dest=3, amount=4, spell=2, crit=DM_CRT, pattern=HEALEDCRITOTHEROTHER }, -- "%s's %s critically heals %s for %d.";
759  
760 --"CHAT_MSG_SPELL_PERIODIC_SELF_BUFFS" "CHAT_MSG_SPELL_PERIODIC_PARTY_BUFFS" "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_BUFFS" "CHAT_MSG_SPELL_PERIODIC_HOSTILEPLAYER_BUFFS" -- why?
761 __JULIESBLESSINGOTHER =
762 { source=3, dest=1, amount=2, spell="Julie's Blessing", crit=DM_HIT, pattern="(.+) gains (%d+) health from (.+)'s Julie's Blessing%.", custom=true },
763  
764 _PERIODICAURAHEALOTHERSELF =
765 { source=2, dest=0, amount=1, spell=3, crit=DM_DOT, pattern=PERIODICAURAHEALOTHERSELF }, -- "You gain %d health from %s's %s."
766 _PERIODICAURAHEALSELFSELF =
767 { source=0, dest=0, amount=1, spell=2, crit=DM_DOT, pattern=PERIODICAURAHEALSELFSELF }, -- "You gain %d health from %s."
768 _PERIODICAURAHEALSELFOTHER =
769 { source=0, dest=1, amount=2, spell=3, crit=DM_DOT, pattern=PERIODICAURAHEALSELFOTHER }, -- "%s gains %d health from your %s."
770 _PERIODICAURAHEALOTHEROTHER =
771 { source=3, dest=1, amount=2, spell=4, crit=DM_DOT, pattern=PERIODICAURAHEALOTHEROTHER }, -- "%s gains %d health from %s's %s."
772  
773 --CURING
774 };
775  
776 -------------------------------------------------------------------------------
777  
778 --[[
779 I lifted this system from some other mod (can't remember which, maybe DPSPlus).
780 Basically, the DM_Spellometer_Patterns works a lot like my own system, but
781 the patterns are quite a bit more complicated in this case. In English, the two
782 patterns represent all 4 of the following:
783  
784 DISPELLEDOTHEROTHER = "%s casts %s on %s.";
785 DISPELLEDOTHERSELF = "%s casts %s on you.";
786 DISPELLEDSELFOTHER = "You cast %s on %s.";
787 DISPELLEDSELFSELF = "You cast %s.";
788  
789 ]]--
790 DM_Spellometer_Patterns = {
791 { pattern="^([^ ]+) cast[s]? (.*) on (.*)%.$", caster=1, spell=2, target=3 },
792 { pattern="^([^ ]+) cast[s]? (.*)%.$", caster = 1, spell=2, target=nil }
793 };
794  
795 -- This list contains all of the "cure" spells we want to track.
796 DM_CURESPELLS = {
797 "Dispel Magic",
798 "Remove Curse",
799 "Remove Lesser Curse",
800 "Cure Poison",
801 "Abolish Poison",
802 "Cure Disease",
803 "Abolish Disease",
804 "Cleanse",
805 "Purification",
806 "Poison Cleansing Totem",
807 "Disease Cleansing Totem",
808 "Ancestral Spirit",
809 "Rebirth",
810 "Redemption",
811 "Resurrection",
812 "Defibrillate",
813 };
814  
815 -------------------------------------------------------------------------------