Jump to content

beako

Member
  • Content Count

    67
  • Joined

  • Last visited

  • Medals

Posts posted by beako


  1. Thanks folks,

     

    But the issues is the unit does not go to the position at the building. I did try nearestBuilding but that does not work and if I setPos to the buildingPos the soldier leaves and goes back down under/inside the building.

     

    As per below, perhaps I have to specify the building model from CfgVehicles?

     

    Notes from before the conversion:These examples will move a unit to the 1st position specified in a buildings model, in the second example - bunker1.

    this move (building buildingPos 1);

    this move (bunker1 buildingPos 1);

     

    In the default game buildings, the buildingPos is usually right behind a window. This can make it easy to place units in the windows of buildings, by putting the unit near a building and putting this in its init field:

    this setPosATL ((nearestBuilding this) buildingPos 1);

     

    The location returned by buildingPos is not reliable after the player has exited and then resumed the mission. For code that is executed immediately after the mission starts there is no problem. If buildingPos locations are to be accessed during the mission when the player may have exited and then resumed, save the locations you require at the start of the mission and use these saved locations in your subsequent scripts.

     

     

    Any thoughts?


  2. Thanks above for the tips,

     

    I tried using remoteExecCall  with target "_veh" as it is local, but is does not execute.

     

    If I replace  "_veh" with player  [_holder,_veh, _vehCost,_vehType] remoteExecCall ["BEAKS_fnc_ObjectPosDirBankPitch", player]; it works but when I test fn_ObjectPosDirBankPitch.sqf with if if (!isServer) then {...}; it won't execute so player is not local.

     

    fn_ObjectPositionAndDirectionD

    // init Ghost vehicle   
    _pos =  screenToWorld [0.5,0.5];// land position  
    _center = createCenter sideLogic; 
    _group = createGroup _center; 
    
    _holder = _group createUnit ["LOGIC",[(_pos select 0), (_pos select 1), 0.5], [],0, "CAN_COLLIDE"];
    _veh = _vehType createVehicleLocal [(_pos select 0), (_pos select 1),  0.5];
    _veh allowDamage false;	
    _veh attachTo [_holder]; 	// to avoid collisions use attachTo 
    
    [_holder,_veh, _vehCost,_vehType] remoteExecCall ["BEAKS_fnc_ObjectPosDirBankPitch", _veh];
    

    fn_ObjectPosDirBankPitch.sqf

    if (!isServer) then {
    
    	// Get variables from vehicle selected
    	params ["_holder","_veh","_vehCost","_vehType"];
    	
    	HintC format ["ObjectPosDirBankPitch \n\n local _veh: %1 \n\n local _holder: %2", local _veh, local _holder];
    
    
    	// to rotate vehicle use mouse scroll wheel to terminate and spawn press backspace button. 
    	disableSerialization; 
    	
    	dir1 = 0;// may need changing to setvariable 
    	missionnamespace setvariable ["place",false]; 
    	missionnamespace setvariable ['cancel',false]; 
    	// setup mouse/keyboard buttons 
    	waituntil {!(IsNull (findDisplay 46))}; 
    	disableSerialization; 
    	_mouseZ  = (findDisplay 46) displayAddEventHandler ["MouseZChanged","if ((_this select 1) <0) then {dir1=dir1+(abs (_this select 1)*2)} else {dir1=dir1-(abs (_this select 1)*2)}"];// mouse scroll 
    	 _mouseM  = (findDisplay 46) displayAddEventHandler ["MouseButtonDown", "if (_this select 1 == 1) then {missionnamespace setvariable ['place',true]};"];// left mouse button down
    	 _backspace  = (findDisplay 46) displayAddEventHandler ["KeyDown", "if (_this select 1 == 14) then {missionnamespace setvariable ['cancel',true]}"];
    
    	// line that intersect building roofs from 100m above
    	_pos = screenToWorld [0.5,0.5];
    	_topPos = [];
    	_intersectPosASL = [];
    	_intersections = [];
    	_surfaceNormal = [];
    	_building = objNull;
    	_buildingArray = [];
    	_topPos = [_pos select 0, _pos select 1, 100];
    	_intersections = lineIntersectsSurfaces [_topPos,_pos, player, objNull, true, 1];
    	_intersectPosASL = (_intersections select 0) select 0;
    	_surfaceNormal = (_intersections select 0) select 1;
    	_building = (_intersections select 0) select 3; 
    				
    	//for "_x" from 0 to 3 do {_veh setObjectTexture [_x, "#(rgb,8,8,3)color(0,0.5,0,1)"]};   // set texture colours   
    	//_veh attachto [_holder]; 	// to avoid collisions use attachto 
    	
    	
    	
    	// Move Ghost this bit may need the oneachframe commands  
    	temp_hol = _holder; 
    	temp_veh = _veh; 
    	player  disableCollisionWith _veh; 
    	disabled = [];
    
    	["move_ghost", "onEachFrame", {  
    		_pos = screenToWorld [0.5,0.5];// land position 
    		_topPos = [_pos select 0, _pos select 1, 100];
    		_intersections = lineIntersectsSurfaces [_topPos,_pos, temp_veh, player, true, 1];
    		_intersectPosASL  = (_intersections select 0) select 0;
    		_surfaceNormal = (_intersections select 0) select 1;
    		_building = (_intersections select 0) select 3; 
    		_posDrop = _intersectPosASL;
    		temp_veh setPosASL [_intersectPosASL select 0, _intersectPosASL select 1, _intersectPosASL select 2];
    		temp_veh setVectorUp _surfaceNormal;
    
    		//hint format ["ObjectPositionAndRotation \n\n  _intersections: %1 \n\n _intersectPosASL: %2 \n\n _surfaceNormal: %3 \n\n _building: %4", _intersections, _intersectPosASL, _surfaceNormal, _building];
    
    		// DROP ASSETS IF IN RANGE 	[_box, _boxPos] call KK_fnc_setPosAGLS;
    		if ((typeOf temp_veh == "B_Plane_CAS_01_F") or (typeOf temp_veh == "O_Plane_CAS_02_F") or (typeOf temp_veh == 	"B_MBT_01_arty_F") or (typeOf temp_veh == "O_MBT_02_arty_F")) then {
    				if ((_pos distance player) > 500) then {
    					// SET TEXTURE COLOUR FOR OUT OF RANGE   
    					for "_x" from 0 to 3 do {temp_veh setObjectTexture [_x, "#(rgb,8,8,3)color(0.5,0,0,1)"]}; 
    					hint "OUT OF RANGE \n CANNOT PLACE HERE";
    					missionNamespace setVariable ["dropHere", FALSE];
    					missionnamespace setvariable ["place",FALSE]; 
    				} else {
    					// SET TEXTURE COLOUR FOR IN RANGE  
    					for "_x" from 0 to 3 do {temp_veh setObjectTexture [_x, "#(rgb,8,8,3)color(0,0.5,0,1)"]}; 
    					hintSilent "Use mouse wheel to rotate object. \n Use right mouse button to select unit. \n Use backspace to cancel."; 
    					missionNamespace setVariable ["dropHere", TRUE];
    				}; 
    			// ALL OTHER ASSETS
    			} else {   
    				if ((_pos distance player) > 50) then {
    						// SET TEXTURE COLOUR FOR OUT OF RANGE   
    						for "_x" from 0 to 3 do {temp_veh setObjectTexture [_x, "#(rgb,8,8,3)color(0.5,0,0,1)"]}; 
    						hint "OUT OF RANGE \n CANNOT PLACE HERE";
    						missionNamespace setVariable ["dropHere", FALSE];
    						missionnamespace setvariable ["place",FALSE]; 
    						//hint format ["temp_veh: %1 \n ""B_Plane_CAS_01_F"":%2",typeOf temp_veh, (typeOf temp_veh == "B_Plane_CAS_01_F")];
    					} else {
    						// SET TEXTURE COLOUR FOR IN RANGE  
    						for "_x" from 0 to 3 do {temp_veh setObjectTexture [_x, "#(rgb,8,8,3)color(0,0.5,0,1)"]}; 
    						//hintSilent "Use mouse wheel to rotate object. \n Use right mouse button to select unit. \n Use backspace to cancel."; 	
    						missionNamespace setVariable ["dropHere", TRUE];
    					}; 
    			};	
    				   //deactivate all mines in range of ghost vehicle
    					{
    							if ((_x distance temp_veh < 10) and (_x distance player > 2)) then {
    								if !(_x in disabled)  then {
    									disabled pushBack _x;
    								};
    								_x enableSimulation false;								
    							} else { 
    								if (_x distance player < 2) then {	// unless the player is nearby 
    								_x enableSimulation true;
    								};
    							};
    					} forEach allMines;
    
    				   //temp_hol setpos _pos; 
    				   temp_hol setpos [(_pos select 0), (_pos select 1), (_pos select 2) + 0.5];
    				   temp_veh setDir (getdir player )+ dir1;
    
    				   //temp_hol setVectorUp surfaceNormal position temp_hol; 
    				   temp_hol setVectorUp surfaceNormal getPosATL temp_hol; 
    
    	}] call BIS_fnc_addStackedEventHandler; 
    
    	waituntil {missionnamespace getvariable ["dropHere",false] && missionnamespace getvariable ["place",false] or missionnamespace getvariable ["cancel",false]};
    	_posDrop = getPosASL temp_veh;
    	[temp_veh, _posDrop] call KK_fnc_setPosAGLS;
    
    	["move_ghost", "onEachFrame"] call BIS_fnc_removeStackedEventHandler;// terminates oneachframe 
    
    
    	player  disableCollisionWith _veh; 
    	_vehDir = getDir _veh;
    	//{_x setPosASL [0,0,0]} forEach [_veh, temp_veh, _holder];
    
    	//reactivate mines back 
    	//hint format ["reactivated disabled mines: %1", disabled];
    	_disabledAPMinePositions = [];
    	_disabledATMinePositions = [];
    	{
    		//_x enableSimulation TRUE;
    		//GET THE POSITION forEach mine 
    		if ((typeOf _x) == "APERSMine_Range_Ammo") then {
    			_disabledAPMinePositions pushBack [(getPosATL _x) select 0, (getPosATL _x) select 1, 0];
    		};
    			if ((typeOf _x) == "ATMine_Range_Ammo") then {
    			_disabledATMinePositions pushBack [(getPosATL _x) select 0, (getPosATL _x) select 1, 0];
    		};
    		deleteVehicle _x;	
    	} forEach disabled;
    
    	// REPLACE EACH POSITION WITH A MINE
    	_mine = [];
    	{
    		//_disabledAPMinePositions set [2,0];
    		_APmine = createMine ["APERSMine", _x, [], 0];
    		//_ATmine = createMine ["ATMine", _x, [], 0];
    		_mine pushBack _APmine;
    	} forEach _disabledAPMinePositions;
    	{
    		//_disabledAPMinePositions set [2,0];
    		_ATmine = createMine ["ATMine", _x, [], 0];
    		_mine pushBack _ATmine;
    	} forEach _disabledATMinePositions;
    
    	{side player revealMine _x} forEach _mine;
    
    	{deleteVehicle _x} forEach [_veh,temp_veh,_holder];
    	//deleteVehicle _veh;// remove Ghost 
    	//deleteVehicle temp_veh;// remove Ghost 
    	//deleteVehicle _holder; 
    	sleep 0.2; // allow time for removal of Ghost 
    
    	// Spawn actual vehicle or  call another script and reactivate mines back 
    	switch (true) do { 
    		case   ((_vehType iskindof "car") or (_vehType iskindof "tank") and !(((_vehType == "B_MBT_01_arty_F") or (_vehType == "O_MBT_02_arty_F")))) : { if !(missionnamespace getvariable "cancel") then {{_x enableSimulation true} forEach disabled, [_posDrop, _vehDir,_vehType] spawn BEAKS_fnc_cargoPlane, [ _vehCost, "DNA_fnc_removeMoney", side player ] spawn BIS_fnc_MP};};
    		case   (_vehType iskindof "StaticWeapon") : {if !(missionnamespace getvariable "cancel") then {{_x enableSimulation true} forEach disabled, [_posDrop, _vehDir,_vehType,0,_intersections] spawn BEAKS_fnc_cargoPlane,[ _vehCost, "DNA_fnc_removeMoney", side player ] spawn BIS_fnc_MP};};
    		case   (_vehType iskindof "Man") : {if !(missionnamespace getvariable "cancel") then {{_x enableSimulation true} forEach disabled, [_posDrop, _vehDir,_vehType] spawn BEAKS_fnc_cargoPlane, [ _vehCost, "DNA_fnc_removeMoney", side player ] spawn BIS_fnc_MP};};
    
    		case   ((_vehType == "B_Plane_CAS_01_F") or (_vehType == "O_Plane_CAS_02_F")) : {if !(missionnamespace getvariable "cancel") then {{_x enableSimulation true} forEach disabled, [_vehType, _vehDir, _posDrop, 2] spawn BEAKS_fnc_BCAS, [ _vehCost, "DNA_fnc_removeMoney", side player ] spawn BIS_fnc_MP};};
    		case   ((_vehType == "B_MBT_01_arty_F") or (_vehType == "O_MBT_02_arty_F")) : {if !(missionnamespace getvariable "cancel") then {{_x enableSimulation true} forEach disabled, [_vehType, _posDrop, 2] spawn BEAKS_fnc_Artillery, [ _vehCost, "DNA_fnc_removeMoney", side player ] spawn BIS_fnc_MP};};
    	}:
    
    	//deleteVehicle _holder; 
    	sleep 0.2; 
    	missionnamespace setvariable ["place",true];// rest to allow respawn  
    	sleep 0.2; 
    	(finddisplay 46) displayRemoveAllEventHandlers "MouseZChanged";
    	(finddisplay 46) displayRemoveAllEventHandlers "MouseButtonDown";   
    	(finddisplay 46) displayRemoveAllEventHandlers "KeyDown";  
    
    	//(finddisplay 46) displayremoveeventhandler ["MouseZChanged",_mouseZ];  
    	//(finddisplay 46) displayremoveeventhandler ["MouseButtonDown",_mouseM];   
    	//(finddisplay 46) displayremoveeventhandler ["KeyDown",_backspace];  
    	dir1 = 0;  
    
    };

  3. Hi All, 

     

    I'm spawning objects on top of buildings while trying to orient  "temp_veh" using setVectorUp to the buildings slanted surface, but with no luck.

     

    As per setVectorUp, "Set object's up vector. Direction vector will remain unchanged. Default object's vectorUp is [0,0,1]. In Multiplayer, setVectorUp must be executed on the machine where the object it applied to is local."

     

    I've tried to run this script from [[_stuff], "BEAKS_fnc_ObjectPositionAndDirectionD", player] call BIS_fnc_MP; thinking this would execute it locally on the player's machine but it is still executed on the server?

     

    fn_ObjectPositionAndDirectionD

    ["move_ghost", "onEachFrame", {
      
    ...more code
    
        _pos = screenToWorld [0.5,0.5];// land position 
    		_topPos = [_pos select 0, _pos select 1, 100];
    		_intersections = lineIntersectsSurfaces [_topPos,_pos, temp_veh, player, true, 1];
    		_intersectPosASL  = (_intersections select 0) select 0;
    		_surfaceNormal = (_intersections select 0) select 1;
    		_building = (_intersections select 0) select 3; 
    		_posDrop = _intersectPosASL;
    		temp_veh setPosASL [_intersectPosASL select 0, _intersectPosASL select 1, _intersectPosASL select 2]; // this part works
    		temp_veh setVectorUp _surfaceNormal;  // this line DOES NOT work
    
    	hint format ["ObjectPositionAndRotation \n\n  _intersections: %1 \n\n _intersectPosASL: %2 \n\n _surfaceNormal: %3 \n\n _building: %4", _intersections, _intersectPosASL, _surfaceNormal, _building];
    
    ... more code
    
    }] call BIS_fnc_addStackedEventHandler; 
    

    Any tips you can provide would be appreciated.

    Thanks


  4. Hi All,

     

    I'm trying to customize the respawn menu with my own music but it's not playing anything, I don't get any errors in the debug console either. 

     

    added to description.ext

    class CfgMusic
    {
    	tracks[]={};
    	class OutfitMenuMusic
    	{
    		name = "OutfitMenuMusic";
    		sound[] = {"\Music\OutfitMenuMusic.ogg", db+0, 1.0};
    	};
    };
    

    added to initPlayerLocal.sqf

    //BI RESPAWN MENU - IDD 58 PLAY OutfitMenuMusic
    if (!isDedicated) then { 
    	waitUntil {!(isNull (findDisplay 58))}; //58
    	if (isNil "BEAK_MUSIC_INIT") then {
    		BEAK_MUSIC_INIT = 1;
    		playMusic "OutfitMenuMusic";
    		_music = addMusicEventHandler ["MusicStop",{playMusic (_this select 0)}];
    		waitUntil {isNull (findDisplay 58)};  //58
    		removeMusicEventHandler ["MusicStop",_music];
    		playMusic "";
    	};  
    };
    

    added folder "Music" in my mission file with the OutfitMenuMusic.ogg that works.

     

     


  5. Hi Everyone,

     

    I am using the sectors module from the good ol' 2D Editor, but would like the respawn at the sectors to indicate the text I choose and not the coordinates of the VR (see linked picture below). Does anyone know how to do this?

    http://steamcommunity.com/sharedfiles/filedetails/?id=732217516

     

    I've tried changing the names and description on the sector module, trigger, area with not joy.

    
    
    						

  6. Thanks again jshock,

     

    The arguements your're passing into the function within the stackedEH call don't exist, so you need to instantiate those variables before adding the stackedEH, then "_this" within the code executed in the stackedEH will actually contain defined values for the draw function to use.

     

    I tested it using based on your comment above, by initiating the variables before calling the stackedEH like so:

    _randomSectorDestination = sector1;
    _AIintel = 1;
    _grp = group _soldier; 
    _addNew = [_key, "onEachFrame", {_this spawn BEAKS_fnc_Draw3DNEW}, [_randomSectorDestination, _AIintel, _grp] ] call BIS_fnc_addStackedEventHandler;
    

    and 

    fn_Draw3DNEW.sqf

    _randomSectorDestination = _this select 0;
    _AIintel = _this select 1;
    _grp = _this select 2;
    _enemyArray = [];  
    _distance = 0;
    _displayName = "";
    _picture = "";
    _icon = "";
    _leader = leader _grp;
    
    {if (((side _x) == AIside)  && (isFormationLeader _x)) then {_enemyArray pushBack _x}} forEach units _grp;		
    	{
    		private ["_private", "_displayName", "_picture", "_unitPos", "_text", "_distance", "_leaderDestination"];
    		
    		if (vehicle _x != _x) then {_x = vehicle _x};
    		_distance = round (_x distance ( _randomSectorDestination));
    		_displayName = getText (configfile >> "CfgVehicles" >> typeOf _x >> "displayName");
    		
    		if (isPlayer _randomSectorDestination) then {_randomSectorDestination = name vehicle _randomSectorDestination};
    		_text = str(parseText format["%1 men %2m to %3",count units _grp, (str _distance), _randomSectorDestination ]);
    		_picture = "";
    		_icon = "";
    		
    		if (_x isKindOf "LandVehicle") then {
    			_picture = getText (configfile >> "CfgVehicles" >> typeOf _x  >> "picture");
    		} else {
    			_icon =  getText (configFile >> "CfgVehicles" >> typeOf _x >> "Icon");
    			_picture = getText (configFile >> "CfgVehicleIcons" >> _icon);  
    		};
    			
    		drawIcon3D [
    			_picture,
    			[1,0,0,1],
    			[(visiblePosition _x) select 0,(visiblePosition _x) select 1,((visiblePosition _x) select 2) + 10],
    			0.8,
    			0.5,
    			0,
    			_text,
    			0,
    			0.03,
    			"PuristaMedium"
    		];
    	} forEach _enemyArray; 
    
    

     

    BUT unfortunately, it still is not working?

     


  7. It's because these variables: _randomSectorDestination, _info, _grp, don't exist in the scope of the addStackedEventHandler call. They exist in the draw function, but not outside of it.

     

    OK thanks, so then there is no way to pass these variables to  addStackedEventHandler ? 

     

    What are the arguments then in? [key, event, code, arguments] call BIS_fnc_addStackedEventHandler;

     

     

    I thought they were arguments for the code ... such as [_this] spawn BEAKS_fnc_Draw3DNEW?

     

     


  8. Hi Folks,

     

    I followed the sticky on Stached event handlers - OnEachFrame, OnPlayerConnected, etc but still couldn't sort this out.

     

    Firstly, I'm trying to create a function that will run whenever a unit or vehicle is spawned in the game and,

     

    secondly, pass the arguments [_randomSectorDestination, _AIintel, _grp] to the function when calling BIS_fnc_addStackedEventHandler.

     

    I've tried the including the following in my scripts whenever I have a unit or vehicle spawn:

    _addNew = [_key, "onEachFrame", {[_this] spawn BEAKS_fnc_Draw3DNEW}, [_randomSectorDestination, _AIintel, _grp] ] call BIS_fnc_addStackedEventHandler

    thinking that _this would include the array  [_randomSectorDestination, _AIintel, _grp], but it doesn't pass the arguments? I created fn__Draw3DNEW.sqf and added to my descrition.ext class CfgFunctions.

     

    Instead, wherever I create a unit or vehicle spawn I have copied and pasted the following, but this seems needlessly repetitive?

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    	fn_Draw3DNEW = {
    	_randomSectorDestination = _this select 0;
    	_AIintel = _this select 1;
    	_grp = _this select 2;
    	_enemyArray = [];  
    	_distance = 0;
    	_displayName = "";
    	_picture = "";
    	_icon = "";
    	_leader = leader _grp;
    
    	{if (((side _x) == AIside)  && (isFormationLeader _x)) then {_enemyArray pushBack _x}} forEach units _grp;		
    		{
    			private ["_private", "_displayName", "_picture", "_unitPos", "_text", "_distance", "_leaderDestination"];
    			//_unit = _x; //typeOf cursorTarget;
    			//_leaderDestination = _leader getVariable '_randomSectorDestination';
    			if (vehicle _x != _x) then {_x = vehicle _x};
    			//_distance = round (_x distance player);
    			_distance = round (_x distance ( _randomSectorDestination));
    			_displayName = getText (configfile >> "CfgVehicles" >> typeOf _x >> "displayName");
    			if (isPlayer _randomSectorDestination) then {_randomSectorDestination = name vehicle _randomSectorDestination};
    			_text = str(parseText format["%1 men %2m to %3",count units _grp, (str _distance), _randomSectorDestination ]);
    			_picture = "";
    			_icon = "";
    			if (_x isKindOf "LandVehicle") then {
    				_picture = getText (configfile >> "CfgVehicles" >> typeOf _x  >> "picture");
    			} else {
    				_icon =  getText (configFile >> "CfgVehicles" >> typeOf _x >> "Icon");
    				_picture = getText (configFile >> "CfgVehicleIcons" >> _icon);  
    			};
    				
    			drawIcon3D [
    				_picture,
    				[1,0,0,1],
    				[(visiblePosition _x) select 0,(visiblePosition _x) select 1,((visiblePosition _x) select 2) + 10],
    				0.8,
    				0.5,
    				0,
    				_text,
    				0,
    				0.03,
    				"PuristaMedium"
    			];
    			player reveal [_x, 4];
    			{[_x, 1] showWaypoint "ALWAYS" } forEach allGroups;
    		} forEach _enemyArray; 
    			////hint format ["%1 \n %2m \n _grp: %3", _displayName, (str _distance), _grp];
    
    	};
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    	
    private ["_addNew", "_time", "_key"];
    _time = time;
    _key = str (_time);
    // initial addStackedEventHandler for player hunt or sectorDestination
    _addNew = [_key, "onEachFrame", "fn_Draw3DNEW", [_randomSectorDestination, _info, _grp] ] call BIS_fnc_addStackedEventHandler; 

  9. HI All,
     
    I have a killcam script being called in onPlayerKilled but it is being overrun by the respawn menu I have set-up from the description.
     
    description.ext

    respawn = "BASE";
    respawnDelay = 10;  // TIME DELAY BEFORE RESPAWN
    respawnButton = 0; // 0 - to disable respawn button in pause menu DOES NOT WORK USING SCRIPT INSTEAD TO RESOLVE
    respawnTemplates[] = {"MenuInventory","MenuPosition"};
    

    How can I delay the respawnTemplate menu so the killcam script in onPlayerKilled can be completed first?


  10. Hi Folks,

    I wanted to see it was feasible to create a bullet cam script in multiplayer to play back a slow motion cut scene of the player's death from within the respawn menu?

    I assume it cannot be done since setAccTime cannot be used in MP as per the description?

    Set time acceleration coefficient. May be also used to slow time in cutscenes. This command does NOT work in multiplayer. accFactor is clamped to [1/128; 4]

    https://community.bistudio.com/wiki/setAccTime

    .


  11. Hi all,

    Does anyone know of a command or short script that check if a unit has line of sight to another unit?

    I'm trying to get my UAV to target a unit but had to cheat by attaching a laser to the unit instead. I've tried a bunch of things like assignTarget, knowsAbout, forceaFireWeapon of mounter laser and doFire...etc, but had no luck.

    As a workaround, Now i will remove the attached laser whenever the unit goes out of sight from the UAV.

    • Like 1

  12. Ok, I will probably need to see the mission again.

    I think the trigger will need to be replaced with a looping script at some point.

    Out of A2/OA/A3 I've only played one training mission, I just prefer the editor and puzzle solving.

    I'm thinking it might be best if you would play test it against me online...whenever you're available?

    This way you can see the problem and I can explain it while in game? Not sure if you're familiar with the XBOX 360 game from 2006 "The Outfit", but basically

    Forgive the annoying kids playing...

×