Advertisement
Brenner650

occupationTraders.sqf

Apr 9th, 2019
238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.23 KB | None | 0 0
  1. _logDetail = format['[OCCUPATION:Traders] starting @ %1',time];
  2. [_logDetail] call SC_fnc_log;
  3. {
  4.     private _world                  = _x select 0;
  5.    
  6.     if (worldName == _world) then
  7.     {
  8.         private _traderName         = _x select 1;
  9.         private _traderPos          = _x select 2;
  10.         private _fileName           = _x select 3;
  11.         private _createSafezone     = _x select 4;
  12.         private _file = format ["x\addons\a3_exile_occupation\trader\%1",_fileName];
  13.         SC_fnc_createTraders = compile preprocessFileLineNumbers _file;
  14.         [_traderPos] call SC_fnc_createTraders;
  15.  
  16.         _traderName setmarkeralpha 0;
  17.         private _marker = createMarker [ format [" %1 ", _traderName], _traderPos];
  18.         _marker setMarkerText "";
  19.         _marker setMarkerShape "ICON";
  20.         _marker setMarkerType "ExileTraderZoneIcon";
  21.  
  22.         private _marker1 = createMarker [ format [" %1_1 ", _traderName], _traderPos];
  23.         _marker1 setMarkerText "";
  24.         _marker1 setMarkerType "ExileTraderZone";
  25.         _marker1 setmarkeralpha 0;
  26.         _marker1 setMarkerBrush "Border";
  27.  
  28.         if(_createSafezone) then
  29.         {
  30.             ExileTraderZoneMarkerPositions pushBack _traderPos;  
  31.             ExileTraderZoneMarkerPositionsAndSize pushBack [_traderPos, 175];  
  32.             publicVariable "ExileTraderZoneMarkerPositions";
  33.             publicVariable "ExileTraderZoneMarkerPositionsAndSize";    
  34.         };
  35.         _logDetail = format['[OCCUPATION:Traders] Created trader base %1 @ %2',_traderName,_traderPos];
  36.         [_logDetail] call SC_fnc_log;
  37.        
  38.  
  39.         // Place the traders randomly
  40.  
  41.         private _traders = [
  42.             ["Exile_Trader_AircraftCustoms",    "Exile_Sign_AircraftCustoms",       "GreekHead_A3_08",  ["HubBriefing_loop","HubBriefing_scratch","HubBriefing_stretch","HubBriefing_think"]],
  43.             ["Exile_Trader_Aircraft",           "Exile_Sign_Aircraft",              "WhiteHead_10",     ["LHD_krajPaluby"]],
  44.             ["Exile_Trader_Armory",             "Exile_Sign_Armory",                "WhiteHead_01",     ["InBaseMoves_HandsBehindBack1","InBaseMoves_HandsBehindBack2"]],
  45.             ["Exile_Trader_Hardware",           "Exile_Sign_Hardware",              "WhiteHead_14",     ["HubStandingUC_idle1","HubStandingUC_idle3"]],
  46.             ["Exile_Trader_Vehicle",            "Exile_Sign_Vehicles",              "AfricanHead_03",   ["HubStandingUC_idle2","HubStandingUC_idle1"]],
  47.             ["Exile_Trader_VehicleCustoms",     "Exile_Sign_VehicleCustoms",        "GreekHead_A3_05",  ["HubBriefing_loop","HubBriefing_scratch","HubBriefing_stretch","HubBriefing_think"]],
  48.             ["Exile_Trader_WasteDump",          "Exile_Sign_WasteDump",             "WhiteHead_07",     ["c4coming2cDf_genericstani1","c4coming2cDf_genericstani2","c4coming2cDf_genericstani3"]],
  49.             ["Exile_Trader_Food",               "Exile_Sign_Food",                  "WhiteHead_15",     ["HubStandingUC_idle3","HubStandingUC_idle2"]],
  50.             ["Exile_Trader_SpecialOperations",  "Exile_Sign_SpecialOperations",     "WhiteHead_06",     ["HubStandingUC_idle1","HubStandingUC_idle3"]],
  51.             ["Exile_Trader_Equipment",          "Exile_Sign_Equipment",             "WhiteHead_15",     ["HubStandingUC_idle2","HubStandingUC_idle1"]],
  52.             ["Exile_Trader_Office",             "Exile_Sign_Office",                "WhiteHead_10",     ["HubBriefing_loop","HubBriefing_scratch","HubBriefing_stretch","HubBriefing_think"]]
  53.         ];
  54.  
  55.         private _group = createGroup SC_SurvivorSide;
  56.         _group setCombatMode "BLUE";
  57.         _group setVariable ["DMS_AllowFreezing",false,true];
  58.         _group setVariable ["DMS_LockLocality",true];
  59.         _group setVariable ["DMS_SpawnedGroup",false];
  60.         _group setVariable ["DMS_Group_Side", "survivor"];  
  61.  
  62.  
  63.         enableSentences false;
  64.         enableRadio false;     
  65.  
  66.         {        
  67.             private _traderType         = _x select 0;
  68.             private _traderSign         = _x select 1;
  69.             private _traderFace         = _x select 2;
  70.             private _traderAnimation    = _x select 3;
  71.            
  72.  
  73.             // Find nearest relevant sign for the trader
  74.             private _nearestSign = nearestObject [_traderPos, _traderSign];
  75.             private _signDir = getDir _nearestSign;
  76.             _nearestSign setDir _signDir;            
  77.             private _traderPosition = position _nearestSign;
  78.            
  79.             _traderType createUnit [_traderPosition, _group, "trader = this;"];
  80.                
  81.             trader reveal _nearestSign;
  82.             _nearestSign disableCollisionWith trader;        
  83.             trader disableCollisionWith _nearestSign;
  84.             trader attachTo [_nearestSign, [0, -2, -0.6]];
  85.             detach trader;
  86.             private _traderDirection = _signDir-180;
  87.             trader setDir _traderDirection;
  88.            
  89.             trader setVariable ["BIS_enableRandomization", false];
  90.             trader setVariable ["BIS_fnc_animalBehaviour_disable", true];
  91.             trader setVariable ["ExileAnimations", _traderAnimation];
  92.             trader setVariable ["ExileTraderType", _traderType,true];
  93.             trader disableAI "ANIM";
  94.             trader disableAI "MOVE";
  95.             trader disableAI "FSM";
  96.             trader disableAI "AUTOTARGET";
  97.             trader disableAI "TARGET";
  98.             trader disableAI "CHECKVISIBLE";
  99.             trader allowDamage false;
  100.             trader setFace _traderFace;        
  101.            
  102.             removeGoggles                   trader;
  103.             removeAllItemsWithMagazines     trader;
  104.             removeHeadgear                  trader;
  105.             removeUniform                   trader;
  106.             removeVest                      trader;
  107.             removeBackpackGlobal            trader;
  108.  
  109.             private _loadOut = ["bandit"] call SC_fnc_selectGear;
  110.             trader addWeapon (_loadOut select 0);
  111.             trader forceAddUniform (_loadOut select 8);
  112.             trader addVest (_loadOut select 9);
  113.             trader addBackpack (_loadOut select 10);
  114.             trader addHeadgear "H_Cap_blk";
  115.  
  116.             trader switchMove (_traderAnimation select 0);
  117.             trader addEventHandler ["AnimDone", {_this call ExileClient_object_trader_event_onAnimationDone}];
  118.            
  119.             sleep 0.2;
  120.             diag_log format["[OCCUPATION:Traders] Created %1 with head %2 at %3 facing %4", _x select 0, _x select 2, _traderPosition, _traderDirection];
  121.         } forEach _traders;                  
  122.     };
  123. } foreach SC_occupyTraderDetails;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement