Jump to content

mikey74

Member
  • Content Count

    944
  • Joined

  • Last visited

  • Medals

Posts posted by mikey74


  1. // Change sides please
    // Get the player who entered the trigger
    _player = _this select 0;
    
    // Check if the player is a civilian (not AI)
    if (!isPlayer _player || side _player != civilian) exitWith {};
    
    // Get the total number of civilian players
    _totalCivilians = civilian countSide (entities [["Man"], [], false, true]);
    
    // Get the number of Blufor players
    _bluforCount = west countSide (entities [["Man"], [], false, true]);
    
    // Get the number of Opfor players
    _opforCount = east countSide (entities [["Man"], [], false, true]);
    
    // Check if Blufor or Opfor has reached half of the total civilian players
    if (_bluforCount >= _totalCivilians / 2) then {
        _player GlobalChat "You cannot join Blufor as they have reached the limit.";
        private _group = createGroup [east, true];
        [player] joinsilent _group;
        _player GlobalChat "Your team has been changed to Opfor.";
    } else {
        if (_opforCount >= _totalCivilians / 2) then {
            _player GlobalChat "You cannot join Opfor as they have reached the limit.";
            private _group = createGroup [west, true];
            [_player] joinsilent _group;
            _player GlobalChat "Your team has been changed to Blufor.";
        } else {
            // Randomly assign Blufor or Opfor with 50% probability
            if (random 1 > 0.5) then {
                private _group = createGroup [west, true];
                [_player] joinsilent _group;
                _player GlobalChat "Your team has been changed to Blufor.";
            } else {
                private _group = createGroup [east, true];
                [player] joinsilent _group;
                _player GlobalChat "Your team has been changed to Opfor.";
            }
        }
    };
    
    // Print a hint message for confirmation
    hint "Your team has been changed. Check side chat for confirmation.";

    Create a new text file place it in mission folder. Name it something like MY_fnc_find_proper_side.sqf. Then in your triggers activation put this:

      _handle = thisList execVM "MY_fnc_find_proper_side.sqf";

    Hope this helps. 🙂


  2. 7 hours ago, .kju said:

     

    @mikey74 hm weird - never seen that and cant see how SPE could cause that.

     

    1) please try without mods to rule that out

    2) would need to see a video to get a better idea

    3) please provide a rpt log of a session with the prob (best to exit right after it happened)

     

    ty

    RPT is more than a crash file? Nothing was crashing. Just popping off rounds without me pulling trigger. That said. I was unable to replicate today with or without mods. With the exception of It did shoot my bazoooka before I was aimed. idk its wierd. Only CBA and prairie fire was loaded, and of course I wasn't recording by this point. When I get more time. I'm going to try a few other things like making the same mission using just priarie fire or just standard arma 3. Hopefully in the next few days if it is SPE I'll post my findings here. Thanks for your response. As usual KJU. You do awesome work. IMO worth my hard earned money 😂. 😉

    • Thanks 1

  3. Anyone else having an issue where your player character will unload a clip when spotting enemies without even hitting your trigger? I thought maybe it was the SPE_AI module, but removed it and its still happening. Looks like it may be an AI suppression script that forgot to leave out the players. Mods I am using is CBA, Death hit animations, and ACSTG AI cannot see through grass. I am running a respawn script that does control anything firing a weapon. Thanks in advance.


  4. I use this in a re spawning script for single player. It does a few things. 1) Sense I fighting huge battles. I assign a group for the dead then delete that group along with holder group for newly spawned so I can simulate thousands of troops fighting. 2) it waits till the player is a certain distance and a few random seconds to hide the body. You can modify this to suit your needs. I use a killed EH for this script. pierremgi script is pretty great. so here is another option if you want. Always good to learn different ways. Because that one script you disregard I find a lot of time I end up using it else where for different reasons, or parts of a function I am not using.

    _deadgroup = createGroup [civilian,true];
    
    if !(isNil "_unit") then {
    	[_unit] joinSilent _deadgroup;
    
    	[_unit] spawn {
    		params ["_unit"];
    		while {!isNil "_unit"} do {
    			waitUntil {sleep 1; (isNil "_unit") || (_unit distance player > 100)};
    			if !(isNil "_unit") then {
    				if (_unit distance player <= 300) then {sleep (1+ (random 30 + random 29))} else {sleep (1+ (random 15 + random 14))};
    				hideBody _unit;
    				if (_unit distance player <= 300) then {sleep 7} else {sleep 0.5};
    				deleteVehicle _unit;
    				_unit = Nil;
    
    			};
    		};
    	};
    };

     


  5. On 4/29/2023 at 11:02 AM, Caparso123 said:

    Pls, help me 😞

    I'm not very good on scripting for servers. BUT I think if you use:  if (!isServer) exitWith {}; at the beginning of your script should keep it on server and not fire on all clients. Hopefully someone with better knowledge of servers corrects me if I am wrong or confirms if I am write.


  6. I realize this is an old thread, but If you have a custom garbage collector going. Possibly any garbage collector and already have a lot of killed EH that may delete units quick.  Try this. 

    _allDead = allDead;
    _allwestD = 0;
    _alleastD = 0;
    _allIndyD = 0;
    _time = time + 7;
    while {true} do {	
    	sleep 1;
    	if (!(_allDead isEqualTo allDead) || (_time <= time)) then {
    		 {
    		 	private _dead = _x;
    		 	if !(_dead in _allDead) then {
    		 		_allDead pushBack _dead;
    		 		switch (getNumber (configfile >> "CfgVehicles" >> (typeOf _dead) >> "side")) do
    				{
    					case 0: { _alleastD = _alleastD + 1 };
    					case 1: { _allwestD = _allwestD + 1 };
    					case 2: { _allIndyD = _allIndyD + 1 };
    					//default { };
    				};
    		 	}
    
    	    } forEach allDead;
    	    _allDead = allDead;
    	    // Post the results
    	    hint format ["BluFor casaulties: %1\n OpFor casaulties: %2\nIndFor casaulties: %3",_allwestD,_alleastD,_allIndyD];
    		_time = time + 7;
    	};
    
    
    };

    Ooops had a few thread open looking at this. I dont think it was meant for this thread. Probably this one 

     


  7. 26 minutes ago, mickeymen said:

    Right! This happens too often. In addition, the AI will not always move with this kind of animation. A roll-animation without moving to the side looks unnatural

    In my opinion. As it was during the FOA days. Dodging animation's should be a rarity. BUT Not everyone is of the same opinion. This is why I suggested maybe adding a random percentage option in the addon options. 🙂 So if the player loves it. Should be anywhere between 75% to 100%, or someone like me it should be 10% to 25% of the likelihood a unit will use a dodge animation. 

    • Like 4

  8. I was wondering is there a way to tone down the AI rolling around like toddlers high on candy??? <---- I found it. lol I forgot you can configure certain mods in options. That said. Could you add a chance option of them rolling? IN FOA I randomized it a bit so they didn't roll evetime the hitnear triggered. I think it ended up around %25 of the time I would trigger it. If you can add that option. That would be pretty great. 😉

     

    Your turret mod, and suppression mod totally complements my pinned mod. But Danger and Pinned together. lol The AI looks very silly when they are pinned for long periods of time because of the constant rolling. 

    • Like 2

  9. On 9/10/2021 at 2:30 AM, LordJarhead said:

     

    It is sometimes hard to stay on road with all the content, like main, DLC, CDLC, all the most used mods. And I end up going always the same road - I start with the main game and think "I need to cover the DLC as well, and the mods... oh maybe the CDLCs, too?" and it ends up being a giant project pretty fast. So, I’d like to go a different approach maybe.

    Now that Prairie Fire got released, I got some more free time lately. Maybe I can dig back into it and get some of that lost realistic approach back into it.

    My personal problem is digging back into the situation in and around JSRS and how it’s currently working. At this point, making a new sound mod from scratch is far more simple, and less time consuming. The base mod is always the same and fairly simple to set up.

    Maybe you guys have some wishes that we could focus on and have another JSRS beta going that we can experiment with.

     

    Thanks,

    LJ

     

    I definitely feel you. FOA/AISS are no where near as big as JSRS sound mod. I can tell you. I get burned out just thinking of pulling that old mod apart and making it work again. So, I started over with a very simple mod called pinned. Over time this may grow to be as big as My other mods. But I kind of like the ole motto Keep it simple stupid. Start small and slow. Take your time so you can enjoy it. Modding shouldn't be boring work. As we all do this because we enjoy it. So lets try to stay focused on the enjoying part. 😉 Other wise we will suffer the effects of our old pal burn out. 😄 Anyways incase you cant noticed. I'm excited to see you're back. 😉


  10. I don't know what changed, but why is it so hard to find my son on Arma servers to play prairie fire?????? Used to be easy. Whats changed? We have the same mods. We name our servers a unique name, but never show up anywhere. What gives??? Thanks in advance.


  11. In reference to the 1st part of your video. Where you were firing fairly close without a suppressor and the AI was standing around waiting to be hit. I used this in FOA/AISS 

    Spoiler

     

    
    
    if (FOA_AI_Enhancments isEqualTo 0) exitWith {}; //!((group _unitA) in FOA_Ex_Groups)
    private ["_shooter","_S_pos"];
    _shooter	= vehicle _this;//(_this select 0);
    sleep .001;
    if (!alive _shooter) exitWith {};
    if ((group _shooter) in FOA_Ex_Groups) exitWith {}; //
    
    
    _dubSuppressing = _shooter getVariable "lastSuppressing";
    if (isnil ("_dubSuppressing")) then {_shooter setVariable ["lastSuppressing",time + (6 + random 10)]}; //change to -1000
    	_dubSuppressing = _shooter getVariable "lastSuppressing";
    
    	if (_dubSuppressing < time) then //at least 7 seconds from last holler
    		{
    
    			if (isPlayer _shooter) then {}
    			else
    			{
    					if (count units (group _shooter) > 1) then
    					{//holler out
    						if (7 > random 100) then {[_shooter,8] call FOA_fnc_FOAVO};
    					};
    
    
    			};
    
    				 _shooter setVariable ["lastSuppressing",time  + (8 + random 16)];
    		};
    
    
    _S_pos = getPosATL _shooter;
    //if ((random 1.5) > (skill _Shooter)) then {
    
    	Private ["_weapon","_supr"];
    	_weapon = weaponsItems _shooter;
    	_supr = ((_weapon select 0) select 1);
    
    	if (isNil "_supr") then {_supr = "";};
    	sleep .05;
    	if (_supr isEqualTo "") then {
    		private "_shot_distance";
    		_shot_distance = if (!isNil "FOA_Shot_dis") then {FOA_Shot_dis} else {1000};
    		_men_close_NSUP =  _S_pos nearEntities [["CAManBase","LandVehicle"], _shot_distance];//nearestObjects [_shooter, ["CAManBase","Vehicle"], _shot_distance];
    		sleep random .05;
    		if (count _men_close_NSUP >= 1 and alive _Shooter) then {
    			{
    
    				_veh = vehicle _x;
    				_veh setVariable ["Shot_Near",[], true];
    				_sk = if ((skill _veh) == 0) then {.1} else {(skill _veh)};
    				_ds = if ((_veh distance _Shooter) < 100) then {100} else {(_veh distance _Shooter)};
    				if (_sk == 0) then {_sk = .1};
    				if (_ds == 0) then {_ds = 100};
    				if (alive _veh and (group _veh) knowsAbout _Shooter < (_sk / _ds * .001) and !((group _x) in FOA_Ex_Groups)) then {
    					(group _veh) reveal [_Shooter, _sk / _ds * .001];
    				};
    			} forEach _men_close_NSUP;
    		};
    	} else {
    		private "_shot_distance";
    		_shot_distance = if (!isNil "FOA_Shot_dis_sup") then {FOA_Shot_dis_sup} else {100};
    		_men_close_S = _S_pos nearEntities [["CAManBase","LandVehicle"], _shot_distance];// nearestObjects [_shooter, ["CAManBase","Vehicle"], FOA_Shot_dis_sup];
    		sleep random 1;
    		if (count _men_close_S >= 1 and alive _Shooter) then {
    			{
    				_vehs = vehicle _x;
    				_vehs setVariable ["Shot_Near",[], true];
    				_sk = if ((skill _vehs) == 0) then {.1} else {(skill _vehs)};
    				_ds = if ((_vehs distance _Shooter) < 100) then {100} else {(_vehs distance _Shooter)};
    				if (_sk == 0) then {_sk = .1};
    				if (_ds == 0) then {_ds = 100};
    				if (alive _vehs and (group _vehs) knowsAbout _Shooter < (_sk / _ds * .0001) and !((group _x) in FOA_Ex_Groups)) then {
    					(group _vehs) reveal [_Shooter, _sk / _ds * .0001];
    				};
    			} ForEach _men_close_S;
    		};
    	};
    
    true

     

     

     

     

    I inserted this in the config using CBA_shot Event Handler.  There are a ton of variables in there to which I dont recal why I used them on some of them.

     

     

    As to the stealth aspect. yeh lol You'd have to use a lot of forget targets. 🙂

    • Like 1

  12. This has been updated https://steamcommunity.com/sharedfiles/filedetails/?id=2431971204

     

    I've been asked to re-upload Throw able satchel. I redid the effects, and sounds. Got rid of the cluster grenade as it will need work. You will find a Demolition Specialist under NATO Men. The class name is B_Soldier_Demo_F who carries the throw able demo. YES AI will use this, but 70% of the time foolishly! The satchel is found in Arsenal under the name Throwable Satchel Charge. The class name is Demo_AMMO. Just put the backpack on character and start. The arming switch will automatically be added.

    • Like 2

  13. On 7/27/2015 at 2:33 PM, thelegendarykhan said:

    Very handy scripts indeed. However, mikey, I am trying to achieve a wasteland like mission in SP. So:

    1. When the Ai and even my player unit if killed, the script should scan the entire map and then randomly choose a cover point far off. To maintain the Search and Destroy element. Can you please send me the edited script for this?

    2. If I use your markername approach to determine more than one respawn location, how do you put the array of different markernames in unit init so that a random spot is chosen? take for instance markers named "m1" and "m2". I tried altering your init script but to no avail.

    Thank you.^^

    Wow sorry man I must have missed this. I've forgotten about this script...… That said. I've edited it that may be what youre looking for if youre still looking.... Here are my edits. Got a sample mission https://steamcommunity.com/sharedfiles/filedetails/?id=1965523583

     

    MikesSP_Respawn.sqf

     

    Spoiler
    
    /*
    Instructions
    
    Call this in units init, groups init, trigger, or init.sqf so long as you have unit defined right! :P
    Rsp = [Unitsname,3,7, markername or object] execVM "MikesSP_Respawn.sqf";
    
    Unitsname = unit you want to respawn
    3 = how many times to respawn
    7 = delay in respawn.... 5 is the least you can go it defaults to 5 seconds do to my cheasy effects.
    "markername" OBJECTNAME OR LEAVE BLANK = name of marker or object you put on map. or just use an Objects name without quotes. or leave blank. ***(THIS IS OPTINAL)***
    
    example:
    
    .. unit init
    Rsp = [this,3,7,"markername"] execVM "MikesSP_Respawn.sqf";
    
    .. groups init
    {Rsp = [_x,14,5] execVM "MikesSP_Respawn.sqf";} forEach (units this); <---- POSITION IS NOT NEEDED IF YOU WANT TO GO RANDOM
    
    ..... init.sqf if you want all Units
    {Rsp = [_x,30,15, MAYBE_A_SECTORS_NAME_OBJECTSNAME_MARKERSNAME_TRIGGERSNAME.....] execVM "MikesSP_Respawn.sqf";} forEach AllUnits
    
    
    */
    
    if	(!isDedicated && (player != player)) then {
       waitUntil {player == player};
       waitUntil {time > 3};
    };
    
    private ["_dplayer","_type","_group","_times","_delay","_respPos"];
    _dplayer = _this select 0;
    _dplayer setVariable ["MYloadout", (getUnitLoadout [_dplayer, true]), true];
    _times = (_dplayer getVariable "times");
    
    _dplayer setVariable ["Respawnplace1", (_this select 3), true];
    
    if (isNil "_times") then {_times = _this select 1};
    if (isNil "_times") then {_times = 3};
    _delay = _this select 2;
    if (isNil "_delay") then {_delay = 5};
    
    _type = typeOf _dplayer;
    _group = group _dplayer;
    _isLeader = (_dplayer getVariable "isLeader");
    if (isNil "_isLeader") then {_isLeader = (_dplayer == (leader _group));};
    
    _dplayer setVariable ["isLeader", _isLeader, true];
    _dplayer setVariable ["times", _times, true];
    _dplayer setVariable ["delayS", _delay, true];
    
    Mis_respawn = {
    	_dplayer = _this select 0;
    	_isLeader = _this select 4;
    	_killer = _this select 5;
    
    	_respawn = (_dplayer getVariable "Respawnplace1");
    
    	_respPos = _respawn;
    	if !(isNil "_respPos") then {
    
    		if (typeName _respPos == "STRING") then {_respPos = getMarkerPos _respawn} else {_respPos = getPos _respawn};
    
    	} else {
    		_distance = if ((_dplayer distance _killer) < 100) then {100} else {(_dplayer distance _killer)};
    		if (_distance > 200) then {_distance = 200};
    		_OtherUnit = if ({alive _x} count (units (group _dplayer)) >= 1) then {
    			selectRandom (units (group _dplayer))
    		} else {
    			_ortypos = _dplayer getPos [_distance,(_killer getDir _dplayer)];
    			[[[_ortypos, _distance]],["water"]] call BIS_fnc_randomPos;
    		};
    		_trypos = _OtherUnit getPos [_distance,(_killer getDir _OtherUnit)];
    		_respPos1 = selectRandom ([_dplayer,_trypos] call compile preprocessFileLineNumbers "FOA_find_cover.sqf");
    		_respPos = if (isNil "_respPos1") then {
    			_ortypos = _dplayer getPos [_distance,(_killer getDir _dplayer)];
    			[[[_ortypos, _distance]],["water"]] call BIS_fnc_randomPos;
    		} else {_respPos1};
    	};
    
    	_dplayer setVariable ["Respawnplace", _respPos, true];
    	_dplayer setVariable ["isSPlayer", isPlayer _dplayer, true];
    
    	_Tgroup = createGroup Civilian;
    	_temp = _Tgroup createUnit ["C_man_polo_6_F", getPos (_this select 0), [], 0, "NONE"];
    	_temp allowDammage false;
    	hideObject _temp;
    	addSwitchableUnit _temp;
    	temp setpos _respawnplace;
    	_temp enableSimulation false;
    
    	if (_dplayer getVariable "isSPlayer") then {
    		selectPlayer _temp;
    		cutText ["Respawning","BLACK IN",3.5];
    		RSP_hndl = ppEffectCreate ["colorCorrections", 1501];
    		RSP_hndl ppEffectEnable true;
    		RSP_hndl ppEffectAdjust [0, 0, 0, [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]];
    		RSP_hndl ppEffectCommit 0;
    		0 fadeSound 0;
    		0 fadeRadio 0;
    		0 fadeSpeech 0;
    	};
    
    	[_this select 0,_this select 1,_this select 2,_temp,_respPos,_respawn,_isLeader] spawn {
    		params ["_dplayer","_type","_group","_temp","_respawnplace","_Respawn","_isLeader"];
    
    		[_dplayer] joinsilent grpNull;
    		_delay = (_dplayer getVariable "delayS");
    		if (_delay < 5) then {_delay = 5};
    		_time = time + _delay;
    		_times = (_dplayer getVariable "times");
    		_isplayer = (_dplayer getVariable "isSPlayer");
    		_isLeader = (_dplayer getVariable "isLeader");
    
    		if (_times == 0) exitWith {
    
    			if (_isplayer) then {["epicFail",false,1] call BIS_fnc_endMission;} else {deleteVehicle _temp;};
    
    		};
    		if (isNil "_delay") then {_delay = time + 5;};
    
    		if (_isplayer) then {waitUntil {player == _temp};};
    		private "_player";
    		_player = _group createUnit [_type, (_dplayer getVariable "Respawnplace"), [], 0, "NONE"];
    		_player hideObject true;
    		_player setVariable ["delayS", _delay, true];
    		_player setVariable ["delayT", _time, true];
    		_player setVariable ["times",_times - 1, true];
    		_player setVariable ["isSPlayer", _isplayer, true];
    		_player setVariable ["Respawnplace", _respawnplace, true];
    		_player allowDamage false;
    		addSwitchableUnit _player;
    		_player setUnconscious true;
    		sleep (_delay);
    
    		_player setUnitLoadout [(_dplayer getVariable "MYloadout"), true];
    
    		reload _player;
    		_player allowDamage true;
    
    		if (_isplayer) then {selectPlayer _player;waitUntil {player == _player};};
    		if (_isLeader) then {
    			_player setVariable ["isLeader", _isLeader, true];
    			[_group,_player] spawn {
    				params ["_group", "_player"];
    				[_player] joinsilent _group;
    				_timer = time + ((_player distance (leader _group))/2);
    				waitUntil {_player distance (leader _group) <= 15 || !alive _player || _timer <= time};
    				if (alive _player) then {_group selectLeader _player;};
    			};
    
    		};
    
    		deleteVehicle _temp;
    		if (_this select 0 getVariable "isSPlayer") then {
    			_lay1 = cutText ["gaining conscious", "BLACK IN", 15, true, false];
    
    			25 fadeSound 1;
    			25 fadeRadio 1;
    			25 fadeSpeech 1;
    
    		};
    		_player setUnconscious false;
    		_player hideObject false;
    		_respPos = nil;
    		if (_isplayer) then {ppEffectDestroy RSP_hndl;};
    		[_player,(_player getVariable "times"),(_player getVariable "delayS"),(_dplayer getVariable "Respawnplace1")] execVM "MikesSP_Respawn.sqf";
    
    	};
    	true
    };
    
    _dplayer removeAllEventHandlers "killed";
    _dplayer addEventHandler ["killed", {[_this select 0,typeOf (_this select 0),group (_this select 0),_respawn,(_dplayer getVariable "isLeader"),(vehicle(_this select 1))] call Mis_respawn}];

     

     

    FOA_find_cover.sqf

     

    Spoiler
    
    /*
    File: FOA_find_cover.sqf
    Author: Mikey74
    
    Description:
    Function to find good cover positions exluding insects,footprints,men,feathers,pavement, leaflets, and roads. Yes nearestObjects will get those!
    
    Parameter(s):
    _this select 0: unit called for
    					Note: you need a unit
    _this select 1: seperate position or unit needed if you dont want to search around units position. Use a position or another unit or vehicle.
    					Note: you need a position or a unit this is optional
    
    Returns:
    Array of positions around objects near unit or position thats called the script.
    
    How to call:
    example 1:
    _cover_positions = [player, getPos nameoftarget(optional)] execVM "FOA_find_cover.sqf"; //if you put this in a sqf file.
    example 2:
    _cover_positions = [player, getPos nameoftarget(optional)] spawn FOA_find_cover; //if already precompile or your using FOA.
    
    TODO: add building positions. Should be easy enough.
    */
    private ["_obj_positions","_unitpos","_pos","_towns"];
    _obj_positions = [];
    _unit = _this select 0;
    _pos = _this select 1;
    if (isNil "_pos") then {_pos = getPos _unit};/// lets make sure we have some kind of position here.
    if (typeName _pos != "ARRAY") then {_pos = getPos _pos};/// lets make sure _pos is really a position. if not you will get an error or it just wont work.
    
    _radius = count units group _unit * 21;/// lets set a radius based on group size.
    _towns = nearestLocations [_pos, ["NameVillage","NameCity","NameCityCapital"], 200]; // finding towns close by
    
    if (count _towns > 0) then {_radius = count units group _unit * 7};/// you want a smaller radius for towns. ;)
    
    if (_radius < 21) then {_radius = 21};// minimum 21
    
    _Roads = _unit nearRoads _radius;// find roads near _unit
    //_c = 0;
    {
    
    	if ( !(_x iskindof "Insect") and // lets not use bugs for cover Animals
    			!(_x iskindof "Animals") and // lets not use Animals for cover
    			!(_x iskindof "Man") and // nor live men
    			!(_x iskindof "EmptyDetector") and // nor triggers
    			!((str _x) find "NOID " > -1) and //nor footprints or anything without an ID
    			!((str _x) find ": cl_" > -1) and // nor any type of freather or leaves
    			!((str _x) find ": pavement_" > -1) and // get rid of pavement type's
    			!((str _x) find ": garbage_" > -1) and // cant hind behind leaflets on ground
    			!(_x in _Roads) ) then { /// oh yeh lets not forget to exclude roads
    			//_c = _c + 1;
    			private "_obj";
    			_obj = _x;
    			if (_obj isKindOf "Building") then {
    				_posarray = [_obj] call BIS_fnc_buildingPositions;
    				_obj_positions append _posarray
    			} else {
    
    				{
    
    					_CPos = ((getPos _Obj) findEmptyPosition [0,3]);
    
    					if (count _CPos == 3) then {
    						_obj_positions pushBack _CPos;
    						//_n = "Sign_Arrow_Large_Green_F" createVehicle _CPos;
    					};
    				} forEach units group _unit;
    
    			};
    		};
    } forEach ((nearestTerrainObjects [_pos, ["bush","tree","wall","rock","SmallTree","Building","House","Church","Chapel","Bunker","Fortress","Fountain", "View-Tower","Lighthouse","Quay","Fuelstation","Hospital","Wall","Hide","BusStop","Transmitter", "Stack", "Ruin", "Watertower","Rocks"], _radius]) + (nearestObjects [_pos, ["Wreck","LANDVEHICLE"], _radius]));//nearestObjects [_pos, [], _radius];
    /*{
    	_n = "Sign_Arrow_Large_Green_F" createVehicle _x;
    } forEach _obj_positions;*/
    
    _obj_positions;

     

     

    https://www.youtube.com/watch?v=42qCaSH_FsI

     

    Enjoy

    • Thanks 1
×