AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Plugins (https://forums.alliedmods.net/forumdisplay.php?f=108)
-   -   [ANY] MechaWare: Custom Achievements 2.0! (0.6) (https://forums.alliedmods.net/showthread.php?t=126779)

Mecha the Slag 05-13-2010 12:36

[ANY] MechaWare: Custom Achievements 2.0! (0.6)
 
4 Attachment(s)
Requires SDKHooks

[IMG]http://img39.**************/img39/1378/allpurposeimagez.png[/IMG]

OPTIMISED
The code is severely up optimised to be faster, simpler and more extensive than ever. No more than 3 sql tables is needed, no matter the number of achievements!

SUPPORTS ALL SOURCE GAMES
Due to the modularity it is now possible to add achievements to any source game!

MODULAR
The plugin has been build with modularity in mind. It's now incredibly easy to add new features and new source game support.

UNLIMITED
Unlike the previous version, there is absolutely no limit on tasks (as opposed to the previous limit of 5).

CREATING YOUR OWN TASKS IS EASY
Tasks now work as an event system where you can easily create your own events and assign tasks to those! It's easy!

[IMG]http://img707.**************/img707/7725/allpurposeimage.png[/IMG]
mc_refresh - Refreshes server achievement cache.
mc_version - Current plugin version.
mc_info (1) - Upon unlock, explain the achievement.

Type !ach / !achievements ingame to see achievement progress!

[IMG]http://img571.**************/img571/7725/allpurposeimage.png[/IMG]
If you add more events, expire values or requirements, do not hesitate to post them here so I can add them :)
If you're confused about anything, feel free to post too!

UPDATES
0.6
  • Fixed a bug where the database would not be updated on map change.
  • Made client achievement progress only be submitted on disconnect or map change.
  • Fixed a bug where some achievements wouldn't trigger / be triggered by other achievements
0.4
  • Fixed a bug where a client's achievements cache wasn't properly reset upon leaving
  • Changed to use SteamID rather than ClientID
  • Added fowards to allow other plugins to trigger events!
0.32
  • Fixed medic_uber having the wrong target
0.3
  • Added support for hurt in L4D2
  • Fixed SteamID issue in L4D2
0.22
  • Fixed achievements not sometimes triggering when another client had the same achievement unlocked
  • Added "x has achievement with id y" (+ negative)
0.21
  • Changed expire from int to text. Now supports multiple values (x|y|z...)
  • Fixed requirements being... majorly broken due to the optimisation :P
  • Fixed some achievements not activating proper
0.2
  • Added BETA web interface
  • "x is class y" now works with survivors (zoey, nick, ...)
  • Extended tf2 support
  • Added requirement optimisation by Thraka
  • Added "game" column, which can make achievements specific to a source game.
0.12
  • Extended L4D2 events
  • Extended requirements
  • Fixed bugs that would disallow the plugin from running in L4D2
0.11
  • Extended TF2 events
  • Extended requirements
0.10
  • Release

Download Web Interface (0.6)

Mecha the Slag 05-13-2010 12:40

Re: [ANY] MechaWare: Custom Achievements 2.0!
 
[IMG]http://img263.**************/img263/7725/allpurposeimage.png[/IMG]

Each achievement has tasks that all need to be activated before the achievement is triggered!
Example:
task 1: Kill
task 2: Chat

if you kill someone and then chat, you unlock the achievement!

With requirements, you can be more specific. Example:

task 1: kill
Requirement: Victim's class must be spy
task 2: Chat
Requirement: Chat must contain "haha"

if the killer kills a spy and then types "haha" in chat, the achievement is unlocked!

[IMG]http://img185.**************/img185/25/allpurposeimagey.png[/IMG]
In order to host your own achievements you will need an SQL server.

Code:

        "mw_achievements_post"
        {
                "driver"                        "mysql"
                "host"                                "siteground133.com"
                "database"                        "mechawar_achievements"
                "user"                                "mechawar_ach"
                "pass"                                "ach123"
                //"timeout"                        "0"
                //"port"                        "0"
        }
        "mw_achievements_get"
        {
                "driver"                        "mysql"
                "host"                                "siteground133.com"
                "database"                        "mechawar_achievements"
                "user"                                "mechawar_ach"
                "pass"                                "ach123"
                //"timeout"                        "0"
                //"port"                        "0"
        }

I HAVE AN SQL SERVER
1. Use the above template and change it to your own host. POST is where the user's achievement data is stored and GET is the server achievement data. They are separated for convenience.
2. Launch the following in your sql server. Make changes if you wish, but none is required.
Quote:

CREATE TABLE IF NOT EXISTS `mw_achievements_get_ach` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
`desc` text NOT NULL,
`triggers` int(11) NOT NULL default '1',
`blocks` text NOT NULL,
`game` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;
CREATE TABLE IF NOT EXISTS `mw_achievements_get_blocks` (
`id` int(11) NOT NULL auto_increment,
`event` varchar(255) NOT NULL,
`target` int(11) NOT NULL default '0',
`triggers` int(11) NOT NULL default '1',
`add` int(11) NOT NULL default '0',
`requirement` text NOT NULL,
`expire` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;
CREATE TABLE IF NOT EXISTS `mw_achievements_post_ach` (
`id` varchar(255) NOT NULL COMMENT '(steamid_achid)',
`achid` int(11) NOT NULL,
`steamid` varchar(255) NOT NULL,
`triggers` int(11) NOT NULL default '0',
`complete` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
3. Final step is to Download the web interface.

I DON'T HAVE AN SQL SERVER
1. Even though you don't have an SQL server you can still use the achievements created by MechaWare for the MechaWare servers.
Simply add the above template to your databases.cfg and you should be ready to go!

Afronanny 05-13-2010 13:24

Re: [ANY] MechaWare: Custom Achievements 2.0!
 
Impressive. The old custom achievements spewed errors constantly, I'll try it out later.

SuperShadow 05-13-2010 13:52

Re: [ANY] MechaWare: Custom Achievements 2.0!
 
I look forward to testing this out in the next couple of days, thanks for the effort Mecha!

DrWagstaff 05-14-2010 04:13

Re: [ANY] MechaWare: Custom Achievements 2.0!
 
Goddamnit, I just installed the old one. :( Does this one have support for more conditions? With the old one I couldn't do achievements like "Kill a heavy while he's eating his sandvich" and "Reflect a reflect and kill the originator".

Mecha the Slag 05-14-2010 04:35

Re: [ANY] MechaWare: Custom Achievements 2.0!
 
Quote:

Originally Posted by DrWagstaff (Post 1179706)
Goddamnit, I just installed the old one. :( Does this one have support for more conditions? With the old one I couldn't do achievements like "Kill a heavy while he's eating his sandvich" and "Reflect a reflect and kill the originator".

yes it does. Although in this one it's called requirements. If you need a requirement but it isn't implemented yet, request it and I'll add it right away!

DrWagstaff 05-14-2010 04:38

Re: [ANY] MechaWare: Custom Achievements 2.0!
 
Sigh, I guess I'll have to move to yours! Progress be damned! Thanks for your fine work. Is there any way you could make a script to convert the old achievements/player data in to your system? I have many many achievements set up and I don't want to do them all again (even though I will, if I have to). Thanks again for your time and effort.

EDIT: Also, just wondering (I could be tired and just not seeing it) does your plugin have an easy creator for achievements? I'd rather like not to go cfg diving to make achievements. And the contribute feature of the other one is quite nice.

Mecha the Slag 05-14-2010 04:41

Re: [ANY] MechaWare: Custom Achievements 2.0!
 
The system is relatively the same (I also made the other one). Name, description and triggers is the same (triggers being called amount in the old) but the other values are completely different with a completely different meaning and setup. You could recreate them but I doubt there's an easy way to directly convert them.

If you need any help recreating an achievement do not hesitate to post here as it'll help the development of the plugin :D

DrWagstaff 05-14-2010 04:58

Re: [ANY] MechaWare: Custom Achievements 2.0!
 
I must be confused, is there a missing link or something? I was hoping there was a website based back end for it like the other one. I'll definitely move to this one once editing like that is supported.

Mecha the Slag 05-14-2010 05:07

Re: [ANY] MechaWare: Custom Achievements 2.0!
 
It does not feature a website interface... yet

its being worked on though!


All times are GMT -4. The time now is 20:59.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.