All pastes #2093034 Raw Edit

Unnamed

public text v1 · immutable
#2093034 ·published 2011-11-08 12:31 UTC
rendered paste body
_logic =  _this select 0;
_size = _this select 1;
_time =   _this select 2;
_side =   _this select 3;

if (typename _size == typename 0) then { // number
  _size = [_size, _size];
};

_pos = getPos _logic;
_dir = getDir _logic;
_startedVarName = "sandi_setup_done_" + (str _side);

if (isServer) then { // server
  [_time, _side, _startedVarName] spawn {
    _time = _this select 0;
    _side = _this select 1;
    _startedVarName = _this select 2;
    
    sleep _time; // wait for setup to end
    
    missionNamespace setVariable [_startedVarName, true];
    publicVariable _startedVarName;
  };
};

if (!isDedicated) then { // player

  waitUntil {!isNull player};
  if (side player == _side) then {
  
    if (isNil _startedVarName) then { // setup
    
      _name = "setup_" + str _side;
      createMarkerLocal [_name, _pos];
      //_name setMarkerDir _dir;
      _name setMarkerDirLocal _dir;
      _name setMarkerShapeLocal "RECTANGLE"; 
      _name setMarkerSizeLocal _size;
      _name setMarkerBrushLocal "Border";
      if (_side == west) then {
        _name setMarkerColorLocal "ColorBlue";
      };
      if (_side == east) then {
        _name setMarkerColorLocal "ColorRed";
      };

      // make barrier
      _barrierHandle = [_pos, _size select 0, _size select 1, _dir, "rectangle", "The setup area ends here"] call compile preprocessFileLineNumbers "scripts\sandi_barrier\register.sqf";
      
      sleep 5;
      hint ("You have " + (str _time) + " seconds setup time");
      
      [_startedVarName, _barrierHandle, _name] spawn {
        _startedVarName = _this select 0;
        _barrierHandle = _this select 1;
        _markerName = _this select 2;
        
        waitUntil {!isNil _startedVarName};

        sandi_barrier_barriers set [_barrierHandle, 0];
        deleteMarkerLocal _markerName;
        hint ("Setup complete");
      };
    };
  };
};