Jump to content

[Insane Limits V0.9.8.0] [0.2.1.1 Reserve Slot for Server Starter]


ImportBot

Recommended Posts

  • Replies 190
  • Created
  • Last Reply

Originally Posted by exxerich*:

 

Reserve slot list created with first player,eXXarich.

New Player,Hoda89added to end of the reserve slot list with 5 day(s) remaining.

New Player,jaskula07added to end of the reserve slot list with 5 day(s) remaining.

New Player,dugong1added to end of the reserve slot list with 5 day(s) remaining.

New Player,Cpt-J-Fulleradded to end of the reserve slot list with 5 day(s) remaining.

New Player,The_Bearded_1added to end of the reserve slot list with 5 day(s) remaining.

New Player,Tommy_74added to end of the reserve slot list with 5 day(s) remaining.

New Player,NotKilledBySkilladded to end of the reserve slot list with 5 day(s) remaining.

New Player,erwolltenurspieladded to end of the reserve slot list with 5 day(s) remaining.

New Player,ChiefFolloweradded to end of the reserve slot list with 5 day(s) remaining.

New Player,aspire4930added to end of the reserve slot list with 5 day(s) remaining.

New Player,MiSHeL2143048added to end of the reserve slot list with 5 day(s) remaining.

Cpt-J-Fuller got added to the ReserveSlot successfully with 9 day(s) remaining.

New Player,Nikonofffadded to end of the reserve slot list with 5 day(s) remaining.

New Player,CHRC_iLpOmPaToadded to end of the reserve slot list with 5 day(s) remaining.

New Player,Blacks991added to end of the reserve slot list with 5 day(s) remaining.

New Player,DemonLord6081added to end of the reserve slot list with 5 day(s) remaining.

New Player,sebbe343added to end of the reserve slot list with 5 day(s) remaining.

New Player,Chrisi8762added to end of the reserve slot list with 5 day(s) remaining.

New Player,Schobbe_88added to end of the reserve slot list with 5 day(s) remaining.

New Player,Runar23added to end of the reserve slot list with 5 day(s) remaining.

New Player,Madz098added to end of the reserve slot list with 5 day(s) remaining.

New Player,henry2507added to end of the reserve slot list with 5 day(s) remaining.

New Player,sandounadded to end of the reserve slot list with 5 day(s) remaining.

New Player,Albaregiaplayeradded to end of the reserve slot list with 5 day(s) remaining.

New Player,killingeddyadded to end of the reserve slot list with 5 day(s) remaining.

New Player,7ussOrIDadded to end of the reserve slot list with 5 day(s) remaining.

New Player,DrW0ut3Radded to end of the reserve slot list with 5 day(s) remaining.

New Player,guskoff59added to end of the reserve slot list with 5 day(s) remaining.

New Player,-XL-iFurikadded to end of the reserve slot list with 5 day(s) remaining.

New Player,russian_cat3added to end of the reserve slot list with 5 day(s) remaining.

New Player,Gerasim-jradded to end of the reserve slot list with 5 day(s) remaining.

New Player,SyNtethadded to end of the reserve slot list with 5 day(s) remaining.

New Player,Grenouille_DKadded to end of the reserve slot list with 5 day(s) remaining.

New Player,Zunaiiiadded to end of the reserve slot list with 5 day(s) remaining.

New Player,MoraMazaadded to end of the reserve slot list with 5 day(s) remaining.

New Player,kikill18added to end of the reserve slot list with 5 day(s) remaining.

New Player,BrezelDesTodesadded to end of the reserve slot list with 5 day(s) remaining.

New Player,sparhawkeradded to end of the reserve slot list with 5 day(s) remaining.

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

Originally Posted by supermillhouse*:

 

Cpt-J-Fuller and eXXarich should be the only ones added to the reserve slot as they are the only ones to turn up twice, and you ares sure they definitely aren't in the reserve slot. You may need to restart your client to update the list

 

 

Sent from my iPad using Tapatalk

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

Originally Posted by supermillhouse*:

 

It was done this way to stop the reserve slot list filling up with random names. I.e if the setting add 6 names to the list every day and they stay on for 5 days you could have 5 days worth of 6 random players. Basically 30 player names that may never come back to the server again. I know this isn't a problem really, but managing a reserve list is a bit messy when there are that many players you don't recognise, expecialy when procon doesn't sort them alphabetically. And that's if they are left at 6 and 5 :smile:

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

Originally Posted by supermillhouse*:

 

It is possible probably. I recommend submitting it in the insane limits request thread. There are coders out there who can nock it up in a flash. I am a bit busy at the moment with other things.

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

Originally Posted by 397Seth*:

 

I have one issue:

The plug in says the following:

[20:15:14] New Player,Mannomannomannadded to end of the reserve slot list.

[20:15:14] New Player,kierenkeelingadded to end of the reserve slot list.

[20:15:14] New Player,ronnybiancaadded to end of the reserve slot list.

[20:15:14] New Player,Destroyer-KiTTyadded to end of the reserve slot list.

[20:15:14] New Player,HerbsAndSpicesadded to end of the reserve slot list.

[20:15:14] New Player,mallemuenchenadded to end of the reserve slot list.

[20:15:14] New Player,TRAJANNNadded to end of the reserve slot list.

[20:15:14] New Player,Silverbolt9222added to end of the reserve slot list.

[20:15:14] New Player,Smokehouse81added to end of the reserve slot list.

 

But there is no entry in the reserved.txt on the server. Will the entries be written in the actual reservedslot file on the gameserver? Or is it stored in an external file?

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

Originally Posted by supermillhouse*:

 

If they join back within the 5 days they will get their remaining days plus another 5. If I made it do it on the first day loads of random names would be added and possibly never used

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

Originally Posted by 397Seth*:

 

So by changing this part of code:

Code:

int RSThresh = 5;    //When the player should get a reserve slot, when he has this number of days or more.
int numoftemps = 10;  //Number of players to be copied to reserve list
int triggertransfer = 20;  //When the players list is copied over
int RSCap = 30;      //Max number of reserve slot days
int rewarddays = 5;  //Number of days rewarded for helping to start the server once
Lets say to this

Code:

int RSThresh = 5;    //When the player should get a reserve slot, when he has this number of days or more.
int numoftemps = 6;  //Number of players to be copied to reserve list
int triggertransfer = 20;  //When the players list is copied over
int RSCap = 10;      //Max number of reserve slot days
int rewarddays = 5;  //Number of days rewarded for helping to start the server once
The first 6 players will be copied and players get a maximum of 10 days reserve slot, right?
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by supermillhouse*:

 

Yes, it will be the first 6 that joined the server that are still in the server not counting anyone in the "Res" list I.e. whitelisted. So theoreticaly if you were in the server and were in the "Res" list the 7th player would get included in the list.

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

Originally Posted by 397Seth*:

 

Hi,

 

edited post cause problem was solved. Have another question though :-)

People tell me that they keep getting the yell message very often during each round.

Can I adjust the amounts of time it is sent out?

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

Originally Posted by supermillhouse*:

 

The yell happens at the start of every round, I think it should be possible to minimize it to once per server join but I would need to look at the insane limit variables again. Will have a look tomorrow

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

Originally Posted by moacco07*:

 

Hi supermillhouse and PC9,

 

Could you make this work only for platoon. I intended to make like a reward system for my platoon whoever volunteer to populate the server when its empty.

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

Originally Posted by supermillhouse*:

 

Hi supermillhouse and PC9,

 

Could you make this work only for platoon. I intended to make like a reward system for my platoon whoever volunteer to populate the server when its empty.

I personally have no idea how to get platoon information from battlelog so it wont be anything I can help you with.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by supermillhouse*:

 

What about if you make to recognize by platoon tag?

Well that's a different thing, when you mention platoon I assumed you meant only your platoon, whilst you are now just asking to filter by tag, which anybody can have if they wish, unless you have a plugin that doesn't allow non-clan members to wear your tag on your server.

 

This is a quick crude fix.

Add your tag to the "Res" list

 

Add to the first_check right at the start:

 

//leaves limit if not a clan member

if ((!plugin.isInList(player.Tag, "Res"))) return false;

 

change this line in second_check:

 

if ((!plugin.isInList(p.Name, "Res")) && (!plugin.isInList(tag, "Res")))

 

to

 

if (true)

 

BTW I have not tested this but should work.

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

Originally Posted by moacco07*:

 

Please check that i have made the correct amendment to the limit as you describe.

 

First check:

Code:

[b]//leaves limit if not a clan member
if ((!plugin.isInList(tag, "Res"))) return false;[/b]
List<PlayerInfoInterface> players = new List<PlayerInfoInterface>();
players.AddRange(team1.players);
players.AddRange(team2.players);
if (team3.players.Count > 0) players.AddRange(team3.players);
if (team4.players.Count > 0) players.AddRange(team4.players);

int RSThresh = 5;    //When the player should get a reserve slot, when he has this number of days or more.
int numoftemps = 10;  //Number of players to be copied to reserve list
int triggertransfer = 20;  //When the players list is copied over
int RSCap = 30;      //Max number of reserve slot days
int rewarddays = 5;  //Number of days rewarded for helping to start the server once
int totaltcount = server.PlayerCount;
int i = 0;
string port = server.Port;
string host = server.Host;
string dir = "Plugins\\BF4\\TempList_" +host+ "_" +port+ ".txt";
string done = "Plugins\\BF4\\Done_" +host+ "_" +port+ ".txt";
string logdir = "Logs\\InsaneLimits\\ReserveList_" +host+ "_" +port+ "dump_file.txt";
if (!Directory.Exists(Path.GetDirectoryName(logdir))) Directory.CreateDirectory(Path.GetDirectoryName(logdir));

List<String> listofplayers = new List<String>();

foreach (PlayerInfoInterface p in players)
  {
  listofplayers.Add(p.Name);
  }


//check if server population is more than 4
if ((totaltcount >= 4) && (totaltcount <= triggertransfer) && (!File.Exists(done)))return true;
//if server population is less than 4 then delete temp file if it exists
else if(totaltcount < 4)
  {
  if (File.Exists(dir)) File.Delete(dir);
  if (File.Exists(done)) File.Delete(done);
  }
//check if server population is more than 10 then transfer to ReserveList
else if((totaltcount > triggertransfer) && (File.Exists(dir)))
  {

  int runcount = 0;

  if(File.Exists(dir))
    {
    //read names on temp list
    string namecheck = File.ReadAllText(dir);
    //split names on temp list at ", "
    string[] tempnames = Regex.Split(namecheck, ", ");
    //check each split name and add to reserve slot list
    foreach (string tempname in tempnames)
      {
      //split the name at ":" in to array, 1st is player name, 2nd is date last updated
      string[] tempcount = tempname.Split(':');
      if ((listofplayers.Contains(tempcount[0]) && runcount < numoftemps))
        {runcount++;
        plugin.ConsoleWrite(tempname);
        DateTime now = DateTime.Now;
        string datestring = now.ToString("d");

        string dir2 = "Plugins\\BF4\\ReserveList_" +host+ "_" +port+ ".txt";
        if(File.Exists(dir2))
          {
          //read names on reserve list
          string resnamecheck = File.ReadAllText(dir2);
          plugin.ConsoleWrite(resnamecheck);
          //split names on temp list at ", "
          string[] resnames = Regex.Split(resnamecheck, ", ");
          //finds last entry
          string reslastitem = resnames[resnames.Length - 1];
          //check each split name that is in the reserve list and updates if it is in the temp list
          foreach (string resname in resnames)
            {
            //split the reserve name at ":" in to array, 1st is player name, 2nd is the last date participated in seeding, 3rd is the number of days reward if he is on the reserve list, 4th is a date used for expiry
            //the 4th entry is used to subtract 1 digit a day off of the 3rd entry
            string[] rescount = resname.Split(':');
              //checks if the reserve name equals the player name in temp
            if (rescount[0] == tempcount[0])
              {
              //stops multiple rewards per day
              if(rescount[1] != datestring)
                {
                //add on the reward
                int value = Convert.ToInt32(rescount[2]);
                value = value + rewarddays;
                //cap the reserve slot days at RSCap
                if (value > RSCap) value = RSCap;
                //save the new data
                string newlist = resnamecheck.Replace(resname, rescount[0]+":"+ datestring +":"+value.ToString()+":"+rescount[3]);
                File.WriteAllText(dir2, newlist);
                //adds player to reserve slot if the have helped enough and are not on it.
                if (value >= RSThresh)
                  {
                  if (!plugin.GetReservedSlotsList().Contains(rescount[0]))
                    {
                    plugin.ServerCommand("reservedSlotsList.add", rescount[0]);
                    plugin.ServerCommand("reservedSlotsList.save");
                    plugin.PRoConChat(rescount[0] + " got added to ReserveSlot successfully with " + value.ToString() + " day(s) remaining.");
                    plugin.Log(logdir, rescount[0] + " got added to the ReserveSlot successfully with " + value.ToString() + " day(s) remaining.");
                    }
                  //message player
                  plugin.SendPlayerYell(rescount[0], rescount[0] + ": You have been awarded a reserve slot for helping to start the server, it will expire in approximately "+value+" days unless you help again.", 5);
                  }
                }
              //notify you that a player tried to help twice or more on a day to start server 
              else {plugin.ConsoleWrite(rescount[0] + " helped on the same day with no second reward.");}
              break;
              } 
            //if not in reserve list adds player and info to end of list.
            else if (resname == reslastitem)
              {
              string newlist = resnamecheck + ", " + tempcount[0] +":" + datestring +":"+ rewarddays +":"+ datestring;
              File.WriteAllText(dir2, newlist);
              plugin.PRoConChat("New Player," + tempcount[0] + "added to end of the reserve slot list.");
              plugin.Log(logdir, "New Player," + tempcount[0] + "added to end of the reserve slot list with " + rewarddays.ToString() + " day(s) remaining.");
              }
            }
          }
        //if reserve list doesnt exist, creates list with first entry
        else 
          {
          string newlist = "Blank, "+tempcount[0] +":"+ datestring +":"+ rewarddays +":"+ datestring;
          File.WriteAllText(dir2, newlist);
          plugin.PRoConChat("Reserve slot list created with first player," + tempcount[0] + ".");
          plugin.Log(logdir, "Reserve slot list created with first player," + tempcount[0] + ".");
          }
        }
      else if (runcount >= numoftemps)break;
      }
    }
//deletes temp list after transfer to reserve list
  File.Delete(dir);
  File.WriteAllText(done, "DONE");
  }

return false;
Second check:

 

Code:

List<PlayerInfoInterface> players = new List<PlayerInfoInterface>();
players.AddRange(team1.players);
players.AddRange(team2.players);
if (team3.players.Count > 0) players.AddRange(team3.players);
if (team4.players.Count > 0) players.AddRange(team4.players);

string port = server.Port;
string host = server.Host;

foreach (PlayerInfoInterface p in players)
  {
  // New tag extraction code by PapaCharlie9
  String tag = p.Tag;

    if (String.IsNullOrEmpty(tag)) {
        // Maybe they are using [_-=]XXX[=-_]PlayerName[_-=]XXX[=-_] format
        Match tm = Regex.Match(p.Name, @"^[=_\-]*([^=_\-]{2,4})[=_\-]");
        if (tm.Success) {
            tag = tm.Groups[1].Value;
        } else {
            tm = Regex.Match(p.Name, @"[^=_\-][=_\-]([^=_\-]{2,4})[=_\-]*$");
            if (tm.Success) { 
                tag = tm.Groups[1].Value;
            } else {
                tag = String.Empty;
            }
        }
    }

//This stops your clan members and any other clan friends in the "Res" list being added to the reward and them possibly later getting removed

  [b]if (true)[/b]
    {
    string dir = "Plugins\\BF4\\TempList_" +host+ "_" +port+ ".txt";
    if(File.Exists(dir))
      {
      string namecheck = File.ReadAllText(dir);
//    plugin.ConsoleWrite(namecheck);
      string[] tempnames = Regex.Split(namecheck, ", ");
      string templastitem = tempnames[tempnames.Length - 1];
      //stops the names being repeatedly entered in to the list every time it runs
      foreach (string tempname in tempnames)
        {
        string[] tempcount = tempname.Split(':');
        if (tempcount[0] == p.Name)
          {
          break;
          }    
        else if (tempname == templastitem)
          {
          //add new player
          plugin.ConsoleWrite("Templist New Player: " + p.FullName);
          DateTime now = DateTime.Now;
          string datestring = now.ToString("d");
          string newlist = namecheck + ", " + p.Name +":" + datestring;
          File.WriteAllText(dir, newlist);
          }
        }
      }
    else
      {
      //create new temp file with player
      plugin.ConsoleWrite("Tempfile New Player: " + p.FullName);
      DateTime now = DateTime.Now;
      string datestring = now.ToString("d");
      string newlist = "Blank, "+p.Name +":"+ datestring;
      File.WriteAllText(dir, newlist);
      }
    }
  }
return false;
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by moacco07*:

 

Hey

 

there some error shown:

 

Code:

[22:16:35 85] [Insane Limits] Thread(settings): ERROR: 1 error compiling Code
[22:16:35 85] [Insane Limits] Thread(settings): ERROR: (CS0103, line: 28, column: 35):  The name 'tag' does not exist in the current context
* 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.