Jump to content

Insane Limits: Game of Tag, You're It, Knife kills


ImportBot

Recommended Posts

Originally Posted by _gp_*:

 

PC9,

 

This is a start to making LIMIT 6, which was to be, every player IT at Start of round.

 

I added this code to LIMIT 5, to see if it would work and it does compile.

 

Code:

//make all players IT if TAG ebabled and rnd <= 2 
	if(TagOnOff <= 2)
		{
		List<PlayerInfoInterface> all = new List<PlayerInfoInterface>();
		all.AddRange(team1.players);
		all.AddRange(team2.players);
		all.AddRange(team3.players);
		all.AddRange(team4.players);


		foreach (PlayerInfoInterface p in all)
			{
			msg = "YOU ARE 'IT'! You MUST get a knife kill!";
			plugin.SendPlayerMessage(p.Name, msg);
			plugin.SendPlayerYell(p.Name, msg, 30);
			//plugin.ConsoleWrite(p.Name + ": " + msg);
			p.RoundData.setInt(key, 0);
			}
		}
So what LIMIT 5 looks like now, it does compile, just not sure it will work.

 

Code:

//TAG_Rnd_On_Off 12152014
//added  IT for ALL at start 01192015

String key = "GameOfTag";
String msg = null;

Random rnd = new Random();
int TagOnOff = rnd.Next(9);

if(TagOnOff <= 4)
	{
	plugin.RoundData.setBool(key, true);
	msg = "Game of tag is enabled";
	plugin.ServerCommand("admin.say",  msg, "20");
	plugin.ServerCommand("admin.yell", msg, "20");
	
	List<String> Rules = new List<String>();
	Rules.Add("----- TAG RULES -----");
	Rules.Add(" If you are Knife killed, you are IT");
	Rules.Add(" If you are IT, you need a knife kill.");
	Rules.Add("If you get a Gun Kill while IT, you will be auto killed.");
	Rules.Add("After Knife Kill while IT, you are free to Gun Kill.");
	foreach(string Rule in Rules)
		plugin.SendGlobalMessage(Rule);
		
//make all players IT if TAG ebabled and rnd <= 2 
	if(TagOnOff <= 2)
		{
		List<PlayerInfoInterface> all = new List<PlayerInfoInterface>();
		all.AddRange(team1.players);
		all.AddRange(team2.players);
		all.AddRange(team3.players);
		all.AddRange(team4.players);


		foreach (PlayerInfoInterface p in all)
			{
			msg = "YOU ARE 'IT'! You MUST get a knife kill!";
			plugin.SendPlayerMessage(p.Name, msg);
			plugin.SendPlayerYell(p.Name, msg, 30);
			//plugin.ConsoleWrite(p.Name + ": " + msg);
			p.RoundData.setInt(key, 0);
			}
		}
	}
else if(TagOnOff >= 5)
	{
	plugin.RoundData.setBool(key, false);
	msg = "Game of tag is disabled";
	plugin.ServerCommand("admin.say",  msg, "20");
	plugin.ServerCommand("admin.yell", msg, "20");
	}
return false;
Will test it later today

 

thx,

 

_gp?

This has worked better than I expected, a few do not like it at all, but for the most part IT at Start is accepted and has been asked for as a stand alone LIMIT. :smile:

 

thx

 

_gp?

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

Originally Posted by _gp_*:

 

This is an observation, since I have activated TAG at start of round.

 

I have noticed over time oddities happening with the scoring in BF3, people getting knife kills when shooting a gun. Using a pistol and getting an M-60 kill and a litany of other glitches.

 

Players getting a kill and moments later dieing by same person that they had just killed and killer never having died.

 

Using tag at start is bringing these anomalies for forward for all to see.

 

NOW with IT at start there are occurances of players getting the first knife kill as needed and later using a gun to get kills and then being admin killed for being IT and not being Knifed. I can see in the procon console they were knifed, but their score not showing the death. These scoring glitches stopped me from playng vehicle servers long ago, as I have a taste for using c4 on vehicles and not getting the vehicle kills tended to piss me off as I was rather good at it.

 

thx

 

_gp?

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

Originally Posted by _gp_*:

 

PC9,

 

My first stab at REGEX (stab_? pardon the pun)

 

redid the rules limit and added german, (needs to be reworked as 3rd rule is to long for chat window)

 

I am sure there is a better way to do the first expression, but have not had time to figure it out.

 

Name: Tag_Rules_Multi_Reg

Eval: OnAnyChat

1st ch: Expression

Code:

((Regex.Match(player.LastChat, @"^!Tag", RegexOptions.IgnoreCase).Success)||(Regex.Match(player.LastChat, @"^!PTag", RegexOptions.IgnoreCase).Success)||(Regex.Match(player.LastChat, @"^!SpTag", RegexOptions.IgnoreCase).Success)||(Regex.Match(player.LastChat, @"^!GTag", RegexOptions.IgnoreCase).Success))
2nd ch: code

 

Code:

//rev _gp_ 01022015 added Spanish and Portugese
//added german 01222015 needs work

if (Regex.Match(player.LastChat, @"^!Tag", RegexOptions.IgnoreCase).Success)
	{
	//English
	// Edit rules here
	List<String> Rules = new List<String>();
	Rules.Add("----- TAG RULES -----");
	//Rules.Add(" Tag is Simple");
	Rules.Add(" If you are Knife killed, you are IT");
	Rules.Add(" If you are IT, you need a knife kill.");
	Rules.Add("If you get a Gun Kill while IT, you will be auto killed.");
	Rules.Add("After Knife Kill while IT, you are free to Gun Kill.");
	// Try not to add more Rules.Add because it won't fit in the chat box.


	if(limit.Activations(player.Name) <= 5)
		foreach(string Rule in Rules)
			plugin.SendGlobalMessage(Rule);
	
	return false;
	}


else if (Regex.Match(player.LastChat, @"^!SpTag", RegexOptions.IgnoreCase).Success)
	{
	//Spanish
	// Edit rules here
	List<String> Rules = new List<String>();
	Rules.Add("----- TAG RULES -----");
	//Rules.Add("TAG es simple");
	Rules.Add("Si te matan con un cuchillo, entonces usted es el IT.");
	Rules.Add("Si usted es el IT, tienes que matar  con un cuchillo.");
	Rules.Add("Si matas  con una arma de fuego mientras eres el IT, usted va a morir .");
	Rules.Add("Despues de matar con un cuchillo, usted es libre de usar cualquier arma.");
	// Try not to add more Rules.Add because it won't fit in the chat box.


	if(limit.Activations(player.Name) <= 5)
		foreach(string Rule in Rules)
			plugin.SendGlobalMessage(Rule);
	
	return false;
	}
	
else if (Regex.Match(player.LastChat, @"^!PTag", RegexOptions.IgnoreCase).Success)
	{
	//Portugese
	// Edit rules here
	List<String> Rules = new List<String>();
	Rules.Add("----- TAG RULES -----");
	//Rules.Add("TAG e simples");
	Rules.Add("se voce for morto com uma faca, então voce e o IT.");
	Rules.Add("Se voce e o IT, voce precisa matar alguem com a faca.");
	Rules.Add("Se voce matar com uma arma de fogo enquanto voce e o IT, voce morrere .");
	Rules.Add("Apos matar alguem com a faca, voce este livre para usar qualquer arma.");
	// Try not to add more Rules.Add because it won't fit in the chat box.


	if(limit.Activations(player.Name) <= 5)
		foreach(string Rule in Rules)
			plugin.SendGlobalMessage(Rule);
	
	return false;
	}

else if (Regex.Match(player.LastChat, @"^!GTag", RegexOptions.IgnoreCase).Success)
	{
	//German
	// Edit rules here
	List<String> Rules = new List<String>();
	Rules.Add("----- TAG RULES -----");
	//Rules.Add("Tag ist einfach");
	Rules.Add("Wenn Sie Messer getotet, Sie sind IT-.");
	Rules.Add("Wenn Sie IT, ein Messer zu toten mussen.");
	Rules.Add("Wenn Sie ein Gewehr Toten zu bekommen, wahrend IT, werden Sie automatisch zu sein getotet.");
	Rules.Add("Nach dem Messer zu toten, wahrend IT, um Gun Totet es Ihnen frei.");
	// Try not to add more Rules.Add because it won't fit in the chat box.

	
	if(limit.Activations(player.Name) <= 5)
		foreach(string Rule in Rules)
			plugin.SendGlobalMessage(Rule);
	
	return false;
	}

return false;
thx

 

_gp?

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

Originally Posted by PapaCharlie9*:

 

That's good.

 

You can make it better by putting all the commands in one Regex:

 

Code:

(Regex.Match(player.LastChat, @"^!(Tag|PTag|SpTag|GTag)", RegexOptions.IgnoreCase).Success)
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by _gp_*:

 

That's good.

 

You can make it better by putting all the commands in one Regex:

 

Code:

(Regex.Match(player.LastChat, @"^!(Tag|PTag|SpTag|GTag)", RegexOptions.IgnoreCase).Success)
PC9,

 

will change it now, I had tried (I did not use code blocks as it is 'bad' code)

 

(Regex.Match(player.LastChat, @"^!("Tag"|"PTag"|"SpTag"|"GTag")", RegexOptions.IgnoreCase).Success)

 

and

 

(Regex.Match(player.LastChat, @"^!("Tag"||"PTag"||"SpTag"||"GTag")", RegexOptions.IgnoreCase).Success)

 

both compiled, but not work...(I did not use code blocks as it is 'bad' code)

 

thx

 

_gp?

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

Originally Posted by _gp_*:

 

PapaCharlie9,

 

I posted the following last night, a beer short of one to many.

 

Amazing how much is overlooked, as this is a good/best game to play...aggravating YES..

 

not sure you saw it, as I do tend to get a bit verbose.

 

Thx

 

_gp?

 

This is an observation, since I have activated TAG at start of round.

 

I have noticed over time oddities happening with the scoring in BF3, people getting knife kills when shooting a gun. Using a pistol and getting an M-60 kill and a litany of other glitches.

 

Players getting a kill and moments later dieing by same person that they had just killed and killer never having died.

 

Using TAG at start is bringing these anomalies more forward for all to see.

 

NOW with IT at start there are occurances of players getting the first knife kill as needed and later using a gun to get kills and then being admin killed for being IT and not being Knifed. I can see in the procon console they were knifed, but their score not showing the death.

 

These scoring glitches stopped me from playng vehicle servers long ago, as I have a taste for using c4 on vehicles and not getting the vehicle kills tended to piss me off as I was rather good at it.

 

thx

 

_gp?

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

Originally Posted by PapaCharlie9*:

 

PapaCharlie9,

 

I posted the following last night, a beer short of one to many.

 

Amazing how much is overlooked, as this is a good/best game to play...aggravating YES..

 

not sure you saw it, as I do tend to get a bit verbose.

 

Thx

 

_gp?

Yes, I read it the first time, but there wasn't a question or request in it, so I thought it was just commentary that did not require a response. :smile:
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by _gp_*:

 

PC9,

 

I am looking for a comment on this observation :smile: , as there does appear to be a glitch in the scoring system/ mechanics..

 

As you know back in post #4 I changed the code for LIMIT 2 to include swipe knife kills to cause a player to become IT.

 

changed the bool from

 

Code:

// Check if a knife kill 
bool knifeKill = Regex.Match(kill.Weapon, "(Melee)").Success;
to

Code:

// Check if a knife kill 
bool knifeKill = Regex.Match(kill.Weapon, "(Melee|Knife)").Success;
The issue:

 

It appears now, with the "swipe knife kill" included in TAG , that just being "Injured" by a knife swipe is causing a player to become IT. I wanted all knife kills to cause victim to become IT.

 

reported by players, "I was in a fire fight with another player, he 'Injured' me with I knife Swipe, I killed him, was warned that a I was IT, next kill with gun was punished with warning for being IT. I was not killed by a 'KNIFE' but was IT."

 

 

OBSERVATION: A KNIFE swipe that Injures ONLY is registering to cause a person to be IT?

 

is there a way I can check this?

 

The knife swipe injury = IT is not a bad thing, to me, but need to be able to Inform players that it is so.

 

thx

 

_gp?

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

Originally Posted by PapaCharlie9*:

 

The issue:

 

It appears now, with the "swipe knife kill" included in TAG , that just being "Injured" by a knife swipe is causing a player to become IT. I wanted all knife kills to cause victim to become IT.

 

reported by players, "I was in a fire fight with another player, he 'Injured' me with I knife Swipe, I killed him, was warned that a I was IT, next kill with gun was punished with warning for being IT. I was not killed by a 'KNIFE' but was IT."

 

 

OBSERVATION: A KNIFE swipe that Injures ONLY is registering to cause a person to be IT?

 

is there a way I can check this?

 

The knife swipe injury = IT is not a bad thing, to me, but need to be able to Inform players that it is so.

 

thx

 

_gp?

I see.

 

I'm 99.9% certain your player is mistaken. In order for that to be true, the game server would have to report a non-kill "injury" as a player.onKill event. That seems incredibly unlikely, like 0.1% chance.

 

What is far more likely is that the player was close to 0 hitpoints already and a single knife swipe was enough to send him below 0, thus registering a kill. Of course, that contradicts his recollection of events, but that is not that unusual. Without logging or video proof, I'm doubtful of people's ability to remember details in the middle of battle.

 

If the player knows the precise time this happened, you can look in the event log for his player name and see if a knife kill was registered.

 

Of course, there is always a possibility of a bug somewhere: in the game server, in Procon, in Insane Limits, in your limit code. I doubt it, though.

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

Originally Posted by _gp_*:

 

I see.

 

I'm 99.9% certain your player is mistaken. In order for that to be true, the game server would have to report a non-kill "injury" as a player.onKill event. That seems incredibly unlikely, like 0.1% chance.

 

What is far more likely is that the player was close to 0 hitpoints already and a single knife swipe was enough to send him below 0, thus registering a kill. Of course, that contradicts his recollection of events, but that is not that unusual. Without logging or video proof, I'm doubtful of people's ability to remember details in the middle of battle.

 

If the player knows the precise time this happened, you can look in the event log for his player name and see if a knife kill was registered.

 

Of course, there is always a possibility of a bug somewhere: in the game server, in Procon, in Insane Limits, in your limit code. I doubt it, though.

I am inclined to believe your explanation, a player is remembering events as they want to believe them.

 

I do double check chat logs and procon events and do find that logs differ to their memory of events. What I brought up, I am assuming player was "IT at START" (added to code) and 'thought' he had got a knife kill to be safe.

 

thx for quick response sir :smile:

 

_gp?

 

I am going to try to code IT at START as separate Set of LIMITS, has been asked for and is liked, but want IT at Start of round only. Will take awhile to get it right tho, as I am getting busy in reality.

thanks again for your help. _gp?

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

Originally Posted by _gp_*:

 

I am inclined to believe your explanation, a player is remembering events as they want to believe them.

 

I do double check chat logs and procon events and do find that logs differ to their memory of events. What I brought up, I am assuming player was "IT at START" (added to code) and 'thought' he had got a knife kill to be safe.

 

thx for quick response sir :smile:

 

_gp?

 

I am going to try to code IT at START as separate Set of LIMITS, has been asked for and is liked, but want IT at Start of round only. Will take awhile to get it right tho, as I am getting busy in reality.

thanks again for your help. _gp?

I have been working on getting TAG at start working(need to get it posted), so I have had all TAG disabled...

 

the other day I was sniped from across the map by a player,

was an excellent shot at that,

 

I heard him shoot and watched the tracer come to me... and I died,

 

said player was awarded a Knife Kill for the shot.

 

...go figure...

 

thx

_gp?

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

Originally Posted by PapaCharlie9*:

 

I have been working on getting TAG at start working(need to get it posted), so I have had all TAG disabled...

 

the other day I was sniped from across the map by a player,

was an excellent shot at that,

 

I heard him shoot and watched the tracer come to me... and I died,

 

said player was awarded a Knife Kill for the shot.

 

...go figure...

 

thx

_gp?

Hah! Report a bug to DICE.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by _gp_*:

 

Hah! Report a bug to DICE.

_gp? falls on floor laughing, refusing to roll.... Like DICE would listen :smile:

 

 

BTW, I did figure out how to LAG out my Server using Procon chat and a For next LOOP ... :smile:

 

not sure if it was using the Say command or the Yell command or combination of the two...

 

thx

 

_gp?

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

Originally Posted by _gp_*:

 

Here goes,

 

this is the set of 5 LIMITS and 1 LIST needed to make Knife Kill at Start of a Round...

all errors you might find are mine and mine alone...

all thx go to PapaCharlie9 for his original code that I was able to butcher to get this to work...

 

This can be used for any BF3 server and maps, but I prefer smaller GunMaster Maps, and a minimum of 12 players to get it started. I am trying to get away from all mention of TAG and IT while ingame as they mean different things in other languages.

 

************************************************** *******************************************

LIMIT 1

************************************************** *******************************************

 

name: Game_of_Tag? Start_Command

eval: OnAnyChat

1st: code

Code:

//gp_first_tag_Start
//Commands !sgameon  !sgameoff  !sgame /!sgameon  /!sgameoff  /!sgame

String key = "GameAtStart";
String msg = null;
if (Regex.Match(player.LastChat, @"^(!sgameon|/!sgameon)", RegexOptions.IgnoreCase).Success)
 {
    if (!plugin.isInList(player.Name, "gm_admins"))
	{
        plugin.SendPlayerMessage(player.Name, "You do not have permission to use that command!");
        return false;
    }
    plugin.RoundData.setBool(key, true);
	msg = "Game at Start enabled!";
    plugin.SendPlayerMessage(player.Name, msg);
    plugin.ConsoleWrite(msg + " by " + player.Name);
	
	plugin.ServerCommand("admin.say", msg, "0");

	List<String> Rules = new List<String>();
		Rules.Add("----- GAME at START RULES -----");
		Rules.Add(" You need a Knife Kill.");
		Rules.Add("You will be Auto Killed until You get a Knife Kill");
		Rules.Add("After Knife Kill You are FREE to Gun Kill.");

	foreach(string Rule in Rules)
	plugin.SendGlobalMessage(Rule);	

	foreach(string Rule in Rules)
		plugin.SendGlobalMessage(Rule);	
		
	List<PlayerInfoInterface> all = new List<PlayerInfoInterface>();
		all.AddRange(team1.players);
		all.AddRange(team2.players);
		all.AddRange(team3.players);
		all.AddRange(team4.players);


		foreach (PlayerInfoInterface p in all)
			{
			msg = "Everyone Knife Kill at Start!!!";

			plugin.SendPlayerMessage(p.Name, msg);
			plugin.SendPlayerYell(p.Name, msg, 30);
			//plugin.ConsoleWrite(p.Name + ": " + msg);
			p.RoundData.setInt(key, 0);
			}
}
 else if (Regex.Match(player.LastChat, @"^(!sgameoff|/!sgameoff)", RegexOptions.IgnoreCase).Success)
 {
    if (!plugin.isInList(player.Name, "gm_admins"))
	{
        plugin.SendPlayerMessage(player.Name, "You do not have permission to use that command!");
        return false;
    }
    plugin.RoundData.setBool(key, false);
    msg = "Game at Start disabled!";
    plugin.SendPlayerMessage(player.Name, msg);
    plugin.ConsoleWrite(msg + " by " + player.Name);
}
 else if (Regex.Match(player.LastChat, @"^(!sgame|/!sgame)", RegexOptions.IgnoreCase).Success)
 {
    if (!plugin.isInList(player.Name, "gm_admins"))
	{
        plugin.SendPlayerMessage(player.Name, "You do not have permission to use that command!");
        return false;
    }
    bool enabled = false;
    if (plugin.RoundData.issetBool(key))
        enabled = plugin.RoundData.getBool(key);
    plugin.SendPlayerMessage(player.Name, "Game at Start is " + ((enabled) _ "enabled!" : "disabled!"));
plugin.ServerCommand("admin.yell",  "Game at Start is " + ((enabled) _ "enabled!" : "disabled!"), "20");
}
return false;
2nd: Disabled

 

action: none

 

************************************************** *******************************************

LIMIT 2

************************************************** *******************************************

 

name: Game_of_Tag_Start

eval: OnKill

 

1st: Expression

Code:

(true)
2nd: code

 

Code:

//gp_second_tag_Start

String key = "GameAtStart";
String msg = null;

int w = 0;

//set number of gunkills allowed when IT before kick
w = 10;

// Check if mode is enabled
bool enabled = false;
if (plugin.RoundData.issetBool(key))
    enabled = plugin.RoundData.getBool(key);
if (!enabled)
    return false;

// Check if a knife kill 
bool knifeKill = Regex.Match(kill.Weapon, "(Melee|Knife)").Success;

// If killer is IT and knife kill, make not IT
// If killer is IT and NOT knife kill, warn/kick

if (killer.RoundData.issetInt(key) && knifeKill)
	{
    // Killer is now NOT IT!
    msg = "NICE KNIFE KILL! You are FREE to Kill with ALL Weapons!";
   
    plugin.SendPlayerMessage(player.Name, msg);
	plugin.SendPlayerYell(player.Name, msg, 30);
		
   //plugin.ConsoleWrite(killer.Name + ": " + msg);
    killer.RoundData.unsetInt(key);
	}

if (killer.RoundData.issetInt(key) && !knifeKill)
	{
    // Killer is IT and did not make a knife kill
    int warnings = killer.RoundData.getInt(key);
    warnings = warnings + 1;
    killer.RoundData.setInt(key, warnings);
    if (warnings == 1)
		{
         msg = "Your Next Kill MUST be a Knife Kill!";
		plugin.SendPlayerMessage(player.Name, msg);
		plugin.SendPlayerYell(player.Name, msg, 30);
		plugin.KillPlayer(killer.Name, 0);
		}
	else if (warnings >= 2 && warnings <= w)
		{
		msg = "Your Next Kill MUST be a Knife Kill! OR BE KILLED!";
   		plugin.SendPlayerMessage(player.Name, msg);
		plugin.SendPlayerYell(player.Name, msg, 30);
		plugin.KillPlayer(killer.Name, 0);
		}
	
	else if (warnings > w)
		{
        msg = " for ignoring warnings: KNIFE KILL WAS NEEDED!";
        //plugin.ConsoleWrite("Kicked " + killer.Name + " " + msg);
        //plugin.EABanPlayerWithMessage(EABanType.Name, EABanDuration.Round, killer.Name, 0, msg);
		plugin.EABanPlayerWithMessage(EABanType.EA_GUID, EABanDuration.Temporary, killer.Name, 0,killer.Name +msg);
		}
    return false;
	}
return false;
action: none

 

************************************************** *******************************************

LIMIT 3

************************************************** *******************************************

 

Tag_Start_Rules_Multi_Reg

 

OnAnyChat

 

1st: Expression

Code:

(Regex.Match(player.LastChat, @"^!(sTag|sPTag|sSpTag|sGTag)", RegexOptions.IgnoreCase).Success)
2nd: code

 

Code:

//gp_Tag_Start_Rules_Multi_Reg

if (Regex.Match(player.LastChat, @"^!sTag", RegexOptions.IgnoreCase).Success)
	{
	//English
	// Edit rules here
	List<String> Rules = new List<String>();
	Rules.Add("----- GAME RULES -----");
	//Rules.Add(" If you are Knife Killed, ");
	Rules.Add(" You need a Knife Kill.");
	Rules.Add("You will be Auto Killed until You get a Knife Kill.");
	Rules.Add("After Knife Kill You are FREE to Gun Kill.");
	// Try not to add more Rules.Add because it won't fit in the chat box.


	if(limit.Activations(player.Name) <= 5)
		foreach(string Rule in Rules)
			plugin.SendGlobalMessage(Rule);
	
	return false;
	}


else if (Regex.Match(player.LastChat, @"^!sSpTag", RegexOptions.IgnoreCase).Success)
	{
	//Spanish
	// Edit rules here
	List<String> Rules = new List<String>();
	Rules.Add("----- REGLAS DEL JUEGO -----");
	//Rules.Add("Si esta cuchillo mato,");
	Rules.Add("Usted necesita un cuchillo de muertes.");
	Rules.Add("Usted será Killed Auto hasta que obtenga un cuchillo Matar.");
	Rules.Add("Despues de lamina matanza que son libres de arma de muertes.");
	// Try not to add more Rules.Add because it won't fit in the chat box.


	if(limit.Activations(player.Name) <= 5)
		foreach(string Rule in Rules)
			plugin.SendGlobalMessage(Rule);
	
	return false;
	}
	
else if (Regex.Match(player.LastChat, @"^!sPTag", RegexOptions.IgnoreCase).Success)
	{
	//Portugese
	// Edit rules here
	List<String> Rules = new List<String>();
	Rules.Add("----- REGRAS DO JOGO -----");
	//Rules.Add("Se voce estiver faca matou,");
	Rules.Add("Voce precisa de uma faca Matar.");
	Rules.Add("Voce sera Auto matou ate obter uma faca Matar.");
	Rules.Add("Apos Faca Matar Voce e livre para Gun Matar.");
	// Try not to add more Rules.Add because it won't fit in the chat box.


	if(limit.Activations(player.Name) <= 5)
		foreach(string Rule in Rules)
			plugin.SendGlobalMessage(Rule);
	
	return false;
	}

else if (Regex.Match(player.LastChat, @"^!sGTag", RegexOptions.IgnoreCase).Success)
	{
	//German
	// Edit rules here
	List<String> Rules = new List<String>();
	Rules.Add("----- SPIELREGELN -----");
	//Rules.Add("Wenn Sie Messer getaetet,");
	Rules.Add("Sie benaetigen ein Messer zu taeten.");
	Rules.Add("Sie werden Auto getaetet, bis Sie erhalten ein Messer zu taeten.");
	Rules.Add("Nach dem Messer taeten Sie sind frei, Gun taeten.");
	// Try not to add more Rules.Add because it won't fit in the chat box.

	
	if(limit.Activations(player.Name) <= 5)
		foreach(string Rule in Rules)
			plugin.SendGlobalMessage(Rule);
	
	return false;
	}

return false;
action: none

 

************************************************** *******************************************

LIMIT 4

************************************************** *******************************************

 

name: You_are_IT_Start_Reminder

eval: OnSpawn

 

1st: Code

 

Code:

//gp_You_are_IT_Start_Reminder

String key = "GameAtStart";
String msg = null;

// Check if mode is enabled
bool enabled = false;
if (plugin.RoundData.issetBool(key))
    enabled = plugin.RoundData.getBool(key);
if (!enabled)
    return false;

if (player.RoundData.issetInt(key))
	{
    msg = "Your Next Kill MUST be a Knife Kill!";
    
	plugin.SendPlayerMessage(player.Name, msg);
    plugin.SendPlayerYell(player.Name, msg, 30);
	
	}
return false;
2nd: Disabled

 

Action: none

 

************************************************** *******************************************

LIMIT 5

************************************************** *******************************************

 

name: TAG_Start_Rnd_On_Off

eval: OnRoundStart

 

1st: Expression

 

Code:

(
(server.PlayerCount >= 12) && (server.Gamemode == "GunMaster0") &&
  (
  server.MapFileName== "XP2_Skybar" 
  || server.MapFileName== "XP2_Office" 
  || server.MapFileName== "XP2_Palace" 
  || server.MapFileName== "XP2_Factory" 
  || server.MapFileName== "XP4_Quake"
  )
)
2nd: Code

 

Code:

//gp_TAG_Start_Rnd_On_Off

String key = "GameAtStart";
String msg = null;

Random rnd = new Random();
int TagOnOff = rnd.Next(9);

if((TagOnOff <= 4)&&(server.PlayerCount<=24))	{
	plugin.RoundData.setBool(key, true);
	msg = "Game at Start is enabled";
	plugin.ServerCommand("admin.say",  msg, "20");
	plugin.ServerCommand("admin.yell", msg, "20");
	
	List<String> Rules = new List<String>();
	Rules.Add("----- GAME at START RULES -----");
		Rules.Add(" You need a Knife Kill.");
		Rules.Add("You will be Auto Killed until You get a Knife Kill");
		Rules.Add("After Knife Kill You are FREE to Gun Kill.");

	foreach(string Rule in Rules)
		plugin.SendGlobalMessage(Rule);	
	List<PlayerInfoInterface> all = new List<PlayerInfoInterface>();
		all.AddRange(team1.players);
		all.AddRange(team2.players);
		all.AddRange(team3.players);
		all.AddRange(team4.players);


		foreach (PlayerInfoInterface p in all)
			{
			msg = "Everyone Knife Kill at Start!!!";

			plugin.SendPlayerMessage(p.Name, msg);
			plugin.SendPlayerYell(p.Name, msg, 30);
			//plugin.ConsoleWrite(p.Name + ": " + msg);
			p.RoundData.setInt(key, 0);
			}
	
	}
else if(TagOnOff >= 5)
	{
	plugin.RoundData.setBool(key, false);
	msg = "Game at Start is disabled";
	plugin.ServerCommand("admin.say",  msg, "20");
	plugin.ServerCommand("admin.yell", msg, "20");
	}
return false;
action: none

 

************************************************** *******************************************

LIST 1

************************************************** *******************************************

NOTE:

this is the same LIST that is used for Original TAG from Post 1, you only need one LIST for both TAG and KNIFE at Start..

 

Create a custom list

 

call it gm_admins

 

Enabled, CaseInsensitive.

 

Add all the admins that can control the mode as player names separated by commas.

 

************************************************** ********************************************

 

 

There is more Integration/Checks to be done with these LIMITS for TAG and Knife at Start.

Over time I will get to it, but wanted to share the working versions.

I find that I want to run Knife_at_Start, all the time, but, still start it at random to not get bored with it to soon.

 

PapaCharlie9,

thanks again for your help

 

_gp?

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

Originally Posted by PapaCharlie9*:

 

There is an error in LIMIT 3. The first_check matches a bunch of commands that start with s. Then second_check tries to match ^!Tag, etc., but that command is is not matched in first_check, so the code in second_check will never happen.

 

Maybe remove the s in front of each command name in first_check?

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

Originally Posted by _gp_*:

 

There is an error in LIMIT 3. The first_check matches a bunch of commands that start with s. Then second_check tries to match ^!Tag, etc., but that command is is not matched in first_check, so the code in second_check will never happen.

 

Maybe remove the s in front of each command name in first_check?

PapaCharlie9

 

thx for the catch, corrected my error by adding 's' as needed.

 

Knife Game (TAG) and Knife at Start have same rules except for 1 rule. the 's' is to call the rules for Knife at start.

 

Need to get off my lazy @ss and post the 5 LIMITS I am using for Knife Game (TAG).

 

thx

_gp?

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

Originally Posted by _gp_*:

 

I still feel 'Lazy' but wanted to get this posted.

 

This is my version of Original Code for TAG by PapaCharlie9.

 

There are 5 LIMITS and 1 LIST

 

************************************************** *******************************************

LIMIT 1

************************************************** *******************************************

 

name: Game_of_Tag_Command

eval: OnAnyChat

1st: code

Code:

//gp_first_tag
//Commands !gameon  !gameoff  !game /!gameon  /!gameoff  /!game
String key = "GameOfTag";
String msg = null;
if (Regex.Match(player.LastChat, @"^(!gameon|/!gameon)", RegexOptions.IgnoreCase).Success)
 {
    if (!plugin.isInList(player.Name, "gm_admins"))
	{
        plugin.SendPlayerMessage(player.Name, "You do not have permission to use that command!");
        return false;
    }
    plugin.RoundData.setBool(key, true);
    msg = "Knife Game is enabled!";
    plugin.SendPlayerMessage(player.Name, msg);
    plugin.ConsoleWrite(msg + " by " + player.Name);
	
	plugin.ServerCommand("admin.say", msg, "0");

	List<String> Rules = new List<String>();
		Rules.Add("----- GAME RULES -----");
		Rules.Add(" If you are Knife Killed, ");
		Rules.Add(" You need a Knife Kill.");
		Rules.Add("You will be Auto Killed until You get a Knife Kill");
		Rules.Add("After Knife Kill You are FREE to Gun Kill.");

	foreach(string Rule in Rules)
	plugin.SendGlobalMessage(Rule);	
}
 else if (Regex.Match(player.LastChat, @"^(!gameoff|/!gameoff)", RegexOptions.IgnoreCase).Success)
 {
    if (!plugin.isInList(player.Name, "gm_admins"))
	{
        plugin.SendPlayerMessage(player.Name, "You do not have permission to use that command!");
        return false;
    }
    plugin.RoundData.setBool(key, false);
    msg = "Knife Game is disabled!";
    plugin.SendPlayerMessage(player.Name, msg);
    plugin.ConsoleWrite(msg + " by " + player.Name);
}
 else if (Regex.Match(player.LastChat, @"^(!game|/!game)", RegexOptions.IgnoreCase).Success)
 {
    if (!plugin.isInList(player.Name, "gm_admins"))
	{
        plugin.SendPlayerMessage(player.Name, "You do not have permission to use that command!");
        return false;
    }
    bool enabled = false;
    if (plugin.RoundData.issetBool(key))
        enabled = plugin.RoundData.getBool(key);
    plugin.SendPlayerMessage(player.Name, "Knife Game is " + ((enabled) _ "enabled!" : "disabled!"));
plugin.ServerCommand("admin.yell",  "Knife Game is " + ((enabled) _ "enabled!" : "disabled!"), "20");
}
return false;
2nd: Disabled

 

action: none

 

************************************************** *******************************************

LIMIT 2

************************************************** *******************************************

 

name: Game_of_Tag

eval: OnKill

 

1st: Expression

Code:

(true)
2nd: code

 

Code:

//rev gp_second_tag

String key = "GameOfTag";
String msg = null;

int w = 0;

//set number of gunkills allowed when IT before kick
w = 10;

// Check if mode is enabled
bool enabled = false;
if (plugin.RoundData.issetBool(key))
    enabled = plugin.RoundData.getBool(key);
if (!enabled)
    return false;

// Check if a knife kill 
bool knifeKill = Regex.Match(kill.Weapon, "(Melee|Knife)").Success;

// If victim not IT and knife kill, make IT
// If killer is IT and knife kill, make not IT
// If killer is IT and NOT knife kill, warn/kick

if (!victim.RoundData.issetInt(key) && knifeKill)
	{
    // Victim is now IT!
    msg = "Your Next Kill MUST be a Knife Kill!";
   	plugin.SendPlayerMessage(player.Name, msg);
	plugin.SendPlayerYell(player.Name, msg, 30);
	//plugin.ConsoleWrite(victim.Name + ": " + msg);
    victim.RoundData.setInt(key, 0);
	}

if (killer.RoundData.issetInt(key) && knifeKill)
	{
    // Killer is now NOT IT!
    msg = "NICE KNIFE KILL! You are FREE to Kill with ALL Weapons!";
   	plugin.SendPlayerMessage(player.Name, msg);
	plugin.SendPlayerYell(player.Name, msg, 30);
	//plugin.ConsoleWrite(killer.Name + ": " + msg);
    killer.RoundData.unsetInt(key);
	}

if (killer.RoundData.issetInt(key) && !knifeKill)
	{
    // Killer is IT and did not make a knife kill
    int warnings = killer.RoundData.getInt(key);
    warnings = warnings + 1;
    killer.RoundData.setInt(key, warnings);
    if (warnings == 1)
		{
         msg = "Your Next Kill MUST be a Knife Kill!";
   		plugin.SendPlayerMessage(player.Name, msg);
		plugin.SendPlayerYell(player.Name, msg, 30);
	
		 //plugin.KillPlayer(killer.Name, 0);
		 }
	else if (warnings >= 2 && warnings <= w)
		{
		msg = "Your Next Kill MUST be a Knife Kill! OR BE KILLED!";
   
		plugin.SendPlayerMessage(player.Name, msg);
		plugin.SendPlayerYell(player.Name, msg, 30);
		plugin.KillPlayer(killer.Name, 0);
		}
	
	else if (warnings > w)
		{
        msg = " for ignoring warnings: KNIFE KILL WAS NEEDED!";
        //plugin.ConsoleWrite("Kicked " + killer.Name + " " + msg);
        //plugin.EABanPlayerWithMessage(EABanType.Name, EABanDuration.Round, killer.Name, 0, msg);
		plugin.EABanPlayerWithMessage(EABanType.EA_GUID, EABanDuration.Temporary, killer.Name, 0,killer.Name +msg);
		}
    return false;
	}
return false;
action: none

 

************************************************** *******************************************

LIMIT 3

************************************************** *******************************************

Tag_Rules_Multi_Reg

 

OnAnyChat

 

1st:Expression

 

Code:

(Regex.Match(player.LastChat, @"^!(Tag|PTag|SpTag|GTag)", RegexOptions.IgnoreCase).Success)
2nd: code

 

Code:

//rev gp_ Tag_Rules_Multi_Reg

if (Regex.Match(player.LastChat, @"^!Tag", RegexOptions.IgnoreCase).Success)
	{
	//English
	// Edit rules here
	List<String> Rules = new List<String>();
	Rules.Add("----- GAME RULES -----");
	Rules.Add(" If you are Knife Killed, ");
	Rules.Add(" You need a Knife Kill.");
	Rules.Add("You will be Auto Killed until You get a Knife Kill.");
	Rules.Add("After Knife Kill You are FREE to Gun Kill.");
	// Try not to add more Rules.Add because it won't fit in the chat box.


	if(limit.Activations(player.Name) <= 5)
		foreach(string Rule in Rules)
			plugin.SendGlobalMessage(Rule);
	
	return false;
	}


else if (Regex.Match(player.LastChat, @"^!SpTag", RegexOptions.IgnoreCase).Success)
	{
	//Spanish
	// Edit rules here
	List<String> Rules = new List<String>();
	Rules.Add("----- REGLAS DEL JUEGO -----");
	Rules.Add("Si esta cuchillo mato,");
	Rules.Add("Usted necesita un cuchillo de muertes.");
	Rules.Add("Usted será Killed Auto hasta que obtenga un cuchillo Kill.");
	Rules.Add("Despues de lamina matanza que son libres de arma de muertes.");
	// Try not to add more Rules.Add because it won't fit in the chat box.


	if(limit.Activations(player.Name) <= 5)
		foreach(string Rule in Rules)
			plugin.SendGlobalMessage(Rule);
	
	return false;
	}
	
else if (Regex.Match(player.LastChat, @"^!PTag", RegexOptions.IgnoreCase).Success)
	{
	//Portugese
	// Edit rules here
	List<String> Rules = new List<String>();
	Rules.Add("----- REGRAS DO JOGO -----");
	Rules.Add("Se voce estiver faca matou,");
	Rules.Add("Voce precisa de uma faca Kill.");
	Rules.Add("Voce sera Auto matou ate obter uma faca Kill.");
	Rules.Add("Apos Faca Matar Voce e livre para Gun Kill.");
	// Try not to add more Rules.Add because it won't fit in the chat box.


	if(limit.Activations(player.Name) <= 5)
		foreach(string Rule in Rules)
			plugin.SendGlobalMessage(Rule);
	
	return false;
	}

else if (Regex.Match(player.LastChat, @"^!GTag", RegexOptions.IgnoreCase).Success)
	{
	//German
	// Edit rules here
	List<String> Rules = new List<String>();
	Rules.Add("----- SPIELREGELN -----");
	Rules.Add("Wenn Sie Messer getaetet,");
	Rules.Add("Sie benaetigen ein Messer zu taeten.");
	Rules.Add("Sie werden Auto getaetet, bis Sie erhalten ein Messer zu taeten.");
	Rules.Add("Nach dem Messer taeten Sie sind frei, Gun taeten.");
	// Try not to add more Rules.Add because it won't fit in the chat box.

	
	if(limit.Activations(player.Name) <= 5)
		foreach(string Rule in Rules)
			plugin.SendGlobalMessage(Rule);
	
	return false;
	}

return false;
action: none

 

************************************************** *******************************************

LIMIT 4

************************************************** *******************************************

name: You_are_IT_Reminder

eval: OnSpawn

 

1st: Code

 

Code:

//gp_You_are_IT_Reminder

String key = "GameOfTag";
String msg = null;

// Check if mode is enabled
bool enabled = false;
if (plugin.RoundData.issetBool(key))
    enabled = plugin.RoundData.getBool(key);
if (!enabled)
    return false;

if (player.RoundData.issetInt(key))
	{
    msg = "Your Next Kill MUST be a Knife Kill!";
    plugin.SendPlayerMessage(player.Name, msg);
	plugin.SendPlayerYell(player.Name, msg, 30);
	}
return false;
2nd: Disabled

 

Action: none

 

************************************************** *******************************************

LIMIT 5

************************************************** *******************************************

 

name: TAG_Rnd_On_Off

eval: OnRoundStart

 

1st: Expression

 

Code:

(
(server.PlayerCount >= 12) && (server.Gamemode == "GunMaster0") &&
  (
  server.MapFileName== "XP2_Skybar" 
  || server.MapFileName== "XP2_Office" 
  || server.MapFileName== "XP2_Palace" 
  || server.MapFileName== "XP2_Factory" 
  || server.MapFileName== "XP4_Quake"
  )
)
2nd: Code

 

Code:

//gp_TAG_Rnd_On_Off 12152014

String key = "GameOfTag";
String msg = null;

Random rnd = new Random();
int TagOnOff = rnd.Next(9);

if(TagOnOff <= 4)
	{
	plugin.RoundData.setBool(key, true);
	msg = "Knife Game is enabled";
	plugin.ServerCommand("admin.say",  msg, "20");
	plugin.ServerCommand("admin.yell", msg, "20");
	
	List<String> Rules = new List<String>();
	Rules.Add("----- GAME RULES -----");
	Rules.Add(" If you are Knife Killed, ");
	Rules.Add(" You need a Knife Kill.");
	Rules.Add("You will be Auto Killed until You get a Knife Kill");
	Rules.Add("After Knife Kill You are FREE to Gun Kill.");

	foreach(string Rule in Rules)
		plugin.SendGlobalMessage(Rule);	
	}
else if(TagOnOff >= 5)
	{
	plugin.RoundData.setBool(key, false);
	msg = "Knife Game is disabled";
	plugin.ServerCommand("admin.say",  msg, "20");
	plugin.ServerCommand("admin.yell", msg, "20");
	}
return false;
action: none

 

************************************************** *******************************************

LIST 1

************************************************** *******************************************

 

NOTE:

this is the LIST that is used for KnifeGame (TAG), you only need this LIST for KnifeGame(TAG) and KNIFE at Start..

 

Create a custom list

 

call it gm_admins

 

Enabled, CaseInsensitive.

 

Add all the admins that can control the mode as player names separated by commas.

 

************************************************** ********************************************

 

 

 

There is more to be done to Integrate these LIMITS for KnifeGame(TAG) and Knife at Start, if you choose to run both.

Over time I will get to it, but wanted to share the working versions.

 

I find that I want to run Knife_at_Start, all the time, but, still start it at random to not get bored with it to soon.

 

Both of these versions of TAG (KnifeGame and Knife at Start) can be run at the same time. It can be fun, but makes GunMaster a much harder game to Play.

 

PapaCharlie9,

thanks again for your help

 

_gp?

 

 

NOTE: If you are trying to run both 'KnifeGame' and 'KnifeAtStart' there is a Total of 10 LIMITS and 1 LIST needed.

 

Stand Alone Plug-In?

you can't make me, you can't make me Skipper. :smile: besides Insane Limits Rocks

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

Originally Posted by knownchild*:

 

How would one get this game of tag to "auto" start when the server is under X number of players and to "auto" end (displaying stats) when server reaches a X number of players?

 

this would be for any game mode/map :ohmy:

 

TY in advance

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

Originally Posted by _gp_*:

 

How would one get this game of tag to "auto" start when the server is under X number of players and to "auto" end (displaying stats) when server reaches a X number of players?

 

this would be for any game mode/map :ohmy:

 

TY in advance

Sorry so long to get back to you.

 

I can do part of what you are asking, if I understand correctly.

 

These LIMITS for Knife Game (TAG) and Knife at Start, are excecuted at the start of a round.

 

From what I read, you are asking for Knife Game (TAG) to be started :

 

1) every round

 

2) on all game modes

 

3) only if there is less than a certain number of players in server. (I am guessing 48 players will be upper limit)

 

4) I will keep it for minimum number of 12 players also as I have found, it is best.

 

From post 47 change LIMIT 5 to:

 

************************************************** *******************************************

LIMIT 5 Revised to start any mode any time 03212015

************************************************** *******************************************

 

name: TAG_Rnd_On_Off

eval: OnRoundStart

 

1st: Expression

 

Code:

(
(server.PlayerCount >= 12) && (server.PlayerCount <= 48)
)
2nd: Code

 

Code:

//gp_TAG_Rnd_On_Off 12152014
//added line 8 to start TAG every round 03212015

String key = "GameOfTag";
String msg = null;

Random rnd = new Random();
int TagOnOff = rnd.Next(9);

//comment out next line for random to work again
TagOnOff = 4;

if(TagOnOff <= 4)
	{
	plugin.RoundData.setBool(key, true);
	msg = "Knife Game is enabled";
	plugin.ServerCommand("admin.say",  msg, "20");
	plugin.ServerCommand("admin.yell", msg, "20");
	
	List<String> Rules = new List<String>();
	Rules.Add("----- GAME RULES -----");
	Rules.Add(" If you are Knife Killed, ");
	Rules.Add(" You need a Knife Kill.");
	Rules.Add("You will be Auto Killed until You get a Knife Kill");
	Rules.Add("After Knife Kill You are FREE to Gun Kill.");

	foreach(string Rule in Rules)
		plugin.SendGlobalMessage(Rule);	
	}
else if(TagOnOff >= 5)
	{
	plugin.RoundData.setBool(key, false);
	msg = "Knife Game is disabled";
	plugin.ServerCommand("admin.say",  msg, "20");
	plugin.ServerCommand("admin.yell", msg, "20");
	}
return false;
action: none

 

At anytime you want to stop Knife Game (TAG) can be stopped by typing !gameoff in chat.

(do not forget to add your name to the gm_admins List )

 

the above code compiled but I did not test it in game as at the moment I am running gunmaster only on my server...

 

Thx,

 

_gp?

 

- If you want the current game ended when a player total is reached I will need to speak to PapaCharlie9 for guidance as to the command to use...if there is a command that works...

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