Jump to content
Sign in to follow this  
Woodpeckersam

Cutter Grass inside a trigger/marker

Recommended Posts

Hey hows it going?

I have been struggling at this one for a little while. I have found a script that was used in ArmA 2, not sure where though, but the person who wrote the scripts and those who tested it out said that it worked.

In ArmA 3 though, nothing happens. No errors too.

I did change it a little, and I found the classname for the Clutter Cutter on the Six Configs Library. Does anyone know how to get this to work?

[color="#40E0D0"]_trig[/color] = _this select 0;
[color="#40E0D0"]_xpos[/color] = _this select 1;
[color="#40E0D0"]_ypos[/color] = [color="#40E0D0"]_this[/color] select 2;
[color="#40E0D0"]_start[/color] = getpos [color="#40E0D0"]_trig[/color];

waitUntil {not(isNil [color="#008000"]"BIS_fnc_init"[/color])};  

for [color="#008000"]"_i"[/color] from 0 to  [color="#40E0D0"]_xpos[/color] step 10 do 
{
	for [color="#008000"]"_i"[/color] from 0 to [color="#40E0D0"]_ypos[/color] step 10 do 
		{
			[color="#40E0D0"]_newpos[/color] = [([color="#40E0D0"]_start[/color] select 0) +[color="#40E0D0"]_i[/color],([color="#40E0D0"]_start[/color] select 1)+[color="#40E0D0"]_i[/color],0];    
			if ( [[color="#40E0D0"]_trig[/color], [color="#40E0D0"]_newpos[/color]] call BIS_fnc_inTrigger) then {
			nil = createVehicle [[color="#008000"]"Land_ClutterCutter_large_F"[/color],[color="#40E0D0"]_newpos[/color],[], 0, [color="#008000"]"can_collide"[/color]];
		};
};

Edited by ArmASalt3

Share this post


Link to post
Share on other sites

look like your missing a }; at the end.

Share this post


Link to post
Share on other sites

Ah I found the original script, and it was yourself who made it F2k lol. Well I still cant seem to get it to work though :/ Does not do a thing... maybe I do need an object... *refers to your old script* cheers man.

Share this post


Link to post
Share on other sites

It wasn't far off the problem was that you were comparing the trigger pos and cutter pos and because the they are exactly the same it caused the function to fail as it can't compare two exact same locations.

The fix is to offset the cutter a touch (1-10) rather than (0-10).

However doing it your way it will only remove grass from the top right of the trigger area.

_trig = _this select 0;
_xpos = _this select 1;
_ypos = _this select 2;
_start = getpos _trig;

waitUntil {not(isNil "BIS_fnc_init")};  

for "_x" from 1 to  _xpos step 4 do 
{
	for "_i" from 1 to _ypos step 4 do 
		{
			_newpos = [(_start select 0) +_x,(_start select 1)+_i,0];    
			if ( [_trig, _newpos] call BIS_fnc_inTrigger) then {
			null = createVehicle ["Land_ClutterCutter_large_F",_newpos,[], 0, "can_collide"];

		};
};
};

One other thing the large cutter is now much smaller, medium is tiny and small seems to do nothing (check it is doing a little bit).

It may be better to use an invisible heli pad.

Edited by F2k Sel

Share this post


Link to post
Share on other sites

hey guys, can you please explain all this step by step i need it for arma 3 template, i will be grateful

Share this post


Link to post
Share on other sites

There's an issue in A3 which make it extremely in efficient.

The size of the grass cutters are much smaller in A3 so you need to create many more which it time consuming for the CPU.

If you want odd sizes just make sure you make the numbers larger.

I also fixed another error that seems to have crept in.

 

To use the script  just place a trigger over the area you wish to flatten, it can be square or circular and for example set it's size to 50/50

in the trigger condition change this to true

In the on act put null=[thistrigger,50,50] execvm "cutter.sqf"

//null=[thistrigger,50,50] execvm "cutter.sqf"
_trig = _this select 0;
_xpos = _this select 1;
_ypos = _this select 2;
_start = getpos _trig;
 
waitUntil {not(isNil "BIS_fnc_init")}; // waits until functions are ready 
for "_x" from -_xpos to  _xpos step 4 do
    {
        for "_i" from -_ypos to _ypos step 4 do
            {
                _newpos = [(_start select 0) +_x,(_start select 1)+_i,0];    
                if ( [_trig, _newpos] call BIS_fnc_inTrigger) then {                
                null = createVehicle ["Land_ClutterCutter_large_F",_newpos,[],0,"can_collide"]; // creates the grass cutter       
                   };
                };
};

That's about it really I'm sure someone could come up with something better.

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

thx for your help it was helpful, i find an other trick for a bigger area, when i was making a template for friendly server, i put a big object (pier concrete) i put in its init 

this enableSimulation false;
this allowDamage false;
this setpos [(getpos this select 0), (getpos this select 1), -5];
this setVectorUp [0,0,1];

the object spawned under the terrain line and all the grass on that area totally removed.

 

arma3_mapping_img_01.jpg

 

arma3_mapping_img_02.jpg

 

arma3_mapping_img_03.jpg

 

arma3_mapping_img_04.jpg

Share this post


Link to post
Share on other sites

Interesting, does that impact on overall performance though. At one point objects drawn underground had a nasty effect on FPS but it may have been fixed at some point.

Share this post


Link to post
Share on other sites

Interesting, does that impact on overall performance though. At one point objects drawn underground had a nasty effect on FPS but it may have been fixed at some point.

 

i have to test it in server side and i will make you know.

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  

×