Modcraft - The community dedicated to quality WoW modding!
Wrath of the Lich King Modding => Serverside Modding => Topic started by: Kobiesan on March 08, 2017, 12:43:11 am
-
Hi, I'm trying to figure out how to make it so you can look at your achievements tab at level 1. I've looked in player.cpp for a level restriction but haven't found anything. I've looked in a few other places as well. I want to open it for my whole server so I don't want to edit FrameXMLs but I would like to know where that is located within FrameXML as well.
Well, I found something sorta helpful. In FrameXML > MainMenuBarMicroButtons.lua in the middle there is this...
function AchievementMicroButton_Update()
if ( not CanShowAchievementUI() ) then
AchievementMicroButton:Hide();
QuestLogMicroButton:SetPoint("BOTTOMLEFT", AchievementMicroButton, "BOTTOMLEFT", 0, 0);
else
AchievementMicroButton:Show();
QuestLogMicroButton:SetPoint("BOTTOMLEFT", AchievementMicroButton, "BOTTOMRIGHT", -3, 0);
end
end
So I changed it to this...
function AchievementMicroButton_Update()
AchievementMicroButton:Show();
QuestLogMicroButton:SetPoint("BOTTOMLEFT", AchievementMicroButton, "BOTTOMRIGHT", -3, 0);
end
But when I load into the game it says my interface files are corrupt. Any ideas? Also, where is CanShowAchievementUI pulling from?
-
"it says my interface files are corrupt"
Sec, do you have modified WoW.exe with removed GlueXML check? If not, you'll get this error whenever you edit anythig in UI.
-
"it says my interface files are corrupt"
Sec, do you have modified WoW.exe with removed GlueXML check? If not, you'll get this error whenever you edit anythig in UI.
Ahh, was using the wrong wow.exe. I have one with the check removed and one with it. It opened up the color on the achievements tab now but it can't be opened.
(http://i.imgur.com/UzznYoY.png)
-
If I remember correct. There is a define somewhere in the interface that sets the level when you can use this.
-
This enables the use of the window:
/run AchievementMicroButton.minLevel = 1; function CanShowAchievementUI() return true end; function HasCompletedAnyAchievement() return true end; UpdateMicroButtons()
use from chat.
-
This enables the use of the window:
/run AchievementMicroButton.minLevel = 1; function CanShowAchievementUI() return true end; function HasCompletedAnyAchievement() return true end; UpdateMicroButtons()
use from chat.
I don't want to make my players type that when they play I'd rather make a patch.
-
AchievementMicroButton.minLevel = 1
Find this entry. It should be a variable at the top of the file and change it to 1
-
AchievementMicroButton.minLevel = 1
Find this entry. It should be a variable at the top of the file and change it to 1
That's not in MainMenuBarMicroButtons
function LoadMicroButtonTextures(self, name)
self:RegisterForClicks("LeftButtonUp", "RightButtonUp");
self:RegisterEvent("UPDATE_BINDINGS");
local prefix = "Interface\\Buttons\\UI-MicroButton-";
self:SetNormalTexture(prefix..name.."-Up");
self:SetPushedTexture(prefix..name.."-Down");
self:SetDisabledTexture(prefix..name.."-Disabled");
self:SetHighlightTexture("Interface\\Buttons\\UI-MicroButton-Hilight");
end
function MicroButtonTooltipText(text, action)
if ( GetBindingKey(action) ) then
return text.." "..NORMAL_FONT_COLOR_CODE.."("..GetBindingText(GetBindingKey(action), "KEY_")..")"..FONT_COLOR_CODE_CLOSE;
else
return text;
end
end
function UpdateMicroButtons()
if ( CharacterFrame:IsShown() ) then
CharacterMicroButton:SetButtonState("PUSHED", 1);
CharacterMicroButton_SetPushed();
else
CharacterMicroButton:SetButtonState("NORMAL");
CharacterMicroButton_SetNormal();
end
if ( SpellBookFrame:IsShown() ) then
SpellbookMicroButton:SetButtonState("PUSHED", 1);
else
SpellbookMicroButton:SetButtonState("NORMAL");
end
if ( PlayerTalentFrame and PlayerTalentFrame:IsShown() ) then
TalentMicroButton:SetButtonState("PUSHED", 1);
else
TalentMicroButton:SetButtonState("NORMAL");
end
if ( QuestLogFrame:IsShown() ) then
QuestLogMicroButton:SetButtonState("PUSHED", 1);
else
QuestLogMicroButton:SetButtonState("NORMAL");
end
if ( ( GameMenuFrame:IsShown() )
or ( OptionsFrame:IsShown())
or ( AudioOptionsFrame:IsShown())
or ( InterfaceOptionsFrame and InterfaceOptionsFrame:IsShown())
or ( KeyBindingFrame and KeyBindingFrame:IsShown())
or ( MacroFrame and MacroFrame:IsShown()) ) then
MainMenuMicroButton:SetButtonState("PUSHED", 1);
else
MainMenuMicroButton:SetButtonState("NORMAL");
end
if ( PVPFrame:IsShown() ) then
PVPMicroButton:SetButtonState("PUSHED", 1);
else
PVPMicroButton:SetButtonState("NORMAL");
end
if ( FriendsFrame:IsShown() ) then
SocialsMicroButton:SetButtonState("PUSHED", 1);
else
SocialsMicroButton:SetButtonState("NORMAL");
end
if ( LFGParentFrame:IsShown() ) then
LFGMicroButton:SetButtonState("PUSHED", 1);
else
LFGMicroButton:SetButtonState("NORMAL");
end
if ( HelpFrame:IsShown() ) then
HelpMicroButton:SetButtonState("PUSHED", 1);
else
HelpMicroButton:SetButtonState("NORMAL");
end
if ( AchievementFrame and AchievementFrame:IsShown() ) then
AchievementMicroButton:SetButtonState("PUSHED", 1);
else
AchievementMicroButton:SetButtonState("NORMAL");
end
-- Keyring microbutton
if ( IsBagOpen(KEYRING_CONTAINER) ) then
KeyRingButton:SetButtonState("PUSHED", 1);
else
KeyRingButton:SetButtonState("NORMAL");
end
end
function AchievementMicroButton_Update()
AchievementMicroButton:Show();
QuestLogMicroButton:SetPoint("BOTTOMLEFT", AchievementMicroButton, "BOTTOMRIGHT", -3, 0);
end
function CharacterMicroButton_OnLoad(self)
SetPortraitTexture(MicroButtonPortrait, "player");
self:SetNormalTexture("Interface\\Buttons\\UI-MicroButtonCharacter-Up");
self:SetPushedTexture("Interface\\Buttons\\UI-MicroButtonCharacter-Down");
self:SetHighlightTexture("Interface\\Buttons\\UI-MicroButton-Hilight");
self:RegisterEvent("UNIT_PORTRAIT_UPDATE");
self:RegisterEvent("UPDATE_BINDINGS");
self:RegisterForClicks("LeftButtonDown", "RightButtonDown", "LeftButtonUp", "RightButtonUp");
self.tooltipText = MicroButtonTooltipText(CHARACTER_BUTTON, "TOGGLECHARACTER0");
self.newbieText = NEWBIE_TOOLTIP_CHARACTER;
end
function CharacterMicroButton_OnEvent(self, event, ...)
if ( event == "UNIT_PORTRAIT_UPDATE" ) then
local unit = ...;
if ( unit == "player" ) then
SetPortraitTexture(MicroButtonPortrait, unit);
end
return;
elseif ( event == "UPDATE_BINDINGS" ) then
self.tooltipText = MicroButtonTooltipText(CHARACTER_BUTTON, "TOGGLECHARACTER0");
end
end
function CharacterMicroButton_SetPushed()
MicroButtonPortrait:SetTexCoord(0.2666, 0.8666, 0, 0.8333);
MicroButtonPortrait:SetAlpha(0.5);
end
function CharacterMicroButton_SetNormal()
MicroButtonPortrait:SetTexCoord(0.2, 0.8, 0.0666, 0.9);
MicroButtonPortrait:SetAlpha(1.0);
end
--Talent button specific functions
function TalentMicroButton_OnEvent(self, event, ...)
if ( event == "PLAYER_LEVEL_UP" ) then
UpdateTalentButton();
if ( not CharacterFrame:IsShown() ) then
SetButtonPulse(self, 60, 1);
end
elseif ( event == "UNIT_LEVEL" or event == "PLAYER_ENTERING_WORLD" ) then
UpdateTalentButton();
elseif ( event == "UPDATE_BINDINGS" ) then
self.tooltipText = MicroButtonTooltipText(TALENTS_BUTTON, "TOGGLETALENTS");
end
end
function UpdateTalentButton()
if ( UnitLevel("player") < 1 ) then
TalentMicroButton:Hide();
AchievementMicroButton:SetPoint("BOTTOMLEFT", "TalentMicroButton", "BOTTOMLEFT", 0, 0);
else
TalentMicroButton:Show();
AchievementMicroButton:SetPoint("BOTTOMLEFT", "TalentMicroButton", "BOTTOMRIGHT", -2, 0);
end
end
Where is AchievementMicroButton.minlevel coming from?
Update:
Got it to work using this code however whatever your keybinding is for achievements doesn't show up next to the achievement micro button. How is that fixed?
function LoadMicroButtonTextures(self, name)
self:RegisterForClicks("LeftButtonUp", "RightButtonUp");
self:RegisterEvent("UPDATE_BINDINGS");
local prefix = "Interface\\Buttons\\UI-MicroButton-";
self:SetNormalTexture(prefix..name.."-Up");
self:SetPushedTexture(prefix..name.."-Down");
self:SetDisabledTexture(prefix..name.."-Disabled");
self:SetHighlightTexture("Interface\\Buttons\\UI-MicroButton-Hilight");
end
function MicroButtonTooltipText(text, action)
if ( GetBindingKey(action) ) then
return text.." "..NORMAL_FONT_COLOR_CODE.."("..GetBindingText(GetBindingKey(action), "KEY_")..")"..FONT_COLOR_CODE_CLOSE;
else
return text;
end
end
function UpdateMicroButtons()
if ( CharacterFrame:IsShown() ) then
CharacterMicroButton:SetButtonState("PUSHED", 1);
CharacterMicroButton_SetPushed();
else
CharacterMicroButton:SetButtonState("NORMAL");
CharacterMicroButton_SetNormal();
end
if ( SpellBookFrame:IsShown() ) then
SpellbookMicroButton:SetButtonState("PUSHED", 1);
else
SpellbookMicroButton:SetButtonState("NORMAL");
end
if ( PlayerTalentFrame and PlayerTalentFrame:IsShown() ) then
TalentMicroButton:SetButtonState("PUSHED", 1);
else
TalentMicroButton:SetButtonState("NORMAL");
end
if ( QuestLogFrame:IsShown() ) then
QuestLogMicroButton:SetButtonState("PUSHED", 1);
else
QuestLogMicroButton:SetButtonState("NORMAL");
end
if ( ( GameMenuFrame:IsShown() )
or ( OptionsFrame:IsShown())
or ( AudioOptionsFrame:IsShown())
or ( InterfaceOptionsFrame and InterfaceOptionsFrame:IsShown())
or ( KeyBindingFrame and KeyBindingFrame:IsShown())
or ( MacroFrame and MacroFrame:IsShown()) ) then
MainMenuMicroButton:SetButtonState("PUSHED", 1);
else
MainMenuMicroButton:SetButtonState("NORMAL");
end
if ( PVPFrame:IsShown() ) then
PVPMicroButton:SetButtonState("PUSHED", 1);
else
PVPMicroButton:SetButtonState("NORMAL");
end
if ( FriendsFrame:IsShown() ) then
SocialsMicroButton:SetButtonState("PUSHED", 1);
else
SocialsMicroButton:SetButtonState("NORMAL");
end
if ( LFGParentFrame:IsShown() ) then
LFGMicroButton:SetButtonState("PUSHED", 1);
else
LFGMicroButton:SetButtonState("NORMAL");
end
if ( HelpFrame:IsShown() ) then
HelpMicroButton:SetButtonState("PUSHED", 1);
else
HelpMicroButton:SetButtonState("NORMAL");
end
if ( AchievementFrame and AchievementFrame:IsShown() ) then
AchievementMicroButton:SetButtonState("PUSHED", 1);
else
AchievementMicroButton:SetButtonState("NORMAL");
end
-- Keyring microbutton
if ( IsBagOpen(KEYRING_CONTAINER) ) then
KeyRingButton:SetButtonState("PUSHED", 1);
else
KeyRingButton:SetButtonState("NORMAL");
end
end
function HasCompletedAnyAchievement() return true
end
function CanShowAchievementUI() return true
end
function AchievementMicroButton_Update()
AchievementMicroButton:Show();
AchievementMicroButton:Enable();
AchievementMicroButton:SetButtonState("NORMAL");
QuestLogMicroButton:SetPoint("BOTTOMLEFT", AchievementMicroButton, "BOTTOMRIGHT", -3, 0);
end
function CharacterMicroButton_OnLoad(self)
SetPortraitTexture(MicroButtonPortrait, "player");
self:SetNormalTexture("Interface\\Buttons\\UI-MicroButtonCharacter-Up");
self:SetPushedTexture("Interface\\Buttons\\UI-MicroButtonCharacter-Down");
self:SetHighlightTexture("Interface\\Buttons\\UI-MicroButton-Hilight");
self:RegisterEvent("UNIT_PORTRAIT_UPDATE");
self:RegisterEvent("UPDATE_BINDINGS");
self:RegisterForClicks("LeftButtonDown", "RightButtonDown", "LeftButtonUp", "RightButtonUp");
self.tooltipText = MicroButtonTooltipText(CHARACTER_BUTTON, "TOGGLECHARACTER0");
self.newbieText = NEWBIE_TOOLTIP_CHARACTER;
end
function CharacterMicroButton_OnEvent(self, event, ...)
if ( event == "UNIT_PORTRAIT_UPDATE" ) then
local unit = ...;
if ( unit == "player" ) then
SetPortraitTexture(MicroButtonPortrait, unit);
end
return;
elseif ( event == "UPDATE_BINDINGS" ) then
self.tooltipText = MicroButtonTooltipText(CHARACTER_BUTTON, "TOGGLECHARACTER0");
end
end
function CharacterMicroButton_SetPushed()
MicroButtonPortrait:SetTexCoord(0.2666, 0.8666, 0, 0.8333);
MicroButtonPortrait:SetAlpha(0.5);
end
function CharacterMicroButton_SetNormal()
MicroButtonPortrait:SetTexCoord(0.2, 0.8, 0.0666, 0.9);
MicroButtonPortrait:SetAlpha(1.0);
end
--Talent button specific functions
function TalentMicroButton_OnEvent(self, event, ...)
if ( event == "PLAYER_LEVEL_UP" ) then
UpdateTalentButton();
if ( not CharacterFrame:IsShown() ) then
SetButtonPulse(self, 60, 1);
end
elseif ( event == "UNIT_LEVEL" or event == "PLAYER_ENTERING_WORLD" ) then
UpdateTalentButton();
elseif ( event == "UPDATE_BINDINGS" ) then
self.tooltipText = MicroButtonTooltipText(TALENTS_BUTTON, "TOGGLETALENTS");
end
end
function UpdateTalentButton()
if ( UnitLevel("player") < 1 ) then
TalentMicroButton:Hide();
AchievementMicroButton:SetPoint("BOTTOMLEFT", "TalentMicroButton", "BOTTOMLEFT", 0, 0);
else
TalentMicroButton:Show();
AchievementMicroButton:SetPoint("BOTTOMLEFT", "TalentMicroButton", "BOTTOMRIGHT", -2, 0);
end
end
UpdateMicroButtons()