vanilla-wow-addons – Rev 1
?pathlinks?
------------------------------------------------------------------------------------------------------
-- Necrosis LdC
--
-- Créateur initial (US) : Infernal (http://www.revolvus.com/games/interface/necrosis/)
-- Implémentation de base (FR) : Tilienna Thorondor
-- Reprise du projet : Lomig & Nyx des Larmes de Cenarius, Kael'Thas
--
-- Skins et voix Françaises : Eliah, Ner'zhul
-- Version Allemande par Arne Meier et Halisstra, Lothar
-- Remerciements spéciaux pour Sadyre (JoL)
-- Version 28.06.2006-1
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
-- FONCTION D'INITIALISATION
------------------------------------------------------------------------------------------------------
function Necrosis_Initialize()
-- Initilialisation des Textes (VO / VF / VA)
if NecrosisConfig ~= {} then
if (NecrosisConfig.NecrosisLanguage == "enUS") or (NecrosisConfig.NecrosisLanguage == "enGB") then
Necrosis_Localization_Dialog_En();
elseif (NecrosisConfig.NecrosisLanguage == "deDE") then
Necrosis_Localization_Dialog_De();
else
Necrosis_Localization_Dialog_Fr();
end
elseif GetLocale() == "enUS" or GetLocale() == "enGB" then
Necrosis_Localization_Dialog_En();
elseif GetLocale() == "deDE" then
Necrosis_Localization_Dialog_De();
else
Necrosis_Localization_Dialog_Fr();
end
-- On initialise ! Si le joueur n'est pas Démoniste, on cache Necrosis (chuuuut !)
-- On indique aussi que Nécrosis est initialisé maintenant
if UnitClass("player") ~= NECROSIS_UNIT_WARLOCK then
HideUIPanel(NecrosisShardMenu);
HideUIPanel(NecrosisSpellTimerButton);
HideUIPanel(NecrosisButton);
HideUIPanel(NecrosisPetMenuButton);
HideUIPanel(NecrosisBuffMenuButton);
HideUIPanel(NecrosisCurseMenuButton);
HideUIPanel(NecrosisMountButton);
HideUIPanel(NecrosisFirestoneButton);
HideUIPanel(NecrosisSpellstoneButton);
HideUIPanel(NecrosisHealthstoneButton);
HideUIPanel(NecrosisSoulstoneButton);
HideUIPanel(NecrosisAntiFearButton);
HideUIPanel(NecrosisShadowTranceButton);
else
-- On charge (ou on crée) la configuration pour le joueur et on l'affiche sur la console
if NecrosisConfig == nil or NecrosisConfig.Version ~= Default_NecrosisConfig.Version then
NecrosisConfig = {};
NecrosisConfig = Default_NecrosisConfig;
Necrosis_Msg(NECROSIS_MESSAGE.Interface.DefaultConfig, "USER");
NecrosisButton:ClearAllPoints();
NecrosisShadowTranceButton:ClearAllPoints();
NecrosisAntiFearButton:ClearAllPoints();
NecrosisSpellTimerButton:ClearAllPoints();
NecrosisButton:SetPoint("CENTER", "UIParent", "CENTER",0,-100);
NecrosisShadowTranceButton:SetPoint("CENTER", "UIParent", "CENTER",100,-30);
NecrosisAntiFearButton:SetPoint("CENTER", "UIParent", "CENTER",100,30);
NecrosisSpellTimerButton:SetPoint("CENTER", "UIParent", "CENTER",120,340);
else
Necrosis_Msg(NECROSIS_MESSAGE.Interface.UserConfig, "USER");
end
-----------------------------------------------------------
-- Exécution des fonctions de démarrage
-----------------------------------------------------------
-- Affichage d'un message sur la console
Necrosis_Msg(NECROSIS_MESSAGE.Interface.Welcome, "USER");
-- Création de la liste des sorts disponibles
Necrosis_SpellSetup();
-- Création de la liste des emplacements des fragments
Necrosis_SoulshardSetup();
-- Inventaire des pierres et des fragments possédés par le Démoniste
Necrosis_BagExplore();
-- Création des menus de buff et d'invocation
Necrosis_CreateMenu();
-- Lecture de la configuration dans le SavedVariables.lua, écriture dans les variables définies
if (NecrosisConfig.SoulshardSort) then NecrosisSoulshardSort_Button:SetChecked(1); end
if (NecrosisConfig.SoulshardDestroy) then NecrosisSoulshardDestroy_Button:SetChecked(1); end
if (NecrosisConfig.ShadowTranceAlert) then NecrosisShadowTranceAlert_Button:SetChecked(1); end
if (NecrosisConfig.ShowSpellTimers) then NecrosisShowSpellTimers_Button:SetChecked(1); end
if (NecrosisConfig.AntiFearAlert) then NecrosisAntiFearAlert_Button:SetChecked(1); end
if (NecrosisConfig.NecrosisLockServ) then NecrosisIconsLock_Button:SetChecked(1); end
if (NecrosisConfig.StonePosition[1]) then NecrosisShowFirestone_Button:SetChecked(1); end
if (NecrosisConfig.StonePosition[2]) then NecrosisShowSpellstone_Button:SetChecked(1); end
if (NecrosisConfig.StonePosition[3]) then NecrosisShowHealthStone_Button:SetChecked(1); end
if (NecrosisConfig.StonePosition[4]) then NecrosisShowSoulstone_Button:SetChecked(1); end
if (NecrosisConfig.StonePosition[5]) then NecrosisShowBuffMenu_Button:SetChecked(1); end
if (NecrosisConfig.StonePosition[6]) then NecrosisShowMount_Button:SetChecked(1); end
if (NecrosisConfig.StonePosition[7]) then NecrosisShowPetMenu_Button:SetChecked(1); end
if (NecrosisConfig.StonePosition[8]) then NecrosisShowCurseMenu_Button:SetChecked(1); end
if (NecrosisConfig.NecrosisToolTip) then NecrosisShowTooltips_Button:SetChecked(1); end
if (NecrosisConfig.Sound) then NecrosisSound_Button:SetChecked(1); end
if (NecrosisConfig.ShowCount) then NecrosisShowCount_Button:SetChecked(1); end
if (NecrosisConfig.BuffMenuPos == -34) then NecrosisBuffMenu_Button:SetChecked(1); end
if (NecrosisConfig.PetMenuPos == -34) then NecrosisPetMenu_Button:SetChecked(1); end
if (NecrosisConfig.CurseMenuPos == -34) then NecrosisCurseMenu_Button:SetChecked(1); end
if (NecrosisConfig.NoDragAll) then NecrosisLock_Button:SetChecked(1); end
if (NecrosisConfig.SpellTimerPos == -1) then NecrosisSTimer_Button:SetChecked(1); end
if (NecrosisConfig.ChatMsg) then NecrosisShowMessage_Button:SetChecked(1); end
if (NecrosisConfig.DemonSummon) then NecrosisShowDemonSummon_Button:SetChecked(1); end
if (NecrosisConfig.SteedSummon) then NecrosisShowSteedSummon_Button:SetChecked(1); end
if not (NecrosisConfig.ChatType) then NecrosisChatType_Button:SetChecked(1); end
if (NecrosisConfig.Graphical) then NecrosisGraphicalTimer_Button:SetChecked(1); end
if not (NecrosisConfig.Yellow) then NecrosisTimerColor_Button:SetChecked(1); end
if (NecrosisConfig.SensListe == -1) then NecrosisTimerDirection_Button:SetChecked(1); end
-- Paramètres des glissières
NecrosisButtonRotate_Slider:SetValue(NecrosisConfig.NecrosisAngle);
NecrosisButtonRotate_SliderLow:SetText("0");
NecrosisButtonRotate_SliderHigh:SetText("360");
if NecrosisConfig.NecrosisLanguage == "deDE" then
NecrosisLanguage_Slider:SetValue(3);
elseif NecrosisConfig.NecrosisLanguage == "enUS" then
NecrosisLanguage_Slider:SetValue(2);
else
NecrosisLanguage_Slider:SetValue(1);
end
NecrosisLanguage_SliderText:SetText("Langue / Language / Sprache");
NecrosisLanguage_SliderLow:SetText("");
NecrosisLanguage_SliderHigh:SetText("")
NecrosisBag_Slider:SetValue(4 - NecrosisConfig.SoulshardContainer);
NecrosisBag_SliderLow:SetText("5");
NecrosisBag_SliderHigh:SetText("1");
NecrosisCountType_Slider:SetValue(NecrosisConfig.CountType);
NecrosisCountType_SliderLow:SetText("");
NecrosisCountType_SliderHigh:SetText("");
NecrosisCircle_Slider:SetValue(NecrosisConfig.Circle);
NecrosisCircle_SliderLow:SetText("");
NecrosisCircle_SliderHigh:SetText("");
ShadowTranceScale_Slider:SetValue(NecrosisConfig.ShadowTranceScale);
ShadowTranceScale_SliderLow:SetText("50%");
ShadowTranceScale_SliderHigh:SetText("150%");
if (NecrosisConfig.NecrosisColor == "Rose") then
NecrosisColor_Slider:SetValue(1);
elseif (NecrosisConfig.NecrosisColor == "Bleu") then
NecrosisColor_Slider:SetValue(2);
elseif (NecrosisConfig.NecrosisColor == "Orange") then
NecrosisColor_Slider:SetValue(3);
elseif (NecrosisConfig.NecrosisColor == "Turquoise") then
NecrosisColor_Slider:SetValue(4);
elseif (NecrosisConfig.NecrosisColor == "Violet") then
NecrosisColor_Slider:SetValue(5);
else
NecrosisColor_Slider:SetValue(6);
end
NecrosisColor_SliderLow:SetText("");
NecrosisColor_SliderHigh:SetText("");
NecrosisButtonScale_Slider:SetValue(NecrosisConfig.NecrosisButtonScale);
NecrosisButtonScale_SliderLow:SetText("50 %");
NecrosisButtonScale_SliderHigh:SetText("150 %");
NecrosisBanishScale_Slider:SetValue(NecrosisConfig.BanishScale);
NecrosisBanishScale_SliderLow:SetText("100 %");
NecrosisBanishScale_SliderHigh:SetText("200 %");
-- On règle la taille de la pierre et des boutons suivant les réglages du SavedVariables
NecrosisButton:SetScale(NecrosisConfig.NecrosisButtonScale/100);
NecrosisShadowTranceButton:SetScale(NecrosisConfig.ShadowTranceScale/100);
NecrosisAntiFearButton:SetScale(NecrosisConfig.ShadowTranceScale/100);
NecrosisBuffMenu9:SetScale(NecrosisConfig.BanishScale/100);
-- On définit l'affichage des Timers à gauche ou à droite du bouton
NecrosisListSpells:ClearAllPoints();
NecrosisListSpells:SetJustifyH(NecrosisConfig.SpellTimerJust);
NecrosisListSpells:SetPoint("TOP"..NecrosisConfig.SpellTimerJust, "NecrosisSpellTimerButton", "CENTER", NecrosisConfig.SpellTimerPos * 23, 5);
ShowUIPanel(NecrosisButton);
-- On définit également l'affichage des tooltips pour ces timers à gauche ou à droite du bouton
if NecrosisConfig.SpellTimerJust == -23 then
AnchorSpellTimerTooltip = "ANCHOR_LEFT";
else
AnchorSpellTimerTooltip = "ANCHOR_RIGHT";
end
-- On vérifie que les fragments sont dans le sac défini par le Démoniste
Necrosis_SoulshardSwitch("CHECK");
-- Le Shard est-il vérouillé sur l'interface ?
if NecrosisConfig.NoDragAll then
Necrosis_NoDrag();
NecrosisButton:RegisterForDrag("");
NecrosisSpellTimerButton:RegisterForDrag("");
else
Necrosis_Drag();
NecrosisButton:RegisterForDrag("LeftButton");
NecrosisSpellTimerButton:RegisterForDrag("LeftButton");
end
-- Les boutons sont-ils vérouillés sur le Shard ?
Necrosis_ButtonSetup();
-- Si le démoniste a une arme une main d'équipée, on lui équipe le premier objet lié main gauche
Necrosis_MoneyToggle();
NecrosisTooltip:SetInventoryItem("player", 16);
local itemName = tostring(NecrosisTooltipTextLeft2:GetText());
if itemName == "Soulbound" then
itemName = tostring(NecrosisTooltipTextLeft3:GetText());
end
Necrosis_MoneyToggle();
if not GetInventoryItemLink("player", 17) and not string.find(itemName, NECROSIS_ITEM.Twohand) then
Necrosis_SwitchOffHand(NECROSIS_ITEM.Offhand);
end
-- Initialisation des fichiers de langues -- Mise en place éventuelle du SMS
Necrosis_LanguageInitialize();
if NecrosisConfig.SM then
NECROSIS_SOULSTONE_ALERT_MESSAGE = NECROSIS_SHORT_MESSAGES[1];
NECROSIS_INVOCATION_MESSAGES = NECROSIS_SHORT_MESSAGES[2];
end
end
end
function Necrosis_LanguageInitialize()
-- Localisation du speech.lua
NecrosisLocalization();
-- Localisation du XML
NecrosisVersion:SetText(NecrosisData.Label);
NecrosisShardsInventory_Section:SetText(NECROSIS_CONFIGURATION.ShardMenu);
NecrosisShardsCount_Section:SetText(NECROSIS_CONFIGURATION.ShardMenu2);
NecrosisSoulshardSort_Option:SetText(NECROSIS_CONFIGURATION.ShardMove);
NecrosisSoulshardDestroy_Option:SetText(NECROSIS_CONFIGURATION.ShardDestroy);
NecrosisMessageSpell_Section:SetText(NECROSIS_CONFIGURATION.SpellMenu1);
NecrosisMessagePlayer_Section:SetText(NECROSIS_CONFIGURATION.SpellMenu2);
NecrosisShadowTranceAlert_Option:SetText(NECROSIS_CONFIGURATION.TranseWarning);
NecrosisAntiFearAlert_Option:SetText(NECROSIS_CONFIGURATION.AntiFearWarning);
NecrosisShowTrance_Option:SetText(NECROSIS_CONFIGURATION.TranceButtonView);
NecrosisIconsLock_Option:SetText(NECROSIS_CONFIGURATION.ButtonLock);
NecrosisShowFirestone_Option:SetText(NECROSIS_CONFIGURATION.Show.Firestone);
NecrosisShowSpellstone_Option:SetText(NECROSIS_CONFIGURATION.Show.Spellstone);
NecrosisShowHealthStone_Option:SetText(NECROSIS_CONFIGURATION.Show.Healthstone);
NecrosisShowSoulstone_Option:SetText(NECROSIS_CONFIGURATION.Show.Soulstone);
NecrosisShowMount_Option:SetText(NECROSIS_CONFIGURATION.Show.Steed);
NecrosisShowBuffMenu_Option:SetText(NECROSIS_CONFIGURATION.Show.Buff);
NecrosisShowPetMenu_Option:SetText(NECROSIS_CONFIGURATION.Show.Demon);
NecrosisShowCurseMenu_Option:SetText(NECROSIS_CONFIGURATION.Show.Curse);
NecrosisShowTooltips_Option:SetText(NECROSIS_CONFIGURATION.Show.Tooltips);
NecrosisShowSpellTimers_Option:SetText(NECROSIS_CONFIGURATION.SpellTime);
NecrosisGraphicalTimer_Section:SetText(NECROSIS_CONFIGURATION.TimerMenu);
NecrosisGraphicalTimer_Option:SetText(NECROSIS_CONFIGURATION.GraphicalTimer);
NecrosisTimerColor_Option:SetText(NECROSIS_CONFIGURATION.TimerColor);
NecrosisTimerDirection_Option:SetText(NECROSIS_CONFIGURATION.TimerDirection);
NecrosisLock_Option:SetText(NECROSIS_CONFIGURATION.MainLock);
NecrosisBuffMenu_Option:SetText(NECROSIS_CONFIGURATION.BuffMenu);
NecrosisPetMenu_Option:SetText(NECROSIS_CONFIGURATION.PetMenu);
NecrosisCurseMenu_Option:SetText(NECROSIS_CONFIGURATION.CurseMenu);
NecrosisShowCount_Option:SetText(NECROSIS_CONFIGURATION.ShowCount);
NecrosisSTimer_Option:SetText(NECROSIS_CONFIGURATION.STimerLeft);
NecrosisSound_Option:SetText(NECROSIS_CONFIGURATION.Sound);
NecrosisShowMessage_Option:SetText(NECROSIS_CONFIGURATION.ShowMessage);
NecrosisShowSteedSummon_Option:SetText(NECROSIS_CONFIGURATION.ShowSteedSummon);
NecrosisShowDemonSummon_Option:SetText(NECROSIS_CONFIGURATION.ShowDemonSummon);
NecrosisChatType_Option:SetText(NECROSIS_CONFIGURATION.ChatType);
NecrosisButtonRotate_SliderText:SetText(NECROSIS_CONFIGURATION.MainRotation);
NecrosisCountType_SliderText:SetText(NECROSIS_CONFIGURATION.CountType);
NecrosisCircle_SliderText:SetText(NECROSIS_CONFIGURATION.Circle);
NecrosisBag_SliderText:SetText(NECROSIS_CONFIGURATION.BagSelect);
NecrosisButtonScale_SliderText:SetText(NECROSIS_CONFIGURATION.NecrosisSize);
NecrosisBanishScale_SliderText:SetText(NECROSIS_CONFIGURATION.BanishSize);
ShadowTranceScale_SliderText:SetText(NECROSIS_CONFIGURATION.TranseSize);
NecrosisColor_SliderText:SetText(NECROSIS_CONFIGURATION.Skin);
end
------------------------------------------------------------------------------------------------------
-- FONCTION GERANT LA COMMANDE CONSOLE /NECRO
------------------------------------------------------------------------------------------------------
function Necrosis_SlashHandler(arg1)
-- Blah blah blah, le joueur est-il bien un Démoniste ? On finira par le savoir !
if UnitClass("player") ~= NECROSIS_UNIT_WARLOCK then
return;
end
if string.find(string.lower(arg1), "recall") then
NecrosisButton:ClearAllPoints();
NecrosisButton:SetPoint("CENTER", "UIParent", "CENTER",0,0);
NecrosisSpellTimerButton:ClearAllPoints();
NecrosisSpellTimerButton:SetPoint("CENTER", "UIParent", "CENTER",0,0);
NecrosisAntiFearButton:ClearAllPoints();
NecrosisAntiFearButton:SetPoint("CENTER", "UIParent", "CENTER",20,0);
NecrosisShadowTranceButton:ClearAllPoints();
NecrosisShadowTranceButton:SetPoint("CENTER", "UIParent", "CENTER",-20,0);
elseif string.find(string.lower(arg1), "sm") then
if NECROSIS_SOULSTONE_ALERT_MESSAGE == NECROSIS_SHORT_MESSAGES[1] then
NecrosisConfig.SM = false;
NecrosisLocalization();
Necrosis_Msg("Short Messages : <red>Off", "USER");
else
NecrosisConfig.SM = true;
NECROSIS_SOULSTONE_ALERT_MESSAGE = NECROSIS_SHORT_MESSAGES[1];
NECROSIS_INVOCATION_MESSAGES = NECROSIS_SHORT_MESSAGES[2];
Necrosis_Msg("Short Messages : <brightGreen>On", "USER");
end
elseif string.find(string.lower(arg1), "cast") then
NecrosisSpellCast(string.lower(arg1));
else
if NECROSIS_MESSAGE.Help ~= nil then
for i = 1, table.getn(NECROSIS_MESSAGE.Help), 1 do
Necrosis_Msg(NECROSIS_MESSAGE.Help[i], "USER");
end
end
Necrosis_Toggle();
end
end