Advertisement
secondcoming

unstick vehicles

Apr 3rd, 2016
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /* by www.infiSTAR.de -- I recommend to take a look at: www.exilemod.com */
  2.  
  3.  
  4.  
  5. /* This function goes somewhere serverside, should be set before the server_monitor starts */
  6. fnc_UnstuckVeh =
  7. {
  8.     private['_car','_curPos','_oldCarPos','_engineTime','_newPos'];
  9.     _car = _this;
  10.     if(isEngineOn _car)then
  11.     {
  12.         if(crew _car isEqualTo [])then
  13.         {
  14.             _curPos = position _car;
  15.             _oldCarPos = _car getVariable['carPos',[0,0,0]];
  16.             if(str _oldCarPos != '[0,0,0]')then
  17.             {
  18.                 if(_curPos distance _oldCarPos < 2)then
  19.                 {
  20.                     _engineTime  = _car getVariable['engineTime',-1];
  21.                     if(_engineTime < 0)then
  22.                     {
  23.                         _car setVariable['engineTime',time];
  24.                     };
  25.                     if(time - _engineTime > 10)then
  26.                     {
  27.                         _car setVariable['engineTime',-1];
  28.                        
  29.                         _car setVectorUp [0,0,1];
  30.                         _newPos = [_curPos,1,100,1,true] call EPOCH_fnc_findSafePos;
  31.                         _car setPosATL _newPos;
  32.                     };
  33.                 };
  34.             };
  35.             _car setVariable['carPos',_curPos];
  36.         }
  37.         else
  38.         {
  39.             _car setVariable['carPos',[0,0,0]];
  40.         };
  41.     }
  42.     else
  43.     {
  44.         _car setVariable['carPos',[0,0,0]];
  45.     };
  46. };
  47.  
  48.  
  49. /*
  50.     Mod the file 'server_monitor.fsm'
  51.     path: 'a3_epoch_server\system\server_monitor.fsm'
  52. */
  53.         class Save_Vehicles
  54.         {
  55.           priority = 4.000000;
  56.           to="Process";
  57.           precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  58.           condition=/*%FSM<CONDITION""">*/"((diag_tickTime - _delayTimeSaveVeh) > 1)"/*%FSM</CONDITION""">*/;
  59.           action=/*%FSM<ACTION""">*/"_delayTimeSaveVeh = diag_tickTime;" \n
  60.            "if !(EPOCH_saveVehQueue isEqualTo []) then {" \n
  61.            "    _saveVehicle = EPOCH_saveVehQueue deleteAt 0;" \n
  62.            "    if !(isNull _saveVehicle) then {" \n
  63.            "        _saveVehicle call EPOCH_server_save_vehicle;" \n
  64.            "        if(!isNil ""fnc_UnstuckVeh"")then{_saveVehicle call fnc_UnstuckVeh};" \n
  65.            "    };" \n
  66.            "};" \n
  67.            "if !(EPOCH_saveStorQueue isEqualTo []) then {" \n
  68.            "    _saveStorage = EPOCH_saveStorQueue deleteAt 0;" \n
  69.            "    if !(isNull _saveStorage) then {" \n
  70.            "        _saveStorage call EPOCH_server_save_storage;" \n
  71.            "    };" \n
  72.            "};"/*%FSM</ACTION""">*/;
  73.         };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement