Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной

Добрый день всем. А может ночь. У кого как...
Хочу создать станкового пулеметчика по скрипту:
 

//проргамма создания станка с пулемаетчиком
private ["_position","_direction","_typeWeapon","_skin","_vehicle","_unit"];
_position=_this select 0;
_direction=_this select 1;
_typeWeapon=_this select 2;
_skin=_this select 3;
///////////////////////
_unitGroupTurret = createGroup east;
///////////////////////
_vehicle = createVehicle [_typeWeapon,_position, [], 0, 'CAN_COLLIDE'];
PVDZE_serverObjectMonitor set [count PVDZE_serverObjectMonitor,_vehicle];
[_vehicle,_typeWeapon] spawn server_updateObject;
_vehicle setDir _direction;
_vehicle setPosATL _position;
_vehicle = nil;
//////////////////////
_unit = _unitGroupTurret createUnit [_skin,_position, [], 5, "LIEUTENANT"];
_unit setDir _direction;
//[_unit] joinSilent _unitGroupTurret;
_unit addMagazine ["50Rnd_127x107_DSHKM", 3];
_unit setskill ["general",1];
_unit enableAI "TARGET";
_unit enableAI "AUTOTARGET";
_unit enableAI "ANIM";
_unit enableAI "FSM";
_unit setCombatMode "RED";
_unit setBehaviour "AWARE";
///////////////////////////////
_unit moveInGunner _vehicle;
//конец программы

В результате станок стоит, боец AI мертвый лежит рядом. РПТ выдает такую ошибку:
 

...
19:20:52 "HIVE: Starting"
19:20:52 "HIVE: trying to get objects"
19:20:53 Error in expression <tBehaviour "AWARE";
_unit moveInGunner _vehicle;
19:20:53   Error position: <_vehicle;
19:20:53   Error Undefined variable in expression: _vehicle
19:20:53 File mpmissions\DayZ_Epoch_24.Napf\addons\my_Bots\CreateTurret.sqf, line 29
...

В чем может быть проблема? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендованные сообщения

  • 0

ты забудь про свою группу, и назначение.

ты смотри что реально показывает side после создания юнита.

Да.Ты был прав. Группы, в которые входили патрули и стрелки турелей были разные  EAST и WEST соответственно.

Признаю команда 

  • group createUnit [type, position, markers, placement, special]

не гарантирует присоединение к группе group , необходимо дублирование командой

  • UnitArray joinSilent group

тогда юнит гарантированно будет в группе group

 

Теперь все заработало! Благодарю за помощь!

Изменено пользователем Tiberian (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах





  • 0

ты сам обнуляешь переменную с техникой

_vehicle = nil;

а потом ставишь за нее бота, мб в этом?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

ты сам обнуляешь переменную с техникой

_vehicle = nil;

а потом ставишь за нее бота, мб в этом?

МММ... может быть. Попробую. Но разве тогда бы не исчезал станок?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

ты сам обнуляешь переменную с техникой

_vehicle = nil;

а потом ставишь за нее бота, мб в этом?

Попробовал убрать эту строку (( Без изменений. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

МММ... может быть. Попробую. Но разве тогда бы не исчезал станок?

ты обнуляешь переменную, а не объект. как бы он исчезал?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

ты обнуляешь переменную, а не объект. как бы он исчезал?

Где то на сайте BohemiaInteractive  прочел, если переменной объекта присвоить значение nil, то это эквивалент операции удаления. Но может я и ошибаюсь, может это относится к чему то другому. В любом случае не помогло,после удаления это операции осталось без изменений. Станок стоит, боец лежит мертвый.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Практически решил:

в функции 

_unit = _unitGroupTurret createUnit [_skin,_position, [], 5, "LIEUTENANT"];

поменял "LIEUTENANT" на "NONE", как это требует синтаксис

group createUnit [type, position, markers, placement, special]
/*
group: Group - Existing group new unit will join
[type, position, markers, placement, special]: Array
type: String - Class name of unit to be created as per CfgVehicles
position: Position, Position2D or Object - Location unit is created at
markers: Array - Placement markers
placement: Number - Placement radius
special: String - Unit placement special, one of "NONE", "FORM", "CAN_COLLIDE", "CARGO"
*/

И никакого звания ЛЕЙТЕНАНТ здесь не подразумевается...
НО все же. Мой скрипт как внешняя функция (в отдельном файле). В скрипте, в котором идет обращение к этой функции стоит цикл, в котором и идет обращение к скрипту. Количество циклов 4. Один из четырех встал как надо. Но трое все равно мертвы. РПТ перестал выдавать ошибку. Теперь вообще ничего не понимаю...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

1.мб его твоя пушка давит не? создавай юнита на расстоянии 5м от пушки.

2. добавь событие онмпкилл юниту, а в нем(событии) вывод в рпт. и посмотри, от чего дохнет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

1.мб его твоя пушка давит не? создавай юнита на расстоянии 5м от пушки.

2. добавь событие онмпкилл юниту, а в нем(событии) вывод в рпт. и посмотри, от чего дохнет.

Попробую, но врятли. У меня в функции указано создавать объект (боец) в пятиметровой зоне от указанной точки

unit = _unitGroupTurret createUnit [_skin,_position, [], 5, "LIEUTENANT"];

5ка и есть как раз placement: Number - Placement radius...

У меня есть предположение, сегодня попробую:

Думаю строка 

  1. _vehicle = nil;

не случайна. она обнуляет переменную для уже созданного объекта. чтобы этой же переменной создавать другие объекты. НО она стоит рано. Возможно эту строку нужно вставит после того, как бойца поставил за объект (за турель в моем случае)...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Мое предположение не подтвердилось. При перестановки функции  _vehicle = nilпосле  _unit moveInGunner _vehicle; ситуация не изменилась.
Что касается события добавил вот такие строки:
 

_unit addEventHandler ["killed", "diag_log text format ['[addEventHandler] Killed by %1',_this select 1]"];
_unit addMPEventHandler ["mpkilled", "diag_log text format ['[addMPEventHandler] Killed by %1',_this select 1]"];

 

РПТ выдает следующее:
 

...
11:34:28 [addMPEventHandler] Killed by O 1-2-D:2
11:34:28 [addEventHandler] Killed by O 1-2-D:2
11:34:32 [addMPEventHandler] Killed by O 1-2-D:4
11:34:32 [addEventHandler] Killed by O 1-2-D:4
...
11:34:35 [addMPEventHandler] Killed by O 1-2-D:6
11:34:35 [addEventHandler] Killed by O 1-2-D:6
11:34:40 [addMPEventHandler] Killed by O 1-2-M:1 REMOTE
11:34:43 [addMPEventHandler] Killed by O 1-2-M:8 REMOTE
11:34:45 [addMPEventHandler] Killed by O 1-2-M:3 REMOTE
11:35:41 [addMPEventHandler] Killed by B 1-1-B:1 (Tiberian) REMOTE
11:35:41 [addEventHandler] Killed by B 1-1-B:1 (Tiberian) REMOTE
...

Одного убил я,чтобы проверить различия в убийствах. И тут я начинаю предполагать, что их валят свои?

Изменено пользователем Tiberian (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

1. Радиус не гарантирует установку.

Кто мешает его задать к примеру так?

createUnit [_skin,[(_position select 0)+5, (_position select 1)+5, (_position select 2)], [], 0, "NONE"];

 

 

2. Для того, чтобы понять, кто кого валит, надо понять, что за объекты - 1-2-M:1 и т.п.

Выведи _this вместо _this select 1

+ выведи typeOf (_this select 1) + координаты и т.п. - больше инфы об объекте который бота убил получи.

И все будет видно.

 

3. Что там у тебя за _skin никто не знает, - а в cfg модели указана сторона. И она может отличаться от стороны других ботов. Тем более ты не задаешь юниту группу(она у тебя закоментирована), а случае с указанием стороны в cfg для модели, даже принудительное задание side может не помочь.

Отсюда дополнение к п.2. - выведи side в РПТ при создании, и выведи side в РПТ того кто убил бота. И все встанет на места.




Думаю строка _vehicle = nil;

 

"Срать, пердеть, колесом вертеть", на какую то локальную переменную.

Она прекрасно переинициализируется далее(если ты в цикле это создаешь). Или будет уничтожена, если ExecVM или SPAWN юзаешь.

В целом - плевать на эту строку в любом случае.

Это тебе не СИ\Дельфи, тут не типизированные переменные.

Изменено пользователем NoNameUltima (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

1. Радиус не гарантирует установку.

Кто мешает его задать к примеру так?

createUnit [_skin,[(_position select 0)+5, (_position select 1)+5, (_position select 2)], [], 0, "NONE"];

 

 

2. Для того, чтобы понять, кто кого валит, надо понять, что за объекты - 1-2-M:1 и т.п.

Выведи _this вместо _this select 1

+ выведи typeOf (_this select 1) + координаты и т.п. - больше инфы об объекте который бота убил получи.

И все будет видно.

 

3. Что там у тебя за _skin никто не знает, - а в cfg модели указана сторона. И она может отличаться от стороны других ботов. Тем более ты не задаешь юниту группу(она у тебя закоментирована), а случае с указанием стороны в cfg для модели, даже принудительное задание side может не помочь.

Отсюда дополнение к п.2. - выведи side в РПТ при создании, и выведи side в РПТ того кто убил бота. И все встанет на места.

 

 

"Срать, пердеть, колесом вертеть", на какую то локальную переменную.

Она прекрасно переинициализируется далее(если ты в цикле это создаешь). Или будет уничтожена, если ExecVM или SPAWN юзаешь.

В целом - плевать на эту строку в любом случае.

Это тебе не СИ\Дельфи, тут не типизированные переменные.

Установлено: бойцов убивают "свои".

Объясню и спрошу:

Делаю миссию (с нуля). Алгоритм скриптов

1. миссия

1.1 создать базу

1.1.1 создать объекты базы

1.1.2 создать турель (для некоторых баз. Турель: станок + боец к нему)

1.2 создать подвижной конвой

1.3 создать статичный конвой ("пограничник")

1.4 создать объект-награду

 

И вот получается что подвижной конвой и бойцы станочники оказались в разных группах и как следствие враги...

И теперь спрошу: как объединить подвижной конвой, пограничников и бойцов за станком в одну группу? Самый простой способ конечно запихнуть в один файл... а если нет?

Изменено пользователем Tiberian (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Установлено: бойцов убивают "свои".

Объясню и спрошу:

Делаю миссию (с нуля). Алгоритм скриптов

1. миссия

1.1 создать базу

1.1.1 создать объекты базы

1.1.2 создать турель (для некоторых баз. Турель: станок + боец к нему)

1.2 создать подвижной конвой

1.3 создать статичный конвой ("пограничник")

1.4 создать объект-награду

 

И вот получается что подвижной конвой и бойцы станочники оказались в разных группах и как следствие враги...

И теперь спрошу: как объединить подвижной конвой, пограничников и бойцов за станком в одну группу? Самый простой способ конечно запихнуть в один файл... а если нет?

Да плевать на разные группы - ты смотри SIDE который у твоих групп и бойцов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Да плевать на разные группы - ты смотри SIDE который у твоих групп и бойцов.

... = createGroup east;

Для всех бойцов в разных файлах (скриптах).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

... = createGroup east;

Для всех бойцов в разных файлах (скриптах).

ты забудь про свою группу, и назначение.

ты смотри что реально показывает side после создания юнита.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Похожие публикации

    • Автор: lucho003
      patrolpos  в  каком формате ее вписывать?
    • Автор: PLAYERDEAD
      Подскажите  Сложные ИИ Миссии для Overpoch'a. 
      Мои игроки проходят миссии без всяких проблем...
      Стояли WAI с приват раздела
    • Автор: anikinvitaly
      Подскажите, кто знает как в WAI добавить бота с СВД например, на вышку или на крышу и чтобы он не бегал а сидел и выцеливал игроков.
    • Автор: DrTauren
      Что такое A3EAI:
      A3EAI это аддон миссий, созданный специально для ARMA3: Epoch с учётом его особенностей. Плагин создан на основе DZAI 2.2.1. Если вы пользовались DZAI, то вы точно знаете чего ожидать от этого плагина.
       
      Особенности A3EAI:
      Автоматически генерируемые статические спавны ботов в определённых локациях при наличии игроков вблизи последней Динамический спавн ботов: боты рандомно появляются вблизи игрока и начинают на него охоту Случайный спавн ботов: группы ботов появляются вблизи определённых городов Патрули ботов (воздушные и наземные): патрули на машинах, которые ездят по карте и ищут игроков для охоты. Тем же занимаются воздушные патрули. Из вертолётов могут выпрыгивать десантные группы. Разные группы ботов могут периодически кооперироваться чтобы помочь "своим" в бою Вы также можете сами выбирать к\акие патрули вам нужны и спавнить их в нужных локациях A3EAI использует "эпочевские" таблицы лута для выдачи оного ботам Автоматический поиск ошибок: осуществляется автоматический поиск ошибок в файлах при старте миссии. В случае если ошибка будет найдена, то скрипт запускает восстановление  
      A3EAI-master.zip
      Либо скачиваем с GitHub
       
      Инструкция по установке:
      1) Качаем архив, копируем файлы Addons, A3EAI_config.sqf, A3EAI_custom_defs
      2) Открываем вашу папку @EpochHive
      Внимание: A3EAI требует что бы серверная папка Epoch`а была названа именно так: @EpochHive (без учёта регистра), так как она и должна быть названа изначально 3) Копируем прямо в эту папку написанные выше файлы. Если система предложит заменить\объеденить файлы, выбираем "Да"
      Внимание: файлы эпохи не заменяются 4) Настройки скрипта вы можете изменить в файле A3EAI_config.sqf
       
       
    • Автор: Gallion2005
      Доброго времени суток . Подскажите как установить миссии WAI. Убился уже. Все сделал как в гайде тут на форуме - не работает. Серв грузится, но миссии не появляются. Потом сделал все по инструкции на epochmode - не работает!
      Я так понял что все изначально заточено под Чернорусь... Может координаты где какие менять нужно для Napf?
  • Наш выбор

×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.