------------------------------------------------------------------------------------------------------ -- 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 : 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 : 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