Heli god mode works great againt weapons, but its leaked because a car, another heli, or even a bike, just need to touch it to make great damage. This script protect locked helis from contact damage from another vehicles, making god mode complete.
INSTALLATION
Put the script bellow in a file and name it nohelicrash.sqf. Put this file at the root of your mission folder, or mission PBO, and exec it on init.sqf with the command: if (hasInterface) then {[] execVM "nohelicrash.sqf";};
THE SCRIPT:
//Nohcrash
donn_NHC_horn_alert = false;
donn_GHL_helis = [
'CH53_DZE',
'MH6J_DZ',
'AH6X_DZ',
'UH1H_DZE',
'Mi17_DZE',
'Mi17_Civilian_DZ',
'UH60M_EP1_DZE',
'MV22_DZ',
'CH_47F_EP1_DZE',
'AN2_DZ'
];
donn_vehCenter = {
_vehicle = _this;
_vehCenter = getPosATL _vehicle;
_vehCenter
};
donn_GHL_maxSpeed = 35;
[] spawn {
_fpsNow = diag_fps;
while {true} do {
_fpsNow = round ((_fpsNow * 2 + diag_fps)/3);
if (_fpsNow > 60) then {donn_GHL_maxSpeed = 70;};
if (_fpsNow <= 60) then {donn_GHL_maxSpeed = 60;};
if (_fpsNow <= 40) then {donn_GHL_maxSpeed = 50;};
if (_fpsNow <= 30) then {donn_GHL_maxSpeed = 40;};
if (_fpsNow <= 20) then {donn_GHL_maxSpeed = 35;};
uiSleep 2;
};
};
donn_GHL_ejectKamiTry = {
private ['_car','_ejecterPos','_nearAir','_nearAirAll','_canbuild','_carCrewCount'];
_car = _this;
if (speed _car > 2) then {
_canbuild = canbuild;
_nearAirAll = nearestObjects [_car, donn_GHL_helis, 120];
_nearAir = [];
{
if (_canbuild) then {
if (alive _x && Locked _x && !(isEngineOn _x)) then { _nearAir = _nearAir + [_x];};
} else {
if (alive _x && !(isEngineOn _x)) then {_nearAir = _nearAir + [_x];};
};
} forEach _nearAirAll;
{
[_car, _x] spawn {
private ['_minDistance'];
_car = _this select 0;
_heli = _this select 1;
_sizeCar = sizeOf (typeOf _car);
_sizeHeli = sizeOf (typeOf _heli);
_minDistance = (_sizeHeli/2 + _sizeCar/2) * 1.1;
_isAir = _car isKindOF "Air";
if (_isAir) then {
while {((getPosATL _car) select 2) > 1 && alive _car && (isNull (driver _car))} do {
if ((_car distance _heli) < _minDistance) then {
_carNowPos = getPosATL _car;
_car setPosATL [_carNowPos select 0, _carNowPos select 1, (_carNowPos select 2) + 25];
};
sleep 0.001;
};
} else {
while {(speed _car) > 1 && alive _car && (isNull (driver _car))} do {
if ((_car distance _heli) < _minDistance && ((getPosASL _car) select 2) >= (((getPosASL _heli) select 2)-1)) then {
_car engineOn false;
_car setVelocity [0,0,0];
};
sleep 0.001;
};
};
};
} forEach _nearAir;
};
};
donn_GHL_nearestFound = false;
[] spawn {
while {true} do {
donn_GHL_playerVeh = vehicle player;
if (donn_GHL_playerVeh != player) then {
if (driver donn_GHL_playerVeh == player) then {
while {driver donn_GHL_playerVeh == player} do {
_nearAir = nearestObjects [donn_GHL_playerVeh, donn_GHL_helis, 50];
_nearestFound = false;
if (canbuild) then {
{
if (alive _x && Locked _x && !(isEngineOn _x)) then {
if (((getPosASL donn_GHL_playerVeh) select 2) >= (((getPosASL _x) select 2)-1)) then {
donn_GHL_nearest = _x;
_nearestFound = true;
};
};
if (_nearestFound) exitWith {};
} forEach _nearAir;
} else {
{
if (alive _x && !(isEngineOn _x)) then {
if (((getPosASL donn_GHL_playerVeh) select 2) >= (((getPosASL _x) select 2)-1)) then {
donn_GHL_nearest = _x;
_nearestFound = true;
};
};
if (_nearestFound) exitWith {};
} forEach _nearAir;
};
donn_GHL_nearestFound = _nearestFound;
sleep 0.001;
};
donn_GHL_playerVeh call donn_GHL_ejectKamiTry;
donn_GHL_nearestFound = false;
};
};
sleep 0.5;
};
};
[] spawn {
while {true} do {
waitUntil {donn_GHL_nearestFound};
_player = donn_GHL_playerVeh;
_nearest = donn_GHL_nearest;
_sizePlayer = sizeOf (typeOf _player);
_sizeNearest = sizeOf (typeOf _nearest);
_isAir = _player isKindOf "Air";
_minDistDirect = (_sizePlayer/2 + _sizeNearest/2) * 1.1;
_airPlayerDist = _player distance _nearest;
_firstSafe = true;
if (_airPlayerDist < _minDistDirect) then {_firstSafe = false;};
_playerPosSafe = getPosATL _player;
while {_nearest == donn_GHL_nearest && donn_GHL_nearestFound} do {
if (_airPlayerDist < _minDistDirect) then {
if (_isAir && _firstSafe) then {
_playerNowPos = getPosATL _player;
_speedPlayer = speed _player;
_hTp = 30;
if (_speedPlayer <= 80) then {_hTp = 25;};
if (_speedPlayer <= 65) then {_hTp = 20;};
if (_speedPlayer <= 55) then {_hTp = 15;};
if (_speedPlayer <= 45) then {_hTp = 10;};
if (_speedPlayer <= 35) then {_hTp = 5;};
if (_speedPlayer <= 25) then {_hTp = 3;};
if (_speedPlayer <= 15) then {_hTp = 1;};
_player setPosATL [_playerNowPos select 0, _playerNowPos select 1, (_playerNowPos select 2) + _hTp];
} else {
_speedPlayer = speed _player;
_retarder = (donn_GHL_maxSpeed/(_speedPlayer + 1)) min 1;
_velP = velocity _player;
_player setVelocity [(_velP select 0) * _retarder, (_velP select 1) * _retarder, (_velP select 2) * _retarder];
_nearestPosNow = getPosATL _nearest;
_newPosMoveTo = [
((_nearestPosNow select 0) + ((_playerPosSafe select 0) - (_nearestPosNow select 0)) * 1.05),
((_nearestPosNow select 1) + ((_playerPosSafe select 1) - (_nearestPosNow select 1)) * 1.05),
0.1
];
_player setPosATL _newPosMoveTo;
_playerPosSafe = _newPosMoveTo;
};
if (!donn_NHC_horn_alert) then {
donn_NHC_horn_alert = true;
[] spawn {
systemChat 'No no no! (-)_(-)';
sleep 3;
donn_NHC_horn_alert = false;
};
};
} else {
_firstSafe = true;
_playerPosSafe = getPosATL _player;
};
sleep 0.001;
_airPlayerDist = _player distance _nearest;
};
};
};
Question
Donnovan
If you like my work, please consider a donation.
$USD
$EURO
ABOUT
Heli god mode works great againt weapons, but its leaked because a car, another heli, or even a bike, just need to touch it to make great damage. This script protect locked helis from contact damage from another vehicles, making god mode complete.
INSTALLATION
Put the script bellow in a file and name it nohelicrash.sqf. Put this file at the root of your mission folder, or mission PBO, and exec it on init.sqf with the command: if (hasInterface) then {[] execVM "nohelicrash.sqf";};
THE SCRIPT:
Link to comment
Share on other sites
27 answers to this question
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now