Jump to content
Sign in to follow this  
[aps]gnat

CraterEffects and cloudlets

Recommended Posts

For Ammo (missiles in this case) I've found how to change the size of the impact dust cloud when you hit something on land, but when I hit something on water, there is no cloud as such.

Not sure how ArmA does this. It obviously know if a target is at sea or land, but I want a cloud at sea too, preferably different colour from land dust impact clouds.

In the ammo config I can define;

Quote[/b] ] CraterEffects = "GNT_BCrater1";

Under class CfgCloudlets I have

Quote[/b] ]

class BombExp1;

class BombSmk1;

class BombSmk2;

class BombSmk3;

class GNTBombExp1 : BombExp1 {

circleRadius = 10;

circleVelocity[] = {-3,0,-3 };

timerPeriod = 1;

lifeTime = 8;

size[] = {2,7,2 };

blah blah blah

class GNTBombSmk1 : BombSmk1 {

circleRadius = 18.500000;

lifeTime = 8.500000;

size[] = {45,30 };

lifeTimeVar = 0.500000;

};

blah blah blah

class GNT_BCrater1 {

class BombSmk1 {

simulation = "particles";

type = "GNTBombSmk1";

position[] = {0,0,0 };

intensity = 1;

interval = 1;

lifeTime = 0.700000;

};

class BombSmk2 {

simulation = "particles";

type = "GNTBombSmk2";

position[] = {0,0,0 };

intensity = 1;

interval = 1;

lifeTime = 0.700000;

};

class BombSmk3 {

simulation = "particles";

type = "GNTBombSmk3";

position[] = {0,0,0 };

intensity = 1;

interval = 1;

lifeTime = 3;

};

};

Theres definitions in default configs called "CraterWater" and "ImpactEffectsWater1" etc, but they dont seem to work the same way as above. ... gives me errors and crashes if I try similar to above.

.... anyone played with these?

Share this post


Link to post
Share on other sites

It seems that water impacts are hard coded. They use the same effect for all weapons, from bullets to bombs to aircraft crashes. This effect only works in shallow water for some reason, because if you hit the open ocean it does nothing. In the explosion/crater definitions there is no way of returning the surface which the weapon is hitting. It could be scripted easily enough will a 'fired' eventhandler and detecting when the weapon is over water

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">if (((getPosASL _missile) select 2)<0.5) then

Share this post


Link to post
Share on other sites
[...]It could be scripted easily enough will a 'fired' eventhandler and detecting when the weapon is over water

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">if (((getPosASL _missile) select 2)<0.5) then

Assuming I've understood you correctly, couldn't that be broken if the weapon is fired over land, and the projectile impacts land, or vice-versa? I may have misread what you meant, if so I apologise.

Share this post


Link to post
Share on other sites

FYI

I got around it by doing the below code.

Basically the circular cloud effect is now inside the "explosion" effect definition, thus you get BOTH the explosion and the impact cloud dust in the same effect, no matter if its on land or on sea.

The downside is you have to pick a colour for the "dust" that suits land and sea impacts.

Quote[/b] ]

class GNT_BCrater1 {

// emptied

};

class GNT_BExplosion1 {

class LightExp {

simulation = "light";

type = "ExploLight";

position[] = {0,0,0 };

intensity = 0.001000;

interval = 1;

lifeTime = 0.500000;

};

class BombExp1 {

simulation = "particles";

type = "GNTBombExp1";

position[] = {0,0,0 };

intensity = 1;

interval = 1;

lifeTime = 0.200000;

};

class BombSmk1 {

simulation = "particles";

type = "GNTBombSmk1";

position[] = {0,0,0 };

intensity = 1;

interval = 1;

lifeTime = 0.700000;

};

class BombSmk2 {

simulation = "particles";

type = "GNTBombSmk2";

position[] = {0,0,0 };

intensity = 1;

interval = 1;

lifeTime = 0.700000;

};

class BombSmk3 {

simulation = "particles";

type = "GNTBombSmk3";

position[] = {0,0,0 };

intensity = 1;

interval = 1;

lifeTime = 3;

};

};

The ammo has;

Quote[/b] ]

CraterEffects = "GNT_BCrater1";

explosionEffects = "GNT_BExplosion1";

Share this post


Link to post
Share on other sites

Another downside to that might be that you will see the dust cloud even if the missile detonates way above the ground.

You could do some scripting if you really want a water effect. The script could be triggered by the "beforeDestroyScript" event in a particle. Just have a single invisible particle that disappears almost instantly and triggers a script.

Then you can use the "surfaceIsWater" command (as well as a height check) to check that that the explosion was over water.

Share this post


Link to post
Share on other sites
Another downside to that might be that you will see the dust cloud even if the missile detonates way above the ground.

Sure, theres are ground attack missiles so 9 out of 10 times it doesnt matter.

Quote[/b] ]You could do some scripting if you really want a water effect

hehehe ... yeh, but the MP problems and testing I can't be bothered with. Too many people complain.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×