Jump to content

Insane Limits - Examples


ImportBot

Recommended Posts

Originally Posted by WaxMyCarrot*:

 

Having an issue.. my chat filter is not working.. it will not warn, kick or ban for using any words in the filter.

 

OnAnyChat

 

first_check:

Code:

List<String> bad_words = new List<String>();
    
    bad_words.Add("negro");
    bad_words.Add("nigger");
    bad_words.Add(@"faggot");
    bad_words.Add(@"jew");
    bad_words.Add(@"n+[1i]+g+[3ea]+r*");
    bad_words.Add(@"f+[a4]+g+[ao0]+t*");
    bad_words.Add(@"f+[a4]+g+");
    
    String[] chat_words = Regex.Split(player.LastChat, @"\s+");
    
    foreach(String chat_word in chat_words)
        foreach(String bad_word in bad_words)
            if (Regex.Match(chat_word, "^"+bad_word+"$", RegexOptions.IgnoreCase).Success)
                return true;
            
    return false;
second_check:

Code:

double count = limit.Activations(player.Name);
    
    if (count == 1)
        plugin.SendSquadMessage(player.TeamId, player.SquadId, plugin.R("%p_n%, please avoid using profanity"));
    else if (count == 2)
    {
        plugin.KillPlayer(player.Name);
        plugin.SendSquadMessage(player.TeamId, player.SquadId, plugin.R("%p_n%, this is your %p_x_th% profanity warning, next time you are out!"));
    }
    else if (count == 3)
    {
       plugin.KickPlayerWithMessage(player.Name, plugin.R("%p_n%, kicked you for excessive profanity!"));
       plugin.SendGlobalMessage(plugin.R("%p_n% was kicked for excessive profanity"));
    }
    
    return false;
Here is a sreenie of my procon.

 

Attached Files:

* Restored post. It could be that the author is no longer active.
Link to comment
  • Replies 1.4k
  • Created
  • Last Reply

Originally Posted by micovery*:

 

Having an issue.. my chat filter is not working.. it will not warn, kick or ban for using any words in the filter.

I just tried it ... works fine .. maybe the limit is not compiled ... So it's not getting evaluated ... try changing the event to something else, then switch it back to OnAnyChat, that will force it to re-compile. I think for next version, I should add some kind of indicator to show the state of a limit (whether it's compiled or not).

 

 

micovery i send another donation for you check your paypal. thanks for everything bro! keep up the good work..

 

one more thing. how to use the !stats i tried to type ingame and nothing show any stats at all. how to include the stats retrieved from Battlelog in the ban reason? for eg. SPM/KDR BAN. like on ban msg it will show the player SPM/KDR.

Thanks for your kind donation, as well as for everyone who has donated thanks :-)

 

PapaCharlie gave a very good explanation of how to build (concatenate) strings with stats data. You cannot use that method for the regular actions though. To use that, you have to call the functions plugin.KickPlayer, or plugin.BanPlayer manually from the Code sections. So if you are using a limit that triggers a kick/ban from a Code section, then you can do that.

 

On a side note, I am planning on adding for a new type of replacements. One where you would be able to do stuff like this:

 

"player.Name you where banned for having Kdr: player.Kdr"

 

No concatenation needed, and this would be available for all places where string replacements could be needed.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by Mootart*:

 

hi there! sorry nose bleed i kinda understand the code but little bit confused what to put exactly and where. could you help me?

 

i just want the message appear like Banned due to unreasonably high (player.SPM/player.KDR)Limit 950/5.0

 

something like this and where shoud i put them?

 

 

If my post crosses with micovery's, pay attention to his version over mine.

 

You can create any text (string) you want by using this basic pattern:

 

"your text " + player.Whatever + " more text " + player.Next ... ;

 

Replace "your text" and "more text" with whatever you want and put the stat you want in Whatever and Next. Replace "player" with "killer" if you are using an OnKill limit.

 

So for kayjay's specific ask, if you want a message that looks like this in an OnSpawn limit where you have a player object:

 

"Banned for suspicious Battlelog stats (Kills=1234567, Deaths=3, KDR=411522.33, SPM=9999, Quit=0)!"

 

You build the message like this:

 

String message = "Banned for suspicious Battlelog stats (Kills=" + player.Kills + ", Deaths=" + player.Deaths + ", KDR=" + player.Kdr + " , SPM=" + player.Spm + ", Quit=" + player.QuitPercent + ")!";

 

If you want to insert the player's clan tag and name into the message (or any other replacement value), build the message inside of a replacement (plugin.R() function, see the docs for the % codes %):

 

"Banned [XYZ]SuperHacker for suspicious Battlelog stats (Kills=1234567, Deaths=3, KDR=411522.33, SPM=9999, Quit=0)!"

 

String message = plugin.R("Banned %p_fn% for suspicious Battlelog stats (Kills=" + player.Kills + ", Deaths=" + player.Deaths + ", KDR=" + player.Kdr + " , SPM=" + player.Spm + ", Quit=" + player.QuitPercent + ")!");

 

 

Personally, I would leave out Kills, Deaths and Quit, not sure why those are useful in a ban message, particularly since KDR is Kills divided by Deaths, so you already have that info.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by supermillhouse*:

 

Hi micovery,

 

Can you create a limit for teamkill, to say,kill kick and permban for excessive TK

I'm not a good coder :-p

 

Thank you

I second this if you can

 

i would love a TK !punish and !forgive that incremented a count up and down.

!punish for up

!forgive for down

if there was a TK but no victim responce it should do nothing

and obviously only the victim can punish and forgive

 

and if the count got to lets say 5 they would get kicked with a message

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by micovery*:

 

I second this if you can

 

i would love a TK !punish and !forgive that incremented a count up and down.

!punish for up

!forgive for down

if there was a TK but no victim responce it should do nothing

and obviously only the victim can punish and forgive

 

and if the count got to lets say 5 they would get kicked with a message

This is doable with a combination of 2 Limits. (OnAnyChat, and OnKill) ... but I rather spend some time fixing Insane Punisher to work with BF3 correctly, and include kind of behavior.

 

I'll give it a shot anyways, if it does not take me too long, maybe tomorrow, so you guys can have the functionality while I work on BF3ing Insane Punisher. Or if any other dev, want to take a shot a implementing this would be great ... I would suggest you guys take a look at the thread PapaCharlie9 started about "My Favorite Victims" extension to Insane Limits. That idea, can be extended/changed to keep track of TK violations instead ... and perform an action when # of violations reaches certain limit.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by micovery*:

 

This is awesome.. lol.. how would I make one that would detect multi-kills, combo-kills, Ultra-Kills and etc?

 

To clarify I know you have the "Multi-Message Kill Spree" but what I want to do is detect when multi kills are done with the same shot.. like if 2 or more players are killed with the same clay-more or frag? or is that even possible to detect?

 

What I am looking for is if for example:

2 killed with (any weapon) in one shot then say multi-kill

3 killed with (any weapon) in one shot then say combo-kill

4 killed with (any weapon) in one shot then say ultra-kill

5+ killed with (any weapon) in one shot then say mega-kill

The plugin does not know when you kill multiple people with the same shot. It sees the kill events one at a time. So the best thing it can do is count how fast the kill events are triggered. For example if it sees 3 kills in the last 3 seconds. It's probably a combo-kill.

 

The thing is that if a combo-kill is triggered, it multi-kill would have been triggered as well, right before it. So it could end up Spamming. For example, suppose that you kill 5 people with a clay.

 

Over the next three seconds, the plugin will receive 5 kill events, one at a time.

 

So when it sees the first 2 , it will say multi-kill, when it sees the 3rd, it will say combo-kill, when it sees the 4th, it will say ultra-kill, when it sees the 5th it will say mega-kill ... that's a lot of spam.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PapaCharlie9*:

 

You cannot use that method for the regular actions though. To use that, you have to call the functions plugin.KickPlayer, or plugin.BanPlayer manually from the Code sections. So if you are using a limit that triggers a kick/ban from a Code section, then you can do that.

Right, I had assumed the request was for how to write a second_check as Code. See the Advanced Battlelog KDR Kicker With Custom Kick Message that follows for a recipe on how to use custom string building.

 

On a side note, I am planning on adding for a new type of replacements. One where you would be able to do stuff like this:

 

"player.Name you where banned for having Kdr: player.Kdr"

 

No concatenation needed, and this would be available for all places where string replacements could be needed.

Wow ... another genius idea from micovery! What a time-saver. Will they coded like %player.Kdr%? That should be pretty robust.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PapaCharlie9*:

 

Compare to the Battlelog Kdr Kicker* example.

 

This limit combines both KDR and Accuracy measurements from Battlelog to kick suspicious players. It uses Code in second_check to do the kick, rather than an action. This allows customization of the kick reason. Change "yourwebsite.com" to the email or website address where the player can appeal the kick and get white listed.

 

Set limit to evaluate OnJoin and action to None.

 

Set first_check to this Expression:

 

Code:

( player.Kdr > 4.0   ||  player.Accuracy > 50  )
Set second_check to this Code:

 

Code:

String reason = "suspicious Battlelog stats (KDR=" + player.Kdr + ", Acc=" + player.Accuracy + ")";
	reason = reason + ", appeal at yourwebsite.com";
	plugin.KickPlayerWithMessage(player.Name, reason);
	return false;
When you paste the Code part into the second_check field, make sure to click on the down-arrow, on the field, so that it expands and allows you to paste multi-line.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by WaxMyCarrot*:

 

The plugin does not know when you kill multiple people with the same shot. It sees the kill events one at a time. So the best thing it can do is count how fast the kill events are triggered. For example if it sees 3 kills in the last 3 seconds. It's probably a combo-kill.

 

The thing is that if a combo-kill is triggered, it multi-kill would have been triggered as well, right before it. So it could end up Spamming. For example, suppose that you kill 5 people with a clay.

 

Over the next three seconds, the plugin will receive 5 kill events, one at a time.

 

So when it sees the first 2 , it will say multi-kill, when it sees the 3rd, it will say combo-kill, when it sees the 4th, it will say ultra-kill, when it sees the 5th it will say mega-kill ... that's a lot of spam.

How about when it says Double Kill on the screen when you snipe 2 people at once.. any way for the plugin to detect that? Not sure if it will show triple kill in BF3 cause I have yet to get one.. lol
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by droopie*:

 

im in need of a per round kdr that if triggered pb guid ban them. i got a strong feeling insane limits is what i need but dont want it to look up battlelog. i rather have it as a during round check.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by badlizz*:

 

For the bad words kicker do I need to set an action or is it already in there in the second check code.

 

double count = limit.Activations(player.Name);

 

if (count == 1)

plugin.SendSquadMessage(player.TeamId, player.SquadId, plugin.R("%p_n%, please avoid using profanity"));

else if (count == 2)

{

plugin.KillPlayer(player.Name);

plugin.SendSquadMessage(player.TeamId, player.SquadId, plugin.R("%p_n%, this is your %p_x_th% profanity warning, next time you are out!"));

}

else if (count == 3)

{

plugin.KickPlayerWithMessage(player.Name, plugin.R("%p_n%, kicked you for excessive profanity!"));

plugin.SendGlobalMessage(plugin.R("%p_n% was kicked for excessive profanity"));

}

 

return false;

I am guessing I do not need to apply a kick on top of it ?
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PapaCharlie9*:

 

im in need of a per round kdr that if triggered pb guid ban them. i got a strong feeling insane limits is what i need but dont want it to look up battlelog. i rather have it as a during round check.

I'm not sure if plugin.PBBanPlayerWithMessage uses a guid ban or not, but in any case, I was already working on a Kill High In-Round KDR example. Instead of banning them, it kills them until their KDR gets back down to a reasonable level. :smile:
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PapaCharlie9*:

 

This limit detects a player with a high number of kills and no deaths in a round and kills them. If the player kills 3 more times without dying first, he gets kicked. Also shows how to build a custom message with replacements that is logged and sent to chat. The plugin log message shows up as red by using PRoCon color codes ^8 (red) and ^0 (black).

 

Set limit to evaluate OnKill and action to None.

 

Set first_check to this Expression:

 

Code:

( killer.DeathsRound == 0  &&  killer.KillsRound > 9  )
Set second_check to this Code:

 

Code:

String reason = "having " + killer.KillsRound + " kills and no deaths!";
	String message = "no message yet";
	
	// Kick killer after 3 more kills, otherwise just Kill him

	if (limit.Activations(killer.Name) > 3) {
		message = plugin.R("Kicking %k_fn% for ") + reason;
		plugin.KickPlayer(killer.Name, message);
	} else {
		message = plugin.R("Killing %k_fn% for ") + reason;
		plugin.KillPlayer(killer.Name);
	}
	plugin.SendGlobalMessage(message);
	plugin.ConsoleWrite(@"^8 " + message + @" ^0");
	
	return false;
The limit will activate on the tenth kill -- you can change that to a higher number by replacing "9" in the first_check with something else. See the Ban High In-Round KDR Killer* example as well.

 

EDIT: Since using the kill player command doesn't change the death count, I had to change this example to limit the number of activations. Otherwise the killer would just die every time he kills someone until someone else kills him.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by droopie*:

 

how do i make this say like DOUBLE KILL, TRIPLE KILL, QUADRUPLE KILL for any weapon? just want an announced or something to say in the chat when a player gets 2,3,4 kills in 1 shot...or 1 explosion.

For this limit, you can set it to any weapon you wish, as long as you know the name of the weapon. I will show it here for "C4". The way it works is that it tracks multiple kills in a very short amount of time with the same weapon. When this happens, you are either hacking or you just got a multi-kill.

 

 

Set limit to evaluate OnKill, and set action to Say

 

Set first_check to this Expression:

 

Code:

( kill.Weapon.Equals("C4") )
Set second_check to this Expression::

 

Code:

( limit.Activations(player.Name, TimeSpan.FromSeconds(10)) > 1 )
And set these action specific parameters:

 

Code:

say_audience = All
              say_message = %p_n% multi-kill achievement with %w_n%!
The rate for this limit is +1 kill in 10 seconds, you may adjust this as you see fit.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PapaCharlie9*:

 

After at least 15 minutes of play, this limit detects a player with a high KDR in the current round. If their Battlelog KDR and SPM are also unusually high, they are banned using Punk Buster GUID. Also shows how to build a custom message with replacements that is logged and sent to chat. The plugin log message shows up as blue by using PRoCon color codes ^4 (royal blue) and ^0 (black).

 

Set limit to evaluate OnSpawn and action to None.

 

Set first_check to this Expression:

 

Code:

( (server.TimeRound/60) > 15 && (player.TimeRound/60) > 15 )
Set second_check to this Code:

 

Code:

double highKdr = 6.0;
    double highSpm = 800;
    
    if ( player.KdrRound > highKdr && player.Kdr > highKdr && player.Spm > highSpm ) {
        String reason = "in-round KDR=" + player.KdrRound + " exceeds server limit of " + highKdr + "!";
        String message = plugin.R("Banning %p_fn% for ") + reason;
        plugin.SendGlobalMessage(message);
        plugin.ConsoleWrite(@"^4 " + message + @" ^0 (Battlelog KDR=" + player.Kdr + ", SPM=" + player.Spm + " > " + highSpm + ")");
        plugin.PBBanPlayerWithMessage(PBBanDuration.Permanent, player.Name, 0, reason);
    }
    return false;
Change the highKdr value of 6.0 and/or highSpm of 800 to something else if you want a different limit. See the Kill No-Deaths In Round Killer* example as well.

 

EDIT: Since the kill player command doesn't change the players in-round KDR, I changed this example to do a ban instead.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by micovery*:

 

This limit detects a player with a high KDR after the first 10 minutes of a round and kills them on every spawn until their KDR comes down to a lower level. Also shows how to build a custom message with replacements that is logged and sent to chat. The plugin log message shows up as blue by using PRoCon color codes ^4 (royal blue) and ^0 (black).

Did this work for you? For some weird reason I still don't know ... whenever I have a Kill command within the spawn event, it does not seem to really do anything. It looks as if server is sending the onSpawn event ahead of time, and by the time we process it and send the kill command, player is still dead (in the deploy screen). It's so weird ... this kind of thing used to work on BC2. I think I may need to add an optional parameter to KillPlayer, where you can specify the delay in seconds.

 

I'm not sure if plugin.PBBanPlayerWithMessage uses a guid ban or not, but in any case, I was already working on a Kill High In-Round KDR example. Instead of banning them, it kills them until their KDR gets back down to a reasonable level. :smile:

Code:
bool PBBanPlayerWithMessage(PBBanDuration duration, String name, int minutes, String message);
PBBan is always by PB_GUID, that's why the function does not give you any options, as in EABan.

 

I am guessing I do not need to apply a kick on top of it ?

No need to have an action on top of it. Since the actions themselves are being initiated from the Code
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by droopie*:

 

I'm not sure if plugin.PBBanPlayerWithMessage uses a guid ban or not, but in any case, I was already working on a Kill High In-Round KDR example. Instead of banning them, it kills them until their KDR gets back down to a reasonable level. :smile:

question, does it use battlelog or based on current round? i really dont want to use battlelog to scan the kdr. i have seen hackers have low kdr in battlelog but end up with over 20.x in the server. i think they are first time hack users usually.

 

if it doesnt, i would like it to kick them once its the set kdr value is reached since it cant ban... no point in having them get killed and keeping them on the server if they are hacking.

 

thanks for the plugins examples though!

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by micovery*:

 

question, does it use battlelog or based on current round? i really dont want to use battlelog to scan the kdr. i have seen hackers have low kdr in battlelog but end up with over 20.x in the server. i think they are first time hack users usually.

 

if it doesnt, i would like it to kick them once its the set kdr value is reached since it cant ban... no point in having them get killed and keeping them on the server if they are hacking.

 

thanks for the plugins examples though!

His example uses current round Kdr ... if you see in the code it's using "KdrRound" , all the round stats have a "Round" suffix.

 

You should seriously consider using battlelog stats as well as your first line of defense. Why let a hacker with > 10 Kdr, into your server int the first place, when you can ban them before they even spawn ...

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by droopie*:

 

His example uses current round Kdr ... if you see in the code it's using "KdrRound" , all the round stats have a "Round" suffix.

 

You should seriously consider using battlelog stats as well as your first line of defense. Why let a hacker with > 10 Kdr, into your server int the first place, when you can ban them before they even spawn ...

if you can write an example that does both, that would be great!

first, check battlelog if its a like 10.0+ kdr. if so then guid ban.

second, if kdr in the current round is 10.0+ kdr then also guid ban.

 

micovery, your the best! im finding myself replacing like 3 plugins in your insane limits!

to the rest of the example contributors, thanks!

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by micovery*:

 

if you can write an exmaple with both, that would be great!

first, check battlelog if its a like 10.0+ kdr. if so then guid ban.

second, if kdr in the current round is 10.0+ kdr then also guid ban.

 

micovery, your the best! im finding myself replacing like 3 plugins in your insane limits!

to the rest of the example contributors, thanks!

They don't have to be in the same limit, you can make a separate limit just for the Battlelog check that only happens once (when they join).

 

Here is the example:

 

myrcon.net/...insane-limits-examples#entry18408

 

Think of the OnJoin check as the gate-keeper/bouncer. They have to get past that check before they even get into the server.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by micovery*:

 

ok cool. ill set it as a separate limit.

 

for the current round kdr, do i set a 2nd check as stated in myrcon.net/...insane-limits-examples#entry18540

or do i do a ban action like in the Battlelog Kdr Kicker? i wouldnt know how to change it in the expression...

In PapaCharlie9's example, the main KDR check, and actions are performed in the second_check .. so you cannot remove it. The first check he has is just to make sure that the player has been in the server for at least 15 minutes. So no-one will be slayed, during the first 15 minutes of the round.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by droopie*:

 

In PapaCharlie9's example, the main KDR check, and actions are performed in the second_check .. so you cannot remove it. The first check he has is just to make sure that the player has been in the server for at least 15 minutes. So no-one will be slayed, during the first 15 minutes of the round.

oh i get it. great idea! but how do i change a kill to a a ban (if it can, pb)?

 

like this..?

 

Code:

double highKdr = 6.0;
    if ( player.KdrRound > highKdr ) 
    {
        String message = plugin.R("You have been banned for suspected hacking (high KDR).");
        plugin.SendGlobalMessage(message);
        plugin.ConsoleWrite(@"^4 " + message + @" ^0");
        plugin.PBBanPlayerWithMessage(PBBanDuration.Permanent, player.Name, plugin.R("You have been banned for suspected hacking (high KDR)."));
    }
    return false;
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by micovery*:

 

oh i get it. great idea! but how do i change a kill to a a ban (if it can, pb)?

 

like this..?

 

Code:

double highKdr = 6.0;
    if ( player.KdrRound > highKdr ) 
    {
        String message = plugin.R("You have been banned for suspected hacking (high KDR).");
        plugin.SendGlobalMessage(message);
        plugin.ConsoleWrite(@"^4 " + message + @" ^0");
        plugin.PBBanPlayerWithMessage(PBBanDuration.Permanent, player.Name, plugin.R("You have been banned for suspected hacking (high KDR)."));
    }
    return false;
Kind-of ... you are just missing the time (minutes) ... even though it's permanent, you still have to pass the argument to the function (it will just ignore it for permanent bans). When in doubt look at the reference documentation on the original post:

 

www.phogue.net/forumvb/showth...=Insane+Limits*

 

This is how the function is defined:

Code:

PBBanPlayerWithMessage(PBBanDuration duration, String name, int minutes, String message);
This is how you would use it

 

Code:

plugin.PBBanPlayerWithMessage(PBBanDuration.Permanent, player.Name, [b]0[/b], "some message");
...

 

 

Code:

double highKdr = 6.0;
    if ( player.KdrRound > highKdr ) 
    {
        String message = plugin.R("%p_n% has been banned for suspected hacking (high KDR).");
        plugin.SendGlobalMessage(message);
        plugin.ConsoleWrite(@"^4 " + message + @" ^0");
        plugin.PBBanPlayerWithMessage(PBBanDuration.Permanent, player.Name, 0, "You have been banned for suspected hacking (high KDR).");
    }
    return false;
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by droopie*:

 

Kind-of ... you are just missing the time (minutes) ... even though it's permanent, you still have to pass the argument to the function (it will just ignore it for permanent bans). When in doubt look at the reference documentation on the original post:

 

www.phogue.net/forumvb/showth...=Insane+Limits*

 

This is how the function is defined:

Code:

PBBanPlayerWithMessage(PBBanDuration duration, String name, int minutes, String message);
This is how you would use it

 

Code:

plugin.PBBanPlayerWithMessage(PBBanDuration.Permanent, player.Name, [b]0[/b], "some message");
ah i thought so but wasnt sure. so im going to take the code i posted and just add that 0, this is now exactly how i want it! THANKS GUYS!!!!!!
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by micovery*:

 

ah i thought so but wasnt sure. so im going to take the code i posted and just add that 0, this is now exactly how i want it! THANKS GUYS!!!!!!

Something to note about the logic of your limit is ... suppose that a player has 6 kills and 1 death, at the beginning of the round. Then he stays idle for the next 15 minutes ... he will be banned. Is that really what you want?
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by droopie*:

 

Something to note about the logic of your limit is ... suppose that a player has 6 kills and 1 death, at the beginning of the round. Then he stays idle for the next 15 minutes ... he will be banned. Is that really what you want?

not if it has an idle of 5minutes. but im changing the values anyway going by known logs of hackers ive seen in the server. yesterday it was 16 ratio.

 

last question... at the end in is it

0, "some message"

or

0, plugin.R("some message")

 

just comparing document with an example....

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by sp37zn4z*:

 

I've modified this to use Rules only on Metro !

 

Replace first_check with this :

 

Code:

Regex.Match(kill.Weapon, @"m320|smaw|rpg", RegexOptions.IgnoreCase).Success && server.MapFileName.StartsWith("MP_Subway")
Is there any way i can modify this to notify users about rules when the map "MP_Subway" is loaded? I have metro on my rotation i just want a notification for the rules everytime Metro is loaded.
* Restored post. It could be that the author is no longer active.
Link to comment

Archived

This topic is now archived and is closed to further replies.




  • Our picks

    • Game Server Hosting:

      We're happy to announce that EZRCON will branch out into the game server provider scene. This is a big step for us so please having patience if something doesn't go right in this area. Now, what makes us different compared to other providers? Well, we're going with the idea of having a scaleable server hosting and providing more control in how you set up your server. For example, in Minecraft, you have the ability to control how many CPU cores you wish your server to have access to, how much RAM you want to use, how much disk space you want to use. This type of control can't be offered in a single service package so you're able to configure a custom package the way you want it.

      You can see all the available games here. Currently, we have the following games available.

      Valheim (From $1.50 USD)


      Rust (From $3.20 USD)


      Minecraft (Basic) (From $4.00 USD)


      Call of Duty 4X (From $7.00 USD)


      OpenTTD (From $4.00 USD)


      Squad (From $9.00 USD)


      Insurgency: Sandstorm (From $6.40 USD)


      Changes to US-East:

      Starting in January 2022, we will be moving to a different provider that has better support, better infrastructure, and better connectivity. We've noticed that the connection/routes to this location are not ideal and it's been hard getting support to correct this. Our contract for our two servers ends in March/April respectively. If you currently have servers in this location you will be migrated over to the new provider. We'll have more details when the time comes closer to January. The new location for this change will be based out of Atlanta, GA. If you have any questions/concerns please open a ticket and we'll do our best to answer them.
      • 5 replies
    • Hello All,

      I wanted to give an update to how EZRCON is doing. As of today we have 56 active customers using the services offered. I'm glad its doing so well and it hasn't been 1 year yet. To those that have services with EZRCON, I hope the service is doing well and if not please let us know so that we can improve it where possible. We've done quite a few changes behind the scenes to improve the performance hopefully. 

      We'll be launching a new location for hosting procon layers in either Los Angeles, USA or Chicago, IL. Still being decided on where the placement should be but these two locations are not set in stone yet. We would like to get feedback on where we should have a new location for hosting the Procon Layers, which you can do by replying to this topic. A poll will be created where people can vote on which location they would like to see.

      We're also looking for some suggestions on what else you would like to see for hosting provider options. So please let us know your thoughts on this matter.
      • 4 replies
    • Added ability to disable the new API check for player country info


      Updated GeoIP database file


      Removed usage sending stats


      Added EZRCON ad banner



      If you are upgrading then you may need to add these two lines to your existing installation in the file procon.cfg. To enable these options just change False to True.

      procon.private.options.UseGeoIpFileOnly False
      procon.private.options.BlockRssFeedNews False



       
      • 2 replies
    • I wanted I let you know that I am starting to build out the foundation for the hosting services that I talked about here. The pricing model I was originally going for wasn't going to be suitable for how I want to build it. So instead I decided to offer each service as it's own product instead of a package deal. In the future, hopefully, I will be able to do this and offer discounts to those that choose it.

      Here is how the pricing is laid out for each service as well as information about each. This is as of 7/12/2020.

      Single MySQL database (up to 30 GB) is $10 USD per month.



      If you go over the 30 GB usage for the database then each additional gigabyte is charged at $0.10 USD each billing cycle. If you're under 30GB you don't need to worry about this.


      Databases are replicated across 3 zones (regions) for redundancy. One (1) on the east coast of the USA, One (1) in Frankfurt, and One (1) in Singapore. Depending on the demand, this would grow to more regions.


      Databases will also be backed up daily and retained for 7 days.




      Procon Layer will be $2 USD per month.


      Each layer will only allow one (1) game server connection. The reason behind this is for performance.


      Each layer will also come with all available plugins installed by default. This is to help facilitate faster deployments and get you up and running quickly.


      Each layer will automatically restart if Procon crashes. 


      Each layer will also automatically restart daily at midnight to make sure it stays in tip-top shape.


      Custom plugins can be installed by submitting a support ticket.




      Battlefield Admin Control Panel (BFACP) will be $5 USD per month


      As I am still working on building version 3 of the software, I will be installing the last version I did. Once I complete version 3 it will automatically be upgraded for you.





      All these services will be managed by me so you don't have to worry about the technical side of things to get up and going.

      If you would like to see how much it would cost for the services, I made a calculator that you can use. It can be found here https://ezrcon.com/calculator.html

       
      • 11 replies
    • I have pushed out a new minor release which updates the geodata pull (flags in the playerlisting). This should be way more accurate now. As always, please let me know if any problems show up.

       
      • 9 replies
×
×
  • Create New...

Important Information

Please review our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.