ImportBot Posted December 3, 2013 Author Share Posted December 3, 2013 Originally Posted by PapaCharlie9*: I tried to change double OS_P = Math.Round((player.ScoreObjective / total) * 100, 2); to double OS_P = Math.Round((player.ScoreSquad / total) * 100, 2); but: 15:11:41 03] [insane Limits] Thread(settings): ERROR: (CS0117, line: 0, column: 0): PRoConEvents.PlayerInfoInterface enthält keine Definition für ScoreSquad. That's because there is no player.ScoreSquad. Here are all the Battlelog score stats you can use with player. Code: double ScoreTeam { get; } double ScoreCombat{ get; } double ScoreVehicle{ get; } double ScoreObjective { get; } * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 3, 2013 Author Share Posted December 3, 2013 Originally Posted by Dudenell*: Um, as far as I can tell from that code, !admin with no reason is the ONLY command that works. I don't see any code that handles a reason. Maybe there is more going on in your first_check than the comment suggests?Yeah there isn't any code that handles the reason at the moment, I guess I was looking for ideas on how to deal with the string. Currently what happens is it goes through the list of players looking for an admin, and based on the number of activations (so they don't spam us) it will only send one tweet per round per player. Here's the part of the script that sends the message we are looking for Code: plugin.Tweet(player.Name + msg2 + player.LastChat);I guess I'm lost where Code: if (string == !admin){ plugin.ServerCommand("admin.say" , (player.Name + " The correct format for calling an admin is !admin <reason>"), "player" , player.Name ); }But if we did something like this, then wouldn't it mess with the amount of times it was activated (we also check, so they don't send too many messages). Maybe it would be best to again split this into two plugins so that one checks to see if they typed just !admin and the other checks to see if they type !admin message (for activations)? Just trying to get ideas on how to handle it * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 4, 2013 Author Share Posted December 4, 2013 Originally Posted by PapaCharlie9*: Yeah there isn't any code that handles the reason at the moment, I guess I was looking for ideas on how to deal with the string. Currently what happens is it goes through the list of players looking for an admin, and based on the number of activations (so they don't spam us) it will only send one tweet per round per player. Here's the part of the script that sends the message we are looking for Code: plugin.Tweet(player.Name + msg2 + player.LastChat);I guess I'm lost where Code: if (string == !admin){ plugin.ServerCommand("admin.say" , (player.Name + " The correct format for calling an admin is !admin <reason>"), "player" , player.Name ); }But if we did something like this, then wouldn't it mess with the amount of times it was activated (we also check, so they don't send too many messages). Maybe it would be best to again split this into two plugins so that one checks to see if they typed just !admin and the other checks to see if they type !admin message (for activations)? Just trying to get ideas on how to handle it Let's take a step back. Forget about the existing code, what is it you are trying to accomplish? It sounds like: * Anyone can type !admin * For each admin that is a current player, a tweet with the is sent to them * Only allow a random player to use the !admin command a certain number of times (per round? total_) * If !admin without a reason is typed, post an error message in chat Anything else? If that's what you are trying to do, a single limit is more than sufficient. first_check should match the command, just like you have. second_check should do this, in outline: 1) Use a second Regex.Match to get the reason (see below). 2) If there is no reason, post the error message and return false. 3) Now check the activation count. If it is higher than max, return false (or maybe post an error message just to the player and return false). 4) If you get this far, its a legit command, so do the foreach loop and tweets, just like you already have Make sense? EDIT: I forgot the new Regex: Code: Match m = Regex.Match(player.LastChat, @"^\s*!admin\s+([^\s].*)$", RegexOptions.IgnoreCase); String reason = String.Empty; if (m.Success) reason = m.Groups[1].Value; // This is the reason, captured by ([^\s].*)$ if (reason == String.Empty) { // then post the syntax error message and return false ... } * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 4, 2013 Author Share Posted December 4, 2013 Originally Posted by dflynn*: can someone help me with this limit.. I'm getting a couple of compile errors both errors say pRoConEvents.PlayerinfoInterface does not contain a definition for 'name' I pretty much followed the example but added the BF4 pistols and added melee and Knife the rest of it is letter for letter ! Regex.Match(kill.Weapon, @"(M1911|M9|M93R|G17|M44|P226|FN57|QSZ-92|CZ-75|MP412REX|MP443|Glock|Melee|Knife)", RegexOptions.IgnoreCase).Success double count = limit.Activations (player.name) ; if (count == 1) plugin.SendGlobalMessage (plugin.R ("%p_n%, this is a pistol and knife only server, do not use %w_n% again! Next time kick") ) ; else if (count > 1) plugin.KickPlayerWithMessage (player.name, plugin.R ("%p_n%, kicked you for using %w_n% on pistol and knife only server") ) ; return false; * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 4, 2013 Author Share Posted December 4, 2013 Originally Posted by Dudenell*: Let's take a step back. Forget about the existing code, what is it you are trying to accomplish? It sounds like: * Anyone can type !admin * For each admin that is a current player, a tweet with the is sent to them * Only allow a random player to use the !admin command a certain number of times (per round? total_) * If !admin without a reason is typed, post an error message in chat Anyone can type !admin or !admin To call an admin (tweet the message) it must be in the format !admin If an admin types !admin, it will say that "XXX is a current admin!" to the whole server (hence the reason for two limits) If someone types !admin or !admin and an admin or admins are present on the server, it will list their names and tell the whole server If the player is not an admin, and they type !admin without they are given an error message and it doesn't count as an activation If the player is not an admin, they are only allowed 1 tweet (or admin call per round), currently based on activations Make sense?It does, the only thing that I'm a little confused about past this point is the activation count, for example if a player got the !admin wrong, wouldn't it still count as 1 activation? * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 4, 2013 Author Share Posted December 4, 2013 Originally Posted by Rucki*: Hi, That's because there is no player.ScoreSquad.thank you! Another request: ( Regex.Match(kill.Weapon, "(U_Claymore|U_Claymore_Recon)").Success ) If this limit is activated >1 from the same player in one round: Proconchat: plugin.PRoConChat: VictimPlayer found 2/3/4..... Claymores in this round! plugin.ServerCommand("admin.say": VictimPlayer found 2/3/4..... Claymores in this round! Thank you! Rucki * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 5, 2013 Author Share Posted December 5, 2013 Originally Posted by PapaCharlie9*: can someone help me with this limit.. I'm getting a couple of compile errors both errors say pRoConEvents.PlayerinfoInterface does not contain a definition for 'name' I pretty much followed the example but added the BF4 pistols and added melee and Knife the rest of it is letter for letterCode is detail-oriented. Details matter. You get an error for player.name because it should be player.Name, that is, the case counts. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 5, 2013 Author Share Posted December 5, 2013 Originally Posted by PapaCharlie9*: It does, the only thing that I'm a little confused about past this point is the activation count, for example if a player got the !admin wrong, wouldn't it still count as 1 activation?Yes, you are right, I oversimplified. We need to do some additional checking in first_check for your other cases. In first_check, you need to know if !admin by itself should trigger an activation or not. If the player is an admin, you don't want to restrict by activations, but that's fine, you can adjust for that in second_check. You only need activation counting for the non-admin player, and even then, only if the type !admin correctly. So basically first_check should handle all of the "player is an admin" cases and also the "player is not an admin and only typed !admin" case. You can do that entirely in first_check code. That means second_check just has to handle the "player correctly typed !admin " cases, ignoring the activation count if the player is an admin. Still one limit, just a much more complicated first_check Code. Annotating your list with which check does the work: * Anyone can type !admin or !admin (both first and second) * To call an admin (tweet the message) it must be in the format !admin (both first and second, mostly second) * If an admin types !admin, it will say that "XXX is a current admin!" to the whole server (hence the reason for two limits) (first only, to avoid activation counting and error messaging) * If someone types !admin or !admin and an admin or admins are present on the server, it will list their names and tell the whole server (contradicts the next bullet_) * If the player is not an admin, and they type !admin without they are given an error message and it doesn't count as an activation (first only) * If the player is not an admin, they are only allowed 1 tweet (or admin call per round), currently based on activations (first and second, mostly second) EDIT: You can think of it this way. first_check and second_check are like two separate limits. first_check can't do any activation counting, so you put all the code that doesn't care about activation counting in first_check. second_check does care about activation counting, but you can conditionally ignore the count if you want to. While separate, they do have a dependency. Whatever bool value first_check returns controls whether or not second_check runs and gets an activation count. You are completely in control of when that matters and when that doesn't, though. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 5, 2013 Author Share Posted December 5, 2013 Originally Posted by dflynn*: Code is detail-oriented. Details matter. You get an error for player.name because it should be player.Name, that is, the case counts.Thanks! I should've caught that myself.. On a side note I've been trying to change the kick to a kill.. but I keep getting a PRoConEvents.PluginInterface does not contain a definition for KillPlayerWithMessage (I'm not a code writer so sorry if I'm asking stupid questions, just trying to make the best of the plugin) below is what I tried: double count = limit.Activations (player.Name) ; if (count == 1) plugin.SendGlobalMessage (plugin.R ("%p_n%, this is a pistol and knife only server, do not use %w_n% again! Next time kill then kick") ) ; if (count > 1) plugin.KillPlayerWithMessage (player.Name, plugin.R ("%p_n%, killed you for using %w_n% on pistol and knife only server") ) ; else if (count > 2) plugin.KickPlayerWithMessage (player.Name, plugin.R ("%p_n%, kicked you for using %w_n% on pistol and knife only server") ) ; return false; Thanks Dflynn * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 5, 2013 Author Share Posted December 5, 2013 Originally Posted by PapaCharlie9*: Thanks! I should've caught that myself.. On a side note I've been trying to change the kick to a kill.. but I keep getting a PRoConEvents.PluginInterface does not contain a definition for KillPlayerWithMessage That might be because plugin doesn't contain a definition of KillPlayerWithMessage. All of the functions, with their correct spellings, are in post #1 of the plugin thread: showthread....0-17-NOV-2013)* The same documentation is in the Details tab of the plugin itself in Procon. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 7, 2013 Author Share Posted December 7, 2013 Originally Posted by Lannovar*: Hey Papa, we had a bit of brainstorm and here's the product. Automated vars.preset on server restart. The problem You know when a server crashes and resets to startup.txt? Even with vars.preset hardcore, it still comes out as custom until either you send it manually in the console or a plugin such as simple command does it for you on interval. During that time when it is custom, many people who crashed and want to rejoin, may not realize the server is up since it's gone from their filters. So how about we speed the process up and automate it? Solution We have been trying to find the best way of evaluating when a restart has happened and use that as a trigger point for a insane limit script to send the vars.preset command. I recall reading that insane limit can actually evaluate which map (from map index) it is currently on? If so, can we initate a vars.preset hardcore (or normal) command X seconds after it detects map #1 in the rotation? We can't use server uptime (Insane limit doesn't read that I think_). Neither player join or round start since that hinges on people actually seeing the server, which they won't if it is custom. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 7, 2013 Author Share Posted December 7, 2013 Originally Posted by L1ndsayLohan*: Hey, 1st off I'm new to this whole server stuff. Okay, so I need help with "No Explosives" plugin BF4. Here's what I've done so far; I've obviously done something wrong (it's not working), but i can't seem to know what. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 8, 2013 Author Share Posted December 8, 2013 Originally Posted by PapaCharlie9*: Hey Papa, we had a bit of brainstorm and here's the product. Automated vars.preset on server restart. The problem You know when a server crashes and resets to startup.txt? Even with vars.preset hardcore, it still comes out as custom until either you send it manually in the console or a plugin such as simple command does it for you on interval. During that time when it is custom, many people who crashed and want to rejoin, may not realize the server is up since it's gone from their filters. So how about we speed the process up and automate it? Solution We have been trying to find the best way of evaluating when a restart has happened and use that as a trigger point for a insane limit script to send the vars.preset command. I recall reading that insane limit can actually evaluate which map (from map index) it is currently on? If so, can we initate a vars.preset hardcore (or normal) command X seconds after it detects map #1 in the rotation? We can't use server uptime (Insane limit doesn't read that I think_). Neither player join or round start since that hinges on people actually seeing the server, which they won't if it is custom. Sure, you can use detection of the Index 0 map, but it would be good to ALSO check game server uptime with server.TimeUp. Store the last known good time in a plugin.Data.setDouble variable and compare it on each interval. If the new server.TimeUp is less than the stored value, you know you restarted. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 8, 2013 Author Share Posted December 8, 2013 Originally Posted by PapaCharlie9*: Hey, 1st off I'm new to this whole server stuff. Okay, so I need help with "No Explosives" plugin BF4. Here's what I've done so far; I've obviously done something wrong (it's not working), but i can't seem to know what. Just a misunderstanding. If a post says "kick_mesage =", it means, fill in the form with the specified text, don't literally type kick_message =. You see that you have a limit_1_kick_message text entry? Just put the text in there Code: No M320/RPG/SMAW! Connect again and don't use this weapon!Each one is a separate setting. So say_message = means that you should have a limit_1_say_message setting to fill in. I don't see it, so maybe you forgot to add it to the Action? The Action is a list. BTW, you weapon names are spelt wrong for BF4. The correct weapon names are in Procon/Configs/BF4.defs. The first_check expression should be: Code: (kill.Weapon.StartsWith("U_M320") || kill.Weapon.Equals("U_RPG7") || kill.Weapon.Equals("U_SMAW"))I changed the M320 to .StartsWith, because as you can see in BF4.defs, there are several M320 weapon codes. You can't detect the M224 mortar, unfortunately, so I removed it. Finally, you should set your second_check to Disabled. Looks like you have an empty Expression there. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 8, 2013 Author Share Posted December 8, 2013 Originally Posted by pharbehind*: Hey PC, I need something slightly custom, but related to your Presetter limit. First, here's my problem: I want a Hardcore server that has 200% tickets no matter the player count, but also shows the Minimap between 48-64 players. I understand that the server preset must remain "Custom" during the times that the Minimap should be active, and that's fine. 0-47 players though, it should be default hardcore preset with minimap off. You directed me to the Ticket Booster and Preset insane limit. If I'm understanding correctly, I can copy the Ticket Booster verbatim, but I'll need to add an expression to Step 1 of Preset that will determine player count and when to activate the preset. Then the 2nd check will be the code you posted. Is that correct? If so, what expression should I use to say "only turn the preset to hardcore if less than 48 players"? Thanks a ton. EDIT Nevermind! falcon's latest UMM plugin gives us the flexibility we need for these situations! * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 8, 2013 Author Share Posted December 8, 2013 Originally Posted by Wiggles*: Hi I was trying to make a limit that kicks for seirtan word use. I used micoverys version of "bad word kicker" myrcon.net/...insane-limits-examples#entry18424 and just removed the part about sending a message to everybody Code: plugin.SendGlobalMessage(plugin.R("Kicking %p_n% for profanity!"));however, it doesnt show to the kicked player a message why they was kicked. also, how do you make it understand more versions of a word? ive seen it before but i cant find it again (ie noob, n00b, nooooob, nub and such)(im not kicking for that, just made it easier to explain) this is for bf4 with version 0.9.14.0 and 1.4.1.3 (R14) * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 8, 2013 Author Share Posted December 8, 2013 Originally Posted by PapaCharlie9*: however, it doesnt show to the kicked player a message why they was kicked.That is (or was? might alredy be fixed) a bug in the Battlelog browser plugin. It's true for all kicks and bans, not just this one. Nothing we can do about it until the browser plugin is fixed. also, how do you make it understand more versions of a word? ive seen it before but i cant find it again (ie noob, n00b, nooooob, nub and such)(im not kicking for that, just made it easier to explain)Search for bad_words in this thread and in Insane Examples thread. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 9, 2013 Author Share Posted December 9, 2013 Originally Posted by bahtre*: Hey Papa, what I'm doing wrong? Please help to improve the code for no explosives server. It's just kicking at 1st time and at 2nd and after too. I would like it to KICK after 1st kill, BAN for 2 days after 2nd, and Ban Permanently after 3rd if it is possible. Limit = OnKill, Action = None First_check to this Expression: Code: Regex.Match(kill.Weapon, @"(U_M320_HE|U_M320_LVG|U_FGM148|U_RPG7|U_SMAW|U_SRAW|U_XM25|U_Grenade_RGO|U_M67|U_V40|U_M34)", RegexOptions.IgnoreCase).SuccessSecond_check to this Code: Code: if (limit.Data.issetBool(player.Name)) { plugin.SendGlobalMessage(plugin.R("%p_n% has been banned for using %w_n% FOREVER!")); plugin.PBBanPlayerWithMessage(PBBanDuration.Permanent, player.Name, 0, plugin.R("%p_n% you have been banned forever for using %w_n%")); limit.Data.unsetBool(player.Name); } int count = (int) limit.Activations(player.Name); if (count == 1) { plugin.SendGlobalMessage(plugin.R("%p_n% has been kicked for using %w_n%")); plugin.KickPlayerWithMessage(player.Name, plugin.R("%p_n% you have been kicked for using %w_n%")); } else if (count == 2) { plugin.SendGlobalMessage(plugin.R("%p_n% has been banned for using %w_n%, after a kick!")); plugin.PBBanPlayerWithMessage(PBBanDuration.Temporary, player.Name, 2880, plugin.R("%p_n% you have been banned for 2 days for using %w_n%")); limit.Data.unsetBool(player.Name); if (!limit.Data.issetBool(player.Name)) limit.Data.setBool(player.Name, true); } * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 9, 2013 Author Share Posted December 9, 2013 Originally Posted by PapaCharlie9*: Hey Papa, what I'm doing wrong? Please help to improve the code for no explosives server. It's just kicking at 1st time and at 2nd and after too. I would like it to KICK after 1st kill, BAN for 2 days after 2nd, and Ban Permanently after 3rd if it is possible. Limit = OnKill, Action = None First_check to this Expression: Code: Regex.Match(kill.Weapon, @"(U_M320_HE|U_M320_LVG|U_FGM148|U_RPG7|U_SMAW|U_SRAW|U_XM25|U_Grenade_RGO|U_M67|U_V40|U_M34)", RegexOptions.IgnoreCase).SuccessSecond_check to this Code: Code: if (limit.Data.issetBool(player.Name)) { plugin.SendGlobalMessage(plugin.R("%p_n% has been banned for using %w_n% FOREVER!")); plugin.PBBanPlayerWithMessage(PBBanDuration.Permanent, player.Name, 0, plugin.R("%p_n% you have been banned forever for using %w_n%")); limit.Data.unsetBool(player.Name); } int count = (int) limit.Activations(player.Name); if (count == 1) { plugin.SendGlobalMessage(plugin.R("%p_n% has been kicked for using %w_n%")); plugin.KickPlayerWithMessage(player.Name, plugin.R("%p_n% you have been kicked for using %w_n%")); } else if (count == 2) { plugin.SendGlobalMessage(plugin.R("%p_n% has been banned for using %w_n%, after a kick!")); plugin.PBBanPlayerWithMessage(PBBanDuration.Temporary, player.Name, 2880, plugin.R("%p_n% you have been banned for 2 days for using %w_n%")); limit.Data.unsetBool(player.Name); if (!limit.Data.issetBool(player.Name)) limit.Data.setBool(player.Name, true); } Use if (count > 1) instead of if (count == 2). There's no need to unsetBool the player.Name. If a player kills more than one victim with a single explosive, like nading two players, they will be banned and never kicked. You should use this code to avoid that: showthread....s-Count-As-One* * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 10, 2013 Author Share Posted December 10, 2013 Originally Posted by bahtre*: Thanks for quick answer, but it still just kicking That is what I got: Code: if (limit.Data.issetBool(player.Name)) { plugin.SendGlobalMessage(plugin.R("%p_n% has been banned for using %w_n% FOREVER!")); plugin.PBBanPlayerWithMessage(PBBanDuration.Permanent, player.Name, 0, plugin.R("%p_n% you have been banned forever for using %w_n%")); } int count = (int) limit.Activations(player.Name); if (count == 1) { plugin.SendGlobalMessage(plugin.R("%p_n% has been kicked for using %w_n%")); plugin.KickPlayerWithMessage(player.Name, plugin.R("%p_n% you have been kicked for using %w_n%")); } else if (count > 1) { plugin.SendGlobalMessage(plugin.R("%p_n% has been banned for using %w_n%, after a kick!")); plugin.PBBanPlayerWithMessage(PBBanDuration.Temporary, player.Name, 2880, plugin.R("%p_n% you have been banned for 2 days for using %w_n%")); if (!limit.Data.issetBool(player.Name)) limit.Data.setBool(player.Name, true); }What's wrong with it? Or may be the problem is me:sad: * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 10, 2013 Author Share Posted December 10, 2013 Originally Posted by PapaCharlie9*: Thanks for quick answer, but it still just kicking That is what I got: Code: if (limit.Data.issetBool(player.Name)) { plugin.SendGlobalMessage(plugin.R("%p_n% has been banned for using %w_n% FOREVER!")); plugin.PBBanPlayerWithMessage(PBBanDuration.Permanent, player.Name, 0, plugin.R("%p_n% you have been banned forever for using %w_n%")); } int count = (int) limit.Activations(player.Name); if (count == 1) { plugin.SendGlobalMessage(plugin.R("%p_n% has been kicked for using %w_n%")); plugin.KickPlayerWithMessage(player.Name, plugin.R("%p_n% you have been kicked for using %w_n%")); } else if (count > 1) { plugin.SendGlobalMessage(plugin.R("%p_n% has been banned for using %w_n%, after a kick!")); plugin.PBBanPlayerWithMessage(PBBanDuration.Temporary, player.Name, 2880, plugin.R("%p_n% you have been banned for 2 days for using %w_n%")); if (!limit.Data.issetBool(player.Name)) limit.Data.setBool(player.Name, true); }What's wrong with it? Or may be the problem is me:sad:Try using the code in the link I put in my previous reply. It will work better. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 13, 2013 Author Share Posted December 13, 2013 Originally Posted by pharbehind*: PC, I have a request for a hopefully easy limit... Anytime the server population drops to 14 or less, change vars.idleTimeout to 86400. Else, set to the default 300. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 13, 2013 Author Share Posted December 13, 2013 Originally Posted by PapaCharlie9*: PC, I have a request for a hopefully easy limit... Anytime the server population drops to 14 or less, change vars.idleTimeout to 86400. Else, set to the default 300. I think Adaptive Server Size already does that for you, so check that first. Not sure if it is working for BF4, though, or if you even use it. If you still want a limit: Create a new limit OnIntervalServer, call it Adaptive Idle, set interval to 60 seconds (or longer), leave Action set to None. Set first_check to this Code: Code: String key = "current idle"; int idle = 300; if (server.Data.issetInt(key)) idle = server.Data.getInt(key); if (server.PlayerCount >= 16 && idle != 300) { plugin.ServerCommand("vars.idleTimeout", "300"); plugin.ServerCommand("vars.preset", "Normal", "false"); server.Data.setInt(key, 300); plugin.ConsoleWrite("Player count = " + server.PlayerCount + ", setting idle to 300"); } if (server.PlayerCount <= 14 && idle == 300) { plugin.ServerCommand("vars.idleTimeout", "86400"); plugin.ServerCommand("vars.preset", "Normal", "false"); server.Data.setInt(key, 86400); plugin.ConsoleWrite("Player count = " + server.PlayerCount + ", setting idle to 86400"); } return false;I added a preset Normal command, just in case. If you are running Hardcore instead of Normal, change those two lines. The reason I use 16 rather than 14 for resetting to 300 is because of the risk that your server can bounce between 14 and 15 players as people are leaving/joining/leaving the queue, etc. That will spam your server with config changes. You never want to base a server configuration change on a single player count level. Instead, you space it out over a range. This is called hysteresis. The same principle is used in your thermostat for your household heat. You'll notice it tends to turn on at slightly below the temperature you set and turn off at slightly above the temperature you set. Otherwise it would turn on/off rapidly while your room temperature equalizes, which is bad for your furnace. Even 14 vs 16 is a bit too close for comfort. I've seen player count bounce up and down over a range of 4 players in mere seconds. The interval should smooth that out, though. You can give that a try and see how it goes. If there is too much spamming, increase the gap to 4, like 12 vs 16 or 14 vs 18. Or, alternatively, increase the interval. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 13, 2013 Author Share Posted December 13, 2013 Originally Posted by pharbehind*: You're the man, thanks dude. FWIW - I forgot Adaptive Server Size has the adpative idle kick too. Though, his is a strict enable/disable option, which I don't think is working yet. I'll use yours until DICE gets that sorted out. Thanks again. Couple questions: 1) In both if statements, the normal/hardcore preset is false. Should one or the other be true? 2) If I remove the preset lines and given the server was on either a normal or hardcore preset to begin with, woudl changing the idleTime from 300 to 86400 then back to 300 resume the normal or hardcore preset automatically? Or, is that the "just in case" scenario you prepared for? * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 13, 2013 Author Share Posted December 13, 2013 Originally Posted by PapaCharlie9*: 1) In both if statements, the normal/hardcore preset is false. Should one or the other be true?The "false" specifies that your other config settings should not be changed. If it is set to true, it will overwrite gameModeCounter, commanders, etc. 2) If I remove the preset lines and given the server was on either a normal or hardcore preset to begin with, woudl changing the idleTime from 300 to 86400 then back to 300 resume the normal or hardcore preset automatically? Or, is that the "just in case" scenario you prepared for?It's "just in case". Who knows what will break in the next patch? * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 16, 2013 Author Share Posted December 16, 2013 Originally Posted by Talzac*: Apparently i need to post here. @Papa Thought about a way to have limit actions send through AdKats. Does the second limit have access to ExecuteCommand? If it did i could just write a limit to include a "procon.protected.plugins.call" on AdKats with the needed parameters to get the job done. Let me know. Currently getting these errors: Code: [20:18:07 96] [Insane Limits] ERROR: (CS0117, line: 55, column: 20): 'PRoConEvents.PluginInterface' does not contain a definition for 'ExecuteCommand' [20:18:07 97] [Insane Limits] ERROR: (CS0103, line: 55, column: 110): The name 'JSON' does not exist in the current contextWhen attempting to use this in the second check: Code: //Activations within 5 seconds count as 1 TimeSpan time = TimeSpan.FromSeconds(5); if (limit.Activations(killer.Name, time) > 1) return false; //Build the request to send to AdKats for action handling Hashtable request = new Hashtable(); request["source_name"] = "InsaneLimits"; request["target_name"] = killer.Name; request["command_type"] = "Punish"; //request["command_numeric"] = 0; request["record_message"] = plugin.R("Using Restricted Weapon: %w_n%!"); // Send the request plugin.ExecuteCommand("procon.protected.plugins.call", "AdKats", "PerformExternalPluginCommand", JSON.JsonEncode(request));What should i do to get this working?Is this working now? I am using adkats and insane limits, this should give me more options. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 16, 2013 Author Share Posted December 16, 2013 Originally Posted by PapaCharlie9*: Is this working now? I am using adkats and insane limits, this should give me more options.No, and probably won't be for the foreseeable future. * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 16, 2013 Author Share Posted December 16, 2013 Originally Posted by p19blo*: hello i use the knife and pistol only limit and when it temp bans someone is there a way for the ban to record the weapon that was used, as im getting players insisting they havent used said weapons. i use adkats, dont know if this is something needed to know. i did try Code: %p_n%, banned for using %w_n% on Pistol and Knife only serverbut it records it as that exactly. Thanks * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 17, 2013 Author Share Posted December 17, 2013 Originally Posted by PapaCharlie9*: hello i use the knife and pistol only limit and when it temp bans someone is there a way for the ban to record the weapon that was used, as im getting players insisting they havent used said weapons. i use adkats, dont know if this is something needed to know. i did try Code: %p_n%, banned for using %w_n% on Pistol and Knife only serverbut it records it as that exactly. Thanks Probably best to ask that question in the knife/pistol limit thread, particularly since part of the answer is already there:myrcon.net/.../insane-limits-knife-and-pistols-only Basically, you need to add plugin.R( ) around the string: Code: plugin.R("%p_n%, banned for using %w_n% on Pistol and Knife only server") * Restored post. It could be that the author is no longer active. Link to comment
ImportBot Posted December 21, 2013 Author Share Posted December 21, 2013 Originally Posted by Disturbed11B*: Papa, got a request for you and I'm obviously not sure how to do it... It would utilize the Weapon Restriction Script but id like the infractions to be used with Adkats Punishment settings. So if they use a restricted weapon it would use ADKats and send them a message and a reason just as if someone typed "!punish player used a restricted weapon" * Restored post. It could be that the author is no longer active. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.