Jump to content

fn_Quiksilver

Member
  • Content Count

    2697
  • Joined

  • Last visited

  • Medals

Posts posted by fn_Quiksilver


  1. Updated to 1.5.6

    Stability & bug fixes
     

    * 1.5.6 is now current Stable Build

     

    [ADDED] Interaction to 'Pack Up' vehicles and wrecks into logistics cargo containers.
    [ADDED] Interaction to set stance of guard AI (base building)
    [ADDED] Parameter to adjust how often server prints general info reports to RPT log.
    [TWEAKED] Various ongoing general scripting optimisations (A3 2.14)
    [TWEAKED] GPS alternate mode ( Ctrl + ] ) now properly rotates player icon.
    [TWEAKED] Better handling of vehicles submerged in water (drowned).
    [TWEAKED] Bobcat mine clearance would spam notification messages.
    [TWEAKED] Zeus can now repair vehicles and heal units, with same "revive selected unit" key binding (Numpad 7).
    [TWEAKED] Zeus numpad key bindings also now have alternate corresponding Custom key binding options.
    [TWEAKED] Zeus garrison function to work for ammo boxes and small objects to be placed into buildings.
    [TWEAKED] Zeus Placing soldiers near Destroyer ship will now garrison them onto the ship.
    [TWEAKED] Zeus Placing objects near destroyer will place them onto destroyer helipad (be careful, collision enabled!)
    [TWEAKED] Zeus Placing objects under carrier will place them on ship deck directly above (if the carrier is directly above).
    [TWEAKED] Zeus Placing crewed aircraft on water will put them into flight automatically.
    [TWEAKED] Zeus Placing crewed aircraft while holding [Alt] will spawn them in flight.
    [TWEAKED] Zeus will no longer hear strong gusty wind noise when zeus camera is at high altitude.
    [TWEAKED] Zeus view distance will adjust dynamically when entering/exiting interface (syncs to "Plane" visibility setting).
    [TWEAKED] Passenger in UGV Stomper can now drive the vehicle without a UAV Terminal.
    [TWEAKED] Main Battle Tank cannon recoil dampening now only works when stationary.
    [TWEAKED] Reduced mass of small cargo containers to allow HEMTT flatbed to carry two at once.
    [TWEAKED] Recruitable AI placed in editor can be spawned on elevated surfaces.
    [TWEAKED] Added AI garrison positions to cargo plaftorms.
    [TWEAKED] Unarmed UGV Stomper given Forklift abilities.
    [TWEAKED] Player can now use the "Eject" key binding when incapacitated in a vehicle.
    [TWEAKED] Vehicle passive stealth algorithm for missile passive countermeasures.
    [TWEAKED] Improved player survivability in armored vehicles.
    [TWEAKED] Turning off vehicle engine clears any active cruise control.
    [TWEAKED] Cargo could not be unloaded from wrecks.
    [TWEAKED] Damage disabled on many fortifications.
    [TWEAKED] Added build delay to sandbags setup.
    [TWEAKED] Packing up and unpacking vehicles requires Repair services nearby.
    [TWEAKED] The "Engine Toggle" key binding will now force AI driver to turn off vehicle engine (if player is commander).
    [TWEAKED] Boats can now be unflipped.
    [TWEAKED] Inflatable boats given "Forklift" ability to act as a ferry (for logistics containers, etc).
    [TWEAKED] Required enemy distance for packing/unpacking deployments.
    [FIXED] Player in seat of vehicle could fire when inside no-fire area.
    [FIXED] Z-axis issue with spawning units in buildings (units spawning way above building and falling down).
    [FIXED] Script error with group commands (Ctrl + numpad gestures).
    [FIXED] Winch system could get stuck in an unbreakable script loop.
    [FIXED] Using Arsenal Mode 3 in parameters would cause player to get stuck accessing Arsenal after changing roles.
    [FIXED] T100X Futura tank now fires properly
    [FIXED] Server would get stuck in a reboot loop if only one daily restart was set in parameters.
    [FIXED] Script Errors event was not saving unique script errors properly.
    [FIXED] Case sensitivity bug with enemy reinforcing in urban areas. Enemies should respawn in urban areas more reliably.
    [FIXED] New logistics containers were not having their mass set correctly over MP network.
    [FIXED] Tank commander (with AI driver) was unable to manage Cruise Control and Convoy Separation.
    [FIXED] Winch could hook onto unwanted objects (player weapons, etc) and then remain suspended in midair.
    [FIXED] Bug in Vehicle Cargo where unload menu could display non-unloadable items.
    [FIXED] "Forklift" function was non-functional on packed vehicles and wrecks.
    [FIXED] Malden default base respawn marker.
    [FIXED] Opening vehicle parachute could cause cause upward velocity in some cases.
    [FIXED] AI bug with dynamic stance adjustment (case sensitivity).
    [REMOVED] Changes to the Unflip interaction and Unflip parameter.


  2. On 10/8/2023 at 2:46 PM, redarmy said:

    Interesting. Can you elaborate? "gearslot" itemname(custom class name?) 611(whats this reference?)

     

    Essentially are you saying there are gear slots for NVG's,compass,map etc etc and i can detect them as there or not,modded or vanilla more easily?

     

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

     

    There are hardcoded slot numbers

     

    603 - Goggles

    605 - Headgear

    608 - Map

    609 - Compass

    610 - Watch

    611 - Radio

    612 - GPS

    616 - HMD

    617 - Binoculars

    701 - Vest

    801 - Uniform

    901 - Backpack

     

    So if you are trying to determine if the player has a radio (vanilla or modded), you just do

     

    (player getSlotItemName 611) isNotEqualTo ""     // the player has a radio of some sort

     

    since it will return "" if there is nothing in the radio slot


  3. Updated to 2.6.0

     

    Small update

     

    - GPS icons now display correctly when GPS is used in rotation mode ( ctrl + ] )

    - Mod compatibility, no longer relies on vanilla GPS item (will detect whatever is in that inventory slot instead).

    - UAV/remote-controlled-unit detection. Correctly shows player name who is actively remote controlling a unit/drone, even without UAV terminal.

    • Like 1

  4. On 10/6/2023 at 3:52 PM, redarmy said:

    I came up with an idea for a scenario that is quite simple: If Player has radio in assigned items,then he is able to activate a radio trigger,and the nearest West / friendly side AI should join his group.

     

    So condition looks like so:

     

     Radio trigger Alpha:

     

    Condition:  

    
    "ItemRadio" in assignedItems player

     

    (the next part is tricky,i know multiple way to make AI join a player group however iv no idea how to go about finding the nearest friendly unit distance wise on map,and having that AI join,as that AI will be dynamically spawned and wont have a variable name)

     

     

    On activation should resemble something like this :

     

    
    {side _x == <friendly side>} count nearestObjects join player;

    Obviosly the above on activation isnt correct. Iv tried a few different things but i am unable to get it to work

     

    Alternative to 

     

    "ItemRadio" in (assignedItems player)

    is

    (player getSlotItemName 611) isNotEqualTo ""

    which is mod-friendly for non-vanilla radio items

    • Like 1

  5. On 8/3/2023 at 12:59 AM, jandrews said:

    Has anyone tried using DCO AI mods and turned off the AI difficulty?  If so, how'd it turn out. 

    Is this a possibility in the future?  Would elevate this mod to a higher standard. 

     

    theoretically easy, but ive never created anything multi faction. there isnt much demand for TvT beyond king of the hill.

     

    you can run "playable opfor" already however, so technically it does support multi faction


  6. 6 hours ago, EO said:

    Like the title says, is it possible to give the player a choice of what time of the year (Winter, Spring, Summer, Autumn) the mission is played out in.

    I've searched through the Mission Parameters wiki but there doesn't seem to be any options for dates.

    From the available templates only time of day is supported....

    
    class Params
    {
    	class Daytime
    	{
    		title = "Time";
    		texts[] = { "Morning", "Day", "Evening", "Night" };
    		values[] = { 6, 12, 18, 0 };
    		default = 12;
    		function = "BIS_fnc_paramDaytime";
    	};
    };

    Would it be possible to create a new parameter for seasons of the year, maybe utilizing setDate/date commands?  

     

    there are no seasons in arma (spring, autumn, etc)

     

    green trees are green trees.

     

    the most you'll get is the sun position and sunrise/sunset time, and that the thermal imaging contrast changes with ambient temperature (winter is high contrast white/black while summer is lower contrast grey scale)


  7. Updated to 1.5.5

    Stability & bug fixes

    [DISABLED] Naval Artillery Mk45 Hammer for new Fire Support until it is fixed in future version.
    [TWEAKED] BIS Dynamic Groups initialization.
    [FIXED] Unload Cargo menu script would keep running after closing, creating a memory leak.
    [FIXED] Player was unable to mount static weapons onto suitable vehicles.
    [FIXED] Script error in UAV self destruct.
    [FIXED] Script error in AI medical handling.
    [FIXED] MG Tower could spawn floating.
    [FIXED] Script error in client core procedure.


  8. Updated to 1.5.4

    Stability & bug fixes

    [FIXED] Player would die instead of becoming incapacitated.
    [FIXED] Player unable to mount cage armour to tanks/apcs.
    [FIXED] Player unable to load captives into vehicles.
    [FIXED] Script error with AFK system.
    [FIXED] Script error with Unload Cargo menu
    [FIXED] Script error with UAV self-destruct handling.
    [FIXED] Script error with enemy AI Direct Fire Support ability.
    [FIXED] Vehicle init code could execute before mission ready.
    [FIXED] Earplugs would not work properly if players volumes were set oddly.


  9. Updated to 1.5.3

    Stability & bug fixes

    [ADDED] Fire Support request system (spacebar with binoculars).
    [ADDED] Parameter to 'overclock' deployment attacks. Use at own risk!
    [ADDED] Parameter for AI-controlled base artillery.
    [ADDED] Defensive AI to Fortification containers (FOB/combat outpost/patrol base).
    [ADDED] Recruitable AI to Mobile Respawn container.
    [ADDED] Parameter to disable splash menu.
    [TWEAKED] Virtual cargo capacity.
    [TWEAKED] Player needs to look at service vehicle to start service, when being serviced by a service asset (rather than a marker pad).
    [TWEAKED] Players are now able to effectively use Arsenal on recruited AI.
    [TWEAKED] UAV Operator no longer able to control Naval Artillery (replaced by fire support system).
    [TWEAKED] Virtual object builder can disassemble it when no other players are nearby.
    [FIXED] Deployable safezones (low security) were not working properly, rendering player invincible.
    [FIXED] Unable to toggle on/off safe zones.
    [FIXED] Player was unable to carry static weapons.
    [FIXED] UI issue with 3D player tags.
    [FIXED] Armed aircraft were becoming wrecks too often.
    [FIXED] Player was able to remotely delete vehicle cargo.
    [FIXED] Radio tower could spawn above ground.
    [KNOWN ISSUE] Naval Artillery Mk45 Hammer may not respond to fire missions (its kinda mid).


  10. Updated to 1.5.1

    Stability & bug fixes

    * Due to the massive number of code changes, 1.5.x is still in beta. Expect bugs, fixes, etc.

    [ADDED] Ability for Zeus to raise/lower placed buildings/structures/fortifications with [-] and [+] keys (on selected structures).
    [TWEAKED] Improved vehicle cargo capacity handling (Work in progress)
    [TWEAKED] Improved detection of low-light conditions/nighttime
    [TWEAKED] reduced sniper chance at low pop (classic mode)
    [FIXED] *Critical* Classic Mode AO does not properly cycle, enemies at prior AO not cleaned up
    [FIXED] Vehicle cargo loading was uncontrolled (anything could be loaded into anything).
    [FIXED] Admins were not able to lock their own group
    [FIXED] Non-pilots could fly jets even when role was restricted to pilot-only in parameters.
    [FIXED] Deployable virtual cargo was available even after deployable packed up.
    [FIXED] Fixed bug in enemy jet pylon handling. May have been causing cascade failure in AI system and preventing AI cleanup after AO.
    [FIXED] Spawn vehicle-protection zone was not functioning.

     

    * In addition to bug fixes, we will be working on language translation and documentation in the coming days.


  11. Updated to 1.5.0

    Logistics, base building mechanics & new player interactions

     

    * Due to the massive number of code changes, 1.5.0 is in beta. Expect bugs, fixes, etc.

     

    [ADDED] Extended Context action menu (Windows key).
    [ADDED] Towing
    [ADDED] Pylon Loadout Editor
    [ADDED] Quick Build System (Sandbags, etc)
    [ADDED] Deployable bases, vehicles, logistics & weapons systems.
    [ADDED] Wreck Recovery.
    [ADDED] Weapon lasers (beta).
    [ADDED] Bobcat/Tractor/Quadbike configured with forklift capabilities.
    [ADDED] Emergency Parachute for flying/falling vehicles.
    [ADDED] Mortar Gunner role can assemble a "Lite" disposable Mortar with 1 backpack.
    [ADDED] Increased glide distance when parajumping.
    [ADDED] Aircraft can now roll backward when on ground or carrier deck (use "moveback" key, usually )
    [ADDED] Alternate UI mode for progress visualization system.
    [ADDED] Altitude controls for UAVs (page up/down) including landing mode.
    [ADDED] Stealth Mode for MH-9 Hummingbird (passive countermeasure mode).
    [ADDED] Vehicle Locking (driver seat and inventory).
    [ADDED] Extra weather parameters.
    [ADDED] Laser color customization menu.
    [ADDED] Face customization menu.
    [TWEAKED] Jets have extra gun ammo and extra flares.
    [TWEAKED] Overhauled safezone system.
    [TWEAKED] New vehicle service now rearms large magazines much faster.
    [TWEAKED] Players can eject from steerable parachutes with their Eject key binding.
    [TWEAKED] Base Artillery no longer locks/ejects the Gunner after shells depleted.
    [TWEAKED] Static Weapons can now be carried and Loaded into vehicles, similar to ammo crates.
    [TWEAKED] Static Titan Launchers (AT/AA) have increased ammo.
    [TWEAKED] Vehicles with camo-net on have a chance to passively defeat missile lock.
    [TWEAKED] Stealth aircraft have a chance to passively defeat missile lock.
    [TWEAKED] Vehicles with slat armor on have improved survivability.
    [TWEAKED] Car siren turns off when vehicle owner exits vehicle.
    [TWEAKED] Old Towing system (now only handles Mounting).
    [TWEAKED] Prowler LSV can now fire both AT and AA Titan missiles, and their default magazine capacity has been increased.
    [TWEAKED] UGV Stomper now gets "packed for transport" when being slingloaded or transported in cargo to mitigate game desync issues.
    [TWEAKED] Pilot can disable passengers opening/closing Ramp with [Tab] key (Same as fastrope toggle).
    [TWEAKED] Force AI to dismount/mount vehicle (Custom User Action 15).
    [TWEAKED] Vehicle collisions now more survivable (Car/Tank/Boat).
    [TWEAKED] Cargo load/unload interaction for increased flexibility.
    [TWEAKED] Earplugs system.
    [TWEAKED] How game detects nighttime (for scripted lighting).
    [TWEAKED] Player can adjust adaptive distance for convoy cruise control driving and AI convoy separation.
    [TWEAKED] UAV/UGV headlights and collision lights can now be turned on/off manually by operator.
    [TWEAKED] Player 3D cursor tags and icons.
    [TWEAKED] Destroyer hangar bay would launch/retract helicopters into predictable collisions.
    [TWEAKED] Hatches can only be opened/closed from inside the building.
    [TWEAKED] Zeus-spawned units can be recruited by players of the same faction.
    [TWEAKED] Zeus can turn on/off vehicle lights & sirens, and selectable street lamps ( Headlights keybind when object selected ).
    [TWEAKED] General script optimisations.
    [FIXED] Some issues with FOB resupply detection.
    [FIXED] Flares ignited from sub-munitions were not despawning.
    [FIXED] VTOL throttle bug. (workaround, not fix as its an arma issue).
    [FIXED] Sit-down interaction would fail if player was not looking at correct part of chair object (arma bug).
    [FIXED] Duplication bug in Magazine Repack affecting underbarrel magazines.
    [FIXED] Respawn Vehicle action was available on ammo crates and other non-respawnable vehicles.
    [FIXED] Player could not use action menu if Zeus attached a task to them.
    [FIXED] Players could service their own vehicle from occupied enemy support vehicles.

    • Thanks 1

  12. 3 hours ago, lordacus said:

    anyone know how to set up 2 zeus, 1 that cant edit or spawn stuff, basically just to guide players with markers and 1 admin zeus with full access. i cant find anything anywhere about how to do this

     

     

    in my experience, is best to just trust your team and give them full access. tell them if their actions cause people to leave the server they'll be removed

     

    tell them that to keep their zeus they need to run a 2-3hr op once a week for however many people are on


  13. 17 hours ago, LSValmont said:

     

    Here is the improved version, with heavy credits towards @Leopard20 , @fn_Quiksilver and @POLPOX

     

    
    VAL_fn_drawLaser = {
        if !(isNil "V_PLAYERLASEREHID") exitWith {removeMissionEventHandler ["Draw3D", V_PLAYERLASEREHID]; V_PLAYERLASEREHID = nil; systemChat "Weapon Laser Off"; playSound3D ["A3\missions_f\data\sounds\click.wss", player];};
    	if (currentWeapon player isEqualTo secondaryWeapon player) exitWith {systemChat "Weapon Laser NOT AVAILABLE";};
        playSound3D ["A3\missions_f\data\sounds\click.wss", player];
    	
        V_PLAYERLASEREHID = addMissionEventHandler ["Draw3D", {
    		private _laserDir =  (player weaponDirection (currentWeapon player));
    		
    		private _w = currentWeapon player;
    		if (_w != player getVariable ["last_weapon", "?"]) then {
    			private _cfg = configFile >> "CfgWeapons" >> _w;
    			private _m = getText(_cfg >> "model");
    			private _o = createSimpleObject [_m, [0,0,0], true];
    			private _off = _o selectionPosition [getText(_cfg >> "muzzlePos"), "memory"]; 
    			_off = _off apply {[_x]};
    			deleteVehicle _o;
    			player setVariable ["offset", _off];
    			player setVariable ["last_weapon", _w];
    			player setVariable ["proxy",
    				[
    					"proxy:\a3\characters_f\proxies\pistol.001",
    					"proxy:\a3\characters_f\proxies\weapon.001",
    					"proxy:\a3\characters_f\proxies\launcher.001",
    					"proxy:\a3\characters_f\proxies\binoculars.001"
    				] select (([1, 4, 4096] find getNumber(_cfg >> "type")) + 1)
    			];
    		};
    		private _offset = player getVariable ["offset", []];
    		private _proxy = player getVariable ["proxy", ""];
    		player selectionVectorDirAndUp [_proxy, 1] params ["_vy", "_vz"];
    		private _pos = selectionPosition [player, _proxy, 0];
    		private _vx = _vy vectorCrossProduct _vz;
    		private _mat = matrixTranspose [_vx, _vy, _vz];
    		_pos = _pos vectorAdd flatten (_mat matrixMultiply _offset);
    		_pos = _pos vectorAdd [0.01,0.15,-0.05];
    		private _laserStart = player modelToWorldVisualWorld _pos;
    	
            drawLaser [
                _laserStart,
                _laserDir,
                [1000, 0, 0],
                [1000, 0, 0],
                0.20,
                0.25,
                100,
                false
            ];
        }];
        systemChat "Weapon Laser ON";
    };

    Thank you guys, and enjoy!

     

    awesome work lads

     

    that "selectionVectorDirAndUp" is a game changer for stuff like this

    • Like 3

  14. Hi lads, had an interesting query over on the arma discord, thought I'd post the result for other modders:

     

    5nHESLB.jpg

     

     

    // QS Visible Lasers
    
    
    // Custom laser point offsets
    QS_laserOffset_array = [
    								// element format:   ['arifle_mx_f',[0,0.25,0]],
    								// element format:   ['srifle_LRR_f',[0,0.25,0]],
    								// element format:   ['arifle_mx_f',[0,0.25,0]],
    								// ETC
    
    
    ];
    
    
    QS_laser_beamColor = [1000, 0, 0];
    QS_laser_dotColor = [1000, 0, 0];
    QS_laser_dotSize = 0.25;
    QS_laser_beamThickness = 0.25;
    QS_laser_beamMaxLength = 100;
    QS_laser_forceIR = FALSE;
    
    QS_fnc_updatePlayerWeaponObject = {
    	if ((player getVariable ['QS_player_currentWeapon','']) isNotEqualTo '') then {
    		player setVariable ['QS_player_currentWeapon','',FALSE];
    	};
    	if (!isNull (player getVariable ['QS_player_weaponObject',objNull])) then {
    		player setVariable ['QS_player_weaponObject',objNull,FALSE];
    	};
    	if ((player getVariable ['QS_player_weaponMuzzlePos','']) isNotEqualTo '') then {
    		player setVariable ['QS_player_weaponMuzzlePos','',FALSE];
    	};
    	if ((player getVariable ['QS_player_currentProxy','']) isNotEqualTo '') then {
    		player setVariable ['QS_player_currentProxy','',FALSE];
    	};
    	_handPos = player modelToWorldWorld (player selectionPosition 'righthand');
    	_intersections = (lineIntersectsSurfaces [
    		_handPos vectorAdd [0,0,0.3],
    		_handPos vectorAdd [0,0,-0.3]
    	]) + (lineIntersectsSurfaces [
    		_handPos vectorAdd [-0.3,0,0],
    		_handPos vectorAdd [0.3,0,0]
    	]) + (lineIntersectsSurfaces [
    		_handPos vectorAdd [0,0.3,0],
    		_handPos vectorAdd [0,-0.3,0]
    	]);
    	if (_intersections isNotEqualTo []) then {
    		private _weaponModel = toLowerANSI (getText (configFile >> 'CfgWeapons' >> (currentWeapon player) >> 'model'));
    		_weaponModelArray = toArray _weaponModel;
    		if ((_weaponModelArray select 0) isEqualTo 92) then {
    			_weaponModelArray deleteAt 0;
    			_weaponModel = toString _weaponModelArray;
    		};
    		_intersections = _intersections apply { [_x # 2,toLowerANSI ((getModelInfo (_x # 2)) # 1),_weaponModel] };
    		private _weapon = objNull;
    		{
    			if (_weaponModel isEqualTo (_x # 1)) exitWith {
    				_weapon = _x # 0;
    			};
    		} forEach _intersections;
    		if (!isNull _weapon) then {
    			player setVariable ['QS_player_currentWeapon',toLowerANSI (currentWeapon player),FALSE];
    			player setVariable ['QS_player_weaponObject',_weapon,FALSE];
    			player setVariable ['QS_player_weaponMuzzlePos',toLowerANSI (getText (configFile >> "CfgWeapons" >> (currentWeapon player) >>'muzzleEnd')),FALSE];
    			
    			private _customOffset = QS_hashmap_laserOffset getOrDefault [toLowerANSI (currentWeapon player),[0,0,0]];
    			private _currentProxy = '';
    			
    			if ((currentWeapon player) isEqualTo (primaryWeapon player)) then {
    				_currentProxy = ((player selectionNames 'memory') select { ['weapon.001',_x,FALSE] call BIS_fnc_inString }) select 0;
    				if (_customOffset isEqualTo [0,0,0]) then {
    					_customOffset = [0,0.3,0];
    				};
    			};
    			if ((currentWeapon player) isEqualTo (handgunWeapon player)) then {
    				_currentProxy = ((player selectionNames 'memory') select { ['pistol.001',_x,FALSE] call BIS_fnc_inString }) select 0;
    				if (_customOffset isEqualTo [0,0,0]) then {
    					_customOffset = [0,0.25,0];
    				};
    			};
    			if ((currentWeapon player) isEqualTo (secondaryWeapon player)) then {
    				_currentProxy = ((player selectionNames 'memory') select { ['launcher.001',_x,FALSE] call BIS_fnc_inString }) select 0;
    				if (_customOffset isEqualTo [0,0,0]) then {
    					_customOffset = [0,0.25,0];
    				};
    			};
    			player setVariable ['QS_player_laserCustomOffset',_customOffset,FALSE];
    			player setVariable ['QS_player_currentProxy',_currentProxy,FALSE];
    		};
    	};
    };
    QS_fnc_updateLaserPos = {
    	_player = _this # 0;
    	_weapon = _this # 1;
    	[
    		(player modelToWorldVisualWorld ((player selectionPosition (player getVariable ['QS_player_currentProxy',''])) vectorAdd ((_weapon selectionPosition (player getVariable ['QS_player_weaponMuzzlePos',''])) vectorAdd (player getVariable ['QS_player_laserCustomOffset',[0,0,0]])))),
    		(_player weaponDirection (currentWeapon _player))
    	]
    };
    if (!isNil 'QS_EH_94') then {
    	removeMissionEventHandler ['Draw3D',QS_EH_94];
    };
    if (isNil 'QS_hashmap_laserOffset') then {
    	QS_hashmap_laserOffset = createHashMapFromArray QS_laserOffset_array;
    };
    player setVariable ['QS_toggle_visibleLaser',TRUE,FALSE];
    player setVariable ['QS_player_currentWeapon','',FALSE];
    player setVariable ['QS_player_weaponObject',objNull,FALSE];
    QS_EH_94 = addMissionEventHandler [
    	'Draw3D',
    	{
    		if (!isGameFocused) exitWith {};
    		if (isNull (objectParent player)) then {
    			if ((player getVariable ['QS_player_currentWeapon','']) isNotEqualTo (toLowerANSI (currentWeapon player))) then {
    				call QS_fnc_updatePlayerWeaponObject;
    			} else {
    				if (
    					(!isNull (player getVariable ['QS_player_weaponObject',objNull])) &&
    					((player getVariable ['QS_player_currentProxy','']) isNotEqualTo '') &&
    					((player getVariable ['QS_player_weaponMuzzlePos','']) isNotEqualTo '')
    				) then {
    					([player,(player getVariable ['QS_player_weaponObject',objNull])] call QS_fnc_updateLaserPos) params ['_laserStart','_weaponDirection'];
    					if (player getVariable ['QS_toggle_visibleLaser',TRUE]) then {
    						drawLaser [
    							(player getVariable ['QS_player_weaponObject',objNull]) modelToWorldVisualWorld _laserStart,
    							_weaponDirection, 
    							QS_laser_beamColor, 
    							QS_laser_dotColor, 
    							QS_laser_dotSize, 
    							QS_laser_beamThickness, 
    							QS_laser_beamMaxLength, 
    							(((currentVisionMode player) isNotEqualTo 0) || QS_laser_forceIR)
    						];
    					};
    				};
    			};
    		};
    	}
    ];
    removeAllUserActionEventHandlers ['headlights','activate'];
    addUserActionEventHandler ['headlights','activate',{
    	player setVariable ['QS_toggle_visibleLaser',!(player getVariable ['QS_toggle_visibleLaser',FALSE]),FALSE];
    }];

     

    • Like 8

  15. 14 hours ago, pierremgi said:

     

    As rule of thumb, everything you can set at start (on each PC), without necessary sync, is far better for performance. Simple objects, hidden objects..., final textures... can be set locally (see 3den, you have this choice). On the other hand, when things must occur during game, you need, most od the time, to use a global command, so a sync  (example: hide/unhide object alongside (a) player's progress).
    Avoid massive sync.

     

    actually a decent idea to run hideobject locally on each machine 


  16. It is/was an issue if you used roads to spawn vehicles. if you spawned vehicles dynamically on roads, often you want them on actual roads, not jungle tracks.

     

    The weakness is that there was not a separate road net for infantry, so inf and vics would use the same nodes.

     

    If there was a separate infantry road net, then adding infantry nodes thru dense jungle wouldnt have been an issue.

     

    but it was silly to add vehicle road nodes thru dense jungle.

     

    Finding these was partially alleviated in 2.00 with "roadsConnectedTo" alt syntax

     

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

     

    ultimately these are just workarounds for lazy/incomplete effort of BIS devs

     

    ...

     

    Your solution of using "hideobject" on jungle tracks to widen them for vehicle is novel but not suitable for procedural missions unless you're happy with the desync associated with large lists of JIP compatible global hidden terrain objects.

     

    its still not possible to prevent AI vics from attempting to navigate on the pedestrian tracks, so your solution might be beneficial there!

×