1. Состоялся релиз новой версии мода Vietnam Project 1.2
    Скрыть объявление
  2. Доступен для скачивания MODERN WARFARE MOD 2.1
    Скрыть объявление
  3. Доступен к просмотру и скачиванию иллюстрированный мануал "Катехизис картодела" от RASHIDUDIN
    Скрыть объявление
  4. Начат открытый бета-тест мода AIWM (Arab-Israeli Wars Modification)
    Скрыть объявление

Мануалы И Скриптование

Тема в разделе "БАБУШКИН СУНДУК - СКРИПТОВАНИЕ И КАРТОСТРОЙ", создана пользователем RASHIDUDIN, фев 9, 2017.

  1. RASHIDUDIN

    RASHIDUDIN Administrator Команда форума

    Сообщения:
    2,559
    Симпатии:
    1,749
    Баллы:
    113
    МАНУЛАЛ ПО СКРИПТОВАНИЮ СКАЧАТЬ: https://yadi.sk/d/P6yqnP4Z3Db9V8

    Еще несколько мануалов и примеры скриптов:
     

    Вложения:

  2. RASHIDUDIN

    RASHIDUDIN Administrator Команда форума

    Сообщения:
    2,559
    Симпатии:
    1,749
    Баллы:
    113
    Вопрос: Как можно сделать что бы можно было видно юниты союзника?
    Ответ: Поставить ему такую же команду, как и у Игрока.

    post-762-1357822770.jpg
     
  3. RASHIDUDIN

    RASHIDUDIN Administrator Команда форума

    Сообщения:
    2,559
    Симпатии:
    1,749
    Баллы:
    113
    Часто возникает ситуация когда посланные как подкрепление через флаг БТРы (с пехотой внутри),достигая зоны назначения, разварачиваются, едут обратно к флагу, а затем выгружают пехов в месте своего появления из-за карты, после чего вместе с пехами следуют в зону назначения.
    Нашёл (наводку дал Рашидудин) комбинацию скриптов чтобы, БТР (с пехотой внутри) из подкрепления выгружали пехоту именно в ту зону куда вы их направили.
    Итак, порядок действий:
    1. Создаем подкрепление, назовём его "US_stryker_platoon+MGS". Пехам ставим группу B0, БТРам J0.
    1.jpg

    2. Добавляем новый триггер. В триггере пишем условие (у меня звенит будильник №1), в реакции на условие отправляем игроку "ПРОТИВНИК" (любому под управлением АИ) подкрепление "US_stryker_platoon+MGS" через флаг F в зону #1
    2.jpg

    3. Добавляем новый триггер. В триггере пишем условие "больше чем 0 юнитов группы J0 в зоне #1", в реакции пишем "установить новую группу B1 для юнитов группы J0 в зоне #1"
    3.jpg

    4. Заходим в свойства групп. Группе B0 ставим поведение в "пехота - охранять зону #1" (можно через скрипт).
    4.jpg 4.jpg

    5. Заходим в свойства групп. Группе B1 ставим поведение в "танки -охранять зону#1" (можно через скрипт)
    5.jpg
     
    valery нравится это.
  4. RASHIDUDIN

    RASHIDUDIN Administrator Команда форума

    Сообщения:
    2,559
    Симпатии:
    1,749
    Баллы:
    113
    [quote name='sasha_08' post='54528' date='10.1.2013, 15:04']Также можно сделать нейтралов союзниками или врагами-прописать им команду 1 или 2.[/quote]

    Точно так.

    Вопрос: Как сделать чтоб игрок видел что видят союзники?
    Ответ: В меню редактора "Параметры миссии" нажимаем "Игроки". В меню надо поставить Союзнику (по умолчанию это В меню редактора "Параметры миссии" жмешь "Игроки". В открывшемся меню надо поставить Союзнику (по умолчанию "Игрок 3", соответствено "Игрок 1"-игрок; "Игрок 2"-противник; "Игрок 4"-нейтрал) ту же команду, что и у Игрока - т.е. "Команда #1". И все, в миссии тебе будет видно то, что видят юниты союзника.

    1.png
     
  5. RASHIDUDIN

    RASHIDUDIN Administrator Команда форума

    Сообщения:
    2,559
    Симпатии:
    1,749
    Баллы:
    113
    Вопрос: При создании миссии, как в скриптах сделать так, чтобы какое-то условие исполнялось регулярно, через определенный промежуток времени?
    Ответ: Цикличность выполнения условия задается будильником через следющие скрипты:

    Первый скрипт:

    1)Условие:
    какое-то
    2)Действие:
    завести будильник 1 на 10 минут
    Установить период цикла будильника 1 в 1 минуту.

    Второй скрипт:

    1)Условие:
    Звенит будильник 1
    2)Действие:
    Отправить подкрепление Игроку
     
  6. RASHIDUDIN

    RASHIDUDIN Administrator Команда форума

    Сообщения:
    2,559
    Симпатии:
    1,749
    Баллы:
    113
    Здравия!
    Ищу правильную скриптовку на патрулирование от двух до шести точек/зон.
    Помню, что было в 1-й 2-я миссия "Мост на Сунже" из "Na_Grozniy_by_Rashiduddin_E2015_patch3(edited by Logan).rar"
    и обсуждение на каком то форуме - маперов или сусру.
    PS Поисковик сегодня ко мне не благосклонен.
    --------------
    Понял. Спасибо.
    -----------
    Порылся в "закромах" и нашёл исходники.
    ----------------------------------------------------------------------------------------------------------------------------------------------------------

    [quote name='havana' post='55908' date='22.1.2013, 23:09']Здравия!
    Ищу правильную скриптовку на патрулирование от двух до шести точек/зон.
    Помню, что было в 1-й миссии из "Na_Grozniy_by_Rashiduddin_E2015_patch3(edited by Logan).rar"
    и обсуждение на каком то форуме - маперов или сусру.
    PS Поисковик сегодня ко мне не благосклонен.[/quote]
    Добрый день!
    Заложенные в скриптах действия патрулирования в данном случае не работают. Но выход есть:
    Например, движение по квадрату вокруг базы (аналогичным способом можно любой маршрут патрулирования задать - ограничение только для техники - может кончиться горючка):
    1. По углам базы поставить четыре зоны (предположим, зоны №№1,2,3,4 - размер зоны в зависимости от количества патрульных - для трех пехотинцев хватит и одного квадрата)
    2. Возле зоны 1 поставить патруль (например, три пехотинца) и назначить им группу А1(свойства группы - пехота охранять зону, зоны 1-1).
    Далее писать скрипты:
    3. Скрипт 1:
    условие - точно 1 юнит грА1 в зоне1 или более 1 юнита грА1 в зоне1
    действие - (не ставить -выключить условие)
    - установить новую грВ1 для юнитов грА1 в зоне1
    - свойства грВ1 - пехота охранять зону, зоны 2-2
    4. Скрипт 2:
    условие - точно 1 юнит грВ1 в зоне2 или более 1 юнита грВ1 в зоне2
    действие - (не ставить -выключить условие)
    - установить новую грС1 для юнитов грВ1 в зоне1
    - свойства грС1 - пехота охранять зону, зоны 3-3
    5. Скрипт 3:
    условие - точно 1 юнит грС1 в зоне3 или более 1 юнита грС1 в зоне3
    действие - (не ставить -выключить условие)
    - установить новую грД1 для юнитов грС1 в зоне1
    - свойства грД1 - пехота охранять зону, зоны 4-4
    6. Скрипт 4:
    условие - точно 1 юнит грД1 в зоне4 или более 1 юнита грД1 в зоне4
    действие - (не ставить -выключить условие)
    - установить новую грА1 для юнитов грД1 в зоне1
    - свойства грА1 - пехота охранять зону, зоны 1-1
    Вот таким образом будут бегать по квадрату или по любому другому маршруту. Дополнение: если, например, возле зоны3 поставить три (можно сто) пехотинца и присвоить им группу С1(свойства группы - пехота охранять зону, зоны 3-3), то совместно с первым патрулем, по этому же маршруту будет бегать еще один патруль и тд.
    По аналогичной схеме скриптов можно осуществлять проводку колонн - только последним скриптом или "убить юнитов через флаг" или "например, атаковать какой-то участок карты"
     
  7. RASHIDUDIN

    RASHIDUDIN Administrator Команда форума

    Сообщения:
    2,559
    Симпатии:
    1,749
    Баллы:
    113
    Редактирование групп



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

    В таблице представлено 100 групп. В каждой из этих ячеек вы можете видеть число юнитов группы, а также цвет, показывающий принадлежность юнитов группы к команде. Цветная полоска над числом символизирует игровую сторону. Текущая выбранная группа, к которой относится выбранный юнит помечается синим фоном.



    В режиме «Добавить новый» (юнит) вы можете левым щелчком мыши пометить желаемую группу. Все слудующие новые юниты будут добавляться к этой группе.

    В режиме «Редактировать имеющийся» (юнит) вы имеете следующие возможности:

    « Левый щелчок - переносит все выбранные юниты (включая пассажиров) в выбранную (щелчком мыши) группу

    « shift + левый щелчок - переносит ТОЛЬКО пассажиров выбранного юнита

    « Alt + левый щелчок - выбирает юниты группы и отменяет предыдущий выбор

    В обоих перечисленных режимах правым щелчком мыши на группе вы можете вызвать окно «Свойства групп» (см. Диалог «Свойства групп»).
    Источник: http://kab-1.narod.ru/
     
  8. RASHIDUDIN

    RASHIDUDIN Administrator Команда форума

    Сообщения:
    2,559
    Симпатии:
    1,749
    Баллы:
    113
    Вопрос: Как отправить подкрепление на карту?
    Ответ:

    Чтобы, при срабатывании определенного скрипта, кому-то из игроков на карту приходило подкрепление, то необходимо обеспечить несколько вещей:

    1. Надо создать само подкрепление - из каких юнитов оно состоит. Делается это следующим образом. В редакторе, в миссии, выбираем "Установки" -> "Подкрепления" (скрин 1). Появляется список подкреплений. Так как там подкреплений еще пока нет, их предстоит создать, то выбираем одно из пустых многоточий и жмем "Редактировать" (скрин 2). Открывается окно для редактирование данного подкрепления. В нем можно загружать в подкреп юниты и устанавливать им параметры - группу, количество патронов, топлива, здоровия и т.д. ВАЖНО - надо написать название подкрепления в строке внизу!!! У нас это будет "PODKREPLENIE - OMON". Выбираем нужные юниты из списка наций слева и кнопкой "поместить" вставляем их в окно самого подкрепления справа (скрин3). Не буду вдаваться в подробности, важно только сказать, что если в поскрепе есть буксируемая артилерия, то, надо в подкрепе ставить пуску непосредственно за грузовиком, а в грузовике оставлять пару свободных мест под ее расчет.

    После того, как готовы с подкрепом - жмем "ОК". Все - у нас есть готовый подкреп, состоящий из танка и нескольких омоновцев. В списке подкреплений он сохранен под именем "PODKREPLENIE - OMON" и мы можем в любой момент использовать его в миссии. (скрин6)


    2. Надо сделать флаги или т.н. "ворота", через которые подкрепление попадет на карту. И определить в какую зону подкреп выйдет. Подкрепления попадают на карту через "флаги". Красный флажок (ставится левой кнопкон мыши) показы точку выхода, голубой (ставится правой кнопкон мыши) - точку прибытия. Подкрепление прибывает через флаг куда-попало а в определенную зону. Рассмотрим классический пример - подкрепление выходит из-за кромки карты. На скрине 4 видно Флаг А, расположеный непосредственно за рамкой миссии (когда он за рамкой миссии, ширину "ворот" можно делать больше) с точкой выхода, точкой прибытия. Зона условно выбрана и нарисована 28. Тут важно только не использовать зону 0, так как она особеная - она символизирует всю карту.
    Итак - у нас подготовлены "ворота", через которые подкреп вый дет на карту, как и зона, куда он отправится.

    3. Запуск подкрепа в миссии на карту. Пишем скрипт появления подкрепа на карте (скрин5).
    Что мы имеем: При наступлении данного условия (в нашем случае, пусть это будет отсчет 10 секунд после начала миссии), наступают следующие последствия:

    - выключить это условие (очень важно, а то последствия будут исполняться не однократно, а постоянно и у нас потечет нескончаемая лавина подкрепов один за другим).
    - Показать модальный диалог "Подкреп прибыл" (я написал его просто для примера, его наличиие не обязательно, а текст может варировать в зависимости от сюжета миссии. Создается он предварительно, как и сам подкреп, в "установки" - "всплывающие сообщения".)
    - Отправить игроку "ИГРОК" (или союзник, противнит и т.д., в зависимости от сюжета) подкрепление типа PODKREPLENIE - OMON (созданное нами в т.1.) через флаг "ворота" А, в зону 28 (которую мы нарисовали под точкой, куда пойдет подкреп) с задержкой 00:00:00 (здесь, в зависимости от сюжета, можно ставить разную задержку).

    Вот и все. 10 секунд после начала миссии, игрок увидит модальник о прибытии подкреплениий и после этого, созданный нами подкреп прийдет на карту через указанный флаг в указанную зону.

    1.png 2.png 3.png Посмотреть вложение 37 5.png 6.png
     
  9. RASHIDUDIN

    RASHIDUDIN Administrator Команда форума

    Сообщения:
    2,559
    Симпатии:
    1,749
    Баллы:
    113
    [quote name='SEG' post='60769' date='30.3.2013, 15:34']И еще одно:
    - никто не пробовал, можно ли повторно использовать в скриптах уже сработавший будильник? (А то что-то стал ощущаться дефицит "зон" и "будильников"). Да и портянку приходится писать, чтобы не запутаться, какой будильник использовал, какой свободен.[/quote]
    Используй ячейки.

    Вот описание принципа их работы:


    "Ячейки памяти


    Их нигде нельзя видеть - это математическая операция. Пример: при появлении юнита А в зоне 1 срабатывает сктипт дать залп гаубицей. При повторном появлении юнита А в той же зоне скрипт уже не работает. Для того, чтоб сработал дважды в действии скрипта записываешь занести в ячейку 1 число 1. В условиях следующего скрипта пишешь - юнит А в зоне 1 и число в ячейке 1 равно1, дать залп гаубицей. Это самый простой пример.
    ---------------------------
    Цитата:
    Самолет прилетает 2 раза. Так дейчтвие может выполняться только 2 раза?

    Ничего удивительного! Ты же сам поставил условие: Выключить...
    Ячейки - одна сплошная математика. И НИКАКОГО отношения к Вашим скриптам они не имеют. Их можно складывать, вычитать, увиличивать на произвольное число, сравнивать и пр.
    В данном случае будет правильно так:
    Скрипт1
    юнитов в зоне больше или звенит будильник 1 …
    занести в ячейку число 1.
    Скрипт2
    юнитов в зоне меньше
    … занести в ячейку число 0.
    Скрипт3
    Число в ячейке равно 1.
    ... Отправить самолеты в зону.
    ... Ячейку увеличить на 1 (или занести..)
    ... Завести будильник 1 на...
    Скрипт работает столько времени, сколько выполняется заданное в нём условие (если не выключен, тогда один раз). в данном случае если при вылете самоля не увеличивать число в ячейке, то полетят они нескончаемой вереницей Можно, кстати, изменить так:
    Скрипт2
    Число в ячейке меньше 5.
    ... Отправить самолеты в зону.
    ... Ячейку увеличить на 1 (или занести..)
    Тогда в зону вылетит 4 самоля.

    Что тут сказать в ответ можно?
    А зачем математика нужна?
    Число в ячейке - это то же самое условие. Например, можно при выполнении целого ряда условий (юнитов в зоне, юнитов в группе, разницы например и пр.) занести в ячейку число и потом не перечислять всю эту массу, а сопоставить выполнение нужных действий с одним лишь значением. Более того, сама структура скриптов станет легче и возможности перекрёстных ссылок многократно возрастут.
    Словом. всё зависит от гибкости ума и фантазии.





    Бомбить занятый игроком город

    Рассмотрим некий условный городок, обозначенный зоной 1. Прежде всего, определимся с его принадлежностью. Для этого пишем такой блок:
    1. <юнитов игока 1 в зоне 1 точно 0 и юнитов игока 2 в зоне 1 точно 0 и неверно, что число в ячейке 1 точно 0> => <занести в ячейку 1 число 0>
    (ячейка 1 будет у нас индикатором принадлежности города в зоне 1)
    2. <юнитов игока 1 в зоне 1 больше 0 и юнитов игока 2 в зоне 1 точно 0 и неверно, что число в ячейке 1 точно 1> => <занести в ячейку 1 число 1>
    3. <юнитов игока 1 в зоне 1 больше 0 и юнитов игока 2 в зоне 1 больше 0 и неверно, что число в ячейке 1 точно 2> => <занести в ячейку 1 число 2>
    4. <юнитов игока 1 в зоне 1 точно 0 и юнитов игока 2 в зоне 1 больше 0 и неверно, что число в ячейке 1 точно 3> => <занести в ячейку 1 число 3>
    Теперь мы всегда знаем:
    с1=0 - в городе никого нет
    с1=1 - город в руках игрока
    с1=2 - в городе бой
    с1=3 - город занят врагом
    Пример реакции компа на занятие города игроком:
    1.<число в ячейке 1 точно 1 и число в ячейке 2 точно 0> =>
    <отправить подкреп Х игроку 2 через флаг А в зону 2>
    <установить группе поведение...> (отправляем подкреп штурмовать город)
    <занести в ячейку 2 число 1> (изменяем исходное условие, чтобы действие выполнилось только один раз в ДАННЫЙ момент)
    (ячейка 2 будет у нас индикатором ответных действий)
    2.<число в ячейке 1 точно 1 и число в ячейке 2 больше 0 число в ячейке 2 меньше 5> =>
    <добавить игроку 2 бомберов 1>
    <добавить игроку 2 вылетов для бомберов 1>(дабы не париться с количеством самолей и вылетов в дальнейшем)
    <отправить 1 бомбардировщик игрока 2 в зону 1>
    <число в ячейке 2 увеличить на 1>(накручиваем счётчик с каждым вылетевшим самолётом)
    3.<число в ячейке 1 точно 1 и число в ячейке 2 точно 5> =>
    <добавить игроку 2 разведчиков 1>
    <добавить игроку 2 вылетов для разведчиков 1>
    <отправить 1 разведчик игрока 2 в зону 1>
    <завести будильник 1 на 2 мин>(даём время подкрепу и разведчику добраться ло места)
    <занести в ячейку 2 число 6>
    4.<звенит будильник 1 и число в ячейке 2 точно 6> =>
    <добавить игроку 2 истребителей 3>
    <добавить игроку 2 вылетов для истребителей 3>
    <отправить 3 истребителя игрока 2 в зону 1>
    <завести будильник 1 на 20 мин>(даём время компу на разборки)
    <занести в ячейку 2 число 7>
    5.<звенит будильник 1 и число в ячейке 2 точно 7> =>
    <занести в ячейку 2 число 0>(цикл завершён и мы готовы к новой реакции)
    Теперь пишем нечто подобное, но для с1=2 (скажем, бомберы у нас в этом случае не летят - не бомбить же своих!) и для с1=3. Тут всё зависит только от Ваших фантазий.
    Особо оговорюсь: это пример, и цепочка может быть сколь угодно длинной. Более того, можно запустить дочерние цепи, дробить реакции по незначительным отличиям (% соотношение сил, состояние на других участках и пр.) Можно в условия всех скриптов ввести ещё одно значение - число в ячейке 3 (например, положение в городе Плюевске - тогда кол. скриптов кратно увеличится, но соответственно увеличится и разнообразие прохождения).
    В заключение повторюсь - нет предела совершенству!



    и в самом начале задать обнуление этих ячеек так

    Не обнуление, а занесение в ячейку числа 0!"
     
  10. RASHIDUDIN

    RASHIDUDIN Administrator Команда форума

    Сообщения:
    2,559
    Симпатии:
    1,749
    Баллы:
    113
    Небольшой архивчик по скриптам
     

    Вложения:

  11. RASHIDUDIN

    RASHIDUDIN Administrator Команда форума

    Сообщения:
    2,559
    Симпатии:
    1,749
    Баллы:
    113
    Создание подкрепов

    [quote name='AEALS' post='62792' date='2.5.2013, 16:42']Вот вот, именно подробность и нужна, сколько дней ищу, и не нашел, буду признателен, если в подробностях объясните. У меня противостояние 2015, когда хочу задать в подкреплении например БТР с юнитами внутри, не получается, иногда как сам не зная делаю юнитов внутри БТР, но тогда экипаж исчезает, так измучился.

    Заранее Вам спасибо[/quote]
    Загрузка десанта в БТР (танк, авто) в подкреплении:
    1. В редакторе нажать - установки - подкрепления - окно подкрепления №1
    2. Выбрать и поместить на правую сторону напр. БТР80
    3. Выбрать (выделить) БТР80 в правой стороне
    4. Нажать "Вырезать"
    5. Внизу нажать "Пассажиры(0/8)"
    6. Выбрать и поместить десант до 8 чел.
    7.Внизу нажать "Пассажиры(0/8).
    8. Нажать "Поместить"
    Всё БТР80 в подкреплении с десантом на борту. Аналогично производится смена экипажа (если есть такая необходимость - смена группы экипажа, повышение его опыта, морали..) Только в пп. 5,7 нажимать внизу "экипаж".
    - если в подкреплении десант в БТР одинаков на всех БТРах, то можно размножить через "копировать-поместить".
    - если в каждом БТР десант индивидуален - тогда операция по пп 1-8 повторяется для каждого БТР.
    - если в грузовике оставить два пустых места, а сразу вслед за грузовиком в подкреплении разместить пушку, миномет, ПЗРК (обязательно с расчетом), то грузовик при выходе подкрепления будет тащить пушку, миномет, ПЗРК.
    ВАЖНО: после создания подкрепления в нижней (самой нижней) строке необходимо написать наименование подкрепления и обязательно латиницей.
     
  12. RASHIDUDIN

    RASHIDUDIN Administrator Команда форума

    Сообщения:
    2,559
    Симпатии:
    1,749
    Баллы:
    113
    СОхранить/загрузить блок карты в редакторе

    [quote name='SOA3MW' post='64286' date='21.5.2013, 17:06']Извините если не в тему вопрос. Но как сделать так чтобы карта слилась и была внизу справа как на скрине[/quote]
    Не совсем понятен вопрос. Но если имеется ввиду переместить объекты из одного квадрата в другой то есть функция в редакторе:
    Сохранить/загрузить объекты
    Эта функция позволяет сохранять на диске и загружать блоки неподвижных объектов.
    Чтобы сохранить блок, вы должны пометить область сохранения (копирования). Это делается «кистью». Делайте следующее:
    · Выберите желаемый размер кисти
    · Удерживая нажатой левую кнопку мыши, пометьте на карте область с объектами. Правая кнопка мыши отменяет выделение.
    · Нажмите кнопку СОХРАНИТЬ, введите имя файла и затем нажмите OK.

    Для загрузки блока делайте следующее:
    · Нажмите кнопку ЗАГРУЗИТЬ, выберите файл объектов и нажмите OK. Объекты из файла попадут в буфер обмена.
    · Удерживайте нажатой клавишу CTRL. Курсор превратится в копию блока объектов из буфера обмена.
    · Переместите блок в нужное место на карте и нажмите левую кнопку мыши, чтобы разместить его.
    · Если вы разместили блок объектов ошибочно, нажмите правую кнопку мыши, чтобы удалить его с карты.

    Доступны следующие дополнительные возможности:
    · По центру: Загружает блок и размещает его в центре миссии. Удобно использовать, если надо скопировать всю миссию целиком. (Загрузить карту – Загрузить миссию – Выбрать миссию – Сохранить – Новая карта – Новая миссия – Загрузить по центру).
    · Все: Выбирает всю карту.
    · Миссия: Выбирает зону (область) миссии.
    · Удалить: Отменяет предыдущий выбор.
     
  13. RASHIDUDIN

    RASHIDUDIN Administrator Команда форума

    Сообщения:
    2,559
    Симпатии:
    1,749
    Баллы:
    113
    Поворот колонны противника на повороте

    [quote name='Dmitriy' post='64373' date='22.5.2013, 4:59']Мне нужно чтобы колонна противника на поворотах поворачивала.[/quote]
    1. Расставить зоны по маршруту движения колонны (например зоны 1,2,3 размером где-то 3 на 3 квадрата в местах поворотов колонны)
    2. Далее писать скрипты:
    2.1. Скрипт 1:
    Условие:
    время с начала миссии больше чем № (или любое другое условие)
    Действие:
    выключить условие
    отправить подкрепление № через флаг № в зону 1 через 0.00.00(иметь ввиду следующее - пехота, БТТ, грузовики и легковые авто имеют разные скорости движения и это надо учитывать при посылке подкрепления. Т.е. каждый вид юнита должен иметь свою индивидуальную группу). Например, подкрепление № - имитация колонны танковой роты: для колонны в подкреплении должен быть один танк группы, напр, А1 - свойства группы А1: охранять зону 1.
    отправить подкрепление № через флаг № в зону 1 через 0.00.10
    отправить подкрепление № через флаг № в зону 1 через 0.00.20 и тд
    2.2. Скрипт 2:
    Условие:
    точно 1 юнит группы А1 в зоне 1 или больше чем 1 юнит группы А1 в зоне 1
    Действие:
    установить новую группу В1 для юнитов А1 в зоне 1
    установить поведение группы В1 - танки охранять зону
    установить зона 1 для группы В1 в зону 2
    установить зона 2 для группы В1 в зону 2
    (поведение и зоны для группы можно установить не через скрипт, а прямо в редакторе через свойства групп). В действии не ставить выключить условие.
    2.3. Скрипт 3:
    Условие:
    точно 1 юнит группы В1 в зоне 2 или больше чем 1 юнит группы В1 в зоне 2
    Действие:
    установить новую группу С1 для юнитов В1 в зоне 3
    установить поведение группы С1 - танки охранять зону
    установить зона 1 для группы С1 в зону 3
    установить зона 2 для группы С1 в зону 3
    2.4. Скрипт 4:
    Условие:
    точно 1 юнит группы С1 в зоне 3 или больше чем 1 юнит группы С1 в зоне 3
    Действие:
    убить юниты группы С1 через флаг № в зоне 3 (Поведение группы С1 - нет, зоны - 0)
    Количество поворотов колонны по маршрут движения ограничено только наличием свободных зон и групп юнитов.
     
  14. RASHIDUDIN

    RASHIDUDIN Administrator Команда форума

    Сообщения:
    2,559
    Симпатии:
    1,749
    Баллы:
    113
    Артобстрел

    Коллега SOA3MW задал в личке следующий вопрос.

    Реализацию данной задачи выкладываю. Обратите внимание на то, что в скриптах изменяется значения чисел в ячейках по наростающей. В теории не рекомендуют пользоваться оператором "строго", но эмпирически проверял - все работает.

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

    По всем вопросам пишите.

    В приложении миссия и исходник для редактора.
     

    Вложения:

  15. RASHIDUDIN

    RASHIDUDIN Administrator Команда форума

    Сообщения:
    2,559
    Симпатии:
    1,749
    Баллы:
    113
    Причем есть два варианта - отрубить само условие скрипта, то есть выключить будильник, или сделать 0 боеприпасов.

    Для того, чтобы переназначить цели артиллерии можно тупо отрубить будильник, по которому

    артиллерия долбила зону 1, но в этом случае она прекращает огонь с опозданием, поэтому лучше обнулять ей боеприпасы и давать их заново новым будильником.Тогда она откроет огонь по новой цели сразу.

    Вот пример. По полминуты стрельбы по двум целям и прекращение огня.
     

    Вложения:

    • map.001.zip
      Размер файла:
      18.2 КБ
      Просмотров:
      3
  16. RASHIDUDIN

    RASHIDUDIN Administrator Команда форума

    Сообщения:
    2,559
    Симпатии:
    1,749
    Баллы:
    113
    Компилирование кампании:

    [quote name='SOA3MW' post='66990' date='1.7.2013, 13:55']Как нужно компилировать кампании?[/quote]

    Ответ вот :)

    [quote name='sasha_08' post='66890' date='28.6.2013, 22:29']Вверху страницы есть ссылка на мануал. Там все подробно и доступно написано. Тем более что IG уже давал вам ссылки на мануалы, если я не ошибаюсь.[/quote]
    И не один раз, прошу заметить. Но IG добрый сегодня:



    Чтобы создать новую миссию, вы должны выбрать размер области миссии.

    Область миссии может быть только указанных размеров: 128x128, 256x256, 384x384, 512x512, причем не может быть больше размера карты. После создания новой миссии (если ее область меньше размера карты), вы можете перемещать ее область в пределах карты используя Shift и клавиши со стрелками.




    Компилировать как кампанию

    Здесь не требуется вводить никаких описаний или имен файлов. Созданная карта и миссия автоматически сохраняются в папке MAPS/CAMPAIGN (CUSTOM_CAMPAIGN). При этом применяется автоматически следующий формат для присваивания имен:

    · NNN.ssc – файл карты

    · NNNMMM.ssc – файл миссии



    NNN берется от номера слота карты и MMM – от номера слота миссии (внутри слота карты). Карта и миссия компилируются в виде отдельных файлов, что позволяет сохранить место на диске. Так как возможно создание нескольких миссий на одной и той же карте.

    Вы не можете откомпилировать данные как кампанию, если перед этим вы не сохранили карту или миссию.



    И еще в старом мануале предупреждение. Сам кампании не делал, поэтому не знаю насколько актуально.


    Компилировать как кампанию

    Эта функция позволяет откомпилировать текущую миссию (то есть перевести ее в формат .ssc)

    Пункт меню становится доступным в случае, если создана новая или загружена миссия.

    Этот пункт меню необходим только в том случае, если вы создаете миссию кампании (ряд взаимосвязанных одиночных миссий)
    Дело в том, что миссия кампании состоит из двух откомпилированных раздельно файлов - отдельно файла с картой (ххх.ssc) и с собственно миссией (хххххх.ssc).
    Имена обоих файлов состоят только из цифр. Три цифры - для имени файла карты и шесть цифр для имени миссии.

    Внимание, внутренняя ошибка! Не нажимайте этот пункт меню без необходимости!
    Сохранение осуществляется без диалога и запроса на подтверждение со стороны пользователя прямо в папку ..\MAPS\CAMPAIGN\
    Имя (в виде цифр) присваивается автоматически и одноименное с номером текущего слота миссии (из папки ..\MAPS.CA\MAP.XXX\MIS.XXX)
    В результате имеется возможность случайно перезаписать какой-либо файл миссии кампании аддона!!!

    Совет
    Во избежание указанной ситуации необходимо внести изменения в файл editor2.ini
    Воспользуйтесь текстовым редактором типа "Блокнот".
    В секторе [Main] исправьте путь для сохранения файлов кампании на произвольный, отличный от стоящего по-умолчанию.
    Например:
    CampaignDir=С:\
    В указанном примере сохранение произойдет в кореневую папку диска C:
    В дальнейшем, сохраненные файлы можно будет без риска перенести в папку ..\MAPS\CAMPAIGN\ стандартными средствами Windows.
     
  17. RASHIDUDIN

    RASHIDUDIN Administrator Команда форума

    Сообщения:
    2,559
    Симпатии:
    1,749
    Баллы:
    113
    Имитация производства юнитов

    [quote name='FPBeatz' post='69628' date='31.8.2013, 0:04']2. Можно ли сделать циклический таймер, чтобы производство(выход подкреплений) и воскрешение юнитов выполнялось постоянно по звонку будильника? И выключится ли циклический таймер, если поставить пункт "выключить это условие" под "звенит будильник Х"?[/quote]
    Можно. С помощью дополнительного условия в скрипте - ячеек памяти.


    Ячейки памяти


    Их нигде нельзя видеть - это математическая операция. Пример: при появлении юнита А в зоне 1 срабатывает сктипт дать залп гаубицей. При повторном появлении юнита А в той же зоне скрипт уже не работает. Для того, чтоб сработал дважды в действии скрипта записываешь занести в ячейку 1 число 1. В условиях следующего скрипта пишешь - юнит А в зоне 1 и число в ячейке 1 равно1, дать залп гаубицей. Это самый простой пример.
    ---------------------------
    Цитата:
    Самолет прилетает 2 раза. Так дейчтвие может выполняться только 2 раза?

    Ничего удивительного! Ты же сам поставил условие: Выключить...
    Ячейки - одна сплошная математика. И НИКАКОГО отношения к Вашим скриптам они не имеют. Их можно складывать, вычитать, увиличивать на произвольное число, сравнивать и пр.
    В данном случае будет правильно так:
    Скрипт1
    юнитов в зоне больше или звенит будильник 1 …
    занести в ячейку число 1.
    Скрипт2
    юнитов в зоне меньше
    … занести в ячейку число 0.
    Скрипт3
    Число в ячейке равно 1.
    ... Отправить самолеты в зону.
    ... Ячейку увеличить на 1 (или занести..)
    ... Завести будильник 1 на...
    Скрипт работает столько времени, сколько выполняется заданное в нём условие (если не выключен, тогда один раз). в данном случае если при вылете самоля не увеличивать число в ячейке, то полетят они нескончаемой вереницей Можно, кстати, изменить так:
    Скрипт2
    Число в ячейке меньше 5.
    ... Отправить самолеты в зону.
    ... Ячейку увеличить на 1 (или занести..)
    Тогда в зону вылетит 4 самоля.

    Что тут сказать в ответ можно?
    А зачем математика нужна?
    Число в ячейке - это то же самое условие. Например, можно при выполнении целого ряда условий (юнитов в зоне, юнитов в группе, разницы например и пр.) занести в ячейку число и потом не перечислять всю эту массу, а сопоставить выполнение нужных действий с одним лишь значением. Более того, сама структура скриптов станет легче и возможности перекрёстных ссылок многократно возрастут.
    Словом. всё зависит от гибкости ума и фантазии.





    Бомбить занятый игроком город

    Рассмотрим некий условный городок, обозначенный зоной 1. Прежде всего, определимся с его принадлежностью. Для этого пишем такой блок:
    1. <юнитов игока 1 в зоне 1 точно 0 и юнитов игока 2 в зоне 1 точно 0 и неверно, что число в ячейке 1 точно 0> => <занести в ячейку 1 число 0>
    (ячейка 1 будет у нас индикатором принадлежности города в зоне 1)
    2. <юнитов игока 1 в зоне 1 больше 0 и юнитов игока 2 в зоне 1 точно 0 и неверно, что число в ячейке 1 точно 1> => <занести в ячейку 1 число 1>
    3. <юнитов игока 1 в зоне 1 больше 0 и юнитов игока 2 в зоне 1 больше 0 и неверно, что число в ячейке 1 точно 2> => <занести в ячейку 1 число 2>
    4. <юнитов игока 1 в зоне 1 точно 0 и юнитов игока 2 в зоне 1 больше 0 и неверно, что число в ячейке 1 точно 3> => <занести в ячейку 1 число 3>
    Теперь мы всегда знаем:
    с1=0 - в городе никого нет
    с1=1 - город в руках игрока
    с1=2 - в городе бой
    с1=3 - город занят врагом
    Пример реакции компа на занятие города игроком:
    1.<число в ячейке 1 точно 1 и число в ячейке 2 точно 0> =>
    <отправить подкреп Х игроку 2 через флаг А в зону 2>
    <установить группе поведение...> (отправляем подкреп штурмовать город)
    <занести в ячейку 2 число 1> (изменяем исходное условие, чтобы действие выполнилось только один раз в ДАННЫЙ момент)
    (ячейка 2 будет у нас индикатором ответных действий)
    2.<число в ячейке 1 точно 1 и число в ячейке 2 больше 0 число в ячейке 2 меньше 5> =>
    <добавить игроку 2 бомберов 1>
    <добавить игроку 2 вылетов для бомберов 1>(дабы не париться с количеством самолей и вылетов в дальнейшем)
    <отправить 1 бомбардировщик игрока 2 в зону 1>
    <число в ячейке 2 увеличить на 1>(накручиваем счётчик с каждым вылетевшим самолётом)
    3.<число в ячейке 1 точно 1 и число в ячейке 2 точно 5> =>
    <добавить игроку 2 разведчиков 1>
    <добавить игроку 2 вылетов для разведчиков 1>
    <отправить 1 разведчик игрока 2 в зону 1>
    <завести будильник 1 на 2 мин>(даём время подкрепу и разведчику добраться ло места)
    <занести в ячейку 2 число 6>
    4.<звенит будильник 1 и число в ячейке 2 точно 6> =>
    <добавить игроку 2 истребителей 3>
    <добавить игроку 2 вылетов для истребителей 3>
    <отправить 3 истребителя игрока 2 в зону 1>
    <завести будильник 1 на 20 мин>(даём время компу на разборки)
    <занести в ячейку 2 число 7>
    5.<звенит будильник 1 и число в ячейке 2 точно 7> =>
    <занести в ячейку 2 число 0>(цикл завершён и мы готовы к новой реакции)
    Теперь пишем нечто подобное, но для с1=2 (скажем, бомберы у нас в этом случае не летят - не бомбить же своих!) и для с1=3. Тут всё зависит только от Ваших фантазий.
    Особо оговорюсь: это пример, и цепочка может быть сколь угодно длинной. Более того, можно запустить дочерние цепи, дробить реакции по незначительным отличиям (% соотношение сил, состояние на других участках и пр.) Можно в условия всех скриптов ввести ещё одно значение - число в ячейке 3 (например, положение в городе Плюевске - тогда кол. скриптов кратно увеличится, но соответственно увеличится и разнообразие прохождения).
    В заключение повторюсь - нет предела совершенству!
     
  18. RASHIDUDIN

    RASHIDUDIN Administrator Команда форума

    Сообщения:
    2,559
    Симпатии:
    1,749
    Баллы:
    113
    Видимо пехота противника, расположенная в начале миссии внутри БТР-а, поставленного на карте, выскакивает из этого БТР-а сразу после начала миссии по любому и запретить ей покидать БТР-ы нет возможности. Зато можно пехоту доставлять к месту боя в БТР-ах приезжающих на карту из подкрепления через флаги - главное на сколько я понял - не дать возможности БТР-ам остановиться в промежуточной зоне, т.к. в этом случае пехота сразу покинет БТР.

    Сегодня благодаря теме "Мануалы И Скриптование" в подфоруме "Бабушкин сундук" и советам rashidudin получилось сделать так, что бы пехота, добирающаяся до места боя внутри БТР-ов, начинала бы автоматически покидать эти БТР-ы в момент когда они атакованы, т.е., ещё до того, как БТР-ы прибудут в зону назначения. В результате получается реалистично - внезапная атака БТР-а вынуждает пехоту покидать БТР, где бы этот БТР не находился. Главное, что бы БТР в момент атаки двигался в зону назначения.

    В прикреплённом исходнике такой эффект получается двумя скриптами:
    "Первая атака_0", и "Выгрузка пехоты из БТР-ов в бою" в версии миссии - "*Миссия 003: Vision_10".
     

    Вложения:

    • map.008.zip
      Размер файла:
      139.2 КБ
      Просмотров:
      5
  19. RASHIDUDIN

    RASHIDUDIN Administrator Команда форума

    Сообщения:
    2,559
    Симпатии:
    1,749
    Баллы:
    113

    Выгрузка юнитов из грузовиков


    Цитата:
    Сообщение от Den_B
    1) Как заставить компа чтоб он сам выгружал юнитов из грузовиков??
    А также отцепялял пушки..!?!?!?

    Создаёшь поткреп - транспорту даёшь одну группу (пример A1), пехоте и пушке другую (пример A2).
    Затем заходишь в раздел группы (параметры миссии) - группе A1 задаёшь Грузовики - ехать в зону (Хаотично распределиться в зоне), группе A2 Пехота - Гаубицы занять (Хаотично распределиться в зоне и не перетаскивать волоком). Зону задаёшь естественно одинаковую.

    Quote:
    Из подкрепа доехать на грузовиках.
    бы они выходили не "пеша-драла", а ехали в кузовах, боевых отделениях и т.п.???

    грузовики-поддержка
    они довезут пехов куда надо. Верно только приминительно к грузовикам. с бтрами вроде такое нельзя.


    Вот файл полезный.
    http://www.forum.modplanet.net/index.php?a...st&id=11233


    [quote name='Morpexx95' post='83291' date='5.4.2014, 15:32']Как сделать чтобы пехота в сопровождении танков то останавливалась, уничтожая перед собой препятствия, затем снова продвигалась?[/quote]
    Надо уточнить, что Вы планируете организовать. Если уничтожить сопротивление и наступать дальше, то все просто - скриптово меняете им зоны в случае уничтожения юнитов противника в атакуемой зоне.
    Как делать скрипты для смены поведения описано в инструкциях, которые выложили в данной теме.
     
  20. RASHIDUDIN

    RASHIDUDIN Administrator Команда форума

    Сообщения:
    2,559
    Симпатии:
    1,749
    Баллы:
    113
    Используй скрипты. Текстовка не моя. Нашел в загашниках.

    Циклические действия

    Очень часто в миссиях нужно какое-то действие повторять в цикле с какой-то временной периодичностью. Например высылать подкрепление каждые 20 минут. Или раз в 30 минут давать Игроку один бомбардировщик и разрешение сделать какое-то количество вылетов. Или раз в 45 секунд давать группе мотоциклистов команду на переход в другую зону. Таких примеров можно привести довольно много.

    Предлагаю Вашему вниманию три миссии, с тремя различными вариантами организации циклов.
    1. На ячейках памяти
    Собственно цикл состоит из трех скриптов.
    Скрипт1:
    Старт миссии
    Если:
    начало миссии
    То:
    занести в ячейку C_0 число Номер 1
    добавить игроку Vrag 10 Бомбер

    Скрипт2:
    Игрок в #2 - Заводим таймер #0 для Бомбера
    Если:
    больше чем 0 юнитов игрока Igrok в зоне #2 и число в ячейке C_0 точно Номер 1
    То:
    завести будильник #0 на 00:00:15
    занести в ячейку C_0 число Номер 0

    Скрипт3:
    Игрок все еще в #2, прошло время таймера #0 - бомбим его
    Если:
    больше чем 0 юнитов игрока Igrok в зоне #2 и звенит будильник #0
    То:
    добавим игроку Vrag 1 вылет для Бомбер
    отправить 1 Бомбер игрока Vrag в зону #2 и посадить на аэродром 0
    сказать фразу "Bomber poletel!"
    занести в ячейку C_0 число Номер 1

    В данном примере, как только Игрок входит в зону номер #2, то каждые 15 секунд, в зону #2, высылается бомбардировщик врага. Игрок уходит из зоны (или Игрок убит, или сбили все 10 бомберов Врага) - налеты прекращаются. Данная реализация цикла чем-то напоминает мне работу триггера.

    Собственно идея состоит в том, что раз в 15 секунд ячейка памяти C_0 меняет свое значение. И когда значение C_0=1 вылетает бомбер.

    Важно понимать два момента:
    1. Игрок в зоне - это как бы "вторичная" причина срабатывания цикла и это может быть какое-то другое условие, а может вообще отсутствовать.
    2. В нашем примере собственно действие - "отправить 1 Бомбер игрока Vrag в зону #2" также не влияет на суть цикла, и это может быть какое-то другое действие - подкрепление, фраза, перемещение и т.д.

    10 бомберов в скрипте1 только для демонстрации - что бы были в наличии не занятые работой бомберы. Если указать 1 бомбер, то он будет "не успевать". Данная реализация цикла работает не только в Sudden Strike II (Противостояние 4), но и с минимальными изменениями в предыдущих версиях игры.
    2. На таймерах

    Мне очень нравится эта реализация. Что-то в ней есть элегантное... Красиво и эффективно.
    Скрипт1:
    Старт миссии
    Если:
    начало миссии
    То:
    добавить игроку Vrag 10 Бомбер
    завести будильник #0 на 00:00:15

    Скрипт2:
    Игрок в #2 - цикл
    Если:
    больше чем 0 юнитов Igrok в зоне #2 и звенит будильник #0
    То:
    выключить будильник #0
    завести будильник #0 на 00:00:15
    сказать фразу "Bomber poletel!"
    добавить игроку Vrag 1 вылет для Бомбер
    отправить 1 Бомбер игрока Vrag в зону #2 и посадить на аэродром 0

    И все! Самое главное и самое красивое в данном варианте это две строчки в одном скрипте:

    выключить будильник
    завести будильник

    Все остальное, конечно, важные команды, но на идею цикла не влияет.
    3. Специальная команда

    В Sudden Strike II, для работы с циклами появилась специальная команда "установить период будильника".
    Скрипт1:
    Старт миссии
    Если:
    начало миссии
    То:
    добавить игроку Vrag 10 Бомбер
    завести будильник #0 на 00:00:01
    установить период будильника #0 в 00:00:15

    Скрипт2:
    Игрок в #2 - цикл
    Если:
    больше чем 0 юнитов Igrok в зоне #2 и звенит будильник #0
    То:
    сказать фразу "Bomber poletel!"
    добавить игроку Vrag 1 вылет для Бомбер
    отправить 1 Бомбер игрока Vrag в зону #2 и посадить на аэродром 0

    В этом варианте важно помнить, что прежде чем устанавливать период - будильник обязательно нужно заводить. Данная реализация удобна тем, что в любой момент миссии можно изменить период будильника или вовсе его остановить.
     

    Вложения:

    • cycles.zip
      Размер файла:
      26 КБ
      Просмотров:
      5

Поделиться этой страницей