Jump to content


Photo

Подскажите,как заставить ботов включить лазерную подсветку.


Best Answer SteelRat , 17 October 2014 - 01:04

 

 

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

По твоему методу я тоже делал и у меня не получилось.

file: irAction.sqf - Я так понял что нужно создать файл и придать ему нужные атрибуты,вписать все необходимое. Сделал. В ините бота тоже прописал все необходимое-не работает. Наверняка что-то сделал не так,по недопониманию,вот и спрашиваю,где возможно допустил ошибку.

 

Я ни сколько не гневаюсь. это был юмор!

 

В папке с миссией создаёте текстовый файл с расширением .sqf

irAction.sqf

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

/*
	file: irAction.sqf
	
	Вкл или выкл лазерный целеуказатель
	
	пример вызова:
	0 = this execVM "irAction.sqf";	// Через инит бота
	Unit_1 execVM "irAction.sqf";	// Из кода
*/

if (_this isIRLaserOn currentWeapon _this) then {
	_this action ["IRLaserOff", _this];
} else {
	_this action ["IRLaserOn", _this];
};

В инит бота пишете это

0 = this execVM "irAction.sqf"

Эффект:

Если целеуказатель включен, он выключится.

Если целеуказатель выключен, он включится.

 

И естественно у бота должна уже быть пушка с целеуказателем в руках, значит ещё правильнее написать в инит так

0 = this spawn {sleep 5; _this execVM "irAction.sqf"}
Go to the full post


  • Please log in to reply
13 replies to this topic

#1 OFFLINE   Белый Клык

Белый Клык

    Рядовой

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

Posted 15 October 2014 - 13:22

Доброго времени суток!) Ранее на форуме я писал,что делаю миссию,связанную с засадой для автоколонны.  С помощью ваших бесценных советов, реализовать эту задумку мне удалось и я решил пойти чуть дальше. Решил устроить сие действо в ночное время. И для пущей крутизны и  реализма оснастил своих солдатиков ПНВ и лазерными указателями. Все бы ничего,но ребята упорно отказываются пользоваться указателями.Это конечно не критично,но все же,некоторую неудовлетворенность своей работой чувствуешь. :paratrooper:  Насколько я помню,в одиночной кампании был момент,ночной рейд,когда под командованием "бота" атаковали лагерь врага,и ИИ пользовался указателями.Подскажите,как заставить "болванчиков" пользоваться сим девайсом? Заранее спасибо! 


Edited by Белый Клык, 16 October 2014 - 00:48.

  • 0

#2 OFFLINE   TankiSD

TankiSD

    Ст. Прапорщик

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

Posted 15 October 2014 - 13:53

Попробуй убрать всё оружие у бота и оставить ему только лазер. 

Это из самых простых вариантов.

 

Из других, это цикл на

useweapon

fire

dotarget

dowatch

dofire

setdir


Edited by TankiSD, 15 October 2014 - 13:54.

  • 0

#3 OFFLINE   vlad333000

vlad333000

    Полковник

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

Posted 15 October 2014 - 13:58

1. Создаешь в папке с миссией файл BotLaserOn.sqf

2. В нем пишешь:

_unit = _this select 0;
while {alive _unit} do {
    if (behaviour _unit == "COMBAT") then 
        {_unit action ["IRLaserOn", _unit];} 
    else
        {_unit action ["IRLaserOff", _unit];}; 
    sleep 2.5;
};

3. В окне инициализации нужных ботов пишешь:

[this] execVM "BotLaserOn.sqf";

PS Должно сработать (Если не сработает, тогда попробуй _this select 0 заменить на просто _this (я не помню, что будет передано: массив или сама переменная))


Edited by vlad333000, 15 October 2014 - 14:10.

  • 0

#4 OFFLINE   SteelRat

SteelRat

    Полковник

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

Posted 15 October 2014 - 17:10

/*
	file: irAction.sqf
	
	Вкл или выкл лазерный целеуказатель
	
	пример вызова:
	0 = this execVM "irAction.sqf";	// Через инит бота
	Unit_1 execVM "irAction.sqf";	// Из кода
*/

if (_this isIRLaserOn currentWeapon _this) then {
	_this action ["IRLaserOff", _this];
} else {
	_this action ["IRLaserOn", _this];
};

  • 0

#5 OFFLINE   SteelRat

SteelRat

    Полковник

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

Posted 15 October 2014 - 17:19

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


  • 0

#6 OFFLINE   Белый Клык

Белый Клык

    Рядовой

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

Posted 16 October 2014 - 00:17

Уф,мужики,запутался.Я честно говоря не силен в таких тонкостях.

 

1. Создаешь в папке с миссией файл BotLaserOn.sqf

2. В нем пишешь:

_unit = _this select 0;
while {alive _unit} do {
    if (behaviour _unit == "COMBAT") then 
        {_unit action ["IRLaserOn", _unit];} 
    else
        {_unit action ["IRLaserOff", _unit];}; 
    sleep 2.5;
};

3. В окне инициализации нужных ботов пишешь:

[this] execVM "BotLaserOn.sqf";

PS Должно сработать (Если не сработает, тогда попробуй _this select 0 заменить на просто _this (я не помню, что будет передано: массив или сама переменная))

Я так понимаю,что в папке с миссией, я создаю текстовик и придаю ему атрибуты "BotLaserOn.sqf" и прописываю все вышеперечисленное. Допустим сделал. В инициализации бота строка не прописывается. Как правильно это сделать?


  • 0

#7 OFFLINE   Белый Клык

Белый Клык

    Рядовой

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

Posted 16 October 2014 - 00:38

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

Вот честно,упорно пытался понять,как  правильно прописать и не смог. Я не дундук,просто новичок в скриптописании.Подскажите пожалуйста на более простом языке :pardon:


  • 0

#8 OFFLINE   SteelRat

SteelRat

    Полковник

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

Posted 16 October 2014 - 04:16

 

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

Вот честно,упорно пытался понять,как  правильно прописать и не смог. Я не дундук,просто новичок в скриптописании.Подскажите пожалуйста на более простом языке :pardon:

 

А ведь действительно! И кому это я написал? Наверное себе, ну да, верняк себе, так, со скуки!

http://arma3.ru/foru...-lazer/?p=34447


  • 0

#9 OFFLINE   Белый Клык

Белый Клык

    Рядовой

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

Posted 16 October 2014 - 22:48

 

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

По твоему методу я тоже делал и у меня не получилось.

file: irAction.sqf - Я так понял что нужно создать файл и придать ему нужные атрибуты,вписать все необходимое. Сделал. В ините бота тоже прописал все необходимое-не работает. Наверняка что-то сделал не так,по недопониманию,вот и спрашиваю,где возможно допустил ошибку.


  • 0

#10 OFFLINE   SteelRat

SteelRat

    Полковник

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

Posted 17 October 2014 - 01:04   Best Answer

 

 

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

По твоему методу я тоже делал и у меня не получилось.

file: irAction.sqf - Я так понял что нужно создать файл и придать ему нужные атрибуты,вписать все необходимое. Сделал. В ините бота тоже прописал все необходимое-не работает. Наверняка что-то сделал не так,по недопониманию,вот и спрашиваю,где возможно допустил ошибку.

 

Я ни сколько не гневаюсь. это был юмор!

 

В папке с миссией создаёте текстовый файл с расширением .sqf

irAction.sqf

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

/*
	file: irAction.sqf
	
	Вкл или выкл лазерный целеуказатель
	
	пример вызова:
	0 = this execVM "irAction.sqf";	// Через инит бота
	Unit_1 execVM "irAction.sqf";	// Из кода
*/

if (_this isIRLaserOn currentWeapon _this) then {
	_this action ["IRLaserOff", _this];
} else {
	_this action ["IRLaserOn", _this];
};

В инит бота пишете это

0 = this execVM "irAction.sqf"

Эффект:

Если целеуказатель включен, он выключится.

Если целеуказатель выключен, он включится.

 

И естественно у бота должна уже быть пушка с целеуказателем в руках, значит ещё правильнее написать в инит так

0 = this spawn {sleep 5; _this execVM "irAction.sqf"}

Edited by SteelRat, 17 October 2014 - 01:07.

  • 1

#11 OFFLINE   Белый Клык

Белый Клык

    Рядовой

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

Posted 19 October 2014 - 13:35

 SteelRat  , спасибо,разобрался. Причины "не работы" было 2.

1-винда не давала мне возможности изменить расширение файла(решено корректировкой доступа админа)

2- Как узнал позднее, бот включает лцу только при непосредственном контакте с врагом.

Все работает,спасибо!  :good:


Edited by Белый Клык, 19 October 2014 - 15:16.

  • 0

#12 OFFLINE   mickeymen

mickeymen

    Ст. Прапорщик

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

Posted 23 December 2015 - 21:26


В папке с миссией создаёте текстовый файл с расширением .sqf

 

 


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

В инит бота пишете это

 

Раз 10 пробовал, полгода назад. Теперь попробовал снова, ничерта не работает.  :sorry:

боты ни при каких обстоятельствах не включают ЛЦУ


Edited by mickeymen, 23 December 2015 - 21:30.

  • 0

#13 OFFLINE   vlad333000

vlad333000

    Полковник

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

Posted 24 December 2015 - 00:54

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


Потом: поставить поведение "COMBAT" -

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

(Возможно сейчас боты сразу отключают указки из-за не боевого состояния - т к по дефолту они только при нем их используют)
И после включать ручками (см. выше) им лазерные указки

Edited by vlad333000, 24 December 2015 - 00:55.

  • 0

#14 OFFLINE   mickeymen

mickeymen

    Ст. Прапорщик

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

Posted 24 December 2015 - 01:04


(Возможно сейчас боты сразу отключают указки из-за не боевого состояния - т к по дефолту они только при нем их используют)
Мой вейпоинт имеет боевое состояние, думаю проблема не в этом.

 

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

попробую конечно, очень уж хочется чтобы боты включали ЛЦУ в миссии


  • 0




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