[WORKING] Halo Jump - New/Re-Spawn Only

TorturedChunk

Valued Member!
HALO JUMP SPAWN TUTORIAL

I give all credits of the originals scripts to the following:​
Unkinhead,Hangender, VentZero, (1.7.7.1 fix : [GSG] Az)

Modified by: TorturedChunk
There were some issues with the other scripts that I had fixes for and wanted to make a clean post for people to easily install this. Both options are for CHERNARUS ONLY. If you want to take this and make it work for you on another map, go for it :)

CHERNARUS ONLY!​
  • Working Halo Jump for New and Re-Spawning players
  • 2 Options for the actual Halo Script (#1 using internal ARMA 2:OA Halo Scripts, #2 Using the fn_HALO.sqf)
  • You can choose Either Method. Do not use both. Choose whichever one is easiest for you to install.
  • Both methods fix the saving issue for all players and vehicles.
  • FIX FOR 1.7.7.1 is UNDER OPTION #2 but should work for both versions. Thanks to [GSG] Az for the fix.
OPTION #1
This uses the ARMA 2: OA Interal HALO Jump scripts. Requires Modification to BE filters and some server cleanup stuff. IMPO this method uses a cleaner HALO script.​

Server Changes



1. dayz_server.pbo>>complie>>server_playerSetup.sqf

Find:
Code:
dayzPlayerLogin2 = [_worldspace,_state];

Change to:
Code:
dayzPlayerLogin2 = [_worldspace,_state,_randomSpot];



2. dayz_server.pbo>>compile>>server_updateObject.sqf

Find:
Code:
if (!_parachuteWest) then {
    if (_objectID == "0" && _uid == "0") then
    {
        _object_position = getPosATL _object;
            diag_log(format["Deleting object %1 with invalid ID at pos [%2,%3,%4]",
            typeOf _object,
            _object_position select 0,
            _object_position select 1,
            _object_position select 2]);
            _isNotOk = true;
    };
};


Change to (Comment Out):
Code:
/*
if (!_parachuteWest) then {
    if (_objectID == "0" && _uid == "0") then
    {
        _object_position = getPosATL _object;
            diag_log(format["Deleting object %1 with invalid ID at pos [%2,%3,%4]",
            typeOf _object,
            _object_position select 0,
            _object_position select 1,
            _object_position select 2]);
            _isNotOk = true;
    };
};
*/



3. dayz_server.pbo>>system>>server_cleanup.fsm

Find:
Code:
      "Check for hackers" \n
      " {" \n
      "      if(vehicle _x != _x && !(vehicle _x in _safety) && (typeOf vehicle _x) != ""ParachuteWest"") then {" \n
      "      diag_log (""CLEANUP: KILLING A HACKER "" + (name _x) + "" "" + str(_x) + "" IN "" + (typeOf vehicle _x));" \n
      "          (vehicle _x) setDamage 1;" \n
      "          _x setDamage 1;" \n
      "    };" \n
      " } forEach allUnits;" \n

Change to (Comment Out):
Code:
      "Check for hackers" \n
      "// {" \n
      "//    if(vehicle _x != _x && !(vehicle _x in _safety) && (typeOf vehicle _x) != ""ParachuteWest"") then {" \n
      "//      diag_log (""CLEANUP: KILLING A HACKER "" + (name _x) + "" "" + str(_x) + "" IN "" + (typeOf vehicle _x));" \n
      "//          (vehicle _x) setDamage 1;" \n
      "//          _x setDamage 1;" \n
      "//    };" \n
      "// } forEach allUnits;" \n



Mission Changes


1. dayz_X.chernarus>>init.sqf
(X represents your instance ID)

At the VERY bottom ADD:
Code:
MC_BIS_halo_spawn = compile preprocessFileLineNumbers "fixes\haloInit.sqf";
private["_mkr"];
_mkr = "spawn" + str(round(random 4));
if (!isDedicated) then {
    [] spawn {
        waitUntil { !isNil ("dayz_Totalzedscheck") and
!(player getVariable ["humanity",0] > 5000 and
typeOf player == "Survivor2_DZ") and
!(player getVariable ["humanity",0] < -2000 and
(typeOf player == "Survivor2_DZ" or
typeOf player == "SurvivorW2_DZ") ) and
!(player getVariable ["humanity",0] > 0 and
(typeOf player == "Bandit1_DZ" or
typeOf player == "BanditW1_DZ") )
};
 
        if (dayzPlayerLogin2 select 2) then
        {
            _pos = position player;
            _mkr setMarkerPos [_pos select 0, _pos select 1];
            player spawn MC_BIS_halo_spawn;
        };
    };
};

2. dayz_X.chernarus>>inti.sqf
(X represents your instance ID)

Find:
Code:
_playerMonitor =    [] execVM "\z\addons\dayz_code\system\player_monitor.sqf";

Change to:
Code:
_playerMonitor =    [] execFSM "fixes\player_monitor.fsm";



BE Fixes

1. dayz_X.chernarus>>Battleye>>creatvehicle.txt
(X representing your instance ID)

Find:
Code:
5 "Parachute" !="ParachuteWest"//under monitoring


Change t0:
Code:
5 "Parachute" !="ParachuteWest" !"ParachuteEast" !"ParachuteG" !"ParachuteC"//under monitoring


Anti Hack Fixes

1. UnPBO (UnPack) " dayz_code.pbo"

Find: player_monitor.fsm in " dayz_code\system "
Copy that file (player_monitor.fsm) to " dayz_X.chernarus>>fixes "
(X represents your instance ID)


2. dayz_X.chernarus>>fixes>>player_monitor.fsm
(X represents your instance ID)

Find:
Code:
 "[] execVM ""\z\addons\dayz_code\system\antihack.sqf"";" \n

Change to (Comment Out):
Code:
"// "[] execVM ""\z\addons\dayz_code\system\antihack.sqf"";" \n



Pack your mission and enjoy. :)
 
OPTION #2
This option uses the " fn_HALO.sqf " file instead of the internal ARMA 2: OA. While it requires less modification to your mission/server, I feel it isn't as clean of a script.



Server Changes

1. dayz_server.pbo>>complie>>server_playerSetup.sqf

Find:
Code:
dayzPlayerLogin2 = [_worldspace,_state];

Change to:
Code:
dayzPlayerLogin2 = [_worldspace,_state,_randomSpot];


2. dayz_server.pbo>>system>>server_cleanup.fsm

Find:
Code:
      "Check for hackers" \n
      " {" \n
      "      if(vehicle _x != _x && !(vehicle _x in _safety) && (typeOf vehicle _x) != ""ParachuteWest"") then {" \n
      "      diag_log (""CLEANUP: KILLING A HACKER "" + (name _x) + "" "" + str(_x) + "" IN "" + (typeOf vehicle _x));" \n
      "          (vehicle _x) setDamage 1;" \n
      "          _x setDamage 1;" \n
      "    };" \n
      " } forEach allUnits;" \n

Change to (Comment Out):
Code:
 //    "Check for hackers" \n
      "// {" \n
      "//    if(vehicle _x != _x && !(vehicle _x in _safety) && (typeOf vehicle _x) != ""ParachuteWest"") then {" \n
      "//      diag_log (""CLEANUP: KILLING A HACKER "" + (name _x) + "" "" + str(_x) + "" IN "" + (typeOf vehicle _x));" \n
      "//          (vehicle _x) setDamage 1;" \n
      "//          _x setDamage 1;" \n
      "//    };" \n
      "// } forEach allUnits;" \n



Mission Changes


1. dayz_X.chernarus>>init.sqf
(X represents your instance ID)

At the VERY bottom ADD:
Code:
MC_BIS_halo_spawn = compile preprocessFileLineNumbers "fixes\haloInit.sqf";
private["_mkr"];
_mkr = "spawn" + str(round(random 4));
if (!isDedicated) then {
    [] spawn {
        waitUntil { !isNil ("dayz_Totalzedscheck") and
!(player getVariable ["humanity",0] > 5000 and
typeOf player == "Survivor2_DZ") and
!(player getVariable ["humanity",0] < -2000 and
(typeOf player == "Survivor2_DZ" or
typeOf player == "SurvivorW2_DZ") ) and
!(player getVariable ["humanity",0] > 0 and
(typeOf player == "Bandit1_DZ" or
typeOf player == "BanditW1_DZ") )
};
 
        if (dayzPlayerLogin2 select 2) then
        {
            _pos = position player;
            _mkr setMarkerPos [_pos select 0, _pos select 1];
            player spawn MC_BIS_halo_spawn;
        };
    };
};

2. dayz_X.chernarus>>init.sqf
(X represents your instance ID)

Find:
Code:
_playerMonitor =    [] execVM "\z\addons\dayz_code\system\player_monitor.sqf";

Change to:
Code:
_playerMonitor =    [] execFSM "fixes\player_monitor.fsm";



Anti Hack Fixes


1. UnPBO (UnPack) " dayz_code.pbo"

Find: player_monitor.fsm in " dayz_code\system "
Copy that file (player_monitor.fsm) to " dayz_X.chernarus>>fixes "
(X represents your instance ID)


2. dayz_X.chernarus>>fixes>>player_monitor.fsm
(X represents your instance ID)

Find:
Code:
 "[] execVM ""\z\addons\dayz_code\system\antihack.sqf"";" \n

Change to (Comment Out):
Code:
"// "[] execVM ""\z\addons\dayz_code\system\antihack.sqf"";" \n


OPTIONAL FOR #1 or #2:
1. dayz_X.chernarus.pbo>>fixes>>haloInit.sqf
(X represents your instance ID)​
Change " 1000 " to whatever you height you want your players to spawn at.​
Code:
[player, 1000] exec
Pack your mission and enjoy! :)
Feel free to post any questions or troubles you have and I will do my best to help you with this.​




POSSIBLE FIX FOR 1.7.7.1 - Unconfirmed by Me, but Az says it should work.​
To get this to work in 1.7.7/1.7.7.1
Find:​
Code:
waitUntil { !isNil ("dayz_Totalzedscheck") and
Change to:​
Code:
waitUntil { !isNil ("dayz_animalCheck") and
Not sure if its essential but you may need to also comment out RESeq.sqf. I'm running antihacks and thats why I have commented it out.​
In init.sqf (Mission file) change:​
Code:
#include "\z\addons\dayz_code\system\REsec.sqf"
To:​
Code:
// #include "\z\addons\dayz_code\system\REsec.sqf"
Also, if running antihacks that look at _dayzactions, players wont be able to pull their parachute. You will need to add the following to the array in _dayzactions in the antihack code:​
Code:
bis_fnc_halo_action
 
Back
Top