Jump to content

Insane Limits (0.9.17.0 - 30-MAR-2015) + BFHL


ImportBot

Recommended Posts

Originally Posted by Mgalbraith*:

 

Also - looking at this a little bit further, it seems the persona id is not being formed in the url address properly.

 

In the warning below, the URL is missing the persona id and has // in it.....

 

[09:55:13 49] [insane Limits] Thread(fetch): WARNING: (StatsException) JSON response data does not contain overviewStats, for Vulkan-Berzerker (http://battlelog.battlefield.com/bf3...us-engineer/1/)

Is this a problem?

 

[09:55:13 49] [battlelog Cache] Performing lookupRequest #0...

[09:55:13 49] [battlelog Cache] Performing lookup for player 'Vulkan-Berzerker' with requestType 'Overview'...

[09:55:13 49] [battlelog Cache] MySqlLookup starting!

[09:55:13 49] [battlelog Cache] ResponseLoop locking lookupResponses (removing old response)

[09:55:13 49] [battlelog Cache] ResponseLoop releasing lookupResponses (removing old response)

[09:55:13 49] [battlelog Cache] Finished lookupResponse #0...

[09:55:13 49] [battlelog Cache] MySqlLookup finished!

[09:55:13 49] [battlelog Cache] No valid stats for player 'Vulkan-Berzerker' with requestType 'Overview' found in MySQL-database. Fetching stats...

[09:55:13 49] [insane Limits] Thread(fetch): WARNING: (StatsException) JSON response data does not contain overviewStats, for Vulkan-Berzerker (http://battlelog.battlefield.com/bf3...us-engineer/1/)

[09:55:13 49] [battlelog Cache] Waiting for 1.9843997 seconds to avoid Battlelog throtteling...

[09:55:13 49] [insane Limits] Thread(fetch): Unable to fetch stats for Vulkan-Berzerker

[09:55:13 49] [battlelog Cache] Finished all lookupResponses...

[09:55:13 49] [battlelog Cache] ResponseQueue empty, waiting...

[09:55:13 49] [battlelog Cache] ResponseLoop locking lookupResponses (creating local copy)

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

Originally Posted by dyn*:

 

In my quest to reduce unneeded commands from being issued, I ...* being issued which we didn't take advantage of or have a reason to issue them.

 

On just our 64p sever it looks like Insane Limits is issuing over 90,000 player.idleDuration commands in a 24 hour period. I verified it was Insane Limits by setting debug to 10 and watching the log:

 

[00:44:00] [insane Limits] Updating idle duration for: Player-Name

The 90,000 commands being issued represent almost 1/3 of all commands being issued in a given day (615670 total lines in log file, 307000 'ok'). This leaves aprox 308600 commands issued per day. 90,000 of those are just idleDuration.

 

 

Is there any way to disable idle duration from being requested unless it's being used by a limit?

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

Originally Posted by MaccabeeY*:

 

Is there any way to disable idle duration from being requested unless it's being used by a limit?

dyn,

From my review of the .cs file, you may be correct. there appears to be two places where IdleDuration is/could be executed.

 

The first is in a C# function called "CheckPlayerIdle", which gets it locally to the function and then resets it back to zero immediatel after. However, this function does not seem to be called from anywhere, so I am guessing that is not the culprit.

 

The second is in a function called "UpdateExtraInfo" which iterates thru a list of players to update each one's stored server idle value (I didn't dig into why, how, or if each player's idle time is used).

 

So at a very preliminary glance IdleDuration does not seem necessary and starts to look that it could be remove from source code, but much more research into falling the potential call stack or the current author would be required to be certain anything could be removed.

 

Edward

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

Originally Posted by PapaCharlie9*:

 

Also - looking at this a little bit further, it seems the persona id is not being formed in the url address properly.

 

In the warning below, the URL is missing the persona id and has // in it.....

This is all the same underlying problem. Insane Limits asks Battlelog Cache to do something and then waits 30 seconds. It doesn't get an answer back within 30 seconds and gives up with an error, then some time later the answer it asked for finally shows up, but by that time it's moved on, thus the warning.

 

So again, setting wait_timeout to 61 should help. It won't eliminate the errors, nothing will. Battlelog is just being very slow for you, which is not unusual. Dont try setting wait_timeout above 90, that just causes other problems.

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

Originally Posted by PapaCharlie9*:

 

In my quest to reduce unneeded commands from being issued, I ...* being issued which we didn't take advantage of or have a reason to issue them.

 

On just our 64p sever it looks like Insane Limits is issuing over 90,000 player.idleDuration commands in a 24 hour period. I verified it was Insane Limits by setting debug to 10 and watching the log:

The 90,000 commands being issued represent almost 1/3 of all commands being issued in a given day (615670 total lines in log file, 307000 'ok'). This leaves aprox 308600 commands issued per day. 90,000 of those are just idleDuration.

 

 

Is there any way to disable idle duration from being requested unless it's being used by a limit?

Do you have a lot of idle players? Because the command isn't sent for every player, only those with 0 score and 0 deaths:

 

Code:

if ((cpiPlayer.Score == 0 || Double.IsNaN(cpiPlayer.Score)) && cpiPlayer.Deaths == 0) {
                    DebugWrite("Updating idle duration for: " + cpiPlayer.SoldierName, 5);
                    ServerCommand("player.idleDuration", cpiPlayer.SoldierName); // Update it
                }
How about as an experiment you comment out the ServerCommand above? Like this:

Code:

if ((cpiPlayer.Score == 0 || Double.IsNaN(cpiPlayer.Score)) && cpiPlayer.Deaths == 0) {
                    DebugWrite("Updating idle duration for: " + cpiPlayer.SoldierName, 5);
                    //ServerCommand("player.idleDuration", cpiPlayer.SoldierName); // Update it
                }
I bet you will continue to see idleDuration commands. While IL certainly does issue the command, I can't imagine an actual game server situation that would result in 90k commands in 24 hours. The update happens every 30 seconds, so that means you'd had to have 90000 / (24 * 60 * 2) = 31.25 idle players every 30 seconds. It doesn't add up. Some other plugin is issuing the command and at a far higher rate than IL. Or, cpiPlayer info is bogus and a bunch of players who are not idle are getting to the plugin as 0 score, 0 deaths (extremely unlikely, but I guess not impossible).

 

EDIT: There is another possibility. If the listPlayers event is happening 5x to 10x more often than twice a minute, then it might be IL. IL does generate the event more frequently than every 30 seconds under certain circumstances, but not 5x to 10x more. That's every 3 to 6 seconds.

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

Originally Posted by dyn*:

 

Just saw your edit so I went back and looked through the console logs for yesterday. In total for yesterday there were 80,966 instances of 'idle duration' issued. I didn't have debugging turned up for insane limits so I'm not able to match up times the command was issued. Will ensure that debugging is enabled for insane limits to see what happens.

 

It does look like we're seeing quite a few every second:

 

Code:

[23:59:16] 
[23:59:16] serverInfo
[23:59:16] OK MY SERVER - SERVER INFO
[23:59:16] admin.listPlayers all
[23:59:16] mapList.getMapIndices
[23:59:16] mapList.list
[23:59:16] OK 0 1
[23:59:16] mapList.getMapIndices
[23:59:16] player.idleDuration Player-1
[23:59:16] OK 0 1
[23:59:16] player.idleDuration Player-2
[23:59:16] OK 0
[23:59:16] player.idleDuration Player-3
[23:59:16] OK 0
[23:59:16] player.idleDuration Player-4
Code:
[23:59:18]
[23:59:18] serverInfo
[23:59:18] OK 42
[23:59:18] admin.listPlayers all
[23:59:18] OK 68
[23:59:18] mapList.getMapIndices
[23:59:19] OK 174
[23:59:19] punkBuster.pb_sv_command pb_sv_plist
[23:59:19] OK 56
[23:59:19] OK 77
[23:59:19] OK 75
[23:59:19] OK 30
[23:59:19] OK 0 3
[23:59:19] OK
[23:59:19] OK
[23:59:19] OK MY SERVER - SERVER INFO

player.idleDuration Player-1
[23:59:19] OK 0 1
[23:59:19] player.idleDuration Player-2
[23:59:19] OK
[23:59:19] player.idleDuration Player-3
[23:59:19] player.idleDuration Player-4
Code:
[23:59:24] serverInfo
[23:59:24] OK MY SERVER - SERVER INFO
[23:59:24] player.idleDuration Player-1
[23:59:24] OK 0
[23:59:24] punkBuster.pb_sv_command pb_sv_plist
[23:59:24] OK
[23:59:24] player.idleDuration Player-2
[23:59:24] serverInfo
[23:59:24] player.idleDuration Player-4
What's your take on making the edit to the cs file? Would you encourage that to be done as well?
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PapaCharlie9*:

 

What's your take on making the edit to the cs file? Would you encourage that to be done as well?

As a temporary exercise to help isolate the problem, go for it. I'm still betting IL isn't responsible for the lion's share of those and commenting out is the best way to prove.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by Snowy*:

 

Look in your procon folder for a file called DEBUG.txt. Look for a date/time entry for the time you tried to launch the layer and it failed. What error does it say? Post the whole section.

Sorry for the late reply...

 

I tried twice at different date and had to re-install procon each time...

 

Code:

=======================================

Exception caught at: 
D:\_Phil_\privat\_Gameserver_com_\_SRC_\_Procon_0y_Team_\Procon 1.X\src\PRoCon.Core\Remote\FrostbiteConnection.cs
Line 153
Method RaiseEvent
DateTime: Sunday, May 19, 2013 5:13:48 PM
Version: 1.4.0.9
Packet: 
PRoCon.Core.Remote.Layer.PRoConLayer ::: Void client_LayerClientShutdown(PRoCon.Core.Remote.Layer.PRoConLayerClient) ::: ---PRoCon.Core.Remote.Layer.PRoConLayerClient
Additional: 


Exception has been thrown by the target of an invocation.

   at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
   at System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
   at System.Delegate.DynamicInvokeImpl(Object[] args)
   at PRoCon.Core.Remote.FrostbiteConnection.RaiseEvent(Delegate[] a_delInvokes, Object[] a_objArguments) in D:\_Phil_\privat\_Gameserver_com_\_SRC_\_Procon_0y_Team_\Procon 1.X\src\PRoCon.Core\Remote\FrostbiteConnection.cs:line 153
=======================================

Exception caught at: 
D:\_Phil_\privat\_Gameserver_com_\_SRC_\_Procon_0y_Team_\Procon 1.X\src\PRoCon.Core\Remote\FrostbiteConnection.cs
Line 153
Method RaiseEvent
DateTime: Friday, June 07, 2013 3:44:48 AM
Version: 1.4.0.9
Packet: 
PRoCon.Core.Remote.BF3Client ::: Void Connection_PacketRecieved(System.Object, Boolean, PRoCon.Core.Remote.Packet) ::: ---PRoCon.Core.Remote.FrostbiteConnection---False---OK
Additional: 


Exception has been thrown by the target of an invocation.

   at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
   at System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
   at System.Delegate.DynamicInvokeImpl(Object[] args)
   at PRoCon.Core.Remote.FrostbiteConnection.RaiseEvent(Delegate[] a_delInvokes, Object[] a_objArguments) in D:\_Phil_\privat\_Gameserver_com_\_SRC_\_Procon_0y_Team_\Procon 1.X\src\PRoCon.Core\Remote\FrostbiteConnection.cs:line 153
Thanks for your help.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PapaCharlie9*:

 

Sorry for the late reply...

 

I tried twice at different date and had to re-install procon each time...

 

Code:

=======================================

Exception caught at: 
D:\_Phil_\privat\_Gameserver_com_\_SRC_\_Procon_0y_Team_\Procon 1.X\src\PRoCon.Core\Remote\FrostbiteConnection.cs
Line 153
Method RaiseEvent
DateTime: Sunday, May 19, 2013 5:13:48 PM
Version: 1.4.0.9
Packet: 
PRoCon.Core.Remote.Layer.PRoConLayer ::: Void client_LayerClientShutdown(PRoCon.Core.Remote.Layer.PRoConLayerClient) ::: ---PRoCon.Core.Remote.Layer.PRoConLayerClient
Additional: 


Exception has been thrown by the target of an invocation.

   at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
   at System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
   at System.Delegate.DynamicInvokeImpl(Object[] args)
   at PRoCon.Core.Remote.FrostbiteConnection.RaiseEvent(Delegate[] a_delInvokes, Object[] a_objArguments) in D:\_Phil_\privat\_Gameserver_com_\_SRC_\_Procon_0y_Team_\Procon 1.X\src\PRoCon.Core\Remote\FrostbiteConnection.cs:line 153
=======================================

Exception caught at: 
D:\_Phil_\privat\_Gameserver_com_\_SRC_\_Procon_0y_Team_\Procon 1.X\src\PRoCon.Core\Remote\FrostbiteConnection.cs
Line 153
Method RaiseEvent
DateTime: Friday, June 07, 2013 3:44:48 AM
Version: 1.4.0.9
Packet: 
PRoCon.Core.Remote.BF3Client ::: Void Connection_PacketRecieved(System.Object, Boolean, PRoCon.Core.Remote.Packet) ::: ---PRoCon.Core.Remote.FrostbiteConnection---False---OK
Additional: 


Exception has been thrown by the target of an invocation.

   at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
   at System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
   at System.Delegate.DynamicInvokeImpl(Object[] args)
   at PRoCon.Core.Remote.FrostbiteConnection.RaiseEvent(Delegate[] a_delInvokes, Object[] a_objArguments) in D:\_Phil_\privat\_Gameserver_com_\_SRC_\_Procon_0y_Team_\Procon 1.X\src\PRoCon.Core\Remote\FrostbiteConnection.cs:line 153
Thanks for your help.
I don't see anything specific about Insane Limits in there. Maybe you are having a more general Procon issue? Perhaps copy your post to the Bugs forum?
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by dyn*:

 

As a temporary exercise to help isolate the problem, go for it. I'm still betting IL isn't responsible for the lion's share of those and commenting out is the best way to prove.

Looks like the fix worked!

 

After making the change going on ~3 hours not a single player.idleDuration command has been sent. The previous 20 hours before making the change? 61,000 player.idleDuration commands were issued to just one server.

 

 

That just eliminated hundreds of thousands of commands which were being sent across all of our servers! Thanks :ohmy:

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

Originally Posted by EBassie*:

 

Keep getting this every few seconds since Battlelog update:

Code:

[16:04:00 41] [Insane Limits] Thread(fetch): EXCEPTION: : System.NullReferenceException: Object reference not set to an instance of an object.
[16:04:00 41] [Insane Limits] Thread(fetch): Extra information dumped in file InsaneLimits.dump
Code:
-----------------------------------------------
Version: InsaneLimits 0.9.10.0
Date: 15/06/2013 16:01:57
Data: 
System.NullReferenceException: Object reference not set to an instance of an object.

Stack Trace: 
   at PRoConEvents.BattleLog.extractBasicFields(Hashtable stats, PlayerInfo pinfo)
   at PRoConEvents.BattleLog.fetchStats(PlayerInfo pinfo)

MSIL Stack Trace:
    Void extractBasicFields(System.Collections.Hashtable, PRoConEvents.PlayerInfo), IL: 0x2A
    PRoConEvents.PlayerInfo fetchStats(PRoConEvents.PlayerInfo), IL: 0x2FE

-----------------------------------------------
Version: InsaneLimits 0.9.10.0
Date: 15/06/2013 16:01:58
Data: 
System.NullReferenceException: Object reference not set to an instance of an object.

Stack Trace: 
   at PRoConEvents.BattleLog.extractBasicFields(Hashtable stats, PlayerInfo pinfo)
   at PRoConEvents.BattleLog.fetchStats(PlayerInfo pinfo)

MSIL Stack Trace:
    Void extractBasicFields(System.Collections.Hashtable, PRoConEvents.PlayerInfo), IL: 0x2A
    PRoConEvents.PlayerInfo fetchStats(PRoConEvents.PlayerInfo), IL: 0x2FE
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by EBassie*:

 

Same here, maybe Battlelog changed the way stats are fetched?

No, stats are still being fetched. Just checked that with an empty BL Cache DB.

 

EDIT: Although....

 

Weaponstats seem to stay NULL for all records... but the weaponstats fetch link still works...

May take some extra time to fetch the weapon and vehicle stats because I cleared the DB.

 

 

EDIT:

weapon and vehicle stats stay NULL

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

Originally Posted by PapaCharlie9*:

 

Looks like the fix worked!

 

After making the change going on ~3 hours not a single player.idleDuration command has been sent. The previous 20 hours before making the change? 61,000 player.idleDuration commands were issued to just one server.

 

 

That just eliminated hundreds of thousands of commands which were being sent across all of our servers! Thanks :ohmy:

Er, that is not the outcome I was expecting. I just meant for this to confirm that it was NOT IL, not to actually fix anything.

 

If you want an actual fix for Insane Limits, make this change instead. Note that the ServerCommand line is uncommented.

 

Code:

if (itIsTime && (cpiPlayer.Score == 0 || Double.IsNaN(cpiPlayer.Score)) && cpiPlayer.Deaths == 0) {
                    DebugWrite("Updating idle duration for: " + cpiPlayer.SoldierName, 5);
                    ServerCommand("player.idleDuration", cpiPlayer.SoldierName); // Update it
                }
That change will be in the next patch of IL, 9.11.

 

That should drastically reduce the frequency of the command, and, if you still don't like the frequency, you can reduce it further by changing your update_interval setting more than 60 seconds.

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

Originally Posted by PapaCharlie9*:

 

Keep getting this every few seconds since Battlelog update:

Sigh. Well, at least it's the weekend and I have time to fix this.

 

I'm analyzing the new JSON now. Lots of new fields. Seems early for BF4, maybe there is a new MOHW coming out?

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

Originally Posted by kcuestag*:

 

Sigh. Well, at least it's the weekend and I have time to fix this.

 

I'm analyzing the new JSON now. Lots of new fields. Seems early for BF4, maybe there is a new MOHW coming out?

No, I believe there's no MOH game coming this year. :biggrin:
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PapaCharlie9*:

 

Okay, everthing is working better now. See post #2 for details.

 

dyn, I included the suggested change for player.idleDuration. You can now control the frequency with update_interval after picking up 9.11.

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

Originally Posted by Skypattaya*:

 

Hello, after i updated today i got this error message

 

[13:39:49 84] [insane Limits] Thread(settings): Compiling Limit #1 - Name1 - OnKill

[13:39:49 89] [insane Limits] Thread(settings): ERROR: 1 error compiling Expression

[13:39:49 89] [insane Limits] Thread(settings): ERROR: (CS1002, line: 94, column: 25): ; expected

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

Originally Posted by PapaCharlie9*:

 

Hello, after i updated today i got this error message

 

[13:39:49 84] [insane Limits] Thread(settings): Compiling Limit #1 - Name1 - OnKill

[13:39:49 89] [insane Limits] Thread(settings): ERROR: 1 error compiling Expression

[13:39:49 89] [insane Limits] Thread(settings): ERROR: (CS1002, line: 94, column: 25): ; expected

Did you enter or change any limits? Maybe copied a new one or recopied some old ones? Because the error comes from the very last line missing a semi-colon ...

 

Code:

return false;
Should have nothing to do with the update. I tried your code, plus the missing semi-colon, on the 9.11 version and it compiled fine.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by Skypattaya*:

 

Did you enter or change any limits? Maybe copied a new one or recopied some old ones? Because the error comes from the very last line missing a semi-colon ...

 

Code:

return false;
Should have nothing to do with the update. I tried your code, plus the missing semi-colon, on the 9.11 version and it compiled fine.
Thanks, it was the semi-colon, i missed after i copied it. i am that s..... . Thanks
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by HappyGotLucky*:

 

When my procon layers restarts while I have players on the server I start receiving errors from InsaneLimits like this:

 

[16:31:00 02] [insane Limits] EXCEPTION: Limit #1: System.Reflection.TargetParameterCountException: Parameter count mismatch.

[16:31:00 02] [insane Limits] Extra information dumped in file InsaneLimits.dump

 

They will appear until I go to the limit manager and compile_limit All

 

After that works perfectly fine. Where does the .dump file get placed? I can't seem to locate it. Any thoughts without having seen the dump?

 

My Limit 1 is the knife script. OnKill First check: Code

 

if ( Regex.Match(kill.Weapon, @"(ACB-90|Knife|Melee)", RegexOptions.IgnoreCase).Success ) {

List KnifeShame = new List();

KnifeShame.Add("%v_n% hold still, %k_n% is trying to cut you out of your french maid costume");

KnifeShame.Add("could you please have a look for %k_n%'s knife, it was last seen in the ass of %v_n%");

KnifeShame.Add("%k_n% whispers 'you are my bitch now' as he pull knife out of %v_n%");

KnifeShame.Add("%k_n% just sliced %v_n%'s throat, what a shame, bro!");

KnifeShame.Add("as %k_n% knifes %v_n% he wonders if O.J Simpson's lawyer is available");

KnifeShame.Add("%v_n% was shanked by %k_n%!");

KnifeShame.Add("%v_n% regrets playing 'pin the tail on the donkey' with %k_n%");

KnifeShame.Add("%k_n% stabbed his way through %v_n%!");

KnifeShame.Add("%k_n% starts the bidding for %v_n%'s organs at $1");

KnifeShame.Add("%k_n% just sliced %v_n%'s throat, what a bloody mess!");

KnifeShame.Add("%k_n%'s knife is ribbed for your pleasure %v_n%");

KnifeShame.Add("%k_n% just took %v_n%'s tags and made him cry!");

KnifeShame.Add("%v_n% has been slashed by %k_n%");

KnifeShame.Add("%k_n% slipped a shiv into %v_n%'s back!");

KnifeShame.Add("%k_n% owned %v_n% with a knife!");

KnifeShame.Add("%k_n% tells %v_n% 'stop screaming, i've seen men put bigger things into you on porntube'");

KnifeShame.Add("%v_n% now knows why %k_n%'s nickname is McStabby");

KnifeShame.Add("%v_n%, you gonna let %k_n% get away with taking your tags_");

KnifeShame.Add("%k_n% just finished bathing in the blood of %v_n%!");

KnifeShame.Add("%k_n% just Tweeted about knifing %v_n%!");

KnifeShame.Add("%v_n% smashed the keyboard in anger after %k_n% took his tags!");

KnifeShame.Add("%k_n% just posted %v_n%'s tags on Facebook!");

KnifeShame.Add("%k_n% is now wearing %v_n% trophy tags!");

KnifeShame.Add("%k_n%: 'Just die already, %v_n%'"); // From BC2

KnifeShame.Add("%k_n%: 'Hey %v_n%, you want summa this_'"); // From BC2

KnifeShame.Add("%v_n% took a gun to a knife fight with %k_n%, and LOST!");

KnifeShame.Add("%k_n% it's fair enough that you killed %v_n% but why you putting a dress and make-up on him... ");

KnifeShame.Add("Disturbing... %k_n% laughs like a 12 year old school girl as he repeatedly knifes %v_n% and dances around in his blood");

KnifeShame.Add("Did you see the YouTube of %k_n% knifing %v_n%_");

KnifeShame.Add("%k_n% just added +1 knife kills to his Battlelog stats, thanks to %v_n%");

KnifeShame.Add("as %k_n% removed knife from %v_n% he wonders why it's so hard to make friends ...");

KnifeShame.Add("%v_n% Just made %k_n% knife dirty,by falling on his knife!");

KnifeShame.Add("%k_n%: 'Hey %v_n%, check your six next time!'");

KnifeShame.Add("%v_n%, go tell your momma you lost your tags to %k_n%!");

KnifeShame.Add("%k_n% Lost his knife in the fat of %v_n% body");

KnifeShame.Add("%k_n% sliced %v_n% throat and burned his body");

KnifeShame.Add("%v_n% was distracted by free cams while %k_n% stuck a knife in his ass!");

KnifeShame.Add("%k_n% pulled out %v_n% heart, and fed it to the dog.");

KnifeShame.Add("%k_n% added %v_n% dogtags to his dogtags trophy section.");

KnifeShame.Add("%k_n% shoved the knife into %v_n% eyeball,and kicked him off the ledge screaming: This is SPAAAAAARTAAA!");

KnifeShame.Add("%k_n%, %v_n%'s mam has been on the phone asking for his dogtags back");

KnifeShame.Add("%k_n% split %v_n% throat and urinated on him");

KnifeShame.Add("%k_n% just chopped %v_n% balls off! that gotta hurt !!");

KnifeShame.Add("%k_n% Humiliated %v_n%");

KnifeShame.Add("%v_n%'s blood is now sprayed everywhere due to %k_n% knife's action!");

KnifeShame.Add("Sad music plays on the background, while %v_n% bleeds to death ...");

KnifeShame.Add("%k_n% Cut out %v_n% ribs and shouted: BBQ Tonight at my place.");

KnifeShame.Add("%v_n% regrets betting %k_n% that he couldn't guess what he had for lunch");

KnifeShame.Add("%v_n% is a knife magnet today!");

KnifeShame.Add("%v_n% surrendered his tags to %k_n% by way of a knife!");

int level = 2;

try {

level = Convert.ToInt32(plugin.getPluginVarValue("debug_le vel"));

} catch (Exception e) {}

Random rndnum= new Random();

int next = rndnum.Next(0, KnifeShame.Count-1);

String knifemessage = plugin.R(KnifeShame[next]);

plugin.ServerCommand("admin.yell", knifemessage, "12");

plugin.SendGlobalMessage(knifemessage);

}

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

Originally Posted by MaccabeeY*:

 

PapaCharlie,

Insane Limits is one of the integral tools that makes limits I've created on my servers, perhaps, the most unique in the BF3 universe, not to mention, probably the only truly AUTO-Admin'ed server.

 

I am going to institute a game round rotation, i.e. with different rules and limits, say, every 3rd round.

In order to do this, I want to create an irregular rotation. I want it "keep it interesting and appear unpredictable".Also I want each variant of map to experience the rules periodically. Too achieve these goals, it is vital, that the interval, in this example 3, NOT be a multiple of the total number of maps/rounds.

 

For example, on a 4 map in combination, it would go something like this: round (1, 2)-normal; 3-special; (4, 1)-normal; 2-special, etc.

 

To achieve this, I believe, it would require that I will need to save to and get access the a "place" (i.e ProconRulz has the "ini_" variable) where I can read/write persistent data that remains beyond a single round. After carefully, reviewing the InsaneLimits.cs file, I was able to find I can get current round info useful to my call in data like server.TotalRounds and server.MapIndex. Unfortunately, this gets me only 2 of the three parts I would need. The third is I would need to save and retrieve the server.MapIndex of the LAST round to have run using the special rules. Without this 3rd piece of data, I would be unable to institute an irregular rules rotation.

 

Is there anything already existing in InsaneLimits that would facilitate this? If no, would it be something you could incorporate quickly and/or painlessly? I would do it myself, but, since InsaneLimits is NOT a "no longer maintained" plugin, I run the risk of trouble when new versions/patches of InsaneLimits are released (case in point the newly release JUN-15 release, yesterday. Really, in this "special rules rotation" case, all I need to save/read is a single variable, "what_was the_map_index_of_the_last_special_rules_round" kind of data.

 

Hopefully,

Edward

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.




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