A3Antistasi / A3-Antistasi

A3-Antistasi is the new official Antistasi version
https://a3antistasi.enjin.com/
MIT License
79 stars 337 forks source link

[bug] AI freeze #196

Open Jonathan-Rosewood opened 5 years ago

Jonathan-Rosewood commented 5 years ago

Version: 1.4.0.1 a2249a2ed8a9a4aeabeef4c63a06f8cefb64b782

Mods: CBA, TFAR, RHS (AFRF, USAF, GREF)

Environment: MP dedicated

.rpt attatched? No (can't find on linux host)

have you edited the missionfile?: Yes (add TFAR system component)

Issue:


screenshot

Hardware Specs OS: Quest LXC container with Debian GNU/Linux 9.5 (stretch) CPU: CPU(s) 2 x Intel(R) Core(TM)2 Duo CPU E6750 @ 2.66GHz (1 Socket) RAM: 3GB (specified for current container)

Start Parameters

./arma3server -ip=192.168.0.10 -port=2502 -name=antistasi-altis -cfg=/home/arma3server/serverfiles/cfg/arma3server-antistasi-altis.network.cfg -config=/home/arma3server/serverfiles/cfg/arma3server-antistasi-altis.server.cfg -mod=mods/@cba_a3\;mods/@task_force_radio\;mods/@rhsusaf\;mods/@rhsafrf\;mods/@rhsgref -servermod= -bepath=/home/arma3server/.local/share/Arma\ 3\ -\ Other\ Profiles/antistasi-altis/battleye

arma3server-antistasi-altis.server.cfg

// ****************************************************************************
//                                                                            *
//     Arma 3 - server.cfg                                                    *
//     Version 060117                                                         *
//                                                                            *
// ****************************************************************************

// ArmA 3 Server Config File
//
// More info about parameters:
// https://community.bistudio.com/wiki/server.cfg

// GENERAL SETTINGS

// Hostname for server.
hostname = "[RU] ServerName - Antistasi Altis [TFAR/RHS]";

// Server password - for private servers.
//password = "password";

// Admin Password
passwordAdmin = "password";

// Auto-admin
admins[] = {};

// Server Slots
maxPlayers = 30;

// Logfile
logFile = "arma3server-antistasi-altis.log";

// Minimum Required Client Build
//requiredBuild = 143869

// Message of the Day (MOTD)
motd[] = {
    "Welcome to our Arma 3 Antistasi Altis Server"
};

// MOTD Interval (Seconds)
motdInterval = 10;

// VOTING

// Server Mission Start
//  minimum number of clients before server starts mission
voteMissionPlayers = 1;

// Accepted Vote Threshold
//  0.33 = 33% clients.
voteThreshold = 0.33;

// Allowed Vote Commands
allowedVoteCmds[] = {};

// Allowed Voted Admin Commands
allowedVotedAdminCmds[] = {};

// INGAME SETTINGS

// Disable Voice over Net (VoN)
//  0 = voice enabled.
//  1 = voice disabled.
disableVoN = 1;

// VoN Codec Quality
//  0-10 = 8kHz (narrowband).
//  11-20 = 16kHz (wideband).
//  21-30 = 32kHz (ultrawideband).
vonCodecQuality = 3;

// Persistent Battlefield
//  0 = disable.
//  1 = enable.
persistent = 1;

// Time Stamp Format
//  none, short, full
timeStampFormat = "short";

// Server Statistics
//  Set this to 0 to opt-out! More info: https://community.bistudio.com/wiki/Arma_3_Analytics
statisticsEnabled = 0;

// SERVER SECURITY/ANTI HACK

// Verify Signitures for Client Addons
//  0 = off.
//  1 = weak protection (depricated).
//  2 = full protection.
verifySignatures = 1;

// Secure Player ID
//  1 = Server warning message.
//  2 = Kick client.
requiredSecureId = 2;

// Kick Duplicate Player IDs
kickDuplicate = 1;

// BattlEye Anti-Cheat
//  0 = disable
//  1 = enable
BattlEye = 1;

// Allowed File Extentions
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"};

// SCRIPTING ISSUES
onUserConnected = "";
onUserDisconnected = "";
doubleIdDetected = "";

// SIGNATURE VERIFICATION
// kick = kick (_this select 0)
// ban = ban (_this select 0)
onUnsignedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onDifferentData = "kick (_this select 0)";

// HEADLESS CLIENT SUPPORT
headlessClients[] = {"127.0.0.1"};
localClient[] = {"127.0.0.1"};
battleyeLicense = 1;

// MISSIONS CYCLE
class Missions
{
    class Antistasi
    {
        template = Antistasi.Altis;
        difficulty = "Custom"; // Recruit, Regular, Veteran, Custom
        class Params
        {
            loadSave = 1;           // Load last Persistent Save
            gameMode = 1;           // Game Mode (1: Reb vs Gov vs Inv, 2: Reb vs Gov & Inv, 3: Reb vs Gov, 4: Reb vs Inv)
            autoSave = 1;           // Enable Autosave (every hour)
            membership = 1;         // Enable Server Membership
            switchComm = 1;         // Enable Commander Switch (highest ranked player)
            tkPunish = 1;           // Enable Teamkill Punish
            mRadius = 4000;         // Distance from HQ for Sidemissions
            allowPvP = 0;           // Allow PvP Slots
            pMarkers = 1;           // Allow Friendly Player Markers
            AISkill = 0.5;          // AI Skill (0.5: "Easy", 1: "Normal", 2: "Hard")
            unlockItem = 15;        // Number of the same weapons required to unlock
            civTraffic = 0.5;       // Rate of Civ Traffic
            memberSlots = 0;        // Percentage of Reserved Slots for Members
            memberDistance = 5000;  // Max distance non members can be from the closest member or HQ (they will be teleported to HQ after some timeout)
            allowFT = 0;            // Limited Fast Travel
        };
    };
};
missionWhitelist[] = {};
forcedDifficulty = "Custom";

arma3server-antistasi-altis.network.cfg

// ****************************************************************************
//                                                                            *
//     Arma 3 - network.cfg                                                   *
//     Version 060116                                                         *
//                                                                            *
// ****************************************************************************

// Defines network tuning parameters
//
// This file is to be passed to the -cfg parameter on the command line for the server
// See http://community.bistudio.com/wiki/basic.cfg
// The following settings are the suggested settings

// BANDWIDTH SETTINGS

// Bandwidth the server is guaranteed to have (in bps)
// General guideline is NumberOfPlayers * 256kb
// Default: 131072
MinBandwidth=5120000;
// Bandwidth the server can never go above (in bps)
// For a single server, use full network speed; decrease when running multiple servers
MaxBandwidth=10240000;

// PACKET SETTINGS

// Maximum number of packets per frame.
// Increasing the value potentially decreases lag, but increases desync
// Default: 128
MaxMsgSend=2048;
// Maximum payload of guaranteed packet (in b)
// Small messages are packed to larger packets
// Guaranteed packets are used for non-repetitive events, like shooting
// Lower value means more packets are sent, so less events will get combined
// Default: 512
MaxSizeGuaranteed=512;
// Maximum payload of non-guaranteed packet (in b)
// Increasing this value may improve bandwidth requirement, but may also increase lag
// Largest factor in desync
// Guidance is half of MaxSizeGuaranteed
// Default: 256
MaxSizeNonguaranteed=256;
// Maximal size of a packet sent over the network
// Only necessary if ISP forces lower packet size and there are connectivity issues
// Default: 1400
// class sockets{maxPacketSize=1400};

// SMOOTHNESS SETTINGS

// Minimal error required to send network updates for far units
// Smaller values will make for smoother movement at long ranges, but will increase network traffic
// Default: 0.003
MinErrorToSend=0.01;
// Minimal error required to send network updates for near units
// Using larger value can reduce traffic sent for near units
// Also controls client to server traffic
// Default: 0.01
MinErrorToSendNear=0.02;

// GEOLOCATION SETTINGS

// Server latitude
serverLatitude=52;
serverLatitudeAuto=52;

// Server Longitude
serverLongitude=0;
serverLongitudeAuto=0;
// MISC
// View Distance (not sure if this actually works)
viewDistance=10000;

// Maximum size (in b) for custom face or sound files
// Default: 0
MaxCustomFileSize=0;
// Server language
language="English";
steamLanguage="English";
// Adapter
adapter=-1;
// Windowed mode
Windowed=0;

3D_Performance=1.000000;

antistasi-altis.Arma3Profile

version = 1;
blood = 1;
gamma = 1;
brightness = 1;
sceneComplexity = 1000000;
shadowZDistance = 100;
viewDistance = 3400;
preferredObjectViewDistance = 2000;
terrainGrid = 3.125;

volumeCD = 10;
volumeFX = 10;
volumeSpeech = 10;
volumeVoN = 10;
vonRecThreshold = 0.029999999;
soundEnableEAX = 1;
soundEnableHW = 0;
singleVoice = 0;
maxSamplesPlayed = 96;

activeKeys[] = {
    "BIS_A3-Antistasi.Altis_done",
    "BIS_A3AS_Altis_(G).Altis_done"
};

playedKeys[] = {
    "BIS_EXP_m01.Tanoa_done",
    "BIS_Showcase_FiringFromVehicles.Altis_done",
    "BIS_EXP_m07.Tanoa_done",
    "BIS_Showcase_Tanks.Altis_done"
};

difficulty = "custom";
class DifficultyPresets
{
    defaultPreset = "custom";
    class CustomDifficulty
    {
        class Options
        {
            /* Simulation */

            reducedDamage = 0;      // Reduced damage

            /* Situational awareness */

            groupIndicators = 1;    // Group indicators (0 = never, 1 = limited distance, 2 = always)
            friendlyTags = 0;       // Friendly name tags (0 = never, 1 = limited distance, 2 = always)
            enemyTags = 0;          // Enemy name tags (0 = never, 1 = limited distance, 2 = always)
            detectedMines = 0;      // Detected mines (0 = never, 1 = limited distance, 2 = always)
            commands = 1;           // Commands (0 = never, 1 = fade out, 2 = always)
            waypoints = 0;          // Waypoints (0 = never, 1 = fade out, 2 = always)
            tacticalPing = 0;       // Tactical ping (0 = disable, 1 = enable)

            /* Personal awareness */

            weaponInfo = 2;         // Weapon info (0 = never, 1 = fade out, 2 = always)
            stanceIndicator = 2;    // Stance indicator (0 = never, 1 = fade out, 2 = always)
            staminaBar = 1;         // Stamina bar
            weaponCrosshair = 0;    // Weapon crosshair
            visionAid = 0;          // Vision aid

            /* View */

            thirdPersonView = 1;    // 3rd person view
            cameraShake = 1;        // Camera shake

            /* Multiplayer */

            scoreTable = 0;         // Score table
            deathMessages = 1;      // Killed by
            vonID = 0;              // VoN ID

            /* Misc */

            mapContent = 0;         // Extended map content
            autoReport = 1;         // (former autoSpot) Automatic reporting of spotted enemied by players only. This doesn't have any effect on AIs.
            multipleSaves = 0;      // Multiple saves

            squadRadar = 1;
        };

        // aiLevelPreset defines AI skill level and is counted from 0 and can have following values: 0 (Low), 1 (Normal), 2 (High), 3 (Custom).
        // when 3 (Custom) is chosen, values of skill and precision are taken from the class CustomAILevel.
        aiLevelPreset = 3;
    };

    class CustomAILevel
    {
        skillFriendly = 1;
        skillEnemy = 1;
        precisionFriendly = 0.30000001;
        precisionEnemy = 0.30000001;
    };
};
Jonathan-Rosewood commented 5 years ago

Experiments have shown that the problem disappears if:

But this is still a problem, because the modification of the RHS is declared as compatible.

Mocksybren commented 5 years ago

this is an strange one, the Ai gets into the drag animation. have you tried to redownload the mission file?

Mocksybren commented 5 years ago

i can assure you RHS works, now we really need that .rpt file to see what causes the AI to "Drag" someone else. Could you do a little more digging for that .rpt file?

Jonathan-Rosewood commented 5 years ago

@Mocksybren yep, i can redownload, what version u need? and where i can .rpt file on linux host? Is .rpt is a simple server log file?

p.s. AI continues to function - to report on enemies, spin and even shoot from this animation. But I have never seen him move, heal, change his stand (lying, sitting, standing). This behavior is noticed only with static infantrymen (guarding the city, factories, ports, airports, road blocks, outposts), while dynamic ones (coming from a helicopter) work normally.

Barbolani77 commented 5 years ago

It seems that AI has disabled simulation for some reason. Server or HC .rpt is really needed for further investigation

Jonathan-Rosewood commented 5 years ago

Here is a my fresh server log with ACE/TFAR/RHS mods on fresh mission from github. https://pastebin.com/9RNBjmJf

Jonathan-Rosewood commented 5 years ago

@Barbolani77 i don't know where .rpt located in windows Headless Client. But i will test HC on Windows again with RHS and can give another info. AI stays without DRAG animation, but still stays (shoots me, but without any movement).

Barbolani77 commented 5 years ago

Im totally lost on this. RHS has nothing special related to disableSimulation for infantry.

Maybe you HC is crashing and leaves all those AI bugged?

Try without headless client and if it still happens, bring me the server .rpt

Jonathan-Rosewood commented 5 years ago

Hm...at first I tried without a client and sent the log above.

Here is a my fresh server log with ACE/TFAR/RHS mods on fresh mission from github. https://pastebin.com/9RNBjmJf

jahangir13 commented 5 years ago

I cannot say if this is the issue or not as I do not see everything but on an arma3 linux server there should not be any files with capital letters in it to be on the safe side. This is mentioned for files within mod folders on the BIS pages. I see that your mission file is like this: missionName=A3-AATemplate Maybe there are also files within mod folders containing capital letters. See here for capital letters and mods: https://community.bistudio.com/wiki/Arma_3_Dedicated_Server The mods you are using should have all files in non-capital letters (just downloaded all of them again to check)...but maybe other files in the server dir have that which might cause problems. When starting my server I change all uppercase letters to lowercase for folders and files and then rename the lib files (which for whatever reason the server needs with capital letter, otherwise it does not start): mv libphysx3common_x86.so libPhysX3Common_x86.so 2>/dev/null mv libphysx3cooking_x86.so libPhysX3Cooking_x86.so 2>/dev/null mv libphysx3_x86.so libPhysX3_x86.so 2>/dev/null mv libpxfoundation_x86.so libPxFoundation_x86.so 2>/dev/null mv libpxpvdsdk_x86.so libPxPvdSDK_x86.so 2>/dev/null

Maybe give it a try...I had so many issues in the past years difficult to tackle down. In the end it was often such a file/folder.

Jonathan-Rosewood commented 5 years ago

@jahangir13, thanks for your reply!

I already heard this feature with the case of letters, but on my server I only followed the mods directory. If not difficult - send me the output of the command tree -apug /path/to/arma3server

Acroniuse commented 4 years ago

Has anyone fixed the problem?

Nerexis commented 3 years ago

I can confirm this issue exists also on my Exile server: I migrated my server from Windows machine to Linux Ubuntu 20.04, Linux binary x64, Exile mod + extDB3 x64 + 42-44 more mods from Steam Workshop including RHS. It's exactly the same issue, but it doesn't happen for some AI units and doesn't happen at all if a unit was spawned inside a vehicle then leaves it. There is a workaround example posted in the BI Forums for this problem: https://forums.bohemia.net/forums/topic/228415-linux-dedicated-server-ai-doesnt-move/

Nerexis commented 3 years ago

Also there is another workaround, making then unconscious then conscious fixes it:

{ _x setUnconscious true; sleep 5; _x setUnconscious false; } forEach allUnits;

AUitto commented 3 years ago

I'm having similar issue, and the workarounds by @Nerexis does not work for me. As this issue seems to be quite old, is there anyone taking care of it?

Jonathan-Rosewood commented 3 years ago

I once gave up and switched to another operating system for the host.