Hi there forum!
I really like the C130J in ArmA2, although there is a small problem with it. I really like to land the C130J in fields and the open areas in the forest. I can do a landing in about 400m give or take but 400m isn't near enough to start when it's a bit bumpy. Now I have searched the forum and all over the web and maybe it's because I'm a newbeginner. Maybe I'm not using the right search terms and I'm sorry if it seems obvious to you but that's why I'm asking you.
One thing that would make it work would be if there existed a C130J "JATO" Scipt that could give the C130 a huge boost to get it up in the air. Is there such a script or can it easily be made?
This post was edited by fnadde42 (2014-01-20 15:37, ago)
I also noticed its very hard to take of even from unpaved runway in the south or Chernarus this is almost impossible due to some trees at end of the runway. Sinds there is no wheel brake on the plane you cannot let the engine make power before starting to roll, i think this is how they do it in real life. Idd also love to see a proper solution for this.
On of the people of the DAFmod team is currently making a wheel brake for an F16 maybe we can also use this on the C130! Thanks for pointing towards this problem!
#-=XTRA=-Larsiano :
Sinds there is no wheel brake on the plane you cannot let the engine make power before starting to roll, i think this is how they do it in real life. Idd also love to see a proper solution for this.
Indeed. The wheel brake action would help a lot. Now I do not know much about scripting in ArmA2 but this seems like something that's not too hard to make. Hell, I would buy a cup of coffe to the fellow who could make this! Added 21 hours 25 minutes later:
It's a more "JATO/Booster" solution where the script gives x amount of boost until speed y is achieved. Sadly, I have yet to find a script to brake the wheels but in the mean time, this'll do. I will try this one out and post results here.
This post was edited by fnadde42 (2014-01-20 20:34, ago)
Hi there - what a coincidence, I just made myself a JATO script a week ago.
It was necessary for a mission where I wanted to be able to take off from balota with a C160 Transall.
I will adapt it for the C130 and try polish it a bit more. The boosting part of my script isn't as sophisticated as described in your link above fnadde42, but mine got some fire and smoke : )
#-=XTRA=-Larsiano :
I also noticed its very hard to take of even from unpaved runway in the south or Chernarus this is almost impossible due to some trees at end of the runway. Sinds there is no wheel brake on the plane you cannot let the engine make power before starting to roll, i think this is how they do it in real life. Idd also love to see a proper solution for this.
On of the people of the DAFmod team is currently making a wheel brake for an F16 maybe we can also use this on the C130! Thanks for pointing towards this problem!
Well Gentlemen, first of all, good idea to initiate this project! But to be honest, partly this is due to pilot proficiency. All airfields in Chernarus are serviceable with the C-130 in all directions of take-off. The trick is to get up to ca. 140 kph a.s.a.p. and rotate to about 5 degrees nose up. After your wheels leave the ground, your airspeed will climb sufficiently to continue the nose up pull and the climb over any obstacle. In sum, the trick is not to wait for the regular rotation speed, but pull off the ground early - giving your plane opportunity to accelerate in air. Flaps help the climb, but slow the acceleration on the ground, so use them late.
This post was edited by kazimierz (2014-02-15 11:19, ago)
Flt Lt. J. "Trigger" Kazimierz 2IC RAF EAW, 6th Airborne Division
Anyway I had it made already and I wanted to set it up for the C130 too, glad there's other people who might profit from it.
You need to make 2 textfiles in your mission folder, 1st called jato.sqf, the 2nd jatoaction.sqf
/*-------------------------------------------------------------------
very simple JATO script v0.9 by Sabre[Dust]
(Jet Assisted Take Off - actually Rocket Assisted Take Off)
put this in the init line of your aircraft:
nul = [this] execVM "jato.sqf"
or even better: use a trigger. This will allow you to easily reload the JATO System.
Make a trigger, set it to <Activation Bluefor, Present, Repeatedly> and put this in its <Condition> line:
{typeof _x == "C130J"} count thislist >0
Adjust the type of C130 you are using.
In its <On Act> field put this:
_xhandle = [(thislist select 0)] execVM "jato.sqf"; hint "JATO ready";
Have Fun
-------------------------------------------------------------------*/
_aircraft = _this select 0;
/* if using a trigger to load the system, it's probably better to remove the action before adding it to prevent loading multiple actions*/
_aircraft removeAction jato;
jato = _aircraft addaction ["JATO","jatoaction.sqf"];
and here
/*-------------------------------------------------------------------
very simple JATO script v0.9 by Sabre[Dust]
-------------------------------------------------------------------*/
_aircraft = _this select 0;
/*------------------------------------------------------
check if crew or pilot is trying to access script
use the following expression for human players only:
if(player != driver _aircraft) then {
for human players and AI use:
if(isNull driver _aircraft) then {
------------------------------------------------------*/
if(player != driver _aircraft) then {
_aircraft vehiclechat "Take your hands off the JATO System crewman! It's not a toy.";
} else {
// remove the action and initialise a few variables
_aircraft removeAction jato;
_aircraft vehiclechat "JATO System ignition";
_speed = 3; // play with this to increase the power of the acceleration
_rockettype = "M_AT9_AT"; // object that gets attached, default "M_AT9_AT", try "R_MLRS" etc for fun
_boostcycle = 0;
while {_boostcycle < 30 } do {
sleep 0.3; // interval at which the boost happens
_boostcycle = _boostcycle+1;
_vel = velocity _aircraft; // velocity of aircraft at curetroent time
_dir = direction _aircraft; // vector of aircraft at curetroent time
// acceleration happens here
_aircraft setVelocity [(_vel select 0)+(sin _dir*_speed),(_vel select 1)+ (cos _dir*_speed),(_vel select 2)];
if (_boostcycle == 1) then {
// next step is attaching our rockets
rocket1a = _rockettype createVehicle position _aircraft;
rocket2a = _rockettype createVehicle position _aircraft;
rocket3a = _rockettype createVehicle position _aircraft;
rocket4a = _rockettype createVehicle position _aircraft;
rocket5a = _rockettype createVehicle position _aircraft;
rocket6a = _rockettype createVehicle position _aircraft;
rocket7a = _rockettype createVehicle position _aircraft;
rocket8a = _rockettype createVehicle position _aircraft;
rocket1a attachTo [_aircraft,[2.26,-1.1,-3.45]];
rocket1a setVectorDirAndUp [[0.14,0.9,0.1],[0.86,0.1,0.9]];
rocket2a attachTo [_aircraft,[-2.26,-1.1,-3.45]];
rocket2a setVectorDirAndUp [[-0.14,0.9,0.1],[0.86,0.1,0.9]];
rocket3a attachTo [_aircraft,[2.255,-1.1,-3.75]];
rocket3a setVectorDirAndUp [[0.16,0.9,0.1],[0.84,0.1,0.9]];
rocket4a attachTo [_aircraft,[-2.255,-1.1,-3.75]];
rocket4a setVectorDirAndUp [[-0.16,0.9,0.1],[0.84,0.1,0.9]];
rocket5a attachTo [_aircraft,[2.25,-1.1,-4.05]];
rocket5a setVectorDirAndUp [[0.18,0.9,0.1],[0.82,0.1,0.9]];
rocket6a attachTo [_aircraft,[-2.25,-1.1,-4.05]];
rocket6a setVectorDirAndUp [[-0.18,0.9,0.1],[0.82,0.1,0.9]];
rocket7a attachTo [_aircraft,[2.245,-1.1,-4.35]];
rocket7a setVectorDirAndUp [[0.2,0.9,0.1],[0.8,0.1,0.9]];
rocket8a attachTo [_aircraft,[-2.245,-1.1,-4.35]];
rocket8a setVectorDirAndUp [[-0.2,0.9,0.1],[0.8,0.1,0.9]];
// ... and smoke generators
smoke1 = "ARTYsmokeShellWhite" createVehicle position _aircraft;
smoke2 = "smokeshell" createVehicle position _aircraft;
smoke3 = "smokeshell" createVehicle position _aircraft;
smoke1 attachTo [_aircraft,[0,-1,-4]];
smoke2 attachTo [_aircraft,[1.8,-10.5,-1.4]];
smoke3 attachTo [_aircraft,[-1.8,-10.5,-1.4]];
};
// since the burn time of the M_AT9_AT is about 3-4 seconds, we need to replace the rockets from time to time
if (_boostcycle == 10) then {
rocket1b = _rockettype createVehicle position _aircraft;
rocket2b = _rockettype createVehicle position _aircraft;
rocket3b = _rockettype createVehicle position _aircraft;
rocket4b = _rockettype createVehicle position _aircraft;
rocket5b = _rockettype createVehicle position _aircraft;
rocket6b = _rockettype createVehicle position _aircraft;
rocket7b = _rockettype createVehicle position _aircraft;
rocket8b = _rockettype createVehicle position _aircraft;
rocket1b attachTo [_aircraft,[2.26,-1.1,-3.45]];
rocket1b setVectorDirAndUp [[0.14,0.9,0.1],[0.86,0.1,0.9]];
rocket2b attachTo [_aircraft,[-2.26,-1.1,-3.45]];
rocket2b setVectorDirAndUp [[-0.14,0.9,0.1],[0.86,0.1,0.9]];
rocket3b attachTo [_aircraft,[2.255,-1.1,-3.75]];
rocket3b setVectorDirAndUp [[0.16,0.9,0.1],[0.84,0.1,0.9]];
rocket4b attachTo [_aircraft,[-2.255,-1.1,-3.75]];
rocket4b setVectorDirAndUp [[-0.16,0.9,0.1],[0.84,0.1,0.9]];
rocket5b attachTo [_aircraft,[2.25,-1.1,-4.05]];
rocket5b setVectorDirAndUp [[0.18,0.9,0.1],[0.82,0.1,0.9]];
rocket6b attachTo [_aircraft,[-2.25,-1.1,-4.05]];
rocket6b setVectorDirAndUp [[-0.18,0.9,0.1],[0.82,0.1,0.9]];
rocket7b attachTo [_aircraft,[2.245,-1.1,-4.35]];
rocket7b setVectorDirAndUp [[0.2,0.9,0.1],[0.8,0.1,0.9]];
rocket8b attachTo [_aircraft,[-2.245,-1.1,-4.35]];
rocket8b setVectorDirAndUp [[-0.2,0.9,0.1],[0.8,0.1,0.9]];
deleteVehicle rocket1a;
deleteVehicle rocket2a;
deleteVehicle rocket3a;
deleteVehicle rocket4a;
deleteVehicle rocket5a;
deleteVehicle rocket6a;
deleteVehicle rocket7a;
deleteVehicle rocket8a;
};
if (_boostcycle == 20) then {
rocket1c = _rockettype createVehicle position _aircraft;
rocket2c = _rockettype createVehicle position _aircraft;
rocket3c = _rockettype createVehicle position _aircraft;
rocket4c = _rockettype createVehicle position _aircraft;
rocket5c = _rockettype createVehicle position _aircraft;
rocket6c = _rockettype createVehicle position _aircraft;
rocket7c = _rockettype createVehicle position _aircraft;
rocket8c = _rockettype createVehicle position _aircraft;
rocket1c attachTo [_aircraft,[2.26,-1.1,-3.45]];
rocket1c setVectorDirAndUp [[0.14,0.9,0.1],[0.86,0.1,0.9]];
rocket2c attachTo [_aircraft,[-2.26,-1.1,-3.45]];
rocket2c setVectorDirAndUp [[-0.14,0.9,0.1],[0.86,0.1,0.9]];
rocket3c attachTo [_aircraft,[2.255,-1.1,-3.75]];
rocket3c setVectorDirAndUp [[0.16,0.9,0.1],[0.84,0.1,0.9]];
rocket4c attachTo [_aircraft,[-2.255,-1.1,-3.75]];
rocket4c setVectorDirAndUp [[-0.16,0.9,0.1],[0.84,0.1,0.9]];
rocket5c attachTo [_aircraft,[2.25,-1.1,-4.05]];
rocket5c setVectorDirAndUp [[0.18,0.9,0.1],[0.82,0.1,0.9]];
rocket6c attachTo [_aircraft,[-2.25,-1.1,-4.05]];
rocket6c setVectorDirAndUp [[-0.18,0.9,0.1],[0.82,0.1,0.9]];
rocket7c attachTo [_aircraft,[2.245,-1.1,-4.35]];
rocket7c setVectorDirAndUp [[0.2,0.9,0.1],[0.8,0.1,0.9]];
rocket8c attachTo [_aircraft,[-2.245,-1.1,-4.35]];
rocket8c setVectorDirAndUp [[-0.2,0.9,0.1],[0.8,0.1,0.9]];
deleteVehicle rocket1b;
deleteVehicle rocket2b;
deleteVehicle rocket3b;
deleteVehicle rocket4b;
deleteVehicle rocket5b;
deleteVehicle rocket6b;
deleteVehicle rocket7b;
deleteVehicle rocket8b;
};
};
sleep 4.0;
_aircraft vehiclechat "JATO System dropped";
// clean up the last set of rockets before they explode
deleteVehicle rocket1c;
deleteVehicle rocket2c;
deleteVehicle rocket3c;
deleteVehicle rocket4c;
deleteVehicle rocket5c;
deleteVehicle rocket6c;
deleteVehicle rocket7c;
deleteVehicle rocket8c;
sleep 5.0;
deleteVehicle smoke1;
deleteVehicle smoke2;
deleteVehicle smoke3;
};
to use it you could simply put nul = [this] execVM "jato.sqf" in the planes init line.
I prefer a trigger so you can reload the JATO system and it will also work with respawned vehicles.
Make a trigger, set it to <Activation Bluefor, Present, Repeatedly> and put this in its <Condition> line and Adjust the type of C130 you are using:
{typeof _x == "C130J"} count thislist >0
and in its <On Act> field put this:
_xhandle = [(thislist select 0)] execVM "jato.sqf"; hint "JATO ready";
Have fun
Edit: updated Code slightly, should work in MP and SP.
This post was edited by SabreD (2014-02-18 21:28, ago)
While researching this Rocket Launch thing i came across a C130 Version called Credible Sport.
So I simply had to make a very crude version of the reverse thing.
Since I'm not a professional don't expect too much, but it looks fun at night time
replace the jato.sqf code with this
/*-------------------------------------------------------------------
very simple JATO script v0.9 by Sabre[Dust]
(Jet Assisted Take Off - actually Rocket Assisted Take Off)
put this in the init line of your aircraft:
nul = [this] execVM "jato.sqf"
or even better: use a trigger. This will allow you to easily reload the JATO System.
Make a trigger, set it to <Activation Bluefor, Present, Repeatedly> and put this in its <Condition> line:
{typeof _x == "C130J"} count thislist >0
Adjust the type of C130 you are using.
In its <On Act> field put this:
_xhandle = [(thislist select 0)] execVM "jato.sqf"; hint "JATO ready";
Have Fun
-------------------------------------------------------------------*/
_aircraft = _this select 0;
/* if using a trigger to load the system, it's probably better to remove the action before adding it to prevent loading multiple actions*/
_aircraft removeAction jato;
_aircraft removeAction jasl;
jato = _aircraft addaction ["JATO","jatoaction.sqf"];
jasl = _aircraft addaction ["JASL","jaslaction.sqf"];
and here is my jasl script (jet assisted short landing - it's my working title atm)
/*-------------------------------------------------------------------
very simple JASL script v0.9 by Sabre_D
-------------------------------------------------------------------*/
_aircraft = _this select 0;
/*------------------------------------------------------
check if crew or pilot is trying to access script
use the following expression for human players only:
if(player != driver _aircraft) then {
for human players and AI use:
if(isNull driver _aircraft) then {
------------------------------------------------------*/
if(player != driver _aircraft) then {
_aircraft vehiclechat "Take your hands off the JASL System crewman! It's not a toy.";
} else {
// remove the action and initialise a few variables
_aircraft removeAction jasl;
_aircraft vehiclechat "JASL System ignition";
_speed = -5; // play with this to increase the power of the deceleration
_rockettype = "M_Maverick_AT"; // object that gets attached, default "M_Maverick_AT"
_boostcycle = 0;
while {_boostcycle < 11 } do {
sleep 0.3; // interval at which the boost happens
_boostcycle = _boostcycle+1;
_vel = velocity _aircraft; // velocity of aircraft at current time
_dir = direction _aircraft; // vector of aircraft at current time
// deceleration happens here
_aircraft setVelocity [(_vel select 0)+(sin _dir*_speed),(_vel select 1)+ (cos _dir*_speed),(_vel select 2)];
if (_boostcycle == 1) then {
// next step is attaching our _rockets
retrorocket1 = _rockettype createVehicle position _aircraft;
retrorocket2 = _rockettype createVehicle position _aircraft;
retrorocket3 = _rockettype createVehicle position _aircraft;
retrorocket4 = _rockettype createVehicle position _aircraft;
retrorocket5 = _rockettype createVehicle position _aircraft;
retrorocket6 = _rockettype createVehicle position _aircraft;
retrorocket7 = _rockettype createVehicle position _aircraft;
retrorocket8 = _rockettype createVehicle position _aircraft;
retrorocket1 attachTo [_aircraft,[1.5,9,-2.0]];
retrorocket1 setDir 200;
retrorocket2 attachTo [_aircraft,[-1.5,9,-2.0]];
retrorocket2 setDir 160;
retrorocket3 attachTo [_aircraft,[1.7,9,-2.4]];
retrorocket3 setDir 200;
retrorocket4 attachTo [_aircraft,[-1.7,9,-2.4]];
retrorocket4 setDir 160;
retrorocket5 attachTo [_aircraft,[1.9,9,-2.8]];
retrorocket5 setDir 200;
retrorocket6 attachTo [_aircraft,[-1.9,9,-2.8]];
retrorocket6 setDir 160;
retrorocket7 attachTo [_aircraft,[2.28,-0.1,-3.65]];
retrorocket7 setVectorDirAndUp [[-0.4,0.3,0.7],[0.6,0.7,0.3]];
retrorocket8 attachTo [_aircraft,[-2.28,-0.1,-3.65]];
retrorocket8 setVectorDirAndUp [[0.4,0.3,0.7],[0.6,0.7,0.3]];
// ... and _smoke generators
retrosmoke1 = "ARTY_smokeShellWhite" createVehicle position _aircraft;
retrosmoke2 = "smokeshell" createVehicle position _aircraft;
retrosmoke3 = "smokeshell" createVehicle position _aircraft;
retrosmoke1 attachTo [_aircraft,[0,0,-3]];
retrosmoke2 attachTo [_aircraft,[1.7,10.5,-2.4]];
retrosmoke3 attachTo [_aircraft,[-1.7,10.5,-2.4]];
};
};
sleep 2.0;
// clean up the last set of _rockets before they explode
_aircraft vehiclechat "JASL System dropped";
deleteVehicle retrorocket1;
deleteVehicle retrorocket2;
deleteVehicle retrorocket3;
deleteVehicle retrorocket4;
deleteVehicle retrorocket5;
deleteVehicle retrorocket6;
deleteVehicle retrorocket7;
deleteVehicle retrorocket8;
sleep 1.0;
deleteVehicle retrosmoke1;
deleteVehicle retrosmoke2;
deleteVehicle retrosmoke3;
};
All of the above and this were tested in multiplayer environment.
If 1 player and 1 AI use it at the same time it can get messy. I am not sure how to fix this reliably yet. Not 100% sure what happens if 2 players use it at the same time in it's current state.
Also works in single player as far as i can tell.
Let me know what you think of it,
This post was edited by SabreD (2014-02-18 21:29, ago)