2010-01-16, 12:12 PM
(This post was last modified: 2011-06-05, 09:37 AM by Diogo Parrinha.)
Hello,
I'd like to present you my next plugin: My Achievements
It's actually one of the biggest and complex plugins I've ever made for MyBB.
What's My Achievements?
It's a MyBB plugin which allows you to setup various types of achievements for your board:
All achievements are automatically given via task except custom achievements. Some achievements like Thread Count and Post Count are given upon making a new thread/post and not via task.
This is actually a great feature in my opinion, no need to worry about awarding your members as it will do it for you!
Well, the best part is: Ranks.
Yes, My Achievements allows you to setup ranks based on the achievements users have received.
Each rank has a level and there can't be two ranks with the same level.
How do ranks work?
First you must setup some achievements.
Then go to the Ranks page in the Admin CP and add a new one. You'll find 4 text fields (name, description, level and icon) and 5 select boxes: Post Achievements, Thread Achievements, Activity Achievements, Custom Achievements and Points Achievements.
You can only pick one from the list of course. If users get those achievements, they'll be upgraded to that rank. It is not possible to downgrade to another rank.
However, you must be careful when setting up ranks and you must set them up correctly.
This might sound a bit complicated but it's not.
You can access the My Achievements page by going to /myachievements.php and you'll find a list of things you can do: List All Ranks, List All Achievements, Top X (you can set the number of users to show in the top), View User's Achievements - will prompt you to enter a username first.
Some achievements are also shown in profile and postbit, you can choose how many to show by changing the settings.
Anyway, the part that I found really hard to code was the task. It's a really complex task.
However, I had to focus on performance. Things are coded to be easily used by the task in order to not slow down things when running the task. However, due to the complexity of the task: it has to give achievements to users and check for rank upgrades - this process is rather intensive for big boards but I set a condition to just query users that have been active since the last time the task was run.
Note: those with big boards will experience a slow installation of the plugin because it adds a new field to the users table - threads number. However, this is a feature which saves some work to the task and instead of running lots of queries in the task to get threads number, it doesn't run any.
I'm almost done with it, I just need to find some time to finish it. Might happen during the next week or so.
I'll post some screenshots once I find time to take them
Thank you,
Pirata Nervo
Edit:
fixed a few typos
Edit:
Link to My Achievements:
http://forums.mybb-plugins.com/Thread-MyAchievements
I'd like to present you my next plugin: My Achievements
It's actually one of the biggest and complex plugins I've ever made for MyBB.
What's My Achievements?
It's a MyBB plugin which allows you to setup various types of achievements for your board:
- Post Count Achievements
- Thread Count Achievements
- Activity Achievements
- Points Achievements - Requires NewPoints - can be disabled
- Custom Achievements - Manually given by administrators
All achievements are automatically given via task except custom achievements. Some achievements like Thread Count and Post Count are given upon making a new thread/post and not via task.
This is actually a great feature in my opinion, no need to worry about awarding your members as it will do it for you!
Well, the best part is: Ranks.
Yes, My Achievements allows you to setup ranks based on the achievements users have received.
Each rank has a level and there can't be two ranks with the same level.
How do ranks work?
First you must setup some achievements.
Then go to the Ranks page in the Admin CP and add a new one. You'll find 4 text fields (name, description, level and icon) and 5 select boxes: Post Achievements, Thread Achievements, Activity Achievements, Custom Achievements and Points Achievements.
You can only pick one from the list of course. If users get those achievements, they'll be upgraded to that rank. It is not possible to downgrade to another rank.
However, you must be careful when setting up ranks and you must set them up correctly.
This might sound a bit complicated but it's not.
You can access the My Achievements page by going to /myachievements.php and you'll find a list of things you can do: List All Ranks, List All Achievements, Top X (you can set the number of users to show in the top), View User's Achievements - will prompt you to enter a username first.
Some achievements are also shown in profile and postbit, you can choose how many to show by changing the settings.
Anyway, the part that I found really hard to code was the task. It's a really complex task.
However, I had to focus on performance. Things are coded to be easily used by the task in order to not slow down things when running the task. However, due to the complexity of the task: it has to give achievements to users and check for rank upgrades - this process is rather intensive for big boards but I set a condition to just query users that have been active since the last time the task was run.
Note: those with big boards will experience a slow installation of the plugin because it adds a new field to the users table - threads number. However, this is a feature which saves some work to the task and instead of running lots of queries in the task to get threads number, it doesn't run any.
I'm almost done with it, I just need to find some time to finish it. Might happen during the next week or so.
I'll post some screenshots once I find time to take them

Thank you,
Pirata Nervo
Edit:
fixed a few typos
Edit:
Link to My Achievements:
http://forums.mybb-plugins.com/Thread-MyAchievements
All my plugins are available for free at MyBB Extend and on my GitHub. MyBB-Plugins.com has been closed and none of my plugins are officially maintained or supported.