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


Фотография

addaction


Лучший Ответ SteelRat , 19 February 2015 - 00:09

код инита (хотя я думаю Влад плохого не посоветует и стоит прислушаться)

 #include "test1.sqf"
 #include "test2.sqf"

код test1.sqf

_group = createGroup east;
     a = _group createUnit ["O_Soldier_AA_F",getPos b,[],0,"FORM"];

код test2.sqf

if (a distance b <= 50) then {
                actions = [5];
                actions set [5, player addAction [" Move In Driver B ", {a moveInDriver b;}]]};

транспорт создан в редакторе и обозван b

Результат: положительный

Без ЗАДЕРЖЕК


негодяй)

if (a distance b <= 50) then {
    player setVariable ["MoveInDriverB", player addAction [" Move In Driver B ", {a moveInDriver b;}]]};
	
	
// Удаление экшена	
if (condition) then {
	player removeAction (player getVariable "MoveInDriverB");
        player setVariable ["MoveInDriverB", nil]; // удаляем переменную
};
Перейти к сообщению


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

#41 OFFLINE   susamin

susamin

    Сержант

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

Отправлено 31 July 2015 - 21:58

Товарищи, прошу подсказать!!! В определение бойца бота sol1 (не игрока!!!) записал такую строчку

 

if (player distance sol1 <= 5) then {zadacha1 = sol1 addAction [ "Задача1", {task1 = true}]};

 

но пункт "Задача1" в меню не появляется при приближении к sol1. Если поставить в определение sol1 такую строчку

 

zadacha1 = sol1 addAction [ "Задача1", {task1 = true}];

 

тогда все работает, но строка в меню появляется очень далеко от sol1 по умолчанию 15 метров. Что делаю не так? 

 

Собственно что хочу сделать, с помощью активного меню активировать триггер, который выполнит условие и сработает модуль создания задания. Но мне хотелось бы чтоб строка в меню появлялась рядом с sol1 а не когда он на горизонте. Как задать расстояние? Так же пробовал забить все значения для команды addAction все равно не работает


  • 0

#42 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 31 July 2015 - 22:12


if (player distance sol1 <= 5) then {zadacha1 = sol1 addAction [ "Задача1", {task1 = true}]};

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

 

 


но строка в меню появляется очень далеко от sol1 по умолчанию 15 метров

Вам зачем дан 8 аргумент в

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

? Его ведь еще и в wiki назвали "Condition"!


Сообщение отредактировал vlad333000: 31 July 2015 - 22:13

  • 0

#43 OFFLINE   susamin

susamin

    Сержант

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

Отправлено 31 July 2015 - 22:24

vlad333000, пытался перевести, но переводчик выдает "белеберду". По вашей подсказке сделал так 

 

zadacha1 = this addAction [ "Задача1", {task1 = true},"",1,true,true,"",5];

 

не работает, так тоже 

 

zadacha1 = this addAction [ "Задача1", {task1 = true},5];


  • 0

#44 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 31 July 2015 - 23:04

zadacha1 = this addAction [ "Задача1", {task1 = true},"",1,true,true,"",5];   не работает

И не должно работать т к аргумент для команды написан неправильно. Пример: 
_heli addAction [
   "Test",
   "myTest.sqf",
   "",
   1,
   true,
   true,
   "",
   "(_target distance player) < 5"
]

Сообщение отредактировал vlad333000: 31 July 2015 - 23:05

  • 1

#45 OFFLINE   susamin

susamin

    Сержант

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

Отправлено 01 August 2015 - 00:16

vlad333000, спасибо!!! Работает!!! Ну откуда я мог это знать. Еще раз спасибо.

 

ЗЫ: Еще раз глянул тему, Вы писали об этом, но увы невнимательное чтение.
 


Сообщение отредактировал susamin: 01 August 2015 - 00:18

  • 0




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