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


Фотография

Функция виртуального гаража


Лучший Ответ Forsion , 27 February 2018 - 19:58

ну короче вот такой гараж получился если кому надо будет.

на карте еще не забудьте маркер поставить с именем "garage_marker", а то предпросмотр техники в воде будет

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


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

#1 OFFLINE   Forsion

Forsion

    Ефрейтор

  • Пользователи
  • 38 сообщений
  • Откуда:акула
  • Отряд:Shark Squad

Отправлено 26 February 2018 - 16:01

хочу использовать виртуальный гараж в миссиях но не могу так как все что спавнится из него невидимо для других игроков и не получает урона (насколько я понял техника сразу спавнится локальной). а для того чтобы все работало надо как то или переписывать бисовскую функцию, или свой скрипт гаража писать, или еще что. думаю задачка не из лёгких но гараж уж очень хочется, помогите пожалуйста!


  • 0

#2 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 26 February 2018 - 17:53

Найдите саму функцию в аддонах армы и загляните внутрь, на предмет изучения передаваемых функции параметров.


  • 0

#3 OFFLINE   Forsion

Forsion

    Ефрейтор

  • Пользователи
  • 38 сообщений
  • Откуда:акула
  • Отряд:Shark Squad

Отправлено 26 February 2018 - 17:58

Найдите саму функцию в аддонах армы и загляните внутрь, на предмет изучения передаваемых функции параметров.

так я в этом не шарю! где лежит эта функция, как её редактировать, какие параметры отвечают за локальность создаваемой техники. ниче не знаю
 


  • 0

#4 OFFLINE   NoNameUltima

NoNameUltima

    Сержант

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

Отправлено 26 February 2018 - 18:04


ниче не знаю

Это типа - накатайте за меня?

Ну успехов тебе.


  • 0

#5 OFFLINE   Forsion

Forsion

    Ефрейтор

  • Пользователи
  • 38 сообщений
  • Откуда:акула
  • Отряд:Shark Squad

Отправлено 26 February 2018 - 18:17

 


ниче не знаю

Это типа - накатайте за меня?

Ну успехов тебе.

это типа помогите разобраться в вопросе. или ответить на три вопроса которые я задал выше супер сложно?


  • 0

#6 OFFLINE   NoNameUltima

NoNameUltima

    Сержант

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

Отправлено 26 February 2018 - 20:27


это типа помогите разобраться в вопросе.

Странно, а я прочитал как - я ниче не знаю, но хочу вирт. гараж, кода у меня нет, в скриптинге не бе ни ме.

 


или ответить на три вопроса которые я задал выше супер сложно?

А ну ок -


так я в этом не шарю!

Ну надо работать над собой)


где лежит эта функция

Мы не телепаты, что там у тебя за аддоны, и моды., и тоже не знаем.. Ну где то там - в аддонах и модах.


как её редактировать

В блокноте, руками.


какие параметры отвечают за локальность создаваемой техники

Параметров нет. А вот создание - createVehicleLocal


ниче не знаю

Нуууу надо работать над собой))

 


а для того чтобы все работало надо

Посмотреть, почитать, хотя бы на данном форуме уроки по скриптописанию.

 


переписывать бисовскую функцию

Эх... знать бы зачем, и какую...

 


или свой скрипт гаража писать

верняк!


  • 0

#7 OFFLINE   Forsion

Forsion

    Ефрейтор

  • Пользователи
  • 38 сообщений
  • Откуда:акула
  • Отряд:Shark Squad

Отправлено 26 February 2018 - 20:57

 

 

 


где лежит эта функция

Мы не телепаты, что там у тебя за аддоны, и моды., и тоже не знаем.. Ну где то там - в аддонах и модах.

 

какие аддоны? какие моды? это стандартная бисовская функция Bis_fnc_garage


 


так я в этом не шарю!

Ну надо работать над собой)

 

 

 

а я чем занимаюсь по твоему? ищу информацию на форуме у знающих людей, потому что сам я её найти нигде не смог


  • 0

#8 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 26 February 2018 - 21:01

Аддоны армы то можете найти в папке установки армы?

 

Если уж вы решили не много поскриптовать, то вам минимум желательно иметь распакованными и разбинареными ванильные аддоны с функционалом. Это и есть самый лучший кладезь информации.


Сообщение отредактировал SteelRat: 26 February 2018 - 21:03

  • 0

#9 OFFLINE   Forsion

Forsion

    Ефрейтор

  • Пользователи
  • 38 сообщений
  • Откуда:акула
  • Отряд:Shark Squad

Отправлено 26 February 2018 - 21:16

Аддоны армы то можете найти в папке установки армы?

 

Если уж вы решили не много поскриптовать, то вам минимум желательно иметь распакованными и разбинареными ванильные аддоны с функционалом. Это и есть самый лучший кладезь информации.

спасибо


Сообщение отредактировал Forsion: 26 February 2018 - 21:29

  • 0

#10 OFFLINE   Forsion

Forsion

    Ефрейтор

  • Пользователи
  • 38 сообщений
  • Откуда:акула
  • Отряд:Shark Squad

Отправлено 27 February 2018 - 06:02

нашел рабочий код.
только у него есть 2 проблемы:

1. машина сначала спавнится локальной когда открываешь гараж потом удаляется и спавнится заново, но уже нелокальной, когда виртуальный гараж закрывается, можно-ли сделать чтоб она непереспавнилась, а сразу создавалась нелокальной когда открывается гараж?

2. машина спавнится только на заданном маркере. как перенастроить место спавна чтобы она спавнились возле игрока?


disableSerialization;
uiNamespace setVariable [ "current_garage", ( _this select 0 ) ];
_fullVersion = missionNamespace getVariable [ "BIS_fnc_arsenal_fullGarage", false ];
if !( isNull ( uiNamespace getVariable [ "BIS_fnc_arsenal_cam", objNull ] ) ) exitwith { "Garage Viewer is already running" call bis_fnc_logFormat; };
{ deleteVehicle _x; } forEach nearestObjects [ getMarkerPos ( _this select 0 ), [ "AllVehicles" ], 10 ];
_veh = createVehicle [ "Land_HelipadEmpty_F", getMarkerPos ( _this select 0 ), [], 0, "CAN_COLLIDE" ];
uiNamespace setVariable [ "garage_pad", _veh ];
missionNamespace setVariable [ "BIS_fnc_arsenal_fullGarage", [ true, 0, false, [ false ] ] call bis_fnc_param ];
with missionNamespace do { BIS_fnc_garage_center = [ true, 1, _veh, [ objNull ] ] call bis_fnc_param; };
with uiNamespace do {  
	_displayMission = [] call ( uiNamespace getVariable "bis_fnc_displayMission" );
	if !( isNull findDisplay 312 ) then { _displayMission = findDisplay 312; };
	_displayMission createDisplay "RscDisplayGarage";
	uiNamespace setVariable [ "running_garage", true ];
	waitUntil { sleep 0.25; isNull ( uiNamespace getVariable [ "BIS_fnc_arsenal_cam", objNull ] ) };
	_marker = uiNamespace getVariable "current_garage";
	_pad = uiNamespace getVariable "garage_pad";
	deleteVehicle _pad;
	_veh_list = ( getMarkerPos _marker ) nearEntities 5;
	{
		_vehType = typeOf _x;
		_textures = getObjectTextures _x;
		
		_crew = crew _x;
		{
			_x spawn { 
				_this action [ "Eject", vehicle _this ];
				sleep ( random 2 );
				_this setDamage 1;
				sleep ( random 5 );
				deleteVehicle _this;
			};
		} forEach _crew;
		deleteVehicle _x;
		sleep 0.5;
		_new_veh = createVehicle [ _vehType, getMarkerPos _marker, [], 0, "CAN_COLLIDE" ];
		_new_veh setPosATL [ ( position _new_veh select 0 ), ( position _new_veh select 1 ), 0.25 ];
		_vehDir = markerDir _marker;
		_new_veh setDir _vehDir;
		_count = 0;
		{
			_new_veh setObjectTexture [ _count, _x ];
			_count = _count + 1;
		} forEach _textures;
	} forEach _veh_list;
};

  • 0

#11 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 27 February 2018 - 16:52

1) И как это будет выглядеть в сетевой игре, если разговор именно о сетевой игре? Сами подумайте, сколько срача полетит в сеть по поводу создания и удаления техники, пока вы развлекаетесь в гараже, и плюс, если техника будет создаваться глобально пока вы в гараже, как это будет выглядеть на мониторах других игроков? А если в гараж полезут тел эдак 10! Не думали в этом направлении?

 

2) Если ванильный функционал не предусматривает других вариантов, то придётся модифицировать ванильный функционал.


  • 0

#12 OFFLINE   NoNameUltima

NoNameUltima

    Сержант

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

Отправлено 27 February 2018 - 18:53


как перенастроить место спавна чтобы она спавнились возле игрока?

Конкретно спавн:

_new_veh = createVehicle [ _vehType, getMarkerPos _marker, [], 0, "CAN_COLLIDE" ];
_new_veh setPosATL [ ( position _new_veh select 0 ), ( position _new_veh select 1 ), 0.25 ];
_vehDir = markerDir _marker;
_new_veh setDir _vehDir;

заменить на:

_position    =    getPosATL player;
_direction   =    getDir player;
_location    =    [(_position select 0) + 2 * sin(_direction), (_position select 1) + 2 * cos(_direction), _position select 2];
_new_veh     =    createVehicle [ _vehType, _location, [], 0, "CAN_COLLIDE" ];
_new_veh setDir _direction;
_new_veh setPosATL _location;

  • 0

#13 OFFLINE   NoNameUltima

NoNameUltima

    Сержант

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

Отправлено 27 February 2018 - 19:17


1) И как это будет выглядеть в сетевой игре, если разговор именно о сетевой игре?

 

Нормально) Просто в МП обычно ставить в гараж за некоторую плату дают, и данный код не подходит для этих целей. Пишут с нуля гаражик. А в А2 и вовсе нет такой функции.

 

P.S. Да и вообще это для МП не подходит, т.к. все хранить надо в удаленной серверной БД(если делать реальный гараж)


Сообщение отредактировал NoNameUltima: 27 February 2018 - 20:08

  • 0

#14 OFFLINE   Forsion

Forsion

    Ефрейтор

  • Пользователи
  • 38 сообщений
  • Откуда:акула
  • Отряд:Shark Squad

Отправлено 27 February 2018 - 19:38

 


как перенастроить место спавна чтобы она спавнились возле игрока?

Конкретно спавн:

_new_veh = createVehicle [ _vehType, getMarkerPos _marker, [], 0, "CAN_COLLIDE" ];
_new_veh setPosATL [ ( position _new_veh select 0 ), ( position _new_veh select 1 ), 0.25 ];
_vehDir = markerDir _marker;
_new_veh setDir _vehDir;

заменить на:

_position    =    getPosATL player;
_direction   =    getDir player;
_location    =    [(_position select 0) + 2 * sin(_direction), (_position select 1) + 2 * cos(_direction), _position select 2];
_new_veh     =    createVehicle [ _vehType, _location, [], 0, "CAN_COLLIDE" ];
_new_veh setDir _direction;
_new_veh setPosATL _location;

работает! хоть и на половину т.к. предпросмотр техники все равно надо на маркере делать, а я бы хотел вообще без маркера обойтись.
но это уже мелочи, думаю сам потом разберусь если не лень будет.
спасибо большое!


Сообщение отредактировал Forsion: 27 February 2018 - 19:39

  • 0

#15 OFFLINE   Forsion

Forsion

    Ефрейтор

  • Пользователи
  • 38 сообщений
  • Откуда:акула
  • Отряд:Shark Squad

Отправлено 27 February 2018 - 19:58   Лучший Ответ

ну короче вот такой гараж получился если кому надо будет.

на карте еще не забудьте маркер поставить с именем "garage_marker", а то предпросмотр техники в воде будет

Прикрепленные файлы


  • 1

#16 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 27 February 2018 - 21:50

 


1) И как это будет выглядеть в сетевой игре, если разговор именно о сетевой игре?

 

Нормально) Просто в МП обычно ставить в гараж за некоторую плату дают, и данный код не подходит для этих целей. Пишут с нуля гаражик. А в А2 и вовсе нет такой функции.

 

P.S. Да и вообще это для МП не подходит, т.к. все хранить надо в удаленной серверной БД(если делать реальный гараж)

 

Это и слону понятно.

Если речь идёт о функционале для конкретного игрового процесса, то и писать надо, или править, под конкретные требования.

В данном случае обсуждалась ванильная функция, которая вполне применима и для МР, играют не только в лайф).


 

на карте еще не забудьте маркер поставить с именем "garage_marker", а то предпросмотр техники в воде будет

// такой вызов функции, откроет гараж относительно позиции игрока
[] spawn bis_fnc_garage;

  • 0

#17 OFFLINE   Forsion

Forsion

    Ефрейтор

  • Пользователи
  • 38 сообщений
  • Откуда:акула
  • Отряд:Shark Squad

Отправлено 28 February 2018 - 09:38

// такой вызов функции, откроет гараж относительно позиции игрока
[] spawn bis_fnc_garage;

это работает только со стандартной функцией.


  • 0

#18 OFFLINE   Forsion

Forsion

    Ефрейтор

  • Пользователи
  • 38 сообщений
  • Откуда:акула
  • Отряд:Shark Squad

Отправлено 28 February 2018 - 13:01

а какая переменная присваивается машине при спавне? на _new_veh  не реагирует ниче.
хочу чтоб после повторного спавна другой машины старая удалялась, а то карта засоряется.


  • 0

#19 OFFLINE   ReXcOr

ReXcOr

    Ст.сержант

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

Отправлено 28 February 2018 - 21:26

Костыль надо делать, а переменная локальная, ты ее никак не дернешь простым способом.

Как вариант, можно поставить триггер на маркер, где ты спавнишь технику и при появлении техники должен срабатывать триггер и записывать все, что в нем находится, потом отсеивать из этого всего списка технику, а потом уже удалять


  • 0

#20 OFFLINE   NoNameUltima

NoNameUltima

    Сержант

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

Отправлено 01 March 2018 - 08:38

Forsion, тут уроки есть на сайте, достаточно прочитать 1-2 странички, для твоих целей. Или глянуть на ютубе пару уроков.


  • 0




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