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.




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