Страница 42 из 42 ПерваяПервая ... 32404142
Показано с 1,641 по 1,650 из 1650
  1. #1641
    Младший сержант Аватар для Andrik

    Регистрация: 13.08.2013

    Адрес: Гатчина

    76 9
    На мой взгляд тут происходит вызов подкрепления под именем 0 в точку подкреплений 1. Все участники этого подкрепления получают имя 905. А затем они в режиме SWARM TO POINT следуют в Hill Test 2. Для чего это про дублировано? Может для усиления атаки. Может Hill Test 2 на карте надо подправить?

  2. #1642
    Старшина Аватар для Abrakodabr

    Регистрация: 21.12.2013

    Адрес: Г.Вологда

    856 9
    Цитата Сообщение от Andrik Посмотреть сообщение
    На мой взгляд тут происходит вызов подкрепления под именем 0 в точку подкреплений 1. Все участники этого подкрепления получают имя 905. А затем они в режиме SWARM TO POINT следуют в Hill Test 2. Для чего это про дублировано? Может для усиления атаки. Может Hill Test 2 на карте надо подправить?
    Или задумано так, что эта точка должна быть захвачена противником. Если войск на точке не осталось, то и атаки прекращаются.
    "В сорок первом, в сорок памятном году, прохрипели репродукторы беду..."

  3. #1643
    Цитата Сообщение от Andrik Посмотреть сообщение
    На мой взгляд тут происходит вызов подкрепления под именем 0 в точку подкреплений 1. Все участники этого подкрепления получают имя 905. А затем они в режиме SWARM TO POINT следуют в Hill Test 2. Для чего это про дублировано? Может для усиления атаки. Может Hill Test 2 на карте надо подправить?
    Поверь моему трехлетнему опыту скриптостроения, если одновременный спавн ещё так-сяк может сработать, то одновременная выдача команды, как в данном случае, это грубая ошибка. Это "дублирование" приводит не к "усилению", а к сбою в работе скрипта. Потому считаю, причина там.

    Цитата Сообщение от Abrakodabr Посмотреть сообщение
    Или задумано так, что эта точка должна быть захвачена противником. Если войск на точке не осталось, то и атаки прекращаются.
    Нет, там лимит на кол-во атак установлен.
    Просто сделай как показывал и протестируй. Должно помочь.
    Последний раз редактировалось Brummbar; 12.10.2017 в 22:00.
    Von Finnland bis zum Schwarzen Meer

  4. #1644
    Младший сержант Аватар для Andrik

    Регистрация: 13.08.2013

    Адрес: Гатчина

    76 9
    Цитата Сообщение от Brummbar Посмотреть сообщение
    Поверь моему трехлетнему опыту скриптостроения, если одновременный спавн ещё так-сяк может сработать, то одновременная выдача команды, как в данном случае, это грубая ошибка. Это "дублирование" приводит не к "усилению", а к сбою в работе скрипта. Потому считаю, причина там.
    Так как я не обладаю опытом в скриптостроении, то спорить не буду. Тут явно одно - происходит двойной вызов подкрепления в одну точку. А это 100% может привести к глюкам с совмещениями юнитов с одинаковыми координатами.
    Но на картинке то явно было множественное вызывание подкрепления. Может дело в другом?

    - - - Добавлено - - -

    А что происходит в этой строке скрипта?
    Trace("pnt - %g", point55);
    Вначале скрипта point55 присвоили 0, потом идёт строчка point55 = IsSomeBodyAlive(0, 1005);. То есть point55 присваивается 1, при каком то условии... А дальше вот это Trace("pnt - %g", point55);...

  5. #1645
    Цитата Сообщение от Andrik Посмотреть сообщение
    Так как я не обладаю опытом в скриптостроении, то спорить не буду. Тут явно одно - происходит двойной вызов подкрепления в одну точку. А это 100% может привести к глюкам с совмещениями юнитов с одинаковыми координатами.
    Но на картинке то явно было множественное вызывание подкрепления. Может дело в другом?

    - - - Добавлено - - -

    А что происходит в этой строке скрипта?
    Trace("pnt - %g", point55);
    Вначале скрипта point55 присвоили 0, потом идёт строчка point55 = IsSomeBodyAlive(0, 1005);. То есть point55 присваивается 1, при каком то условии... А дальше вот это Trace("pnt - %g", point55);...
    Не думаю, что в другом. Там эти команды в "циклически повторяющейся функции", а в таких функциях чуть что не так и игра зависла. Непрерывный спавн в данном случае очевидно и является последствием такой ошибки (одновременно выданные команды одной скриптовой группе). Я с таким сталкивался при построении функций в скриптах.

    Trace - это какая-то отладка, не знаю как работает. А Point55 в этом скрипте - проверка принадлежности крайней левой контрольной точки. Там скриптID 1005 присвоено зданию, связанному с флагом (дзот), при контроле точки игроком, срабатывает условие IsSomeBodyAlive(0, 1005) == 1; то-есть скриптовый объект 1005 принадлежащий игроку 0 присутствует в игре, если же игрок теряет над ним контроль, то срабатывает условие IsSomeBodyAlive(0, 1005) == 0;
    Последний раз редактировалось Brummbar; 14.10.2017 в 01:20.
    Von Finnland bis zum Schwarzen Meer

  6. #1646
    Младший сержант Аватар для Andrik

    Регистрация: 13.08.2013

    Адрес: Гатчина

    76 9
    Получается Point55 либо 0 либо 1.
    А как же тогда if (point55) > 1 then
    --Контратака немцев
    LandReinforcementFromMap ( 1, 0, 2, 901 );
    Cmd (3, 901, 50, "HillTest1"); и далее?

  7. #1647
    Цитата Сообщение от Andrik Посмотреть сообщение
    Получается Point55 либо 0 либо 1.
    А как же тогда if (point55) > 1 then
    --Контратака немцев
    LandReinforcementFromMap ( 1, 0, 2, 901 );
    Cmd (3, 901, 50, "HillTest1"); и далее?
    Абсолютно закономерный вопрос. Видел, для самого загадка... Насколько я знаю (убеждался на собственных ошибках) - "IsSomeBodyAlive" проверяет не количество, а только наличие или отсутствие, соответственно эта функция имеет только два значения 0 и 1 (положительное и отрицательное). Значит быть больше одного она в принципе не может
    Невзирая даже на количество скриптовых объектов, а здесь scriptID 1005 точно один (тот самый ДЗОТ). Может в этом как-то задействован Trace...
    Я бы здесь поставил >0 или вообще по-другому выстроил бы проверку контроля (вторжения, если необходимо) в населенный пункт...

    Но с другой стороны, это условие ведь срабатывает. Так как атаки начинаются.
    Последний раз редактировалось Brummbar; 15.10.2017 в 14:13.
    Von Finnland bis zum Schwarzen Meer

  8. #1648
    Младший сержант Аватар для Andrik

    Регистрация: 13.08.2013

    Адрес: Гатчина

    76 9
    Trace ('strText' [, params, …])
    Извлекает форматированную строку 'strText'. В качестве опционального параметра могут
    использоваться переменные с плавающей десятичной запятой. (Используется для
    отладки.)
    Trace ('I have %g apples of total %g', 2, 3);
    Просто не могу представить, что же эта функция делает с Point55.

  9. #1649
    Цитата Сообщение от Andrik Посмотреть сообщение
    Trace ('strText' [, params, …])
    Извлекает форматированную строку 'strText'. В качестве опционального параметра могут
    использоваться переменные с плавающей десятичной запятой. (Используется для
    отладки.)
    Trace ('I have %g apples of total %g', 2, 3);
    Просто не могу представить, что же эта функция делает с Point55.
    да, это я тоже читал в туториале по редактору. Но понять, что это значит я не в силах
    Я свои скрипты строю на функциях, которые изучил, работа которых мне понятна. И результатом доволен. Вчера закончил тестирование миссии "Отчаянный контрудар" (из Нормандии немецкая №7) в которой от базового скрипта оставил только функцию воздушного боя авиации американцев и союзников (игрока). Ну основную идею сценария миссии понятно сохранил. И финальная атака у меня в итоге поярче вышла, не групками с 2-3 направлений как в исходнике, а почти со всех сторон перли, аж самому понравилось, там концентрированным залпом арты не отделаешься, надо окопы рыть, систему обороны выстраивать.
    И "Trace" у себя не использую, пока получалось без него обходится

    Так что, думаю не стоит на этом заморачиваться, ведь повторюсь, скриптовое условие там срабатывает. А проблема в "двойной" команде
    ----------------------------------------
    А в будущем, при переносе этой миссии (высота 112) в свой мод, скрипт буду изменять, т.к. не люблю атак "толпой". Существуют способы заставить ИИ двигаться колонной, а не толпой, атаковать широким фронтом, а не толпой, и по "рандомным" направлениям, в т.ч. для каждого бронеюнита или даже отряда. В этом мне, кстати, кое-какие ништяковые функции из Нормандии помогают...
    Последний раз редактировалось Brummbar; 15.10.2017 в 17:07.
    Von Finnland bis zum Schwarzen Meer

  10. #1650
    Старшина Аватар для Abrakodabr

    Регистрация: 21.12.2013

    Адрес: Г.Вологда

    856 9
    В одиночной миссии Александра Суворова "Prohorovka_12_june_1943", выявились две ошибки. Первая- строение "shed01", имеет значение HP 8, вместо единицы и меньше, а вот вторую-".\SingleReinforcement.cpp(109): MAP DESIGN: not enough positions in deploy mask, need 21, unit not deployed ....... i < pos.size() " выявить так и не удалось. Судя по тексту ошибки, не хватает места для развёртывания скриптового подкрепления. Ошибка вылезает через 5 секунд после начала миссии. Подкрепы появляются только у Германии. Убавил их подкрепы с 24 пунктов до 20, но ошибка не исчезает. Кто чем поможет?

    ------------------------------------------
    Убавил ещё подкрепы до 14 пунктов-ошибка пропала. Но это не выход.
    Последний раз редактировалось Abrakodabr; Вчера в 20:19.
    "В сорок первом, в сорок памятном году, прохрипели репродукторы беду..."

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •