Jump to content

mikey74

Member
  • Content Count

    944
  • Joined

  • Last visited

  • Medals

Posts posted by mikey74


  1. Yes without mods, in both stable and dev branch. Wasn't sure if it was just me. All this once worked. But yeh retested few more times wrote a few more scripts. I can make them spawn at points in buildings, but AI path finding usually gets stuck at bottom of stairs, or doing circles in the bottom of building. I tried the bug report once. Didn't pan out to well. But I'll give it another try.  Thanks. Probably shouldn't have posted all this here. My apologies.


  2. Is it me or has AI pathfinding in buildings gotten worse? Example I place a wp on top floor last room 2 story building. The unit only goes to end of hallway on bottom floor. So outta curiosity I pulled out one of my old garrison scripts. Basically they would only stay on bottom floor. So I tried spawning units in every position I could gather using buildingpos and a find finding windows and doors script.... They all spawned on bottom floor. Not sure if you guys are aware of this. But figured I'd bring it to your attention. If its only me please ignore and/or delete this post with my humble apology.


  3. Hi, Just curious. Is it possible to attach sensors on the vehicle maybe 5 to 10 meters in front of his direction and run an object finder routine without significant frame loss? I did it once a while back. It worked out ok, but if you put several vehicles on the map. There was frame rate loss. Thus why I never released it. I guess why I ask. I have limited knowledge in coding, but you guys are very good and way more knowledgeable than me. If I can pull it off with some trouble and frame drop. I'm thinking you guys could do it and know how to keep frame rate unhindered, and smoothly. Just a suggestion in case you guys may have overlooked that possibility. Or lol its not possible. :) Thanks for the wonderful work you guys have done.


  4. Quote

    What happened to FOA? Is it dead? I see it is no longer on steam workshop?

    Yeh to many people having to many problems. So I pulled it sense I do not have the time to work on it like it deserves.


     

    Quote

     

    I need help getting your mod to work properly:

     

    I installed the latest version of AISS 3.0 (v2.0.1) by inserting the unzipped "@A.I.S.S. 3 - Feat of Arms V2" folder into Arma 3 root directory. Then I started the Arma 3 Launcher, loaded the AISS mod from there, and then launched Arma 3.

     

    Well, I can't tell whether the mod works or not, because I cannot test it - Arma 3 becomes very sluggish (very strong delay in everything - AI, Gameflow, Ingame-Notifications, etc.) and even the framerate drops massively (I got 19fps on some spots!!).

     

    Is this a bug or did I something wrong while installing/configuring this mod??

     

    PS: I've got other mods/addons installed, too - among them are also AI mods ("Advanced AI Command" and "C2")

     

    I have set "AI Skill" to 0.75 and "AI Accuracy" to 0.25 ("Game Options" -> "Difficulty")

     

    BTW, about Apex/Arma 3 Vanilla AI: no, not really - the AI is incredibly dumb, and what's much, much worse, they (enemy AI) are dumb AND skilled alike - more brainless than zombies but 100% accurate when shooting at me, with almost superhuman reaction times (they literally shoot immediately once I get into their Field of View) and sometimes spotting me from hundreds of meters away; and to top that, it appears that they often detect me *before* actually seeing me - especially enemy tanks/vehicles are notorious for this, starting to fire at me before I even see them (or they see me)...

     

    To put it in metaphors: the enemy AI is like a super-dumb robot with Laser-eyes, supercomputer reflexes and thermal vision...

     

    So much about the Vanilla AI...

     

    T.S.O.M. 

     

    Ive not experienced that. Usually they are smart. They have flanked me without FOA. They take cover now without FOA. As for the shooting skills turn down the accuracy, and turn up there I forget what its called but its there sway of there weapon. I've not really seen very much interest in FOA so its pretty much gone the way of the dodo. The dodo did come back, but cant promise that with FOA. Right now just helping others when asked and when needed. I've written up a few programs for a couple other mods and couple missions. I don't have as much time to dovout to FOA as it would need. Every time I get it good. Bis makes an update and it goes to poopoo. lol Anyways Try Bcombat, ASR, Vcom, Dac, and/or Hetman. Those are all pretty good AI mods. Those guys know way more about coding than I do.  ;)

     

    Going to have this thread locked. If you need anything regarding FOA. Shoot me a message. I cant promise much but may help.


  5. Now Just tested newer version. It all depends on type of ammo you are throwing there. for instance When I use Artillery shells I can place them 3000 k away and 3000 k in the air. They all hit where I want them... BUT when testing with bombs. no can do. You'll have to keep things at range I previously posted for Bo_GBU12_LGB

     

     

    Here is what I am playing with now:

    Spoiler
    
    for "_i" from 1 to 200 do {
    	_posO = beggerm getPos [6000, (getDir beggerm) + (random 45 + random -45)];
    	_posO = ATLToASL [(_posO select 0),(_posO select 1),(1500 + random 3000)];
    	_Ptargt = ATLToASL (beggerm getPos [random 50, random 360]);
    	_flrObj = createVehicle ["Sh_155mm_AMOS", _posO, [], 0, "FLY"];
    	_flrObj setVectorUp surfaceNormal (getPosASL _flrObj);
    	_dir =  _flrObj getDir _Ptargt;
    	_flrObj SetDir _dir;
    	_speed = 1;// comment "Added speed";
    	_flrObj setVelocity ((_Ptargt vectorDiff (getPosASL _flrObj)) vectorMultiply _speed); ///Make sure all positions are in ASL format _Ptargt (getPosASL beggerm)
    	sleep random 1.5;
    };

     

    lol sorry had 2 targets I was messing with beggerm is a civilian I used this script to pic off on a bridge. Just with this version if you use a bomb or anything other than artillery you want get desired results fall back to the last post. ;)

     

    ok This seems to work pretty good with bombs:

     

    Spoiler
    
    /////  ammo = "Sh_155mm_AMOS"; Bo_GBU12_LGB Sh_120mm_HE Sh_82mm_AMOS R_230mm_HE Rocket_04_HE_F Bomb_03_F Bomb_04_F Sh_105mm_HEAT_MP Sh_105mm_APFSDS Sh_120mm_HE \\\\\
    // WWIIammo = "LIB_PzGr40_APCR" "LIB_Sh_81_HE" "LIB_Sh_82_HE" "LIB_M42A1_M1_HE"
    for "_i" from 1 to 200 do {
    	_posO = beggerm getPos [50, (getDir beggerm) + (random 45 + random -45)];
    	_posO = ATLToASL [(_posO select 0),(_posO select 1),(150 + random 150)];
    	_Ptargt = ATLToASL (beggerm getPos [random 50, random 360]);
    	_flrObj = createVehicle ["Bomb_04_F", _posO, [], 0, "FLY"];
    	_flrObj setVectorUp surfaceNormal (getPosASL _flrObj);
    	_dir =  _flrObj getDir _Ptargt;
    	_flrObj SetDir _dir;
    	_speed = 1;// comment "Added speed";
    	_flrObj setVelocity ((_Ptargt vectorDiff (getPosASL _flrObj)) vectorMultiply _speed); ///Make sure all positions are in ASL format _Ptargt (getPosASL beggerm)
    	sleep random 1.5;
    };

     

    If you use bombs and 1st script above make speed 5. Bombs don't move as fast a projectiles.

    • Like 1

  6. On ‎2‎/‎18‎/‎2017 at 7:13 PM, reggaeman007jah said:

    KEK! nice one :)

     

    ++ edit ++

     

    Still chuckling how much more awesome this is, compared to mine. Thanks again..

    Here is something you may have fun with... Give it a try:

     

    _posO = TB1 getPos [300, (getDir TB1)];
    _posO = [(_posO select 0),(_posO select 1),(75 + random 175)];
    for "_i" from 1 to 200 do {
    	_Ptargt =  TB1 getPos [random 100 + random -100, random 360];
    	_flrObj = createVehicle ["Bo_GBU12_LGB", _posO, [], 0, "FLY"];
    	_dir =  _flrObj getDir _Ptargt;
    	_flrObj SetDir _dir;
    	_speed = 2;// comment "Added speed";
    	//Next code sets bombs in direction with good amount of velocity to random TB1 pos ie _Ptargt =  TB1 getPos [random 100 + random -100, random 360];
    	_flrObj setVelocity (((ATLToASL _Ptargt) vectorDiff (getPosASL _flrObj)) vectorMultiply _speed); ///Make sure all positions are in ASL format
    	sleep random 1.5;
    };

    TB1 is a target I placed on map.

     

    ps: Set _speed to 0.2; you can see them coming in significantly slower then work your way up till your happy.

     

    let me explain a bit

    _posO sets the bomb about 300 meters in front of target. This can be changed from any to random directions.

    _Ptargt sets random position to bomb around TB1

    _dir gets direction from the bomb to the target Then next line sets direction.

    The next 2 lines set the speed to hit that position. :D hope you like and this helps. :)

    • Like 1

  7. On ‎1‎/‎29‎/‎2017 at 8:51 PM, Mack. said:

    Thank you for producing this fantastic mod. Im working on a mission using the CUP units, does anybody have the RHQ arrays for the CUP mod?

     

    Thanks

     

    Mack

    In the script I have above. Just hint str which ever units you want to see. It will give you all of them. Cup infantry will be in there with all others...: example hint str RYD_WS_Inf_class will give you all infantry classnames of vanilla and mods you have loaded. :)

    • Like 1

  8. On ‎1‎/‎29‎/‎2017 at 8:51 PM, Mack. said:

    Thank you for producing this fantastic mod. Im working on a mission using the CUP units, does anybody have the RHQ arrays for the CUP mod?

     

    Thanks

     

    Mack

    I go through and create personal unit mods like a kid and candy. So I created this little script I've been using on personal missions. Maybe it will be useful to you and others. I put this in my init.sqf of any mission I'm playing or just goofing around with. So rather than going through and finding all the classes or a post with classes I wrote this to go into any HAL type mission I like playing through with different mods loaded. Hope this helps
     

    Spoiler


    
    
    _cfgVehicles = configfile >> "cfgvehicles";
    _cfgfactions = configfile >> "CfgFactionClasses";
    
    RYD_WS_Inf_class = [];
    RYD_WS_recon_class = [];
    RYD_WS_FO_class = [];
    RYD_WS_snipers_class = [];
    RYD_WS_ATinf_class = [];
    RYD_WS_AAinf_class = [];
    RYD_WS_Art_class = [];
    RYD_WS_HArmor_class = [];
    RYD_WS_MArmor_class = [];
    RYD_WS_LArmor_class = [];
    RYD_WS_LArmorAT_class = [];
    RYD_WS_Cars_class = [];
    RYD_WS_Cargo_class = [];
    RYD_WS_NCCargo_class = [];
    RYD_WS_Crew_class = [];
    RYD_WS_rep = [];
    RYD_WS_med = [];
    RYD_WS_fuel = [];
    RYD_WS_ammo = [];
    RYD_WS_Other_class = [];
    RYD_WS_Support_class = [];
    RYD_WS_Air_class = [];
    RYD_WS_BAir_class = [];
    RYD_WS_RAir_class = [];
    RYD_WS_Naval_class = [];
    RYD_WS_Static_class = [];
    RYD_WS_StaticAA_class = [];
    RYD_WS_StaticAT_class = [];
    for "_c" from 0 to (count _cfgVehicles - 1) do {
    	_current = _cfgVehicles select _c;
    	if (isClass _current) then {
    		_currentClass = configname _current;
    		//hint str [_currentClass,_current]; sleep 1;
    		if ((getNumber (_current >> 'scope') >= 1) && (getNumber (_current >> 'side') != 3) && _currentClass isKindOf "Man") then {
    			//hint str (getNumber (_current >> 'camouflage')); sleep .03; getText (_current >> 'vehicleClass') in ['men','Men','infantry',"Man"]
    			RYD_WS_Inf_class pushBack _currentClass;
    			if ((getText (_current >> 'DisplayName')) find 'Crew' >= 0 ||
    					(getText (_current >> 'DisplayName')) find 'Pilot' >= 0 ) then {
    				RYD_WS_Crew_class pushBack _currentClass;
    			};
    			if ((getText (_current >> 'editorSubcategory') in ["EdSubcat_Personnel_SpecialForces"]) &&
    					((getText (_current >> 'DisplayName')) find 'Diver' == -1)) then { //getText (_currentClass >> 'vehicleClass') (_currentClass isKindOf "MenSniper" || _currentClass isKindOf "MenRecon")
    				RYD_WS_recon_class pushBack _currentClass;
    			};
    			if ((getText (_current >> 'DisplayName')) find 'Officer' >= 0 ||
    					(getText (_current >> 'DisplayName')) find 'Commmander' >= 0 ||
    						(getText (_current >> 'DisplayName')) find 'General' >= 0 ||
    							(getText (_current >> 'DisplayName')) find 'Colonel' >= 0 ||
    								(getText (_current >> 'DisplayName')) find 'Major' >= 0 ||
    									(getText (_current >> 'DisplayName')) find 'Captain' >= 0 ||
    										(getText (_current >> 'DisplayName')) find 'Lieutenant' >= 0 ||
    											(getText (_current >> 'DisplayName')) find 'Squad Leader' >= 0 ||
    												(getText (_current >> 'DisplayName')) find 'Sargeant' >= 0 ||
    													(getText (_current >> 'DisplayName')) find 'Sergeant' >= 0 ||
    														(getText (_current >> 'DisplayName')) find 'Team Leader' >= 0 ||
    															(getText (_current >> 'DisplayName')) find 'Watcher' >= 0 ||
    																(getText (_current >> 'DisplayName')) find 'Corporal' >= 0 ||
    																	(getText (_current >> 'DisplayName')) find 'JTAC' >= 0) then {
    				RYD_WS_FO_class pushBack _currentClass;
    			};
    			if ((getText (_current >> 'DisplayName')) find 'Marksman' >= 0 ||
    					(getText (_current >> 'DisplayName')) find 'Sharpshooter' >= 0 ||
    						(getText (_current >> 'DisplayName')) find 'Sniper' >= 0 ) then {
    				RYD_WS_snipers_class pushBack _currentClass;
    			};
    			if (((getText (_current >> 'DisplayName')) find 'AT' >= 0||
    					(getText (_current >> 'DisplayName')) find 'Javelin' >= 0 ||
    						(getText (_current >> 'DisplayName')) find 'RPG' >= 0 ||
    							(getText (_current >> 'DisplayName')) find 'RShG' >= 0 ||
    								(getText (_current >> 'DisplayName')) find 'Hireling' >= 0 ||
    									(getText (_current >> 'DisplayName')) find 'Tow' >= 0) &&
    										((getText (_current >> 'DisplayName')) find 'Asst' == -1)) then {
    				RYD_WS_ATinf_class pushBack _currentClass;
    			};
    			if ((getText (_current >> 'DisplayName')) find 'AA' >= 0 && (getText (_current >> 'DisplayName')) find 'Asst' == -1) then {
    				RYD_WS_AAinf_class pushBack _currentClass;
    			};
    		};
    		if ((getNumber (_current >> 'scope') > 1) && (getNumber (_current >> 'side') != 3) && _currentClass isKindOf "LandVehicle") then {
    			_bbuarty = [(configfile >> "CfgVehicles" >> _currentClass),"availableForSupportTypes",0] call BIS_fnc_returnConfigEntry;
    			if (_bbuarty find  "Artillery" > -1) then {
    				RYD_WS_Art_class pushBack _currentClass;
    			};
    			if (getNumber (_current >> 'armor') >= 600 && !(_currentClass in RYD_WS_Art_class)) then {
    				RYD_WS_HArmor_class pushBack _currentClass;
    			};
    			if (getNumber (_current >> 'armor') >= 300 && getNumber (_current >> 'armor') < 600 && !(_currentClass in RYD_WS_Art_class)) then {
    				RYD_WS_MArmor_class pushBack _currentClass;
    			};
    			if (getNumber (_current >> 'armor') > 200 && getNumber (_current >> 'armor') < 300 && !(_currentClass in RYD_WS_Art_class)) then {
    				RYD_WS_LArmor_class pushBack _currentClass;
    			};
    			if (getNumber (_current >> 'armor') < 600 && _currentClass find 'cannon' >= 0 && !(_currentClass in RYD_WS_Art_class)) then {
    				RYD_WS_LArmorAT_class pushBack _currentClass;
    			};
    			if (getNumber (_current >> 'armor') > 70 && getNumber (_current >> 'armor') <= 200 && !(_currentClass in RYD_WS_Art_class)) then {
    				RYD_WS_Cars_class pushBack _currentClass;
    			};
    		};
    		if ((getNumber (_current >> 'scope') > 1) && (getNumber (_current >> 'side') != 3) && _currentClass isKindOf "Air") then {
    			RYD_WS_Air_class pushBack _currentClass;
    			if (((getText (_current >> 'DisplayName')) find 'CAS' >= 0 ||
    					(getText (_current >> 'DisplayName')) find 'Armed' >= 0 ||
    						_currentClass find 'Attack' >= 0 ||
    							_currentClass find 'AA' >= 0 ||
    								_currentClass find 'armed' >= 0) && _currentClass find 'unarmed' == -1) then {
    				RYD_WS_BAir_class pushBack _currentClass;
    			};
    			if (_currentClass find 'UAV' >= 0 && _currentClass find 'CAS' == -1 && !(_currentClass in RYD_WS_BAir_class)) then {
    				RYD_WS_RAir_class pushBack _currentClass;
    			};
    		};
    		if ((getNumber (_current >> 'scope') > 1) && (getNumber (_current >> 'side') <= 2) && _currentClass isKindOf "StaticWeapon") then {
    			RYD_WS_Static_class pushBack _currentClass;
    			if (_currentClass find 'AA' >= 0) then {
    				RYD_WS_StaticAA_class pushBack _currentClass;
    			};
    			if (_currentClass find 'AT' >= 0) then {
    				RYD_WS_StaticAT_class pushBack _currentClass;
    			};
    		};
    		if ((getNumber (_current >> 'scope') > 1) && (getNumber (_current >> 'side') <= 2) && _currentClass isKindOf "Ship") then {
    			RYD_WS_Naval_class pushBack _currentClass;
    		};
    		if ((getNumber (_current >> 'scope') > 1) && getNumber (_current >> 'transportSoldier') >= 2 && !(_currentClass in RYD_WS_Art_class)) then {
    			RYD_WS_Cargo_class pushBack _currentClass;
    			RYD_WS_NCCargo_class pushBack _currentClass;
    		};
    		if (((getText (_current >> 'DisplayName')) find 'repair' >= 0 ) || ((getText (_current >> 'DisplayName')) find 'Repair' >= 0 )) then {
    			RYD_WS_rep pushBack _currentClass;
    		};
    		if (((getNumber (_current >> 'scope') > 1) && (getNumber (_current >> 'side') != 3)) &&
    				(((getText (_current >> 'DisplayName')) find 'Medical' >= 0 ) ||
    					((getText (_current >> 'DisplayName')) find 'Medevac' >= 0)) &&
    						((_currentClass isKindOf "LandVehicle") || (_currentClass isKindOf "Air"))) then {
    			RYD_WS_med pushBack _currentClass;
    		};
    		if (((getNumber (_current >> 'scope') > 1) && (getNumber (_current >> 'side') != 3)) &&
    				(((getText (_current >> 'DisplayName')) find 'fuel' >= 0 ) ||
    				 	((getText (_current >> 'DisplayName')) find 'Fuel' >= 0 )) &&
    						((_currentClass isKindOf "LandVehicle") || (_currentClass isKindOf "Air"))) then {
    			RYD_WS_fuel pushBack _currentClass;
    		};
    		if (((getNumber (_current >> 'scope') > 1) && (getNumber (_current >> 'side') != 3)) &&
    				(((getText (_current >> 'DisplayName')) find 'Ammo' >= 0 ) ||
    				 	((getText (_current >> 'DisplayName')) find 'ammo' >= 0 )) &&
    						((_currentClass isKindOf "LandVehicle") || (_currentClass isKindOf "Air"))) then {
    			RYD_WS_ammo pushBack _currentClass;
    		};
    		if (((getNumber (_current >> 'scope') > 1) && (getNumber (_current >> 'side') != 3)) &&
    				(((getText (_current >> 'DisplayName')) find 'Ammo' >= 0 ) ||
    					 ((getText (_current >> 'DisplayName')) find 'fuel' >= 0 ) ||
    					 	((getText (_current >> 'DisplayName')) find 'Fuel' >= 0 ) ||
    						 	((getText (_current >> 'DisplayName')) find 'Medical' >= 0 ) ||
    								((getText (_current >> 'DisplayName')) find 'Medevac' >= 0) ||
    									 	((getText (_current >> 'DisplayName')) find 'ammo' >= 0 )) &&
    											((_currentClass isKindOf "LandVehicle") || (_currentClass isKindOf "Air"))) then {
    			RYD_WS_Support_class pushBack _currentClass;
    		};
    
    
    	};
    
    };
    RYD_WS_NCAir_class = RYD_WS_Air_class - RYD_WS_BAir_class;
    
    RYD_WS_AllClasses = RYD_WS_Inf_class + RYD_WS_Art_class + RYD_WS_HArmor_class + RYD_WS_MArmor_class + RYD_WS_LArmor_class + RYD_WS_Cars_class + RYD_WS_Air_class + RYD_WS_Naval_class + RYD_WS_Static_class + RYD_WS_Support_class + RYD_WS_Other_class;

     

     

    • Like 1

  9. Well I got to partially agree with both of you guys. You can manipulate AI. At one point FOA was very good a getting cover and doing what soldiers do in combat. But as for playing with hard coded stuff no. But BIS did leave us modders some back doors. So I used a few back doors to make the AI act as the stories I've heard and read. So in a sense it is possible to manipulate the AI, but Can Me Genesis,Fabio, or the other guys mess with the hard coded stuff. Not on your life. If we could we would have at one point or another. That being said. Because BIS has imo made very good improvements on AI. I just took the last version of FOA and basically enhanced what BIS already had. Worked good at one point. Just they have so many updates its hard to keep up and keep mods up to date. Especially when you're just one person.


  10. Was thinking not sure what your variables are but maybe TPW_Civillians, TPW_cars, and TPW_Air; Kinda rushed it out. Had some last minute Valentine shopping to do. lol But you can use those 3 global arrays to call up what you need. If you need to match factions it will take a bit more work, but I can probably get you pointed on the right direction on that and let your expertise blow it outa the water. ;)

     

    P.S

    ohhhh I forgot I have a script with what I sent you that makes planes use airports. They will fly from one airport to another. Its not 100% working but works a little. If you want I can send that your way too. Not sure Your mod has that yet?

     

    p.s.s

    lol You probably wont want those airport scripts, but if you do can confirm it works on Tonoa(except AI has problem in one of the major airports navigating), Altis, Cherneruas, Isla Duala(had to flinagle it but works), Panthera, but not on Sahrani. Let me know I'll need to clean it up a bit and put notes though. lol

    • Like 1

  11. You can try something like this. May work a bit better depending on what you are looking for:

     

    I put it in my init.sqf file:
     

    Spoiler

     

    
    Create_flare_bombs = {
    
    	params ["_Obj","_howmany"];
    
    	for "_i" from 1 to _howmany do {
    
    		_pos = (_obj getPos [random 100, random 360]);
    		_pos = [(_pos select 0),(_pos select 1),(75 + random 35)];
    
    		private ["_flrObj"];
    		_flrObj = createVehicle ["F_40mm_white", _pos, [], 0, "FLY"];
    		_flrObj setVelocity [0,0,-10];
    
    		_flrObj spawn {
    			params ["_flrObj"];
    			sleep 1;
    			_timer = time + 14;
    			WaitUntil {(getPosATL _flrObj) select 2 <=1 || time >_timer};
    			_hitpos = [((getPos _flrObj) select 0),((getPos _flrObj) select 1),1];
    			_bomb= createVehicle  ["Bo_GBU12_LGB", _hitpos, [], 0, "none"];
    			_bomb setVelocity [0,0,-500];
    			deleteVehicle _flrObj;
    			hint "boom";
    
    		};
    		sleep random 1;
    	};
    
    };

     

     

    I placed 1 civilian on map as my target and named him beggerm

     

    Call it through init, a trigger, or by another script with this:

     

    bustuup = [beggerm, 5] call Create_flare_bombs;

     

    My internet is to slow to show the results with a video, but try it out and see maybe you'll like it. ;)

    • Like 1

  12. 15 hours ago, tpw said:

    I was thinking the same thing the other day when I saw that autigergrad had released the takistani civs for cup. I will look into adding this. 

    Hi TPW,

     

    You can try something like this to get all civilians, cars, and air that's loaded on players pc.

     

    	private ["_cfgArray","_cfgVehicles"];
    	_CIVMen = [];
    	_CIVAir = [];
    	_CIVCar = [];
    
    	_cfgArray = "(
    	    (getNumber (_x >> 'scope') >= 2) &&
    	    {
    	    	getNumber (_x >> 'side') == 3
    	    }
    	)" configClasses (configFile >> "CfgVehicles");
    
    	_cfgVehicles = [];
    
    	{
    		_cfgVehicles pushBack (configName _x)
    	} forEach _cfgArray;
    
    	for "_c" from 0 to (count _cfgVehicles - 1) do {
    		private ["_current"];
    		_current = _cfgVehicles select _c;
    
    		if (_current iskindof "Man") then {
    
    			_CIVMen pushBack _current;
    
    
    		};
    		if (_current iskindof "Air") then {
    
    			_CIVAir pushBack _current;
    
    
    		};
    		if (_current iskindof "Car") then {
    
    			_CIVCar pushBack _current;
    
    
    		};
    	};

     

    use this to see what all it got:

    hint str [_CIVMen,_CIVAir,_CIVCar]; //or

    CopyToClipboard str [_CIVMen,_CIVAir,_CIVCar];

     

    This is what it gives me on my PC:

     

    Spoiler

    [["Rabbit_F","C_man_1","C_man_1_1_F","C_man_1_2_F","C_man_1_3_F","C_man_polo_1_F","C_man_polo_1_F_afro","C_man_polo_1_F_euro","C_man_polo_1_F_asia","C_man_polo_2_F","C_man_polo_2_F_afro","C_man_polo_2_F_euro","C_man_polo_2_F_asia","C_man_polo_3_F","C_man_polo_3_F_afro","C_man_polo_3_F_euro","C_man_polo_3_F_asia","C_man_polo_4_F","C_man_polo_4_F_afro","C_man_polo_4_F_euro","C_man_polo_4_F_asia","C_man_polo_5_F","C_man_polo_5_F_afro","C_man_polo_5_F_euro","C_man_polo_5_F_asia","C_man_polo_6_F","C_man_polo_6_F_afro","C_man_polo_6_F_euro","C_man_polo_6_F_asia","C_man_p_fugitive_F","C_man_p_fugitive_F_afro","C_man_p_fugitive_F_euro","C_man_p_fugitive_F_asia","C_man_p_beggar_F","C_man_p_beggar_F_afro","C_man_p_beggar_F_euro","C_man_p_beggar_F_asia","C_man_w_worker_F","C_scientist_F","C_man_hunter_1_F","C_man_p_shorts_1_F","C_man_p_shorts_1_F_afro","C_man_p_shorts_1_F_euro","C_man_p_shorts_1_F_asia","C_man_shorts_1_F","C_man_shorts_1_F_afro","C_man_shorts_1_F_euro","C_man_shorts_1_F_asia","C_man_shorts_2_F","C_man_shorts_2_F_afro","C_man_shorts_2_F_euro","C_man_shorts_2_F_asia","C_man_shorts_3_F","C_man_shorts_3_F_afro","C_man_shorts_3_F_euro","C_man_shorts_3_F_asia","C_man_shorts_4_F","C_man_shorts_4_F_afro","C_man_shorts_4_F_euro","C_man_shorts_4_F_asia","C_man_pilot_F","C_journalist_F","C_Orestes","C_Nikos","C_Nikos_aged","C_Driver_1_F","C_Driver_2_F","C_Driver_3_F","C_Driver_4_F","C_Marshal_F","C_Soldier_VR_F","sga_commoner","sga_commoner_hood","sga_commoner_hat","sga_knight_un","C_man_sport_1_F","C_man_sport_1_F_afro","C_man_sport_1_F_euro","C_man_sport_1_F_asia","C_man_sport_1_F_tanoan","C_man_sport_2_F","C_man_sport_2_F_afro","C_man_sport_2_F_euro","C_man_sport_2_F_asia","C_man_sport_2_F_tanoan","C_man_sport_3_F","C_man_sport_3_F_afro","C_man_sport_3_F_euro","C_man_sport_3_F_asia","C_man_sport_3_F_tanoan","C_Man_casual_1_F","C_Man_casual_1_F_afro","C_Man_casual_1_F_euro","C_Man_casual_1_F_asia","C_Man_casual_1_F_tanoan","C_Man_casual_2_F","C_Man_casual_2_F_afro","C_Man_casual_2_F_euro","C_Man_casual_2_F_asia","C_Man_casual_2_F_tanoan","C_Man_casual_3_F","C_Man_casual_3_F_afro","C_Man_casual_3_F_euro","C_Man_casual_3_F_asia","C_Man_casual_3_F_tanoan","C_Man_casual_4_F","C_Man_casual_4_F_afro","C_Man_casual_4_F_euro","C_Man_casual_4_F_asia","C_Man_casual_4_F_tanoan","C_Man_casual_5_F","C_Man_casual_5_F_afro","C_Man_casual_5_F_euro","C_Man_casual_5_F_asia","C_Man_casual_5_F_tanoan","C_Man_casual_6_F","C_Man_casual_6_F_afro","C_Man_casual_6_F_euro","C_Man_casual_6_F_asia","C_Man_casual_6_F_tanoan","CUP_C_C_Pilot_01","CUP_C_C_Citizen_01","CUP_C_C_Citizen_02","CUP_C_C_Citizen_03","CUP_C_C_Citizen_04","CUP_C_C_Worker_01","CUP_C_C_Worker_02","CUP_C_C_Worker_03","CUP_C_C_Worker_04","CUP_C_C_Profiteer_01","CUP_C_C_Profiteer_02","CUP_C_C_Profiteer_03","CUP_C_C_Profiteer_04","CUP_C_C_Woodlander_01","CUP_C_C_Woodlander_02","CUP_C_C_Woodlander_03","CUP_C_C_Woodlander_04","CUP_C_C_Villager_01","CUP_C_C_Villager_02","CUP_C_C_Villager_03","CUP_C_C_Villager_04","CUP_C_C_Priest_01","CUP_C_C_Policeman_01","CUP_C_C_Policeman_02","CUP_C_C_Functionary_01","CUP_C_C_Functionary_02","CUP_C_C_Doctor_01","CUP_C_C_Schoolteacher_01","CUP_C_C_Assistant_01","CUP_C_C_Rocker_01","CUP_C_C_Rocker_02","CUP_C_C_Rocker_03","CUP_C_C_Rocker_04","CUP_C_C_Mechanic_01","CUP_C_C_Mechanic_02","CUP_C_C_Mechanic_03","CUP_C_C_Worker_05","CUP_C_C_Fireman_01","CUP_C_C_Rescuer_01","CUP_C_R_Pilot_01","CUP_C_R_Citizen_01","CUP_C_R_Citizen_02","CUP_C_R_Citizen_03","CUP_C_R_Citizen_04","CUP_C_R_Worker_01","CUP_C_R_Worker_02","CUP_C_R_Worker_03","CUP_C_R_Worker_04","CUP_C_R_Profiteer_01","CUP_C_R_Profiteer_02","CUP_C_R_Profiteer_03","CUP_C_R_Profiteer_04","CUP_C_R_Woodlander_01","CUP_C_R_Woodlander_02","CUP_C_R_Woodlander_03","CUP_C_R_Woodlander_04","CUP_C_R_Villager_01","CUP_C_R_Villager_02","CUP_C_R_Villager_03","CUP_C_R_Villager_04","CUP_C_R_Priest_01","CUP_C_R_Policeman_01","CUP_C_R_Policeman_02","CUP_C_R_Functionary_01","CUP_C_R_Functionary_02","CUP_C_R_Doctor_01","CUP_C_R_Schoolteacher_01","CUP_C_R_Assistant_01","CUP_C_R_Rocker_01","CUP_C_R_Rocker_02","CUP_C_R_Rocker_03","CUP_C_R_Rocker_04","CUP_C_R_Mechanic_01","CUP_C_R_Mechanic_02","CUP_C_R_Mechanic_03","CUP_C_R_Worker_05","CUP_C_R_Fireman_01","CUP_C_R_Rescuer_01"],["C_Heli_Light_01_civil_F","C_Plane_Civil_01_F","C_Plane_Civil_01_racing_F","CUP_C_DC3_CIV","CUP_C_DC3_TanoAir_CIV","CUP_C_C47_CIV","CUP_C_AN2_AEROSCHROT_TK_CIV","CUP_C_AN2_CIV","CUP_C_AN2_AIRTAK_TK_CIV","CUP_C_MI6A_RU","CUP_C_MI6T_RU","CUP_C_Mi17_Civilian_RU","CUP_C_Mi17_VIV_RU"],["C_Offroad_01_F","C_Offroad_01_repair_F","C_Quadbike_01_F","C_Truck_02_covered_F","C_Truck_02_transport_F","C_Hatchback_01_F","C_Hatchback_01_sport_F","C_SUV_01_F","C_Truck_02_fuel_F","C_Truck_02_box_F","C_Van_01_transport_F","C_Van_01_box_F","C_Van_01_fuel_F","C_Kart_01_F","C_Kart_01_Fuel_F","C_Kart_01_Blu_F","C_Kart_01_Red_F","C_Kart_01_Vrana_F","CUP_C_Octavia_CIV","CUP_C_Skoda_White_CIV","CUP_C_Skoda_Red_CIV","CUP_C_Skoda_Blue_CIV","CUP_C_Skoda_Green_CIV","CUP_C_Golf4_red_Civ","CUP_C_Golf4_black_Civ","CUP_C_Golf4_yellow_Civ","CUP_C_Golf4_blue_Civ","CUP_C_Golf4_white_Civ","CUP_C_Golf4_green_Civ","CUP_C_Golf4_random_Civ","CUP_C_Golf4_whiteblood_Civ","CUP_C_Golf4_camo_Civ","CUP_C_Golf4_camodigital_Civ","CUP_C_Golf4_camodark_Civ","CUP_C_Golf4_reptile_Civ","CUP_C_Golf4_kitty_Civ","CUP_C_Golf4_crowe_Civ","C_Offroad_02_unarmed_F","CUP_C_Datsun","CUP_C_Datsun_4seat","CUP_C_Datsun_Plain","CUP_C_Datsun_Covered","CUP_C_Datsun_Tubeframe","CUP_C_Ikarus_TKC","CUP_C_Ikarus_Chernarus","CUP_C_LR_Transport_CTK","CUP_C_UAZ_Unarmed_TK_CIV","CUP_C_UAZ_Open_TK_CIV","CUP_C_Ural_Civ_01","CUP_C_Ural_Civ_02","CUP_C_Ural_Civ_03","CUP_C_Ural_Open_Civ_01","CUP_C_Ural_Open_Civ_02","CUP_C_Ural_Open_Civ_03","CUP_C_V3S_Open_TKC","CUP_C_V3S_Covered_TKC","CUP_C_SUV_TK","CUP_C_SUV_CIV"]]

     

    Hope this helps. Always loved your mods

    • Like 2

  13. I edited the grabber. It works good. I've not got the mapper working 100% yet. At rate I'm going Bis will fix it. The Bis Mapper works but if you make like a house with Mg's at windows. They all spawn in laying down. But here is a grabber that can get you guys started.

    _CompGrab = {
    	/*
    	File: objectGrabber.sqf
    	Author: Joris-Jan van 't Land
    
    	Description:
    	Converts a set of placed objects to an object array for the DynO mapper.
    	Places this information in the debug output for processing.
    
    	Parameter(s):
    	_this select 0: position of the anchor point (Array)
    	_this select 1: size of the covered area (Scalar)
    	_this select 2: grab object orientation? (Boolean) [default: false]
    
    	Returns:
    	Ouput text (String)
    	*/
    
    	private ["_anchorPos", "_anchorDim", "_grabOrientation"];
    	_anchorPos = _this param [0, [0, 0], [[]]];
    	_anchorDim = _this param [1, 50, [-1]];
    	_grabOrientation = _this param [2, false, [false]];
    
    	private ["_objs"];
    	_objs = nearestObjects [_anchorPos, ["house"], _anchorDim];
    	_objsALL = nearestObjects [_anchorPos, ["All"], _anchorDim];
    	_objsALL = _objsALL - _objs;
    	_objs append _objsALL;
    	//Formatting for output
    	private ["_br", "_tab", "_outputText"];
    	_br = toString [13, 10];
    	_tab = toString [9];
    
    	//Adding meta-data
    	//_outputText = "/*" + _br + "Grab data:" + _br;
    	//_outputText = _outputText + "Mission: " + (if (missionName == "") then {"Unnamed"} else {missionName}) + _br;
    	//_outputText = _outputText + "World: " + worldName + _br;
    	//_outputText = _outputText + "Anchor position: [" + (str (_anchorPos select 0)) + ", " + (str (_anchorPos select 1)) + "]" + _br;
    	//_outputText = _outputText + "Area size: " + (str _anchorDim) + _br;
    	//_outputText = _outputText + "Using orientation of objects: " + (if (_grabOrientation) then {"yes"} else {"no"}) + _br + "*/" + _br + _br;//
    	_outputText = [];//"[";//_outputText + "[" + _br;
    	//hint str _outputText;sleep 5;
    	//_outputText = [];
    	//First filter illegal objects
    	{
    		//Exclude non-dynamic objects (world objects)
    		private ["_allDynamic"];
    		_allDynamic = allMissionObjects "All";
    
    		if (_x in _allDynamic) then
    		{
    			//Exclude characters
    			private ["_sim"];
    			_sim = getText (configFile >> "CfgVehicles" >> (typeOf _x) >> "simulation");
    
    			if (_sim in ["soldier"]) then
    			{
    				_objs set [_forEachIndex, -1];
    			};
    		}
    		else
    		{
    			_objs set [_forEachIndex, -1];
    		};
    	} forEach _objs;
    
    	_objs = _objs - [-1];
    
    	//Process remaining objects
    	{
    		private ["_type", "_ASL", "_objPos", "_dX", "_dY", "_z", "_azimuth", "_fuel", "_damage", "_orientation", "_varName", "_init", "_simulation", "_replaceBy", "_outputArray"];
    		_type = typeOf _x;
    		_ASL = _x getVariable ["ASL", false];
    		if (!_ASL) then {_objPos = position _x;} else {_objPos = getPosASL _x;}; //To cover some situations (inside objects with multiple roadways)_objPos = _x modelToWorld [0,0,0];//
    		_anTH = getTerrainHeightASL _anchorPos;
    		_mvTH = getTerrainHeightASL _objPos;
    		_Th = _mvTH - _anTH;
    		_dX = (_objPos select 0) - (_anchorPos select 0);
    		_dY = (_objPos select 1) - (_anchorPos select 1);
    		//_z = (_objPos select 2) - (_anchorPos select 2);
    		_z = (_objPos select 2);//(_Th + ((_anchorPos select 2) - (_objPos select 2)));
    		_azimuth = direction _x;
    		_fuel = fuel _x;
    		_damage = damage _x;
    		if (_grabOrientation) then {_orientation = _x call BIS_fnc_getPitchBank;} else {_orientation = [];};
    		_varName = vehicleVarName _x;
    		_init = _x getVariable ["init", ""];
    		//TODO: re-enable once 3D editor simulation is fixed
    		//_simulation = simulationEnabled _x;
    		_simulation = _x getVariable ["simulation", true];
    
    		_replaceBy = _x getVariable ["replaceBy", ""];
    		if (_replaceBy != "") then {_type = _replaceBy;};
    
    		_outputArray = [_type, [_dX, _dY, _z], _azimuth, _fuel, _damage, _orientation, _varName, _init, _simulation, _ASL];
    		//_outputText = _outputText + _tab + (str _outputArray);
    		//_outputText = if (_forEachIndex < ((count _objs) - 1)) then {_outputText + ", " + _br} else {_outputText + _br};
    		_outputText pushBack _outputArray;
    		debugLog (format ["Log: objectGrabber: %1", _outputArray]);
    	} forEach _objs;
    
    	//_outputText = _outputText + "]";
    	//copyToClipboard str _outputText;
    	//hint str _outputText;
    	_outputText
    };

     


  14. I've got a few scripts started for finding static for AISS that I never finished to add to AISS. Basically the scripts use the find function to find out what a bag may be holding. I remember I was fairly close. I've kind of abandoned everything do to moving and work. If you'd like to take a look and can use them let me know I'll see if I can knock some of the dust off them and send them your way.

×