Advertisement
Guest User

mobiletrader

a guest
Apr 19th, 2014
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.38 KB | None | 0 0
  1. if (isServer) then {
  2. private["_traderList","_trader","_spawnTrader","_i","_arrayLength","_center","_trdGroup"];
  3. _center = WEST;
  4. _trdGroup = Creategroup WEST;
  5. _spawnTrader = {
  6. private ["_endMarker","_truefalse","_moving","_markermove","_trdpos","_name","_cat","_spawnRadius","_needsrelocated","_istoomany","_trdGroup","_trdleader","_unitSkin","_WTpos","_position","_marker_1","_rad","_position2","_marker_2","_playerPresent"];
  7. _this = _this select 0;
  8. _unitSkin = _this select 0;
  9. _name = _this select 1;
  10. _cat = _this select 2;
  11. _truefalse = _this select 3;
  12. _spawnRadius = (HeliCrashArea/2);
  13. if(_truefalse) then {
  14. _WTpos = position WT;
  15. _trdleader = createAgent [_unitSkin,[(_WTpos select 0)+floor(random 14), (_WTpos select 1)-floor(random 2), 0], [], 0, "NONE"];
  16. _trdleader setBehaviour "CARELESS";
  17. _trdleader setSpeedMode "LIMITED";
  18. _trdleader setCombatMode "GREEN";
  19. _trdleader setFormation "FILE";
  20. _trdleader allowFleeing 0;
  21. _trdleader allowDamage false;
  22. while {true} do {
  23. _WTpos = position WT;
  24. _trdleader doMove _WTpos;
  25. sleep 10;
  26. };
  27. } else {
  28. _needsrelocated = true;
  29. while {_needsrelocated} do {
  30. _position = [getMarkerPos "center",0,_spawnRadius,10,0,5000,0] call BIS_fnc_findSafePos;
  31. //START POS
  32. _startPos = createMarker [_cat, _position];
  33. _startPos setMarkerShape "mil_dot";
  34. _startPos setMarkerColor "ColorGreen";
  35. _startPos setMarkerText "Trader Start";
  36. _startPos setMarkerAlpha 1;
  37. _startPos setMarkerSize [1.25, 1.25];
  38. _marker_1 = _startPos;
  39. //END POS
  40. _rad = 2000;
  41. _position2 = [getMarkerPos "center",0,_rad,10,0,5000,0] call BIS_fnc_findSafePos;
  42. //_endMarker = _position2;
  43. diag_log _position2;
  44. _endMarker = createMarker [_name, _position2];
  45. _endMarker setMarkerType "mil_dot";
  46. _endMarker setMarkerColor "ColorGreen";
  47. _endMarker setMarkerText "Trader End";
  48. _endMarker setMarkerAlpha 1;
  49. _endMarker setMarkerSize [1.25, 1.25];
  50. _marker_2 = _endMarker;
  51. _istoomany = _position nearObjects ["AllVehicles",10];
  52. if((count _istoomany) == 0) then { _needsrelocated = false; };
  53. };
  54. diag_log _position2;
  55. _trdleader = createAgent [_unitSkin,[(_position select 0)+floor(random 14), (_position select 1)-floor(random 2), 0], [], 0, "NONE"];
  56. _trdleader doMove [_position2 select 0, _position2 select 1];
  57. _trdleader setBehaviour "CARELESS";
  58. _trdleader setSpeedMode "LIMITED";
  59. _trdleader setCombatMode "GREEN";
  60. _trdleader setFormation "FILE";
  61. _trdleader allowFleeing 0;
  62. _trdleader allowDamage false;
  63. if(_truefalse) then {WT = _trdleader;};
  64. _trdpos = getPos _trdleader;
  65. _markermove = createMarker [_unitSkin, _trdpos];
  66. _markermove setMarkerType "mil_dot";
  67. _markermove setMarkerSize [1.5, 1.5];
  68. _markermove setMarkerColor "ColorGreen";
  69. _markermove setMarkerText _name;
  70. _markermove setMarkerAlpha 1;
  71. _moving = true;
  72. while {_moving} do {
  73. _playerPresent = false;
  74. _markermove setMarkerPos (getPos _trdleader);
  75. _markermove setMarkerDir (getDir _trdleader);
  76.  
  77. if ({_trdleader distance (getMarkerPos _unitSkin) < 30} count playableUnits > 0) then {
  78. _playerPresent = true;
  79. _trdleader disableAI "MOVE";
  80. _trdleader disableAI "FSM";
  81. _trdleader doWatch player;
  82. //hint format ["playerpresent=%1", _playerPresent];
  83. } else {
  84. _trdleader enableAI "MOVE";
  85. _trdleader enableAI "FSM";
  86. _playerPresent = false;
  87. //hint format ["playerpresent=%1", _playerPresent];
  88. };
  89. if (_trdleader distance _position2 <= 50) then {
  90. //deleteVehicle _trdleader;
  91. //deletemarker _markermove;
  92. //deletemarker _marker_1;
  93. //deletemarker _marker_2;
  94. //hint parseText format ["<t align='center' color='%1' shadow='2' size='1.75'>Trader</t><br/><t align='center' color='%2' size='1.35'>sind weitergezogen</t>", _failMissionColor, _subTextColor];
  95. _moving = false;
  96. };
  97. sleep 5;
  98. };
  99. };
  100. };
  101.  
  102.  
  103.  
  104. _traderList = [
  105. ["pook_Doc_Bell47","Medical Supply","MS",false],
  106. ["Damsel3","Drinks ,Backpacks ,Foods","DBF",false],
  107. ["GUE_Woodlander2","Building, Vehicle ,Toolbelt Items","BVT",false],
  108. ["Soldier_GL_PMC","Black Market","BM",false],
  109. ["Soldier_MG_PKM_PMC","Weapon and Ammo Trader","WT",false],
  110. ["Soldier_MG_PKM_PMC","Ammo Trader","AT",true]
  111. ];
  112.  
  113. _arrayLength = count _traderList;
  114. _i = 0;
  115. for [{_i=0}, {_i<_arrayLength}, {_i=_i+1}] do
  116. {
  117. _trader = _traderList select (_i);
  118. diag_log format["%1 spawned",_trader select 0];
  119. [_trader] spawn _spawnTrader;
  120. };
  121. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement