tbox1911 / Liberation-RX

ArmA 3 - Liberation RX - Mission
GNU General Public License v3.0
66 stars 61 forks source link

If persistent set to 0, map change when no player is connected #47

Closed Evaexe117 closed 3 years ago

Evaexe117 commented 3 years ago

Hello. I followed you'r adive. Set persistent = 0 to server cgf

But when all player leaved the server ( for the night for example ), and in the morning a new player join the server, the served has changed map.

there is any solution to keep the map "alive" when no player is connected ? the problem with persistent = 1 its avoid the server to change map when the map is finished.

tbox1911 commented 3 years ago

hi,

I understand, I run linux servers from A2 ages, I'm glad to help you on your setup when persistent is set to 0, the server should go in 'wait' state, until a player connect. even when server restart if the map change on restart, it may come from your server cfg "class Missions"

as an example here one of mine: `// MISSIONS CYCLE class Missions { class Mission1 { template="liberation_RX.Altis"; difficulty="Regular"; // "Recruit", "Regular", "Veteran", "Mercenary"

    class Params
        {
              Unitcap = 1;                      // Maximum amount AI units - [default 1] - values = [0.5,0.75,1,1.25,1.5,2] - Text {50%,%75,%100,%125,%150,%200}
              Difficulty = 1.25;                // Difficulty - [default 1] - values = [0.5,0.75,1,1.25,1.5,2,4,10] - Text {Tourist,Easy,Normal,Moderate,Hard,Extreme,Ludicrous,Oh god oh god we are all going to die}
              Aggressivity = 2;                 // CSAT aggression - [default 1] - values = [0.25,0.5,1,2,4] - Text {Anemic,Weak,Normal,Strong,Extreme}
              MaximumFobs = 5;                  // Maximum number of FOBs allowed - [default 26] - values = [3,5,7,10,15,20,26] - Text {3,5,7,10,15,20,26}
              Whitelist = 1;                    // Use the commander whilelist - [default 0] - values = [1,0] - Text {Enabled,Disabled} 
              TK_mode = 1;
          TK_count = 4; 
    };
};

}; `

feel free to come on our Teamspeak server (ts3.liberation-rx.fr), we can speak about this

Evaexe117 commented 3 years ago

Thank you very much for help ! And invitation in teamspeak.

Can you share you'r all server.cgf and launher.sh ? I think that will be help me :)

thanks !

tbox1911 commented 3 years ago

hi,

cfg file for Malden

` // // server.cfg // // comments are written with "//" in front of them.

// NOTE: More parameters and details are available at http://community.bistudio.com/wiki/server.cfg

// STEAM PORTS //steamPort = 2303; // default 8766, needs to be unique if multiple serves on same box //steamQueryPort = 2304; // default 27016, needs to be unique if multiple servers on same box

// GENERAL SETTINGS hostname = "[FR] Liberation RX - Malden - RP/CooP - AI Revive - Private Eco"; // Name of the server displayed in the public server list //password = "coca"; // Password required to join the server (remove // at start of line to enable) passwordAdmin = "xxxxxxxxxxx"; // Password to login as admin. Open the chat and type: #login password maxPlayers = 34; // Maximum amount of players, including headless clients. Anybody who joins the server is considered a player, regardless of their role or team. persistent = 0; // If set to 1, missions will continue to run after all players have disconnected; required if you want to use the -autoInit startup parameter

// VOICE CHAT disableVoN = 0; // If set to 1, voice chat will be disabled vonCodecQuality = 10; // Supports range 1-30; 1-10 is 8kHz (narrowband), 11-20 is 16kHz (wideband), 21-30 is 32kHz (ultrawideband); higher = better sound quality, more bandwidth consumption

// VOTING voteMissionPlayers = 2; // Minimum number of players required before displaying the mission selection screen, if you have not already selected a mission in this config voteThreshold = 0.66; // Percentage (0.00 to 1.00) of players needed to vote something into effect, for example an admin or a new mission. Set to 9999 to prevent random players being voted as admins. allowedVoteCmds[] = { {"kick", true, true}, {"restartserver", true, true}, {"missions", true, true} }; allowedVotedAdminCmds[] = {};

// WELCOME MESSAGE ("message of the day") // It can be several lines, separated by comma // Empty messages "" will not be displayed, but can be used to increase the delay before other messages motd[] = { "","", "","", "","", "","", "Welcome to the Liberation RX planet !","", "","", "You are looking for fun ?- Join us Now !", "","", "Only firendly people allowed !!","", "","", "ArmA Server: arma.liberation-rx.fr","", "","", "TeamSpeak3: ts3.liberation-rx.fr","", "","" }; motdInterval = 5; // Number of seconds between each message

// MISSIONS CYCLE class Missions { class Mission1 { template="Liberation_RX.Malden"; difficulty="Regular"; // "Recruit", "Regular", "Veteran", "Mercenary"

        class Params
        {
          Unitcap = 1;                      // Maximum amount AI units - [default 1] - values = [0.5,0.75,1,1.25,1.5,$
          Difficulty = 1;                // Difficulty - [default 1] - values = [0.5,0.75,1,1.25,1.5,2,4,10] - $
          Aggressivity = 1;                 // CSAT aggression - [default 1] - values = [0.25,0.5,1,2,4] - Text {Anem$
          Revive = 2;                       // FAR revive - [default 3] - values = [3,2,1,0] - Text {Enabled - Everyone can revive using medkit,Enabled - Everyone can revive using FAK,Enabled - Only medics can revive,Disabled}
          MaximumFobs = 3;                  // Maximum number of FOBs allowed - [default 26] - values = [3,5,7,10,15$
          Permissions = 1;                  // Permissions management - [default 1] - values = [1,0] - Text {Enabled,$
          CleanupVehicles = 1;              // Cleanup abandoned vehicles outside FOBs - [default 2] - values = [0,1,$
          Weather = 0;                      // Weather - [default 3] - values = [1,2,3] - Text {Always Sunny,Random without rain,Random}
          Whitelist = 1;                    // Use the commander whilelist - [default 0] - values = [1,0] - Text {Ena$
          FancyInfo = 1;
          MaxSquadSize = 6;
          ShorterNights = 1;
          DayDuration = 3;
          ForcedLoadout = 1;
          Thermic = 0;

// ModPresetWest = 2; // ModPresetEast = 0;

        };
  };

};

// LOGGING timeStampFormat = "short"; // Timestamp format used in the server RPT logs. Possible values are "none" (default), "short", "full" logFile = "server_console.log"; // Server console output filename

// SECURITY BattlEye = 0; // If set to 1, BattlEye Anti-Cheat will be enabled on the server (default: 1, recommended: 1) verifySignatures = 2; // If set to 2, players with unknown or unsigned mods won't be allowed join (default: 0, recommended: 2) kickDuplicate = 1; // If set to 1, players with an ID that is identical to another player will be kicked (recommended: 1) allowedFilePatching = 0; // Allow or prevent client using -filePatching to join the server. 0, is disallow, 1 is allow HC, 2 is allow all clients

// FILE EXTENSIONS allowedLoadFileExtensions[] = {"hpp","sqs","sqf","fsm","cpp","paa","txt","xml","inc","ext","sqm","ods","fxy","lip","csv","kb","bik","bikb","html","htm","biedi"}; allowedPreprocessFileExtensions[] = {"hpp","sqs","sqf","fsm","cpp","paa","txt","xml","inc","ext","sqm","ods","fxy","lip","csv","kb","bik","bikb","html","htm","biedi"}; allowedHTMLLoadExtensions[] = {"htm","html","xml","txt"};

// EVENT SCRIPTS (see http://community.bistudio.com/wiki/ArmA:_Server_Side_Scripting) onUserConnected = ""; // command to run when a player connects onUserDisconnected = ""; // command to run when a player disconnects doubleIdDetected = "kick (_this select 0)"; // command to run if a player has the same ID as another player in the server onUnsignedData = "kick (_this select 0)"; // command to run if a player has unsigned files onHackedData = "kick (_this select 0)"; // command to run if a player has tampered files onDifferentData = "kick (_this select 0)";

// HEADLESS CLIENT headlessClients[] = {"127.0.0.1", "77.146.173.82"}; // list of IP addresses allowed to connect using headless clients; example: {"127.0.0.1", "192.168.1.100"}; localClient[] = {}; // list of IP addresses to which are granted unlimited bandwidth; example: {127.0.0.1, 192.168.1.100}; `

and the startup script

`

!/bin/bash

cd /home/a3serv/arma3 gzip -f9 server.log rm -f core server.log

Arma Options

OPTS="-cpuCount=2 -maxMem=6144 -hugePages -noLand -noPause -showScriptErrors -world=empty" MODLST=""

NO MOD

CONFIG="-config=/opt/armaconf/Liberation_Stratis.cfg"

CONFIG="-config=/opt/armaconf/Liberation_Altis.cfg"

CONFIG="-config=/opt/armaconf/Liberation_Malden.cfg"

CONFIG="-config=/opt/armaconf/Liberation_Tanoa.cfg"

CONFIG="-config=/opt/armaconf/Liberation_Enoch.cfg"

Start DS

./arma3server_x64 $OPTS $CONFIG $MODLST > ./server.log 2>&1 `

Evaexe117 commented 3 years ago

Thanks for all you'r informations.

I used persistent = 0; but that bug EXTDB3...

I'll code in python a script that will detect the end of the game by parsing the rpt. and that will close the server, delet the save file, and relaunch the server...