Jump to content

ProconRulz V44j1 - weapon limits and other event-triggered admin actions


ColColonCleaner

Recommended Posts

Originally Posted by Skuzlebut*:

 

On Kill means that their was a death, right?

 

On Kill;%v% is the victim of a kill; which is functionally the same thing as a theoretical "on death" trigger.

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

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

I made a rulez script to track headshots, and announce them.  At the beginning of the next round, it will annonce the previous round "marksman". Feel free to use / modify/ improve   #HEADSHOT COUNTE

Posted Images

Originally Posted by spatieman*:

 

any sugestion what is wrong with this.

i know the syntax is corrent.

but it wont spam the correct content on round over.

 

Code:

# Teamkill checker
On teamkill;Incr %teamkill_dead[%p%]%;if %teamkiller% = 0 ;set %teamkiller% 1;set %teamkiller[%p%]% = %teamkill_dead[%p%]%

On RoundOver;
if %teamkiller% = 0 ;say YEAH, great round, NO TEAMKILLS
if %teamkiller% = 1 ;say BUMMER, %teamkiller[%p%]% was the first;say to make a teamkill,shame on you
* Restored post. It could be that the author is no longer active.
Link to post

Originally Posted by maxdralle*:

 

"On Teamkill;" get triggered by player event. "On RoundOver;" get triggered by server event without the private variables of the player event ( eg %teamkiller% ).

 

in proconrulz you can not parse the whole list of players to send everyone a private msg with his teamkill counter of the round. but with insane limits it is possible.

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

Originally Posted by spatieman*:

 

weard.

realy weard.

i have a bestweapon tracker that does spam on round over its stats.

but that has a player event with on kill, so i found it weard at all that this doesnt work.

all values with 0 should imho be spammed, i did a litle test by adding a "say END;" in front of the if %teamkiller%

so if %teamkiller% = 0 becomes say END;if %teamkiller% = 0

the ENDS shows up, but nothing after it.

 

well, back to the drawing board,

thnxs Maxdralle.

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

Originally Posted by maxdralle*:

 

your best weapon tracker store the info in %server_xxx%. this global variable is working for the on roundover trigger. but like i said, you can parse the player list. do it with insane limits, there you can parse the player list

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

Originally Posted by ricky1*:

 

hello guys, how the comand !rules is working on server? I'll try to Change it under Rulz.txt, but nothing happend on Server. Many thx for helping

* Restored post. It could be that the author is no longer active.
Link to post
  • 3 weeks later...

Originally Posted by spatieman*:

 

hello guys, how the comand !rules is working on server? I'll try to Change it under Rulz.txt, but nothing happend on Server. Many thx for helping

showthread....0-2015-03-031)*

this u need

* Restored post. It could be that the author is no longer active.
Link to post
  • 2 months later...

Originally Posted by Timm*:

 

Hi.

 

I use this script for !rules to show the rules to players in their language

 

#RULES

On Say;Text !rules;

If %pcountrykey% == 'ru';Exec punkBuster.pb_sv_command pb_sv_load rulru.cfg

If %pcountrykey% == 'de';Exec punkBuster.pb_sv_command pb_sv_load rulde.cfg

If %pcountrykey% == 'us';Exec punkBuster.pb_sv_command pb_sv_load rulen.cfg

If %pcountrykey% == 'fr';Exec punkBuster.pb_sv_command pb_sv_load rulfr.cfg

If %pcountrykey% == 'pl';Exec punkBuster.pb_sv_command pb_sv_load rulpl.cfg

 

How can I make it so that everyone who is not in the list of these countries receives the rules in English?

* Restored post. It could be that the author is no longer active.
Link to post
  • 3 weeks later...
  • Plugin Developer

Original post by bambam.

MAJOR UPDATE TO V44. BF4 SUPPORT, PLUS SUPPORT FOR EXTERNAL PROCONRULZ SCRIPT FILES


Summary

ProconRulz is a general-purpose Procon plugin that allows admin actions to be taken based on events and triggers. The most common usage is for weapon limits, e.g. "On Kill;Weapon SMAW;Kill" (which will limit the SMAW rockets by killing any player that kills with that weapon). Or you can limit players NOT using certain weapons, e.g. for a pistols-only server "On Kill;Not Damage Handgun;Kill" (which will kill any player that kills with anything NOT a pistol).

Rulz for many example requirements are given at the end of this thread

If you are new to ProconRulz, and look at the documentation, the fact that ProconRulz is now capable of enabling you to write sets of rulz that behave as killstreak announcers or in-game admin or rude-word-responders will appear scary at first, so don't forget ProconRulz was designed from the beginning to allow simple rulz to implement weapon limits, so it's easy to start with a single rule e.g. limiting nades with On Kill;Weapon M67;PlayerCount 3;Say Too many nade kills for %p%;Kill.

ONLINE DOCUMENTATION HERE


How to enter your rulz

 

Click the elements 1..5 as per the screenshot below.
NEW feature in V44 is the 'Rulz .txt filenames' plugin setting (#4 in screenshot) which allows you to have additional files containing rulz in the same folder as the proconrulz.cs file and load them directly from those files. This is the BEST approach if you have easy access to the rulz files that are in the ProconRulz download zip which go alongside the proconrulz.cs in the Plugins/ folder.
Alternatively you can enter rulz directly into the plugin in the multi-line 'Rules' setting entry: When the [...] button is clicked on the 'Rules' plugin setting (Just above #4 in image) a pop-up edit window wll appear and you cut-and-paste your rulz into that window and save. This may be simpler if you have a 'layer server' and a hosting company that makes it difficult to manage server files.

 

 

See below in this thread for sample rulz and an explanation of BF3/BF4 limitations so you don't ask the same "how do I block mortars" question as everyone else...

ProconRulz has a very flexible range of conditions and actions that can be applied, so as your rulz get fancy you are in effect creating a custom plugin. But everyone begins thinking they "just" want a simple weapon limit.

NEWS 25-Dec-2013: version 44j1 uploaded. Rulz .txt files now reloaded on plugin enable (useful for layer-server users).
NEWS 17-Dec-2013: version 44h6 uploaded. New On RoundOver trigger that fired on end-of-round (useful for BF4). !knife rulz added.
NEWS 9-Dec-2013: version 44g3 uploaded. BUGFIX version for new "On Init" trigger with BF3/4. Users who downloaded 44g.2 should replace with this version if they want to use the new On Init trigger (also used in snipersquad rulz set).
NEWS 6-Dec-2013: version 44g2 uploaded. Sniper Squad limiter rulz added. Added Linux support for %ini_..% vars file. New 'On Init' trigger that can be used for simple startup values for rules.
NEWS 2-Dec-2013: version 44f1 uploaded. Support for Linux external .txt rulz files. Updated sniper limit with additional !setsniper command (e.g. !setsniper bam) for admin to guarantee sniper slot to a player.
NEWS 26-Nov-2013: version 44e2 uploaded. Support for BF4 with four weeks of testing (thanks D1bble, Tarreltje). Now rulz can be held in an external file and loaded by the plugin making it easier to share rulz sets e.g. for weapon limits, teamkill limits, announcers, etc.

 

 

NEWS 17-Sep-2012: version 43d1 uploaded. New %score% variable for in-game player score. '+' now allowed as first character in a rule to act as a 'join' character to the rule above for multi-line rulz. Docs updated.
NEWS 07-Sep-2012: very minor bugfix version 43c.1 uploaded. No functional changes - just a catch for an error condition that can be logged in the TargetPlayer condition when given an empty target (e.g. an admin types !kick, without giving a player name.) ProconRulz would be unaffected by the error, but log an 'exception' in the plugin log and continue. With this v43c.1 ProconRulz detects this condition and handles it more gracefully.
NEWS 21-Aug-2012: Download updated to version 43b.8. Major update: Arithmetic added, permanent 'ini' variables, rounding, new variables for date, time, teamsize of each team, new logging options (to choose where ProconRulz 'Log' actions write to). ONLINE DOCUMENTATION UPDATED.
NEWS 29-Jun-2012: Download updated to version 41a.4. Minor update: Text and TargetPlayer conditions have been enhanced to enable more flexible rulz for in-game admin. It is now easy to define in-game commands such as !kick (previously the 'reason' part was difficult with ProconRulz. ONLINE DOCUMENTATION UPDATED.
NEWS 15-May-2012: Download updated to version 40d.2. Minor update: quoted strings can now be used in rulz, e.g. Set %x% "Hello world". Particularly useful for Exec actions e.g. Exec vars.serverName "Bambam's Server".
NEWS 2-May-2012: Download updated to version 39d.1. Minor update: new substitution variable %team_score% which holds the number of tickets left for each team, updated about every 30 seconds. See ProconRulz online docs (link above) for details,
NEWS 24-Apr-2012: Download updated to version 39b.2. Minor update: all yell actions now have an optional integer first parameter for the number of seconds it should remain on screen, e.g. "PlayerYell 10 Change your kit %p%!!! Sniper Limit". If the text immediately following the action name (e.g. "Yell") isn't a number, then the default yell time from your plugin settings is used. (And that is set to 5 seconds unless you change that...). Also I've updated the online docs
NEWS 16-Apr-2012: Download updated to version 39a.4. Full set of Say/Yell actions provided for BF3 now that BF3 R20 supports those. I.e. Say, PlayerSay, SquadSay, TeamSay, Yell, PlayerYell, SquadYell, TeamYell. Also 'player country' substitution variables added %pcountry%, %pcountrykey%, %vcountry%, %vcountrykey% for player and victim country (e.g. Germany) and country 'key' (e.g. DE) respectively.
NEWS 07-Apr-2012: Cambridge win the Boat Race. ProconRulz Sniper Limit (by tarreltje) added as Example 13.
NEWS 02-Apr-2012: Minor update 38e.1 for BF3 R20 - Yell and PlayerSay actions now work.
NEWS 26-Jan-2012: A new documentation PDF is available
NEWS 18-Jan-2012: ProconRulz update to version 38d2. It is recommended all users update to this version which significantly extends the flexibility with which rulz can be written and fixes an issue with executing punkBuster commands. ProconRulz remains upwards-compatible with rulz from prior versions. It is expected the core processing logic of ProconRulz will be stable now for a while (with bug fixes as needed), with development limited to new conditions, actions, or perhaps substitution variables if they're needed. Basically 38d2 is like a VERSION upgrade, while the next few upgrades can be considered incremental releases. With 38d2, conditions (e.g. "Weapon SMAW") and actions (e.g. "Kick") can now be freely intermixed in any rule in any order, with processing proceeding from left-to-right through the rule until a condition fails. This won't mean much to you unless you've tried it but it removes a constraint from prior versions that was unexpected to some users. Variable names can now be nested in a completely general way, e.g. a count of weapon use by each player could be stored in %server_weapon_use[%w%][%p%]%.
NEWS 11-Jan-2012: New example added (Example 8) of simple kill-rate anti-hacker rulz.
NEWS 09-Jan-2012: It's been noted the Procon Configs/BF3.def file does not have an entry for the Jackhammer MK3A1 shotgun. If you want to add the weapon without waiting for a Procon update, add the following line to the Configs\BF3.def file near the other similar entries:
procon.protected.weapons.add None "jackhammer" Primary Shotgun
NEWS 04-Jan-2012: Minor bugfix v37g3 (fixes minor PBBan message error). Also adds a new "If %var% word " condition that matches words (e.g. say text) not just a string anywhere as 'Text' condition.
NEWS 28-Dec-2011: Minor bugfix v37e3 upload, corrects the display of the %c% variable (now counts from 1, not 0), and the 'Text' condition for single-word player say values.
NEWS 27-Dec-2011: ProconRulz major update to v37 - This has a significant update to the rules processing engine, plus a few useful things that have been asked for:
* NEW PBKick and PBBan actions added (kicking, banning via PunkBuster using PB GUID)
* NEW substitution variables %ea_guid%, %pb_guid%, %ip%
* A small change has been made to the way ProconRulz steps through the rulz: ProconRulz will CONTINUE rulz processing for a single event until a KILL/KICK/BAN event is fired.. This means multiple Log/Say actions can fire for a single event. A new action "End" can be placed after any Log/Say action to return the behaviour of the prior versions.
* NEW Continue and End actions that force rulz processing to continue or end respectively, overriding the default behaviour of continuing unless the action was Kill/Kick/Ban.
* NEW User-writeable Rulz %Variables%. Supported with new conditions Set, Incr, Decr, and If. This provides much greater flexibility in rulz writing, e.g. to keep track of kill streaks, or for a QuakeCounter-style plugin.
NEWS 29-Nov-2011: ProconRulz minor update to v34 - 'Protection' of admins from kicks/bans now optional.
NEWS 28-Nov-2011: An updated Procon 1.1.2.0 is available, so ProconRulz modified BF3.def is no longer needed or included in the zip.

 

 

 

ProconRulz has been extensively used on BFBC2 servers (for BFBC2 see this thread). That thread now has hundreds of entries so for BF3 I've started this new one.

ProconRulz has relatively comprehensive documentation on its 'Details' tab, so please refer to that. For info, if you haven't downloaded the plugin yet, you can check out an cached version of the details info online here. Of course for the most up-to-date version of the documentation, check the plugin 'Details'.

ProconRulz allows rulz of the format "Trigger;Conditions...;Actions..." with a wide choice of triggers, conditions and actions. The most trivial forms of weapon limits can be implemented with a single rule, e.g. to kill players using the M320 underslung rifle nade, use the single rule given as an example at the top of this post. However, with a bit of thought, it is possible to provide rulz with a more complex behaviour, e.g. warn on the first kill, kill on the third, kick on the fifth.

ProconRulz installs with half-a-dozen default simple rulz that provide a template for your rulz if that helps.

Currently included rulz sets

Sniper Limit (proconrulz_sniperlimit.txt) - limits the number of snipers on each team to a maximum set at the top of the rulz. A sniper slot is reserved when the player kills with a sniper rifle. The sniper slot is released when the round ends, the player leaves, or the player kills with some other weapon and an announcement is issued to team. All players have the !snipers command which tells them the current snipers on their team. Also included is proconrulz_sniperdmrlimit.txt which is the same but limits both sniper rifles and DMR's. CREDIT tarreltje and see thread here

Sniper Squad Limit (proconrulz_snipersquad.txt) - only permits sniper kills if you are in a particular squad (default Echo). Also supports a !snipers command that tells users what's going on. (As above, also with proconrulz_sniperdmrsquad.txt for snipers andDMR's). CREDIT staazvaind.

Announcer (proconrulz_announcer.txt) - gives a few kill messages (Fred knifed Barney) for you to modify.

Multi-kills (proconrulz_multikill.txt) - keeps track of short-term multi-kill streaks and makes Quake-like announcements. Credit Bl1ndy and Panther.

Rules (proconrulz_rules.txt) - simple rulz that display messages when any player types !rules - for you to modify for your server.

Punish (proconrulz_punish.txt) Support of !punish / !p and !forgive / !f for teamkills. CREDIT ty_ger07 and russel5

Killstreak (proconrulz_killstreak.txt) Announces kill streaks at 5/10/15 kills etc, and when ended. Credit ty_ger07

Best 3 Players (proconrulz_best3players.txt) Particularly for TDM announces current highest kill player & each time that changes. CREDIT tarreltje.

************************************************** ************************************************
Plus, you can still edit additional rulz directly into the Plugin settings with these as examples for ideas below
************************************************** ************************************************


BF3 Map names and modes

In case you need them in Map or MapMode conditions, BF3/BF4 names and modes are collected into this post.

ProconRulz doesn't really care what keys you use - it's up to you to check your conditions match whatever your server is sending. This is collected documentation for BF3 that you can find on the internet.

Some current limitations of BF3/BF4 to be aware of

 

1) not all weapon keys are available. All kills by mortar, MAV, tanks, choppers, humvee are just weapon 'Death'. This means Damage VehicleXXX conditions cannot be used in BF3.
2) weapon keys are currently given on 'kill' events but not on 'spawn' events.
3) player kit (i.e. assault, recon etc) is not available
4) player specializations/accessories are not availabe
5) xxx whoopie xxx this limitation now removed - PlayerSay, TeamYell etc now supported in BF3
6) A rocket attack on a tank, killing the player inside, cannot be distinguished from a soldier that gets hit by an RPG7 in the face. Both show the killer killing the victim with a rocket. This means no plugin can detect RPG's used on infantry as opposed to tanks.
7) there are no events triggered when a player enters or leaves any vehicle
8) Nade launchers slung under assault rifles are reported by BF3 as a kill BY THE ASSAULT RIFLE. This is an absolute bug in BF3, IMHO. It means you CANNOT tell in any plugin whether the kill was by a bullet from an M416 rifle, or an M320 nade from a launcher that happened to be attached to the M416 rifle.
9) BF3 is not reporting the map coordinates of the killer or victim in a kill event (although BFBC2 does with a 10m random error). This means the ProconRulz 'Range' condition and %r% variable are non-functioning for BF3.
10) As of BF3 R21, admin kills in the server are being reported as "Suicides with weapon Death". I.e. they will now trigger the "On Suicide" rulz in ProconRulz. If you don't want your On Suicide rulz triggered by automatic 'Kill' actions in other rulz, the simplest method is to use rulz with "On Suicide;Not Weapon Death;...". I suspect this means a player that mortars himself (i.e. really does commit suicide with weapon 'Death') will then also not trigger the "On Suicide;Not Weapon Death.." rulz, but that is the best current compromise.

Specifically, these kinds of limits are not possible, even though many people ask:
* no mortar limits (see 1. Mortars are one of the weapons with key DEATH, as well as all vehicles). On an infantry-only server, you can use a Weapon Death condition to block mortars because you are not worried about vehicle kills being affected by the same rule.
* no server limit for numbers of players spawned with a particular kit/spec/weapon (see 2). See also Example 13 (by tarreltje), with a workaround by checking for snipers a kill time.
* no 'max 2 snipers per team' type rule at spawn time (I just explained that in the line above ^^)
* no 'max 2 mortars per team' type rule (ditto)
* no kill or spawn limit for players with MAV (aka Weapon Roadkill - similar issues to mortar comment above) except on non-vehicle maps like Metro where blocking all roadkill works
* no rule to kill m26 users (Dart/Mass) BF3 not reporting underslung weapons

For all this, you can still prevent the use of the 55 weapons that *do* have a weapon key (and hence also a damage-type), by having a rule that kills any player that kills with one. E.g. my favorite rule:

On Kill;Map Subway;Damage ProjectileExplosive;Kill

This makes RPG kills on Operation Metro suicidal. Right now you probably have no idea what this rule does or how it works, but when you've installed ProconRulz and tried a few simple rulz you'll get the idea, so congratulations...

So I've tried to explain the BF3 limitations, but still get questions like this:

does anyone know how to limit the snipers to 5 a side please

Answer: No BF3 admin tool can do this at spawn time. Read the BF3 limitations above, especially #2. Instead all you can do is limit the number of kills by sniper weapons, or with rulz you can track the counts of players with sniper rifles at kill time (see Example 13).

 

 

 

Some sample rulz

KEEP the default logging On Kill rule at the end of all your rulz. This has a 'Log' action which is very helpful when your rulz don't pick up the condition you expected... (e.g. Log %pt% %k% %p% killed %v% with %w% (%wk%), damage %d%). You don't need to understand this now, just leave it in.

Example 1. Limit a single weapon (usage suicidal, kick on 4th kill, ban on 6th kill):

 


On Kill;Weapon Siaga20k;PlayerCount 5;Log %p% banned for Saiga;Ban %p% Saiga shotgun use
On Kill;Weapon Siaga20k;PlayerCount 3;Log %p% kicked for Saiga;Kick %p% Saiga shotgun use
On Kill;Weapon Siaga20k;PlayerSay %p% no Saiga shotgun;Kill 100

 

 

Example 2. Limit a weapon category via Damage condition (usage suicidal, kick on 4th kill, ban on 6th kill):

 


On Kill;Damage Shotgun;PlayerCount 5;Log %p% banned for Shotgun;Ban %p% shotgun use
On Kill;Damage Shotgun;PlayerCount 3;Log %p% kicked for Shotgun;Kick %p% shotgun use
On Kill;Damage Shotgun;PlayerSay %p% no Shotgun;Kill 100


Above rule can be used with Damage ProjectileExplosive, or Damage SniperRifle (instead of Damage Shotgun) to block rockets or snipers respectively.


 

Example 3. For a sniper/pistol server (usage of other weapons is suicidal, kick on 4th kill, ban on 6th kill):

 


On Kill;Not Damage SniperRifle;Not Damage Handgun;PlayerCount 5;Log %p%banned (snipers / pistols only);Ban %p% snipers only
On Kill;Not Damage SniperRifle;Not Damage Handgun;PlayerCount 3;Log %p% kicked (snipers / pistols only);Kick %p% snipers only
On Kill;Not Damage SniperRifle;Not Damage Handgun;PlayerSay %p% snipers/pistols only;Kill 100

 

 

Example 4. Make teamkills suicidal

 


The simplest idea is just have a rule:

On TeamKill;Say %p% teamkilled %v%;Kill 100;


 

Example 5. Stop use of rockets on map Operation Metro:

 


On Kill;Map Subway;Damage ProjectileExplosive;PlayerCount 5;Log %p% banned for rockets on Metro;Ban %p% Metro rockets
On Kill;Map Subway;Damage ProjectileExplosive;PlayerCount 3;Log %p% kicked for rockets on Metro;Kick %p% Metro rockets
On Kill;Map Subway;Damage ProjectileExplosive;PlayerSay %p% no rockets on Metro;Kill 100


For reference, the other BF3 map filenames / map names (use substring of either in Map condition) are:
MP_001 (Grand Bazaar)
MP_003 (Teheran Highway)
MP_007 (Caspian Border)
MP_011 (Seine Crossing)
MP_012 (Operation Firestorm)
MP_013 (Damavand Peak)
MP_017 (Noshashar Canals)
MP_018 (Kharg Island)
MP_Subway (Operation Metro)

there are more filesnames for more maps (e.g. Karkand), but go find them on the interweb. If you post the new mapnames here I'll update this list.

Be careful !! These are not the definitive spellings of the full map names. It is possible a map name could include non-english characters, e.g. "Operation Métro" or something like that. If in doubt use a safe subset of the map name, or map filename e.g. "Map 011" or "Map Canal"

 

 

Example 6. If you want to reduce the frequency of a weapon use
e.g. limit players to max 2 nade kills per minute:

 


On Kill;Damage Explosive;Rate 2 60;Say %p% excessive nade spam;Kill



Example 8. Basic Cheater Detector

 


by ty_ger07.

These rulz use the 'Rate' condition to QUICKLY ban likely hackers, i.e. the kiddies that appear on the server and don't even pretend to play the game.

You can adjust the thresholds and messages (in fact it's a good idea if you do). Note that you do NOT have to tell the player you banned WHY you banned them (why tell the hacker you specifically detected their knife hack_) but it is helpful to have unique info in the ban message so YOU know which rule banned them. You cannot have these kinds of rulz without risking false positives, in particular BF3 players can get long-term high kill rates in vehicles (Weapon Death...) and short-term high kills rates with explosives/rockets.

Micovery's Insane Limiter plugin provides more comprehensive support for this capability (by also checking BattleLog stats) and can be used in addition to ProconRulz.


# Cheater Detector by ty_ger07
On Kill;Damage Melee;Rate 8 30;Say %p%: banned - kill rate;Ban %p% Auto-banned - hacking status 5
On Kill;Weapon Death;Rate 10 30;Say %p%: banned - nuke;Ban %p% Auto-banned - hacking status 6
On Kill;Not Damage Explosive;Not Damage ProjectileExplosive;Rate 20 50;Say %p%: banned - kill rate 1;Ban %p% Auto-banned - hacking status 1
On Kill;Not Damage Explosive;Not Damage ProjectileExplosive;Rate 40 200;Say %p%: banned - kill rate;Ban %p% Auto-banned - hacking status 2
On Kill;Headshot;Rate 6 15;Say %p%: banned - aimbot;Ban %p% Auto-banned - hacking status 3
On Kill;Headshot;Rate 8 25;Say %p%: banned - aimbot;Ban %p% Auto-banned - hacking status 4

 

 

Example 9. Limit vehicle use when teams are small


All BF3 vehicle kills are currently reported as "Weapon Death", and FYI Mortars are reported as "Weapon Death" also, so you cannot tell those kills apart. But if you want to limit all vehicles AND mortars when teams are small, then you can use these rulz for BF3 (For BFBC2 there is full support for vehicle kills, e.g. with Damage VehicleHeavy, VehicleAir etc. so you can use similar rulz but be more specific).

The Teamsize condition in these rulz makes vehicle kills suicidal if the smallest team is 4 or smaller. On a balanced server this means vehicle kills will be suicidal until 10 players total are in-game...

The PlayerCount conditions control the kill count thresholds for warn (vehicle kill 1,2,3), kill (vehicle kill 4,5), kick (vehicle kills >5)

On Kill;Weapon Death;Teamsize 4;

PlayerCount 5;Say %p% kicked for vehicle kills;Kick kicked for vehicle kills with small teams
PlayerCount 3;Say %p% slayed for vehicle kill %c%/5;Kill 100
Say %p% - no vehicle kills with small teams (#%c%/5)

 
Example 10. Easy in-game admin

 


Using the TargetPlayer condition simplifies matching player names - any string subset of the name will do, and ProconRulz will only match the name if ONLY ONE match is found so you're unlikely to kick the wrong player and no "confirm..." step is needed.

You can type ANY SUBSTRING of the player name and the command will be applied if that is found in a SINGLE player name (upper/lower case still match). If there is no match, or the string is found in multiple names, the command does nothing.

E.g. to kick player "l33t_h4x0r_^^_" just say "!kick h4x" (or "!kick 33", or any other substring of the player name that gives a unique match).


On Say;Admin;Text !kill;TargetPlayer;Say Player %t% killed;TargetAction Kill 100
On Say;Admin;Text !kick;TargetPlayer;Say Player %t% kicked;TargetAction Kick Kicked by Admin

 

 

Example 11. No MAV's on Metro

 


Credit: Rouven

MAV's kill with weapon 'Roadkill', so you can only trap this if there are no vehicles on your server that could do this as well. E.g. you can use these rulz on Metro or on an infantry-only server.

On Kill;Map Subway;Weapon Roadkill;PlayerCount 5;Log %p% banned for MAV;Ban %p% MAV use
On Kill;Map Subway;Weapon Roadkill;PlayerCount 3;Log %p% kicked for MAV;Kick %p% MAV use
On Kill;Map Subway;Weapon Roadkill;PlayerSay %p% no MAV;Kill 100

 

 

Example 14. Multi-language 'join' welcome messages (credit Angry_AGAIN)

 


Here is our first version for country based welcome.
Hope its usefull for somebody
PS: DEACTIVATE vars.serverMessage if you use this welcome.


#Country Base Welcome
#BASETEXT: Welcome - YOUR TEXT - Please follow our rules
#Countrykeys only in small letters based on ISO3166
# Only latin letters works propper

On Spawn;PlayerOnce;If %pcountrykey% == de;Yell 10 WILLKOMMEN %p% - RED EYES ONLY @ AMSTERDAM 420 SERVER - BITTE BEACHTE UNSERE REGELN
On Spawn;PlayerOnce;If %pcountrykey% == nl;Yell 10 Welkom %p% - RED EYES ONLY @ AMSTERDAM 420 SERVERS - check ff onze huisregels,enjoy
On Spawn;PlayerOnce;If %pcountrykey% == fr;Yell 10 BONJOUR %p% -YOUR SERVER TEXT HERE - VEUILLEZ SUIVRE NOS RÈGLES
On Spawn;PlayerOnce;If %pcountrykey% == uk;Yell 10 WELCOME %p% -YOUR SERVER TEXT HERE - PLEASE FOLLOW OUR RULES
On Spawn;PlayerOnce;If %pcountrykey% == us;Yell 10 WELCOME %p% -YOUR SERVER TEXT HERE - PLEASE FOLLOW OUR RULES
On Spawn;PlayerOnce;If %pcountrykey% == ru;Yell 10 Dobro pozhalovat %p% -YOUR SERVER TEXT HERE - pozhaluysta sleduy nashim pravilam
On Spawn;PlayerOnce;If %pcountrykey% == pt;Yell 10 Sangrado %p% -YOUR SERVER TEXT HERE - Por favor anote nosso Regimento
On Spawn;PlayerOnce;If %pcountrykey% == dk;Yell 10 Velkommen %p% -YOUR SERVER TEXT HERE - følg vores regler
On Spawn;PlayerOnce;If %pcountrykey% == it;Yell 10 Benvenuti %p% -YOUR SERVER TEXT HERE - SI PREGA DI SEGUIRE LE NOSTRE REGOLE
On Spawn;PlayerOnce;If %pcountrykey% == no;Yell 10 Velkommen %p% -YOUR SERVER TEXT HERE - KAN DU FØLGE VÅRE REGLER
On Spawn;PlayerOnce;If %pcountrykey% == se;Yell 10 Välkommen %p% -YOUR SERVER TEXT HERE - följ VÅRA REGLER
On Spawn;PlayerOnce;If %pcountrykey% == es;Yell 10 Bienvenido %p% -YOUR SERVER TEXT HERE - por favor siga nuestro reglamento
On Spawn;PlayerOnce;If %pcountrykey% == fi;Yell 10 Suhtaudun myönteisesti %p% -YOUR SERVER TEXT HERE - huomaa työjärjestyksemme
On Spawn;PlayerOnce;If %pcountrykey% == pl;Yell 10 Mile widziane %p% -YOUR SERVER TEXT HERE - PROSIMY O PRZESTRZEGANIE NASZYCH ZASAD

 

 

Example 15. Knife/Defib/Repair Tool Kill YELL Announcer
This plugin will put a Yell message on the screen each knife or other melee weaon kill

 


On Kill;Weapon Weapons/Knife/Knife;Yell %p% slit the throat of %v% !!!
On Kill;Weapon Melee;Yell %p% grabbed and stabbed %v% !!!
On Kill;Weapon Defib;Yell %p% zapped %v% with the Defib !!!
On Kill;Weapon Repair&Tool;Yell %p% killed %v% with the Repair Tool !!!

 

 

Example 17. Country filter by L2Devlier
Here's an interesting concept, illustrating the global villiage we live (game) in. It's possible you live in a small country, adjacent to a large country (e.g. China), and you're trying to build a local community, but end up with the server being dominated by large numbers of gamers texting in the foreign language from the large-country-next-door, what can you do. L2Devlier came up with this solution in in a long PM to me emphasized this is not about being racist, just trying to compensate for limitations in the EA queueing system if you're trying to build a local community. For other-country-applicability you'll need to read the rulz, understand what they do, and tweak the country-codes as appropriate.

 

 


#Count and limit chinaman to 16. To disable, set %server_chinamax% to 32(if it's a 32 player server)

On Spawn;ServerFirst;Set %server_chinamax% 16; Set %server_chinac% 0

On Spawn;PlayerFirst;If %pcountrykey% == cn
Incr %server_chinac%
If %server_chinac% > %server_chinamax%;Kick Country Limit (China/16) Reached;Log %p% %pcountrykey% has been kicked for country limit %server_chinac% %server_chinamax%
On Spawn;PlayerFirst;If %pcountrykey% == hk
Incr %server_chinac%
If %server_chinac% > %server_chinamax%;Kick Country Limit (China/16) Reached;Log %p% %pcountrykey% has been kicked for country limit %server_chinac% %server_chinamax%
On Spawn;PlayerFirst; If %pcountrykey% == tw
Incr %server_chinac%
If %server_chinac% > %server_chinamax%;Kick Country Limit (China/16) Reached;Log %p% %pcountrykey% has been kicked for country limit %server_chinac% %server_chinamax%
On Spawn;PlayerFirst;If %pcountrykey% == mo
Incr %server_chinac%
If %server_chinac% > %server_chinamax%;Kick Country Limit (China/16) Reached;Log %p% %pcountrykey% has been kicked for country limit %server_chinac% %server_chinamax%

On Leave;
If %pcountrykey% == cn;Decr %server_chinac%
If %pcountrykey% == hk;Decr %server_chinac%
if %pcountrykey% == tw;Decr %server_chinac%
if %pcountrykey% == mo;Decr %server_chinac%

 

Example 21. !votekick - ingame command for players to vote to kick another player

 


The second line sets the number of votes needed to kick another player (currently 3).

Any player can say !votekick and these rulz will accumulate a count against that player. Players cannot vote twice against the same player. When the vote count reaches the limit, the player is kicked. is any unique (case insensitive) part of the player name. I.e. !votekick 4x will vote against a player called 7337H4X0r. This is much better than trying to guess a good approximation of the name, trust me on this.

E.g. !votekick bam could give the message "Pebbles voted to kick bambam (2 more votes needed)".

Votes expire at the end of the round. If the kicked player rejoins during the same round, a single !votekick will kick them again.

Simple tweaks are possible to these rulz (in addition to adjusting the votesneeded limit). E.g. you can change any of the Say or PlayerSay messages, and can swap Say for Yell (or PlayerYell), without affecting the way the rulz work. You can run the rulz in test mode by deleting the "Kick kicked by vote;" action in the second-to-last line - then there will be no actual kick, only the "bambam kicked by vote" Yell message...
 

Code:
On Say;Text !votekick;
Set %server_votesneeded% 3
Set %server_votetarget% none;TargetPlayer;Set %server_votetarget% %t%;If %voting[%server_votetarget%]% == 0;Set %server_voteflag% 1
If %server_votetarget% != none;If %voting[%server_votetarget%]% == 1;PlayerSay Your vote to kick %server_votetarget% is already registered (%server_votekicks[%server_votetarget%]%/%server_votesneeded%)
If %server_votetarget% == none;PlayerSay Votekick playername not found. Just type ANY UNIQUE part of the name

On Say;If %server_voteflag% == 1
Log server_voteflag is 1 (%p% said %text%). Target is %server_votetarget%
Set %voting[%server_votetarget%]% 1
Incr %server_votekicks[%server_votetarget%]%
If %server_votekicks[%server_votetarget%]% If %server_votekicks[%server_votetarget%]% >= %server_votesneeded%;TargetPlayer %server_votetarget%;Kick kicked by vote;Yell %t% kicked by vote
Set %server_voteflag% 0

 



Example 23. Simple Aimbot headshot detector
credit russel5

These rulz count headshots and if it's more than 60% after 30 kills (these params in line 5) and it's not a sniper rifle, player is banned.

 

 

Code:

#AimDetect
on spawn;serverfirst;set %kills% 0;set %hs% 0
on kill;Not Damage SniperRifle;incr %kills%
on kill;Not Damage SniperRifle;Headshot;incr %hs%
on kill;Set %proc.1% %hs% / %kills% * 100
on kill;If %proc.1% >= 60;If %kills% > 30;Log %p%;Ban %p% Impossible stats Hs/K %proc.1% %
on say;Admin;Text @kills;TargetPlayer;TargetAction Say kills %kills% HS %hs% and %proc.1% %

 

 

 

Versions summary:

v44 (Nov 26 2013): Support for BF4, plus the support for separate rulz .txt files (incl Linux from 44f.1 credit FritzE).On RoundOver trigger.
v43 (Aug 21 2012): Arithmetic in Set/If statements, permanent 'ini' vars, rounding, new date/time and teamsize variables, logging options. New player %score% variable, '+' as 1st character on line allows multi-line rulz.
v41 (Jun 29 2012): More flexible support for in-game admin commands e.g. !kick
v40 (May 15 2012): Quoted strings can be used in rulz e.g. Set %server_message% "Get ready for next round"
v39 (Apr 12 2012): Yell added (with BF3 R20). Yell/Say can now be to all, Player, Squad, Team (e.g. SquadYell). Player/Victim country codes available (e.g. %pcountry% see online docs). Tickets remaining now in %team_score%.
v38 (Jan 18 2012): any order now permitted for intermixing actions and conditions. server, team, squad, player variables now more easily mixable, Exec can now run PunkBuster commands in addition to the v37 PBBan & PBTempBan, TargetPlayer condition enhanced for ease of use in rulz.
v37: PunkBuster Kicks/bans, new rulz processing flow, rulz variables
v34: Players 'protected' from kicks, kills, bans by ProconRulz now Admins, Admins+Reserved_Slots, Neither, plus Player and Clan whitelist.
v33: BF3 compatibility
v1..32 (see ProconRulz BFBC2 thread)


Please note: There is an unsupported version below ProconRulz_NL.zip which allows new lines in messages.

Example new line:

Code:
On Say;Text /show;PlayerYell \nHello %p%\nThis is your first visit, please type !rules

It should look like this on the player screen:

[ADMIN]
Hello DarthVader
This is your first visit, please type !rules

 

DOWNLOADS

ProconRulz Main
ProconRulz(Unsupported newline version)

 

Link to post
  • 2 weeks later...

just got something in my mind and would know it its possible....

 

in the got old bf2 time we had the "nofly" server. helis and jets are only for transport and no kills from them are allowed.

 

guess it must be possible to setup a equal rule into proconrulez and just found this example from the "no vehicle kill while low population.

 

 
On Kill;Weapon Death;Teamsize 4;
PlayerCount 5;Say %p% kicked for vehicle kills;Kick kicked for vehicle kills with small teams
PlayerCount 3;Say %p% slayed for vehicle kill %c%/5;Kill 100
Say %p% - no vehicle kills with small teams (#%c%/5)
 

i am not really that crack in this things so i would have to know if it is possible to change weapon to helis and jets ( do they have there own or are they also only death? ) to a simple rules that everyone got killed when he is killing from a jet or heli?

 

something like that:

On Kill;Weapon Heli and Jet;
Say %p% killed for vehicle kills;Kick kicked for heli or jet kill
Edited by Prophet731
Changed quote blocks to code blocks
Link to post
  • 3 weeks later...

I made a rulez script to track headshots, and announce them. 
At the beginning of the next round, it will annonce the previous round "marksman".

Feel free to use / modify/ improve
 

#HEADSHOT COUNTER
 
On Round; Say Last Round Marksman : %ini_vars_HSplayer% with %ini_vars_HSHighscore% Headshots; set  %ini_vars_HSplayer%  Nobody; set %ini_vars_HSHighscore% 0
On Kill; Headshot; incr %headshots%; Say Player %p% HEADSHOT %v% and has %headshots% Headshots; if %headshots% > %ini_vars_HSHighscore%; set %ini_vars_HSHighscore% %headshots%;set %ini_vars_HSplayer% %p%; Say NEW MARKSMAN : %p%!
 
On say;Text marksman; say Current Marksman : %ini_vars_HSplayer% with %ini_vars_HSHighscore% Headshots
Link to post
  • 4 months later...

Hello, rulz code champs! I am trying to code a little thingie but I somehow cannot get it to work as I want:

 

On Kill;Weapon Melee;Incr %knifekills%;
On Kill;Weapon Melee;if %knifekills% = 1;Say %p% grabbed and STABBED %v% !!!
On Kill;Weapon Melee;if %knifekills% = 2;Say %p% SLIT %v%'s throat, he died in silence !!!
On Kill;Weapon Melee;if %knifekills% = 3;Say %p% SNIPPED %v%'s balls and he cried !!!
On Kill;Weapon Melee;if %knifekills% = 4;Say %p% GUTTED %v% and enjoyed it !!!
On Kill;Weapon Melee;if %knifekills% = 5;Say %p% SLICED %v% in tiny pieces !!!;set %knifekills% = 0

 

Just to get some variety in the announcements... I feel like this could be done a heck easier, and even in a working fashion... Thanks for your advice!

Link to post
On 12/21/2019 at 7:28 PM, TonyOffermans said:

Hello, rulz code champs! I am trying to code a little thingie but I somehow cannot get it to work as I want:

 

On Kill;Weapon Melee;Incr %knifekills%;
On Kill;Weapon Melee;if %knifekills% = 1;Say %p% grabbed and STABBED %v% !!!
On Kill;Weapon Melee;if %knifekills% = 2;Say %p% SLIT %v%'s throat, he died in silence !!!
On Kill;Weapon Melee;if %knifekills% = 3;Say %p% SNIPPED %v%'s balls and he cried !!!
On Kill;Weapon Melee;if %knifekills% = 4;Say %p% GUTTED %v% and enjoyed it !!!
On Kill;Weapon Melee;if %knifekills% = 5;Say %p% SLICED %v% in tiny pieces !!!;set %knifekills% = 0

 

Just to get some variety in the announcements... I feel like this could be done a heck easier, and even in a working fashion... Thanks for your advice!

RTFM did help. I wanted to use a server-wide variable and it must be coded %server_knifekills%...

Link to post
  • 2 weeks later...

weard isue with this ruleset.

As many know punkbuster is randomly banning players for cheating, so many server admins disabled punkbuster on there server.

on one of the server from a friendly platoon i manage the pluginstuff, so also proconrulz.

whe have there this nice roundban gadget on it, and some baserape kill command

	on say;admin;text /rban,!rban     ;targetplayer;say %t% got ROUNDBAN for %targettext%;exec banlist.add name %t% rounds 1 "%targettext%";exec banlist.save;exec banlist.list;
	on say;admin;text /baserape       ;targetplayer;yell 8 %t% killed for baserape;targetaction kill %t% 200
	 

 

it had always worked, but now with punkbuster disabled, it doesnt work any more.

i tought master commands where not efected by punkbuster?, so any one a idea what is going on here?

Link to post
  • 3 weeks later...

Hi,

Was wanting to write a rule for a no jet BF4 server.

Doing some testing,i noticed that killing with the guns from a jet will return as Death Weapon key not the jet key.

Also killing infantry with a tank will also show as Death.

I assume that you cannot create a On Kill rule for jets only On Spawn.

Is this correct,or am i missing something?

Thanks.

Danny.

Link to post
15 hours ago, Danny said:

Hi,

Was wanting to write a rule for a no jet BF4 server.

Doing some testing,i noticed that killing with the guns from a jet will return as Death Weapon key not the jet key.

Also killing infantry with a tank will also show as Death.

I assume that you cannot create a On Kill rule for jets only On Spawn.

Is this correct,or am i missing something?

Thanks.

Danny.

Sorry,was lazy on my research...cannot detect On Spawn unless using AdkatsLRT.

Link to post
On 1/25/2020 at 11:20 PM, TheTomik said:

Where i must put .txt filenames to make them run?

the plugin contains 2 section, rules and rulz .txt filenames.

i need to place the filename in there ,and yes, the proper file has to be in the plugin directory.

personaly i use the rules section for testing, and when i now its works i write the file and upload it and place the name in rulz .txt section.

Link to post
  • 4 weeks later...

I will publish ProconRulz based on ProconRulz_NL with some additional features.

 

Features added.

Settings

Get server public message. To use it, select "Yes" or "No" in "Plugin Settings"

To enable this feature and use the "On Say" event, add "If %p% == Server" or "If %p% != Server;".

 

Substitution variables

%dow%

Gets the day of the week. This output depends on the system locale of your Procon server.

#Example
On Spawn;If %dow% == Sun;PlayerBoth Hi %p%! Today is Sunday!

 

Actions

"VictimYell"

Send Yell to victim. This allows new lines in message.

#Example
On Kill;VictimYell 7 %p% killed %v%\nwith %w%;

 

"Plugin"

Action to enable/disable other plugins.

#Example
On Say;Text Spambot;Plugin CSpambot True;
On Say;Text NoSpambot;Plugin CSpambot False;

 

"callotherplugin"

Call another plugin from ProconRulz.

#Example
On Spawn;ServerFirst;callotherplugin TrueBalancer StartScrambler;

 

NOTE) It works stably in my environment, but unknown bugs may occur. Please understand beforehand that I can not respond even if a problem occurs.

ProconRulzDAs7.zip

Link to post
  • 5 weeks later...
45 minutes ago, spyder27 said:

I mean punishment AFTER killing.

As if it were a Teamkill but aimed at the enemy.

That is, every killing must be punished.

 

Sounds like statspadding. A setup like this would lead to a shutdown of your server by EA, because it violates the ToS.

Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

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