aeroson

Arma 3: TP to SL

Nov 21st, 2014
267
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. /*
  2.  
  3. Name: tpLeader.sqf
  4. Author: TAW_SAFORAX, aeroson
  5. Version: 1.2
  6.  
  7. Description: upon executon:
  8. teleports player behind his squad leader, or moves him into squad leader's vehicle
  9. if player is his own squad leader, it teleports him to member of his group in the field
  10.  
  11. Usage: place this into flag's init:
  12. this addAction ["TP to SL", "tpLeader.sqf"];
  13.  
  14. */
  15.  
  16. private ["_leader", "_leaderVehicle"];
  17.  
  18. _leader = leader player;
  19.  
  20. if(player == _leader) then {
  21. private ["_units", "_sumOfDistanceSqr", "_avgOfDistanceSqr"];
  22. // player is hiw own leader, find member of player's group that is above the average of distances of all group members
  23. _units = units group player;
  24. _sumOfDistanceSqr = 0;
  25. {
  26. _sumOfDistanceSqr = _sumOfDistanceSqr + (player distanceSqr _x);
  27. } forEach _units;
  28. _avgOfDistanceSqr = _sumOfDistanceSqr / count _units;
  29. {
  30. if(player distanceSqr _x >= _avgOfDistanceSqr) exitWith {
  31. _leader = _x;
  32. };
  33. } forEach _units;
  34. };
  35.  
  36. _leaderVehicle = vehicle _leader;
  37.  
  38. if(_leaderVehicle == _leader) then {
  39. // leader is on foot
  40. private ["_howFarBehindSquadLeader"];
  41. _howFarBehindSquadLeader = 2 + random 3; // move to 2-5 meters behind the back of squad leader
  42. player setPos ( (getPos _leader) vectorDiff ( (vectorDir _leader) vectorMultiply _howFarBehindSquadLeader ) );
  43. player setDir ( getDir _leader );
  44. } else {
  45. // leader is in vehicle
  46. if(!(player moveInAny _leaderVehicle)) then {
  47. // moveInAny _leaderVehicle failed.
  48. hint "Your squad leader is in vehicle, which is full.";
  49. };
  50. };
Advertisement
Add Comment
Please, Sign In to add comment