Sky April 7, 2013 Share Sky Member April 7, 2013 (edited) Hi all So, this morning, I popped in to the GC server to play for a bit, and it was riddled with players who were both team killing and rushing. Back when I had time to run and maintain my own community, I developed a solution to quell rushing, permanently. And because I'm such a sharing, caring, thoughtful person, and realized that rushing is a rampant problem across multiple communities, I decided that sharing the solution was the best course of action. I know Jackie really doesn't like me (I used to come off as a bit of an weenie, but crasx can tell you that is never the intention; I get super excited, that's all) so he might completely avoid this topic, but... If you could thwart rushers, without having an admin present, with a plugin that is elegant, yet flexible, wouldn't you at the least want to take a peeksy-poo? So, totally simple explanation here. I wrote a ready up plugin a while a go that is similar to the one GC uses, it just lets people press '3' instead of having to type !r or !ready (and supporting any language, I found it was easier to get people to just hit the key) and these anti - rush pieces are optional modules that can be installed / uninstalled at any time. The info here is really just copied from the plugin page, but it beats anyone having to go to an external link to see it. I said to myself, "rushing is an issue, but sometimes, when your team is near the end safe room, some players like to open the door and just camp inside, while you get obliterated outside." So, I presented two solutions that can be used independently or combined. Rush Distance This module requires l4d2 direct. This module sets a maximum distance that players can travel ahead of their team. It also allows server owners to set how far behind their team a player can be before it teleports them forward. Only players who rush a significant distance ahead of their team will be punished. Stragglers will not be punished when teleported. Please keep in mind that the actual distance will differ based on the number of valid players. rum_warning_limit: Reaching this warning limit will result in punishment; the player will be killed. rum_incapacitated_ignore: Do we ignore incapacitated players in the team's average distance? rum_distance_ignore_teleport: Do we teleport players who are this far behind their team? rum_active_survivors_required: The number of active survivors required for calculations to be considered. You must upload the configs for each map that you want this plugin to be active on. I've compiled the stock maps, but you will need to add new configs for any custom maps. If the config isn't found, the module will simply not do anything on the given map. Please upload the configs to /sourcemod/configs/readyup/ Setting up the configs for each map is simple. Here's an example: "c1m2_streets" { "distance_notice" "0.1" "distance_warning" "0.15" "distance_ignore" "0.16" } Because the distance is calculated differently for maps that are longer or shorter than others, it was necessary to allow sever admins to modify the parameters for each action. An example here is 10% of c1m2_streets (the second map of dead center) requires running from the start of the map to the door into the building, but 10% of c2m5_concert is about 10 feet out of the safe room door. In the above example, if a player is 10% the distance of the map ahead of their team (that's everyones distance, excluding the said players calculated) they get a nice notice letting them know to stop rushing. If they continue forward, at 15%, they get teleported; and it can punish/slay players if they do it too many times, at the discretion of the server owner. Players who are 16% behind their team are teleported to their team, but aren't penalized; they'll receive a notice to return to their team as well, though. There are a few concerns that rise here, so I'm going to quell them, quickly. First, if you get smoked, jockeyed, or some other means of forced out of the legal distance range, the plugin will not penalize you as long as when you are released, you immediately make your way back to your team. If you attempt to continue moving forward, that's when it'll say "Alright, the player is now rushing, taking action." The only instance where you don't have a chance to return is if a tank punches you out of bounds, but realistically, if that punch sends you out, you were most likely beyond the notice distance anyway. If you respawn and you're behind or ahead of your team, again, it will allow you to catch up or return before taking action. Second, the.dude brought up a concern about incapacitated players, or if your team is dead and you want to bolt for it, for distance points. There's a server cvar that can be enabled that says "Hey, we don't want to calculate the teams distance with any players who are incapacitated," and then they aren't part of the equation. It also doesn't consider dead players. There's another server cvar that lets you decide how many "active" (that means alive, not dead) players must exist on the survivor team to even run calculations; so clearly, if there's less than a certain value, say, 3 (default), it's a safe bet that you don't want to run the calculations, because that generally means the two players would be bouncing back and forth, and you can't calculate if there's only one living player. Locked End of Map Saferoom This module closes and locks the end of map safe room door when the round begins. It opens automatically when all living survivors are within a set range. I designed it this way instead of assigning a player to hold a key because let's face it: some people might troll and refuse to open the door. With this method, there's no waiting for a player to open it or trying to figure out who has the key. rum_antirush_unlockrange: The range all living survivors must be in relation to the door for it to unlock. I've hidden the information about each module in a spoiler, so the post is easier to read. I really implore Jackie to take a look at this, and consider implementing it. The plugins anti-rushing modules are included in the zip file, with separate binaries .smx for each one. readyup w_Modules.zip Edited April 7, 2013 by Sky Quote Link to comment Share on other sites More sharing options...
Madvillain April 7, 2013 Share Madvillain Member April 7, 2013 Those are some handy tools Sky, I'm not sure if I would recognize L4D without people rushing way ahead or someone mindlessly running around in the back.. Quote Link to comment Share on other sites More sharing options...
Leonebluen April 7, 2013 Share Leonebluen Member April 7, 2013 I really like this idea, but I'd obviously defer to people who know the game better than myself in implementing it. However, the part I don't think should be implemented is teleporting people who fall too far behind. If that happened, there would be a whole host of other issues: respawning people at the end of the round via points would be awesome, people who get jockeyed back could be ignored by their team, etc. I like the teleporting rushers back part, but not the teleporting dead/vulnerable people forward part, basically. Regardless, kudos for sharing! Quote Link to comment Share on other sites More sharing options...
swatfishy April 7, 2013 Share swatfishy Member April 7, 2013 i think a voterush plugin would be excellent, similar to votekick but if we see unauthorized rushing we vote to tp back to the group. 1 Quote Link to comment Share on other sites More sharing options...
Leonebluen April 7, 2013 Share Leonebluen Member April 7, 2013 ^ That's a great idea. I like that idea. +1. Just so long as people don't abuse it to save teammates Quote Link to comment Share on other sites More sharing options...
Sky April 7, 2013 Author Share Sky Member April 7, 2013 the problem with a vote-anything is it requires everyone to stop playing to vote, and it can be abused. it's easier to just let the system automate itself (you can actually turn off the feature to teleport people in the back, you just set that value in the configs to be 1.0.) Quote Link to comment Share on other sites More sharing options...
swatfishy April 8, 2013 Share swatfishy Member April 8, 2013 well the thing about automating is that when we have the fairly common case of getting owned and telling the mains to run, theyre going to be tp'd back so we cant get as many points as we could have. i have no problem with quickly typing out some vote command, and the voting should be simple, just tell everyone on mic that this dude is rushing and needs to be tp'd back. automation is great but there are too many exceptions for it to cover. im not sure what you mean by it being abused, like the votekick we would have it be set to members only. of course if someone is respawned in the back or something it would be rather exploitative.. Quote Link to comment Share on other sites More sharing options...
VooDooPC April 8, 2013 Share VooDooPC Member April 8, 2013 Gosh, you guys really hate Russians. Quote Link to comment Share on other sites More sharing options...
Sky April 9, 2013 Author Share Sky Member April 9, 2013 I'm not sure why Jackie hasn't patched this already, but there are plugins that make it so the score is based on all players on the team, instead of the 4 on the score board. The way this plugin handles rushing is based on the number of players, it's weighed differently. If there are 10 people who are alive and not incapacitated, each person is weighed for 10%. If you have 4 people rushing forward, 40% of your teams distance is calculated from them; If there are only a few people left, and the majority starts booking it, they won't be penalized. This algorithm was developed on purpose, by design, to allow teams to make a final push when they're being whittled down. In regards to players in the back, as I stated before, you would simply set distance_ignore to 1.0 in each file and players in the back would never be teleported forward. However, if a player is greater than distance_ignore + 4% (0.04) The plugin assumes they meet special circumstances (such as respawning) and are not teleported forward for any reason. This pretty much prevents players from exploiting the system by waiting to respawn until their team is a solid distance forward. The question then becomes whether or not they'd be teleported forward as soon as they're within the distance_ignore + 4% range, and the answer is no. The teleportation would only occur if they're within distance_ignore and ergo are not too far back, and then happen to some how fall further back behind the team. This is the case if they are jockeyed, smoked, etc., backwards; The plugin notes that they were not teleported because of being ensnared and doesn't teleport them forward at any time. Also, as stated in the above, there's a variable that defines the number of players that must be active for the plugin to even consider distance; all jackie would effectively have to do is set that to a certain value, and if that value of players or less is alive (and not incapacitated) on the survivor team, you could rush all you want, whether alone or with your team, and never be teleported. Automated algorithms work, when they cover all of the bases, and fortunately, they've been covered here, although it was a bit of a pain to implement, because it really took a lot of experimentation. 1 Quote Link to comment Share on other sites More sharing options...
swatfishy April 9, 2013 Share swatfishy Member April 9, 2013 (edited) very cool, the plugin is much more complex than i thought it was, kudos to the dev. Edited April 9, 2013 by swatfishy Quote Link to comment Share on other sites More sharing options...
Sky April 9, 2013 Author Share Sky Member April 9, 2013 (edited) if you have suggestions on any improvements, I'd love to hear them Edited April 9, 2013 by Sky Quote Link to comment Share on other sites More sharing options...
tonerrrr April 9, 2013 Share tonerrrr Member April 9, 2013 Add in: if more than 6 or more people are dead then turn the plugin off. Quote Link to comment Share on other sites More sharing options...
Mercman April 9, 2013 Share Mercman GC Server Admin April 9, 2013 Add in: if more than 6 or more people are dead then turn the plugin off. Mercman agrees with this Quote Link to comment Share on other sites More sharing options...
TheDude April 9, 2013 Share TheDude Member April 9, 2013 Add in: if more than 6 or more people are dead then turn the plugin off. Mercman agrees with this I'm beginning to notice Mercman likes to talk about himself in the third person, doesn't he? 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.