Download
(179Kb)
Download
Updated: 10-23-19 07:35 PM
Pictures
File Info
Compatibility:
BfA content patch (8.2.5)
Shadows of Argus (7.3.0)
Tomb of Sargeras (7.2.0)
Return to Karazhan (7.1.5)
Legion (7.0.3)
Updated:10-23-19 07:35 PM
Created:unknown
Downloads:49,891
Favorites:388
MD5:

Urban Achiever  Popular! (More than 5000 hits)

Version: 17.160
by: Syzgyn, Tomate

Urban Achiever is a replacement Achievement frame.

Features

  • Search through all the achievements, statistics, and criteria in game for any term.
  • Sort achievements by name, point value, or completion date
  • Now uses the built in Tracking frame added in 3.1, with additional functionality
  • More information available with less scrolling required.
  • See how far progressed other people are in every achievement, along with the status of individual criteria.
  • Track timed achievements as they start, automatically.


Localization
All localization are now implemented:
  • English
  • French
  • Korean (Thanks to maknae & zubrik)
  • German (Thanks to ElderIlem)
  • Chinese (Thanks to stephenmarquis)
  • Russian (Thanks to osgod)
  • Spanish (Thanks to Phanx)

Known Issues

Sorting isn't working as well as I'd like.
Also you have to specificly bind a key to open the UrbanAchiever frame. It should be at the bottom of your binding menu, in the UrbanAchiever section.

Usage
/urbanachiever or /ua to toggle the options and help.

All the current /commands for the achievement frame will open the new one.

Shift-click achievements to track them, alt-click them on the tracker to remove them.

Feature Requests
Please use the integrated feature request system. It makes my life so much easier.

Bug Reports
Please Use commentaries for any and all bugs. Again, makes my life easier if you do.

17.162
- Update for 8.2.5.
- Update faction achievement list.
- Hide tracking achievement.

17.160
- Update for 7.3.

17.158
- Update for 7.2.5.

17.157
- Update for 7.2.

17.155
- Update for Legion Release.

17.154
- Update for Legion.

16.153
- Update for patch 6.1.

16.152
- Fix too long reward name.
- Fix achievement with status bar criteria and an criteria.
- Category achievement count bar is now clickable.

16.149
- Update for 6.0.
- Update libs.
- Update maximum achievement threshold.
- Update alliance/horde specific achievement.
- Change the account share achievement color to be blue.
- Change the way achievement category status bar counter is displayed on the summary tab.
- Enlarge the display of the criteria list.

15.7
- Fix an issue with auto-tracking timed achievement, weirdly event "TRACKED_ACHIEVEMENT_UPDATE" return 0 for the achievementID when doing new 5.4 cooking dailies.
15.6
- Update specific faction achievement (for patch 5.4).
- Bump toc for patch 5.4.
15.5
- Update specific faction achievement (for patch 5.3).
- Bump toc for patch 5.3.
- Update Ace library.
15.4
- Update specific faction achievement (for patch 5.2).
- Bump toc for patch 5.2.
- Update Ace library.
15.3
- Update specific faction achievement (for patch 5.1).
- Bump toc for patch 5.1.
15.2
- Add a missing specific faction achievement (now get by parsing of wowhead).
15.1
- Add a missing specific faction achievement and add the last id achievement that was missing.
15.0
- Version compatible with MoP (Faction specific achievement updated...).
- Add information concerning account wide achievements.
- Update some status bar skins.
- Category status bar completion are now refresh on display (you don't have to reload the UI)
- Fix some compare bugs.
- Add esES & esMX localization (thanks to Phanx).
14.3
- Fix missing specific faction achievement for World event.
- Add three new achievements (feat of strength).
14.2
- Fix missing specific faction achievement for Darkmoon fair.
- Fix error for united nation guild achievement specific faction.
14.1
- Toc Bump for 4.3.
14.0
- Fix the guild achievement issue (at last).
- Fix category counter in summary.
- Fix achievement link in other frame than default chat frame.
- Add future missing achievement of 4.3.
13.5
- Minor fix in method to display achievement in chat.
- Minor fix in method to remove Quest and achievement directly from tracker.
13.4
- Add missing achievement add in 4.2.0.
- Filter achievement side for 4.2.0 achievement and missing achievement.
13.3
- Add missing achievement add in 4.0.6 and future 4.1.
- Remove last statistic update in summary pannel.
13.2
- Add a specific faction achievement (Wildhammer Tour of Duty/Dragonmaw Tour of Duty)
- Add a specific guild faction achievement (PvP & Wotlk dungeon)
- Criteria is correctly completed in guild tab when it is an achievement.
- Add the information of the guild reputation require for the few guild achievement which require it.
- Add tooltip with date on criteria when it is an achievement.
- For guild achievement it also add player name which achieve this achievement.
- Fix collapse issue with criteria and category total achievement bar in summary category.
- Fix total completed category achievement bar display.
- Fix some localization.
13.1
- Add a new category in the summary "Recent guild achievement".
- Display the the total guild achievement point on the top of the guild tab rather than the total achievement point.
- Display new summary bar for each guild category in the guild tab rather than classic category achievement.
- Localization zhTW & zhCN & deDE for the guild string.
- Remove a debug line which .
13.0
- Add a guild tab (YAY).
- Add some string in the localization.
- Add the german date format.
- Remove the first '0' in the version number.
0.12.11
- Add ruRU localization.
- Add some string for localization.
- Russian localization have date in dd/mm/yy (like French).
0.12.10
- Fix an error with zhTW localization.
0.12.9
- Fix an error with localization.
0.12.8
- Add zhCN localization.
- Add zhTW localization.
- Fix a localization string name.
0.12.7
- Add deDE localization.
0.12.6
- Add specific faction achievement (Fishing & Cooking).
- Add guild specific faction achievement (in the list only, not display).
0.12.5
- Fix bug with missing achievements.
- Fix specific faction achievements of 4.0.3a.
0.12.4
- Fixed koKR localization.
- Added message when trying to follow an already earned achievement.
- Change Feat of strength Shield icon with the expected one.
0.12.3
- Add koKR localization.
0.12.2
- Fix a bug with localization.
0.12.1
- Fix category section background display.
- Add localization capability (need translation).
- Add French localization.
0.11.3
- Fix the shield icon display.
- Fix error when trying to track an already finished achievement. YOU CAN'T do that anymore.
0.11.2
- Fix a bug when your earn an achievement.
0.11.1
- Fix 4.0 Bug. (A big thanks to elaundar)
0.10.1
- Fix a bug with year of the achievement 2010 was noted '010' whereas 2009 was noted '09'.
- Added a format of date for the French client (dd/mm/yy).
0.10.0
- Fix the 'ChatFrameEditBox' bug introduced in 3.3.5.
0.9.9
- Add achivement total bars and counts for each category of achievement (currently not the same count of Original Achivement UI).
- Correct some bugs.
0.9.7c
- All the specifc faction achievements are update now. (I think)
0.9.7b
- More faction specific stuff and getting ready for 3.2.2.
0.9.7a
- Updated faction specific achievements for 3.2, thanks Tomate.
0.9.7
- Updated for 3.2
0.9.6
- Fixed some bugs with old code and the alert buttons
0.9.5
- Updated for 3.1
0.9.4
- Fixed Secure call bug (Thanks Arrowmaster)
0.9.3
- Updated for new achievements added in 3.0.8
- Some minor optimizations and bug fixes.
0.9.2
- Fixed tracked achievements not saving between sessions.
- Tracker now scales correctly between sessions.
- Fixed some text formatting on the tracker.
- Timed achievements are now removed from the tracker after the timer ends.
0.9.1
- Removed a stray print call.
0.9
- Tracked Achievements are now saved between sessions.
- Fixed font clipping and formatting on status bars.
- Added options for detailed criteria and automatic tracking.
- Fixed display bug with category scroll bar.
- Added Timers for timed achievements, updated on the fly.
- Fixed formatting bug with money strings.
- Fixed some sorting bugs.
0.8
- Hooked the Micro Menu Achievement button
- Tracked achievements show a green T next to the button.
- Added options for statistic criteria, money formatting, tracker scaling, and a help file.
- Removed bunches of old code, more optimizations.
0.7.1
- Fixed issue with me being an idiot and uploading the wrong file.
0.7
- Frame will no longer show when other mods inspect someone's achievements
- Stopped errors from being thrown by the default UI
- Achievements are removed from the tracker upon completion.
- Added Panel to integrated UI options
- Opposite faction's achievments should be hidden when not searching or comparing.
0.6
- Various optimizations.
- Added summary progress bar.
- Added slash commands
- Money should format properly now.

0.5
- Category buttons now have textures.
- You can now shift-click achievements with the editbox open to paste them into chat.
- General Bug fixes.

0.4.1
- More Tracker Improvements and bugfixes.
- Hooked the Buttons that popup when you earn a new achievement, they now open the improved frame.

0.4
- Achievement Comparison Fully Implemented, including popup menu injection.
- Achievement Tracker Fully Implemented
- Summary Category Implemented
- Fixed Sorting by date completed, and by comparison date completed

0.3
- Added Keybindings
- Added alot of visual elements
- Massive optimization
Post A Reply Comment Options
Unread 10-20-10, 06:08 PM  
Tomate
A Murloc Raider
 
Tomate's Avatar
AddOn Author - Click to view AddOns

Forum posts: 5
File comments: 301
Uploads: 6
Originally posted by Jaim Sandar
Oh! Gee! Thank you, I'm glad it was so simple. If that was mentioned in the description or anywhere else, I sure didn't see it.
Thanks to pointing me this out, I have just added explanation to this in the addon description.
Report comment to moderator  
Reply With Quote
Unread 10-20-10, 10:30 AM  
Jaim Sandar
A Deviate Faerie Dragon
AddOn Author - Click to view AddOns

Forum posts: 13
File comments: 357
Uploads: 1
Originally posted by Tomate
Yes you have to bind a key to open the urban achievement frame.
Go to the botom of the list of the key binding into the UrbanAchiever section, and bind a key.
Oh! Gee! Thank you, I'm glad it was so simple. If that was mentioned in the description or anywhere else, I sure didn't see it.

Always appreciated,
JS
Report comment to moderator  
Reply With Quote
Unread 10-19-10, 05:01 PM  
Tomate
A Murloc Raider
 
Tomate's Avatar
AddOn Author - Click to view AddOns

Forum posts: 5
File comments: 301
Uploads: 6
Originally posted by Jaim Sandar
I installed Urban Achiever, and I see it as enabled and working using AddOn Control Panel or Option House, but the Achievement panel is the standard Blizzard frame. Am I missing something?

Thank you.
Yes you have to bind a key to open the urban achievement frame.
Go to the botom of the list of the key binding into the UrbanAchiever section, and bind a key.
Report comment to moderator  
Reply With Quote
Unread 10-19-10, 04:02 PM  
Jaim Sandar
A Deviate Faerie Dragon
AddOn Author - Click to view AddOns

Forum posts: 13
File comments: 357
Uploads: 1
I installed Urban Achiever, and I see it as enabled and working using AddOn Control Panel or Option House, but the Achievement panel is the standard Blizzard frame. Am I missing something?

Thank you.
Report comment to moderator  
Reply With Quote
Unread 10-19-10, 01:26 PM  
Tomate
A Murloc Raider
 
Tomate's Avatar
AddOn Author - Click to view AddOns

Forum posts: 5
File comments: 301
Uploads: 6
Originally posted by Lightning
- the parchment on the menu side is devided in 2 colors (i didnt notice that bevore, might be that it was allways like that)
It should be corrected in the next release.
Originally posted by Lightning
- the menu area itself is bigger as the buttons in it [<-x->], i guess there is a gap of 40px or more (using a 1680x1050 resolution)
I can't see this issue, can you plz post a screenshot?
Others issues have been corrected in the last version.

Originally posted by Codex
I'm having trouble shift click to track achievements, especially when carbonite is enabled
You can't track already earned achievement, maybe you simply try to do it.
I correct an error when you try to. But if it's not the issue you encounter, I am sorry, try to see with carbonite author.
Last edited by Tomate : 10-20-10 at 02:58 AM.
Report comment to moderator  
Reply With Quote
Unread 10-19-10, 11:40 AM  
Codex
A Deviate Faerie Dragon
AddOn Author - Click to view AddOns

Forum posts: 19
File comments: 280
Uploads: 12
I'm having trouble shift click to track achievements, especially when carbonite is enabled
Report comment to moderator  
Reply With Quote
Unread 10-19-10, 02:35 AM  
Lightning
A Kobold Labourer

Forum posts: 0
File comments: 14
Uploads: 0
Nice ... you are not as lazy as you think ... i was just going to edit, that it isnt the same graphic of achievementpoint, seems to be 2 different ... but you were allready faster
Report comment to moderator  
Reply With Quote
Unread 10-19-10, 01:51 AM  
Tomate
A Murloc Raider
 
Tomate's Avatar
AddOn Author - Click to view AddOns

Forum posts: 5
File comments: 301
Uploads: 6
Originally posted by Lightning
2. I ran into a error then i recieved a achievment:
Code:
2x UrbanAchiever\Main.lua:249: attempt to index field '?' (a nil value)
<string>:"safecall Dispatcher[2]":4: in function <[string "safecall Dispatcher[2]"]:4>
<in C code>: ?
<string>:"safecall Dispatcher[2]":13: in function `?'
CallbackHandler-1.0-6 (Ace3):92: in function `Fire'
AceEvent-3.0-3 (Ace3):120: in function <Ace3\AceEvent-3.0\AceEvent-3.0.lua:119>
I see the issue here. It should be fix in the next version but it is not really easy to reproduce the issue.
Originally posted by Lightning
3. Some textures have a strange looking:
- the parchment on the menu side is devided in 2 colors (i didnt notice that bevore, might be that it was allways like that)
- the menu area itself is bigger as the buttons in it [<-x->], i guess there is a gap of 40px or more (using a 1680x1050 resolution)
- the graphik of achievmentpoints is upset. and i see 2 over each over although there should be only 1 graphik in each achievment window
I will look threw and try to fix this issue asap. I have not noticed those because I play with Skinner which change the aspect of background, statusbar ... I also ran AI-Art which change the look of all images in the game. I think I have encounter the graphic of achievementpoint issue and I will correct it.
Report comment to moderator  
Reply With Quote
Unread 10-19-10, 12:48 AM  
Lightning
A Kobold Labourer

Forum posts: 0
File comments: 14
Uploads: 0
1. Nice to see it again on live
2. I ran into a error then i recieved a achievment:
Code:
2x UrbanAchiever\Main.lua:249: attempt to index field '?' (a nil value)
<string>:"safecall Dispatcher[2]":4: in function <[string "safecall Dispatcher[2]"]:4>
<in C code>: ?
<string>:"safecall Dispatcher[2]":13: in function `?'
CallbackHandler-1.0-6 (Ace3):92: in function `Fire'
AceEvent-3.0-3 (Ace3):120: in function <Ace3\AceEvent-3.0\AceEvent-3.0.lua:119>
3. Some textures have a strange looking:
- the parchment on the menu side is devided in 2 colors (i didnt notice that bevore, might be that it was allways like that)
- the menu area itself is bigger as the buttons in it [<-x->], i guess there is a gap of 40px or more (using a 1680x1050 resolution)
- the graphik of achievmentpoints is upset. and i see 2 over each over although there should be only 1 graphik in each achievment window
Report comment to moderator  
Reply With Quote
Unread 10-18-10, 06:37 PM  
elaundar
A Kobold Labourer

Forum posts: 0
File comments: 24
Uploads: 0
Sure thing!

Basically, once I had the Achievement lookup working, I ran into several nil values. I tracked them down to the self.*Offset variables being nil. Since the variables had a default value set, I isolated the problem to be in ButtonScroll and On*Scroll functions.

Something seems to have changed in how SetScript() is passing variables. My wow lua is so limited, I couldn't figure out exactly what, but I was able to look at a few addons that were working to figure out what to change. I finally just decided to use the default passing mechanism (which passes self and arg1). Unfortunately, this meant that buttonScoll needed to be split into 3 different methods rather than just passing in the scrollbar/offset. (I suspect there is a better way to do this, but it works )
Report comment to moderator  
Reply With Quote
Unread 10-18-10, 05:39 PM  
Tomate
A Murloc Raider
 
Tomate's Avatar
AddOn Author - Click to view AddOns

Forum posts: 5
File comments: 301
Uploads: 6
A big thanks elaundar for your help.
I am not sur of what I have done.
It seems it was an issue with the scroll binding.
Can you explain a bit what you have done, I haven't the time to look all your code to see all diff.
Report comment to moderator  
Reply With Quote
Unread 10-18-10, 04:17 PM  
elaundar
A Kobold Labourer

Forum posts: 0
File comments: 24
Uploads: 0
Here is a diff (-U5) of the changes I made to get Urban Achiever working again. I was having problems with getting the SetScripts to pass in the args correctly, so I just split them into separate functions.

Awesome add-on Tomate; couldn't stand playing without it. Feel free to use my changes as needed/wanted.


Code:
--- ~/Downloads/UrbanAchiever/Main.lua    2010-08-28 12:18:22.000000000 -0500
+++ Main.lua    2010-10-18 17:15:56.000000000 -0500
@@ -451,12 +451,12 @@
     self:RefreshAchievementButtons("name a")
 end
 
 function self:GetSearchString(id)
     if not type(id) == "number" then return end
-    local id, name, points, completed, month, day, year, description, _,_, reward = GetAchievementInfo(id)
-    if not id then return nil end
+    local retok, id, name, points, completed, month, day, year, description, _,_, reward = pcall (GetAchievementInfo,id)
+    if not retok or not id then return nil end
     if completed then
         if year < 10 then
             year = "0" .. year;    
         end
         if (GetLocale() == "frFR") then
@@ -477,16 +477,32 @@
     end
     --Add all the info to the master list
     return searchStr:lower()
 end
 
-function self:ButtonScroll(arg1, scrollbar, offset)
+function UrbanAchiever_CatButtonScroll(self1, arg1)
     --arg1 = 1 for up, -1 for down
-    if IsShiftKeyDown() then arg1 = arg1 * 5 end    --Shift = longer scroll
-    local sMin, sMax = self.frame[scrollbar]:GetMinMaxValues()
-    self[offset] = math.min(sMax, math.max(sMin, self[offset] + (arg1 * -1)))
-    self.frame[scrollbar]:SetValue(self[offset])
+    if IsShiftKeyDown() then arg1 = arg1 * 5 end    --Shift = longer scroll
+    local sMin, sMax = self.frame.catScroll:GetMinMaxValues()
+    self.catOffset = math.min(sMax, math.max(sMin, self.catOffset+ (arg1 * -1)))
+    self.frame.catScroll:SetValue(self.catOffset)
+end
+
+function UrbanAchiever_AchButtonScroll(self1, arg1)
+    --arg1 = 1 for up, -1 for down
+    if IsShiftKeyDown() then arg1 = arg1 * 5 end    --Shift = longer scroll
+    local sMin, sMax = self.frame.achScroll:GetMinMaxValues()
+    self.achOffset = math.min(sMax, math.max(sMin, self.achOffset+ (arg1 * -1)))
+    self.frame.achScroll:SetValue(self.achOffset)
+end
+
+function UrbanAchiever_CriteriaButtonScroll(self1, arg1)
+    --arg1 = 1 for up, -1 for down
+    if IsShiftKeyDown() then arg1 = arg1 * 5 end    --Shift = longer scroll
+    local sMin, sMax = self.frame.criteriaScroll:GetMinMaxValues()
+    self.criteriaOffset = math.min(sMax, math.max(sMin, self.criteriaOffset+ (arg1 * -1)))
+    self.frame.criteriaScroll:SetValue(self.criteriaOffset)
 end
 
 function self:ToggleFrame()
     if self.frame == nil then self:Initialize("","") end
     if self.frame == nil then return end
@@ -828,25 +844,21 @@
     self.frame.catScroll:SetPoint("TOPLEFT", self.frame.catButtons[2], "TOPRIGHT")
     self.frame.catScroll:SetPoint("BOTTOMLEFT", self.frame.catButtons[#self.frame.catButtons - 1], "BOTTOMRIGHT")
     self.frame.catScroll:SetWidth(16)
     self.frame.catScroll:SetMinMaxValues(0,0)
     self.frame.catScroll:SetValueStep(1)
-    self.frame.catScroll:SetScript("OnValueChanged", function()
-        self:OnCatScroll()
-    end)
+    self.frame.catScroll:SetScript("OnValueChanged", UrbanAchiever_OnCatScroll)
     self.frame.catScroll:SetValue(1)
     
     --Achievement Button Scroll Bar
     self.frame.achScroll = CreateFrame("Slider", "$parentAchSlider", self.frame, "UIPanelScrollBarTemplate")
     self.frame.achScroll:SetPoint("TOPLEFT", self.frame.achButtons[2], "TOPRIGHT")
     self.frame.achScroll:SetPoint("BOTTOMLEFT", self.frame.achButtons[#self.frame.achButtons - 1], "BOTTOMRIGHT")
     self.frame.achScroll:SetWidth(16)
     self.frame.achScroll:SetMinMaxValues(0,0)
     self.frame.achScroll:SetValueStep(1)
-    self.frame.achScroll:SetScript("OnValueChanged", function()
-        self:OnAchScroll()
-    end)
+    self.frame.achScroll:SetScript("OnValueChanged",UrbanAchiever_OnAchScroll)
     self.frame.achScroll:SetValue(1)
     
     --Achievement Display Frame
     self.frame.display = CreateFrame("Frame", "$parentDisplayFrame", self.frame)
     self.frame.display.backdrop = self.frame.display:CreateTexture("$parentBG", "BACKGROUND")
@@ -944,13 +956,11 @@
     self.frame.criteriaScroll:SetPoint("TOPLEFT", self.frame.display.criteriaButtons[2], "TOPRIGHT", 1,0)
     self.frame.criteriaScroll:SetPoint("BOTTOMLEFT", self.frame.display.criteriaButtons[#self.frame.display.criteriaButtons - 1], "BOTTOMRIGHT", 1,0)
     self.frame.criteriaScroll:SetWidth(16)
     self.frame.criteriaScroll:SetMinMaxValues(0,0)
     self.frame.criteriaScroll:SetValueStep(1)
-    self.frame.criteriaScroll:SetScript("OnValueChanged", function()
-        self:OnCriteriaScroll()
-    end)
+    self.frame.criteriaScroll:SetScript("OnValueChanged", UrbanAchiever_OnCriteriaScroll)
     self.frame.criteriaScroll:SetValue(1)
     self.frame.criteriaScroll:Show()
     
     self.frame.display.criteria = self.frame.display:CreateFontString("$parentCriteria", "ARTWORK", "GameFontNormal")
     self.frame.display.criteria:SetPoint("TOPLEFT", 0, -135)
@@ -1024,19 +1034,11 @@
         end
         self.achOffset = 0
         self:RefreshCategoryButtons()
         self:RefreshAchievementButtons()
     end)
-    button:SetScript("OnMouseWheel", function()
-        self:ButtonScroll(arg1, "catScroll", "catOffset")
-        --[[--arg1 = 1 for up, -1 for down
-        local sMin, sMax = self.frame.catScroll:GetMinMaxValues()
-        self.catOffset = math.min(sMax, math.max(sMin, self.catOffset + (arg1 * -1)))
-        self.frame.catScroll:SetValue(self.catOffset)
-        --self:RefreshCategoryButtons()]]--
-        
-    end)
+    button:SetScript("OnMouseWheel",UrbanAchiever_CatButtonScroll)
     
     return button
 end
 
 function self:CreateAchievementButton(name, parent)
@@ -1166,19 +1168,11 @@
                 self:RefreshAchievementButtons(false)
                 self:SetDisplayAchievement(id)
             end
         end
     end)
-    button:SetScript("OnMouseWheel", function()
-        self:ButtonScroll(arg1, "achScroll", "achOffset")
-        --[[--arg1 = 1 for up, -1 for down
-        local sMin, sMax = self.frame.achScroll:GetMinMaxValues()
-        self.achOffset = math.min(sMax, math.max(sMin, self.achOffset + (arg1 * -1)))
-        self.frame.achScroll:SetValue(self.achOffset)
-        --self:RefreshAchievementButtons()
-        ]]--
-    end)
+    button:SetScript("OnMouseWheel", UrbanAchiever_AchButtonScroll)
     
     return button
 end
 
 function self:CreateCriteriaButton(name, parent)
@@ -1216,13 +1210,11 @@
     highlightTexture:SetTexCoord(0, 1, 0.56, 0.73)
     --highlightTexture:SetAllPoints(button)
     
     button:SetHighlightTexture("Interface\\FriendsFrame\\UI-FriendsFrame-HighlightBar", "ADD")
     
-    button:SetScript("OnMouseWheel", function()
-        self:ButtonScroll(arg1, "criteriaScroll", "criteriaOffset")
-    end)
+    button:SetScript("OnMouseWheel", UrbanAchiever_CriteriaButtonScroll)
     
     button:SetScript("OnClick", function()
         local id = button:GetID()
         if button.icon:IsShown() then
             self:SetDisplayAchievement(id)
@@ -1338,25 +1330,22 @@
 end
 
 -------------------------------------------------------------
 --Scroll Stuff                                        
 -------------------------------------------------------------
-function self:OnCatScroll()
-    --arg1 = GetValue()
-    self.catOffset = arg1
+function UrbanAchiever_OnCatScroll(self1)
+    self.catOffset = self1:GetValue()
     self:RefreshCategoryButtons()
 end
 
-function self:OnAchScroll()
-    --arg1 = GetValue()
-    self.achOffset = arg1
+function UrbanAchiever_OnAchScroll(self1)
+    self.achOffset = self1:GetValue()
     self:RefreshAchievementButtons(false)
 end
 
-function self:OnCriteriaScroll()
-    --arg1 = GetValue()
-    self.criteriaOffset = arg1
+function UrbanAchiever_OnCriteriaScroll(self1)
+    self.criteriaOffset = self1:GetValue()
     self:RefreshCriteriaButtons()
 end
 
 -------------------------------------------------------------
 --Core Stuff                                        
@@ -1445,11 +1434,12 @@
         end
     end
 end
 
 function self:SetAchievementButton(button, id, offset)
-    local id, name, points, completed, month, day, year, description, _, icon, reward = GetAchievementInfo(id)
+    local retok, id, name, points, completed, month, day, year, description, _,icon, reward = pcall (GetAchievementInfo,id)
+    if not retok then return nil end
     
     if completed then
         if year < 10 then
             year = "0" .. year;    
         end
@@ -1549,11 +1539,11 @@
     end
         
     --Update this achievement
     self.masterList[id].searchString = self:GetSearchString(id)
     
-    local id, name, points, completed, month, day, year, description, _, icon, reward = GetAchievementInfo(id)
+    local retok, id, name, points, completed, month, day, year, description, _,icon, reward = pcall (GetAchievementInfo,id)
     
     self.frame.display:Show()
     self.frame.display.icon:SetTexture(icon)
     self.frame.display.name:SetText(name)
     self.frame.display.desc:SetText(description)
@@ -1691,15 +1681,17 @@
                 end
             end
             
             if criteriaType == CRITERIA_TYPE_ACHIEVEMENT then    
                 --Its a meta achievement
-                _,_,_,_,_,_,_,_,_,icon = GetAchievementInfo(criteriaAssetID)
-                self.frame.display.criteriaButtons[buttonNum].icon:SetTexture(icon)
-                self.frame.display.criteriaButtons[buttonNum].icon:Show()
-                offset = offset + 16
-                self.frame.display.criteriaButtons[buttonNum]:SetID(criteriaAssetID)
+                retok,_,_,_,_,_,_,_,_,_,icon = pcall (GetAchievementInfo,criteriaAssetID)
+                if retok then
+                    self.frame.display.criteriaButtons[buttonNum].icon:SetTexture(icon)
+                    self.frame.display.criteriaButtons[buttonNum].icon:Show()
+                    offset = offset + 16
+                    self.frame.display.criteriaButtons[buttonNum]:SetID(criteriaAssetID)
+                end                
             elseif (bit.band(criteriaFlags, ACHIEVEMENT_CRITERIA_PROGRESS_BAR) == ACHIEVEMENT_CRITERIA_PROGRESS_BAR) then
                 --Its a progress bar
                 offset = 1
                 self.frame.display.criteriaButtons[buttonNum]:Hide()
                 str = ""
Last edited by elaundar : 10-18-10 at 04:28 PM.
Report comment to moderator  
Reply With Quote
Unread 10-18-10, 01:54 PM  
elaundar
A Kobold Labourer

Forum posts: 0
File comments: 24
Uploads: 0
An easier way to handle the GetAchievementInfo problem would be to use pcall to simulate a try/catch. (about 3 places it seems)

+-- local id, name, points, completed, month, day, year, description, _,_, reward = GetAchievementInfo(id)
+local retok, id, name, points, completed, month, day, year, description, _,_, reward = pcall (GetAchievementInfo,id)
+if not retok then return nil end
Report comment to moderator  
Reply With Quote
Unread 10-18-10, 06:15 AM  
Tomate
A Murloc Raider
 
Tomate's Avatar
AddOn Author - Click to view AddOns

Forum posts: 5
File comments: 301
Uploads: 6
Originally posted by Lightning
What kind of help do you need?
... and where?
Yeah I know, I am lazy. I haven't realy the time to work on it.
But, I am encounter two problems.
The fist one a change in the API forbid us to check achievement info on an inexistent achievement ID. To avoid this issue I made a PHP script which dump the current achievement database from WoWhead.
After that I encounter an other issue which I don't know how to deal with.
I will try to open a Topic on the forum and add a link here with the log of the error and the code which produce the error.
Last edited by Tomate : 10-18-10 at 06:24 AM.
Report comment to moderator  
Reply With Quote
Unread 10-16-10, 12:32 AM  
Lightning
A Kobold Labourer

Forum posts: 0
File comments: 14
Uploads: 0
Originally posted by Tomate
For the Cataclysm compatibility, I think I will not succeed alone.
I will need some help.
I will post on forum to get some help.
What kind of help do you need?
... and where?
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: