[L4D] Achievement Notifier
6 Attachment(s)
Left 4 Dead Achievement Notifier
by Fexii Description Achievements can be frustrating to complete because many of them require you to finish the entire campaign before finding out whether or not you've succeeded. This plugin patches this by providing messages as soon as an infraction against achievement completion occurs. Current Achievements Tracked SAFETY FIRSTInstall Place "achievementnotifier.smx" in your left4dead/addons/sourcemod/plugins folder. Place "achievementnotifier.phrases.txt" in your left4dead/addons/sourcemod/translations folder. Usage The plugin is automatically enabled when the server starts a campaign mode map. Whenever an achievement is prevented, a message with details will appear to all players. Saying "!achievements" during the game will show which achievements have been prevented and which are still attainable. This is disabled during versus mode. sm_achievement_notify <0/1> - Toggles the plugin. Requires a map restart when changed. sm_achievement_notify_connect_message <0/1> - Display a message when the user connects that tells them about the "!achievements" command. Changelog Version 1.0 - Initial Release with Safety First, Stomach Upset, Untouchables - Fixed repeated hooks when the round starts - Now registers the command sm_achievements - Fixed leftover debug code that caused chat to appear whenever a player is hurt Notes Please let me know about bugs in this thread. The achievements system is somewhat buggy to begin with, but I'll do my best to model this plugin after the actual achievement requirements based on feedback. I plan to add more achievements over time, starting with the more frustrating ones first. |
Re: [L4D] Achievement Notifier
This is very helpful. Good job.
One thing to note after a quick look. It looks like you hook events in round start and unhook when map ends... If round start occurs more than once in a map you will stack event hooks. Not a good thing. |
Re: [L4D] Achievement Notifier
Quote:
Edit: I added a one-liner since I already had the boolean sitting around whenever I hook. Hopefully that fixes it. |
Re: [L4D] Achievement Notifier
Further suggestions. I always wonder why people hook the say command when all they want is the chat trigger. Sourcemod does all this for you. Creating your own console command is the way to go.
Replace: PHP Code:
PHP Code:
|
Re: [L4D] Achievement Notifier
Quote:
Posting update with the new console command hook. |
Re: [L4D] Achievement Notifier
One last suggestion. As an author I always like to track how many servers use my plugins. You can do this with a public cvar.
PHP Code:
A public cvar is not required, thou i think it should be :), to be approved. Just a suggestion. I will wait a bit to approve this in case you decide to do it, as if you do it later it has to go thru the approval process again. |
Re: [L4D] Achievement Notifier
Quote:
Now that "public cvar" field makes much more sense! |
Re: [L4D] Achievement Notifier
This is a brilliant idea! I am deffinatly going to use this on my server, thank you Fexii :D
+1 |
Re: [L4D] Achievement Notifier
Any work going on to get this to monitor the "Nothing Special" achievement?
|
Re: [L4D] Achievement Notifier
Quote:
I'm having trouble detecting players getting hurt by boomers by the boomer sliming the player then having other zombies attack her. It counts against the Nothing Special achievement, but I don't see a straightforward way to detect it using Game Events. If any other SourceMod coders have advice I'd appreciate it :mrgreen: |
Re: [L4D] Achievement Notifier
I think the events you are looking for are:
player_now_it (got slimed) player_no_longer_it (no longer slimed) If they get damaged by infected during that time wouldn't that do it? |
Re: [L4D] Achievement Notifier
Very cool. Looking forward to an update. I hope the response above helps. Thanks for the plugin!!!
|
Re: [L4D] Achievement Notifier
For some reason, when the server goes to the next map in a campaign, it's killing the achievements. Anyone have this problem before?
|
Re: [L4D] Achievement Notifier
Any news on more achievements?
|
Re: [L4D] Achievement Notifier
Hi everyone i have just rented my 1st L4D server and like the sounds of this plugin when i went to my FTP in my L4D game folder there was no addons folder so i do i just add the folders needed to run this plugin
L4D/addons/sourcemod/plugins/ then add the file to this and the same for the translation ? I am new to plugins so i am very sorry to be such a newbie many thanks in advance ApocalypseDan :oops: |
Re: [L4D] Achievement Notifier
Quote:
http://wiki.alliedmods.net/Installing_Metamod:Source http://wiki.alliedmods.net/Installing_SourceMod Make sure you use SM 1.2, this version supports L4D. http://www.sourcemod.net/snapshots-1.2.php |
Re: [L4D] Achievement Notifier
Quote:
Code wise though the console command method is a lot more elegant. |
Re: [L4D] Achievement Notifier
Hooking a console command allows you to call it via chat trigger (in this case you would still do !achievements in chat).
|
Re: [L4D] Achievement Notifier
Any update as to how the "Nothing Special" achievement is being added to the plugin? To be honest, I wouldn't mind using a copy that works with everything but the boomer vomit for testing.
|
Re: [L4D] Achievement Notifier
Hi Fexii, hi guys
What an awsome plugin you've made here :) I have one little problem with it tho. I have exactly the same problem as Zigian described a few posts earlier. More precisely, i tried easy and normal no mercy campain and each time we moved on to the second round, Safety First and Stomach Upset were prevented for no reason (we were not hit by boomers and didn't make any team attack during first round). I'm running the latest 1.2.0.2534 sourcemod snapshot with the latest metamod 1.7.0 version and i have only three plugins running (including yours) * Achievement Notifier (http://forums.alliedmods.net/showthread.php?p=727548) * Voting Manager (http://forums.alliedmods.net/showthread.php?p=718773) * Unscrambler (http://forums.alliedmods.net/showthread.php?p=730278) If any of you guys have a thought on that it's very welcome. |
Re: [L4D] Achievement Notifier
I had a closer look to your code and i think this fonction is not working :
PHP Code:
The thing is i dunno if it's caused by the sourcemod 1.2.0.2534 version or if it's not the proper function called ? |
Re: [L4D] Achievement Notifier
so not all the achievement can be achieved by this.
|
Re: [L4D] Achievement Notifier
Currently, it is designed to notify the players running a campaign regarding which achievements are currently possible based on their actions to that point.
However, this version only notifies players about the following achievement's status: Safety First Untouchables Stomach Upset |
Re: [L4D] Achievement Notifier
Quote:
|
Re: [L4D] Achievement Notifier
Yes, it is similar to the TF2's HUD in the sense that you can see which of the selected achievements are possible at any moment during a campaign on a server running this plug-in.
Unfortunately it doesn't keep the cheev status on the screen at all times. It notifies you when a cheev is no longer possible, and when manually called up using the "!achievements" say command. |
Re: [L4D] Achievement Notifier
Just to let you know When you enter a safe room the Safety first achievment becomes unobtainable but it dose not mean any one has shot any one.
Great pluging though many thanks |
Re: [L4D] Achievement Notifier
Quote:
|
Re: [L4D] Achievement Notifier
1 Attachment(s)
I found out what was the problem. Each new round the plugin is executed 2 times (certainly due to L4D itself). The direct consequence to this is that instead of being TRUE, isMapTransition is FALSE.
The solution i found is to use an integer counter rather than a boolean. I've attached my corrected plugin. It works :) |
Re: [L4D] Achievement Notifier
Quote:
I can't comment on the other changes, I'll take your word that they work :wink: Fexii: we want Nothing Special! Please hurry :mrgreen: |
Re: [L4D] Achievement Notifier
1 Attachment(s)
Quote:
Seems to work from the testing I've done so far, hopefully somebody will find this useful. |
Re: [L4D] Achievement Notifier
1 Attachment(s)
I have independantly written an update to this mod which includes Nothing Special.
Compared to the other versions of this mod: * Being incapacitated now disqualifies you for achievements correctly * Nothing Special is not disqualified if you are hit while someone else has vomit on them * Voting to restart the campaign will not reset the achievements (until the new round starts) * Performance improvements I have extensively tested my mod. I don't know if witch damage counts towards disqualification of Nothing Special. I'm going to go with random Gamespot forum poster and say it doesn't, but I've added the code anyway, so its a simple uncomment to enable it. Thanks to everyone else who worked on this mod, so I didn't have to learn SourceMod from scratch. |
Re: [L4D] Achievement Notifier
this looks really great,
and if i understand it good, then i can join a randon server and this will just work? |
Re: [L4D] Achievement Notifier
I'm running ZNemesis' mod of this plugin, with the witch code uncommented (because I was always under the impression that witch damage counted as ruining the Nothing Special achievement), and it seems to crash the server on map change sometimes.
Any ideas? |
Re: [L4D] Achievement Notifier
This is the worst plugin ever. I love the idea, but when implemented on a 1.0.1.3 server it cost me hours of game time. Every version in this thread causes the server to crash at one map change or another, nullifying entire campaign achievements. The ones that claim to track Safety First correctly in fact just track it correctly until the 3rd level, where they break too. The Nothing Special mods crash on the second level every time.
I'm a developer myself so I understand not having time to dedicate, especially if you already have the achievement. This is mostly a warning to those who want to use this to help them along in their achievements - DONT! |
Re: [L4D] Achievement Notifier
It doesn't crash for me. And it's running on 120 servers, so you may be blaming the wrong plugin.
|
Re: [L4D] Achievement Notifier
1 Attachment(s)
I am attempting to replicate the crashes people are experiencing. So far, I have gotten it to crash under Vista x64, I have no idea why it is different to XP x86, where it doesn't crash. Also when a client connects to a dedicated server on the same computer, it can crash. I don't have a Linux machine to test the dedicated server there.
In the meantime, here is a small update:
|
Re: [L4D] Achievement Notifier
Alright I have questions for everyone and the two below.
To everyone: I used this plugin on a server not my own months ago. We tried to get barf bagged. Now obviously if you get barfed and you all die it resets the achievement counter in VALVe's achievement system. This plugin didn't. When we got barfed, we purposely wiped and it still said we were ineligible, it did not reset. So my question is is this fixed in the OP's or anyone else's (4 other versions) posted? To you two: Quote:
Also, for the witch I would try to register from when the witch activates to when a player incaps (teammates save him) or dies (if the player was B&W). If the witch incaps a player (player_hurt has the source of the damage does it not?), Nothing Special is ineligible. If the witch kills someone (player_death) then Noting Special is ineligible. Quote:
GameSpot is a horrible source, witches and tanks do indeed nullify Nothing Special. Quote:
|
Re: [L4D] Achievement Notifier
I use this plugin on my server, works well.
Thanks Fexii and ZNemesis. Quote:
Use the report function in the console when playing to see for yourself. |
All times are GMT -4. The time now is 17:30. |
Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.