db’s Twitter Digest for 2011-07-25 to 2011-07-31

db’s Sandbox And Google+

Google Logo officially released on May 2010

Image via Wikipedia

I’ve been playing around a bit with Google+ this week and I’m liking it much more than Facebook. Actually I think I’ve used Google+ more in one week than I’ve ever used Facebook.

One feature I’m particularly fond of is Circles. It allows me to organize people into groups and control what gets shared to whom.

For example I’ve created a Work Circle where I share and discuss things that would be of no interest to people in my Family Circle, and a db’s Sandbox Circle that is of no interest to either.

Currently Google+ is still a trial, but you can still share with people who haven’t yet joined.

If you are interested, drop me an email and I’ll send you an invitation to my db’s Sandbox Circle.

Enhanced by Zemanta

Take On Helicopters Community Preview.

Bohemia Interactive have done a very cool thing.


They’ve released a public preview of their new game Take On Helicopters for the Arma 2 community to play with.
The Community Preview is essentially a mod for Operation Arrowhead or Arma 2: Reinforcements. It  allows you to fly one of the new helicopters around Takistan and experience the new, more realistic flight model.
I figured it wouldn’t hurt to download and give it a try.

Disclaimer: db Can’t Fly

After decades of playing around with various flight simulators I’ve improved my pilot skills considerably. I’m no longer considered “A Danger to himself and those around him”.
Now I can usually land an Arma II helicopter close to where I intended without damaging the aircraft. Though I’m sure it’s not pretty to watch.

Still I was eager to try out my skills on the new flight model. How much different could it be?

First Impressions

The thing to remember is that the Preview is a beta of a new game, bolted onto BI’s last game. With that in mind, I wasn’t expecting much when I downloaded it. I was pleasantly surprised.

The first thing I did was open up the mission editor & drop the new light helicopter onto the Takistani tarmak so I could take a look.

Take On Helicopter Compaired to Arma 2 Littlebird

Take On Helicopter Compared to an Arma 2 Littlebird

Visually its obvious that considerably more effort went into building the model. The textures outside and inside are more detailed.

They have modeled the switches and knobs etc. of the cockpit as they are now required to start the engine. (Unless you are running at novice difficulty and use the Auto engine start on the action menu.)

The Old Arma II Littlebird

The Old Arma II Littlebird

New Instrument Cluster

Arma 2 Little Bird Instument Cluster

Arma 2 Littlebird Instrument Cluster

Take On Helicopter Collective

New Take On Helicopter Collective. Note the mirror mounted on the skid, visible just above the collective.

Arma2 littlebird collective

Arma2 Littlebird Collective

My First Flight

For my first flight I fired up the engine using auto engine start action item, instead of going through the whole start-up routine. I gave a bit of lift on the collective and promptly flipped the bird over. I may have managed to get a meter off the ground. Not a good start.

After my first few attempts at takeoff ended with corkscrews into the ground, I learned about auto trim.

With auto trim on I was able to get off the ground without loosing control. Wow, the new flight model is … difficult? realistic? Not sure what the word I want to use is. Part of the problem is I have no experience with flying a helicopter so I can’t really say.

I can say that compared to the standard Arma flight model you actually have to FLY the TakeOn helicopter. Constantly adjusting the controls and generally paying attention to what the aircraft is doing – no time for sight seeing. It’s quite challenging, especially when you are using the manual trim.

I was using my Saitek x45 controller but I can see how a set of rudder pedals and TrackIR would be extremely useful. I haven’t tried to fly with the mouse and keyboard yet.

Just for fun I threw an AI into the pilot’s seat and went along for a ride. I was hoping to get some pointers on how to fly this thing.  Checkout the video.

Reference

Download the Take On Helicopters Community Preview

db’s Twitter Digest for 2011-07-04 to 2011-07-10

Customizing The Warfare Aircraft Factory Part 3.

Appending Units to the Aircraft Factory.

ch-47 and merlin hc3 in ArmaII Warfare

CH-47 and Merlin HC3 in ArmaII Warfare Mission

Last time I removed all the units from the Warfare Aircraft Factory and replaced them with a custom set of helicopters.

Now if instead I wanted to keep the stock roster of units available in the factory, but just append my custom units, I’d have to make a few changes to my scripting.

So for this example I’m going to keep the standard USMC units in the Aircraft Factory and just append the British Armed Forces CH-47 and Merlin HC3 to the list.

To do this I’ll setup my mission in the Arma II mission editor exactly as I did in Part 1 (see Customizing The Warfare Aircraft Factory Part 1).

I’ll setup my folders and create a InitMission.sqf as I did in Part 2 (see Customizing The Warfare Aircraft Factory Part 2), but my two scripts Init_Common.sqf, and Config_AircraftFactory.sqf will be a bit different. So lets take another look at those scripts.

Init_Common.sqf

My new Init_common.sqf will consist of just one line:

[] Call Compile PreprocessFile ("Common\Config\Config_AircraftFactory.sqf");

The only difference being I’ve removed aircraftUnits = []; from my previous example. This line would have set aircraftUnits to a blank array. I don’t want to do this, since the Warfare module will have already populated it with the default aircraft. Next I’m going to create my Config_AircraftFactory.sqf to add the CH-47 and Merlin to the factory.

Note that I don’t have to create a separate script, I could stuff all the code into Init_common.sqf. I’m just creating a separate Config_AircraftFactory.sqf script for the sake of organization and the odd chance that I may want to expand this mission later.

Config_AircraftFactory.sqf

Since I’m just adding my custom information to the existing variables created by the Warfare Script, my Config_AircraftFactory.sqf will look a bit different than it did in my last post. I’ll start with declaring my Private variables:

Private["_c","_config","_data","_m","_p","_pilotCost","_t","_total","_u"];

Where …

  • _c is the base cost of the helicopter. Note that I’ll be assigning it to a low value, for testing purposes.
  • _config will hold information about the unit, pulled from the addon.
  • _m is the number of men a crewed unit will have when purchased
  • _p a value for each unit that will get stuffed into westAircraftPoints (I’m not clear on this one, maybe it’s the salvage points?)
  • _pilotCost is the cost for each crew member.
  • _t is the time required to build the unit
  • _total a counter
  • _u an array of class names of our helicopter units

Next I’ll put my values for the CH-47 and Merlin into my arrays.

_u = ["CH_47F_BAF"];
_c =  [40];
_m =  [2];
_t =  [40];
_p = [30];

_u = _u        + ["BAF_Merlin_HC3_D"];
_c = _c        + [40];
_m = _m        + [2];
_t = _t        + [40];
_p = _p        + [30];

_pilotCost = 75;

This next bit of code loops through each of my new aircraft in array _u and adds the appropriate information to the existing Warfare variables westAircraftMannedCosts , westAircraftDescriptions, westAircraftFactions and westAircraftImages.
Note that again I’ve decided to make the CH-47 & Merlin part of the USMC faction, because my simple mission only has this faction.

_total = Count _u;
for [{_count = 0},{_count < _total},{_count = _count + 1}] do
{
_config = configFile >> "CfgVehicles" >> (_u Select _count);
westAircraftMannedCosts = westAircraftMannedCosts + [(_c Select _count) + (_m Select _count) * _pilotCost];
westAircraftDescriptions = westAircraftDescriptions + [GetText (_config >> "displayName")];
westAircraftFactions = westAircraftFactions + [Localize "STR_FN_USMC"];
westAircraftImages = westAircraftImages + [GetText (_config >> "picture")];
};

This next block of code stuffs my arrays _u, _c etc. into the existing Warfare variables.

westAircraftUnits = westAircraftUnits + _u;
westAircraftCosts = westAircraftCosts + _c;
westAircraftCrews = westAircraftCrews + _m;
westAircraftTimes = westAircraftTimes + _t;
westAircraftPoints = westAircraftPoints + _p;

The next block of code updates the existing Warfare variables aircraftUnits, aircraftUnitCosts, and aircraftUnitDescriptions with the new values I updated above. Then I update the build time and end my script.

aircraftUnits = westAircraftUnits;
aircraftUnitCosts = westAircraftCosts;
aircraftUnitDescriptions = westAircraftDescriptions;

//Determine longest build time.
longestAircraftBuildTime = 0;
_t = westAircraftTimes;
for [{_count = Count _t - 1},{_count >= 0},{_count = _count - 1}] do
{
if (_t Select _count > longestAircraftBuildTime) then
{
longestAircraftBuildTime = _t Select _count;
};
};

Complete Config_AircraftFactory.sqf

So placed altogether my new script will look like this:

Private["_c","_config","_data","_m","_p","_pilotCost","_t","_total","_u"];

_u = ["CH_47F_BAF"];
_c = [40];
_m = [2];
_t = [40];
_p = [30];

_u = _u + ["BAF_Merlin_HC3_D"];
_c = _c + [40];
_m = _m + [2];
_t = _t + [40];
_p = _p + [30];
_pilotCost = 75;

_total = Count _u;
for [{_count = 0},{_count < _total},{_count = _count + 1}] do
{
_config = configFile >> "CfgVehicles" >> (_u Select _count);
westAircraftMannedCosts = westAircraftMannedCosts + [(_c Select _count) + (_m Select _count) * _pilotCost];
westAircraftDescriptions = westAircraftDescriptions + [GetText (_config >> "displayName")];
westAircraftFactions = westAircraftFactions + [Localize "STR_FN_USMC"];
westAircraftImages = westAircraftImages + [GetText (_config >> "picture")];
};

westAircraftUnits = westAircraftUnits + _u;
westAircraftCosts = westAircraftCosts + _c;
westAircraftCrews = westAircraftCrews + _m;
westAircraftTimes = westAircraftTimes + _t;
westAircraftPoints = westAircraftPoints + _p;

aircraftUnits = westAircraftUnits;
aircraftUnitCosts = westAircraftCosts;
aircraftUnitDescriptions = westAircraftDescriptions;

//Determine longest build time.
longestAircraftBuildTime = 0;
_t = westAircraftTimes;
for [{_count = Count _t - 1},{_count >= 0},{_count = _count - 1}] do
{
if (_t Select _count > longestAircraftBuildTime) then
{
longestAircraftBuildTime = _t Select _count;
};
};

Assuming I made no typos, when I go to purchase a helicopter from the Aircraft Factory I should be greeted with my expanded equipment list.

Reference

Customizing The Warfare Aircraft Factory Part 1.

Customizing The Warfare Aircraft Factory Part 2.

adding_warfare_aircraftfactory.Chernarus example mission