Jump to content

[EMS] 0.2.6 Epoch Mission System


Fuchs

  

143 members have voted

  1. 1. Do you want the boxes integrated from EMS into the new system?

    • Yes ,highly recommended !
      129
    • No ,i don't care about !
      14


Recommended Posts

Hi all;

 

I use one old mission system for my server.

 

All was going always nice.

 

But since 1.0.4 i get a problem about the vehicles in missions.

 

They kill everyone entering in.

 

I tryed to change the server_function.sqf by change this:

server_checkHackers = {
	if (DZE_DYN_AntiStuck2nd > 3) then { DZE_DYN_HackerCheck = nil; DZE_DYN_AntiStuck2nd = 0; };
	if(!isNil "DZE_DYN_HackerCheck") exitWith {  DZE_DYN_AntiStuck2nd = DZE_DYN_AntiStuck2nd + 1;};
	DZE_DYN_HackerCheck = true;
	{
		if(vehicle _x != _x && !(vehicle _x in PVDZE_serverObjectMonitor) && (isPlayer _x)  && !((typeOf vehicle _x) in DZE_safeVehicle)) then {
			diag_log ("CLEANUP: KILLING A HACKER " + (name _x) + " " + str(_x) + " IN " + (typeOf vehicle _x));
			(vehicle _x) setDamage 1;
			_x setDamage 1;
			sleep 0.25;
		};
		sleep 0.001;
	} forEach allUnits;
	DZE_DYN_HackerCheck = nil;
};

To this:

server_checkHackers = {
	if (DZE_DYN_AntiStuck2nd > 3) then { DZE_DYN_HackerCheck = nil; DZE_DYN_AntiStuck2nd = 0; };
	if(!isNil "DZE_DYN_HackerCheck") exitWith {  DZE_DYN_AntiStuck2nd = DZE_DYN_AntiStuck2nd + 1;};
	DZE_DYN_HackerCheck = true;
	{
		if(vehicle _x != _x && !(vehicle _x in PVDZE_serverObjectMonitor) && (isPlayer _x)  && !((typeOf vehicle _x) in DZE_safeVehicle) && (vehicle _x getVariable [""DZAI"",0] != 1)) then {" \n
			diag_log ("CLEANUP: KILLING A HACKER " + (name _x) + " " + str(_x) + " IN " + (typeOf vehicle _x));
			(vehicle _x) setDamage 1;
			_x setDamage 1;
			sleep 0.25;
		};
		sleep 0.001;
	} forEach allUnits;
	DZE_DYN_HackerCheck = nil;
};

But vehicle still kill anyone entering in.

 

( between my admin tool bluephoneix was working correctly since i updated in epoch 1.0.4 with the same vehicule issue now)

Any fix for it?

Link to comment
Share on other sites

Located: dayz_server\init\server_functions.sqf

 

Around line 298 look for this:

if(vehicle _x != _x && !(vehicle _x in PVDZE_serverObjectMonitor) && (isPlayer _x) && !((typeOf vehicle _x) in DZE_safeVehicle)) then {

Replace with this:

if (vehicle _x != _x && !(vehicle _x in PVDZE_serverObjectMonitor) && (isPlayer _x) && (vehicle _x getVariable ["Sarge",0] != 1) && !((typeOf vehicle _x) in DZE_safeVehicle)) then {

Repack your dayz_server.pbo and replace your original one.

Link to comment
Share on other sites

here it'zs the part of my server_function.sqf for epoch 1.0.4

};
server_cleanupGroups = {
	if (DZE_DYN_AntiStuck3rd > 3) then { DZE_DYN_GroupCleanup = nil; DZE_DYN_AntiStuck3rd = 0; };
	if(!isNil "DZE_DYN_GroupCleanup") exitWith {  DZE_DYN_AntiStuck3rd = DZE_DYN_AntiStuck3rd + 1;};
	DZE_DYN_GroupCleanup = true;
	{
		if (count units _x == 0) then {
			deleteGroup _x;
		};
		sleep 0.001;
	} forEach allGroups;
	DZE_DYN_GroupCleanup = nil;
};

server_checkHackers = {
	if (DZE_DYN_AntiStuck2nd > 3) then { DZE_DYN_HackerCheck = nil; DZE_DYN_AntiStuck2nd = 0; };
	if(!isNil "DZE_DYN_HackerCheck") exitWith {  DZE_DYN_AntiStuck2nd = DZE_DYN_AntiStuck2nd + 1;};
	DZE_DYN_HackerCheck = true;
	{
		if (vehicle _x != _x && !(vehicle _x in PVDZE_serverObjectMonitor) && (isPlayer _x) && (vehicle _x getVariable ["DZAI",0] != 1) && !((typeOf vehicle _x) in DZE_safeVehicle)) then  {

			diag_log ("CLEANUP: KILLING A HACKER " + (name _x) + " " + str(_x) + " IN " + (typeOf vehicle _x));
			(vehicle _x) setDamage 1;
			_x setDamage 1;
			sleep 0.25;
		};
		sleep 0.001;
	} forEach allUnits;
	DZE_DYN_HackerCheck = nil;
};

And it doesnt work

 

( i Use DZAI )

Link to comment
Share on other sites

Fuchs/Anyone - I am still getting pages upon pages of this error spamming my RPT:

 

if (!_parachuteWest>
17:45:00   Error Generic error in expression
17:45:00 File z\addons\dayz_server\compile\server_updateObject.sqf, line 29
17:45:12 Error in expression < && (vehicle _x getVariable ["Sarge",0] != 1) && !((typeOf vehicle _x) in DZE_sa>
17:45:12   Error position: <!= 1) && !((typeOf vehicle _x) in DZE_sa>
17:45:12   Error Generic error in expression
17:45:12 File z\addons\dayz_server\init\server_functions.sqf, line 802
17:45:26 "CLEANUP: Deleted 2 Loot Piles out of 117"
17:45:27 Error in expression < && (vehicle _x getVariable ["Sarge",0] != 1) && !((typeOf vehicle _x) in DZE_sa>
17:45:27   Error position: <!= 1) && !((typeOf vehicle _x) in DZE_sa>
17:45:27   Error Generic error in expression
17:45:27 File z\addons\dayz_server\init\server_functions.sqf, line 802
17:45:42 Error in expression < && (vehicle _x getVariable ["Sarge",0] != 1) && !((typeOf vehicle _x) in DZE_sa>
17:45:42   Error position: <!= 1) && !((typeOf vehicle _x) in DZE_sa>
17:45:42   Error Generic error in expression
17:45:42 File z\addons\dayz_server\init\server_functions.sqf, line 802
17:45:45 Error in expression <0";
};

if (_object getVariable "Sarge" == 1) exitWith {};

if (!_parachuteWest>
17:45:45   Error position: <== 1) exitWith {};

 

I have everything setup correctly in my server_functions.sqf:

if (vehicle _x != _x && !(vehicle _x in PVDZE_serverObjectMonitor) && (isPlayer _x) && (vehicle _x getVariable ["Sarge",0] != 1) && !((typeOf vehicle _x) in DZE_safeVehicle)) then {

 

and server_updateObject:

if (_object getVariable "Sarge" == 1) exitWith {};

if (!_parachuteWest and !(locked _object)) then {
    if (_objectID == "0" && _uid == "0" && (vehicle _object getVariable ["Sarge",0] != 1)) then

 

One clue that may be help that I have noticed - all this starts happening after a bunch of these start spamming:

17:52:25 Server: Object 24:55 not found (message 70)
17:52:25 Server: Object 24:54 not found (message 94)
17:52:25 Server: Object 24:58 not found (message 70)
17:52:25 Server: Object 24:57 not found (message 94)
17:52:25 Server: Object 24:63 not found (message 70)
17:52:25 Server: Object 24:62 not found (message 70)
17:52:25 Server: Object 24:69 not found (message 70)
17:52:25 Server: Object 24:74 not found (message 70)
17:52:25 Server: Object 24:76 not found (message 70)
17:52:25 Server: Object 24:73 not found (message 94)
17:52:25 Server: Object 24:75 not found (message 70)

 

AND - all of that starts spamming right after a mission starts to load the AIUNIT.

 

Anyone have any ideas?  Perhaps there is some Bandit or Loadout or Vehicle in the AI Mission that is creating these errors?

 

THANKS!

 

 

PS: When creatingthe units (add_unit_server or 1 or 2) = does the Sarge variable need to be added anywhere?  Just reaching out thinking out of the box here.

Link to comment
Share on other sites

IF  you are getting any of these errors in your RPT

 

Warning Message: No entry 'bin\config.bin/CfgMagazines.ItemGPS'.

Warning Message: No entry 'bin\config.bin/CfgMagazines.Binocular_Vector'.

 

It's due to the type of item in your fillBoxesM.sqf. 

 

ItemGPS and Binocular_Vector are both listed as addMagazineCargoGlobal. 

 

Change it to addWeaponCargoGlobal

 

Here is my updated fillBoxesM.sqf

 

_crate = _this select 0;

clearWeaponCargoGlobal _crate;
clearMagazineCargoGlobal _crate;

_crate addMagazineCargoGlobal ["ItemBandage", 25];
_crate addMagazineCargoGlobal ["ItemMorphine", 10];
_crate addMagazineCargoGlobal ["ItemEpinephrine", 10];
_crate addMagazineCargoGlobal ["ItemPainkiller", 15];
_crate addMagazineCargoGlobal ["FoodMRE", 15];
_crate addMagazineCargoGlobal ["ItemSodaCoke", 10];
_crate addMagazineCargoGlobal ["ItemAntibiotic", 10];
_crate addMagazineCargoGlobal ["ItemBloodbag", 10];
_crate addWeaponCargoGlobal ["ItemGPS", 2];
_crate addWeaponCargoGlobal ["Binocular_Vector", 2];

 

Corrected above

Link to comment
Share on other sites

Im not sure if its because of the latest patch or not but we are not currently able to sell the mission vehicles back to traders. it starts the trade but then at almost completing it says you need to sit in the driver seat to be able to sell. Obviously we have sat in the divers seat before trying to sell.

 

we have no other problems selling other non mission vehicles, it only happens with the mission vehicles

Link to comment
Share on other sites

Im not sure if its because of the latest patch or not but we are not currently able to sell the mission vehicles back to traders. it starts the trade but then at almost completing it says you need to sit in the driver seat to be able to sell. Obviously we have sat in the divers seat before trying to sell.

 

we have no other problems selling other non mission vehicles, it only happens with the mission vehicles

 

 

 

 

 

 

Do you using any bloodbag script or any other script requiring  fn_selfaction.sqf?

 

If yes, did you updating it by grabing 1.0.4 fn_selfaction.sqf from your dayzcode?

Link to comment
Share on other sites

@Fubar22

 

this is a example How this CAN get weird and wrong

 

server_checkHackers = {
    if (DZE_DYN_AntiStuck2nd > 3) then { DZE_DYN_HackerCheck = nil; DZE_DYN_AntiStuck2nd = 0; };
    if(!isNil "DZE_DYN_HackerCheck") exitWith {  DZE_DYN_AntiStuck2nd = DZE_DYN_AntiStuck2nd + 1;};
    DZE_DYN_HackerCheck = true;
    {
        // if(vehicle _x != _x && !(vehicle _x in PVDZE_serverObjectMonitor) && (isPlayer _x)  && !((typeOf vehicle _x) in DZE_safeVehicle)) then {
        if (vehicle _x != _x && !(vehicle _x in PVDZE_serverObjectMonitor) && (isPlayer _x) && (vehicle _x getVariable ["Sarge",0] != 1) && !((typeOf vehicle _x) in DZE_safeVehicle)) then {
            diag_log ("CLEANUP: KILLING A HACKER " + (name _x) + " " + str(_x) + " IN " + (typeOf vehicle _x));
            (vehicle _x) setDamage 1;
            _x setDamage 1;
            sleep 0.25;
        };
        sleep 0.001;
    } forEach allUnits;
    DZE_DYN_HackerCheck = nil;
};


server_checkHackers = {
    if (DZE_DYN_AntiStuck2nd > 3) then { DZE_DYN_HackerCheck = nil; DZE_DYN_AntiStuck2nd = 0; };
    if(!isNil "DZE_DYN_HackerCheck") exitWith {  DZE_DYN_AntiStuck2nd = DZE_DYN_AntiStuck2nd + 1;};
    DZE_DYN_HackerCheck = true;
    {

        if (vehicle _x != _x && !(vehicle _x in PVDZE_serverObjectMonitor) && (isPlayer _x) && (vehicle _x getVariable ["Sarge",0] != 1) && !((typeOf vehicle _x) in DZE_safeVehicle)) then {
            diag_log ("CLEANUP: KILLING A HACKER " + (name _x) + " " + str(_x) + " IN " + (typeOf vehicle _x));
            (vehicle _x) setDamage 1;
            _x setDamage 1;
            sleep 0.25;
        };
        sleep 0.001;
    } forEach allUnits;
    DZE_DYN_HackerCheck = nil;
};
 

The first 1 is a snippet from server_functions.sqf  BUT with a Uncomment line  .... // if vehicle etc etc the original line

But the hole function   server_checkHackers = aint working .. why the uncomment line is still a part of the function  

The end has ......DZE_safeVehicle)) then {      <<< a  curly bracket wich still working

Hence the ["Sarge",0] NOT is 1  aint processed    ... u may get killed or not    ....but u sure get RPT spamming each time this function gets called !

 

The second snippet is a working function

Hence the ["Sarge",0] NOT is 1    is working and u dont get killed   ,, only RPT if a hacker gets killed

 

 

else iam out of ideas

Link to comment
Share on other sites

@umfufu - thank you bro for all your in trying to figure this out.  Mine is like your 2nd example without the //commented out section.  I have learned that lesson with compiles :-)

 

So, not sure what to do.  I think it has something to do with when the mission AI is launched.  The variable is triggering the error, but not sure why.  Perhaps some other _xxxxxx variable is causing this to happen.  Will keep looking around.

 

THANKS!

Link to comment
Share on other sites

The remmarkers have been removed ...

Why should i make another thread ,for more confusion and some sort of people never read anything !?

Cars cant be selled at the moment maybe we fix this when we have the time .

Link to comment
Share on other sites

The remmarkers have been removed ...

Why should i make another thread ,for more confusion and some sort of people never read anything !?

Cars cant be selled at the moment maybe we fix this when we have the time .

 

Have you updated the main post with the correct instructions for 1.0.4? If not, you are confusing people. You haven't even updated the version number as you make fixes, which is confusing. A 29 page thread clouds things and makes it more difficult to find the correct answers. Since you have your own subforum now, why not clean it up, create a new post with the information about how to set up EMS properly, for the current version of Epoch?

Link to comment
Share on other sites

Forgive me if I do not understand that, really appreciate your work! 
But I not found a solution to the problem, because of which it is impossible to sell cars that do not exist in the database. 
 
Solutions yet? If not then I am willing to wait as long as necessary.
 
ps
Fuchs big Respect!
Link to comment
Share on other sites

 

 
 
EMS 0.2.6 
 
Showtime
 
Current Dev's
Firefly,Fuchs
 
 

Requirements:

  • Notepad++
  • PBO Manager
  • Epoch 1.0.3.1 Server

Difficulty

Easy : 10-15 minutes

  • Some knowledge of Epoch Server & Mission file locations
  • How to use PBO manager to unpack and pack PBO files
  • Installation Instructions dayz_server PBO Instructions
  • [ATTENTION] Mission Vehicles disappear after a restart , EMS will not support saving them in any way !!

 

Download and unpack the most recent release of EMS 0.2.6 from https://github.com/TheFuchs/EMS-Epoch-Mission-System

 

 

Make a copy of your dayz_server.pbo and rename it dayz_server.pbo.bak

 

Unpack your dayz_server.pbo to a folder called dayz_server

 

Copy the Missions folder from the EMS download ,paste and place the contents in the existing since Patch 1.0.3.1 missions folder dayz_server

 

Edit your server_functions.sqf

Located: dayz_server\init\server_functions.sqf

 

Around line 30 look for this:

 

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

 

Add this after it:

 

fnc_hTime = compile preprocessFile "\z\addons\dayz_server\Missions\misc\fnc_hTime.sqf"; //Random integer selector for mission wait time

 

Around line 540 look for this:

dayz_recordLogin = {
private["_key"];
_key = format["CHILD:103:%1:%2:%3:",_this select 0,_this select 1,_this select 2];
_key call server_hiveWrite;
};

Insert this after it:

//----------InitMissions--------//
MissionGo = 0;
MissionGoMinor = 0;
if (isServer) then {
SMarray = ["SM1","SM2","SM3","SM4","SM5","SM6","SM7","SM8","SM9","SM10","SM11","SM12","SM13"];
[] execVM "\z\addons\dayz_server\EMS\major\SMfinder.sqf"; //Starts major mission system
SMarray2 = ["SM1","SM2","SM3","SM4","SM5","SM6","SM7","SM8","SM9","SM10","SM11","SM12","SM13"];
[] execVM "\z\addons\dayz_server\EMS\minor\SMfinder.sqf"; //Starts minor mission system
};
//---------EndInitMissions------//

Edit server_updateObject.sqf

Located: dayz_server\compile\server_updateObject.sqf

 

Around line 22 look for this:

{
diag_log(format["Non-string Object: ID %1 UID %2", _objectID, _uid]);
//force fail
_objectID = "0";
_uid = "0";
};

Insert this after it:

if (_object getVariable "Sarge" == 1) exitWith {};

comment this out and add the line below :

 //if (_objectID == "0" && _uid == "0") then

and add

if (_objectID == "0" && _uid == "0" && (vehicle _object getVariable ["Sarge",0] != 1)) then

Located: dayz_server\init\server_functions.sqf

 

Around line 298 look for this:

if(vehicle _x != _x && !(vehicle _x in PVDZE_serverObjectMonitor) && (isPlayer _x)  && !((typeOf vehicle _x) in DZE_safeVehicle)) then {

Replace with this:

if (vehicle _x != _x && !(vehicle _x in PVDZE_serverObjectMonitor) && (isPlayer _x) && (vehicle _x getVariable ["Sarge",0] != 1) && !((typeOf vehicle _x) in DZE_safeVehicle)) then {

Repack your dayz_server.pbo and replace your original one.

 

 

Mission PBO Instructions

 

Unpack your mission PBO file using PBO Manager into a folder

 

Copy the debug folder from the EMS download to the root of your mission folder

 

Edit your init.sqf file

 

At the very end of you init.sqf file paste the following block of code:

// Mission System Markers
[] execVM "debug\addmarkers.sqf";
[] execVM "debug\addmarkers75.sqf";

Understanding  BIS_fnc_findSafePos

 

http://tactical.nekromantix.com/wiki/doku.php?id=arma2:scripting:bis_fnc_findsafepos

 

 

 

This will make the mission markers show up on the map for players that have died and respawn, or connect to the server after a mission has already spawned. THX to waTTe

 

Be aware: Using older releases of EMS only from github by the tags option and follow the install instructions there !

 

e.g.  https://github.com/TheFuchs/EMS-Epoch-Mission-System/releases/tag/0.2.5

After Bugfixing 0.2.6

[WIP] 0.5

https://github.com/TheFuchs/EMS-Epoch-Mission-System/issues?milestone=5&page=1&state=open

 

Updated already yesterday 

 

 

U can solve it yourself by adding Epoch Classnamed Vehicles

Link to comment
Share on other sites

i dont think its a problem with not being able to sell them because they arnt written to the database. if that was true i wouldn't be able to sell non hive versions of vehicles i spawn in with my admin tool. they are not database vehicles but i can still sell them fine.

 

its only mission vehicles i cant sell so i think the problem is something different other than them just being none database vehicles. vehicles shouldn't save to the database because of the spam to the server that would happen. i just hope there is a fix soon so that we can sell them to traders again.

Link to comment
Share on other sites

this line   

 

                _notSetup = (_objectID == "0" && _objectUID == "0")

 

                if(local _obj and !isNull _obj and alive _obj and !_notSetup) then {

 

in dayz_code\trade_any_vehicle.sqf   triggers the

 

} else {
                    cutText [(localize "str_epoch_player_245"), "PLAIN DOWN"]; 

 

 

   wich is the comment  in  dayz_epoch_b.pbo

 

        <Key ID="STR_EPOCH_PLAYER_245">
          <Original>\n\nFailed, you must get into drivers seat first.</Original>

 

So must look how to do this simple  , else no vehicle selling

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...