Jump to content

Fiddi

Member
  • Content Count

    241
  • Joined

  • Last visited

  • Medals

Everything posted by Fiddi

  1. Hello, I'm trying to get AI to enter a helicopter while they're being fired at and around. I have tried setCaptive, allowFleeing, careless, combatMode Blue, all of the disableAi except move and anim. While they're not being fired at they enter the helicopter easily and without delay. In combat there's always 1 or more that stays behind and I want them all to atleast acknowledge the order to get in, though they may be killed on the way. This is the part where they get the order to get in the helicopter, they're all in seperate groups because that seemed to work best for some reason. Suprisingly the helicopter does exactly what I want which is a first for me, but it's always something... :D waitUntil{Sleep 1; getPos _EXHeli select 2 < 3 OR !alive _target}; if (!alive _target) then {_extractionGo = false}; { _x setCaptive true; _x setskill 1; _x allowFleeing 0; _x setBehaviour "CARELESS"; _x setCombatMode "BLUE"; _x disableAi "TARGET"; _x disableAi "AUTOTARGET"; _x disableAi "AUTOCOMBAT"; _x disableAi "FSM"; _x disableAi "AIMINGERROR"; _x disableAi "COVER"; _x disableAi "CHECKVISIBLE"; _x disableAi "SUPPRESSION"; } count [_target, _guard1, _guard2]; Sleep 1; _target assignAsCargo _EXHeli; Sleep 0.5; _guard1 assignAsCargo _EXHeli; Sleep 0.5; _guard2 assignAsCargo _EXHeli; [_target] OrderGetIn true; Sleep 0.5; [_guard1] OrderGetIn true; Sleep 0.5; [_guard2] OrderGetIn true; Sleep 3; waitUntil {Sleep 1; ({!(alive _x) OR _x in _EXHeli} count [_target, _guard1, _guard2] == count [_target, _guard1, _guard2]) OR !(alive _target)}; {_x setCaptive false;} count crew _EXHeli;
  2. Apparently it was as easy as this: { _x assignAsCargo _EXHeli; [_x] join grpnull; _x disableAI "AUTOCOMBAT"; _x disableAI "CHECKVISIBLE"; _x setBehaviour "CARELESS"; _x setCombatMode "BLUE"; } count [_target, _guard1, _guard2]; Sleep 1; [_target, _guard1, _guard2] OrderGetIn true; This works, they react a bit slow but they end up where I want them soon enough.
  3. In any case, anything I try has little to minimal effect on the problem. I tried something like this: [_target] join grpnull; _target setSkill 1; _target disableAi "TARGET"; _target disableAi "AUTOTARGET"; _target disableAi "AUTOCOMBAT"; _target disableAi "FSM"; _target disableAi "COVER"; _target disableAi "CHECKVISIBLE"; _target disableAi "AIMINGERROR"; _target disableAi "SUPPRESSION"; _target setCaptive true; _target setSuppression 0; _target allowFleeing 0; _target setBehaviour "CARELESS"; _target setCombatMode "BLUE"; [_target] join group driver _EXHeli; group driver _EXHeli addVehicle _EXHeli; _target assignAsCargo _EXHeli; [_target] orderGetIn true; Worked once, but I guess that was pure luck, other times he just stood there like always.
  4. It executes the code within for every unit in the counted array, the difference being forEach can return anything while count only returns numbers. I'm not quite sure, but I just followed that it said on the wiki.
  5. Nothing, but it said on the wiki that count is faster than forEach and works pretty much the same. https://community.bistudio.com/wiki/Code_Optimisation#forEach_vs_count
  6. This is what I came up with. It's the most jury-rigged script I have ever written, and kind of works. I have to have the "heliInsert" exactly north of the "HQ_dropOff" in order for the helicopter to stop where I want it, and after that force it down to a height where the box doesn't teleport up to the helicopter when using "setSlingLoad". But all in all, it works. Would have preferred the waypoint version, though... _huron1 = createVehicle ["B_Heli_Transport_03_unarmed_F", getMarkerPos "heliInsert", [], 0, "FLY"]; createVehicleCrew _huron1; sleep 0.1; _huron1 setDir 180; group _huron1 move [(getPos HQ_dropOff select 0)-5, (getPos HQ_dropOff select 1)-95, 10]; waitUntil{Sleep 1; unitReady _huron1}; _huron1 disableAI "MOVE"; Sleep 3; waitUntil {sleep 0.25; _huron1 setVelocity [0,0,-5]; getPos _huron1 select 2 < 10;}; Sleep 2; _huron1 setSlingLoad box; Sleep 2; _huron1 enableAI "MOVE"; Sleep 1; group _huron1 move getMarkerPos "heliInsert"; waitUntil{Sleep 1; _huron1 distance2D getMarkerPos "heliInsert" < 100}; {_huron1 deleteVehicleCrew _x} count crew _huron1; deleteVehicle _huron1;
  7. Oh, you meant 'move', I tried that also, the helicopter always flies to the same position, which when I think of it can be a good think cause the I can offset another pos to counteract the stupidness, a FlyInHeight to lower and then use a waitUntil to see when the helicopter is just above the box. That might work. I'll get back to you, thanks!
  8. Yeah, I guess the "easy" way is off the table. Thing is I don't really know where to start on how to write a scripted waypoint.. Can I get AI to fly to a very specific spot without using waypoints?
  9. Yep, doing this: hint format["%1", waypointAttachedObject _huron1WP]; returns <NULL-object> so there's something wrong with this: _huron1WP waypointAttachObject box; Switching to _huron1WP waypointAttachVehicle box; returns box, but it still doesn't pick it up.
  10. Still nothing. Thing is it flies to the location where the box is and stops. The waypoint seem to work it just doesn't either fire the slingload command from the waypoint, in which case the type itself is broken, or it doesn't find the box. EDIT: Also, nothing in the .rpt. Last line after firing the script and waiting a while is 14:33:09 Save game type and that's before I activated the script.
  11. Nope, that did not work. _huron1 = createVehicle ["B_Heli_Transport_03_unarmed_F", getPos HQ_dropOff, [], 0, "FLY"]; createVehicleCrew _huron1; sleep 0.1; _huron1WP = group (driver _huron1) addWaypoint [box, 0]; _huron1WP setWaypointType "MOVE"; _huron1WP setWaypointBehaviour "CARELESS"; Sleep 1; _huron2WP = group (driver _huron1) addWaypoint [box, 0]; _huron2WP waypointAttachVehicle box; _huron2WP setWaypointType "HOOK"; I hope I wrote it the right way. I was not 100% sure how I would create multiple waypoints in script.
  12. Okay, I'll try that. '_box' should actually be only 'box'. It is placed in the editor for the sake of testing, in the finished script it too will be spawned like the helicopter.
  13. Okay, tried that. Same thing happens. :(
  14. https://community.bistudio.com/wiki/waypointType Check at the bottom of the page. It exists. There's "HOOK" and "UNHOOK". You can find them in the mission.sqm if you have placed the waypoints in the editor. Which is strange since it works almost perfectly with pre-placed waypoints but not spawned ones via script.
  15. Fiddi

    FHQ TaskTracker

    Okay, thank you, it all works now, for clients and host. Look forward to the update! EDIT: If I can make a request, it would be nice to be able to delete child tasks, so that the task list doesn't become cluttered when you have a lot of tasks.
  16. Fiddi

    FHQ TaskTracker

    Read back a couple of pages in this thread. And came across where you said you could add an empty briefing in the beginning, in init.sqf. [] call FHQ_TT_addBriefing; I did that, and suddenly clients could see the tasks I was creating. Still no notifications though.
  17. Fiddi

    FHQ TaskTracker

    Yes, I added per the readme this line in the Init.sqf: call compile preprocessFileLineNumbers "missions\fhqtt2.sqf"; Worth mentioning is perhaps that the code in my previous post is just run on the server.
  18. Fiddi

    FHQ TaskTracker

    Nevermind, got around it by having a parent task with child tasks. Which was infinitely prettier and neater. However, a new problem surfaced. The tasks I'm making does not show up for clients, they only show up for host. Also there's no notification when creating or changing tasks, I have to call one manually. This is the call I use when creating the first task. // CREATE TASKS [west, [_taskName, _taskDescriptionLong, _mission_name, _taskDescriptionWaypoint], [[_taskName2, _taskname], _taskDescriptionLong2, _mission_name2, _taskDescriptionWaypoint, _randomPos, "created"] ] call FHQ_TT_addTasks; // MANUAL NOTIFICATION ["TaskCreated",["",_mission_name + "<br/>" + _taskDescriptionWaypoint]] remoteExec ["bis_fnc_showNotification"]; The variables are correct, and they transfer perfectly on the hosts side. But do not show up
  19. Fiddi

    FHQ TaskTracker

    Hey, how do I update the location/ destination in a task? Do I have to create a new task or is it possible to update the location? Thanks.
  20. That doesn't work for empty vehicles. But what I did was in zbe_functions.sqf under function: zbe_vehicleCache, defined classnames for the specific vehicles I wanted and wrote an if-statement: zbe_vehicleCache = { _ex = [ "Land_Pod_Heli_Transport_04_medevac_F", "Land_Pod_Heli_Transport_04_covered_F", "Land_Pod_Heli_Transport_04_repair_F", "Land_Pod_Heli_Transport_04_fuel_F", "Land_Pod_Heli_Transport_04_ammo_F", "Land_Pod_Heli_Transport_04_box_F", "I_Heli_light_03_F", "B_Heli_Transport_03_F", "O_Heli_Transport_04_F", "B_Quadbike_01_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "B_MRAP_01_F", "O_Plane_CAS_02_F", "B_APC_Tracked_01_AA_F", "B_MBT_01_TUSK_F", "B_UGV_01_rcws_F" ]; if !((typeOf _vehicle) in _ex) then { _vehicle enablesimulationglobal false; }; }; It works, and does what I want, like preventing the vehicles in my base from spontaneously explode when the mission starts and when I return to base.
  21. How would I make the script except some vehicle types, and cache others?
  22. I can confirm this. However it appears to be fixed in the devbranch and RC-version. So, I guess, fixed next patch.
  23. I fixed it, it now works great with both Client and Host. Here's how I did it: The vehicles variable names are as follows: Quad1 (Quadbike with action) Quad2 (Automatically detected quad) Huron (Helicopter) in this case a Huron (Black) Init.sqf call compile preprocessFile "Quadfunctions.sqf"; Quadfunctions.sqf //No Huron present FRED_fnc_NullHuron = { private["_Quad1fnc"]; _Quad1fnc = _this select 0; removeAllActions _Quad1fnc; _Quad1fnc addAction ["Load Quadbike", "LoadQuad\LoadQuad.sqf"]; }; //Load 1 Quadbike FRED_fnc_LoadQuad = { private["_Quad1fnc","_Huronfnc"]; _Quad1fnc = _this select 0; _Huronfnc = _this select 1; removeAllActions _Quad1fnc; _Quad1fnc attachTo [_Huronfnc,[-0.1,2.5,-0.5]]; _Quad1fnc enableSimulation false; _Quad1fnc enableRopeAttach false; Sleep 1; _Quad1fnc setDir 180; _Huronfnc addAction ["Eject Quadbike", "LoadQuad\EjectQuad.sqf"]; }; //Load 2 Quadbikes FRED_fnc_LoadQuad2 = { private ["_Quad1fnc", "_Huronfnc", "_Quad2fnc"]; _Quad1fnc = _this select 0; _Huronfnc = _this select 1; _Quad2fnc = _this select 2; removeAllActions _Quad1fnc; removeAllActions _Quad2fnc; _Quad2fnc attachTo [_Huronfnc, [-0.1,2.5,-0.5]]; _Quad2fnc enableSimulation false; _Quad2fnc enableRopeAttach false; Sleep 0.5; _Quad1fnc attachTo [_Huronfnc, [-0.1,-0.75,-0.5]]; _Quad1fnc enableSimulation false; _Quad1fnc enableRopeAttach false; Sleep 1; _Quad1fnc setDir 180; _Quad2fnc setDir 180; _Huronfnc addAction ["Eject Quadbike", "LoadQuad\Eject2Quad.sqf"]; }; //Eject 1 Quadbike FRED_fnc_EjectQuad = { private["_Quad1fnc","_Huronfnc"]; _Quad1fnc = _this select 0; _Huronfnc = _this select 1; removeAllActions _Huronfnc; _Quad1fnc allowDamage false; Sleep 0.2; detach _Quad1fnc; if ((speed _Huronfnc) > 15) then { _Quad1fnc setVelocity [(sin (getDir _Huronfnc -180)) * 5, (cos (getDir _Huronfnc -180)) * 5, 1]; } else { _Quad1fnc setVelocity [(sin (getDir _Huronfnc -180)) * 20, (cos (getDir _Huronfnc -180)) * 20, 1]; }; _Quad1fnc enableSimulation true; if ((getPosATL _Huronfnc select 2) > 50) then { Sleep 2.5; _chute = createVehicle ["B_Parachute_02_F",(getposATL _Quad1fnc),[],0,"FLY"]; _chute setpos [(getpos _Quad1fnc select 0), getpos _Quad1fnc select 1, (getpos _Quad1fnc select 2)]; _chute setDir (getDir _Quad1fnc); _Quad1fnc attachTo [_chute,[0,0,0]]; _chute setvelocity [0,0,-1]; _chute allowDamage false; waitUntil {(getposATL _Quad1fnc select 2) < 5}; detach _Quad1fnc; Sleep 0.5; _Quad1fnc setDamage 0; }; Sleep 2; _Quad1fnc allowDamage true; _Quad1fnc enableRopeAttach true; _Quad1fnc addAction ["Load Quadbike", "LoadQuad\LoadQuad.sqf"]; }; //Eject 2 Quadbikes FRED_fnc_EjectQuad2 = { private["_Quad1fnc","_Huronfnc", "_Quad2fnc"]; _Quad1fnc = _this select 0; _Huronfnc = _this select 1; _Quad2fnc = _this select 2; removeAllActions _Huronfnc; _Quad1fnc allowDamage false; _Quad2fnc allowDamage false; Sleep 0.2; if ((getPOSATL _Huronfnc select 2) > 50) then { detach _Quad1fnc; if ((speed _Huronfnc) > 15) then { _Quad1fnc setVelocity [(sin (getDir _Huronfnc -180)) * 5, (cos (getDir _Huronfnc -180)) * 5, 1]; } else { _Quad1fnc setVelocity [(sin (getDir _Huronfnc -180)) * 20, (cos (getDir _Huronfnc -180)) * 20, 1]; }; _Quad1fnc enableSimulation true; Sleep 2.5; _chute1 = createVehicle ["B_Parachute_02_F",(getposATL _Quad1fnc),[],0,"FLY"]; _chute1 allowDamage false; _chute1 setpos [(getpos _Quad1fnc select 0), getpos _Quad1fnc select 1, (getpos _Quad1fnc select 2)]; _chute1 setDir (getDir _Quad1fnc); _Quad1fnc attachTo [_chute1,[0,0,0]]; _chute1 setvelocity [0,0,-1]; Sleep 2; detach _Quad2fnc; if ((speed _Huronfnc) > 15) then { _Quad2fnc setVelocity [(sin (getDir _Huronfnc -180)) * 5, (cos (getDir _Huronfnc -180)) * 5, 1]; } else { _Quad2fnc setVelocity [(sin (getDir _Huronfnc -180)) * 20, (cos (getDir _Huronfnc -180)) * 20, 1]; }; _Quad2fnc enableSimulation true; Sleep 2.5; _chute2 = createVehicle ["B_Parachute_02_F",(getposATL _Quad2fnc),[],0,"FLY"]; _chute2 allowDamage false; _chute2 setpos [(getpos _Quad2fnc select 0), getpos _Quad2fnc select 1, (getpos _Quad2fnc select 2)]; _chute2 setDir (getDir _Quad2fnc); _Quad2fnc attachTo [_chute2,[0,0,0]]; _chute2 setvelocity [0,0,-1]; waitUntil {(getposATL _Quad1fnc select 2) < 5}; detach _Quad1fnc; waitUntil {(getposATL _Quad2fnc select 2) < 5}; detach _Quad2fnc; Sleep 0.5; _Quad1fnc setDamage 0; _Quad2fnc setDamage 0; } else { detach _Quad1fnc; if ((speed _Huronfnc) > 15) then { _Quad1fnc setVelocity [(sin (getDir _Huronfnc -180)) * 5, (cos (getDir _Huronfnc -180)) * 5, 1]; } else { _Quad1fnc setVelocity [(sin (getDir _Huronfnc -180)) * 20, (cos (getDir _Huronfnc -180)) * 20, 1]; }; _Quad1fnc enableSimulation true; Sleep 2; detach _Quad2fnc; if ((speed _Huronfnc) > 15) then { _Quad2fnc setVelocity [(sin (getDir _Huronfnc -180)) * 5, (cos (getDir _Huronfnc -180)) * 5, 1]; } else { _Quad2fnc setVelocity [(sin (getDir _Huronfnc -180)) * 20, (cos (getDir _Huronfnc -180)) * 20, 1]; }; _Quad2fnc enableSimulation true; }; Sleep 2; _Quad1fnc allowDamage true; _Quad1fnc enableRopeAttach true; _Quad2fnc allowDamage true; _Quad2fnc enableRopeAttach true; _Quad1fnc addAction ["Load Quadbike", "LoadQuad\LoadQuad.sqf"]; }; Quad1 initialization field: nul = Quad1 addAction ["Load Quadbike","LoadQuad\LoadQuad.sqf"]; LoadQuad\LoadQuad.sqf _unit = _this select 0; Huron = nearestObject [player,"B_Heli_Transport_03_Black_F"]; QUAD = nearestObjects [_unit,["B_Quadbike_01_F"],10]; Quad1 = QUAD select 0; Quad2 = QUAD select 1; if (isNull Huron) exitWith { [[Quad1],"FRED_fnc_NullHuron",true,true] spawn BIS_fnc_MP; hint "No Huron Present."; }; if ((count QUAD) > 1) exitWith { hint "Loading 2 Quadbikes."; [[Quad1, Huron, Quad2],"FRED_fnc_LoadQuad2",true,true] spawn BIS_fnc_MP; Sleep 1.5; hint "2 Quadbikes Loaded."; }; [[Quad1, Huron],"FRED_fnc_LoadQuad",true,true] spawn BIS_fnc_MP; Sleep 1; hint "Quadbike Loaded."; LoadQuad\EjectQuad.sqf [[Quad1, Huron],"FRED_fnc_EjectQuad",true,true] spawn BIS_fnc_MP; Sleep 0.2; if ((getposATL Huron select 2) > 50) then { hint "Quadbike Ejected."; } else { hint "Quadbike Unloaded."; }; LoadQuad\Eject2Quad.sqf [[Quad1, Huron, Quad2],"FRED_fnc_EjectQuad2",true,true] spawn BIS_fnc_MP; if ((getposATL Huron select 2) > 50) then { Sleep 4.7; hint "Quadbikes Ejected."; } else { Sleep 2.2; hint "Quadbikes Unloaded."; }; This works almost flawless except for some lag when the quadbikes are pushed out of the helicopter. Anyone who wants to use this are free to do so.
  24. I've made a script that makes it possible to load 1 or 2 Quads in the Huron helicopter. But I'm having some trouble making it work on a client in multiplayer, it works flawless on the host but the client can't seem to be able to eject the quads properly, loading works fine. Init Line for the first quad(name = quad1) (second doesn't need it): nul = Quad1 addAction ["Load Quad Bike","LoadQuad\LoadQuad.sqf"]; Load Script: _unit = _this select 0; _caller = _this select 1; _ID = _this select 2; Huron = nearestObject [player,"B_Heli_Transport_03_F"]; QUAD = nearestObjects [_unit,["B_Quadbike_01_F"],10]; Quad1 = QUAD select 0; Quad2 = QUAD select 1; [_unit, "removeAllActions", true, true] spawn BIS_fnc_MP; [Quad1, "removeAllActions", true, true] spawn BIS_fnc_MP; [Quad2, "removeAllActions", true, true] spawn BIS_fnc_MP; [Huron, "removeAllActions", true, true] spawn BIS_fnc_MP; if (isNull Huron) exitWith { [[_unit, ["Load Quad Bikes","LoadQuad\Load2Quad.sqf",nil,5,true,true,"","(_target distance Huron) <= 30"]], "addAction", true, true] spawn BIS_fnc_MP; hint "No Huron Present."; }; if ((count QUAD) < 2) exitWith { [[_unit, ["Load Quad Bike","LoadQuad\LoadQuad.sqf",nil,5,true,true,"","(_target distance Huron) <= 30"]], "addAction", true, true] spawn BIS_fnc_MP; hint "1 Quad Bike present. Use Action again to tow it into the Huron."; }; Quad2 attachTo [Huron,[-0.1,2.5,-0.5]]; Quad2 enableSimulation false; Quad2 enableRopeAttach false; Sleep 0.5; Quad1 attachTo [Huron,[-0.1,-0.75,-0.5]]; Quad1 enableSimulation false; Quad1 enableRopeAttach false; sleep 1; [[Quad1, (getDir Huron -180)], "setDir", true, true] spawn BIS_fnc_MP; [[Quad2, (getDir Huron -180)], "setDir", true, true] spawn BIS_fnc_MP; hint "Quad Bikes Loaded."; EjectQUADS = [[Huron, ["Eject Quad Bikes","LoadQuad\Eject2Quad.sqf",nil,5]], "addAction", true, true] spawn BIS_fnc_MP; Eject Script: _unit = _this select 0; _caller = _this select 1; _ID = _this select 2; [_unit, "removeAllActions", true, true] spawn BIS_fnc_MP; [Quad1, "removeAllActions", true, true] spawn BIS_fnc_MP; [Quad2, "removeAllActions", true, true] spawn BIS_fnc_MP; [Huron, "removeAllActions", true, true] spawn BIS_fnc_MP; Quad1 allowDamage false; Quad2 allowDamage false; if ((getposATL Huron select 2) > 50) exitWith { detach Quad1; Quad1 disableCollisionWith Huron; if ((speed Huron) > 15) then { Quad1 setVelocity [(sin (getDir Huron -180)) * 5, (cos (getDir Huron -180)) * 5, 1]; }; if ((speed Huron) <= 15) then { Quad1 setVelocity [(sin (getDir Huron -180)) * 25, (cos (getDir Huron -180)) * 25, 1]; }; Quad1 enableSimulation true; sleep 2.5; _chute = createVehicle ["B_Parachute_02_F",(getpos Quad1),[],0,"FLY"]; _chute allowDamage false; _chute setpos [(getpos Quad1 select 0), getpos Quad1 select 1, (getpos Quad1 select 2)]; _chute setDir (getDir Quad1); Quad1 attachTo [_chute,[0,0,0]]; _chute setvelocity [0,0,-1]; Quad1 setDamage 0; sleep 2; detach Quad2; Quad2 disableCollisionWith Huron; if ((speed Huron) > 15) then { Quad2 setVelocity [(sin (getDir Huron -180)) * 5, (cos (getDir Huron -180)) * 5, 1]; }; if ((speed Huron) <= 15) then { Quad2 setVelocity [(sin (getDir Huron -180)) * 20, (cos (getDir Huron -180)) * 20, 1]; }; Quad2 enableSimulation true; hint "Quad Bikes Ejected."; sleep 2.5; _chute2 = createVehicle ["B_Parachute_02_F",(getpos Quad2),[],0,"FLY"]; _chute2 allowDamage false; _chute2 setpos [(getpos Quad2 select 0), getpos Quad2 select 1, (getpos Quad2 select 2)]; _chute2 setDir (getDir Quad2); Quad2 attachTo [_chute2,[0,0,0]]; _chute2 setvelocity [0,0,-1]; Quad2 setDamage 0; waitUntil {(getposATL Quad1 select 2) < 5}; detach Quad1; waitUntil {(getposATL Quad2 select 2) < 5}; detach Quad2; [[Quad1, ["Load Quad Bike","LoadQuad\LoadQuad.sqf",nil,5,true,true,"","(_target distance Huron) <= 30"]], "addAction", true, true] spawn BIS_fnc_MP; sleep 2; Quad1 allowDamage true; Quad1 enableRopeAttach true; Quad2 allowDamage true; Quad2 enableRopeAttach true; Quad1 enableCollisionWith Huron; Quad2 enableCollisionWith Huron; }; if ((getposATL Huron select 2) <= 50) exitWith { detach Quad1; Quad1 disableCollisionWith Huron; if ((speed Huron) > 15) then { Quad1 setVelocity [(sin (getDir Huron -180)) * 5, (cos (getDir Huron -180)) * 5, 1]; }; if ((speed Huron) < 15) then { Quad1 setVelocity [(sin (getDir Huron -180)) * 20, (cos (getDir Huron -180)) * 20, 1]; }; Quad1 enableSimulation true; sleep 2; detach Quad2; Quad2 disableCollisionWith Huron; if ((speed Huron) > 15) then { Quad2 setVelocity [(sin (getDir Huron -180)) * 5, (cos (getDir Huron -180)) * 5, 1]; }; if ((speed Huron) < 15) then { Quad2 setVelocity [(sin (getDir Huron -180)) * 20, (cos (getDir Huron -180)) * 20, 1]; }; Quad1 enableSimulation true; hint "Quad Bikes Unloaded."; [[Quad1, ["Load Quad Bike","LoadQuad\LoadQuad.sqf",nil,5,true,true,"","(_target distance Huron) <= 30"]], "addAction", true, true] spawn BIS_fnc_MP; sleep 2; Quad1 allowDamage true; Quad1 enableRopeAttach true; Quad1 enableCollisionWith Huron; Quad2 allowDamage true; Quad2 enableRopeAttach true; Quad2 enableCollisionWith Huron; }; the Client can see that the Quads wheels are turning when the velocity is changed but the quad itself remains inside the huron.
×