Jump to content

Insane Limits - Examples


Recommended Posts

Originally Posted by PapaCharlie9*:

 

Thx;

but no Msg on Rush or ConQ or TDM. :/

Also tried on TDM >90 on both teams.

Try changing first_check to start with:

 

if(Regex.Match(server.Gamemode, "(Rush|Conquest)", RegexOptions.IgnoreCase).Success)

 

and the else to be:

 

else if(Regex.Match(server.Gamemode, "Death", RegexOptions.IgnoreCase).Success)

 

Most importantly, everyone creating new limits or modifying existing ones really ought to read the BF3 Server Protocol documentation, to understand what all these variables and values mean, and what's possible to do and what is not possible to do.

 

R12 docs are here (updated periodically, DICE is 3 patches behind at this point though): http://static.cdn.ea.com/dice/u/f/bf...inistrator.zip

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

Originally Posted by micovery*:

 

This example Limit/Rule will take one screenshot immediately after each kill, when the player exceeds Kdr of 4 during the round.

 

Set a limit to evaluate OnKill, and set action to None

 

Set first_check to this Expression:

 

Code:

player.KdrRound > 4.0
Set second_check to this Code:

 

Code:

        plugin.ServerCommand("punkBuster.pb_sv_command", "PB_SV_GetSs \""+killer.Name+"\"");
Note that PunkBuster puts restrictions on how often you can request player screenshots. (Max of 3 screenshots in 10 minutes, Requests must be at least 30 seconds apart). Because of this restriction, you are only guaranteed that the first screenshot will succeed in any 10 minute period. The remaining screenshots requests in that 10 minute period may not succeed.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by floomoo-NZ*:

 

Hello!

 

I'm trying to get my hardcore server to stay hardcore rather than custom in battlelog after implementing your 'Disable Vehicles Based on Player Count'. Previously this was, well almost impossible, until you uploaded V0.0.0.4.

 

Rather than explaining the entire problem, I will ask you this. Is it possible to disable my Limit#1 if say my Limit#3 asked it to? If so, how could I code this? Brief example of what I mean in my poorly written code... OnRoundOver, Limit_1_state = disabled.

 

Can anyone help on this? The desired effect is to make sure vehicle spawn is set to true once a round has ended so the server stays listed as hardcore in battlelog, but currently my Limit#1 which disables vehicles if player count is less than 8 is interfering, so is there anyway to disable my Limit#1 when a round end, and re-enable it once the round starts again?

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

Originally Posted by micovery*:

 

Hello!

 

I'm trying to get my hardcore server to stay hardcore rather than custom in battlelog after implementing your 'Disable Vehicles Based on Player Count'. Previously this was, well almost impossible, until you uploaded V0.0.0.4.

 

Rather than explaining the entire problem, I will ask you this. Is it possible to disable my Limit#1 if say my Limit#3 asked it to? If so, how could I code this? Brief example of what I mean in my poorly written code... OnRoundOver, Limit_1_state = disabled.

 

Can anyone help on this? The desired effect is to make sure vehicle spawn is set to true once a round has ended so the server stays listed as hardcore in battlelog, but currently my Limit#1 which disables vehicles if player count is less than 8 is interfering, so is there anyway to disable my Limit#1 when a round end, and re-enable it once the round starts again?

I think you can do something like that ... using these functions.

 

To get the limit state as a String ("Enabled", "Disabled", "Virtual").

 

Code:

plugin.getPluginVarValue("limit_1_state")
To set the limit state as a String ("Enabled", "Disabled", "Virtual")

 

Code:

plugin.setPluginVarValue("limit_1_state" , "Disabled");
plugin.setPluginVarValue("limit_1_sate", "Enabled");
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by micovery*:

 

This limit will warn the player in squad-chat, if more than 60% of the characters are Uppercase.

 

Set limit to evaluate OnAnyChat, set action to None

 

Set first_check to this Code

 

Code:

double max_percent = 60;
double min_words = 2;

/* Count words */
double wcount = (double) Regex.Split(player.LastChat, @"\s+").Length;

/* Make sure there at at least min_words in chat */
if (wcount < min_words)
   return false;
   
/* Remove Spaces First */
String chat = Regex.Replace(player.LastChat, @"\s", "");

if (chat.Length == 0)
    return false;

/* Count Uppercase Characters */
double count = (double) Regex.Matches(player.LastChat, @"[A-Z]").Count;


/* Calculate Percentage */
double percent = Math.Round((count/(double)chat.Length) * 100.0);

if (percent > max_percent )
   plugin.SendSquadMessage(player.TeamId, player.SquadId, player.Name+" are you mad_  " + percent + "% of your chat is Uppercase!");

return false;
Spaces are removed from the chat text before calculating the percentage.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PhaxeNor*:

 

Based on Warning for Excessive Use of Uppercase in Chat*

 

This will warn then kick after X amount of warnings.

 

Set limit to evaluate OnAnyChat, set action to None

Set first_check to Code

Code:

double max_percent = 60;
double min_words = 2;

/* Count words */
double wcount = (double) Regex.Split(player.LastChat, @"\s+").Length;

/* Make sure there at at least min_words in chat */
if (wcount < min_words)
   return false;

/* Remove Spaces First */
String chat = Regex.Replace(player.LastChat, @"\s", "");


if (chat.Length == 0)
    return false;


/* Count Uppercase Characters */
double count = (double) Regex.Matches(player.LastChat, @"[A-Z]").Count;


/* Calculate Percentage */
double percent = Math.Round((count/(double)chat.Length) * 100.0);


return (percent > max_percent);
Set second_check to Code

Code:

/* Change these values */
double warn = 6; // It kicks on the value you set


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


    if (activated >= 1 && activated < warn)
    {
        plugin.SendSquadMessage(player.TeamId, player.SquadId, player.Name+" too many uppercase words - Warning "+activated+"/"+warn);
    }
    else if(activated == warn)
    {
        plugin.SendGlobalMessage(player.Name+" have been kicked after too many uppercase warnings.");
        plugin.KickPlayerWithMessage(player.Name, "You have been kicked for uppercase words after "+warn+" warnings!");
    }


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

Originally Posted by PhaxeNor*:

 

By editing the message I removed a ")", limit works fine now.

 

The Top score clan limit is sending 3 messages in a row, how do I change that into 1?

change

Code:

if (count > 3)
to this

Code:

if (count > 1)

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

Originally Posted by PapaCharlie9*:

 

The Top score clan limit is sending 3 messages in a row, how do I change that into 1?

A threshold of 50 is too high for TDM. Some servers only require 50 kills to win. I think the default (vars.gameModeCounter 100) is 100 kills for TDM.

 

To include TDM, I think you want something like this in first_check (this is FAKE CODE, do not try to compile into a limit, only meant for example/discussion):

 

Code:

[b]double threshold = 10; // % remaining, e.g., CQ/Rush last 10% of tickets, TDM 90% of kills[/b]
    
    /* Calculate the remaining tickets TDM, Rush, and CQ */
    double min_max = 0;
    bool isNearEndOfRound = false;
    if (Regex.Match(server.Gamemode, @"(Conquest|Rush)", RegexOptions.IgnoreCase).Success) {
        min_max = Math.Min(team1.TicketsRound, team2.TicketsRound);
        isNearEndOfRound = ((min_max/server.TargetTickets) * 100) < threshold;
    } else {
        min_max = Math.Max(team1.TicketsRound, team2.TicketsRound);
        threshold = 100 - threshold;
        isNearEndOfRound = ((min_max)/server.TargetTickets) * 100) > threshold;
   }
    
    return isNearEndOfRound;
return (remain
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by Rucki*:

 

A threshold of 50 is too high for TDM.

Yes; on default-TDM-server the message comes on 50 kills.

Best Clan, after 50% of the map? Hmmm. :ohmy:

 

But if the server has changed the tickets to 50%, with a threshold of 50, i think the msg comes on 25 kills/tickets.

 

I tried treshold 20 on our server.

 

TDM (150% tickets/kills) message is on close to the end of round. Perfect for us.

Conq (100% tickets) message is at

Rush (100% tickets) message is only sent if the defenders are winning.

 

Regards!

Rucki

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

Originally Posted by ganjaparadise*:

 

Based on Warning for Excessive Use of Uppercase in Chat*

 

This will warn then kick after X amount of warnings.

 

Set limit to evaluate OnAnyChat, set action to None

Set first_check to Expression

Code:

double max_percent = 60;


/* Remove Spaces First */
String chat = Regex.Replace(player.LastChat, @"\s", "");


if (chat.Length == 0)
    return false;


/* Count Uppercase Characters */
double count = (double) Regex.Matches(player.LastChat, @"[A-Z]").Count;


/* Calculate Percentage */
double percent = Math.Round((count/(double)chat.Length) * 100.0);


return (percent > max_percent);
Set second_check to Code

Code:

/* Change these values */
double warn = 6; // It kicks on the value you set


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


    if (activated >= 1 && activated < warn)
    {
        plugin.SendSquadMessage(player.TeamId, player.SquadId, player.Name+" too many uppercase words - Warning "+activated+"/"+warn);
    }
    else if(activated == warn)
    {
        plugin.SendGlobalMessage(player.Name+" have been kicked after too many uppercase warnings.");
        plugin.KickPlayerWithMessage(player.Name, "You have been kicked for uppercase words after "+warn+" warnings!");
    }


return false;
I've multiple error with debug...

 

[12:41:30 18] [insane Limits] ERROR: 5 errors compiling Expression

[12:41:30 18] [insane Limits] ERROR: (CS1525, line: 18, column: 30): Invalid expression term 'double'

[12:41:30 18] [insane Limits] ERROR: (CS1026, line: 18, column: 46): ) expected

[12:41:30 18] [insane Limits] ERROR: (CS1525, line: 37, column: 32): Invalid expression term ')'

[12:41:30 18] [insane Limits] ERROR: (CS1002, line: 37, column: 41): ; expected

[12:41:30 18] [insane Limits] ERROR: (CS1525, line: 37, column: 41): Invalid expression term ')'

 

Thank you to help me :ohmy:

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

Originally Posted by micovery*:

 

I've multiple error with debug...

 

[12:41:30 18] [insane Limits] ERROR: 5 errors compiling Expression

[12:41:30 18] [insane Limits] ERROR: (CS1525, line: 18, column: 30): Invalid expression term 'double'

[12:41:30 18] [insane Limits] ERROR: (CS1026, line: 18, column: 46): ) expected

[12:41:30 18] [insane Limits] ERROR: (CS1525, line: 37, column: 32): Invalid expression term ')'

[12:41:30 18] [insane Limits] ERROR: (CS1002, line: 37, column: 41): ; expected

[12:41:30 18] [insane Limits] ERROR: (CS1525, line: 37, column: 41): Invalid expression term ')'

 

Thank you to help me :ohmy:

There is a mistake in the example instructions ... the first_check should be of type Code, and not Expression.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by ganjaparadise*:

 

Work perfectly thank you ;-)

 

But it's possible to authorize just one Uppercase for location A, B, C... and regex all word with Uppercase cos people complain me for that :-/

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

Originally Posted by PapaCharlie9*:

 

On top of micovery's example there is a good quick reference at http://www.regular-expressions.info/reference.html

 

You can also test out expressions online at http://www.myregextester.com/index.php. Make sure you tick the "USE .NET" if you're testing it for use in a plugin.

I'm a little late to the party here, but here are my favorite links for Regex help:

 

http://msdn.microsoft.com/en-us/library/az24scfc.aspx

 

http://www.mikesdotnetting.com/Artic...ns-Cheat-Sheet

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

Originally Posted by PapaCharlie9*:

 

Is it possible to do some sort of weapon use restriction (for example m320/RPG kills) to trigger only on infantry, and not on tanks or vehicles

Probably not.

 

I don't think the server protocol specifies vehicles as victims, only as a weapon type used by the killer. However, I'll look in my logs for infantry victims vs. vehicle victims when the weapon is RPG. There might be enough information around the event to make an educated guess, which can then be converted into code called a "heuristic".

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

Originally Posted by Fruity*:

 

This limit responds in the In-Game chat when someone types @shownext

 

Set the limit to evaluate OnAnyChat, and set the action to None.

 

Set first_check to this Expression:

 

Code:

player.LastChat.StartsWith("@shownext")
Set second_check to this Code:

 

Code:

/* BF3 friendly map names, including B2K */
    Dictionary<String, String> Maps = new Dictionary<String, String>();
    Maps.Add("MP_001", "Grand Bazaar");
    Maps.Add("MP_003", "Teheran Highway");
    Maps.Add("MP_007", "Caspian Border");
    Maps.Add("MP_011", "Seine Crossing");
    Maps.Add("MP_012", "Operation Firestorm");
    Maps.Add("MP_013", "Damavand Peak");
    Maps.Add("MP_017", "Noshahr Canals");
    Maps.Add("MP_018", "Kharg Island");
    Maps.Add("MP_Subway", "Operation Metro");
    Maps.Add("XP1_001", "Strike At Karkand");
    Maps.Add("XP1_002", "Gulf of Oman");
    Maps.Add("XP1_003", "Sharqi Peninsula");
    Maps.Add("XP1_004", "Wake Island");
    
    /* BF3 friendly game modes, including B2K */
    Dictionary<String, String> Modes = new Dictionary<String, String>();    
    Modes.Add("ConquestLarge0", "Conquest64");
    Modes.Add("ConquestSmall0", "Conquest");
    Modes.Add("ConquestSmall1", "Conquest Assault");
    Modes.Add("RushLarge0", "Rush");
    Modes.Add("SquadRush0", "Squad Rush");
    Modes.Add("SquadDeathMatch0", "Squad Deathmatch");
    Modes.Add("TeamDeathMatch0", "Team Deathmatch");
    
    plugin.ConsoleWrite(plugin.R("%p_n% wants to know the next map"));
    if (Maps.ContainsKey(server.NextMapFileName) && Modes.ContainsKey(server.NextGamemode))
        plugin.SendGlobalMessage("The next map is " + Maps[server.NextMapFileName]+" on " + Modes[server.NextGamemode]);
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by micovery*:

 

This limit will activate for players who get more than 90% headshots after 30 kills (with a specific weapon). This works across rounds. (Total stats are not reset at the end of the round).

 

Set limit to evaluate OnKill, set action to Kick,

 

Set first_check to this Code:

 

Code:

double kills = player[kill.Weapon].KillsTotal;
         double headshots = player[kill.Weapon].HeadshotsTotal;
         double headshots_percent = Math.Round((headshots / kills)*100.0, 2);
         
         if (headshots_percent > 90 && kills > 30)
         {
             plugin.ConsoleWrite(plugin.R("%p_n% has " + headshots_percent + " headshots percent with "+ kill.Weapon + " after " + kills + " kills"));
             return true;
         }
         
         return false;
Set these action specific parameters:

Code:

kick_message = %p_n%, you were kicked for suspicious headshots percentage with %w_n%
This feature (per-weapon stats) is not extensively tested. You should adjust the conditions to test, and see if it works as you expect it. If you are going to test it on a populated server, make sure it's on virtual so you can adjust the values until you feel comfortable that it will not kick everyone.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by micovery*:

 

Work perfectly thank you ;-)

 

But it's possible to authorize just one Uppercase for location A, B, C... and regex all word with Uppercase cos people complain me for that :-/

I have modified the example, so that it would only consider sentences with more than 1 word.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PhaxeNor*:

 

This limit will say server rules to the player on request when the player type !rules

 

Set limit to evaluate OnAnyChat and set action to None

 

Set first_check to Expression

Code:

player.LastChat.StartsWith("!rules")
Set second_check to Code

Code:

// Edit rules here
List<String> Rules = new List<String>();
Rules.Add("----- SERVER RULES -----");
Rules.Add("No Cheating, Glitching, Statspadding!");
Rules.Add("No Baserape or spawncamping");
Rules.Add("No mainbase camping");
// Try not to add more Rules.Add because it won't fit in the chat box.


if(limit.Activations(player.Name) <= 2)
    foreach(string Rule in Rules)
        plugin.SendSquadMessage(player.TeamId, player.SquadId, Rule);

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

Originally Posted by PapaCharlie9*:

 

I've started a virtual "whiteboard" discussion of a complicated use case for Insane Limits: My Favorite Victims*. Please check out the thread and contribute your ideas and code!

 

I explain in that thread why I started a new thread rather than do it inline here. Let me know what you think.

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

Originally Posted by Rucki*:

 

My wish;

 

If Playerxx

killed by Claymore =4 times in one round

Say

Watch your step Playerxx! You found #Nrx of enemy Clays.

 

If Playerxx

killed by Claymore =5 times in one round

Say

Are you blind Playerxx ? You found #Nrx of enemy Clays.

 

If Playerxx

killed by Claymore =6 times in one round

Say

Blind. Playerxx could not read the chat. Gathered 6 Clays in this round!

 

If Playerxx

killed by Claymore >6 times in one round

Playerxx, Pro-clay-gatherering is not allowed!

 

 

Thx!

Rucki

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

Originally Posted by Rucki*:

 

And another wish:

 

Because of Mixed-server, I would like this Gamemode-based.

 

For Rush

 

If Mapmode Rush AND Recon AND Attacker ON Rush AND Playerxxx has >20 LongRangeWeaponkills And AttackerTeam is

Say

Stop Sniper Playerxxx, go for Objektives! Rush! Attack!

 

For Conquest:

 

If Mapmode Conquest AND Recon AND >20 Playerxxx has LongRangeWeaponkills AND AttackerTeam is

Say

Stop Sniper Playerxxxx, go for Objektives! Rush! Attack!

 

For TeamDeathMatch:

If Mapmode TeamDeatchMatch

Do nothing. :ohmy:

 

Thx!

Rucki

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

Originally Posted by WaxMyCarrot*:

 

This limit will activate for players who get more than 90% headshots after 30 kills (with a specific weapon). This works across rounds. (Total stats are not reset at the end of the round).

 

Set limit to evaluate OnKill, set action to Kick,

 

Set first_check to this Code:

 

Code:

double kills = player[kill.Weapon].KillsTotal;
         double headshots = player[kill.Weapon].HeadshotsTotal;
         double headshots_percent = Math.Round((headshots / kills)*100.0, 2);
         
         if (headshots_percent > 90 && kills > 30)
         {
             plugin.ConsoleWrite(plugin.R("%p_n% has " + headshots_percent + " headshots percent with "+ kill.Weapon + " after " + kills + " kills"));
             return true;
         }
         
         return false;
Set these action specific parameters:

Code:

kick_message = %p_n%, you were kicked for suspicious headshots percentage with %w_n%
This feature (per-weapon stats) is not extensively tested. You should adjust the conditions to test, and see if it works as you expect it. If you are going to test it on a populated server, make sure it's on virtual so you can adjust the values until you feel comfortable that it will not kick everyone.
Do you have to set specific weapons or will this check all weapons and base it off of any weapon said person gets 90% on?
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by Mootart*:

 

i tried to tweak the code but cannot find the right one. can you help me micovery

 

i wanted to kill the player when he use a forbiden weapon like m320 and smaw rpg.

 

eg when a player use this weapon to kill player will be killed with msg.

 

if a player use it again 2nd time. player will be kicked with msg.

 

player rejoins the server and use it again. Player will be temp ban with msg.

 

is this possible?

 

 

1st Kill Player with msg

2nd Kick Player with msg

3rd Temporary ban Player with msg.

 

 

Thank you so much for you time... hope you can help me with the code.

 

Set limit to evaluate OnKill, set action to Kick_Say, or any other action you wish

 

Set first_check to this Expression:

 

Code:

( kill.Weapon.Equals("M320") ) || ( kill.Weapon.Equals("RPG-7") ) || ( kill.Weapon.Equals("SMAW") )
Set these action specific parameters:

 

Code:

kick_message = No M320\RPG\SMAW! connect again and dont use this weapon!
     say_message = %p_n% killed with %w_n%, he kill %v_n%! KICKED!
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by badlizz*:

 

Hello there, thanks for this great tool. I have a request and am not sure how to make it work.

I would like to make a list of clans that are not allowed to play on the server. This would stop me from having to ban each individual player from a clan ie. the AA guys or others.

 

I saw that you had a way of checking chat, and you have a way of announcing which clan played the best etc. So I imagine that there has to be a way to get the clan tag from battle log and add it to a list to kick them from the server?

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

Originally Posted by micovery*:

 

Set use_custom_lists to True and create a new list with these parameters:

 

Code:

name = [b]clan_list[/b]
       data = clan1, clan2, clan3, clan3
Create a new limit to evaluate OnJoin and set action to Kick

 

Set first_check to this Expression:

 

Code:

plugin.isInList(player.Tag, "[b]clan_list[/b]")
Set these action specific parameters:

 

Code:

kick_message = %p_n%, your clan [%p_ct%] is not welcomed here!
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by micovery*:

 

Set limit to evaluate OnKill and action to None

 

Set first_check to this Expression

Code:

( true )
Set second_check to this Code

 

Code:

Dictionary<int, String> kmessage = new Dictionary<int, String>();
    kmessage.Add(6, "[SPREE] %p_n% with %r_x% kills!");
    kmessage.Add(8, "[RAMPAGE] %p_n% with %r_x% kills!");
    kmessage.Add(10, "[DOMINATION] %p_n% with %r_x% kills!");
    kmessage.Add(12, "[UNSTOPPABLE] %p_n% with %r_x% kills!");
    kmessage.Add(14, "[GODLIKE] %p_n% with %r_x% kills!");
    kmessage.Add(16, "[LEGENDARY] %p_n% with %r_x% kills!");
    
    Dictionary<int, String> vmessage = new Dictionary<int, String>();
    vmessage.Add(6, "%k_n% ended %v_n%'s killing spree!");
    vmessage.Add(8, "%k_n% ended %v_n%'s rampage!");
    vmessage.Add(10, "%k_n% ended %v_n%'s domination!");
    vmessage.Add(12, "%k_n% ended %v_n%'s unstoppable kill streak!");
    vmessage.Add(14, "%k_n% ended %v_n%'s godlike kill streak!");
    vmessage.Add(16, "%k_n% ended %v_n%'s legendary kill streak!");

    List<int> vkeys = new List<int>(vmessage.Keys);
    List<int> kkeys = new List<int>(kmessage.Keys);

    vkeys.Sort(delegate(int left, int right) { return left.CompareTo(right)*-1; });
    kkeys.Sort(delegate(int left, int right) { return left.CompareTo(right)*-1; });

    int kcount = (int) limit.Spree(player.Name);
    int vcount = (limit.RoundData.issetInt(victim.Name))_ limit.RoundData.getInt(victim.Name): 0;
    
    for(int i = 0; i < vkeys.Count; i++)
        if (vcount >= vkeys[i])
        {   vcount = vkeys[i];

            String message = plugin.R(vmessage[vcount]);
            plugin.ConsoleWrite(message);
            plugin.SendGlobalMessage(message);
            limit.RoundData.unsetInt(victim.Name);
            break;
        }

    for(int i = 0; i < kkeys.Count; i++)
        if (kcount == kkeys[i])
        {
            String message = plugin.R(kmessage[kcount]);
            plugin.ConsoleWrite(message);
            plugin.SendGlobalMessage(message);
            limit.RoundData.setInt(killer.Name, kcount);
            break;
        }
    
    return false;
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by Mootart*:

 

micovery hope you can help me with my problem! thanks again...

 

 

i tried to tweak the code but cannot find the right one. can you help me micovery

 

i wanted to kill the player when he use a forbiden weapon like m320 and smaw rpg.

 

eg when a player use this weapon to kill player will be killed with msg.

 

if a player use it again 2nd time. player will be kicked with msg.

 

player rejoins the server and use it again. Player will be temp ban with msg.

 

is this possible?

 

 

1st Kill Player with msg

2nd Kick Player with msg

3rd Temporary ban Player with msg.

 

 

Thank you so much for you time... hope you can help me with the code.

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.




  • 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.