DayZ Epoch server does whatever it wants

Samurize

New Member
Ok, the title makes you all curious, and all you want to know wtf is going on. Let me explain then - all i wanted since start was my own DayZ server with Epoch mod. Because of that I've downloaded 2 things:
https://thepiratebay.se/torrent/7969089/Arma_2_Armored_Operations_1.62_Update___DAYZ___SERVER
and
https://thepiratebay.se/torrent/8815950/Single_Player_Project_-_DayZ_AI_Server_Pack_for_LAN

Anyway, after download, updating Arma 2 to necessary patch and installing files from Single Player Project, to the arma2 with arma2oa, the server was ready. Well... kinda ready. Basic DayZ works, DayZ Epoch works, everything is fine since then.

After a while I decided to turn off the DZAI since it seems to be quite annoying. So, I've checked which server i need to edit (with .bat file, that starts it).
Code:
if "%server%"=="1" start "arma2" /min "Expansion\beta\arma2oaserver.exe" -port=2302 "-config=ServerFiles\dayz_epoch\dayz_epoch_11_Chernarus\config.cfg" "-cfg=ServerFiles\dayz_epoch\dayz_epoch_11_Chernarus\basic.cfg" "-profiles=ServerFiles\dayz_epoch\dayz_epoch_11_Chernarus" -name=dayz_epoch_11_Chernarus "-mod=@DayZ_Epoch;ServerFiles\dayz_epoch\@DayZ_Epoch_Server;" -noPause -noSound -cpuCount=1 -exThreads=1 -maxMem=2048

It's cleary @DayZ_Epoch_Server, so I went there, and i found the dayz_server.pbo. So far so good. Then i unpacked it, and edited server_monitor.sqf and deleted the "call" for DZAI. At the end it looks like this:
Code:
    // Epoch Events
    nul = [] spawn server_spawnEvents;
    allowConnection = true;
    sm_done = true;
};

That should be it, there is no call for mod, so mod (DZAI) won't start, right? Well... there are still bots in game. :|

After few tries I've get pretty angry and just deleted the DZAI folder from dayz_server.pbo. Guess what, bots are still in the game. How the hell they still run around on server, if there is no file that says they should be there anyway?
iUq7TjlvTFOFR.jpg
 
Well obviously you have some other script or mod inserting the AI. Look in your init.sqf and see what scripts are being started.

First of all, do you actually OWN a copy of Arma2, Operation Arrowhead and Dayz that you use to play with? If so then all you needed was to download the private server files https://github.com/Pwnoz0r/DayZ-Private-Server and copy your common folders into the server folder. And the DZAI is available on github https://github.com/dayzai/DZAI
 
ShootingBlanks said:
First of all, do you actually OWN a copy of Arma2, Operation Arrowhead and Dayz that you use to play with? If so then all you needed was to download the private server files https://github.com/Pwnoz0r/DayZ-Private-Server and copy your common folders into the server folder.
I own Arma 2 with OA, but I've deleted it half year ago. All I had left was cd-keys, and my very slow network (0,5mb/s).

Friend of mine doesn't own game, and he downloaded these things for me actually. For me it's just non-steam version, since it works anyway if patched normally and I put my cd-key.

And... i didn't want DayZ server, but server with Epoch installed. :)


ShootingBlanks said:
Well obviously you have some other script or mod inserting the AI. Look in your init.sqf and see what scripts are being started.
Seems like there is nothing about AI.... look by yourself, since I'm noob if it's about DayZ code.
Code:
/*   
    For DayZ Epoch
    Addons Credits: Jetski Yanahui by Kol9yN, Zakat, Gerasimow9, YuraPetrov, zGuba, A.Karagod, IceBreakr, Sahbazz
*/
startLoadingScreen ["","RscDisplayLoadCustom"];
cutText ["","BLACK OUT"];
enableSaving [false, false];

//REALLY IMPORTANT VALUES
dayZ_instance =    11;                    //The instance
dayzHiveRequest = [];
initialized = false;
dayz_previousID = 0;

//disable greeting menu
player setVariable ["BIS_noCoreConversations", true];
//disable radio messages to be heard and shown in the left lower corner of the screen
enableRadio false;

// DayZ Epoch config
spawnShoremode = 1; // Default = 1 (on shore)
spawnArea= 1500; // Default = 1500
MaxHeliCrashes= 5; // Default = 5
MaxVehicleLimit = 300; // Default = 50
MaxDynamicDebris = 500; // Default = 100
dayz_MapArea = 14000; // Default = 10000
dayz_maxLocalZombies = 30; // Default = 30

EpochEvents = [["any","any","any","any",30,"crash_spawner"],["any","any","any","any",0,"crash_spawner"]];
dayz_fullMoonNights = true;

//Load in compiled functions
call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\variables.sqf";                //Initilize the Variables (IMPORTANT: Must happen very early)
progressLoadingScreen 0.1;
call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\publicEH.sqf";                //Initilize the publicVariable event handlers
progressLoadingScreen 0.2;
call compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\setup_functions_med.sqf";    //Functions used by CLIENT for medical
progressLoadingScreen 0.4;
call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf";                //Compile regular functions
progressLoadingScreen 0.5;
call compile preprocessFileLineNumbers "server_traders.sqf";                //Compile trader configs
call compile preprocessFileLineNumbers "custom\compiles.sqf"; //Compile custom compiles added by me for Self Blood Bag
progressLoadingScreen 1.0;

"filmic" setToneMappingParams [0.153, 0.357, 0.231, 0.1573, 0.011, 3.750, 6, 4]; setToneMapping "Filmic";

/* BIS_Effects_* fixes from Dwarden */
BIS_Effects_EH_Killed = compile preprocessFileLineNumbers "\z\addons\dayz_code\system\BIS_Effects\killed.sqf";
BIS_Effects_AirDestruction = compile preprocessFileLineNumbers "\z\addons\dayz_code\system\BIS_Effects\AirDestruction.sqf";
BIS_Effects_AirDestructionStage2 = compile preprocessFileLineNumbers "\z\addons\dayz_code\system\BIS_Effects\AirDestructionStage2.sqf";

BIS_Effects_globalEvent = {
    BIS_effects_gepv = _this;
    publicVariable "BIS_effects_gepv";
    _this call BIS_Effects_startEvent;
};

BIS_Effects_startEvent = {
    switch (_this select 0) do {
        case "AirDestruction": {
                [_this select 1] spawn BIS_Effects_AirDestruction;
        };
        case "AirDestructionStage2": {
                [_this select 1, _this select 2, _this select 3] spawn BIS_Effects_AirDestructionStage2;
        };
        case "Burn": {
                [_this select 1, _this select 2, _this select 3, false, true] spawn BIS_Effects_Burn;
        };
    };
};

"BIS_effects_gepv" addPublicVariableEventHandler {
    (_this select 1) call BIS_Effects_startEvent;
};

if ((!isServer) && (isNull player) ) then
{
waitUntil {!isNull player};
waitUntil {time > 3};
};

if ((!isServer) && (player != player)) then
{
  waitUntil {player == player};
  waitUntil {time > 3};
};

if (isServer) then {
    call compile preprocessFileLineNumbers "dynamic_vehicle.sqf";                //Compile vehicle configs
   
    // Add trader citys
    _nil = [] execVM "mission.sqf";
    _serverMonitor =     [] execVM "\z\addons\dayz_code\system\server_monitor.sqf";
};

if (!isDedicated) then {
    //Conduct map operations
    0 fadeSound 0;
    waitUntil {!isNil "dayz_loadScreenMsg"};
    dayz_loadScreenMsg = (localize "STR_AUTHENTICATING");
   
    //Run the player monitor
    _id = player addEventHandler ["Respawn", {_id = [] spawn player_death;}];
    _playerMonitor =     [] execVM "\z\addons\dayz_code\system\player_monitor.sqf";   
    _void = [] execVM "R3F_Realism\R3F_Realism_Init.sqf";
};
#include "\z\addons\dayz_code\system\REsec.sqf"
 
Agreed, doesn't look like anything there. Technically, epoch IS dayz .. but thats besided the point.
how about this? When you edited the dayz_server.pbo ... are you SURE it was copied to the server? Unpack the dayz_server.pbo on your server and ENSURE that it has the changes you made.
check your server_functions.sqf file, that is where lots of scripts are loaded.

My point about owning it wasn't about downloading torrents, just that there is an easier way to do it if you already have the game.
 
server_functions.sqf in the .pbo file, using PBOview 0.8
Code:
waituntil {!isnil "bis_fnc_init"};

BIS_MPF_remoteExecutionServer = {
    if ((_this select 1) select 2 == "JIPrequest") then {
        [nil,(_this select 1) select 0,"loc",rJIPEXEC,[any,any,"per","execVM","ca\Modules\Functions\init.sqf"]] call RE;
    };
};

BIS_Effects_Burn =            {};
server_playerLogin =        compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerLogin.sqf";
server_playerSetup =        compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerSetup.sqf";
server_onPlayerDisconnect = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_onPlayerDisconnect.sqf";
server_updateObject =        compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_updateObject.sqf";
server_playerDied =            compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerDied.sqf";
server_publishObj =         compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishObject.sqf";    //Creates the object in DB
server_deleteObj =            compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_deleteObj.sqf";     //Removes the object from the DB
server_publishVeh =         compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishVehicle.sqf"; // Custom to add vehicles
server_publishVeh2 =         compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishVehicle2.sqf"; // Custom to add vehicles
server_tradeObj =             compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_tradeObject.sqf";
server_traders =             compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_traders.sqf";
server_playerSync =            compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerSync.sqf";
zombie_findOwner =            compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\zombie_findOwner.sqf";
server_updateNearbyObjects =    compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_updateNearbyObjects.sqf";
server_spawnCrashSite  =    compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_spawnCrashSite.sqf";
server_handleZedSpawn =        compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_handleZedSpawn.sqf";
server_spawnEvents =            compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_spawnEvent.sqf";

fnc_plyrHit   = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\fnc_plyrHit.sqf";
server_deaths =             compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerDeaths.sqf";


vehicle_handleInteract = {
    private["_object"];
    _object = _this select 0;
    needUpdate_objects = needUpdate_objects - [_object];
    [_object, "all"] call server_updateObject;
};

vehicle_handleServerKilled = {
    private["_unit","_killer"];
    _unit = _this select 0;
    _killer = _this select 1;
      
    [_unit, "killed"] call server_updateObject;
  
    _unit removeAllMPEventHandlers "MPKilled";
    _unit removeAllEventHandlers "Killed";
    _unit removeAllEventHandlers "HandleDamage";
    _unit removeAllEventHandlers "GetIn";
    _unit removeAllEventHandlers "GetOut";
};

object_handleServerKilled = {
    private["_unit","_objectID","_objectUID"];
    _unit = _this select 0;
  
    _objectID =     _unit getVariable ["ObjectID","0"];
    _objectUID = _unit getVariable ["ObjectUID","0"];
      
    [_objectID,_objectUID] call server_deleteObj;
  
    _unit removeAllMPEventHandlers "MPKilled";
    _unit removeAllEventHandlers "Killed";
    _unit removeAllEventHandlers "HandleDamage";
    _unit removeAllEventHandlers "GetIn";
    _unit removeAllEventHandlers "GetOut";
};

check_publishobject = {
    private["_allowed","_object","_playername"];

    _object = _this select 0;
    _playername = _this select 1;
  
    _allowed = false;
     
    diag_log format ["DEBUG: Checking if Object: %1 is allowed published by %2", _object, _playername];

    if ((typeOf _object) in dayz_allowedObjects) then {
            diag_log format ["DEBUG: Object: %1 published by %2 is Safe",_object, _playername];
            _allowed = true;
    };
    _allowed
};

//event Handlers
eh_localCleanup =            {
    private ["_object"];
    _object = _this select 0;
    _object addEventHandler ["local", {
        if(_this select 1) then {
            private["_type","_unit"];
            _unit = _this select 0;
            _type = typeOf _unit;
             _myGroupUnit = group _unit;
             _unit removeAllMPEventHandlers "mpkilled";
             _unit removeAllMPEventHandlers "mphit";
             _unit removeAllMPEventHandlers "mprespawn";
             _unit removeAllEventHandlers "FiredNear";
            _unit removeAllEventHandlers "HandleDamage";
            _unit removeAllEventHandlers "Killed";
            _unit removeAllEventHandlers "Fired";
            _unit removeAllEventHandlers "GetOut";
            _unit removeAllEventHandlers "GetIn";
            _unit removeAllEventHandlers "Local";
            clearVehicleInit _unit;
            deleteVehicle _unit;
            deleteGroup _myGroupUnit;
            _unit = nil;
            diag_log ("CLEANUP: DELETED A " + str(_type) );
        };
    }];
};
[...]
ShootingBlanks said:
When you edited the dayz_server.pbo ... are you SURE it was copied to the server?
Pretty sure, since I edit this file in the same location it were before. (Made backup of original file (called copy), and modyfing the original).
 
Awwright, with a lot of help from ShootingBlanks I know now, that DZAI is still loading when I join the server.

The thing is, dayz_server.pbo is clear from DZAI, the mission file seems to be clean too. Any ideas why bots are still spawning?


Edit
Ofc, I can just fck it ant try to turn on other Epoch server, the point is I don't know where can i find an Epoch server for download.
 
Last edited:
They are all linked to on this site ... http://dayzepoch.com ...
The server you have will run any mod you download. But its easier to take a small learning step now and find the dzai files.

Download notepad++ http://notepad-plus-plus.org
Unpack your days_server.pbo so you have a folder on your desktop.
Open n++ and edit your days server folder server-monitor file like you to THOUGHT you did in your first post.
Save the changes .... This is important:D:p
Now right click on the folder and pack the pbo. Copy it to your server while the server is STOPPED.

How do I know that the line is still in your server monitor file?
Because its not in your init.sqf or server functions.sqf ... Logic says it MUST be still in the server monitor. .... And if it were up your ass eating a ham sandwich you would know it o_O

Its been a long day lol
 
ShootingBlanks said:
checked
ShootingBlanks said:
Unpack your days_server.pbo so you have a folder on your desktop.
checked
ShootingBlanks said:
Open n++ and edit your days server folder server-monitor file like you to THOUGHT you did in your first post.
ERROR -> Nothing to edit. File was already edited, doesn't contain any DZAI.


Here is the dayz_server.pbo file:
http://speedy.sh/ZJEDc/dayz-server.pbo
 
Okay. So we looked at your init.sqf and its not being called there. You are correct, there is no DZAI at all in this PBO.
But the fact remains that they ARE being called. Therefore, I submit to you, that this is NOT the dayz_server.pbo that is actually being used in the server. You posted this file directly from this folder ( ServerFiles\dayz_epoch\@DayZ_Epoch_Server ) and not from a working folder on your desktop?
Post your mission file and lets make sure its not actually hiding in there, just to be sure. We can check all the files in the mission to see if its being called by some other script you have.
 
Back
Top