PDA

View Full Version : Community Helicopter Initiative MOD (CHI)



.kju [PvPscene]
Apr 13 2012, 19:24
With Take On Helicopters: Rearmed (http://forums.bistudio.com/showthread.php?132627-Take-On-Arma) finally available (in a beta), I'd like to try to get this project going.

Rearmed broadens the scope of TKOH and Hinds to a very large degree and the hope is to catch the attention
of players and modders alike for the engine.
Even though the Arma 3 community alpha (http://www.bistudio.com/english/company/developers-blog/285-scanning-the-horizon-arma-3-in-2012) is already on the horizon or precisely for that reason
the engine could serve as a good learning tool and test bed for future endeavors.

Overall the initiative is to focus on the armed conflict - Hinds, and hopefully other combat choppers,
to be sent into missions in singleplayer, two crew COOP or multiplayer scenarios with ground and air assets working together.
That said with a higher popularity and increased modding, we may also see scenarios and systems useful for civilian pilots.


Now why should you care if you dislike choppers and always crash them as soon as you enter?

The reason is your buddy and people in your group might be in love with them, and they cannot wait to get a real challenge
and still be able to join the battlefield alongside with you. Or in other words your world can remain almost the same,
while your ace pilot will be a happy dude from there on. :)


For players the MOD is meant to generate, provide and offer:


New scenarios both in SP and MP
Upgraded A2/OA missions playable with TKOH choppers
Hopefully more challenging and dynamic missions
Or even dynamic missions/campaigns focused around combat chopper assignments
More realistic and challenging weapon systems
More advanced systems for radar, armament and other systems you can think of
Tweaks to the FM of existing TKOH choppers
Update and improve existing A2/OA choppers to make use of the TKOH FMs and new features



For modders the MOD is meant to create an open and loose group and at the same time dedicated team to:


realize some of the ideas above for players
explore and share new insights of modding in the TKOH engine
learn about and make use of new scripting commands (like profileNamespace)


These are some of the ideas I could think of - surely there are plenty more. :cool:


My personal dream would be story-driven/very atmospheric scenarios/campaigns that make use of radio chatter,
and other assets of old chopper games that are abandonware or where permissions can be obtained for external use.

Something along the lines of Jane's AH-64D Longbow (http://en.wikipedia.org/wiki/Jane's_AH-64D_Longbow) is what a good friend of mine would love to see.
While I am personally as (way) less hardcore and like the Comanche series (http://en.wikipedia.org/wiki/Comanche_series) back in the day. :)


With that being said this initiative, MOD and new team can only become successful with your participation in one form or another.
Therefore with this start I'd like to ask about your thoughts as well as your conditions to participate and obstacle that would prevent you to.

Thank you. :bounce3:


PS: This is not to become a request thread. :(

[EVO] Dan
Apr 13 2012, 19:31
I don't mind having a go at making some MP and SP missions to play, I already have a few drawn up (on both Taki and South Asia). I could actually make some TOH versions of some of the old [EVO] missions I made if you want. I don't have Hinds yet but should be getting it at the end of this month. (I am sure I can get [EVO] Crash to come up with some awesome ideas like he usually does)(also I don't have the beta patch, probably going to wait till the stable version is out before updating)

Sickboy
Apr 14 2012, 17:25
Congrats on the announcement and may it succeed!

Rahonavis
Sep 18 2012, 02:41
Update and improve existing A2/OA choppers to make use of the TKOH FMs and new features


I may have something to show you, guys:

http://www.youtube.com/watch?v=1AvFUXR1iWc&feature=youtu.be
Best about this is that there are no changes in the original air*.pbo files, which means, that:
one - the chopper behaves just as usual when being flown in ArmA,
two - the copywrights are obeyed.
The only issue is a horrific sound bug appearing at startup if the mod is run with A.C.E.
I've run some similar test with AH-1Z and UH-1Y (with Medium's FM) among others and they were allso succesfull, what leads me to belief, that it's possible to make literally every stock/addon ArmA chopper to fly more realisticly in ToH :D
So now all that we need are modders with means and knowledge to write dedicated FMs for those ArmA helos :)

Best regards!

LeftSkidLow
Sep 19 2012, 01:41
Nice work.

twisted
Sep 19 2012, 03:27
I may have something to show you, guys:
http://www.youtube.com/watch?v=1AvFUXR1iWc&feature=youtu.be
Best about this is that there are no changes in the original air*.pbo files, which means, that:
one - the chopper behaves just as usual when being flown in ArmA,
two - the copywrights are obeyed.
The only issue is a horrific sound bug appearing at startup if the mod is run with A.C.E.
I've run some similar test with AH-1Z and UH-1Y (with Medium's FM) among others and they were allso succesfull, what leads me to belief, that it's possible to make literally every stock/addon ArmA chopper to fly more realisticly in ToH :D
So now all that we need are modders with means and knowledge to write dedicated FMs for those ArmA helos :)

Best regards!

This can be big news. Looking eager to see more.

.kju [PvPscene]
Sep 19 2012, 05:01
well done Rahonavis :bounce3:

I assume you have ported the config definition to the A2/OA choppers?
Looks very promising - would be nice to integrate it into Rearmed. :)

From what I understand modifying the model would allow more fine-tuned tweaks to the FM at least,
and to define the interaction points. Still an interesting FM for all A2/OA choppers would be a great start!

hon0
Sep 19 2012, 12:28
So if I understand well we'll be able to fly in ARMA2 with TOH fly model?

Or with Arma2's chopper in TOH?

Rahonavis
Sep 19 2012, 12:55
well done Rahonavis :bounce3:
Thanks! :)


I assume you have ported the config definition to the A2/OA choppers?
Something like that, only I didn't modify the original configs. Instead I made a small new config, that upon activation in ToH calls for the original config (Mi-17 config in this case) and adds ToH definitions to it. This way we can keep things vanilla clean in ArmA (should one want to play it without ToH), whle enchancing A2/OA capabilities in ToH Rearmed. Other good thing is, as I understand, the copywrights are obeyed - downloading the mod won't let you to fly the Mi-8/Mi-17 unless you have the original stuff from ArmA. Last, but not least, this small mod deosn't affect just stock A2 Mi-8, but any other mod choppers, that call for it's configs, like the Mi-8 from Vilass' mod, that I fly in the video, or the H-19 that stands in front of it.


Looks very promising - would be nice to integrate it into Rearmed. :)

From what I understand modifying the model would allow more fine-tuned tweaks to the FM at least,
and to define the interaction points. Still an interesting FM for all A2/OA choppers would be a great start!
What I meant is that it would be great if someone could create dedicated FM for Hip and other A2 choppers. For now the Mi-8 has the Heavy/Merlin FM and flies like one, but ToH allows to create new FMs, so if had one featuring Mi-8 characteristics instead of Merlin's, the Hip would fly more realisticly than now. Same goes for any other A2 rotorcraft. I tried tweaking the FM myself, but the results were a disaster, so I decided to stick with just slightly modified Heavy FM for now ;)

Aside of that, I wonder if it would be possible to make those copters use some other ToH features. For instance PiP function in the rearview mirror on that Mi-8.

Anyways, here's the link to that Mi-8 mod, if you'd like to test it yourself:
http://www.mediafire.com/?395cq4937cqzwa4


Or with Arma2's chopper in TOH?
We'll be able to fly A2 choppers in ToH, just as now, only with the ToH flight modelling apllied applied to those A2 helos.

.kju [PvPscene]
Sep 20 2012, 12:40
Anyone interested in getting the TKOH FM for A2/OA choppers should try this starter pack:
http://pvpscene.armaholic.com/files/temp/TKOH_FM_4_CO_Choppers.7z

It includes:

Rahonavis sample config (a bit improved)
A template config for all A2/OA choppers
Configs for all TKOH choppers reduced to their TKOH only values


When new to this, a start would be to copy and paste the desired FM values from the TKOH choppers to the A2/OA ones.
More experienced modders could transfer also others part of the TKOH technology over. :)


@<hidden>
Are you sure your sound definitions work? I was told it required model modifications; so for A2/OA choppers we have to use the A2/OA sound system/definitions.

Rahonavis
Sep 21 2012, 00:17
I'm too much of a newbe in ArmA/ToH moding to be sure of anything ;) Anyways, those definitions are basically taken from Heavy's config, and they work with the Mi-8 fine to me (as you can hear on the vid). They allso worked with UH-1Y and AH-1Z (though I was sorta learning and experimenting with those, so I was modyfying the original configs inside air.pbo - that's why I didn't make a analogue mod for those yet).
Coming back to the Hip - sound problems may occur (at least occured to me) only if you run A.C.E. mod and my mod at the same time and it doesn't matter if you add new sound definitions, or stick with stock A2/OA/CO sounds. I've no idea, what couses that bug, but that's how it is. :confused:

.kju [PvPscene]
Sep 21 2012, 04:10
You did an excellent start there Rahonavis :)

It would be really nice to see the template config filled with the FM config data most fitting as a start.
From there people could experiment to port other features over or tweak the FM. :)

Mattressi
Sep 21 2012, 10:24
Awesome! I didn't think progress would be made on this (I thought I saw people say it was almost impossible), but that's awesome work Rahonavis!

Will the Mi-8 have the new FM even in missions/scenarios where it has already been placed? Or is it a new Mi-8 which need to be put into missions/scenarios?

Rahonavis
Sep 22 2012, 01:10
Awesome! I didn't think progress would be made on this (I thought I saw people say it was almost impossible), but that's awesome work Rahonavis!

Will the Mi-8 have the new FM even in missions/scenarios where it has already been placed? Or is it a new Mi-8 which need to be put into missions/scenarios?
It doesn't add any new chopper, only interacts with those, that are already in ArmA, so no need to do any changes in the missions to fly them with ToH flight modelling ;)


It would be really nice to see the template config filled with the FM config data most fitting as a start.
From there people could experiment to port other features over or tweak the FM. :)
OK, so it goes like that:


#define _ARMA_


//Class config.bin{
class CfgPatches
{
class your_text (1)
{
units[] = {};
weapons[] = {};
requiredVersion = 0.108;
requiredAddons[] = {"CAAir"};
};
};
class CfgVehicles
{
class AllVehicles;
class Air: AllVehicles{};
class Helicopter: Air{};
class Helicopter_Base_H: Helicopter (2)
{
class RotorLibHelicopterProperties;
};[/B][/COLOR]
class YourHelicopter_Base: Helicopter_Base_H (3)
{
class RotorLibHelicopterProperties: RotorLibHelicopterProperties
{
RTDconfig = "folder_name\flight_model_file_name.xml"; (5)
(4)
};
class SoundsExt
{
(6)
};
};
};
//};
(1) Enter a text of your choice here (i.eg. Helicopter_ToH).
(2) It's important to have this class in ToH helicopter config.
(3) This should a base class of your helicopter (i.eg. AH1_Base (for AH-1Z), UH1_Base (UH-1Y), or Mi17_base (Mi-8 and MI-17). You'll find those classes in configs of the original ArmA helicopters. Keep in mind, that in the original config it goes like:
"class YourHelicopter_Base: Helicopter"
but you need to change that in your config to:
"class YourHelicopter_Base: Helicopter_Base_H".
(4) This is where you paste the flight characteristics data, which you have to copy from a config of one of original ToH chppers.
(5) This line tells the game, where it should look for the FM file for this chopper. You can put there a path directly to the original file (i.eg. HSim\Air_US_H\Helicopters_Light\Light-GenHeli600-DesktopSim.xml), but I recommend you to copy and paste that file, together with this config to the folder of your helicopter mod and gice it a name different from the original one. This way any changes you'll make to the FM will affect only your chopper and not the stock one.
(6) This is where you paste deffinitions for ToH sound effects (like starters, APU, or touchdown sounds). Just as with flight characteristics, you have to copy these definitions from a config of one of original ToH chppers. DO NOT copy the "class Sounds" definitions, as you want purely the "class SoundsExt" ones.

If you did allright, you should end up with a config, looking like this:


#define _ARMA_


//Class config.bin{
class CfgPatches
{
class AH1Z_ToH
{
units[] = {};
weapons[] = {};
requiredVersion = 0.108;
requiredAddons[] = {"CAAir"};
};
};
class CfgVehicles
{
class AllVehicles;
class Air: AllVehicles{};
class Helicopter: Air{};
class Helicopter_Base_H: Helicopter
{
class RotorLibHelicopterProperties;
};
class AH1_Base: Helicopter_Base_H
{
class RotorLibHelicopterProperties: RotorLibHelicopterProperties
{
RTDconfig = "AH-1Z_ToH\AH1Z-GenHeli600-DesktopSim.xml";
defaultCollective = 0.75;
starterTime = 10;
throttleOffToIdle = 10;
throttleIdleToOff = 10;
throttleIdleToFull = 8;
throttleFullToIdle = 15;
autoHoverCorrection[] = {5,2.4,0};
maxTorque = 2168;
maxMainRotorStress = 130000;
maxTailRotorStress = 10000;
retreatBladeStallWarningSpeed = 71.597;
class Procedures
{
class Startup
{
class RotorBrakeOff
{
delayFromCondition = 0;
condition = "[2, _this] call (uiNamespace getVariable 'BIS_fnc_rotorBrakeOff')";
statement = "[3, _this select 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_rotorBrakeOff')";
bypass = "[4, _this] call (uiNamespace getVariable 'BIS_fnc_rotorBrakeOff')";
};
class BatteriesOn
{
delayFromCondition = 1;
condition = "[0, _this] call (uiNamespace getVariable 'BIS_fnc_batteriesOn')";
statement = "[3, _this select 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_batteriesOn')";
bypass = "[4, _this] call (uiNamespace getVariable 'BIS_fnc_batteriesOn')";
};
class StarterOn0
{
delayFromCondition = 2;
condition = "[2, _this, 0] call (uiNamespace getVariable 'BIS_fnc_starterOn1')";
statement = "[3, _this select 0, 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_starterOn1')";
bypass = "[4, _this, 0] call (uiNamespace getVariable 'BIS_fnc_starterOn1')";
};
class ThrottleIdle0
{
delayFromCondition = 1;
condition = "[2, _this, 0] call (uiNamespace getVariable 'BIS_fnc_throttleIdle1')";
statement = "[3, _this select 0, 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_throttleIdle1')";
bypass = "[4, _this, 0] call (uiNamespace getVariable 'BIS_fnc_throttleIdle1')";
};
class StarterOff0
{
delayFromCondition = 0;
condition = "[2, _this, 0] call (uiNamespace getVariable 'BIS_fnc_starterOff1')";
statement = "[3, _this select 0, 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_starterOff1')";
bypass = "[4, _this, 0] call (uiNamespace getVariable 'BIS_fnc_starterOff1')";
};
class StarterOn1
{
delayFromCondition = 2;
condition = "[2, _this, 1] call (uiNamespace getVariable 'BIS_fnc_starterOn1')";
statement = "[3, _this select 0, 1, _this select 1] call (uiNamespace getVariable 'BIS_fnc_starterOn1')";
bypass = "[4, _this, 1] call (uiNamespace getVariable 'BIS_fnc_starterOn1')";
};
class ThrottleIdle1
{
delayFromCondition = 1;
condition = "[2, _this, 1] call (uiNamespace getVariable 'BIS_fnc_throttleIdle1')";
statement = "[3, _this select 0, 1, _this select 1] call (uiNamespace getVariable 'BIS_fnc_throttleIdle1')";
bypass = "[4, _this, 1] call (uiNamespace getVariable 'BIS_fnc_throttleIdle1')";
};
class StarterOff1
{
delayFromCondition = 0;
condition = "[2, _this, 1] call (uiNamespace getVariable 'BIS_fnc_starterOff1')";
statement = "[3, _this select 0, 1, _this select 1] call (uiNamespace getVariable 'BIS_fnc_starterOff1')";
bypass = "[4, _this, 1] call (uiNamespace getVariable 'BIS_fnc_starterOff1')";
};
class WarmupStart
{
delayFromCondition = 2;
condition = "[2, _this] call (uiNamespace getVariable 'BIS_fnc_warmupStart')";
statement = "[3, _this select 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_warmupStart')";
};
class ThrottleFull0
{
delayFromCondition = 17;
condition = "[2, _this, 0] call (uiNamespace getVariable 'BIS_fnc_throttleFull1')";
statement = "[3, _this select 0, 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_throttleFull1')";
bypass = "[4, _this, 0] call (uiNamespace getVariable 'BIS_fnc_throttleFull1')";
};
class ThrottleFull1
{
delayFromCondition = 0;
condition = "[2, _this, 1] call (uiNamespace getVariable 'BIS_fnc_throttleFull1')";
statement = "[3, _this select 0, 1, _this select 1] call (uiNamespace getVariable 'BIS_fnc_throttleFull1')";
bypass = "[4, _this, 1] call (uiNamespace getVariable 'BIS_fnc_throttleFull1')";
};
class EnginesOn
{
delayFromCondition = 0;
condition = "[2, _this] call (uiNamespace getVariable 'BIS_fnc_enginesOn')";
statement = "[3, _this select 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_enginesOn')";
};
};
class Shutdown
{
class ThrottleIdle0
{
delayFromCondition = 0;
condition = "[2, _this, 0] call (uiNamespace getVariable 'BIS_fnc_throttleIdle1')";
statement = "[3, _this select 0, 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_throttleIdle1')";
bypass = "[4, _this, 0] call (uiNamespace getVariable 'BIS_fnc_throttleIdle1')";
};
class ThrottleIdle1
{
delayFromCondition = 0;
condition = "[2, _this, 1] call (uiNamespace getVariable 'BIS_fnc_throttleIdle1')";
statement = "[3, _this select 0, 1, _this select 1] call (uiNamespace getVariable 'BIS_fnc_throttleIdle1')";
bypass = "[4, _this, 1] call (uiNamespace getVariable 'BIS_fnc_throttleIdle1')";
};
class CoolDownStart
{
delayFromCondition = 0;
condition = "[2, _this] call (uiNamespace getVariable 'BIS_fnc_cooldownStart')";
statement = "[3, _this select 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_cooldownStart')";
};
class ThrottleClosed0
{
delayFromCondition = 10;
condition = "[2, _this, 0] call (uiNamespace getVariable 'BIS_fnc_throttleOff1')";
statement = "[3, _this select 0, 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_throttleOff1')";
bypass = "[4, _this, 0] call (uiNamespace getVariable 'BIS_fnc_throttleOff1')";
};
class ThrottleClosed1
{
delayFromCondition = 0;
condition = "[2, _this, 1] call (uiNamespace getVariable 'BIS_fnc_throttleOff1')";
statement = "[3, _this select 0, 1, _this select 1] call (uiNamespace getVariable 'BIS_fnc_throttleOff1')";
bypass = "[4, _this, 1] call (uiNamespace getVariable 'BIS_fnc_throttleOff1')";
};
class RotorBrakeOn
{
delayFromCondition = 0;
condition = "[2, _this] call (uiNamespace getVariable 'BIS_fnc_rotorBrakeOn')";
statement = "[3, _this select 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_rotorBrakeOn')";
bypass = "[4, _this] call (uiNamespace getVariable 'BIS_fnc_rotorBrakeOn')";
};
class RotorBrakeOff
{
delayFromCondition = 0;
condition = "[2, _this] call (uiNamespace getVariable 'BIS_fnc_rotorBrakeOff')";
statement = "[3, _this select 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_rotorBrakeOff')";
bypass = "[4, _this] call (uiNamespace getVariable 'BIS_fnc_rotorBrakeOff')";
};
class BatteriesOff
{
delayFromCondition = 0;
condition = "[0, _this] call (uiNamespace getVariable 'BIS_fnc_batteriesOff')";
statement = "[3, _this select 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_batteriesOff')";
bypass = "[4, _this] call (uiNamespace getVariable 'BIS_fnc_batteriesOff')";
};
class EnginesOff
{
delayFromCondition = 2;
condition = "[2, _this] call (uiNamespace getVariable 'BIS_fnc_enginesOff')";
statement = "[3, _this select 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_enginesOff')";
};
};
};
};
class SoundsExt
{
class Starter
{
startInt[] = {"HSim\Sounds_H\Air\Heli_Middle\medium_int_starter_start",0.0562341,1};
startExt[] = {"HSim\Sounds_H\Air\Heli_Middle\medium_ext_starter_start",1,1,200};
stopInt[] = {"HSim\Sounds_H\Air\Heli_Middle\medium_int_starter_stop",0.0562341,1};
stopExt[] = {"HSim\Sounds_H\Air\Heli_Middle\medium_ext_starter_stop",1,1,200};
damageInt[] = {"HSim\Sounds_H\Air\Noises\damage_starter_int",1,1};
damageOut[] = {"HSim\Sounds_H\Air\Noises\damage_starter_ext",1,1,300};
};
class Starter1
{
startInt[] = {"HSim\Sounds_H\Air\Heli_Middle\medium_int_starter_start_2",0.0562341,1};
startExt[] = {"HSim\Sounds_H\Air\Heli_Middle\medium_ext_starter_start_2",1,1,200};
stopInt[] = {"HSim\Sounds_H\Air\Heli_Middle\medium_int_starter_stop_2",0.0562341,1};
stopExt[] = {"HSim\Sounds_H\Air\Heli_Middle\medium_ext_starter_stop_2",1,1,200};
damageInt[] = {"HSim\Sounds_H\Air\Noises\damage_starter_int",0.1,1};
damageOut[] = {"HSim\Sounds_H\Air\Noises\damage_starter_ext",1,1,300};
};
class RotorNoiseExt
{
sound[] = {"HSim\Sounds_H\Air\Noises\swist1-efected-high",1,1,450};
frequency = 1;
volume = "(rotorSpeed factor [0.6, 0.85])";
cone[] = {0.3,1,1,0};
};
starterClickInt[] = {"HSim\Sounds_H\Air\Heli_Middle\starter_click2_int",0.00562341,1};
starterClickExt[] = {"HSim\Sounds_H\Air\Heli_Middle\starter_click2",316.228,1,600};
starterClick[] = {"starterClickInt","starterClickExt"};
idleStartInt[] = {"HSim\Sounds_H\Air\Heli_Middle\medium_int_idle_start",0.0112202,1};
idleStartExt[] = {"HSim\Sounds_H\Air\Heli_Middle\medium_ext_idle_start",1,1,600};
idleThrottle[] = {"idleStartInt","idleStartExt"};
transmissionDamageInt[] = {"HSim\Sounds_H\Air\Noises\damage_transmission_int_2",1,1};
transmissionDamageOut[] = {"HSim\Sounds_H\Air\Noises\damage_transmission_ext_2",1,1,300};
transmissionDamage[] = {"transmissionDamageInt","transmissionDamageOut"};
rotorDamageInt[] = {"HSim\Sounds_H\Air\Noises\damage_rotor_int",1,1};
rotorDamageOut[] = {"HSim\Sounds_H\Air\Noises\damage_rotor_ext",1,1,300};
rotorDamage[] = {"rotorDamageInt","rotorDamageOut"};
engineDamageInt[] = {"HSim\Sounds_H\Air\Noises\damage_engine2_int",1,1};
engineDamageOut[] = {"HSim\Sounds_H\Air\Noises\damage_engine2_ext",1,1,300};
engineDamage[] = {"engineDamageInt","engineDamageOut"};
starterDamageInt[] = {"HSim\Sounds_H\Air\Noises\damage_starter_int",1,1};
starterDamageOut[] = {"HSim\Sounds_H\Air\Noises\damage_starter_ext",1,1,300};
starterDamage[] = {"starterDamageInt","starterDamageOut"};
landingSoundInt0[] = {"HSim\Sounds_H\Air\Noises\landing1_int",1,1};
landingSoundInt1[] = {"HSim\Sounds_H\Air\Noises\landing2_int",1,1};
landingSoundInt2[] = {"HSim\Sounds_H\Air\Noises\landing3_int",1,1};
landingSoundInt[] = {"landingSoundInt0",0.33,"landingSoundInt1",0.33,"landingSoundInt2",0.333};
landingSoundOut0[] = {"HSim\Sounds_H\Air\Noises\landing1_ext",1,1,200};
landingSoundOut1[] = {"HSim\Sounds_H\Air\Noises\landing2_ext",1,1,200};
landingSoundOut2[] = {"HSim\Sounds_H\Air\Noises\landing3_ext",1,1,200};
landingSoundOut[] = {"landingSoundOut0",0.33,"landingSoundOut1",0.33,"landingSoundOut2",0.33};
};
};
};
//};
Once you have this you can put this together with the FM file, make pbo, run it just as any other mod, and voila - you can enjoy your A2 chopper with ToH FM ;)

P.S.: I hope my english was understandable enough.
P.P.S.: Bored with Hip already? I have something new for you, this time with Medium's FM :D
AH-1Z (http://www.mediafire.com/?pmbh08970xcsmdq)
UH-1Y (http://www.mediafire.com/?lf6awhs6ceenktb)

Mattressi
Sep 22 2012, 03:32
It doesn't add any new chopper, only interacts with those, that are already in ArmA, so no need to do any changes in the missions to fly them with ToH flight modelling ;)

P.S.: I hope my english was understandable enough.
P.P.S.: Bored with Hip already? I have something new for you, this time with Medium's FM :D
AH-1Z (http://www.mediafire.com/?evpda7v9dvis7te)
UH-1Y (http://www.mediafire.com/?qtnwa6pw3tdwm92)

YOU ARE AWESOME! Thank you so much for the AH-1Z and UH-1Y! This is possibly the best thing to ever happen to ToH - for me at least.

Also, your English seems perfect to me; certainly a lot better than most native speakers that I know.

Thanks again for all of this :)

Edit: The only problem that I've noticed is that the bottom HUD display (the one which shows you your speed, vertical speed, torque, etc) doesn't work on the helicopters with the new flight model. I didn't notice with the Hip, because the heavy flight model is relatively easy to fly without damaging, so I never bothered to turn the HUD on. But the medium flight model over-torques from just about anything you do with the helicopter, so I tried to turn the HUD on so I could see when I was over-torquing, but it didn't show up. Is there any way to make this show up?

Rahonavis
Sep 22 2012, 08:44
It's not something I'm sure of, but I guess, that's not possible (at least not without messing with some core A2 files). Avionics of A2 choppers are much more simplified and it seems to me, that's why they don't interact with ToH well. I may be wrong and it may actually possible, but even if so, it's something compeletelly out of my league, so can't help you, sorry. :(

Mattressi
Sep 22 2012, 09:26
It's not something I'm sure of, but I guess, that's not possible (at least not without messing with some core A2 files). Avionics of A2 choppers are much more simplified and it seems to me, that's why they don't interact with ToH well. I may be wrong and it may actually possible, but even if so, it's something compeletelly out of my league, so can't help you, sorry. :(

No need to be sorry - you've done great work! Just thought I'd ask in case there was a quick fix. It's not too big of an issue - I'll just fly less crazy lol.

[EVO] Dan
Sep 22 2012, 09:43
Great work on this, cant wait to try it out with a few mates.

Also, what do you guys think of a mi2 or ka25k? I have some low poly models in the works at the moment (for another project) that I was thinking of perhaps making into better models for TOH?

Mattressi
Sep 22 2012, 14:10
Dan;2227845']Also, what do you guys think of a mi2 or ka25k? I have some low poly models in the works at the moment (for another project) that I was thinking of perhaps making into better models for TOH?

Sounds great! I'd love to see an Mi-2. Hadn't heard of the Ka-25 before, but it looks awesome too.

Rahonavis
Sep 22 2012, 16:17
Dan;2227845']Great work on this, cant wait to try it out with a few mates.

Also, what do you guys think of a mi2 or ka25k? I have some low poly models in the works at the moment (for another project) that I was thinking of perhaps making into better models for TOH?
At this point any kind of new helicopter is vital for ToH in my opinion. Personally I agree with PvPscene's opinion about the potential of Rearmed in terms of multiplayer cooperation between chopper pilots and land troops - just imagine virtual helo squadrons cooperating with other teams/clans in mp missions - supplies, insertions, extractions, MedEvac, CAPs, C-SARs and all sorts of other missions played by real players, specialize in either air or land (virtual) combat. Imagine this type of missions played in VTE or UNS mod :yay: With ToH's approach to civil exploatation of helicopters we could allso play some natural disaster-elimination, or law - enforcement missions. This type of online coop between different forces is something practicly unseen in other helicopter simulators (yeah, regardless of some opinions from other flightsimmers ToH deserves a 'title' of a flight simulator imho, though Hind FM would use a little tweaking) and, with this new level of realism, unseen even in ArmA, not to mention some other titles (I bet, you get, which ones I mean ;) ). Honestly I feel the game has such modding potential, that if someone would make some dinos and other stuff for it, we could have a very playable Jurassic Park mod (as you can guess from my nickname, I'm a huge dino and all things-reptile fan ;) ). This JPmod is not something I'd suggest modders to focus on, but it's merely an example, that we can even do something exceeding usual usement of A2/ToH to enchance the fun of playing ;)
The only problem for now is that ToH looks to be like in some kind of stagnation. By this I mean relatively low levell of interest in this game (at least that's, how I see that). Most flightsimmers gave up on ToH and I'm not really sure, why - the game had it's teething problems, but it's mostly behind us now, and if we ever get vortex ring, it will became a full-scale helosim.
By looking on ArmA I think, that we can break this stagnation bymaking mods for ToH. In my opinion ArmA isn't a popular title just because of its realism and general playability, but allso (if not mainly) thanks to mods. It looks, like constant enchancements in the game make it constantly attractive for both 'seasoned' and new players. And I think ToH should follow same pattern.
The short way to do it is by making ArmA choppers fitted with ToH-class FM, to create a something like a basis for eventual future mods. But it is upon those mods to create wider interestment in Rearmed, so go ahead with your ideas. :D
And personally I'd go mainly with the Mi-2 for couple of resons. Firstly there were more built and they were in much wider use, than Kamov. Secondly I'm afraid, that making realistic FM for a typical Kamov coaxial helicopter is pretty impossible (I think ToH doesn't really support coaxials, so you may get an arcadish style FM with all the good sides of this rotor configuration, but without it's downsides, like clashing the rotor blades due to over-G), so I'd treat this one, as a sort of background project ;)
As for the low poly, personally I prefer relatively low-poly exterior in favour of detailed interior. Flying from the cockpit I don't get much chance to admire the overall appearence of my chopper, and keeping it low-poly allows to have better performance.

P.S.: Just for a note, I've been trying to put my Mi-1M/MU/SM-1W "Hare" model (http://s1130.photobucket.com/albums/m540/RoGaLMiG29/Modele/SM-1/) for ToH, but I kinda stuck in a dead end, so it's no go for this one (for now at least)

EDIT:
If you'd need some info on Mi-2, let me know. I have some contact with Cygan, who is technician on Polish Mi-2s and Mi-24s.

EDIT2:

YOU ARE AWESOME! Thank you so much for the AH-1Z and UH-1Y! This is possibly the best thing to ever happen to ToH - for me at least.
You may like reading these then:
AH-1Z PocketGuide (http://www.bellhelicopter.com/MungoBlobs/68/132/EN_AH-1Z_PocketGuide.pdf)
UH-1Y PocketGuide (http://www.bellhelicopter.com/MungoBlobs/87/728/EN_UH-1Y_PocketGuide.pdf)
I used those to adjust span of the skids in FMs used with A2 Viper and Venom ;)

Mattressi
Sep 22 2012, 18:07
I completely agree with everything you said Rahonavis. I've noticed the lack of life here since...well, since I came here a few months ago. I've been hoping that it was because people didn't see much point modding things into ToH, when BI were going to do most of the work for them (with the Rearmed patch). Now that Rearmed is out, I think/hope some of the modders and scenario makers will bring this game back to life. If I had any talent and time, I would contribute, but I don't have either unfortunately. I'm very thankful for everyone who makes all the great mods and scenarios for ToH (and all games, really).

Also, thanks for those pocketguides - I haven't seen them before and they've got some great info :D

[EVO] Dan
Sep 22 2012, 18:32
I am planning on doing some missions in rearmed, but it wont be until next week that I will be starting them more then likely.

.kju [PvPscene]
Sep 22 2012, 18:36
Well an easy start would be to take A2/OA missions with the player as east helicopter/plane and swap up it out with a Hind (if you have the DLC). :)
(There is also a littlebird in Hinds, isnt it?)
Or with the choppers Rahonavis is supplying here.

[EVO] Dan
Sep 22 2012, 18:40
We do have Hinds, as well as littlebirds (default ones from TOH), but I was thinking of a PMC style mission using PMC stuff, based in Chernarus.

BTW do the torque gauges on the avionics actually work with the A2 helis once you use the new FM because it is pretty useful for me to look at that?

ALso thanks for the offer of info for the mi2, will probably take you up on that once I get a bit more time to start on the project. I had a look on global security and wikipedia and saw all the variants! One amazingly versitile helicopter.

Mattressi
Sep 23 2012, 11:29
Sounds great, Dan! Honestly, I'd love for any new ToH content. I've always wished that the Littlebird mission from OA would be ported into ToH, since there's even a littlebird in ToH. But if someone ported other missions and put Hinds in, that would be awesome too. I just love flying all kinds of missions. I loved both of your previous missions, Dan. I've played them so many times now, lol.

.kju [PvPscene]
Sep 23 2012, 11:37
Well like Rahonavis shows the approach to go is to modify/enhance the actual chopper (via its config) rather than to modify missions.

Just give it a try yourself - to copy over the minimum set of FM related vales in the littlebird class from the TKOH littlebird and you are basically set. :)

[APS]Gnat
Sep 23 2012, 13:50
Awesome work !

Mattressi
Sep 23 2012, 17:08
Well like Rahonavis shows the approach to go is to modify/enhance the actual chopper (via its config) rather than to modify missions.

Just give it a try yourself - to copy over the minimum set of FM related vales in the littlebird class from the TKOH littlebird and you are basically set. :)

I would do that, but none of the OA missions show up when I run Rearmed. I assumed this was normal, but now I'm not so sure. I've definitely got OA and Arma 2 loaded with Rearmed, but I don't get any of their missions. I do get the PMC campaign though :S

Rahonavis
Sep 23 2012, 21:46
Guys! I need quick info - can you see the AH-1Z HUD after startup?

T.S.C.Plage
Sep 23 2012, 22:16
I can't even start it up. The actionmenu entry is there but it doesn't works (does nothing if selected). If placed in the air in the editor already it doesn't has a HUD.

Mattressi
Sep 24 2012, 01:27
Guys! I need quick info - can you see the AH-1Z HUD after startup?

You mean the default Arma 2 HUD? I can see that - the one with the compass up top and the fuel and "health" to the left, as well as speed and altitude.


I can't even start it up. The actionmenu entry is there but it doesn't works (does nothing if selected). If placed in the air in the editor already it doesn't has a HUD.

Try raising the collective. That's how all Arma 2 helicopters seem to be started for me.

.kju [PvPscene]
Sep 24 2012, 05:24
none of the OA missions show up when I run Rearmed

You can (re)move the the disable_xx_missions pbos in Rearmed\addons to make them available. ;)
Not all work unfortunately. The campaigns are all having problems too.

Mattressi
Sep 24 2012, 10:50
You can (re)move the the disable_xx_missions pbos in Rearmed\addons to make them available. ;)
Not all work unfortunately. The campaigns are all having problems too.

Oh ok; I assumed that if they didn't show up, it was because they weren't compatible for whatever reason. Guess I'll copy them over, then :D

Rahonavis
Sep 28 2012, 13:26
Hi folks.
I've been trying to fix the bug causing startup/shutdown procedure not working for AH-1Z and Mi-17 in certain missions, including Free Flight. I've tried everything, that came to my mind (including the most retarded and awkward ideas), but nothing worked. Hip and Viper still won't sturtup/shutdown in those mission, though these procedures work for UH-1Y, so I decided to release the most actual versions, I've made, so maybe someone with more knowledge could look on them, compere the original configs of Hip, Viper and Venom, and solve this out, somehow. I've updated previous links too.
AH-1Z (http://www.mediafire.com/?pmbh08970xcsmdq)
Mi-17 (http://www.mediafire.com/?395cq4937cqzwa4)
UH-1Y (http://www.mediafire.com/?lf6awhs6ceenktb)
Changes:
AH-1Z is now equipped with HMD unit
AH-1Z and UH-1Y now have APU

SamB
Feb 3 2013, 16:30
Hello guys. I am interested in making OA littlebird flyable with TOH flight model updated by Fred Naar (http://forums.bistudio.com/showthread.php?145171-Advanced-Flight-Model-based-on-HTR). How exactly do I do it? There are some configs that need to be modified. Where do I find them? Thanks for help!
EDIT: Where do I find Littlebird file? It seems to be absent from airx.pbo files...

SamB
Feb 5 2013, 13:35
Ok, so I wanted to do it myself. I cannot find LittleBirds PBO/ config etc. Next try would be Huey- I thought of using simly Medium heli and then run it with just one engine on. I couldn't find Hueys PBO either, but I downloaded separate mod consisting of repaint and whole PBO. I opened config, and wanted to copy values from UH-1Y published here. Now I cannot open config from UH-1Y as I get an error opening PBO with ARMA PBO VIEW (I run win8 and cpbo doesn't work for me). Could anyone please upload UH-1Y config so I can use it as a base, or if anyone has done Huey already- whole package would be even better. Thanks!
EDIT: Hello. Is there any way to hide that hud on uh-1y with toh physics mod? It is possible with "hud off" option in arma, but in toh I don't have such selection on action menu anymore.
Also, in mi-8 I get following error making engine startup impossible:
no entry "config.bin/CfgVehicles/Mi17_Base/"RotorLibHelicopterProperties.maxBatteryCharge"

SamB
Feb 14 2013, 20:32
NVM I give up after two days of trial and error. Maybe I picked a bit too complicated model to begin playing with.

[EVO] Dan
Feb 16 2013, 18:30
If you are still having trouble, maybe you could help out by doing research for various heli's that you like? might make someone more confident about taking the project on given that they have a large amount of info to go on. I think people undervalue research when it comes to getting modding going.

SamB
Feb 16 2013, 19:15
Hi Dan!
I have contacted Yura Petrov who has made incredible Blackhawk packages for Arma 2. He is doing another version with improved avionics model for TOH and upcoming Arma 3. We already have guys like Fred who have unreal knowledge on physics, all I am trying to do is apply default medium helicopters physics (if I get that first step right, then I, or someone else can modify that default physics values for more blackhawk like behaviuor). I have followed template mentioned on page2, and also examined uh-1y mod posted here. I think I have made a right config, I don't get any errors with TOH, but still it doesn't work- toh crashes when loading a map after setting a helicopter and trying to preview the mission.
So as You can see there is not much info to collect right now, it's just... I have no idea why it doesn't work...

EDIT:

I HAVE A BREAKTHROUGH! I HAVE THE HELICOPTER LOADED AND RECOGNIZING ROTORLIB! STILL CANNOT START THE ENGINE (I MEAN IT IS STARTING, CAN SELECT APU/ BATTERIES/ STARTERS/ THROTTLE ETC, SOUND WORKS GOOD AS WELL)! I AM GOING TO KEEP TRYING.

TheCrusader
Feb 17 2013, 07:48
Congratz!

All the best for your efforts mate!

Cheers
Crusader

JumpingHubert
Feb 17 2013, 08:21
Would be nice to have the AH64 with a modified light-helicopter flight model because this kind of helicopter is more agile than medium FM.

@<hidden>, SamB, kju
thanks very much for your efforts.

SamB
Feb 18 2013, 23:32
And here we go. I have managed to make an mi 17 addon use medium heli library (updated by Fred obviously). Gonna contact autor and ask for a permission to post it here tommorow!
Well, basically it's really simple if You follow template from page 2. The only problem I have is making it to work with helicopters which don't have x_base class CfgVehicles. Yura Petrov is going to work on his Blackhawks package to have improved avionics for us, so I started working on configs to see if I can make his Arma 2 birds to fly with TOH physics. The problem is, even if I get helicopter to load and use rotorlib, the engine doesn't want to start. Also every helicopter is ok when You step out of it, but when I am inside it sinks into the ground a bit (no damage taken, I recon xml has some values for contact points). Any ways I just managed to get huey to fly, I don't need much more. Still waiting for a reply from mi17 addon author, if he permits I am going to post a config here. Also guys from Vietnam Unsung mod gave me permission to make their helicopters fly, if only the mod works with TOH and have x_base in cfg, we are going to have some fun flying in Vietnam soon guys! I am so excited:D

SamB
Feb 19 2013, 11:10
Here is a modified config.cpp for Lennard's SF/Contractor Mi-17 Pack (
http://www.armaholic.com/page.php?id=18499). It uses medium helicopter xml by Fred Naar (if he ever does heavy helicopter, we might use it instead). Credits go to Lennard for his great mi17, Fred for xml, and guys from this thread for providing a template for modifications (.kju [PvPscene], Rahonavis). KNOWN ISSUES: xml's contact points are written for toh medium model, so mi17 ((along with probably most other helicopters including huey) sinks into the ground when pilot is inside while helicopter is on the ground. Hope to get that fixed eventually. On top of that it should behave like it wasn't actually wheeled frame for the same reason.
Download link:
https://www.dropbox.com/s/pikiar6v8qjblc5/configxml.zip
Ok I am having problems again- this time I can't get Unsung's slick to fly, just as with Yuras Blackhawk. I get libraries loaded, have all the toh options (apu, batteries, throttle etc), but the engine won't start. I have copied all the entries from working mods, and it's still a fail...
You can see what I am trying to do here (unsung huey config) (btw I know I didn't have to put rotorlib entries for each airframe class, but I was just trying everything here;)


// config.bin - 14:43:42 02/19/13, generated in 0.05 seconds
// Generated by unRap v1.06 by Kegetys
// Separate rootclasses: Disabled, Automatic comments: Enabled

#define TEast 0
#define TWest 1
#define TGuerrila 2
#define TCivilian 3
#define TSideUnknown 4
#define TEnemy 5
#define TFriendly 6
#define TLogic 7

#define private 0
#define protected 1
#define public 2

#define true 1
#define false 0

#define VSoft 0
#define VArmor 1
#define VAir 2

class CfgPatches {
class CSJ_UH1Slick {
units[] = {"CSJ_UH1Slick", "UNS_bullet"};
weapons[] = {};
requiredVersion = 0.1;
};
};

class CfgFactionClasses {
class UNSUNG {
displayName = UNSUNG;
priority = 1;
side = TWest;
};
};

class CfgVehicleClasses {
class UNS_AirASHC {
displayName = "Assault Support Helicopter Co";
};
};

class CfgVehicles {
class AllVehicles; // External class reference

class Air : AllVehicles {
class Sounds; // External class reference
};

class Helicopter : Air {
class Turrets {
class MainTurret; // External class reference
};
class NewTurret; // External class reference
class ViewPilot; // External class reference
class AnimationSources; // External class reference

class Sounds : Sounds {
class Engine; // External class reference
class Movement; // External class reference
};
};
class Helicopter_Base_H : Helicopter {
class RotorLibHelicopterProperties; // External class reference
};
class CSJ_UH1Slick_Base : Helicopter_Base_H {
class RotorLibHelicopterProperties : RotorLibHelicopterProperties {
RTDconfig = "csj_uh1slick\uh1h.xml";
defaultCollective = 0.75;
starterTime = 10;
throttleOffToIdle = 10;
throttleIdleToOff = 10;
throttleIdleToFull = 8;
throttleFullToIdle = 15;
hasAPU = 1;
APUOn = 5;
APUOff = 5;
autoHoverCorrection[] = {5, 2.4, 0};
maxTorque = 2168;
maxMainRotorStress = 130000;
maxTailRotorStress = 10000;
retreatBladeStallWarningSpeed = 71.597;

class Procedures {
class Startup {
class RotorBrakeOff {
delayFromCondition = 0;
condition = "[2, _this] call (uiNamespace getVariable 'BIS_fnc_rotorBrakeOff')";
statement = "[3, _this select 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_rotorBrakeOff')";
bypass = "[4, _this] call (uiNamespace getVariable 'BIS_fnc_rotorBrakeOff')";
};

class BatteriesOn {
delayFromCondition = 1;
condition = "[0, _this] call (uiNamespace getVariable 'BIS_fnc_batteriesOn')";
statement = "[3, _this select 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_batteriesOn')";
bypass = "[4, _this] call (uiNamespace getVariable 'BIS_fnc_batteriesOn')";
};

class APUOn {
delayFromCondition = 2;
condition = "[2, _this] call (uiNamespace getVariable 'BIS_fnc_APUOn')";
statement = "[3, _this select 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_APUOn')";
bypass = "[4, _this] call (uiNamespace getVariable 'BIS_fnc_APUOn')";
};

class StarterOn0 {
delayFromCondition = 2;
condition = "[2, _this, 0] call (uiNamespace getVariable 'BIS_fnc_starterOn1')";
statement = "[3, _this select 0, 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_starterOn1')";
bypass = "[4, _this, 0] call (uiNamespace getVariable 'BIS_fnc_starterOn1')";
};

class ThrottleIdle0 {
delayFromCondition = 1;
condition = "[2, _this, 0] call (uiNamespace getVariable 'BIS_fnc_throttleIdle1')";
statement = "[3, _this select 0, 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_throttleIdle1')";
bypass = "[4, _this, 0] call (uiNamespace getVariable 'BIS_fnc_throttleIdle1')";
};

class StarterOff0 {
delayFromCondition = 0;
condition = "[2, _this, 0] call (uiNamespace getVariable 'BIS_fnc_starterOff1')";
statement = "[3, _this select 0, 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_starterOff1')";
bypass = "[4, _this, 0] call (uiNamespace getVariable 'BIS_fnc_starterOff1')";
};

class APUOff {
delayFromCondition = 2;
condition = "[0, _this] call (uiNamespace getVariable 'BIS_fnc_APUoff')";
statement = "[3, _this select 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_APUoff')";
bypass = "[4, _this] call (uiNamespace getVariable 'BIS_fnc_APUoff')";
};

class WarmupStart {
delayFromCondition = 2;
condition = "[2, _this] call (uiNamespace getVariable 'BIS_fnc_warmupStart')";
statement = "[3, _this select 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_warmupStart')";
};

class ThrottleFull0 {
delayFromCondition = 17;
condition = "[2, _this, 0] call (uiNamespace getVariable 'BIS_fnc_throttleFull1')";
statement = "[3, _this select 0, 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_throttleFull1')";
bypass = "[4, _this, 0] call (uiNamespace getVariable 'BIS_fnc_throttleFull1')";
};

class EnginesOn {
delayFromCondition = 0;
condition = "[2, _this] call (uiNamespace getVariable 'BIS_fnc_enginesOn')";
statement = "[3, _this select 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_enginesOn')";
};
};

class Shutdown {
class ThrottleIdle0 {
delayFromCondition = 0;
condition = "[2, _this, 0] call (uiNamespace getVariable 'BIS_fnc_throttleIdle1')";
statement = "[3, _this select 0, 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_throttleIdle1')";
bypass = "[4, _this, 0] call (uiNamespace getVariable 'BIS_fnc_throttleIdle1')";
};

class CoolDownStart {
delayFromCondition = 0;
condition = "[2, _this] call (uiNamespace getVariable 'BIS_fnc_cooldownStart')";
statement = "[3, _this select 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_cooldownStart')";
};

class ThrottleClosed0 {
delayFromCondition = 10;
condition = "[2, _this, 0] call (uiNamespace getVariable 'BIS_fnc_throttleOff1')";
statement = "[3, _this select 0, 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_throttleOff1')";
bypass = "[4, _this, 0] call (uiNamespace getVariable 'BIS_fnc_throttleOff1')";
};


class RotorBrakeOn {
delayFromCondition = 0;
condition = "[2, _this] call (uiNamespace getVariable 'BIS_fnc_rotorBrakeOn')";
statement = "[3, _this select 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_rotorBrakeOn')";
bypass = "[4, _this] call (uiNamespace getVariable 'BIS_fnc_rotorBrakeOn')";
};

class RotorBrakeOff {
delayFromCondition = 0;
condition = "[2, _this] call (uiNamespace getVariable 'BIS_fnc_rotorBrakeOff')";
statement = "[3, _this select 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_rotorBrakeOff')";
bypass = "[4, _this] call (uiNamespace getVariable 'BIS_fnc_rotorBrakeOff')";
};

class BatteriesOff {
delayFromCondition = 0;
condition = "[0, _this] call (uiNamespace getVariable 'BIS_fnc_batteriesOff')";
statement = "[3, _this select 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_batteriesOff')";
bypass = "[4, _this] call (uiNamespace getVariable 'BIS_fnc_batteriesOff')";
};

class EnginesOff {
delayFromCondition = 2;
condition = "[2, _this] call (uiNamespace getVariable 'BIS_fnc_enginesOff')";
statement = "[3, _this select 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_enginesOff')";
};
};
};
};

class SoundsExt {
class Apu {
startInt[] = {"HSim\Sounds_H\Air\Heli_Heavy\apu-int-heavy-start", 0.00794328, 1};
startExt[] = {"HSim\Sounds_H\Air\Heli_Heavy\apu-ext-heavy-start", 1, 1, 350};
stopInt[] = {"HSim\Sounds_H\Air\Heli_Heavy\apu-int-heavy-stop", 0.00794328, 1};
stopExt[] = {"HSim\Sounds_H\Air\Heli_Heavy\apu-ext-heavy-stop", 1, 1, 350};
};

class Starter {
startInt[] = {"HSim\Sounds_H\Air\Heli_Middle\medium_int_starter_start", 0.0562341, 1};
startExt[] = {"HSim\Sounds_H\Air\Heli_Middle\medium_ext_starter_start", 1, 1, 200};
stopInt[] = {"HSim\Sounds_H\Air\Heli_Middle\medium_int_starter_stop", 0.0562341, 1};
stopExt[] = {"HSim\Sounds_H\Air\Heli_Middle\medium_ext_starter_stop", 1, 1, 200};
damageInt[] = {"HSim\Sounds_H\Air\Noises\damage_starter_int", 1, 1};
damageOut[] = {"HSim\Sounds_H\Air\Noises\damage_starter_ext", 1, 1, 300};
};

class Starter1 {
startInt[] = {"HSim\Sounds_H\Air\Heli_Middle\medium_int_starter_start_2", 0.0562341, 1};
startExt[] = {"HSim\Sounds_H\Air\Heli_Middle\medium_ext_starter_start_2", 1, 1, 200};
stopInt[] = {"HSim\Sounds_H\Air\Heli_Middle\medium_int_starter_stop_2", 0.0562341, 1};
stopExt[] = {"HSim\Sounds_H\Air\Heli_Middle\medium_ext_starter_stop_2", 1, 1, 200};
damageInt[] = {"HSim\Sounds_H\Air\Noises\damage_starter_int", 0.1, 1};
damageOut[] = {"HSim\Sounds_H\Air\Noises\damage_starter_ext", 1, 1, 300};
};

class RotorNoiseExt {
sound[] = {"HSim\Sounds_H\Air\Noises\swist1-efected-high", 1, 1, 450};
frequency = 1;
volume = "(rotorSpeed factor [0.6, 0.85])";
cone[] = {0.3, 1, 1, 0};
};
starterClickInt[] = {"HSim\Sounds_H\Air\Heli_Middle\starter_click2_int", 0.00562341, 1};
starterClickExt[] = {"HSim\Sounds_H\Air\Heli_Middle\starter_click2", 316.228, 1, 600};
starterClick[] = {"starterClickInt", "starterClickExt"};
idleStartInt[] = {"HSim\Sounds_H\Air\Heli_Middle\medium_int_idle_start", 0.0112202, 1};
idleStartExt[] = {"HSim\Sounds_H\Air\Heli_Middle\medium_ext_idle_start", 1, 1, 600};
idleThrottle[] = {"idleStartInt", "idleStartExt"};
transmissionDamageInt[] = {"HSim\Sounds_H\Air\Noises\damage_transmission_int_2", 1, 1};
transmissionDamageOut[] = {"HSim\Sounds_H\Air\Noises\damage_transmission_ext_2", 1, 1, 300};
transmissionDamage[] = {"transmissionDamageInt", "transmissionDamageOut"};
rotorDamageInt[] = {"HSim\Sounds_H\Air\Noises\damage_rotor_int", 1, 1};
rotorDamageOut[] = {"HSim\Sounds_H\Air\Noises\damage_rotor_ext", 1, 1, 300};
rotorDamage[] = {"rotorDamageInt", "rotorDamageOut"};
engineDamageInt[] = {"HSim\Sounds_H\Air\Noises\damage_engine2_int", 1, 1};
engineDamageOut[] = {"HSim\Sounds_H\Air\Noises\damage_engine2_ext", 1, 1, 300};
engineDamage[] = {"engineDamageInt", "engineDamageOut"};
starterDamageInt[] = {"HSim\Sounds_H\Air\Noises\damage_starter_int", 1, 1};
starterDamageOut[] = {"HSim\Sounds_H\Air\Noises\damage_starter_ext", 1, 1, 300};
starterDamage[] = {"starterDamageInt", "starterDamageOut"};
landingSoundInt0[] = {"HSim\Sounds_H\Air\Noises\landing1_int", 1, 1};
landingSoundInt1[] = {"HSim\Sounds_H\Air\Noises\landing2_int", 1, 1};
landingSoundInt2[] = {"HSim\Sounds_H\Air\Noises\landing3_int", 1, 1};
landingSoundInt[] = {"landingSoundInt0", 0.33, "landingSoundInt1", 0.33, "landingSoundInt2", 0.333};
landingSoundOut0[] = {"HSim\Sounds_H\Air\Noises\landing1_ext", 1, 1, 200};
landingSoundOut1[] = {"HSim\Sounds_H\Air\Noises\landing2_ext", 1, 1, 200};
landingSoundOut2[] = {"HSim\Sounds_H\Air\Noises\landing3_ext", 1, 1, 200};
landingSoundOut[] = {"landingSoundOut0", 0.33, "landingSoundOut1", 0.33, "landingSoundOut2", 0.33};
};
destrType = "DestructWreck";
scope = public;
side = TWest;
faction = UNSUNG;
hiddenSelections[] = {"0", "1", "2", "3", "4", "5", "6", "7", "num1", "num2", "num3", "num4", "num5", "sigNose", "sigNoseSmall", "sigCDoor", "sigAOband", "sigAO", "sigPdoor", "zasleh", "sig1_lau", "sig2_lau", "22"};
model = "\CSJ_UH1Slick\CSJ_UH1Slick.p3d";
displayName = "UH1 Slick";
mapSize = 14;
vehicleClass = "UNS_AirASHC";
picture = "\CSJ_UH1Slick\csjicons\slick2pic.paa";
Icon = "\CSJ_UH1Slick\csjicons\uh1icon.paa";
driverAction = "UH60_Pilot";
maxSpeed = 210; // max speed on level road, km/h
nameSound = "chopper";
crew = "uns_pilot1";
armor = 60;
damageResistance = 0.00244;
gunnerCanSee = 2+8+16;
driverCanSee = 2+8+16;
enableGPS = 0;
gunnerUsesPilotView = true;
mainRotorSpeed = 1;
backRotorSpeed = -1;
transportSoldier = 13;
cargoAction[] = {"UH60_Cargo02", "UH60_Cargo02", "UH60_Cargo02", "UH60_Cargo02", "UH60_Cargo02", "UH60_Cargo02", "UH60_Cargo02", "UH60_Cargo02", "MH6_Cargo03", "MH6_Cargo02", "MH6_Cargo03", "MH6_Cargo02", "UH60_Cargo02"};
getInAction = "GetInLOW";
getOutAction = "GetOutLOW";
transportAmmo = 0;
supplyRadius = 2.5;
initCargoAngleY = 10;
minCargoAngleY = -60;
maxCargoAngleY = 120;
type = VAir;
formationX = 10;
formationZ = 10;
formationY = 0;

// threat (VSoft, VArmor, VAir), how threatening vehicle is to unit types
threat[] = {0.3, 1, 0.4};

extCameraPosition[] = {0, 0, -11};
driverCompartments = "Compartment1";
cargoCompartments[] = {"Compartment2"};
typicalCargo[] = {"USMC_Soldier_Pilot", "USMC_Soldier_Pilot", "USMC_Soldier_Pilot"};
weapons[] = {"ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"};
magazines[] = {};
transportMaxMagazines = 150;
transportMaxWeapons = 30;
forceHideDriver = true;
castDriverShadow = true;
castCargoShadow = true;
soundDammage[] = {"ca\sounds\Air\Mi17\int\alarm_loop1", 0.001, 1};
soundEngineOnInt[] = {"\CSJ_UH1Slick\sound\CSJ_startup.wss", 0.5, 1};
soundEngineOnExt[] = {"\CSJ_UH1Slick\sound\CSJ_startup.wss", 0.7, 1, 300};
soundEngineOffInt[] = {"\CSJ_UH1Slick\sound\uh1_shutdown_out.wss", 1, 1};
soundEngineOffExt[] = {"\CSJ_UH1Slick\sound\uh1_shutdown_out.wss", 1, 1, 300};

class Sounds {
class Engine {
sound[] = {"\CSJ_UH1Slick\sound\uh1hueyrealv4", 1, 1.0, 1800};
frequency = "rotorSpeed*0.98";
volume = "camPos*(0 max (rotorSpeed - 0.5))";
};

class RotorLowOut {
sound[] = {"\CSJ_UH1Slick\sound\csj_rotor3", 4, 1.0, 3000};
frequency = "rotorSpeed*0.98";
volume = "camPos*(0 max (rotorSpeed+0.05))";
cone[] = {1.6, 3.14, 2, 0.95};
};

class RotorHighOut {
sound[] = {"\CSJ_UH1Slick\sound\csj_rotor", 4, 1.0, 3000};
frequency = "rotorSpeed*0.98";
volume = "camPos*(0 max (rotorSpeed+0.05))";
cone[] = {1.6, 3.14, 2, 0.95};
};

class EngineIn {
sound[] = {"\CSJ_UH1Slick\sound\Uh1_rotors_int", 4, 5};
frequency = "rotorSpeed";
volume = "(1-camPos)*((rotorSpeed-0.75)*4.5)";
};

class RotorLowIn {
sound[] = {"\CSJ_UH1Slick\sound\CSJ_Rotor", 2, 1};
frequency = "rotorSpeed";
volume = "(1-camPos)*(0max(rotorSpeed-0.05))";
};

class RotorHighIn {
sound[] = {"\CSJ_UH1Slick\sound\Uh1_rotors_int", 3, 1};
frequency = "rotorSpeed";
volume = "(1-camPos)*3*(rotorThrust-0.3)";
};
};

class MarkerLights {
class Cabin {
name = "cab";
color[] = {0.08, 0, 0, 0.01};
ambient[] = {0.068, 0, 0, 0.1};
brightness = 0.005;
blinking = false;
};
};

class Reflectors {
class Left {
color[] = {0.8, 0.8, 1.0, 1.0};
ambient[] = {0.07, 0.07, 0.07, 1.0};
position = "L svetlo";
direction = "konec L svetla";
hitpoint = "L svetlo";
selection = "L svetlo";
size = 1;
brightness = 1.0;
};
};

// internal camera viewing limitations
class ViewPilot : ViewPilot {
initFov = 1.2;
minFov = 0.3;
maxFov = 1.2;
initAngleX = 10;
minAngleX = -45;
maxAngleX = 80;
initAngleY = 0;
minAngleY = -125;
maxAngleY = 125;
};

class Library {
libTextDesc = "CSJ_UH1Slick";
};
dammageHalf[] = {};
dammageFull[] = {};

class Damage {
tex[] = {};
mat[] = {};
};
damperSize = 4; // max. damper amplitude
damperForce = 0.005; // larger number more stiffness dampers
damperDamping = 0.005; // larger number less movement in dampers

class AnimationSources : AnimationSources {
class FrontDamper {
source = "damper";
selection = "dampers";
};

class BackDamper {
source = "damper";
selection = "damper_rear";
};

class pilotdoor {
source = "user";
animPeriod = 0.5;
initPhase = 0;
};

class copilotdoor {
source = "user";
animPeriod = 0.5;
initPhase = 0;
};

class reflexgun {
source = "user";
animPeriod = 1.5;
initPhase = 0;
};

class reflexpilot {
source = "user";
animPeriod = 1.5;
initPhase = 0;
};

class wiperR {
source = "user";
animPeriod = 1;
};

class wiperL {
source = "user";
animPeriod = 1;
};
};

class Turrets : Turrets {
class LEFT_TURRET : MainTurret {
body = LEFT_TURRET;
gun = LEFT_GUN;
animationSourceBody = LEFT_TURRET;
animationSourceGun = LEFT_GUN;
minElev = -75;
maxElev = 45;
initElev = 0;
minTurn = -5;
maxTurn = 183;
initTurn = 90;
soundServo[] = {"", db-40, 1.0};
animationSourceHatch = "";
stabilizedInAxes = "StabilizedInAxesNone";
gunBeg = LHGUN_START; // endpoint of the gun
gunEnd = LHGUN_END; // chamber of the gun
weapons[] = {"uns_m60_mounted"};
magazines[] = {"uns_m60_mounted_500rnd", "uns_m60_mounted_500rnd", "uns_m60_mounted_500rnd", "uns_m60_mounted_500rnd"};
gunnerName = "Door Gunner";
gunnerOpticsModel = "\ca\weapons\optika_empty";
gunnerOutOpticsShowCursor = 1;
gunnerOpticsShowCursor = 1;
gunnerAction = "UH60_Gunner";
gunnerInAction = "UH60_Gunner";
gunnerGetInAction = "GetInLOW";
gunnerGetOutAction = "GetOutLOW";
commanding = -2;
selectionFireAnim = "zasleh_LH";
primaryGunner = 1;
memoryPointsGetInGunner = "pos gunner";
memoryPointsGetInGunnerDir = "pos gunner dir";
memoryPointGun = "machinegun_LH";
memoryPointGunnerOptics = "gunnerview_LH";
crew = "uns_pilot2";

class ViewOptics {
initAngleX = 0;
minAngleX = -30;
maxAngleX = 30;
initAngleY = 0;
minAngleY = -100;
maxAngleY = 100;
initFov = 0.7;
minFov = 0.25;
maxFov = 1.1;
};
gunnerCompartments = "Compartment2";
};

class RightDoor_Gun : LEFT_TURRET {
body = RIGHT_TURRET;
gun = RIGHT_GUN;
animationSourceBody = RIGHT_TURRET;
animationSourceGun = RIGHT_GUN;
stabilizedInAxes = "StabilizedInAxesNone";
selectionFireAnim = "zasleh_RH";
proxyIndex = 2;
gunnerName = "Crew Chief";
commanding = -3;
minElev = -75;
maxElev = 45;
initElev = 0;
minTurn = -183;
maxTurn = 5;
initTurn = -90;
crew = "uns_pilot2";
weapons[] = {"uns_m60_mounted_2"};
magazines[] = {"uns_m60_mounted_500rnd", "uns_m60_mounted_500rnd", "uns_m60_mounted_500rnd", "uns_m60_mounted_500rnd"};
gunBeg = RHGUN_START; // endpoint of the gun
gunEnd = RHGUN_END; // chamber of the gun
primaryGunner = 0;
memoryPointsGetInGunner = "pos gunner_2";
memoryPointsGetInGunnerDir = "pos gunner dir_2";
memoryPointGun = "machinegun_RH";
memoryPointGunnerOptics = "gunnerview_RH";
};

class CoPilotTurret : LEFT_TURRET {
stabilizedInAxes = "StabilizedInAxesBoth";
proxyIndex = 3;
gunnerName = "Co Pilot";
gunnerAction = "UH60_Pilot";
gunnerInAction = "UH60_Gunner02";
body = "CoPilot_TURRET";
gun = "CoPilot_GUN";
animationSourceBody = "CoPilot_TURRET";
animationSourceGun = "CoPilot_GUN";
outGunnerMayFire = true;
gunBeg = ""; // endpoint of the gun
gunEnd = ""; // chamber of the gun
memoryPointGun = "";
commanding = -1;
weapons[] = {};
magazines[] = {};
primaryGunner = 0;
minElev = -80;
maxElev = 25;
initElev = 0;
minTurn = -180;
maxTurn = 180;
initTurn = 0;
gunnerOpticsModel = "\ca\weapons\optika_empty";
gunnerForceOptics = false;
gunnerOpticsShowCursor = 0;

class ViewOptics {
initAngleX = 0;
minAngleX = -30;
maxAngleX = 30;
initAngleY = 0;
minAngleY = -100;
maxAngleY = 100;
initFov = 0.8;
minFov = 0.0083;
maxFov = 0.8;
};
gunnerCompartments = "Compartment2";
startEngine = false;
soundServo[] = {"", db-40, 1.0};
memoryPointsGetInGunner = "pos co_pilot";
memoryPointsGetInGunnerDir = "pos co_pilot dir";
memoryPointGunnerOptics = "gunnerview_CP";
selectionFireAnim = "";
castGunnerShadow = true;
viewGunnerShadow = true;
};
};

class UserActions {
class openpilotdoor {
displayName = "Open pilot door";
position = "osa pilotdoor";
onlyforplayer = 0;
animPeriod = 1;
radius = 2;
condition = "this animationPhase ""pilotdoor"" < 0.5 and (getpos this select 2)<=3";
statement = "this animate [""pilotdoor"", 1] ";
};

class closepilotdoor {
displayName = "Close pilot door";
position = "osa pilotdoor";
onlyforplayer = 0;
animPeriod = 1;
radius = 2;
condition = "this animationPhase ""pilotdoor"" > 0.5";
statement = "this animate [""pilotdoor"", 0] ";
};

class openCopilotdoor {
displayName = "Open copilot door";
position = "osa copilotdoor";
onlyforplayer = 0;
animPeriod = 1;
radius = 2;
condition = "this animationPhase ""copilotdoor"" < 0.5 and (getpos this select 2)<=3";
statement = "this animate [""copilotdoor"", 1] ";
};

class closeCopilotdoor {
displayName = "Close copilot door";
position = "osa copilotdoor";
onlyforplayer = 0;
animPeriod = 1;
radius = 2;
condition = "this animationPhase ""copilotdoor"" > 0.5";
statement = "this animate [""copilotdoor"", 0] ";
};

class PopSmokeP {
displayName = "Pop smoke";
position = "cockpit";
onlyforplayer = 0;
radius = 4;
condition = "((getpos this) select 2) >=-0";
statement = "this execVM ""\CSJ_UH1Slick\scripts\PopSmoke.sqf"" ";
};

class ThroGrenade {
displayName = "Throw grenade";
position = "cockpit";
onlyforplayer = 0;
radius = 4;
condition = "((getpos this) select 2) >15";
statement = "this execVM ""\CSJ_UH1Slick\scripts\ThroGrenade.sqf"" ";
};
};

class EventHandlers {
init = "_this execVM ""\CSJ_UH1slick\scripts\csjidnumH.sqf"";";
fired = "_this exec ""\CSJ_UH1slick\scripts\mgcs.sqf""";
engine = "if (_this Select 1) then {_this execVM ""\CSJ_UH1Slick\scripts\wipers.sqf"";";
};

class TransportMagazines {
class _xx_uns_ithaca37mag {
magazine = "uns_ithaca37mag";
count = 15;
};

class _xx_uns_car15mag_20 {
magazine = "uns_car15mag_20";
count = 45;
};
};

class TransportWeapons {
class _xx_uns_ithaca37 {
weapon = "uns_ithaca37";
count = 1;
};

class _xx_uns_car15e2_20 {
weapon = "uns_car15e2_20";
count = 3;
};
};
};

class CSJ_UH1med : CSJ_UH1Slick_Base {
class RotorLibHelicopterProperties : RotorLibHelicopterProperties {
RTDconfig = "csj_uh1slick\uh1h.xml";
defaultCollective = 0.75;
starterTime = 10;
throttleOffToIdle = 10;
throttleIdleToOff = 10;
throttleIdleToFull = 8;
throttleFullToIdle = 15;
hasAPU = 1;
APUOn = 5;
APUOff = 5;
autoHoverCorrection[] = {5, 2.4, 0};
maxTorque = 2168;
maxMainRotorStress = 130000;
maxTailRotorStress = 10000;
retreatBladeStallWarningSpeed = 71.597;

class Procedures {
class Startup {
class RotorBrakeOff {
delayFromCondition = 0;
condition = "[2, _this] call (uiNamespace getVariable 'BIS_fnc_rotorBrakeOff')";
statement = "[3, _this select 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_rotorBrakeOff')";
bypass = "[4, _this] call (uiNamespace getVariable 'BIS_fnc_rotorBrakeOff')";
};

class BatteriesOn {
delayFromCondition = 1;
condition = "[0, _this] call (uiNamespace getVariable 'BIS_fnc_batteriesOn')";
statement = "[3, _this select 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_batteriesOn')";
bypass = "[4, _this] call (uiNamespace getVariable 'BIS_fnc_batteriesOn')";
};

class APUOn {
delayFromCondition = 2;
condition = "[2, _this] call (uiNamespace getVariable 'BIS_fnc_APUOn')";
statement = "[3, _this select 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_APUOn')";
bypass = "[4, _this] call (uiNamespace getVariable 'BIS_fnc_APUOn')";
};

class StarterOn0 {
delayFromCondition = 2;
condition = "[2, _this, 0] call (uiNamespace getVariable 'BIS_fnc_starterOn1')";
statement = "[3, _this select 0, 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_starterOn1')";
bypass = "[4, _this, 0] call (uiNamespace getVariable 'BIS_fnc_starterOn1')";
};

class ThrottleIdle0 {
delayFromCondition = 1;
condition = "[2, _this, 0] call (uiNamespace getVariable 'BIS_fnc_throttleIdle1')";
statement = "[3, _this select 0, 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_throttleIdle1')";
bypass = "[4, _this, 0] call (uiNamespace getVariable 'BIS_fnc_throttleIdle1')";
};

class StarterOff0 {
delayFromCondition = 0;
condition = "[2, _this, 0] call (uiNamespace getVariable 'BIS_fnc_starterOff1')";
statement = "[3, _this select 0, 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_starterOff1')";
bypass = "[4, _this, 0] call (uiNamespace getVariable 'BIS_fnc_starterOff1')";
};

class APUOff {
delayFromCondition = 2;
condition = "[0, _this] call (uiNamespace getVariable 'BIS_fnc_APUoff')";
statement = "[3, _this select 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_APUoff')";
bypass = "[4, _this] call (uiNamespace getVariable 'BIS_fnc_APUoff')";
};

class WarmupStart {
delayFromCondition = 2;
condition = "[2, _this] call (uiNamespace getVariable 'BIS_fnc_warmupStart')";
statement = "[3, _this select 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_warmupStart')";
};

class ThrottleFull0 {
delayFromCondition = 17;
condition = "[2, _this, 0] call (uiNamespace getVariable 'BIS_fnc_throttleFull1')";
statement = "[3, _this select 0, 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_throttleFull1')";
bypass = "[4, _this, 0] call (uiNamespace getVariable 'BIS_fnc_throttleFull1')";
};

class EnginesOn {
delayFromCondition = 0;
condition = "[2, _this] call (uiNamespace getVariable 'BIS_fnc_enginesOn')";
statement = "[3, _this select 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_enginesOn')";
};
};

class Shutdown {
class ThrottleIdle0 {
delayFromCondition = 0;
condition = "[2, _this, 0] call (uiNamespace getVariable 'BIS_fnc_throttleIdle1')";
statement = "[3, _this select 0, 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_throttleIdle1')";
bypass = "[4, _this, 0] call (uiNamespace getVariable 'BIS_fnc_throttleIdle1')";
};

class CoolDownStart {
delayFromCondition = 0;
condition = "[2, _this] call (uiNamespace getVariable 'BIS_fnc_cooldownStart')";
statement = "[3, _this select 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_cooldownStart')";
};

class ThrottleClosed0 {
delayFromCondition = 10;
condition = "[2, _this, 0] call (uiNamespace getVariable 'BIS_fnc_throttleOff1')";
statement = "[3, _this select 0, 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_throttleOff1')";
bypass = "[4, _this, 0] call (uiNamespace getVariable 'BIS_fnc_throttleOff1')";
};


class RotorBrakeOn {
delayFromCondition = 0;
condition = "[2, _this] call (uiNamespace getVariable 'BIS_fnc_rotorBrakeOn')";
statement = "[3, _this select 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_rotorBrakeOn')";
bypass = "[4, _this] call (uiNamespace getVariable 'BIS_fnc_rotorBrakeOn')";
};

class RotorBrakeOff {
delayFromCondition = 0;
condition = "[2, _this] call (uiNamespace getVariable 'BIS_fnc_rotorBrakeOff')";
statement = "[3, _this select 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_rotorBrakeOff')";
bypass = "[4, _this] call (uiNamespace getVariable 'BIS_fnc_rotorBrakeOff')";
};

class BatteriesOff {
delayFromCondition = 0;
condition = "[0, _this] call (uiNamespace getVariable 'BIS_fnc_batteriesOff')";
statement = "[3, _this select 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_batteriesOff')";
bypass = "[4, _this] call (uiNamespace getVariable 'BIS_fnc_batteriesOff')";
};

class EnginesOff {
delayFromCondition = 2;
condition = "[2, _this] call (uiNamespace getVariable 'BIS_fnc_enginesOff')";
statement = "[3, _this select 0, _this select 1] call (uiNamespace getVariable 'BIS_fnc_enginesOff')";
};
};
};
};

class SoundsExt {
class Apu {
startInt[] = {"HSim\Sounds_H\Air\Heli_Heavy\apu-int-heavy-start", 0.00794328, 1};
startExt[] = {"HSim\Sounds_H\Air\Heli_Heavy\apu-ext-heavy-start", 1, 1, 350};
stopInt[] = {"HSim\Sounds_H\Air\Heli_Heavy\apu-int-heavy-stop", 0.00794328, 1};
stopExt[] = {"HSim\Sounds_H\Air\Heli_Heavy\apu-ext-heavy-stop", 1, 1, 350};
};

class Starter {
startInt[] = {"HSim\Sounds_H\Air\Heli_Middle\medium_int_starter_start", 0.0562341, 1};
startExt[] = {"HSim\Sounds_H\Air\Heli_Middle\medium_ext_starter_start", 1, 1, 200};
stopInt[] = {"HSim\Sounds_H\Air\Heli_Middle\medium_int_starter_stop", 0.0562341, 1};
stopExt[] = {"HSim\Sounds_H\Air\Heli_Middle\medium_ext_starter_stop", 1, 1, 200};
damageInt[] = {"HSim\Sounds_H\Air\Noises\damage_starter_int", 1, 1};
damageOut[] = {"HSim\Sounds_H\Air\Noises\damage_starter_ext", 1, 1, 300};
};

class Starter1 {
startInt[] = {"HSim\Sounds_H\Air\Heli_Middle\medium_int_starter_start_2", 0.0562341, 1};
startExt[] = {"HSim\Sounds_H\Air\Heli_Middle\medium_ext_starter_start_2", 1, 1, 200};
stopInt[] = {"HSim\Sounds_H\Air\Heli_Middle\medium_int_starter_stop_2", 0.0562341, 1};
stopExt[] = {"HSim\Sounds_H\Air\Heli_Middle\medium_ext_starter_stop_2", 1, 1, 200};
damageInt[] = {"HSim\Sounds_H\Air\Noises\damage_starter_int", 0.1, 1};
damageOut[] = {"HSim\Sounds_H\Air\Noises\damage_starter_ext", 1, 1, 300};
};

class RotorNoiseExt {
sound[] = {"HSim\Sounds_H\Air\Noises\swist1-efected-high", 1, 1, 450};
frequency = 1;
volume = "(rotorSpeed factor [0.6, 0.85])";
cone[] = {0.3, 1, 1, 0};
};
starterClickInt[] = {"HSim\Sounds_H\Air\Heli_Middle\starter_click2_int", 0.00562341, 1};
starterClickExt[] = {"HSim\Sounds_H\Air\Heli_Middle\starter_click2", 316.228, 1, 600};
starterClick[] = {"starterClickInt", "starterClickExt"};
idleStartInt[] = {"HSim\Sounds_H\Air\Heli_Middle\medium_int_idle_start", 0.0112202, 1};
idleStartExt[] = {"HSim\Sounds_H\Air\Heli_Middle\medium_ext_idle_start", 1, 1, 600};
idleThrottle[] = {"idleStartInt", "idleStartExt"};
transmissionDamageInt[] = {"HSim\Sounds_H\Air\Noises\damage_transmission_int_2", 1, 1};
transmissionDamageOut[] = {"HSim\Sounds_H\Air\Noises\damage_transmission_ext_2", 1, 1, 300};
transmissionDamage[] = {"transmissionDamageInt", "transmissionDamageOut"};
rotorDamageInt[] = {"HSim\Sounds_H\Air\Noises\damage_rotor_int", 1, 1};
rotorDamageOut[] = {"HSim\Sounds_H\Air\Noises\damage_rotor_ext", 1, 1, 300};
rotorDamage[] = {"rotorDamageInt", "rotorDamageOut"};
engineDamageInt[] = {"HSim\Sounds_H\Air\Noises\damage_engine2_int", 1, 1};
engineDamageOut[] = {"HSim\Sounds_H\Air\Noises\damage_engine2_ext", 1, 1, 300};
engineDamage[] = {"engineDamageInt", "engineDamageOut"};
starterDamageInt[] = {"HSim\Sounds_H\Air\Noises\damage_starter_int", 1, 1};
starterDamageOut[] = {"HSim\Sounds_H\Air\Noises\damage_starter_ext", 1, 1, 300};
starterDamage[] = {"starterDamageInt", "starterDamageOut"};
landingSoundInt0[] = {"HSim\Sounds_H\Air\Noises\landing1_int", 1, 1};
landingSoundInt1[] = {"HSim\Sounds_H\Air\Noises\landing2_int", 1, 1};
landingSoundInt2[] = {"HSim\Sounds_H\Air\Noises\landing3_int", 1, 1};
landingSoundInt[] = {"landingSoundInt0", 0.33, "landingSoundInt1", 0.33, "landingSoundInt2", 0.333};
landingSoundOut0[] = {"HSim\Sounds_H\Air\Noises\landing1_ext", 1, 1, 200};
landingSoundOut1[] = {"HSim\Sounds_H\Air\Noises\landing2_ext", 1, 1, 200};
landingSoundOut2[] = {"HSim\Sounds_H\Air\Noises\landing3_ext", 1, 1, 200};
landingSoundOut[] = {"landingSoundOut0", 0.33, "landingSoundOut1", 0.33, "landingSoundOut2", 0.33};
};
destrType = "DestructWreck";
scope = public;
side = TWest;
faction = UNSUNG;
hiddenSelections[] = {"0", "1", "2", "3", "4", "5", "6", "7", "num1", "num2", "num3", "num4", "num5", "sigNose", "sigNoseSmall", "sigCDoor", "sigAOband", "sigAO", "sigPdoor", "zasleh", "sig1_lau", "sig2_lau", "22"};
model = "\CSJ_UH1Slick\CSJ_UH1med.p3d";
displayName = "UH1 MedEvac";
mapSize = 14;
hideWeaponsCargo = true;
picture = "\CSJ_UH1Slick\csjicons\USAdustoff.paa";
cargoAction[] = {"BMP2_Cargo04", "BMP2_Cargo04", "BMP2_Cargo04", "Landrover_Cargo02", "Landrover_Cargo02", "Landrover_Cargo02", "Truck_Cargo01", "Truck_Cargo01", "Truck_Cargo01"};
transportSoldier = 9;

// threat (VSoft, VArmor, VAir), how threatening vehicle is to unit types
threat[] = {0.3, 0.5, 0.4};

extCameraPosition[] = {0, 0, -11};
cargoIsCoDriver[] = {0};
weapons[] = {"ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"};
magazines[] = {};
attendant = true;

class Library {
libTextDesc = "CSJ_UH1med";
};

class UserActions {
class PopSmokeP {
displayName = "Pop smoke";
position = "cockpit";
onlyforplayer = 0;
radius = 4;
condition = "((getpos this) select 2) >=-0";
statement = "this execVM ""\CSJ_UH1Slick\scripts\PopSmoke.sqf"" ";
};

class ThroGrenade {
displayName = "Throw grenade";
position = "cockpit";
onlyforplayer = 0;
radius = 4;
condition = "((getpos this) select 2) >15";
statement = "this execVM ""\CSJ_UH1Slick\scripts\ThroGrenade.sqf"" ";
};
};

class Turrets : Turrets {
class LEFT_TURRET : NewTurret {
startEngine = false;
outGunnerMayFire = false;
commanding = -1;
gunnerName = "Medic";
body = LEFT_TURRET;
gun = LEFT_GUN;
animationSourceBody = LEFT_TURRET;
animationSourceGun = LEFT_GUN;
animationSourceHatch = "";
gunBeg = LHGUN_START; // endpoint of the gun
gunEnd = LHGUN_END; // chamber of the gun
memoryPointsGetInGunner = "pos gunner";
memoryPointsGetInGunnerDir = "pos gunner dir";
memoryPointGun = "machinegun_LH";
memoryPointGunnerOptics = "gunnerview_LH";
selectionFireAnim = "";
crew = "uns_pilot2";
gunnerAction = "D30_Cargo";
gunnerInAction = "UH60_Gunner";
weapons[] = {};
magazines[] = {};
minElev = -75;
maxElev = 65;
initElev = 0;
minTurn = -183;
maxTurn = -2;
initTurn = -130;

class ViewOptics {
initAngleX = 0;
minAngleX = -40;
maxAngleX = 40;
initAngleY = 0;
minAngleY = -100;
maxAngleY = 100;
initFov = 0.6;
minFov = 0.6;
maxFov = 0.5;
};
gunnerOpticsModel = "\ca\weapons\optika_empty";
gunnerForceOptics = false;
};

class RightDoor_Gun : LEFT_TURRET {
body = RIGHT_TURRET;
gun = RIGHT_GUN;
animationSourceBody = RIGHT_TURRET;
animationSourceGun = RIGHT_GUN;
animationSourceHatch = "";
gunBeg = RHGUN_START; // endpoint of the gun
gunEnd = RHGUN_END; // chamber of the gun
gunnerAction = "Landrover_Cargo01";
gunnerInAction = "UH60_Gunner";
crew = "uns_pilot2";
selectionFireAnim = "";
proxyIndex = 2;
gunnerName = "Crew Chief";
commanding = -2;
minElev = -75;
maxElev = 45;
initElev = 0;
minTurn = -183;
maxTurn = 5;
initTurn = -90;
weapons[] = {};
magazines[] = {};
primary = false;
memoryPointsGetInGunner = "pos gunner_2";
memoryPointsGetInGunnerDir = "pos gunner dir_2";
memoryPointGun = "machinegun_RH";
memoryPointGunnerOptics = "gunnerview_RH";
};

class CoPilot_Gun : LEFT_TURRET {
body = "CoPilot_TURRET";
gun = "CoPilot_GUN";
animationSourceBody = "CoPilot_TURRET";
animationSourceGun = "CoPilot_GUN";
animationSourceHatch = "";
gunBeg = ""; // endpoint of the gun
gunEnd = ""; // chamber of the gun
selectionFireAnim = "";
proxyIndex = 3;
gunnerName = "Co Pilot";
commanding = -3;
minElev = -75;
maxElev = 45;
initElev = 0;
minTurn = -140;
maxTurn = 140;
initTurn = 0;
gunnerAction = "UH60_Pilot";
weapons[] = {};
magazines[] = {};
primary = false;
memoryPointsGetInGunner = "pos co_pilot";
memoryPointsGetInGunnerDir = "pos co_pilot dir";
memoryPointGun = "";
memoryPointGunnerOptics = "";
};
};
};
class TargetBase; // External class reference

class UNS_bullet : TargetBase {
model = "\CSJ_UH1slick\12mmcase.p3d";
};
};

.kju [PvPscene]
Feb 19 2013, 12:51
Cheers SamB :bounce3:

SamB
Feb 19 2013, 13:25
my pleasure man, please take a look at config I posted- maybe You figure it out:)