RS30002 28 Posted June 11, 2022 So...am a sucker for command and control gimmicks, displays etc etc... In that spirit i present a concoction of mine.......spawn troops in customizable vehicles, spawn High Command, connect them, connect HC to player and send the names of the vehicles to the camera script (which i didn't write, its a very fine example off the forums and you'll have to get and setup on your own)...which when all initialized and working will display a camera feed of the vehicle looking forward, which you can then use to see where the unit is and issue commands through module. (veh definition part is straight out of garage export, spawning i wrote myself looking at the wiki all the time, part that connects everything to HC i found on the forums and camera also from the forums) //nul = execVM "HC2.sqf"; if (isServer) then { _veh = createVehicle ["B_T_APC_Wheeled_01_atgm_lxWS",[18268.2,2203.9,0.2],[],0,"NONE"]; apc1 = _veh; apc1 setDir 135; [ apc1, ["Olive",1], ["showBags",1,"showCamonetHull",0,"showCamonetTurret",0,"showSLATHull",0,"showSLATTurret",1] ] call BIS_fnc_initVehicle; _crew10 = creategroup WEST; "B_T_Crew_F" createUnit [[1,0,0],_crew10,"crew1 = this; crew1 moveincommander apc1",0.8,"corporal"]; "B_T_Crew_F" createUnit [[0,1,0],_crew10,"crew12 = this; crew12 moveindriver apc1",0.6,"private"]; "B_T_Crew_F" createUnit [[-1,0,0],_crew10,"crew3 = this; crew3 moveingunner apc1",0.6,"private"]; "B_T_Soldier_TL_F" createUnit [[0,-1,0],_crew10,"crew4 = this; crew4 moveincargo apc1",0.6,"private"]; "B_T_Soldier_AR_F" createUnit [[2,0,0],_crew10,"crew5 = this; crew5 addmagazine '30Rnd_65x39_caseless_khaki_mag'; crew5 moveincargo apc1",0.6,"private"]; "B_T_Medic_F" createUnit [[0,2,0],_crew10,"crew6 = this; crew6 moveincargo apc1",0.6,"private"]; "B_T_Soldier_AT_F" createUnit [[-2,0,0],_crew10,"crew7 = this; crew7 moveincargo apc1",0.6,"private"]; "B_T_soldier_M_F" createUnit [[0,-2,0],_crew10,"crew8 = this; crew8 moveincargo apc1",0.6,"private"]; "B_T_Soldier_AR_F" createUnit [[1.5,0,0],_crew10,"crew9 = this; crew9 addmagazine '30Rnd_65x39_caseless_khaki_mag';crew9 moveincargo apc1",0.6,"private"]; "B_T_Soldier_GL_F" createUnit [[0,1.5,0],_crew10,"crew10 = this; crew10 moveincargo apc1",0.6,"private"]; "B_T_Soldier_AA_F" createUnit [[-1.5,0,0],_crew10,"crew11 = this; crew11 moveincargo apc1",0.6,"private"]; _veh2 = createVehicle ["B_T_APC_Wheeled_01_atgm_lxWS",[18273.7,2208.13,0.2],[],0,"NONE"]; apc2 = _veh2; apc2 setDir 135; [ apc2, ["Olive",1], ["showBags",1,"showCamonetHull",0,"showCamonetTurret",1,"showSLATHull",0,"showSLATTurret",1] ] call BIS_fnc_initVehicle; _crew20 = creategroup WEST; "B_T_Crew_F" createUnit [[1,0,0],_crew20,"crew18 = this; crew18 moveincommander apc2",0.8,"corporal"]; "B_T_Crew_F" createUnit [[0,1,0],_crew20,"crew19 = this; crew19 moveindriver apc2",0.6,"private"]; "B_T_Crew_F" createUnit [[-1,0,0],_crew20,"crew20 = this; crew20 moveingunner apc2",0.6,"private"]; "B_T_Soldier_TL_F" createUnit [[0,-1,0],_crew20,"crew22 = this; crew22 moveincargo apc2",0.6,"private"]; "B_T_Soldier_AR_F" createUnit [[1.5,0,0],_crew20,"crew25 = this; crew25 addmagazine '30Rnd_65x39_caseless_khaki_mag'; crew25 moveincargo apc2",0.6,"private"]; "B_T_Medic_F" createUnit [[0,1.5,0],_crew20,"crew26 = this; crew26 moveincargo apc2",0.6,"private"]; "B_T_Support_GMG_F" createUnit [[-1.5,0,0],_crew20,"crew27 = this; crew27 moveincargo apc2",0.6,"private"]; "B_T_Support_AMG_F" createUnit [[0,-1.5,0],_crew20,"crew28 = this; crew28 moveincargo apc2",0.6,"private"]; "B_T_Soldier_AR_F" createUnit [[2,0,0],_crew20,"crew29 = this; crew29 addmagazine '30Rnd_65x39_caseless_khaki_mag'; crew29 moveincargo apc2",0.6,"private"]; "B_T_Soldier_GL_F" createUnit [[0,2,0],_crew20,"crew21 = this; crew21 moveincargo apc2",0.6,"private"]; "B_T_Soldier_AA_F" createUnit [[-2,0,0],_crew20,"crew23 = this; crew23 moveincargo apc2",0.6,"private"]; null = [[monitor2, monitor3],["apc1","apc2"]] execVM "LFC\Feedinit.sqf"; [west, "PAPA_BEAR"] sideChat "...Command center control screens initialized..."; if (count (allMissionObjects "HighCommand") == 0) then { _Group = createGroup (sideLogic); _Group_HC_C = _Group createUnit ["HighCommand", [0, 0, 0], [], 0, "NONE"]; _Group_HC_S0 = _Group createUnit ["HighCommandSubordinate", [0, 0, 0], [], 0, "NONE"]; _Group_HC_S1 = _Group createUnit ["HighCommandSubordinate", [0, 0, 0], [], 0, "NONE"]; player synchronizeObjectsAdd [_Group_HC_C]; _Group_HC_C synchronizeObjectsAdd [_Group_HC_S0,_Group_HC_S1]; leader _crew10 synchronizeObjectsAdd [_Group_HC_S0]; leader _crew20 synchronizeObjectsAdd [_Group_HC_S1]; }; [west, "PAPA_BEAR"] sideChat "Welldeck ready at your orders."; }; Any suggestions for improvement are most welcome ☺️ 1 Share this post Link to post Share on other sites
RS30002 28 Posted June 12, 2022 Moar gimmicks 😄 Overwatch drone for use in combination with apc cameras and a satellite feed giving more situational awareness. So, here is a combination of a code i got from one of the drone table compositions off of Steam and Larrow's drone control script that allows a player to control a drone without a terminal This block here is in init of a big screen.....attaches a camera to a turret of a drone and sends a picture to the screen, you walk close to the screen and a hold action appears connecting you to the drone which you can then reposition, issue orders to, lock targets etc etc...display follows locked targets keeping the point of interest always on the screen no matter what the player is doing (fiddling with other controls, issuing orders etc etc). cam1 = "camera" camCreate [0,0,0]; cam1 cameraEffect ["Internal", "BACK", "uavrtt_1"]; cam1 attachTo [uav_1, [0, 0,-1], "PiP0_pos"]; cam1 camSetFov 0.2; "uavrtt_1" setPiPEffect [0]; addMissionEventHandler ["Draw3D", { _dir = (uav_1 selectionPosition "PiP0_pos") vectorFromTo (uav_1 selectionPosition "PiP0_dir"); cam1 setVectorDirAndUp [ _dir, _dir vectorCrossProduct [-(_dir select 1), _dir select 0, 0] ]; }]; [this,[0,"#(argb,512,512,1)r2t(uavrtt_1,1.0)"]] remoteExec ['setObjectTextureGlobal',0,this]; if (isServer) then {WaitUntil {!(isNil "uav_1")}; [ uavrtt_1, "<t color='#ff9900'>Connect to ISR drone</t>", "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_hack_ca.paa", "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_hack_ca.paa", "_this distance _target < 2", "_caller distance _target < 2", {}, {}, {execVM "scripts\turret_control_drone.sqf"}, {}, [], 2, 0, false, false ] remoteExec ["BIS_fnc_holdActionAdd", 0, uavrtt_1]; } Script that gets called player linkItem "B_UavTerminal"; waitUntil{ "B_UavTerminal" in assignedItems player }; diag_log "Terminal received"; player connectTerminalToUAV uav_1; waitUntil{ isUAVConnected uav_1 }; diag_log "Connected"; player action ["SwitchToUAVGunner", getConnectedUAV player]; waitUntil{ isUAVConnected uav_1 && ( cameraOn isEqualTo uav_1 ) }; diag_log "In Gunner: adding ev"; addMissionEventHandler [ "PlayerViewChanged", { params[ "_oldUnit", "_newUnit", "_vehicle", "_oldCamera", "_newCamera", "_uav" ]; diag_log "PVC_fired"; if ( _oldCamera isEqualTo uav_1 && { ( _newCamera isEqualTo player ) } ) then { diag_log "disconnecting terminal"; player connectTerminalToUAV objNull; diag_log "removing terminal"; player unlinkItem "B_UavTerminal"; diag_log "player disconnected"; removeMissionEventHandler[ "PlayerViewChanged", _thisEventHandler ]; }; }]; true There is a third component of this train......the reconocimiento (sp?) drone script that got posted on the forums recently...but it doesnt work like i thought it would...idk....in theory the drone should auto acquire targets, lock laser on them and because a camera is slaved to the turret this should all be observable on the display....but it isnt lol something is definitely working from that script tho, because if i put myself as the enemy of the drone i can see the laser target marker the script creates on the map. And it does follow moving objects. But idk, maybe some virtual laser that isnt created with the turret. 🤷♂️ Share this post Link to post Share on other sites