Jump to content

Insane Limits Requests


ImportBot

Recommended Posts

Originally Posted by spatieman*:

 

  • Limits for insane limits are written in C# so I would suggest learning that language. Just google for C# Tutorials for beginners, here is one such tutorial:

  • You can read the proconrulz.ini file in from Insane Limits code but it won't understand the rulz, you're better off either just using ProconRulz or manually translating the rulz to Insane Limits.
ok, i bookmarked the link.

as for the ini file, i want to make a code that let insane limits read a specific variable in it, so that it would able to turn on, or off a a plugin.

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

Originally Posted by llB00Nll*:

 

Hi, I am trying to get the following code to work. The issue Im having is it doesnt seem to be tracking the vehicles in the code properly. If someone can take a look over it and let me know if any errors are noticed It would be greatly appreciated.

 

Tank/LAV/HIMARS/DV15 Limit (I am wanting a combined 50 kills total in those vehicles per round)

// Message templates

// {0} will be replaced with PlayerName

// {1} will be replaced by limited weapon/vehicle name, see below

// {2} will be replaced with total kills to kick

// {3} will be replaced with kills left to kick

String autoWarned = "{0} AUTO-WARNED for using the LIMITED {1} by {2} kills in total, {3} kills left";

String autoKilled = "{0} AUTO-KILLED as a last warning for using the LIMITED {1}";

String autoKicked = "{0} AUTO-KICKED for {2} kills using the LIMITED {1}";

String yellWarned = "The {1} is limited. You will be AUTO-KICKED upon {2} kills with it, {3} kills left";

String yellKilled = "The {1} is limited. You will be AUTO-KICKED next time you use it again";

 

// Times

int killsTotal = 50; // kills

int killsTotal_final = killsTotal - 2; // Max accepted kills

int yellTime = 10; // seconds

 

// Times (VIP)

int VIPkillsTotal = 50; // VIP kills

int VIPkillsTotal_final = VIPkillsTotal - 2; // Max accepted VIP kills

double VIPmultiKillTime = 1; // seconds

 

/* CODE */

 

if (!Regex.Match(kill.Weapon, @"(CH_IFV_ZBD09|LAV25|M1ABRAMS|CH_MBT_Type99|HIMAR S|CH_FAC_DV15_RU|US_FAC-CB90)").Success) return false;

 

String limited = "LandWaterAttackVehicles";

 

String key = "PersistLV_" + killer.Name;

 

DateTime last = DateTime.MinValue;

if (server.Data.issetObject(key)) last = (DateTime)server.Data.getObject(key);

if (DateTime.Now.Subtract(last).TotalSeconds

server.Data.setObject(key, (Object)DateTime.Now);

 

int count = 0;

if (plugin.RoundData.issetInt(key)) count = plugin.RoundData.getInt(key);

 

count = count + 1;

 

int killsLeft = 0;

killsLeft = killsTotal_final - count;

//(VIP)

int VIPkillsLeft = 0;

VIPkillsLeft = VIPkillsTotal_final - count;

 

String msg = null;

 

if (!plugin.GetReservedSlotsList().Contains(player.Na me)) {

if (count > killsTotal_final - 5 && count

 

msg = String.Format(autoWarned, killer.Name, limited, killsTotal_final.ToString(), killsLeft.ToString());

plugin.SendGlobalMessage(msg);

plugin.SendPlayerYell(killer.Name, String.Format(yellWarned, killer.Name, limited, killsTotal_final.ToString(), killsLeft.ToString()), yellTime);

plugin.PRoConChat(plugin.R("ADMIN > ^b" + msg + "^n"));

plugin.PRoConEvent(msg, "Insane Limits");

 

} else if (count == killsTotal - 1) { // Kill

 

msg = String.Format(autoKilled, killer.Name, limited);

plugin.SendGlobalMessage(msg);

plugin.SendPlayerYell(killer.Name, String.Format(yellKilled, killer.Name, limited), yellTime);

plugin.PRoConChat(plugin.R("ADMIN > ^b" + msg + "^n"));

plugin.PRoConEvent(msg, "Insane Limits");

plugin.KillPlayer(killer.Name, 6);

 

} else if (count >= killsTotal) { // Kick

 

msg = String.Format(autoKicked, killer.Name, limited, killsTotal.ToString());

plugin.SendGlobalMessage(msg);

plugin.PRoConChat(plugin.R("ADMIN > ^b" + msg + "^n"));

plugin.PRoConEvent(msg, "Insane Limits");

plugin.KickPlayerWithMessage(killer.Name, msg);

 

}

}

 

if (plugin.GetReservedSlotsList().Contains(player.Nam e)) {

if (count > VIPkillsTotal_final - 5 && count

 

msg = String.Format(autoWarned, killer.Name, limited, VIPkillsTotal_final.ToString(), VIPkillsLeft.ToString());

plugin.SendGlobalMessage(msg);

plugin.SendPlayerYell(killer.Name, String.Format(yellWarned, killer.Name, limited, VIPkillsTotal_final.ToString(), VIPkillsLeft.ToString()), yellTime);

plugin.PRoConChat(plugin.R("ADMIN > ^b" + msg + "^n"));

plugin.PRoConEvent(msg, "Insane Limits");

 

} else if (count == VIPkillsTotal - 1) { // Kill

 

msg = String.Format(autoKilled, killer.Name, limited);

plugin.SendGlobalMessage(msg);

plugin.SendPlayerYell(killer.Name, String.Format(yellKilled, killer.Name, limited), yellTime);

plugin.PRoConChat(plugin.R("ADMIN > ^b" + msg + "^n"));

plugin.PRoConEvent(msg, "Insane Limits");

plugin.KillPlayer(killer.Name, 6);

 

} else if (count >= VIPkillsTotal) { // Kick

 

msg = String.Format(autoKicked, killer.Name, limited, VIPkillsTotal.ToString());

plugin.SendGlobalMessage(msg);

plugin.PRoConChat(plugin.R("ADMIN > ^b" + msg + "^n"));

plugin.PRoConEvent(msg, "Insane Limits");

plugin.KickPlayerWithMessage(killer.Name, msg);

 

}

}

plugin.RoundData.setInt(key, count);

return false;

Attack/Scout/Jet Limit ( A combined 30 kills per round )

 

// Message templates

// {0} will be replaced with PlayerName

// {1} will be replaced by limited weapon/vehicle name, see below

// {2} will be replaced with total kills to kick

// {3} will be replaced with kills left to kick

String autoWarned = "{0} AUTO-WARNED for using the LIMITED {1} by {2} kills in total, {3} kills left";

String autoKilled = "{0} AUTO-KILLED as a last warning for using the LIMITED {1}";

String autoKicked = "{0} AUTO-KICKED for {2} kills using the LIMITED {1}";

String yellWarned = "The {1} is limited. You will be AUTO-KICKED upon {2} kills with it, {3} kills left";

String yellKilled = "The {1} is limited. You will be AUTO-KICKED next time you use it again";

 

// Times

int killsTotal = 30; // kills

int killsTotal_final = killsTotal - 2; // Max accepted kills

int yellTime = 10; // seconds

 

// Times (VIP)

int VIPkillsTotal = 30; // VIP kills

int VIPkillsTotal_final = VIPkillsTotal - 2; // Max accepted VIP kills

double VIPmultiKillTime = 1; // seconds

 

/* CODE */

 

if (!Regex.Match(kill.Weapon, @"(Z-10w|AH1Z|MI28|Z-11w_CH|AH6_Littlebird|A10_THUNDERBOLT|CH_FJET_J-20|F35B|SU-25TM|CH_JET_Q5_FANTAN)").Success) return false;

 

String limited = "Attack/Scout/Jet";

 

String key = "PersistAH_" + killer.Name;

 

DateTime last = DateTime.MinValue;

if (server.Data.issetObject(key)) last = (DateTime)server.Data.getObject(key);

if (DateTime.Now.Subtract(last).TotalSeconds

server.Data.setObject(key, (Object)DateTime.Now);

 

int count = 0;

if (plugin.RoundData.issetInt(key)) count = plugin.RoundData.getInt(key);

 

count = count + 1;

 

int killsLeft = 0;

killsLeft = killsTotal_final - count;

//(VIP)

int VIPkillsLeft = 0;

VIPkillsLeft = VIPkillsTotal_final - count;

 

String msg = null;

 

if (!plugin.GetReservedSlotsList().Contains(player.Na me)) {

if (count > killsTotal_final - 5 && count

 

msg = String.Format(autoWarned, killer.Name, limited, killsTotal_final.ToString(), killsLeft.ToString());

plugin.SendGlobalMessage(msg);

plugin.SendPlayerYell(killer.Name, String.Format(yellWarned, killer.Name, limited, killsTotal_final.ToString(), killsLeft.ToString()), yellTime);

plugin.PRoConChat(plugin.R("ADMIN > ^b" + msg + "^n"));

plugin.PRoConEvent(msg, "Insane Limits");

 

} else if (count == killsTotal - 1) { // Kill

 

msg = String.Format(autoKilled, killer.Name, limited);

plugin.SendGlobalMessage(msg);

plugin.SendPlayerYell(killer.Name, String.Format(yellKilled, killer.Name, limited), yellTime);

plugin.PRoConChat(plugin.R("ADMIN > ^b" + msg + "^n"));

plugin.PRoConEvent(msg, "Insane Limits");

plugin.KillPlayer(killer.Name, 6);

 

} else if (count >= killsTotal) { // Kick

 

msg = String.Format(autoKicked, killer.Name, limited, killsTotal.ToString());

plugin.SendGlobalMessage(msg);

plugin.PRoConChat(plugin.R("ADMIN > ^b" + msg + "^n"));

plugin.PRoConEvent(msg, "Insane Limits");

plugin.KickPlayerWithMessage(killer.Name, msg);

 

}

}

 

if (plugin.GetReservedSlotsList().Contains(player.Nam e)) {

if (count > VIPkillsTotal_final - 5 && count

 

msg = String.Format(autoWarned, killer.Name, limited, VIPkillsTotal_final.ToString(), VIPkillsLeft.ToString());

plugin.SendGlobalMessage(msg);

plugin.SendPlayerYell(killer.Name, String.Format(yellWarned, killer.Name, limited, VIPkillsTotal_final.ToString(), VIPkillsLeft.ToString()), yellTime);

plugin.PRoConChat(plugin.R("ADMIN > ^b" + msg + "^n"));

plugin.PRoConEvent(msg, "Insane Limits");

 

} else if (count == VIPkillsTotal - 1) { // Kill

 

msg = String.Format(autoKilled, killer.Name, limited);

plugin.SendGlobalMessage(msg);

plugin.SendPlayerYell(killer.Name, String.Format(yellKilled, killer.Name, limited), yellTime);

plugin.PRoConChat(plugin.R("ADMIN > ^b" + msg + "^n"));

plugin.PRoConEvent(msg, "Insane Limits");

plugin.KillPlayer(killer.Name, 6);

 

} else if (count >= VIPkillsTotal) { // Kick

 

msg = String.Format(autoKicked, killer.Name, limited, VIPkillsTotal.ToString());

plugin.SendGlobalMessage(msg);

plugin.PRoConChat(plugin.R("ADMIN > ^b" + msg + "^n"));

plugin.PRoConEvent(msg, "Insane Limits");

plugin.KickPlayerWithMessage(killer.Name, msg);

 

}

}

plugin.RoundData.setInt(key, count);

return false;

I think the main issue Im having is the proper names of the said vehicles, some track while others dont and I cant seem to find the correct vehicle name. I would even go so far as to PayPal donate someone for a proper working code of these two limits. Any help is appreciated.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by Grovax*:

 

Hi, I am trying to get the following code to work. The issue Im having is it doesnt seem to be tracking the vehicles in the code properly. If someone can take a look over it and let me know if any errors are noticed It would be greatly appreciated.

 

Tank/LAV/HIMARS/DV15 Limit (I am wanting a combined 50 kills total in those vehicles per round)

 

 

Attack/Scout/Jet Limit ( A combined 30 kills per round )

 

 

 

I think the main issue Im having is the proper names of the said vehicles, some track while others dont and I cant seem to find the correct vehicle name. I would even go so far as to PayPal donate someone for a proper working code of these two limits. Any help is appreciated.

The biggest problem is, not all vehicle kills logged as vehicle kills. most kills shown as "Death". i have tested many options for my sniperlimit and infantry only script.

 

this is the only way to log all, but you cant distinguish all kills between tank or heli/jet

 

Regex for Tank/LAV/HIMARS/DV15:

Code:

Regex.Match(kill.Weapon, @"(_:Death|APC|Anti-Air|MBT|HIMARS|DV-15|CB90|PGZ-95)", RegexOptions.IgnoreCase)
Regex for Attack/Scout/Jet Limit:

Code:

Regex.Match(kill.Weapon, @"(_:Death|Heli|Jet|Bird)", RegexOptions.IgnoreCase)
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by llB00Nll*:

 

Well I did do a bunch of testing and having the "_:death" added into the code tracked the Lil Birds finally, I have never had a issue tracking the Attack Helos. The issue is that adding "_:death" into both codes or even just one of them is too broad a sword in a sense, if someone hits the helo limit it kicks if they get a kill in the tank limits.

 

Would there be another suggestion of trying ?

 

Again thanks for the help.

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

Originally Posted by Grovax*:

 

Well I did do a bunch of testing and having the "_:death" added into the code tracked the Lil Birds finally, I have never had a issue tracking the Attack Helos. The issue is that adding "_:death" into both codes or even just one of them is too broad a sword in a sense, if someone hits the helo limit it kicks if they get a kill in the tank limits.

 

Would there be another suggestion of trying ?

 

Again thanks for the help.

You can use both Regex without Death, but then you cant log 100% of all kills. Some heli or tank kills are logged as "Death". Yes, when anyone kill one and the server send "Death" to Procon, then he get a count on both limits. Best way for you is without "Death"
* Restored post. It could be that the author is no longer active.
Link to comment
  • 5 weeks later...

Originally Posted by cssqw7_3*:

 

Request "Insane Limits" code (only sniper squad deathmatch)

hello,

Due to server rules in the code limits the protection "admins_and_reserved_slots", in the use of proconrulz cannot further VIP transition using weapons to restrict the server, I thought of you can use "insane limits" to restrict, to assist in the server is running the all staff to SQDM mode after the server can only use sniper to have, it's a pity I will not write "insane limits" of the code, so I come to for help, request to find the right code, thank you.

Requirements:

1, the server whether any maps in running "squad" deathmatch mode, all players in the game can only be used to limit weapons to kill (sniper or which, etc.).

2, whether managers or VIP if you use the unrestricted weapons to kill will be punished.

3, can be customised forgiveness conditions, such as: kill 1 or 2 times, punishment execution and warned that more than kill limit, kick out the game server.

4, to ban all explosive damage, including poison arrows, bomb bows and arrows.

5, and prohibited gun damage, but not the MARE 'S legs ", many people like to use it for entertainment.

6, sniper demand a ban on all weapons of DMR damage and "SR338" he destroyed the balance.

Thank you, please help me to write a rule that I don't know if I describe clearly, I can't write "insane limits" rules

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

Originally Posted by cssqw7_3*:

 

Dear, who can help me

I hope can get help here,Please help me to replace "InsaneLimits" code,Below is I use "proconrulz" to write the code, I want to make him run in "InsaneLimits", should be how to write the rules, thank you, please help me.

Code:

On Spawn;mapmode SquadDeathMatch0;playeryell %p% Can only use a sniper rifle / zhi neng shi yong ju ji qiang!!!
On kill;mapmode SquadDeathMatch0;Not Damage SniperRifle;Not Damage Melee;Not Weapon U_SaddlegunSnp;Not Weapon dlSHTR;PlayerCount 2;Log %p% kicked (snipers / pistols only);Kick %p% snipers only
On Kill;mapmode SquadDeathMatch0;Not Damage SniperRifle;Not Damage Melee;Not Weapon U_SaddlegunSnp;Not Weapon dlSHTR;PlayerSay %p% snipers/pistols only;Kill 100
On Kill;mapmode SquadDeathMatch0;Weapon U_SR338;PlayerSay %p% no SR338;kill 100
* Restored post. It could be that the author is no longer active.
Link to comment
  • 1 month later...

Originally Posted by spatieman*:

 

it took me 3 months to dig all 302 pages, i found many nice request examples, most i used.

so thanks to all coders.

but..

 

i have request my self.

in this post myrcon.net/...insane-limits-examples#entry18454

that is a limit that spams the clan tag that scored the best points on tickets.

 

i wonder if it could be modded so that it spams (after check i hope) in a range.

say, tickets range >5 and

and on >1 and

 

org code here

1st check

Code:

(team1.RemainTicketsPercent < 20 || team2.RemainTicketsPercent < 20)
2nd check

Code:

double count = limit.Activations();
    
    if (count > 3)
        return false;

    List<PlayerInfoInterface> players = new List<PlayerInfoInterface>();
    players.AddRange(team1.players);
    players.AddRange(team2.players);
    Dictionary<String, double> clan_stats = new Dictionary<String, double>();
    
    /* Collect clan statistics */
    foreach(PlayerInfoInterface player_info in players)
    {
        if(player_info.Tag.Length == 0)
            continue;
        
        if (!clan_stats.ContainsKey(player_info.Tag))
            clan_stats.Add(player_info.Tag, 0);
        
        clan_stats[player_info.Tag] += player_info.ScoreRound;
    }

    /* Find the best scoring clan */
    String best_clan = String.Empty;
    double best_score = 0;
    
    foreach(KeyValuePair<String, double> pair in clan_stats)
        if (pair.Value > best_score)
        {
             best_clan = pair.Key;
             best_score = pair.Value;
        }
    
    if (best_clan.Length > 0)
	{
		String message = "Top scoring clan this round is "+ best_clan + " with " + best_score + " points!";
                plugin.SendGlobalMessage(message); 
		plugin.ConsoleWrite(message);
        }   
    return false;
Thnxs..
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by maxdralle*:

ingame VIP commands for players with reserved slot.
multiple language support.


setup for insane limits
Evaluation: OnAnyChat
First_check: Code
First_check_code: put the code here


Code:

// Insane Limits - VIP Commands
// !lead, !killme, !switchme
// SETUP Insane Limits: Evaluation: OnAnyChat    ;   First_check: Code


// SETTINGS 
bool EnableLeadCmd = true;     // true / false
bool EnableKillmeCmd = true;     // true / false
bool EnableSwitchmeCmd = true;     // true / false
// SETTINGS END


if ((player.LastChat).Length < 1) { return false; }
bool tmp_SendMsg = false;

if (Regex.Match(player.LastChat, @"^/?[!|@]lead$", RegexOptions.IgnoreCase).Success) {
	// squad leader command
	if (EnableLeadCmd) {
		if (plugin.GetReservedSlotsList().Contains(player.Name)) {
			plugin.ServerCommand("squad.leader", player.TeamId.ToString(), player.SquadId.ToString(), player.Name);
		} else {
			tmp_SendMsg = true;
		}
	}
} else if (Regex.Match(player.LastChat, @"^/?[!|@]killme$", RegexOptions.IgnoreCase).Success) {
	// killme command
	if (EnableKillmeCmd) {
		if (plugin.GetReservedSlotsList().Contains(player.Name)) {
			plugin.KillPlayer(player.Name);
		} else {
			tmp_SendMsg = true;
		}
	}
} else if (Regex.Match(player.LastChat, @"^/?[!|@]switchme$", RegexOptions.IgnoreCase).Success) {
	// team switch command
	if (EnableSwitchmeCmd) {
		if (plugin.GetReservedSlotsList().Contains(player.Name)) {
			plugin.ServerCommand("admin.movePlayer", player.Name, server.OppositeTeamId(player.TeamId).ToString(), "0", "true");
		} else {
			tmp_SendMsg = true;
		}
	}
}

// send message based on player language
if (tmp_SendMsg) {
	if ((player.CountryCode == "br") || (player.CountryCode == "pt")) {
		// message for brasil, portugal
		plugin.SendPlayerMessage(player.Name, plugin.R("So para VIPs"));
		plugin.PRoConChat("PlayerSay " + player.Name + ") So para VIPs");
	} else {
		// default message
		plugin.SendPlayerMessage(player.Name, plugin.R("Sorry, this command is for !VIP SLOT players only"));
		plugin.PRoConChat("PlayerSay " + player.Name + ") Sorry, this command is for !VIP SLOT players only");
	}
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by Grovax*:

 

Hi

I wrote it again did not work, i am procon novice you can help me write it out? Prohibit M224, kill one person kick out the server. Thank you!

when you will ban m224 complete from your server. you can use the On-Spawn Loadout Enforcer plugin ( myrcon.net/.../on-spawn-loadout-enforcer-for-infantryvehicles-adkatslrt ) thats the best way, because player cant spawn with m224
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by GR101*:

Code:

// Insane Limits - VIP Commands
// !lead, !killme, !switchme
// SETUP Insane Limits: Evaluation: OnAnyChat    ;   First_check: Code


// SETTINGS
bool EnableLeadCmd = true;     // true / false
bool EnableKillmeCmd = true;     // true / false
bool EnableSwitchmeCmd = true;     // true / false
// SETTINGS END


if ((player.LastChat).Length < 1) { return false; }
bool tmp_SendMsg = false;

if (Regex.Match(player.LastChat, @"^/?[!|@]lead$", RegexOptions.IgnoreCase).Success) {
    // squad leader command
    if (EnableLeadCmd) {
        if (plugin.GetReservedSlotsList().Contains(player.Name)) {
            plugin.ServerCommand("squad.leader", player.TeamId.ToString(), player.SquadId.ToString(), player.Name);
        } else {
            tmp_SendMsg = true;
        }
    }
} else if (Regex.Match(player.LastChat, @"^/?[!|@]killme$", RegexOptions.IgnoreCase).Success) {
    // killme command
    if (EnableKillmeCmd) {
        if (plugin.GetReservedSlotsList().Contains(player.Name)) {
            plugin.KillPlayer(player.Name);
        } else {
            tmp_SendMsg = true;
        }
    }
} else if (Regex.Match(player.LastChat, @"^/?[!|@]switchme$", RegexOptions.IgnoreCase).Success) {
    // team switch command
    if (EnableSwitchmeCmd) {
        if (plugin.GetReservedSlotsList().Contains(player.Name)) {
            plugin.ServerCommand("admin.movePlayer", player.Name, server.OppositeTeamId(player.TeamId).ToString(), "0", "true");
        } else {
            tmp_SendMsg = true;
        }
    }
}

// send message based on player language
if (tmp_SendMsg) {
    if ((player.CountryCode == "br") || (player.CountryCode == "pt")) {
        // message for brasil, portugal
        plugin.SendPlayerMessage(player.Name, plugin.R("So para VIPs"));
        plugin.PRoConChat("PlayerSay " + player.Name + ") So para VIPs");
    } else {
        // default message
        plugin.SendPlayerMessage(player.Name, plugin.R("Sorry, this command is for !VIP SLOT players only"));
        plugin.PRoConChat("PlayerSay " + player.Name + ") Sorry, this command is for !VIP SLOT players only");
    }
}

Thanks for sharing this, we have different levels of VIP player slots e.g. free, supporter, events/challenge and paid. Instead of all VIP get "!lead, !killme and !switchme" I want to be able to delegate VIP roles to different VIP players. Not all VIP's are equal.

Different lists for different levels of VIP status.

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

Originally Posted by Grovax*:

 

Hey can someone help me i want block All explosives from

LOCKER & METRO

that is my no explosives script for locker/metro, first/second kill with explosives = only a warning + kill, third kill with explosive = serverkick with message

 

 

 

SETUP LIMIT#1

limit_evaluation: OnKill

limit_first_check: Expression

limit_first_check_code: paste the CODE#1 here

 

CODE#1

Code:

(Regex.Match(server.MapFileName, @"(_:MP_Prison|XP0_Metro)", RegexOptions.IgnoreCase).Success && (Regex.Match(kill.Category, @"(Explosive|ProjectileExplosive|Impact)", RegexOptions.IgnoreCase).Success || Regex.Match(kill.Weapon, @"(M26 Frag)", RegexOptions.IgnoreCase).Success))
SETUP LIMIT#2

limit_second_check: Code

limit_second_check_code: paste the CODE#2 here

 

CODE#2

Code:

if (Regex.Match(kill.Weapon, @"(_:SMK|FLASH|Shield)", RegexOptions.IgnoreCase).Success) return false;

// show warnings at procon chattab
// yes = true | no = false
bool bShowToProcon = true;

String kCounter = killer.Name + "_NoExplosives_Count";
TimeSpan time = TimeSpan.FromSeconds(5); // Activations within 5 seconds count as 1

int warnings = 0;
if (plugin.RoundData.issetInt(kCounter)) warnings = plugin.RoundData.getInt(kCounter);

if (warnings == 0) {
	String globalMessage = killer.FullName + " killed for explosive kill on " + plugin.FriendlyMapName(server.MapFileName) + "!";
	plugin.SendGlobalMessage(globalMessage);
	if (bShowToProcon) plugin.PRoConChat("NoExplosives > Say > " + globalMessage);
	String privateMessage = "WARNING (1/3)! Explosives are not allowed on " + plugin.FriendlyMapName(server.MapFileName) + "! Read our rules!";
	plugin.SendPlayerYell(killer.Name, privateMessage, 10);
	if (bShowToProcon) plugin.PRoConChat("NoExplosives > Yell[10] > " + killer.Name + " > " + privateMessage);
	plugin.KillPlayer(killer.Name, 1);
	plugin.RoundData.setInt(kCounter, warnings+1);
	return false;
}

if (limit.Activations(killer.Name, time) > 1) return false;

if (warnings == 1) {
	String globalMessage = killer.FullName + " killed for explosive kill on " + plugin.FriendlyMapName(server.MapFileName) + "!";
	plugin.SendGlobalMessage(globalMessage);
	if (bShowToProcon) plugin.PRoConChat("NoExplosives > Say > " + globalMessage);
	String privateMessage = "FINAL WARNING (2/3)! Explosives are not allowed on " + plugin.FriendlyMapName(server.MapFileName) + "! Read our rules!";
	plugin.SendPlayerYell(killer.Name, privateMessage, 10);
	if (bShowToProcon) plugin.PRoConChat("NoExplosives > Yell[10] > " + killer.Name + " > " + privateMessage);
	plugin.KillPlayer(killer.Name, 1);
	plugin.RoundData.setInt(kCounter, warnings+1);
} else if (warnings >= 2) {
	plugin.KickPlayerWithMessage(player.Name, plugin.R("Kicked for ignoring warnings and killing with explosives!"));
}
plugin.RoundData.setInt(kCounter, warnings+1);
return false;
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by maxdralle*:
 

Code:

// Insane Limits - VIP Commands
// !lead, !killme, !switchme
// SETUP Insane Limits: Evaluation: OnAnyChat    ;   First_check: Code


// SETTINGS
bool EnableLeadCmd = true;     // true / false
bool EnableKillmeCmd = true;     // true / false
bool EnableSwitchmeCmd = true;     // true / false
// SETTINGS END


if ((player.LastChat).Length < 1) { return false; }
bool tmp_SendMsg = false;

if (Regex.Match(player.LastChat, @"^/?[!|@]lead$", RegexOptions.IgnoreCase).Success) {
    // squad leader command
    if (EnableLeadCmd) {
        if (plugin.GetReservedSlotsList().Contains(player.Name)) {
            plugin.ServerCommand("squad.leader", player.TeamId.ToString(), player.SquadId.ToString(), player.Name);
        } else {
            tmp_SendMsg = true;
        }
    }
} else if (Regex.Match(player.LastChat, @"^/?[!|@]killme$", RegexOptions.IgnoreCase).Success) {
    // killme command
    if (EnableKillmeCmd) {
        if (plugin.GetReservedSlotsList().Contains(player.Name)) {
            plugin.KillPlayer(player.Name);
        } else {
            tmp_SendMsg = true;
        }
    }
} else if (Regex.Match(player.LastChat, @"^/?[!|@]switchme$", RegexOptions.IgnoreCase).Success) {
    // team switch command
    if (EnableSwitchmeCmd) {
        if (plugin.GetReservedSlotsList().Contains(player.Name)) {
            plugin.ServerCommand("admin.movePlayer", player.Name, server.OppositeTeamId(player.TeamId).ToString(), "0", "true");
        } else {
            tmp_SendMsg = true;
        }
    }
}

// send message based on player language
if (tmp_SendMsg) {
    if ((player.CountryCode == "br") || (player.CountryCode == "pt")) {
        // message for brasil, portugal
        plugin.SendPlayerMessage(player.Name, plugin.R("So para VIPs"));
        plugin.PRoConChat("PlayerSay " + player.Name + ") So para VIPs");
    } else {
        // default message
        plugin.SendPlayerMessage(player.Name, plugin.R("Sorry, this command is for !VIP SLOT players only"));
        plugin.PRoConChat("PlayerSay " + player.Name + ") Sorry, this command is for !VIP SLOT players only");
    }
}
Thanks for sharing this, we have different levels of VIP player slots e.g. free, supporter, events/challenge and paid. Instead of all VIP get "!lead, !killme and !switchme" I want to be able to delegate VIP roles to different VIP players. Not all VIP's are equal.

Different lists for different levels of VIP status.

 

in insane limits you can use custom lists for VIP roles. create new lists (e.g. list_name: 'vip_lead_list') and put the VIP playernames into the data section.
then change the script. replace the parts 'if (plugin.GetReservedSlotsList().Contains(player.Nam e)) {' with 'if (plugin.isInList(player.Name, "vip_lead_list")) {'

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

Originally Posted by GR101*:

 

in insane limits you can use custom lists for VIP roles. create new lists (e.g. list_name: 'vip_lead_list') and put the VIP playernames into the data section.

then change the script. replace the parts 'if (plugin.GetReservedSlotsList().Contains(player.Nam e)) {' with 'if (!plugin.isInList(player.Name, "vip_lead_list")) {'

Many thanks, i'll give that ago.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by spatieman*:

 

i have a silly question.

on our server i have several limits running for hacker detection.

1st of all, the suicide hack crash preventor (perhaps obseleat, dunno if it is patched)

the SPM >950 checker on join.

the ACC >40 checker on join (i think this could be lower, but dunno it it kickes legit players)

this baby ( player.Spm > 1400 || player.Kdr > 5 || player.Kpm >30 ) xD

 

the ban high in round stuff

( (server.TimeRound/60) > 15 && (player.TimeRound/60) > 15 )

 

2nd check: code

2nd check expression

Double highKdr = 6.0;

Double highSpm = 800;

And the rest of the code.

 

A smart donkey hacker check

( server.TimeRound 10 )

with the rest of code.

 

A ingame hacker check, that count kills vs death in a amount of time

dunno if that also works with masive revives.....

 

and some other stuff.

 

now...

on a other platoon server i play, they have a 64 slot metro only server.

and that is a slaying field with kill and revive like hell.

my question is, is the stuff i have running workable on a 64 slot metro server to ?

i know there comes skilled players, but also cheating ****ts.

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

Originally Posted by spatieman*:

 

any1 a idea how to setup a anti-camp script ?

that checks if some1 is NOT moving (idle i guess) for 15 seconds or so, that he get killed only

and need to be moving atleast 10 seconds again..

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

Originally Posted by ColColonCleaner*:

 

any1 a idea how to setup a anti-camp script ?

that checks if some1 is NOT moving (idle i guess) for 15 seconds or so, that he get killed only

and need to be moving atleast 10 seconds again..

You can only do this in BFBC2, the later battlefield titles do not provide player location information over RCON. Also 15 seconds is way too short of a timespan.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by spatieman*:

 

You can only do this in BFBC2, the later battlefield titles do not provide player location information over RCON. Also 15 seconds is way too short of a timespan.

ugh,, ok ,was worth a try.

thank you !

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