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


Фотография

Динамическая позиция


Лучший Ответ Cooler58 , 23 April 2019 - 21:30

Распакуйте attachicon.gifhunting.Altis.rar в папку mpmissions чтобы получился путь mpmissions/hunting.Altis/mission.sqm

Затем в редакторе выберите миссию hunting.Altis и запустите сетевую игру. Отряд противника будет все время следовать за Вами.

ToxaBes, спасибо Вам огромное. Действительно всё работает. Теперь буду разбираться в синтаксисе строчек и наверное уберу спавн, потому что "духи" терпеливо кастомизировались и в редакторе в готовых образцах отсутствуют. Но это уже лирика. Еще раз спасибо!

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


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

#21 OFFLINE   ToxaBes

ToxaBes

    Ефрейтор

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

Отправлено 21 April 2019 - 16:18

ToxaBes, перепробовал все варианты в ВИКИ, но что то не идут они вообще никуда. Ваш вариант вроде понятен и прост и ошибок не выдает при вызове через инит.sqf в отличие от БИСовских вариантов, но тоже стоят на с места.

 

БИСы в документации перепутали местами первые 2 параметра и тип вызова. Попробуйте поставить например игрока - blufor и выполнить следующий код через консоль (или вставьте в initPlayerLocal.sqf):

_pos = [player, 300, 500, 2, 0, 20, 0] call BIS_fnc_findSafePos;
_grp = [_pos, east, (configfile >> "CfgGroups" >> "East" >> "OPF_F" >> "Infantry" >> "OIA_InfSquad_Weapons")] call BIS_fnc_spawnGroup;
[_grp, group player, 60] spawn BIS_fnc_stalk;

У меня такой вариант работает без проблем.

Также можно обновлять информацию об игроке в группе ботов:

_grp reveal [player, 4];

  • 0

#22 OFFLINE   Cooler58

Cooler58

    Сержант

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

Отправлено 21 April 2019 - 18:03

 

ToxaBes, перепробовал все варианты в ВИКИ, но что то не идут они вообще никуда. Ваш вариант вроде понятен и прост и ошибок не выдает при вызове через инит.sqf в отличие от БИСовских вариантов, но тоже стоят на с места.

 

БИСы в документации перепутали местами первые 2 параметра и тип вызова. Попробуйте поставить например игрока - blufor и выполнить следующий код через консоль (или вставьте в initPlayerLocal.sqf):

_pos = [player, 300, 500, 2, 0, 20, 0] call BIS_fnc_findSafePos;
_grp = [_pos, east, (configfile >> "CfgGroups" >> "East" >> "OPF_F" >> "Infantry" >> "OIA_InfSquad_Weapons")] call BIS_fnc_spawnGroup;
[_grp, group player, 60] spawn BIS_fnc_stalk;

У меня такой вариант работает без проблем.

Также можно обновлять информацию об игроке в группе ботов:

_grp reveal [player, 4];

 

Может я что то не то делаю, или вобще не понимаю что делаю, но в файл initPlayerLocal.sqf скопировал данный код, создал синего болванчика и на удалении в 300 метров создал группу красных болванчиков. Ничего не происходит, стоят на месте спавна намертво.


  • 0

#23 OFFLINE   ToxaBes

ToxaBes

    Ефрейтор

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

Отправлено 22 April 2019 - 17:37

А зачем вы создаете группу ботов? Она ведь создается во второй строчке в моем примере.

Ладно, неважно, Вы что-то делаете сильно не так. Доберусь домой, скину пример миссии.


  • 0

#24 OFFLINE   ToxaBes

ToxaBes

    Ефрейтор

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

Отправлено 22 April 2019 - 20:47

Распакуйте Прикрепленный файл  hunting.Altis.rar   1.66К   17 Количество загрузок: в папку mpmissions чтобы получился путь mpmissions/hunting.Altis/mission.sqm

Затем в редакторе выберите миссию hunting.Altis и запустите сетевую игру. Отряд противника будет все время следовать за Вами.


  • 0

#25 OFFLINE   Cooler58

Cooler58

    Сержант

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

Отправлено 23 April 2019 - 21:30   Лучший Ответ

Распакуйте attachicon.gifhunting.Altis.rar в папку mpmissions чтобы получился путь mpmissions/hunting.Altis/mission.sqm

Затем в редакторе выберите миссию hunting.Altis и запустите сетевую игру. Отряд противника будет все время следовать за Вами.

ToxaBes, спасибо Вам огромное. Действительно всё работает. Теперь буду разбираться в синтаксисе строчек и наверное уберу спавн, потому что "духи" терпеливо кастомизировались и в редакторе в готовых образцах отсутствуют. Но это уже лирика. Еще раз спасибо!


  • 0

#26 OFFLINE   Cooler58

Cooler58

    Сержант

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

Отправлено 23 April 2019 - 22:40

И еще. Только что применил цикл:

[] spawn {    

while {true} do {     

        {

               if (side _x in [Blufor, Independent]) then {

                       _x doMove getPosATL p11;

                       if (_x distance p11 < 200 && {behaviour _x != "COMBAT"}) then {

                               (group _x) setBehaviour "COMBAT";

                       } else {

                               (group _x) setBehaviour "AWARE";

                       };

               };

        } forEach allUnits;

  sleep 60;

};

};

И понял что это то, что мне нужно!!! Попробуйте и увидите как реалистично они вас будут искать


  • 0

#27 OFFLINE   Cooler58

Cooler58

    Сержант

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

Отправлено 26 April 2019 - 23:00

Выявил один недостаток данного скрипта. Вкратце, когда боты начинают искать игрока в здании, то заходят в подъезд все вместе (видимо синхронно стремясь к getPosATL player) и сливаются в одну фигуру. Смотрится ужасно футуристично - одно тело с 8 головами. Не подскажете, как установить дистанцию между ботами ну, например, не менее 3 метров? Думаю, что даже в этом скрипте как-то можно впилить кусок кода.


  • 0

#28 OFFLINE   Schatten

Schatten

    Капитан

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

Отправлено 27 April 2019 - 20:13

Cooler58, поменяй цикл на этот:

{
    if ((side _x) in [blufor, independent]) then {
        _x move p11;

        if ((((units _x) findIf {(_x distance p11) < 200}) >= 0) && {(behaviour (leader _x)) != "COMBAT"}) then {
            _x setBehaviour "COMBAT";
        } else {
            _x setBehaviour "AWARE";
        };
    };
} forEach allGroups;

  • 0

#29 OFFLINE   Cooler58

Cooler58

    Сержант

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

Отправлено 28 April 2019 - 00:40

 

Cooler58, поменяй цикл на этот:

{
    if ((side _x) in [blufor, independent]) then {
        _x move p11;

        if ((((units _x) findIf {(_x distance p11) < 200}) >= 0) && {(behaviour (leader _x)) != "COMBAT"}) then {
            _x setBehaviour "COMBAT";
        } else {
            _x setBehaviour "AWARE";
        };
    };
} forEach allGroups;

Здравствуйте, Schatten. Попробовал, но в line 3 выдает ошибку перед move. А боты просто строятся и стоят


  • 0

#30 OFFLINE   Schatten

Schatten

    Капитан

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

Отправлено 28 April 2019 - 01:20

Cooler58, нужно поправить строку:

_x move (getPosATL p11);

P. S.

Сообщение об ошибке публиковать надо!


  • 0

#31 OFFLINE   Cooler58

Cooler58

    Сержант

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

Отправлено 28 April 2019 - 14:01

Cooler58, нужно поправить строку:

_x move (getPosATL p11);

P. S.

Сообщение об ошибке публиковать надо!

Теперь пашет! Спасибо Schatten. я пробовал вставить getPosATL p11 только без круглых скобок (не догадался). Еще раз спасибо


  • 0

#32 OFFLINE   Triada

Triada

    Ефрейтор

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

Отправлено 14 May 2019 - 00:38

Всем привет, захотелось вставить и свои 5 копеек 

_x move (getPosATL p11);

-этот код заставляет идти ботов за одним игроком, что довольно ущербно, во первых этот игрок может уйти с сервера, во вторых он может быть AFK в здании итп, остальные игроки не получат нужной реакции от ботов, почему сразу не написать нормально?


Например, чтобы боты хотя-бы шли за присутствующим на сервере игроком?


Я даже не говорю про то, что функция:

BIS_fnc_stalk

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


Если помогать такому хорошему человеку, так давайте поможем нормально, нет?


Только не подумайте что я хочу кого-то обидеть, просто на мой взгляд подобного "кода" уже достаточно на форумах, пора-бы и нормальному коду появиться


Сообщение отредактировал Triada: 14 May 2019 - 01:11

  • 0

#33 OFFLINE   Triada

Triada

    Ефрейтор

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

Отправлено 14 May 2019 - 00:50

Вот вам ещё пример ущербности подобного подхода, если игрок p11 сделает респ, то все боты, идущие по следу, побегут на респ, в то время как остальные игроки будут на поле боя, им будет ооочень интересно сидеть без дела)
А узнав, за каким игроком боты всё время бегают, появятся игроки, которые будут специально держаться подальше от такого бедолаги-игрока)


Сообщение отредактировал Triada: 14 May 2019 - 01:00

  • 0

#34 OFFLINE   Triada

Triada

    Ефрейтор

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

Отправлено 14 May 2019 - 01:16

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


Сообщение отредактировал Triada: 14 May 2019 - 11:10

  • 0

#35 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 14 May 2019 - 03:25

Ну так и вставьте, только не 5 копеек, а рубль.

Помогите хорошему человеку, предложите ваше решение, попробовать на вкус хорошему человеку.

Кто против то!


  • 0

#36 OFFLINE   Triada

Triada

    Ефрейтор

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

Отправлено 14 May 2019 - 08:34

Ну так и вставьте, только не 5 копеек, а рубль.
Помогите хорошему человеку, предложите ваше решение, попробовать на вкус хорошему человеку.
Кто против то!

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


Сообщение отредактировал Triada: 14 May 2019 - 11:12

  • 0

#37 OFFLINE   Triada

Triada

    Ефрейтор

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

Отправлено 14 May 2019 - 08:47

Я и узнал-то о том, что здесь происходит у вас совершенно случайно.
Когда вчера мы с ним переписывались по другому вопросу, и он мне прислал ссылку на ваше обсуждение. Я то думал :russian_ru:  , что моё решение ему просто не интересно, как и триггер криков раненых, который я ему написал, а он его не использует.
То, что оно якобы "не работает", я узнал только сейчас. Когда я его попросил прислать мой код, который я ему дал, он мне прислал действительно неработающий в сетевой игре код. Только вот в чём прикол, это была самая первая моя версия, как пример, как это можно решить в принципе. Потом я с ним общался и доработал этот код, прислал ему готовое решение, и забыл уже об этом, а теперь увидел вашу переписку и как говорится немного ошарашен от увиденного.


Сообщение отредактировал Triada: 14 May 2019 - 11:35

  • 0

#38 OFFLINE   Triada

Triada

    Ефрейтор

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

Отправлено 14 May 2019 - 09:06

Более того, если говорить начистоту я на него "немного" в обиде(  :paratrooper: 
Потому, что я вообще не понимаю, как можно быть таким: я ему и сервер выделенный под его миссии предлагаю - ноль ответной реакции, и код оптимизированный под его запросы, а он его оказывается даже не использует.
Короче говоря я решил, что ему не нужна никакая моя помощь и ушёл в сторону. Думаю, зачем навязывать свою помощь человеку если он не хочет, видимо я ему неприятен, или что-то вроде. Короче такое ...  :unknw:.  
Так что я не рубль, а доллар могу вставить. Но всё это странно, господа!


Сообщение отредактировал Triada: 14 May 2019 - 11:34

  • 0

#39 OFFLINE   Triada

Triada

    Ефрейтор

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

Отправлено 14 May 2019 - 10:32

Так что скорее всего моя помощь ему категорически не нужна  8).
Вы меня извините, что всё это вываливаю, видимо нужно было излить душу, ну теперь-то стало немного яснее, в чём собственно дело, а моё решение этой проблемы постараюсь здесь у вас выложить, как только смогу. Поскольку одного куска кода будет мало. Придётся создавать пример в миссии.


Сообщение отредактировал Triada: 14 May 2019 - 11:28

  • 0

#40 OFFLINE   Schatten

Schatten

    Капитан

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

Отправлено 14 May 2019 - 11:35

почему сразу не написать нормально?

Нормально -- это как? Хотелось бы узнать какие-нибудь критерии нормальности.


  • 0




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