Jump to content


Photo

Вопросы по скриптингу

Arma3 как плотформа для созда Скритпы

  • Please log in to reply
1486 replies to this topic

#621 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 posts

Posted 24 February 2017 - 02:20

также как не в cargo space

нет


Edited by Ilias, 24 February 2017 - 02:20.

  • 0

#622 OFFLINE   lopster102

lopster102

    Ст.сержант

  • Пользователи
  • 267 posts
  • Откуда:mscw

Posted 24 February 2017 - 02:35

 

также как не в cargo space

нет

 

что нет ??....))))вот именно что нет....я же тебе объяснил уже ты сам на свой вопрос ответил


  • 0

#623 OFFLINE   Dead69Man

Dead69Man

    Рядовой

  • Пользователи
  • 14 posts

Posted 24 February 2017 - 08:34

 

 

 

Спасибо!Все очень подробно объяснили!Вечером буду разбираться )

А можно но ли данный скрипт прописать модулю? например случайному патрулю ?Или как я понял ,нужно создать массив и туда вписать все классы которые могут спавниться в этом патруле?


  • 0

#624 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 posts
  • Откуда:Кострома

Posted 24 February 2017 - 13:46

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание



По второму вопросу: один из вариантов:
1) Определяешь какой предмет ты будещь заменять, находишь и запоминаешь его класс (И все что необходимо (Кол-во патрон, обвесы и т. д.)
2) Через

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

проверяешь - можно ли добавить этот предмет? (И все его обвесы, если есть таковые) (Вот на этом месте и возникает множество вариантов)
3) Если можно, то просто замещаешь на твой предмет и всем известным скриптовыми командами добавляешь замещенный предмет
4) Если нет, то замещаем предмет и выполняем следующий код:
private ["_weaponHolder"];

//Создаем "место" куда мы будем класть замещенные предметы
_weaponHolder = createVehicle ["GroundWeaponHolder", [0.0, 0.0, 0.0], [], 0, "CAN_COLLIDE"];

//Тут ты всем известным скриптовыми командами кладешь замещенные предметы
//Обязательно добавить первый предмет нужно за 0.5 секунды (Т. е. без задержек) т. к. все пустые контейнеры удаляются через 0.5 секунды
_weaponHolder addItemCargoGlobal ["itemMap", 10];

//Перемещаем наш "Контейнер" в ноги к игроку
_weaponHolder setPosASL getPosASL player;

  • 0

#625 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 posts

Posted 24 February 2017 - 14:59

 

спс за ответ, (крайне подробный ) ),

в общем всё тоже самое к чему я  пришёл ),

1.сначала написал "не через создание unit", по потом промелькнуло 'как перенести от unit в cargo space', упустил action\dropweapon, других способов нет ?

2.Без создания глобального списка предметов нельзя (разделённых по занимаемым слотам)?

 

"все пустые контейнеры удаляются через 0.5 секунды"

не знал, спасибо за информацию )


Edited by Ilias, 24 February 2017 - 15:02.

  • 0

#626 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 posts
  • Откуда:Кострома

Posted 24 February 2017 - 15:10

Ilias, на данный момент добавить в контейнер оружие с модулями можно только двумя способами:
1. Добавление скриптом класса оружия с модулями ("arifle_MX_Holo_pointer_F", "arifle_MX_ACO_F" и т. д.)
2. Выкладывание оружие из юнита
Ilias, а зачем вам глобальный список предметов? Вы можете как бы локальные переменные создавать в нужном скрипте

Edited by vlad333000, 24 February 2017 - 15:10.

  • 0

#627 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 posts

Posted 24 February 2017 - 15:11

Ilias, на данный момент добавить в контейнер оружие с модулями можно только двумя способами:
1. Добавление скриптом класса оружия с модулями ("arifle_MX_Holo_pointer_F", "arifle_MX_ACO_F" и т. д.)
2. Выкладывание оружие из юнита
Ilias, а зачем вам глобальный список предметов? Вы можете как бы локальные переменные создавать в нужном скрипте

copy, а второе (поиск замещаемого предмета)?


Edited by Ilias, 24 February 2017 - 15:14.

  • 0

#628 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 posts
  • Откуда:Кострома

Posted 24 February 2017 - 15:28

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

и выбираешь через select предмет, который будет заменен.

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание


Edited by vlad333000, 24 February 2017 - 15:38.

  • 0

#629 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 posts

Posted 24 February 2017 - 16:40

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

и выбираешь через select предмет, который будет заменен.

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

добавили таки, спасибо за информацию о наличии 

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

 

вообщедто не знаю (и кстати getunitloadout не показывает слот (речь о assigneditems)) (можно как либо узнать имея только класс?)


Edited by Ilias, 24 February 2017 - 19:51.

  • 0

#630 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 posts
  • Откуда:РФ

Posted 24 February 2017 - 17:30

Кстати, кого там бесили кролики?)

С приходом версии Arma 3 v1.67

enableEnvironment [ambientLife, ambientSound]         (Since Arma 3 v1.67)

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание


  • 1

#631 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 posts
  • Откуда:Кострома

Posted 24 February 2017 - 20:19

Ilias, assigned items это последний элемент в массиве getUnitLoadout, он всегда в одном и том же порядке, все слоты, в том же порядке как и в инвентаре:
..."","","",[],[],""],,     //Weapon Binocular (follows same layout as other weapons above)
     ["ItemMap","ItemGPS","ItemRadio","ItemCompass","ItemWatch","NVGoggles"]    //AssignedItems ItemGPS can also be a UAV Terminal
]...

  • 0

#632 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 posts

Posted 24 February 2017 - 21:51

Ilias, assigned items это последний элемент в массиве getUnitLoadout, он всегда в одном и том же порядке, все слоты, в том же порядке как и в инвентаре:

..."","","",[],[],""],,     //Weapon Binocular (follows same layout as other weapons above)
     ["ItemMap","ItemGPS","ItemRadio","ItemCompass","ItemWatch","NVGoggles"]    //AssignedItems ItemGPS can also be a UAV Terminal
]...

не глупите ) (пустые слоты не отображаются)


Edited by Ilias, 24 February 2017 - 21:52.

  • 0

#633 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 posts
  • Откуда:Кострома

Posted 24 February 2017 - 22:02

Ilias, отображаюсться как пустой класснейм
  • 0

#634 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 posts
  • Откуда:Кострома

Posted 24 February 2017 - 22:10

Ilias, пример ванильного Range Master:


[
	[],
	[],
	[],
	["U_Rangemaster",[["FirstAidKit",1]]],
	["V_Rangemaster_belt",[]],
	[],
	"H_Cap_headphones",
	"",
	[],
	["ItemMap","","ItemRadio","ItemCompass","ItemWatch",""]
]
Как видите, легко понять что у него нету предмета на слоте GPS и ПНВ, а еще Рюкзака, Очков/Маски, ни одного оружия и бинокля, а разгрузка пустая

Edited by vlad333000, 24 February 2017 - 22:15.

  • 0

#635 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 posts
  • Откуда:Кострома

Posted 24 February 2017 - 22:24

SteelRat, вообще шикарно, наконец то не будет этих багованых змей и кроликов, которые могут еще двери открывать :D
  • 0

#636 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 posts
  • Откуда:РФ

Posted 25 February 2017 - 17:24

SteelRat, вообще шикарно, наконец то не будет этих багованых змей и кроликов, которые могут еще двери открывать :D

На сколько я помню, открывание дверей зверьём и даже AI рулится модификацией конфига самого строения или в конфиге класса животного-юнита, я точно не помню, в конфиге присутствует параметр который, выдаёт разрешение, можно ли открывать двери данному объекту или нет.

 

PS

В конфиге строения

class UserActions
		{
			class OpenDoor_1
			{
				displayNameDefault="<img image='\A3\Ui_f\data\IGUI\Cfg\Actions\open_door_ca.paa' size='2.5' />";
				displayName="$STR_DN_OUT_O_DOOR";
				position="Door_1_trigger";
				priority=11;
				radius=1.5;
				aiMaxRange="1.5				 * 3";
				onlyForPlayer=0; // <<<<<< ЭТО, я так понимаю что бы только плайер 1
				condition="((this animationPhase 'Door_1_rot') < 0.5) && ((this getVariable ['bis_disabled_Door_1',0]) != 1) && ((this animationPhase 'Hitzone_1_hide') < 0.99999				)";
				statement="([this, 'Door_1_rot', 'Door_Handle_1_rot_1', 'Door_Handle_1_rot_2'] call BIS_fnc_DoorOpen)";
			};

Edited by SteelRat, 25 February 2017 - 17:30.

  • 1

#637 OFFLINE   cheloveki

cheloveki

    Рядовой

  • Пользователи
  • 10 posts
  • Откуда:Минск

Posted 26 February 2017 - 00:40

Вечер добрый.

 

Пытаюсь переназначить группу, но она опять назначается мне.

//создаю группу
gr1 = createGroup east;
player_temp = leader player;
[player_temp, soldier_rus_1, soldier_rus_2, soldier_rus_3,soldier_rus_4] join gr1;

//тут что то делаем

//убираем всех из группы
[player_temp, soldier_rus_1, soldier_rus_2, soldier_rus_3,soldier_rus_4] join grpNull;
deleteGroup gr1;


gr2 = createGroup east;

oficer1 = leader player;

//пытаюсь передать юнитов другому
[oficer1, soldier_rus_1, soldier_rus_2, soldier_rus_3,soldier_rus_4] join gr2;

После этой команды я снова становлюсь командиром группы. Хотя хочу чтобы им стал oficer1. Где ошибка?


Edited by cheloveki, 26 February 2017 - 00:41.

  • 0

#638 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1831 posts

Posted 26 February 2017 - 00:50

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

.


  • 0

#639 OFFLINE   cheloveki

cheloveki

    Рядовой

  • Пользователи
  • 10 posts
  • Откуда:Минск

Posted 26 February 2017 - 10:13

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

.

Я нашел ее, но скорее всего я пытался ее не так применить. Писал  так:

gr2 selectLeader oficer1;

Но так не работает. Этот код я вставлял и до добавление юнитов в группу и после. 


  • 0

#640 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 posts
  • Откуда:Кострома

Posted 26 February 2017 - 12:36

cheloveki, а зачем вы сначала выгоняете всех юнитов из группы, а потом для oficer1 применяете:
oficer1 = leader player
Но т. к. игрока нет ни в одной группе (Вы его до этого выгнали) и он является командиром сам себе, это возвращает самого игрока, после чего вы абсолютно бессмысленно пытаетесь переназначить самого себя на командира
gr2 selectLeader oficer1
Что бы отдать должность командира кому-либо другому в отряде вы должны выбрать ДРУГОГО юнита, а не самого себя, например:
gr2 selectLeader soldier_rus_1
И делать это нужно ПОСЛЕ создания нужной группы

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

Edited by vlad333000, 26 February 2017 - 12:43.

  • 0




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