Перейти к содержимому


Фотография

Как открыть ворота?


Лучший Ответ SteelRat , 04 July 2014 - 20:42

Ставите в редакторе рядом с воротами игровую логику, в инит логики пишете

// Открыть ворота
0 = [this, ["Land_Net_Fence_Gate_F"], "open"] execVM "functions\fn_actionsGate.sqf";

// Или, закрыть ворота
0 = [this, ["Land_Net_Fence_Gate_F"], "close"] execVM "functions\fn_actionsGate.sqf";

Далее в папке с миссией создаёте папку с названием

functions

в этой папке создаёте файл с названием

fn_actionsGate.sqf

в этот файл копируете код

/*
	Created by SteelRat ( ProjectTeam )
*/

_lgGate		= _this select 0;
_classGate	= _this select 1;
_actionType	= _this select 2;

_gatesTest 	= nearestObjects [_lgGate, _classGate, 50];
if ((count _gatesTest) == 0) exitWith {};

_gate = _gatesTest select 0;

switch (_actionType) do {

	case "open": {
		//	OpenDoor_1
		if (((_gate animationPhase 'Door_1_rot') < 0.5) && ((_gate getVariable ['bis_disabled_Door_1',0]) != 1)) then {
			[_gate, "Door_1_rot"] execVM "\A3\Structures_F\scripts\DoorNoHandle_open.sqf";
		};

		//	OpenDoor_2
		if (((_gate animationPhase 'Door_2_rot') < 0.5) && ((_gate getVariable ['bis_disabled_Door_2',0]) != 1)) then {
			[_gate, "Door_2_rot"] execVM "\A3\Structures_F\scripts\DoorNoHandle_open.sqf";
		};
	};
	
	case "close": {
		//	CloseDoor_1
		if (((_gate animationPhase 'Door_1_rot') >= 0.5) && ((_gate getVariable ['bis_disabled_Door_1',0]) != 1)) then {
			[_gate, "Door_1_rot"] execVM "\A3\Structures_F\scripts\DoorNoHandle_close.sqf";
		};
	
		//	CloseDoor_2
		if (((_gate animationPhase 'Door_2_rot') >= 0.5) && ((_gate getVariable ['bis_disabled_Door_2',0]) != 1)) then {
			[_gate, 'Door_2_rot'] execVM "\A3\Structures_F\scripts\DoorNoHandle_close.sqf";
		};
	};
};

И будет вам счастье.

Перейти к сообщению


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 6

#1 OFFLINE   pixel

pixel

    Прапорщик

  • Пользователи
  • 500 сообщений
  • Откуда:Россия.

Отправлено 03 July 2014 - 22:34

На Алтисе на северо-востоке есть мыс стригла там стоит маяк территория ограждена. Вопрос как открыть ворота? Чтобы в игре они были распахнуты. Заранее спасибо!


  • 0

#2 OFFLINE   MrCreppo

MrCreppo

    Ефрейтор

  • Пользователи
  • 32 сообщений

Отправлено 04 July 2014 - 11:46

попробуй модуль открытия дверей/люков в радиусе. Двери по крайней мере открывает


Сообщение отредактировал MrCreppo: 04 July 2014 - 11:48

  • 0

#3 OFFLINE   MrCreppo

MrCreppo

    Ефрейтор

  • Пользователи
  • 32 сообщений

Отправлено 04 July 2014 - 11:52

Так на воротах не сработало.

 

Есть такой вариант - сначала сломай их а потом спрячь.

(getPos logic nearestObject 1515680)  setDamage 1; hideObject (getPos logic nearestObject 1515680);

Сообщение отредактировал MrCreppo: 04 July 2014 - 11:54

  • 0

#4 OFFLINE   pixel

pixel

    Прапорщик

  • Пользователи
  • 500 сообщений
  • Откуда:Россия.

Отправлено 04 July 2014 - 15:41

 

Так на воротах не сработало.

 

Есть такой вариант - сначала сломай их а потом спрячь.

(getPos logic nearestObject 1515680)  setDamage 1; hideObject (getPos logic nearestObject 1515680);

Куда это вставить в логику игры? Иль нет?


  • 0

#5 OFFLINE   MrCreppo

MrCreppo

    Ефрейтор

  • Пользователи
  • 32 сообщений

Отправлено 04 July 2014 - 19:52

 

 

Так на воротах не сработало.

 

Есть такой вариант - сначала сломай их а потом спрячь.

(getPos logic nearestObject 1515680)  setDamage 1; hideObject (getPos logic nearestObject 1515680);

Куда это вставить в логику игры? Иль нет?

 

Агась. Но player вместо logic вроде робит. На расстоянии не проверял.


Сообщение отредактировал MrCreppo: 04 July 2014 - 19:53

  • 1

#6 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 04 July 2014 - 20:42   Лучший Ответ

Ставите в редакторе рядом с воротами игровую логику, в инит логики пишете

// Открыть ворота
0 = [this, ["Land_Net_Fence_Gate_F"], "open"] execVM "functions\fn_actionsGate.sqf";

// Или, закрыть ворота
0 = [this, ["Land_Net_Fence_Gate_F"], "close"] execVM "functions\fn_actionsGate.sqf";

Далее в папке с миссией создаёте папку с названием

functions

в этой папке создаёте файл с названием

fn_actionsGate.sqf

в этот файл копируете код

/*
	Created by SteelRat ( ProjectTeam )
*/

_lgGate		= _this select 0;
_classGate	= _this select 1;
_actionType	= _this select 2;

_gatesTest 	= nearestObjects [_lgGate, _classGate, 50];
if ((count _gatesTest) == 0) exitWith {};

_gate = _gatesTest select 0;

switch (_actionType) do {

	case "open": {
		//	OpenDoor_1
		if (((_gate animationPhase 'Door_1_rot') < 0.5) && ((_gate getVariable ['bis_disabled_Door_1',0]) != 1)) then {
			[_gate, "Door_1_rot"] execVM "\A3\Structures_F\scripts\DoorNoHandle_open.sqf";
		};

		//	OpenDoor_2
		if (((_gate animationPhase 'Door_2_rot') < 0.5) && ((_gate getVariable ['bis_disabled_Door_2',0]) != 1)) then {
			[_gate, "Door_2_rot"] execVM "\A3\Structures_F\scripts\DoorNoHandle_open.sqf";
		};
	};
	
	case "close": {
		//	CloseDoor_1
		if (((_gate animationPhase 'Door_1_rot') >= 0.5) && ((_gate getVariable ['bis_disabled_Door_1',0]) != 1)) then {
			[_gate, "Door_1_rot"] execVM "\A3\Structures_F\scripts\DoorNoHandle_close.sqf";
		};
	
		//	CloseDoor_2
		if (((_gate animationPhase 'Door_2_rot') >= 0.5) && ((_gate getVariable ['bis_disabled_Door_2',0]) != 1)) then {
			[_gate, 'Door_2_rot'] execVM "\A3\Structures_F\scripts\DoorNoHandle_close.sqf";
		};
	};
};

И будет вам счастье.


  • 1

#7 OFFLINE   pixel

pixel

    Прапорщик

  • Пользователи
  • 500 сообщений
  • Откуда:Россия.

Отправлено 04 July 2014 - 21:52

Всем спасибо!!! 

 

SteelRat спасибо, что подробно и ясно расписал. 

Сообщение отредактировал pixel: 04 July 2014 - 21:57

  • 0




Яндекс.Метрика