Редактор, скрипты и все остальное - основа основ

Тема в разделе "Вопросы по редактору и скриптам", создана пользователем Brend, 21 май 2008.

  1. Brend
    Оффлайн

    Brend Зарегистрированный

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

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

    Список условий работы триггеров – conditions
    - camera – замечательное, восхитительное условие, жаль что так редко используемое, для запуска триггера - камера – одним словом ваш экран, то что вы видите сейчас у себя, при изучении карты миссии, либо часть его. То есть когда вы навели камеру на ту или иную часть карты сработает триггер. Можно настроить по zone, видящую, частично видящую, невидящую, время которое мы должны держать эту камеру в этой области экрана.
    - entities – настройки юнитов (их местоположение, состояние)
    одно из самых часто используемых условий, когда нужно показать что юнит в данный момент делает, какого физическое состояние юнита, его местоположение и прочее. в source можно задать два положения задания параметров: standart и advance (расширенное)
    выбирая advance и щелкнув правой кнопкой мыши по selector'u получаем три основных группы параметров:
    +group
    +sort
    +amount

    выбирая group появляется select, include, exclude.
    в select есть также следующие параметры для юнитов:
    +mids - можно задать просто mid номер юнита, если он в скриптах не меняется.
    +tags - аналогично задается присвоенный юниту тэг.
    +zone - может учитываться только этот параметр, то есть зона где будет происходить то или иное событие, либо совместно с mids или tags.
    +zone_ex - исключает данную зону из условий для работы скрипта, удобно скажем когда на карте много зон и они между собой пересекаются, а вам нужен данный конкретный кусочек земли.
    +id - ай-ди номер который есть у каждого объекта в игре, сделано для удобства если берется объект с карты, у которого mid отсутствует и нельзя присвоить тэг.
    +inventory_items - объекты содержащие в себе другие объекты которым тоже может быть присвоен тэг и т.д. типа ящик с тэгом "box" в котором лежат мины с тэгом "min"

    далее параметры и описания для include и exclude одинаковы, поэтому могут использоваться и там и там, смотря как удобнее для реализации скрипта.
    включают в себя следующее:
    +zone - зона на карте где будет находиться данный юнит в том или ином состоянии либо произойдет действие.
    +mids - см. выше
    +tag - см. выше
    +player - выбирается плеер участвующий в скрипте
    +relation (сторона: нейтрал, враг, союзник)
    +prop (тип: человек, животное, машины, танки, остальная техника)
    +state (dead - метрвый, operatable - управляемый, moveable - двужущийся, chassis_work - рабочее шасси, inhabited - обитаемый людьми, inactive - активный в данный момент на карте или нет, то есть физически присутствует, linked - соединенный с чем то: пушка с машиной, танк с платформой и т.д., user_control - находиться в данный момент под контролем игрока, fallen - упавший, выпавший но не уверен, examined - увиденный, осмотренный, discovered - обнаруженный, in_squad - находящийся в скваде, commander - назначен командиром)
    +with_item - с чем то в руках или в инвенторе (using - что то используется, existance - обладает этим в данный момент, amount - количество чего то)
    +broken_components - сломанные компоненты, подлежащие ремонту:
    Track left - левая гусеница,
    Track right- правая гусеница,
    Engine- двигатель,
    Body- корпус,
    Turret - башня,
    Gun- пушка,
    mgun-пулемет

    +destroyed_components - уничтоженные компоненты, не подлежащие ремонту.
    +movement_type - способ передвижения (обычно, лежа, на колене, вплавь)
    +entity_stuff - учитывается любой выбранный элемент из списка который может быть помещен в инвентарь
    +cover - если обозначено укрытие (в F2) то можно указать конкретно его
    +team - служебные обозначения
    +order - служебные команды которые в данный момент отданы юниту

    параметр +sort выбирается для более тонкой настройки, грубо говоря сортировки одних параметров от других.
    +amount - указывает на число необходимое в данный конкретный момент.

    - near – близость, благо не интимная одних объектов к другим, настраивается через distance, одним словом когда вы подошли слишком близко к кому либо он может рассердиться или испугаться, опять же от вашей фантазии и написанных триггеров.
    - crew – посаженные в технику – скажем триггер сработает когда в танк сели все нужные нам бойцы, тогда допустим он поедет.
    - linked – когда что либо, с чем либо или с кем либо соеденино. Можно понимать как угодно, но рекомендуется включить логику и фантазию.
    - see_enemy – есть в игре заданное расстояние когда враги видят друг друга и начинают пиф-паф, стояв за большим расстоянием они равнодушны и апатичны, стоят так их раз так и курят
    - see-actors – нечто среднее между командой near и see_enemy, работает в целом аналогично
    - arrival – для объектов/юнитов оказавшихся в том или ином состоянии, во многом схоже с условием entities
    - inventory – условие работающее с инвентарем, когда что либо скажем у солдата в руках, в вещ.мешке, у грузовика в кузове и т.д.
    - event – самое популярное и понятное условие для запуска триггера, event – случай, любой, произошедший до этого
    - trigger – триггер, работающий в данный момент, активный или нет
    - rand – честно не совсем понимаю как использовать это условие
    - signal – условный «сигнал» по которому запускается триггер, произошедший в определенной зоне:
    - movement – движение, перемещение
    - shot – выстрел
    - hit – попадание во что либо
    - injure – ранение кого либо
    - explosion – взрыв чего либо
    - mandie – кто то кони двинул
    - sound– какой либо звук, который можно задать либо он издается естественным образом.
    - ally_info – данные о юните, какие именно затрудняюсь сказать
    - task – задание, и его состояние: выполнено, провалено, либо оно просто пока показано (shown)
    - difficulty – в зависимости от выбранной сложности, и можно ставить триггеры, к примеру на hard’e – уменьшать здоровье, добавлять вражеков, убавлять полезный инвентарь, а на easy – аналогично наоборот – добавить аптечек и гранат в инвентарь, сделать бессмертными танки, и прочее. Считать такую модернизацию игры читерством или нет уже вам.
    - cmp_i – так и не понял это условие, хотя в игре встречал
    - mined – что либо заминировано, тут думаю понятно
    - waypoint_canmove – что то вроде фильтра, кого не нужно отправлять по вэйпоинтам, хотя не уверен, у меня по крайней мере это отменяет данную команду.
    - side – какая сторона должна подразумеваться, ну скажем ту за которую играем или которая должна на что то повлиять: русские, союзники, немчура
  2. Brend
    Оффлайн

    Brend Зарегистрированный

    Список команд триггеров - дополненный и исправленный:)
    actor - действующие лица, герои...
    - ables – способности:
    - crew – сидеть/управлять техникой
    - ally_crew – сидеть/управлять «дружественной» ему техникой (в том случае если есть союзники, но они под другим Player’om)
    - any_crew – сидеть/управлять любой техникой
    - repair – может ремонтировать
    - talk – может говорить
    - select – может быть выбран
    - fight – может сражаться
    - personage - добавляется при кооперативе
    - recruit - может быть призван (добавлен) в отряд
    - unmask – может быть замаскирован (кроме Player может выбрана функция mask_player, если mask_player совпадает с player’om противника тогда враги будут воспринимать его как своего)
    - emit_on_attack – высаживается при атаке
    - emit_passenger_on_enemy – высаживаются пассажиры при обнаружении врага
    - emit_crew_on_injure – высаживаются все сидящие в транспорте при ранении, повреждении
    - emit_on_mandie – высаживаются при условии что кто то убит
    - burning – юнит думает что горит
    - sinking - паникует
    - exploded – юнит взорван, уничтожен
    - action – действия
    - none - нет действия
    - select - выбор, выделение юнита
    - disable - по первой части оно отвечало за невозможность работы компонентов. Например вот такой код: Код
    {components "turret" disable work repair}
    Используется для принудительного ломания компонентов. Компонент "башня" не работает с возможностью\не возможностью починки. (что в данном примере примере стоит я не помню, вроде все-таки если есть repair - то чинить можем, иначе нет)
    - move - двигаться куда-либо (указать дополнительно вейпоинт видимо надо)
    - rotate - поворот в каком-либо направлении. дополнительно надо указать либо вейпоинт либо цель
    - cover – укрыться в любом подходящем месте
    - accelerate - ускорение
    - cancel - отмена
    - drop - бросить. например оружие или инвентарь
    - pour_in - слить горючее из техники в канистру или бочку(оные должны быть в руках).
    - pour_out - соответственно залить горючее в технику.
    - board - погрузиться в технику
    - emit - выгрузиться из техники
    - enter - войти
    - repair - чинить что-то
    - collect - подобрать что-то лежащее на земле.
    - examine - осмотреть танк или др. бронетехнику, ящик/солдата и т.д.
    - care - оказать помощь - воспользоваться медпакетом.
    - injection - инъекция морфия. Морфий используется в сетевой игре для оживления солдат.
    - attach - поставить.
    - detach - снять (например, с танка пулемёт)
    - reinforce – вызвать подкрепление
    - throw_ap_grenade - бросить противопехотную гранату
    - throw_at_grenade - бросить противотанковую гранату
    - throw_sk_grenade - бросить дымовую гранату
    - aimed_shot - выстрел снайпера
    - bazooka_shot - выстрел из базуки
    - suppression_fire - заградительный огонь
    - advance - выдвигаться куда-либо
    - attack - атаковать
    - attack_ground - атаковать землю (например для артиллерии)
    - attack_melee - атаковать врукопашную
    - heal - лечение
    - call_ally - вызов союзников
    - mine - минировать
    - burn - жечь спичками
    - climb - подняться по лестнице. Если рядом(пока не понятно в каком радиусе) есть лестница юнит залезет на второй этаж.
    - dynamite_activation - активировать динамит
    - follow - следовать
    - hagehog - это "противотанковый ёж". Эта команда отвечает за то, что бы инженер установил противотанковый ёж в нужном месте.
    - hidden_door - (?)
    - hide - скрыть юнита на карте до выполнения триггера, связанного с этим юнитом. Т.е. организация всяких засад, которые мы видим в домах. Дом пустой (на самом деле там стоят юниты под hide), а когда подходишь - они оттуда выбегают.
    - mine_detection - поиск мин
    - open_door - открыть дверь
    - open_gate - закрыть ворота
    - open_tent - открыть тент
    - plant - посадить куст. для снайперов видимо
    - pour_over -
    - put_dynamite - положить динамит
    - ring_post - подать сигнал ударом в рельсу (см. миссия Рошфор)
    - spread -
    - switch - переключить что-либо (детонатор, стрелку на ж/д)
    - turn_railway_switch_left - переключить стрелку ж/д налево
    - turn_railway_switch_right - переключить стрелку ж/д направо
    - use - использовать

    - actor_fire - открыть огонь
    - actor_component – состояние части объекта (техники) – рабочая, сломанная, уничтоженная
    - actor_to_cover – в укрытие
    - air_attack - воздушная атака
    - air_state - настройки параметров полета самолетов
    - animation - заставки движения юнитов
    список анимаций можно посмотреть при выделении юнита и нажатии W-5. AniPlay - name. Нужную анимацию прописываем во вкладке collage, если нужно чтобы она повторялась во вкладке flags ставим loop.
    Также можно задать параметры speed (< 1 медленнее, >1 быстрее), cicledelay - количество циклов повторений данной анимации, delay - время задержки между циклами.
    - board - команда юнитам залезть в технику
    - emit - команда юнитам вылезти из техники
    - mine - это хитрая команда, она отдается машинке с саперами. После её отдачи саперы вылезают из машинки, берут из машинки мины и начинают минировать указанную в команде зону. Для людей эта команда не работает. Для людей можно использовать action mine - работает так же как и команда пользователя, т.е. от текущего положения до указанного.
    - player - Передать юнита от одного игрока к другому.
    - talk - говорить, реплики. Если в графе text прописать текст.То при срабатывании триггера будет не только звук но и текстовый вывод(портрет солдата со сказанной фразой. Так реализуются диалоги скриптовые в игре. Для портрета надо ещё указать в селекте персонажа.
    - wait - ждать

    entity- объекты
    - animate – как ни странно, снова анимация объектов
    - effect – эффекты
    список эффектов:
    crush - что либо разломано или раздроблено на части, или раздавлено
    die - мгновенная смерть
    up - что либо поднимается вверх (например мишень на тренировочных полигонах)
    explosion - объект или юнит считается взорванным, вернее взрывается тут же после срабатывания команды
    open / open_disable / open_enable - что либо открыто (ворота, дверь, люк), и соотвественно может ли это быть окрытым или нет
    close - то же самое закрыто
    break - в этот момент ломается (стены, заборы, лед)
    burn / _burn / burn_1(2)(3)_start - что либо загорается
    cut_wheels - шасси самолета отбрасываются
    activate - объект активируется (мина, динамит)
    start - старт, чтобы запустить целый процесс, например юзается при пуске скрипта с парашютистами
    stop - стоп
    move_front / move_back - такое увидел у кораблей, движение вперед/назад
    update_land - так и не понял назначение этого эффекта
    switch - переключатель, если нужно без помощи переключить стрелку на ж/д
    disable_touch / enable_touch - является ли объект ощутимым или нет
    - entity_state - состояние объекта
    - inventory - инвентарь, то бишь содержание
    - linker - позволяет привязывать/отцеплять пушки к технике, солдат к машине и т.д.
    - rt_function – вызывается функция из списка доступных при выделении юнита и нажатии W--->5 (aniplay)

    generic - команды управления самими командами и их последовательностью
    - call- вызвать функцию (см. W--->5)
    - con - условие
    - if - условие "Если". Является папкой
    - loop - цикл (папка для команд), повторяющийся нужное количество раз.
    - select - отдельный выбор объектов. Что б впоследствии в других командах не вводить одни и те же значения по многу раз, а использовать тип выбора current
    - set_i - изменения значения переменной (variable). Умножение, сложение, просто приравнивание к чему-то и т.д. Переменные задаются в F3-F9 и там есть строчка vars
    - switch - выбор из списка условий (можно сказать расширенное "if")
    простейший пример такого скрипта:

    switch
    if case rand 0.25
    then print "A"
    default
    switch
    if case rand 0.33
    then print "В"
    default
    switch
    if case rand 0.5
    then print "С"
    default
    print "D"
    Этот скрипт будет выдавать буквы ABCD с равной вероятностью...

    - thread - (??)
    - while - что-то вроде цикла. Внутренние команды будут выполнятся по кругу до тех пор, пока условие в while'е выполняется.
  3. Brend
    Оффлайн

    Brend Зарегистрированный

    other - прочее
    - actor_recon – юнит сразу «напрягается» и начинает осматриваться, искать, короче состояние крайней подозрительности.
    - actor_to_waypoint - юнит бежит к вэйпойнту (через эту команду удобно реализовывать клонирование юнитов, их телепортацию, когда нужно реализовать повторение команды)
    - autoassign – автоназначение – та самая пресловутая команда для создания кооператива в игре.
    - autosave - автосохранение
    - extraspawn - спаун юнитов. смысл команды окутан покровом тайны :)
    - fade – затемнение – назовем эту функцию условно занавес, удобна при смене игровых роликов (камеры), при ON – экран темнеет, при OFF сначала черный – затем светлеет, в зависимости от заданного числа time плавно или резко
    - mp_event - относящееся к мультиплееру (возможно)
    - objective_progress
    - placement – расположение, удобная фунция для телепортации нужных объектов в нужное место, задали mid одного юнита, задали в target – mid другого юнита – функция сработала – первый юнит по соседству со вторым.
    - reinforcement – подкрепления, настраиваются сначала в F9, затем этой командой вызываются.
    - squad_to_waypoint - отряд бежит к вейпоинту
    - throw_off - отбросить/бросить (некая анимация отбрасывания юнитов при взрыве), можно настроить длину, высоту, количество переворачиваний, умрет ли после падения юнит или нет, работает только для людей)
    - unlink - разъединить линки(когда танк стоит на платформе и его надо снять используется эта команда)

    scene - сцены, оболочка игры
    - environment - погода, время года и суток, одним словом окружение (начальное состояние на карте настраивается и выбирается в F3-F6). С помощью этой команды можно например сделать постепенный рассвет и т.д.
    - fog_in_zone - включение тумана в определенной зоне
    - fog_mode - включить/выключить туман войны
    - game_speed - скорость игры
    - gameover - завершение игры
    - gamestatus - состояние игры
    - music - музыка
    - scenario – команда для текста сопровождающего игру, запуск видео роликов и камеры для проигрывания собственных заставок.
    - set_clip - смена зон для камеры, юнитов, физики и т.д. В общем то, что находится в F2-3
    - sound - проигрывание звука
    - spawn - спаун юнитов/объектов. Создание на вэйпойнтах чего угодно. Будь то взрыва, человека, техники, и прочего.
    - task - смена состояние задания
    - timer - таймер (выставлять время обратного отсчета)

    squad - команда, отряд
    - squad - команда с рядом вкладок:
    assign - автоназначение сквада когда юниты в нем находятся под управлением AI
    add - добавить юнита в сквад
    dismiss - распустить сквад, интерпретация команды "вольно" :)
    commander_set - присвоить командира отряду, отряд при работе скриптов после этой команды ведет себя более осознанно, если так можно выразиться.
    commander_drop - убрать командира.
    drop_task - снять задание у сквада.
    drop_name - сбросить название сквада.
    return_to_user - сквад передается юзеру, если я правильно понял.
    exclude - исключить кого то из сквада.
    - squad_create - создать отряд, важный момент, это команда юзается когда юниты которых надо объеденить в сквад находятся под управлением user'a.
    - sguad_dismiss - расформировать отряд
    - sguad_spread - расположение отряда (типа дислокация)
    - sguad_state - состояние отряда

    actor_state - настройки юнитов
    - fire_mode (hold – не стрелять, return – стрелять в ответ, open – свободный огонь по своему усмотрению)
    - move_mode (hold – не двигаться, zone – двигаться в переделах зоны, free – свободное перемещение)
    - move_radius – задается число при выборе move_mode – zone – в пределах которого будет двигаться юнит
    - weapon_prepare – ON оружие в руках, OFF – оружие убрать

    delay - задержка перед выполнением следующей команды в секундах
    delete - удаление юнита
    event - изменение статуса события
    trigger - изменения статуса триггера
    waypoint - заставляет юнита или отряд бежать по вейпоинту. Либо остановиться и не бежать (suspend), либо снова бежать (resume). Последние два параметра работают - если у юнитов уже есть вейпоинт назначение.


    Просьба ко мне всем начинающим модмейкерам начинать изучение раздела с Общего FAQ'a и с этого топика.

    В нем собрана общая информация о списке команд триггеров редакторов ВТВ 2 - ВТВ2 БпО, условия работы триггеров, и основные объемные "списковые" команды.

    Также остальная ключевая информация по работе редактора собрана в следующих разделах:

    Редактор карт: Ландшафтное дело

    Свойства техники в ВТВ2/БПО

    Сборка модели танка в 3DSMAX

    Примеры скриптов

    Создание внутриигровых роликов


    2 Модераторы или Админы: объедините пожалуйста все 3 сообщения в одно
  4. BAD
    Оффлайн

    BAD Зарегистрированный Best Way

    Отлично. Предлагаю в этой же теме задавать насущные вопросы по редактору.
    В свободное время постараюсь на них отвечать.
  5. zed
    Оффлайн

    zed Зарегистрированный

    Подскажите как сделать подкрепления как в миссии Севастополь,За нами Москва,Зееловские высоты.Если можно опишите как можно подробнее.
  6. Т@нкист
    Оффлайн

    Т@нкист Зарегистрированный

    как сделать так чтоб патруль из 4 человек ходил по заданному пути
  7. Brend
    Оффлайн

    Brend Зарегистрированный

    вот первый

    и второй подробные мануалы по созданию подкреплений
  8. Т@нкист
    Оффлайн

    Т@нкист Зарегистрированный

    Я только начал работать с редактором и не понимаю как сделать окопы для солдат и танков.ресурсы я нашел,а как углубить окоп не понимаю(когда лепишь ресурс на ровную поверхность видна только верхушка окопа).
  9. HIMZA
    Оффлайн

    HIMZA Зарегистрированный

    Подгрузишь в игру будет всё ОК.Сходи на "Боевой народ",посмотри в теме "Мастерская Maps&Mods"(кажется так называется)там всё от простейшего расписано.С примерами.
    Последнее редактирование: 25 май 2008
  10. Т@нкист
    Оффлайн

    Т@нкист Зарегистрированный

    спасибо,а то не получалось никак.
  11. Maestro
    Оффлайн

    Maestro Зарегистрированный

    1. Расставляем вейпоинты, по которым будет двигаться объект и в
    последнем вейпоинте, к его команде прописываем delete.
    2.Теперь, когда с вейпоинтами покончено, преступаем к триггерам!
    Создаем триггер под названиям clone и в строке autoreset ставим галочку
    в его командах прописываем:
    2.1 waypoint.
    Who=actor
    Actors/tag=clon
    Action/waypoint= (здесь прописываем номер вейпоинта по которому объект будет начинать путь)
    Action/clone= (ставим галочку!)
    Action/approach= teleport & rotate
    2.2 delay.
    Time= (здесь время за которое объект проезжает и потом все повторяется)
    2.3 trigger.
    Name=clone
    On (не чего не делаем)

    Проверить как обьект ездит нажав старт.
  12. Т@нкист
    Оффлайн

    Т@нкист Зарегистрированный

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

    BAD Зарегистрированный Best Way

    Простейшее условие по зоне.
  14. трудяга
    Оффлайн

    трудяга Best Way Команда форума Администратор

    Проверками по зоне не увлекайтесь, а то тупить будет сильно.
  15. трудяга
    Оффлайн

    трудяга Best Way Команда форума Администратор

    Пример скрипта

    Решила вспомнить как это делать...
    Шуточная мини-миссия: "Элитные войска в душном вагоне не ездят":D

    Описание: Посадка в поезд, с набиванием людей в количестве большем, чем количество посадочных мест.
  16. BAD
    Оффлайн

    BAD Зарегистрированный Best Way

    Проверка по тэгу в зоне тупит меньше, чем проверка по тэгу без зоны ;)
  17. zed
    Оффлайн

    zed Зарегистрированный

    Я создал подкрепления,но очки почемуто не пополняются,только отнимаются.Подскажите как сделать чтобы очки пополнялись: 1)со временем; 2)только за уничтожение вражеских юнитов.
  18. Brend
    Оффлайн

    Brend Зарегистрированный

    ну что мешает сделать пополнение очков с некой периодичностью, если у тебя скажем total 100 и разные подкрепления отнимают разное количество очков, сделай скажем раз в 20 секунд пополнение на 20 очков.
    по количеству убитых юнитов можно сделать следующим образом:
    конкретный пример выложенный на форуме БН
    ну это так примитивно. можно сделать более плавно, как в Севастополе:
    объясню попроще - принцип тот же.
    стартуем триггер по какому то eventu, далее в зависимости от сложности добавляем все время в течение действия подкреплений каждые 5 секунд по 1 очку на easy, каждые 6.5 секунд на normal, каждые 8 секунд на hard.
    все просто, принцип тот же с зацикливанием триггера через delay. Пытливый ум найдет триггер в миссии Севастополь - 1line - give_reinforcement1 или 2line - give_reinforcement2. Думаю все будет понятно.
  19. zed
    Оффлайн

    zed Зарегистрированный

    Незнаю где задать вопрос,поэтому задам здесь.Подскажите можно ли вытащить из игры картинки с изображением солдат,те которые появляютя справа в нижнем углу при выделении солдата,там ещё имя и фамилия солдата написана.Если да , то как?
  20. Aront
    Оффлайн

    Aront Зарегистрированный

    zed
    Портреты лежат в "resource/game.pak/interface/scene/portrait/...". Файл game.pak это обычный zip-файл.

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