Modme

New Modme platform coming soon!
How to make an Anti Perkaholic Script
Viewed 774 time(s)
Topic created on 1516580918
Original post
Modme User
2 wins

I always see so many people playing custom maps and automatically using things like mod menus or instant perkaholic mods without even giving the maps a chance first. I'm not great at scripting, but I'm sure that someone can figure this out. I'd want a script that would kill a player if they somehow had every perk in the match or at least more perks than legitimately possible (in case your map has a free perk easter egg or something). Obviously, this would not work in maps where you have a legitimate way to get a perkaholic. However, I feel like this would definitely get more people to actually try some of the custom maps out there instead of basically cheating from the start.

Reply #1 on 1516581630
Modme User
18 wins
Reply #2 on 1516586713
Modme User
2 wins

D-2-K

for Gobble gum    http://modme.co/index.php?view=topic&tid=1858     how to stop cheats    http://modme.co/index.php?view=topic&tid=223    

 I've seen both of those and while I think they are good and useful, they will not stop people using other mods with people's maps. I'm talking about a map with no gobblegum machine and console commands already disabled; someone goes in using another mod that instantly grants them all perks. For people trying to create elaborate maps with special easter eggs and such, this is a huge pain to see people doing to all their hard work.

Reply #3 on 1516589512
Modme User
13 wins

i think someone has done restrict mods or restrict certain mods, but i can't remember who & it was probably not a public script. Some mod menus disable death barriers by default to, can be bad for some maps. i would look into figuring it out but my PC is having issues, I'll try to ask someone if they know how. i think you could put a script you need in your own mod to load up your map or else it would not load without your mod, don't know if that's recommend way to go about it though

 

Reply #4 on 1516597506
Modme User
136 wins

tbone-5

i think someone has done restrict mods or restrict certain mods, but i can't remember who & it was probably not a public script. Some mod menus disable death barriers by default to, can be bad for some maps. i would look into figuring it out but my PC is having issues, I'll try to ask someone if they know how. i think you could put a script you need in your own mod to load up your map or else it would not load without your mod, don't know if that's recommend way to go about it though  

 the easiest way to do this

 

is to make your map "require" a mod, even if its a blank mod that does nothing

 

all youd need to do is move "one" of your required scripts from your map into a standalone mod, and link them on steam workshop ( RDVs old map had a way to do that )

 

then if people boot your map, without your mod - itll crash due to the missing script


HarryBo21's BO3 Perks v2.2.1
LINK TO MODME POST
FX Library v1.0.2
LINK TO MODME POST
Black Ops 3 Gun Pack v2.4.1
LINK TO MODME POST
Black Ops 3 Napalm Zombie v3.0.1
LINK TO MODME POST
Black Ops 3 Shrieker Zombie v3.0.1
LINK TO MODME POST
Reply #5 on 1516630476
Modme User
38 wins

Harry Bo21

tbone-5 i think someone has done restrict mods or restrict certain mods, but i can't remember who & it was probably not a public script. Some mod menus disable death barriers by default to, can be bad for some maps. i would look into figuring it out but my PC is having issues, I'll try to ask someone if they know how. i think you could put a script you need in your own mod to load up your map or else it would not load without your mod, don't know if that's recommend way to go about it though    the easiest way to do this   is to make your map "require" a mod, even if its a blank mod that does nothing   all youd need to do is move "one" of your required scripts from your map into a standalone mod, and link them on steam workshop ( RDVs old map had a way to do that )   then if people boot your map, without your mod - itll crash due to the missing script

 An alternative to this is to sacrifice one of your powerups/perks/anything that NEEDS a .csc file to work.

Basically copy over the file to your mapname script folder and delete the REGISTER_SYSTEM line in the gsc and csc and make sure you add the files in your zone file. 

Basically what this will do is make it almost impossible to run any mods on the map because if you do, you'll get a clientfield error.

I did this with the death machine.


Don't PM me about stuff that should be on the forum.
My creations:
Debug (on/off)
Jukebox
Gum Anti-cheat
Kino box locator
Elemental Bows

Test search engine for this site via Google
Reply #6 on 1516647045
Modme User
13 wins

Harry Bo21

the easiest way to do this   is to make your map "require" a mod, even if its a blank mod that does nothing   all youd need to do is move "one" of your required scripts from your map into a standalone mod, and link them on steam workshop ( RDVs old map had a way to do that )   then if people boot your map, without your mod - itll crash due to the missing script

 This is exactly what i was thinking just crash your map without the mod that you made. I'm not a mapper, so i was not sure if that was the way to go about it

Reply #7 on 1518589604
Modme User
45 wins

If you still want what you originally asked for, a script rather than telling everyone to download a separate mod, I made one.

 

function perkaholic_monitor_anticheat() //Checks at the start of each round if any player has a perkaholic and will end the game
{
	WAIT_SERVER_FRAME;
	level flag::wait_till( "all_players_connected" );
	while ( 1 )
	{
		level waittill( "between_round_over" );
		foreach(player in GetPlayers())
		{
			a_perks = player GetPerks();
			if(a_perks.size == level._custom_perks.size) //level._custom_perks.size is the total number of perks in your map; can change to some other number to monitor extra perks lower than a perkaholic.
			{
				IPrintLnBold("NO FREE PERK MODS ALLOWED!"); //Tell players not to use perk mods for this map
				player PlayLocalSound("zmb_bgb_deny_plr"); //Some pre-loaded error noise sound effects for flare
				wait(2);
				level notify("end_game");
			} 
		}
	}
}

This script will check at the beginning of every round if anyone has all of the perks, and will end the game after telling them not to use perk mods for your map. You can edit the if statement to check for 5 perks instead of a perkaholic if there are no ways to get free perks in your map.

 

Also, you could make a variable that keeps track if their perkaholic is legit and earned from an easter egg. If you want that, change the if statement with this:

if(!level.earned_perkaholic && a_perks.size == level._custom_perks.size)

and add this to your function main in mapname gsc:

level.earned_perkaholic = false;

then add this to the part of your script that gives a legit perkaholic:

level.earned_perkaholic = true;

 

 

 


Stay frosty.



Reply #8 on 1518590592
Modme User
136 wins

thats not "anti perkaholic" thats a "punishment" if people obtain all perks if they bought them on a map with no perk limit for example


HarryBo21's BO3 Perks v2.2.1
LINK TO MODME POST
FX Library v1.0.2
LINK TO MODME POST
Black Ops 3 Gun Pack v2.4.1
LINK TO MODME POST
Black Ops 3 Napalm Zombie v3.0.1
LINK TO MODME POST
Black Ops 3 Shrieker Zombie v3.0.1
LINK TO MODME POST
Reply #9 on 1518673512
Modme User
45 wins

Harry Bo21

thats not "anti perkaholic" thats a "punishment" if people obtain all perks if they bought them on a map with no perk limit for example

 "I'd want a script that would kill a player if they somehow had every perk in the match or at least more perks than legitimately possible (in case your map has a free perk easter egg or something). Obviously, this would not work in maps where you have a legitimate way to get a perkaholic."
The original poster explicitly requested a punishment for any kind of perkaholic, and acknowledged it wouldn't work on maps that have ways for legit perkaholics. This is for maps with perk limits and no gobblegum machines.


Stay frosty.



Reply #10 on 1518696937
Modme User
136 wins

Why not at least be smart and just check if they are also over th perk limit rather ban “has all perks”


HarryBo21's BO3 Perks v2.2.1
LINK TO MODME POST
FX Library v1.0.2
LINK TO MODME POST
Black Ops 3 Gun Pack v2.4.1
LINK TO MODME POST
Black Ops 3 Napalm Zombie v3.0.1
LINK TO MODME POST
Black Ops 3 Shrieker Zombie v3.0.1
LINK TO MODME POST
Reply #11 on 1519314892
Modme User
2 wins

Frost Iceforge

If you still want what you originally asked for, a script rather than telling everyone to download a separate mod, I made one.   function perkaholic_monitor_anticheat() //Checks at the start of each round if any player has a perkaholic and will end the game { WAIT_SERVER_FRAME; level flag::wait_till( "all_players_connected" ); while ( 1 ) { level waittill( "between_round_over" ); foreach(player in GetPlayers()) { a_perks = player GetPerks(); if(a_perks.size == level._custom_perks.size) //level._custom_perks.size is the total number of perks in your map; can change to some other number to monitor extra perks lower than a perkaholic. { IPrintLnBold("NO FREE PERK MODS ALLOWED!"); //Tell players not to use perk mods for this map player PlayLocalSound("zmb_bgb_deny_plr"); //Some pre-loaded error noise sound effects for flare wait(2); level notify("end_game"); } } } } This script will check at the beginning of every round if anyone has all of the perks, and will end the game after telling them not to use perk mods for your map. You can edit the if statement to check for 5 perks instead of a perkaholic if there are no ways to get free perks in your map.   Also, you could make a variable that keeps track if their perkaholic is legit and earned from an easter egg. If you want that, change the if statement with this: if(!level.earned_perkaholic && a_perks.size == level._custom_perks.size) and add this to your function main in mapname gsc: level.earned_perkaholic = false; then add this to the part of your script that gives a legit perkaholic: level.earned_perkaholic = true;      

 Thank you! I didn't want to force people to have to download another mod. To be honest, I'd rather them get caught off guard if they were trying to cheat. This works well since the current map has no way of obtaining additional perks via EE or power up. 

I'm also glad you included a way to change it to identify a perk limit. That way, I can actually use it in my future maps as well. 

Again, thank you so much for this and don't worry, I will not forget to credit you! :D