Smart Games 76 Posted July 18, 2021 Hi there, I want to create some Ai units which drive on roads from one position to another in a cycle. I managed to spawn them, but can't make them move. I tried calculatepath, setDestination, forcefollowroad and waypoints. spawn code (works fine): private _pos1 = [_center, 5, _axis, 3, 0, 20, 0] call BIS_fnc_findSafePos; private _road1 = [_pos1, 500] call BIS_fnc_nearestRoad; private _agent = (createGroup east) createUnit [getText (_units_town select (random ((count _units_town) -1))), getPos _road1, [], 0, "NONE"]; private _car = (getText (_vehicles_military select (random ((count _vehicles_military) -1)))) createVehicle (getPos _agent); _agent moveInDriver _car; private _pos2 = [_center, 5, _axis, 3, 0, 20, 0] call BIS_fnc_findSafePos; private _road2 = [_pos1, 500] call BIS_fnc_nearestRoad; The Ai should move from _road1 to _road2. Thanks for your help! Share this post Link to post Share on other sites
Nemanjic 71 Posted July 18, 2021 _agent setBehavour "safe"? Share this post Link to post Share on other sites
Smart Games 76 Posted July 19, 2021 That doesn't help. Anyone else has an idea? Share this post Link to post Share on other sites
Maff 251 Posted July 19, 2021 12 hours ago, Smart Games said: I managed to spawn them, but can't make them move. I tried calculatepath, setDestination, forcefollowroad and waypoints. Just a hunch but _car is not moving because _pos1 is the same as _pos2, and _road1 is the same as _road2. 3 Share this post Link to post Share on other sites
Smart Games 76 Posted July 19, 2021 42 minutes ago, Maff said: Just a hunch but _car is not moving because _pos1 is the same as _pos2, and _road1 is the same as _road2. Oh God - I am so stupid. I forgot to make the second position a random one. Yeah, thank you! 😉 Share this post Link to post Share on other sites
sarogahtyp 1108 Posted July 19, 2021 just in case someone is looking for something similar. spawning quad (near road) and driver - adding 2 random waypoints - endless driving between both waypoints: tested in initServer.sqf on Altis in Kavala: waitUntil { sleep 1; time > 0 }; //center position of waypoint and spawn position search private _center_pos = getPos saro_trigger; // maximum distance between center and waypoints/vehicle spawn private _waypoint_search_radius = 500; //minimum distance between both waypoints private _wp_min_distance = 50; //move player into vehicle (for testing) _player_move_in = true; //speed for moving ( "LIMITED" "NORMAL" "FULL" ) private _wp_speed = "FULL"; private ["_pos1", "_pos2", "_road1", "_road2", "_wp2"]; private _posvec = [0,0,8000]; private _wp_min_distanceSqr = _wp_min_distance^2; while { (_posvec nearRoads 15) isEqualTo [] } do { _posvec = [_center_pos, 0, _waypoint_search_radius, 7] call BIS_fnc_findSafePos; }; //spawn hunter _veh = createVehicle ["B_G_Quadbike_01_F", _posvec, [], 0, "NONE"]; //spawn unit and make driver _unit = (createGroup west) createUnit ["B_crew_F", [0, 0, 8000] , [], 0, "CAN_COLLIDE"]; _unit assignAsDriver _veh; _unit moveInDriver _veh; if ( _player_move_in ) then { player moveInAny _veh; }; while { isNil "_road1" || isNil "_road2" || { _road1 distanceSqr _road2 < _wp_min_distanceSqr } } do { _pos1 = _center_pos getPos [ (random _waypoint_search_radius) , (random 360) ]; _pos2 = _center_pos getPos [ (random _waypoint_search_radius) , (random 360) ]; _road1 = (_pos1 nearRoads 50) select 0; _road2 = (_pos2 nearRoads 50) select 0; }; saro_wp1 = (group _unit) addWaypoint [(position _road1), 0]; _wp2 = (group _unit) addWaypoint [(position _road2), 0]; saro_wp1 setWaypointType "MOVE"; _wp2 setWaypointType "MOVE"; saro_wp1 setWaypointCompletionRadius 10; _wp2 setWaypointCompletionRadius 10; saro_wp1 setWaypointSpeed _wp_speed; _wp2 setWaypointSpeed _wp_speed; _wp2 setWaypointStatements ["true", "(saro_wp1 select 0) setCurrentWaypoint saro_wp1;"]; 1 Share this post Link to post Share on other sites