PK M= MiraMod/PK
U>b(_ _ MiraMod/MiraMod.luafunction MiraMod_OnLoad()
-- Register events
MiraMod:RegisterEvent("VARIABLES_LOADED");
MiraMod:RegisterEvent("RAID_TARGET_UPDATE");
MiraMod:RegisterEvent("CHAT_MSG_MONSTER_YELL");
MiraMod:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED");
-- Init global variables
UpdateTimeInterval = 0.5;
TimeSinceLastUpdate = 0;
MiraModTextDisplay = nil;
-- Singdragosa Stuff
oldraid_symbol = 0;
Phase2_IceBlockCounter = 0;
Phase2 = false;
-- Debuff-Scanner
-- Debuff List
DebuffListNames = {}; -- List of names of the debuff
DebuffStates = {}; -- State of the debuff true = active, false = not active
DebuffListAddSound = {}; -- Played soundfile when debuff is detected
DebuffListAddTextMsg = {}; -- Displayed text message
DebuffListRemoveSound = {}; -- Played soundfile when debuff is removed
DebuffListRemoveTextMsg = {}; -- Displayed text message
DebuffScanInGroup = {}; -- True if this debuff has to be searched in the group, to find special debuffs like blackout
DebuffYellAddText = {}; -- Text which is yelled when debuff is detected
DebuffYellRemoveText = {}; -- Text which is yelled when debuff is removed
DebuffCountdown = {}; -- Used for countdown
DebuffCountdownPos = {}; -- Position for countdown
DebuffCount = 22;
-- Set the init state to false
local za = 0;
for za=0,DebuffCount do
DebuffStates[za] = false;
DebuffCountdown[za] = 0;
DebuffCountdownPos[za] = 0;
DebuffScanInGroup[za] = false;
end
-- Nekrotische Seuche (Lich King, ICC)
DebuffListNames[0] = "Nekrotische Seuche";
DebuffListAddSound[0] = "seuche.mp3";
DebuffListAddTextMsg[0] = ">> Seuche <<";
-- Feurige Einscherung (Halion, Rubinsanktum)
DebuffListNames[1] = "Feurige Ein\195\164scherung";
DebuffListAddSound[1] = "lauf.mp3";
DebuffListAddTextMsg[1] = ">> Feurige Ein\195\164scherung <<";
DebuffListRemoveTextMsg[1] = ">> Ein\195\164scherung weg <<";
-- Seelenverzehrung (Halion, Rubinsanktum)
DebuffListNames[2] = "Seelenverzehrung";
DebuffListAddSound[2] = "lauf.mp3";
DebuffListAddTextMsg[2] = ">> Seelenverzehrung <<";
DebuffListRemoveTextMsg[2] = ">> Seelenverzehrung weg <<";
-- Schattengefngnis (Blutprinzen, ICC)
DebuffListNames[3] = "Schattengef\195\164ngnis";
DebuffListRemoveTextMsg[3] = ">> Schattengef\195\164ngnis weg <<";
DebuffListRemoveSound[3] = "verbindungweg.mp3";
-- Entfesselte Seuche (Prof. Hero, ICC)
DebuffListNames[4] = "Entfesselte Seuche";
DebuffListAddSound[4] = "seuche.mp3";
DebuffListAddTextMsg[4] = ">> Seuche <<";
DebuffListRemoveTextMsg[4] = ">> Seuche weg <<";
DebuffListRemoveSound[4] = "verbindungweg.mp3";
DebuffCountdown[4] = 10;
-- Seuchenkrankheit (Prof. Hero, ICC)
DebuffListNames[5] = "Seuchenkrankheit";
DebuffListAddSound[5] = "lauf.mp3";
DebuffListAddTextMsg[5] = ">> Krankheit <<";
DebuffListRemoveTextMsg[5] = ">> Krankheit weg <<";
DebuffListRemoveSound[5] = "verbindungweg.mp3";
-- Entfesselte Magie (Sindragosa, ICC)
DebuffListNames[6] = "Entfesselte Magie";
DebuffListAddSound[6] = "lauf.mp3";
DebuffListAddTextMsg[6] = ">> Entfesselte Magie <<";
DebuffListRemoveTextMsg[6] = ">> Entfesselte Magie weg <<";
DebuffListRemoveSound[6] = "verbindungweg.mp3";
DebuffCountdown[6] = 28;
-- Evolution (Corla, Botin des Zwielichts, Schwarzfelshhlen)
DebuffListNames[7] = "Evolution";
DebuffListRemoveTextMsg[7] = ">> Evolution weg <<";
DebuffListRemoveSound[7] = "verbindungweg.mp3";
-- Umhllende Magie (Theralion & Valiona, Bastion des Zwielichtes)
DebuffListNames[8] = "Umh\195\188llende Magie";
DebuffListAddSound[8] = "lauf.mp3";
DebuffListAddTextMsg[8] = ">> Einh\195\188llende Magie <<";
DebuffListRemoveTextMsg[8] = ">> Einh\195\188llende Magie weg <<";
DebuffListRemoveSound[8] = "verbindungweg.mp3";
-- Blackout (Theralion & Valiona, Bastion des Zwielichtes)
DebuffListNames[9] = "Blackout";
DebuffListAddSound[9] = "hinlauf.mp3";
DebuffListAddTextMsg[9] = ">> Blackout, zusammen laufen <<";
DebuffListRemoveTextMsg[9] = ">> Blackout weg, verteilen <<";
DebuffListRemoveSound[9] = "verbindungweg.mp3";
DebuffScanInGroup[9] = true;
-- Zwielichtmeteorit (Theralion & Valiona, Bastion des Zwielichtes)
DebuffListNames[10] = "Zwielichtmeteorit";
DebuffListAddSound[10] = "hinlauf.mp3";
DebuffListAddTextMsg[10] = ">> Meteor, zusammen laufen <<";
DebuffListRemoveTextMsg[10] = ">> Meteor weg, verteilen <<";
DebuffListRemoveSound[10] = "verbindungweg.mp3";
-- Wasserdurchtrnkt (Rat der Aszendentfrsten, Bastion des Zwielichtes)
DebuffListNames[11] = "Wasserdurchtr\195\164nkt";
DebuffListAddSound[11] = "hinlauf.mp3";
DebuffListAddTextMsg[11] = ">> Wasserdurchtr\195\164nkt -> Flammenspur <<";
DebuffListRemoveTextMsg[11] = ">> Wasserdurchtr\195\164nkt weg <<";
DebuffListRemoveSound[11] = "verbindungweg.mp3";
-- Blitzableiter (Rat der Aszendentfrsten, Bastion des Zwielichtes)
DebuffListNames[12] = "Blitzableiter";
DebuffListAddSound[12] = "lauf.mp3";
DebuffListAddTextMsg[12] = ">> Blitzableiter <<";
DebuffListRemoveTextMsg[12] = ">> Blitzableiter weg <<";
DebuffListRemoveSound[12] = "verbindungweg.mp3";
-- Verehren (Cho'gall, Bastion des Zwielichtes)
DebuffListNames[13] = "Verehren";
DebuffListAddSound[13] = "seuche.mp3";
DebuffListAddTextMsg[13] = ">> Verehren auf dir <<";
DebuffYellAddText[13] = ">> Verehren auf mir ! <<";
DebuffYellRemoveText[13] = "<< Verehren entfernt >>";
DebuffListRemoveSound[13] = "verbindungweg.mp3";
-- Zielerfassung (Omnotronverteidigungssystem, Pechschwingenabstieg)
DebuffListNames[14] = "Zielerfassung";
DebuffListAddSound[14] = "lauf.mp3";
DebuffListAddTextMsg[14] = ">> Zielerfassung <<";
DebuffListRemoveTextMsg[14] = ">> Zielerfassung weg <<";
DebuffListRemoveSound[14] = "verbindungweg.mp3";
DebuffYellAddText[14] = ">> Zielerfassung auf mir ! <<";
DebuffYellRemoveText[14] = "<< Zielerfassung entfernt >>";
-- Todesurteil (Atramedes-Trash, Pechschwingenabstieg)
DebuffListNames[15] = "Todesurteil";
DebuffListAddSound[15] = "seuche.mp3";
DebuffListAddTextMsg[15] = ">> Todesurteil <<";
DebuffListRemoveTextMsg[15] = ">> Todesurteil weg <<";
DebuffListRemoveSound[15] = "verbindungweg.mp3";
DebuffYellAddText[15] = ">> Todesurteil auf mir ! <<";
DebuffYellRemoveText[15] = "<< Todesurteil entfernt >>";
-- Kugelgefngnis (Hallen des Urspungs Trash)
DebuffListNames[16] = "Kugelgef\195\164ngnis";
DebuffListAddSound[16] = "seuche.mp3";
DebuffListAddTextMsg[16] = ">> Kugelgef\195\164ngnis <<";
DebuffListRemoveTextMsg[16] = ">> Kugelgef\195\164ngnis weg <<";
DebuffListRemoveSound[16] = "verbindungweg.mp3";
DebuffYellAddText[16] = ">> Kugelgef\195\164ngnis auf mir ! <<";
DebuffYellRemoveText[16] = "<< Kugelgef\195\164ngnis entfernt >>";
-- Schattenvortex (Burg Schattenfang Trash)
DebuffListNames[17] = "Schattenvortex";
DebuffListAddSound[17] = "lauf.mp3";
DebuffListAddTextMsg[17] = ">> Schattenvortex <<";
DebuffListRemoveTextMsg[17] = ">> Schattenvortex weg <<";
DebuffListRemoveSound[17] = "verbindungweg.mp3";
-- Dunkler Teich (Halfus Trash, Bastion des Zwielichtes)
DebuffListNames[18] = "Dunkler Teich";
DebuffListAddSound[18] = "lauf.mp3";
DebuffListAddTextMsg[18] = ">> Dunkler Teich <<";
DebuffListRemoveTextMsg[18] = ">> Dunkler Teich weg <<";
DebuffListRemoveSound[18] = "verbindungweg.mp3";
-- Verzehrende Flammen (Maloriak, Pechschwingenabstieg)
DebuffListNames[19] = "Verzehrende Flammen";
DebuffListAddSound[19] = "lauf.mp3";
DebuffListAddTextMsg[19] = ">> Verzehrende Flammen <<";
DebuffListRemoveTextMsg[19] = ">> Verzehrende Flammen weg <<";
DebuffListRemoveSound[19] = "verbindungweg.mp3";
-- Blitzeis (Maloriak, Pechschwingenabstieg)
DebuffListNames[20] = "Blitzeis";
DebuffListAddSound[20] = "seuche.mp3";
DebuffListAddTextMsg[20] = ">> Blitzeis <<";
DebuffListRemoveTextMsg[20] = ">> Blitzeis weg <<";
DebuffListRemoveSound[20] = "verbindungweg.mp3";
DebuffYellAddText[20] = ">> Blitzeis mir ! <<";
DebuffYellRemoveText[20] = "<< Blitzeis entfernt >>";
-- Entkrftender Schleim (Maloriak, Pechschwingenabstieg)
DebuffListNames[21] = "Entkr\195\164ftender Schleim";
DebuffListAddSound[21] = "seuche.mp3";
DebuffListAddTextMsg[21] = ">> Entkr\195\164ftender Schleim <<";
DebuffListRemoveTextMsg[21] = ">> Entkr\195\164ftender Schleim weg <<";
DebuffListRemoveSound[21] = "verbindungweg.mp3";
DebuffCountdown[21] = 13;
-- Combatlog Scanner
CombatSource = {}; -- Sourcename
CombatActionType = {}; -- can be SPELL_CAST_SUCCESS, SPELL_AURA_APPLIED, SPELL_AURA_REMOVED
CombatSpellId = {}; -- Id of the spell, if knowen
CombatSpellName = {}; -- Name of the spell
CombatSound = {}; -- Sound which is played when event is fired
CombatTextMsg = {}; -- Text messages which is displayed
CombatCount = 3;
-- Verschlingende Flammen (Valiona, Boss 3 Grim Bartol & Boss 2 Bastion des Zwielichts)
CombatSource[0] = "Valiona";
CombatActionType[0] = "SPELL_CAST_START";
CombatSpellName[0] = "Verschlingende Flammen";
CombatSound[0] = "lauf.mp3";
CombatTextMsg[0] = ">> Verschlingende Flammen <<";
-- Statische Aufladung (Asaad, Vortex Gipfel)
CombatSource[1] = "Asaad";
CombatActionType[1] = "SPELL_CAST_START";
CombatSpellName[1] = "Statische Aufladung";
CombatSound[1] = "seuche.mp3";
CombatTextMsg[1] = ">> Statische Aufladung, springen <<";
-- Arkaner Sturm (Maloriak, Pechschwingenabstieg)
CombatSource[2] = "Maloriak";
CombatActionType[2] = "SPELL_CAST_SUCCESS";
CombatSpellName[2] = "Arkaner Sturm";
CombatSound[2] = "unterbrechen.mp3";
CombatTextMsg[2] = ">> Arkaner Sturm <<";
-- Special timers
SpecialTimersEnd = {};
SpecialTimersMsg = {};
SpecialTimersSnd = {};
end
function MiraMod_OnVariablesLoaded()
MiraModTextDisplay = _G["MiraModTextDisplay"];
MiraModTextDisplay:Show();
MiraModTextDisplay:SetFadeDuration(1);
MiraModTextDisplay:SetTimeVisible(2);
-- Say hello
DEFAULT_CHAT_FRAME:AddMessage("MiraMod geladen und bereit...", 0.5, 0.5, 1.0);
end
function MiraMod_OnUpdate(self, elapsed)
if(MiraModTextDisplay) then
TimeSinceLastUpdate = TimeSinceLastUpdate + elapsed;
if (TimeSinceLastUpdate > UpdateTimeInterval) then
local numplayers = GetNumRaidMembers();
local za = 0;
for za=0, DebuffCount-1 do
local Debuff;
if(DebuffScanInGroup[za] == false) then
Debuff = UnitDebuff("player", DebuffListNames[za]);
if(Debuff == nil) then
Debuff = UnitBuff("player", DebuffListNames[za]);
end
else
for zb=1,numplayers do
local name = GetRaidRosterInfo(zb);
if(name ~= nil) then
Debuff = UnitDebuff(name, DebuffListNames[za]);
if(Debuff ~= nil) then
break
end
end
end
end
if(Debuff) then
if(not DebuffStates[za]) then
if(DebuffListAddSound[za] ~= nil) then
local FileName = "Interface\\AddOns\\MiraMod\\Sounds\\" .. DebuffListAddSound[za];
PlaySoundFile(FileName);
end
if(DebuffListAddTextMsg[za] ~= nil) then
MiraModTextDisplay:AddMessage(DebuffListAddTextMsg[za], 1.0, 0.32, 0.66);
end
if(DebuffYellAddText[za] ~= nil) then
SendChatMessage(DebuffYellAddText[za], "YELL", nil, 0);
end
DebuffStates[za] = true;
if(DebuffCountdown[za] > 0) then
DebuffCountdownPos[za] = DebuffCountdown[za];
end
end
end
if(DebuffCountdownPos[za]>UpdateTimeInterval) then
if(DebuffCountdownPos[za] == 9) then
PlaySoundFile("Interface\\AddOns\\MiraMod\\Sounds\\9.mp3");
end
if(DebuffCountdownPos[za] == 8) then
PlaySoundFile("Interface\\AddOns\\MiraMod\\Sounds\\8.mp3");
end
if(DebuffCountdownPos[za] == 7) then
PlaySoundFile("Interface\\AddOns\\MiraMod\\Sounds\\7.mp3");
end
if(DebuffCountdownPos[za] == 6) then
PlaySoundFile("Interface\\AddOns\\MiraMod\\Sounds\\6.mp3");
end
if(DebuffCountdownPos[za] == 5) then
PlaySoundFile("Interface\\AddOns\\MiraMod\\Sounds\\5.mp3");
end
if(DebuffCountdownPos[za] == 4) then
PlaySoundFile("Interface\\AddOns\\MiraMod\\Sounds\\4.mp3");
end
if(DebuffCountdownPos[za] == 3) then
PlaySoundFile("Interface\\AddOns\\MiraMod\\Sounds\\3.mp3");
end
if(DebuffCountdownPos[za] == 2) then
PlaySoundFile("Interface\\AddOns\\MiraMod\\Sounds\\2.mp3");
end
if(DebuffCountdownPos[za] == 1) then
PlaySoundFile("Interface\\AddOns\\MiraMod\\Sounds\\1.mp3");
end
DebuffCountdownPos[za] = DebuffCountdownPos[za] - UpdateTimeInterval;
end
if(not Debuff and DebuffStates[za]==true) then
DebuffStates[za] = false;
if(DebuffListRemoveTextMsg[za] ~= nil) then
MiraModTextDisplay:AddMessage(DebuffListRemoveTextMsg[za], 0.32, 1.00, 0.32);
end
if(DebuffListRemoveSound[za] ~= nil) then
local FileName = "Interface\\AddOns\\MiraMod\\Sounds\\" .. DebuffListRemoveSound[za];
PlaySoundFile(FileName);
end
if(DebuffYellRemoveText[za] ~= nil) then
SendChatMessage(DebuffYellRemoveText[za], "YELL", nil, 0);
end
if(DebuffCountdownPos[za]>0) then
DebuffCountdownPos[za] = 0;
end
end
end
local TimerSize = #SpecialTimersEnd;
local CurrentTime = time();
for za=TimerSize,1,-1 do
if(SpecialTimersEnd[za] ~= nil) then
if(SpecialTimersEnd[za] <= CurrentTime) then
-- Timer ran out
local Msg = SpecialTimersMsg[za];
local Snd = SpecialTimersSnd[za];
if(Msg ~= nil) then
MiraModTextDisplay:AddMessage(Msg, 1.0, 1.0, 0.55);
end
if(Snd ~= nil) then
local FileName = "Interface\\AddOns\\MiraMod\\Sounds\\" .. Snd;
PlaySoundFile(FileName);
end
table.remove(SpecialTimersEnd, za);
table.remove(SpecialTimersMsg, za);
table.remove(SpecialTimersSnd, za);
end
end
end
TimeSinceLastUpdate = 0;
end
end
end
function MiraMod_OnEvent(self, event, ...)
local arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18 = select(1, ...)
if event == "VARIABLES_LOADED" then
MiraMod_OnVariablesLoaded();
end
if MiraModTextDisplay == nil then
return;
end
if event == "COMBAT_LOG_EVENT_UNFILTERED" then
local za = 0;
for za=0, CombatCount-1 do
if CombatSource[za] == arg4 and CombatActionType[za] == arg2 and (CombatSpellId[za] == arg9 or CombatSpellName[za] == arg10) then
if(CombatSound[za] ~= nil) then
local FileName = "Interface\\AddOns\\MiraMod\\Sounds\\" .. CombatSound[za];
PlaySoundFile(FileName);
end
if(CombatTextMsg[za] ~= nil) then
MiraModTextDisplay:AddMessage(CombatTextMsg[za], 1.0, 0.32, 0.66);
end
end
end
end
if event == "CHAT_MSG_MONSTER_YELL" then
-- Wotlk
if(arg2 == "Sindragosa") then
-- Airphase
if(arg1 == "Euer Vormarsch endet hier! Keiner wird \195\188berleben!") then
PlaySoundFile("Interface\\AddOns\\MiraMod\\Sounds\\hebtab.mp3");
MiraModTextDisplay:AddMessage(">> Flugphase <<", 1.0, 0.32, 0.66);
end
-- Phase 2
if(arg1 == "F\195\188hlt die grenzenlose Macht meines Meisters, und verzweifelt!") then
Phase2 = true;
PlaySoundFile("Interface\\AddOns\\MiraMod\\Sounds\\phase2.mp3");
MiraModTextDisplay:AddMessage(">> Phase 2 <<", 1.0, 0.32, 0.66);
end
-- Pull
if(arg1 == "Ihr seid Narren, euch hierher zu wagen. Der eisige Wind Nordends wird eure Seelen verschlingen!") then
Phase2_IceBlockCounter = 0;
Phase2 = false;
MiraModTextDisplay:AddMessage("Sindragosa gepullt - Viel Gl\195\188ck !", 1.0, 1.0, 0.55);
end
end
-- Cata
if(arg2 == "Ozruk") then
if(arg1 == "Ihr werdet an meinem K\195\182rper zerschellen. Sp\195\188rt der Erde Macht!") then
PlaySoundFile("Interface\\AddOns\\MiraMod\\Sounds\\seuche.mp3");
MiraModTextDisplay:AddMessage(">> Dot's setzen <<", 1.0, 0.32, 0.66);
end
end
if(arg2 == "Arion") then
-- Phase 2
if(arg1 == "Genug der Spielereien!") then
PlaySoundFile("Interface\\AddOns\\MiraMod\\Sounds\\phase2.mp3");
MiraModTextDisplay:AddMessage(">> Phase 2 <<", 1.0, 0.32, 0.66);
end
-- Hurrikan
if(arg1 == "Wind, erh\195\182re mich!") then
PlaySoundFile("Interface\\AddOns\\MiraMod\\Sounds\\hinlauf.mp3");
MiraModTextDisplay:AddMessage(">> Hurrikan, hinlaufen <<", 1.0, 0.32, 0.66);
end
-- Phase 3
if(arg1 == "Beeindruckende Leistung...") then
PlaySoundFile("Interface\\AddOns\\MiraMod\\Sounds\\phase3.mp3");
MiraModTextDisplay:AddMessage(">> Phase 3 <<", 1.0, 0.32, 0.66);
MiraModTextDisplay:AddMessage("10 m Abstand halten", 1.0, 0.32, 0.66);
end
end
if(arg2 == "Terrastra") then
if(arg1 == "Der Boden verschlingt Eure Knochen!") then
PlaySoundFile("Interface\\AddOns\\MiraMod\\Sounds\\hinlauf.mp3");
MiraModTextDisplay:AddMessage(">> Gravitationssog, hinlaufen <<", 1.0, 0.32, 0.66);
end
end
if(arg2 == "Atramedes") then
-- Flugphase
if(arg1 == "Ja, lauft! Jeder Schritt l\195\164sst Euer Herz st\195\164rker klopfen. Laut und heftig... ohrenbet\195\164ubend. Es gibt kein Entkommen!") then
PlaySoundFile("Interface\\AddOns\\MiraMod\\Sounds\\hebtab.mp3");
MiraModTextDisplay:AddMessage(">> Flugphase <<", 1.0, 0.32, 0.66);
end
-- Sengende Flamme
if(arg1 == "Keiner entkommt der sengenden Flamme!") then
PlaySoundFile("Interface\\AddOns\\MiraMod\\Sounds\\unterbrechen.mp3");
MiraModTextDisplay:AddMessage(">> Sengende Flamme <<", 1.0, 0.32, 0.66);
end
end
if(arg2 == "Maloriak") then
-- Phase 2
if(arg1 == "Mein Hirn und ihre Kraft! Meine Gesch\195\182pfe, verschlingt sie!") then
PlaySoundFile("Interface\\AddOns\\MiraMod\\Sounds\\phase2.mp3");
MiraModTextDisplay:AddMessage(">> Phase 2 <<", 1.0, 0.32, 0.66);
end
-- Blaue Phase
if(arg1 == "Muss rausfinden, wie die sterbliche H\195\188lle auf extreme Temperaturen reagiert... F\195\156R DIE FORSCHUNG!") then
PlaySoundFile("Interface\\AddOns\\MiraMod\\Sounds\\blauephase.mp3");
MiraModTextDisplay:AddMessage(">> Blaue Phase <<", 0.32, 0.32, 1.00);
table.insert(SpecialTimersEnd, time() + 40);
table.insert(SpecialTimersMsg, ">> N\195\164chste Phase bald <<");
table.insert(SpecialTimersSnd, "nextphasesoon.mp3");
end
-- Rote Phase
if(arg1 == "Vermischen, r\195\188hren, erhitzen...") then
PlaySoundFile("Interface\\AddOns\\MiraMod\\Sounds\\rotephase.mp3");
MiraModTextDisplay:AddMessage(">> Rote Phase <<", 1.0, 0.32, 0.32);
table.insert(SpecialTimersEnd, time() + 40);
table.insert(SpecialTimersMsg, ">> N\195\164chste Phase bald <<");
table.insert(SpecialTimersSnd, "nextphasesoon.mp3");
end
-- Grne Phase
if(arg1 == "Etwas instabil vielleicht, doch keine Forschung ohne Risiko!") then
MiraModTextDisplay:AddMessage(">> Gr\195\188ne Phase <<", 0.32, 1.00, 0.32);
PlaySoundFile("Interface\\AddOns\\MiraMod\\Sounds\\gruenephase.mp3");
table.insert(SpecialTimersEnd, time() + 40);
table.insert(SpecialTimersMsg, ">> N\195\164chste Phase bald <<");
table.insert(SpecialTimersSnd, "nextphasesoon.mp3");
end
end
end
if event == "RAID_TARGET_UPDATE" then
local subzone = GetSubZoneText();
if (subzone == "Der Hort der Frostk\195\182nigin") then
local index = GetRaidTargetIndex("player");
local someonehasskull = false;
if(Phase2 == true) then
local numplayers = GetNumRaidMembers();
for za=1,numplayers do
local name = GetRaidRosterInfo(za);
local icon = GetRaidTargetIndex(name);
if(icon) then
if(icon==8) then
someonehasskull = true;
break;
end
end
end
if(someonehasskull == true) then
Phase2_IceBlockCounter = Phase2_IceBlockCounter+1;
DEFAULT_CHAT_FRAME:AddMessage("Iceblockcounter: "..Phase2_IceBlockCounter, 0.5, 0.5, 1.0);
end
end
if(index ~= oldraid_symbol) then
local Debuff = UnitDebuff("player", "Frostleuchtfeuer");
local InCombat = InCombatLockdown();
-- Should only fire when the debuff is set, to prevent false alarms OR when we're not in combat for test reasons
if(Debuff or InCombat == nil) then
oldraid_symbol = index;
if(Phase2 == false) then
local InstanceDifficulty = GetInstanceDifficulty();
if(InstanceDifficulty==2 or InstanceDifficulty==4) then
-- 25 man modes
-- vorne links VIERECK
if(index == 6) then
PlaySoundFile("Interface\\AddOns\\MiraMod\\Sounds\\vornelinks.mp3");
MiraModTextDisplay:AddMessage("VORNE LINKS", 1.0, 1.0, 0.55);
end
-- vorne rechts MOND
if(index == 5) then
PlaySoundFile("Interface\\AddOns\\MiraMod\\Sounds\\vornerechts.mp3");
MiraModTextDisplay:AddMessage("VORNE RECHTS", 1.0, 1.0, 0.55);
end
-- mitte KREUZ + DIAMANT
if(index == 7 or index == 3) then
PlaySoundFile("Interface\\AddOns\\MiraMod\\Sounds\\mitte.mp3");
MiraModTextDisplay:AddMessage("MITTE", 1.0, 1.0, 0.55);
end
-- hinten links DREIECK
if(index == 4) then
PlaySoundFile("Interface\\AddOns\\MiraMod\\Sounds\\hintenlinks.mp3");
MiraModTextDisplay:AddMessage("HINTEN LINKS", 1.0, 1.0, 0.55);
end
-- hinten rechts KOPF
if(index == 8) then
PlaySoundFile("Interface\\AddOns\\MiraMod\\Sounds\\hintenrechts.mp3");
MiraModTextDisplay:AddMessage("HINTEN RECHTS", 1.0, 1.0, 0.55);
end
end
if(InstanceDifficulty==1 or InstanceDifficulty==3) then
-- 10 man modes
-- vorne links KREUZ
if(index == 7) then
PlaySoundFile("Interface\\AddOns\\MiraMod\\Sounds\\vornelinks.mp3");
MiraModTextDisplay:AddMessage("VORNE LINKS", 1.0, 1.0, 0.55);
end
-- vorne rechts KOPF
if(index == 8) then
PlaySoundFile("Interface\\AddOns\\MiraMod\\Sounds\\vornerechts.mp3");
MiraModTextDisplay:AddMessage("VORNE RECHTS", 1.0, 1.0, 0.55);
end
end
end
if(Phase2 == true) then
-- code here for phase 2
if(index == 8) then
if(Phase2_IceBlockCounter % 2 == 1) then
PlaySoundFile("Interface\\AddOns\\MiraMod\\Sounds\\vornelinks.mp3");
MiraModTextDisplay:AddMessage("VORNE LINKS", 1.0, 1.0, 0.55);
end
if(Phase2_IceBlockCounter % 2 == 0) then
PlaySoundFile("Interface\\AddOns\\MiraMod\\Sounds\\vornerechts.mp3");
MiraModTextDisplay:AddMessage("VORNE RECHTS", 1.0, 1.0, 0.55);
end
end
end
end
else
oldraid_symbol = 0;
end
end
end
endPK
QS> MiraMod/MiraMod.toc## Interface: 40000
## Title : MiraMod
## Notes: Small debuff scanner with sound notifications
## Author: Miralu, EU-Proudmoore (Sector7CSD)
## Version: 1.0.2
## DefaultState: Enabled
## LoadOnDemand: 0
MiraMod.xml
MiraMod.luaPK
*dJ=~ MiraMod/MiraMod.xml
PK U> MiraMod/Sounds/PK
aR=nY Y MiraMod/Sounds/1.mp3ID3 vTCON (12)PRIV PeakValue !i PRIV AverageLevel { Info , Iw ""((...44::@@EEEKKQQWWW]]bbhhnnnttzz 9LAME3.98r $Hf Iw|B 'BPQ|1# K/gɐ'c$ @%8^$Ca
!u rxBLJP |l4ϔA 8vɀ ]`@&kcxOCo fX\3!l jsp $` 0Q5 imc*