???
Математика на уровне МГУ

Показано с 1 по 10 из 10

Тема: Триггеры редактора.

  1. #1

    Триггеры редактора.

    По триггерам довольно внятно даны объяснения в уроках, тем не менее есть несколько нюансов. В редакторе есть параметр для триггера: триггер срабатывает с "1" в "0".
    Как узнать в каком состоянии находится триггер? Как его заставить перейти в определенное состояние, например в «1»? Интересно, в каких практических случаях данное свойство триггера используется.
    Слава Україні!
    Героям Слава!

  2. #2

    Ответ: Триггеры редактора.

    Похоже разобрался, иногда полезно более внимательно читать документацию
    Триггер по умолчанию находится в положении "0", при срабатывании переключается в "1".
    Данное свойство я использовал для правки миссии №3 ИС-2 (с. Чепель 15:40).
    Второй этап: отразить атаку противника на мост№2. Допустим у противника есть подразделения:
    1. два танка "тигр"
    2. три танка "пантера"
    3. взвод гренадеров
    Создаем для подразделений №1,2 по триггеру tr_wer_br1, tr_wer_br2, которые работают с параметром "эффективность подразделения уменьшилась". Пусть "эффективность уменьшилась" в 4 раза. Далее создаем еще один третий триггер tr_wer_br3, которому задаем логическую операцию: tr_wer_br1 & tr_wer_br2.
    Третий триггер будет срабатывать, когда логическое выражение будет истинно, т.е. равно "1". Таким образом движок игры будет отслеживать работу третьего триггера и как только эффективность подразделений №1,2 уменьшится в 4 раза, сработает (1*1=1). (Можно поэкспериментировать с уменьшением). Данная особенность очень удобна тем, что более нет нужды выискивать "подранков" с целью добить их окончательно. Ведь снижение эффективности не означает, что танк уничтожен, он просто подбит и уже не может далее выполнять поставленную задачу. В результате получаем "зачет" по заданному этапу миссии и переходим к следующей задаче. Когда миссия завершена успешно, можно нажать "продолжить" и в свое удовольствие расправиться с оставшимися "подранками"
    Вложения Вложения
    • Тип файла: zip cbk03.zip (9.9 Кб, Просмотров: 98)
    Крайний раз редактировалось ntalex; 12.04.2010 в 23:53. Причина: upd
    Слава Україні!
    Героям Слава!

  3. #3

    Re: Триггеры редактора.

    Триггер для текста.
    При создании миссии, иногда необходимо дать игроку сообщение. Ну, например:
    "Двигайтесь в направлении село Шуховцево."
    Проще всего создать сообщение при достижении определенной стадии миссии:
    Код:
    cs_main()
    {
    ...
    //1-я строка - задача
    ext, add_misobj, order2, zone_1500, 1, txt_aim_01, txt_aim_01_sh;
    //2-я строка - добавление текста
    ext, add_text, txt_ldm_add_text_AIM1500, 0xffd0c0c0, 15, 0;
    ...
    }
    где
    строка №1
    ext - общая команда
    add_misobj - добавить цель миссии
    order1 – приказ №1
    zone_1500 – название контура
    1 – состояние задания, где
    1 – активное
    2 – провалено
    3 – выполнено
    4 – информация

    txt_aim_01 – текст в игре
    txt_aim_01_sh – текст в брифинге
    строка №2
    ext - общая команда
    add_text – добавить текст
    txt_ldm_add_text_AIM1500 – текст в игре(прописан в файле ***loc_data.text)
    0xffd0c0c0 – калор текста
    15 – время появления текста, сек.
    0 - ?
    Как видим, появление текста жестко заскриптовано. Только по достижении определенной стадии миссии, текст появится на єкране. Второй вариант - создать сообщение, которое появляется после прошествия определенного времени:
    Код:
    cs_radio()
    {
    nop;
    wait_time, 30;
    ext, add_text, txt_ldm_my_info_text_01, 0xffd0c0c0, 25, 0;
    }
    Но в таком варианте тоже присутствуют ограничения, в данном случае по времени. Третий вариант - воспользоваться триггером текста, т.к. подчас у создателя миссии есть необходимость дать игроку промежуточную информацию, которая не должна ограничиваться рамками вариантов №1,2. Порядок создания:
    1. В редакторе создаем контур для триггера, например с названием: trig_cont_txt_01.
    2. Переходим на вкладку триггеров и создаем триггер: trig_check_txt_01. (Он будет включаться, когда танк игрока попадает в контур trig_cont_txt_01).
    3. Следующим будет наш текстов. триггер: trig_check_txt_02, параметр "текстовое сообщение". В строке параметров задаем произвольную текстовую переменную, например: txt_message_01.
    4. Как только сработает тригер trig_check_txt_01, следующим будет текстовое сообщение trig_check_txt_02. Текст заводим в файл ***loc_data.text.
    Код:
    loc_rus()
    {
    ...
    txt_message_01() {=Радиосообщение=\nДвигайтесь в направлении село Шуховцево.\n;}
    ...
    }
    5. Теперь правим файл скриптов *** scripts.engscr. Заходим в блок триггеров и делаем небольшую правку нашого текстового тригера:
    Код:
    triggers()
    {
    ...
    trig_check_txt_02, 0x2000d, txt_message_01, 0xffd0c0c0, 25.000;
    ...
    }
    где
    0xffd0c0c0 - калор текста
    25.000 - время появления текста, сек.
    Крайний раз редактировалось ntalex; 14.11.2011 в 04:44. Причина: upd
    Слава Україні!
    Героям Слава!

  4. #4
    Механик
    Регистрация
    16.07.2004
    Адрес
    Киев
    Сообщений
    338

    Re: Триггеры редактора.

    Камрады, как заставить пехоту в редакторе залезть в траншею?

  5. #5

    Re: Триггеры редактора.

    Вам следует нажать иконку "изначально подразделение находится в окопе".
    Слава Україні!
    Героям Слава!

  6. #6
    Механик
    Регистрация
    16.07.2004
    Адрес
    Киев
    Сообщений
    338

    Re: Триггеры редактора.

    Пробовал. Нахожу на полигоне траншею, создаю на ней небольшой контур "рус_позиция", помещаю в контур без всяких скриптов подразделение "Отделение ПТР" и жму кнопку "изначально подразделение находится в окопе". И выходит так, не в окопе, ниразу
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	PTR.JPG 
Просмотров:	146 
Размер:	45.7 Кб 
ID:	123388  

  7. #7

    Re: Триггеры редактора.

    Судя по приведенной картинке, очевидно что контур для пехотинцев некорректно расположен в окопе. Его следует аккуратно в ручную уложить вдоль дна окопа. Рекомедую видеоурок lesson07_divisions.

    Оффтопик:
    ps
    Полагаю вам следует создать отдельную тему с названием "размещение подразделений в окопе" и попросить модератора перенести туда наши сообщения, поскольку они не соотносятся с триггерами редактора.
    Слава Україні!
    Героям Слава!

  8. #8
    Механик Аватар для 1ceman
    Регистрация
    29.07.2006
    Адрес
    34300
    Сообщений
    359

    Re: Триггеры редактора.

    Цитата Сообщение от ntalex Посмотреть сообщение
    Триггер для текста.
    Код:
    cs_radio()
    {
    nop;
    wait_time, 30;
    ext, add_text, txt_ldm_my_info_text_01, 0xffd0c0c0, 25, 0;
    }
    Но в таком вариенте тоже присутствуют ограничения, в данном случае по времени.
    На всякий случай напоминаю - блоков cs_radio может быть и не один . Т.е. может быть блок cs_radio1(), cs_radio2() и т.д.
    Кроме того, можно не ограничивать себя в этом блоке только ожиданием времени. Можно добавить и ожидание триггера.

    Когда-то давно приводил расшифрованный и дополненный блоком cs_radio() скрипт для миссии из видео-уроков
    http://sukhoi.ru/forum/showthread.ph...11#post1038611 (во вложении)

    Привожу фрагмент логики скрипта из блоков cs_main() и cs_radio()

    Скрытый текст:
    Код:
    cs_main()
    {
    
    //Добавляем Брифинг ДО начала миссии
    //txt_mis_order - "Боевая задача" (фиксированный текстовой идентификатор, можно не менять)
    //txt_ldm_brief_main1 - свой текст боевой задачи (ищем в файле new_mission_01_loc_data.text)
    //Разумеется сам идентификатор "txt_ldm_brief_main1" называйте как удобно
    	ext, add_misobj, brief, add_map_selo, 4, txt_ldm_brief_main1, txt_mis_order;
    
    //Здесь загрузку прерываем
    	nop;
    
    //Все что далее грузится уже после начала миссии
    //Добавляем на всякий случай дополнительную точку на местности,
    //чтобы игрок ориентировался, где находится село
    //add_map_wp_selo - контур на местности
    //txt_ldm_map_order_selo - тестовый идентификатор с надписью "с. Шестаково" (ищем в new_mission_01_loc_data.text)
    	ext, sel_waypoint, add_map_wp_selo, 0xff00a040, txt_ldm_map_order_selo, 0;
    
    //Добавляем первое задание "order1" - "Передовая позиция" 
    	ext, add_misobj, order1, hill, 2, txt_ldm_add_order_capture_hill1, txt_ldm_add_order_capture_hill_sh, 0;
    
    //и Ждем триггер "rus_move"
    	ext, wait_tr, rus_move;
    
    //После срабатывания триггера "rus_move"
    //Изменяем цвет зоны "hill", т.е. передовой позиции с синего на красный
    	ext, change_mo_cols, hill, 0xc0800000, 0xc0800000;
    
    //Помечаем, что первое задание (order1) выполнено
    	ext, change_misobj, order1, 3;
    
    //Добавляем второе задание "order2" - "Шестаково"
    	ext, add_misobj, order2, selo, 1, txt_ldm_add_order_capture_selo1, txt_ldm_add_order_capture_selo_sh, 0;
    
    // Ждем триггер "rus_siege2"
    	ext, wait_tr, rus_siege2;
    
    // после этого изменяем цвет зоны "selo"
    // и помечаем, что задание "Шестаково" выполнено
    	ext, change_mo_cols, selo, 0xc0800000, 0xc0800000;
    	ext, change_misobj, order2, 3;
    }
    Код:
    //Добавляем блок "cs_radio"
    //ВНИМАНИЕ!! Этого блока нет в оригинальном файле скрипта "Миссии из видеоуроков"
    //Правильнее выводить текст в отдельном блоке, что бы не смешивать
    
    cs_radio()
    {
    //Отмечаем, что все дальнейшее происходит после начала миссии (т.е. после того как игрок нажмет кнопку продолжить)
    	nop;
    //Добавляем текст на консоль через 20 секунд после начала миссии
    	wait_time, 20;
    	ext, add_text, txt_ldm_add_text_consol1, 0xffd0c0c0, 15, 0;
    
    //и Ждем триггер "rus_move"
    	ext, wait_tr, rus_move;
    
    //После срабатывания триггера "rus_move"
    //Ждем еще 15 сек и добавляем текст на консоль
    	wait_time, 15;
    	ext, add_text, txt_ldm_add_text_consol2, 0xffd0c0c0, 15, 0;
    }

    Таким образом можно, например, создать триггер ожидающий появления танков противника в контуре, и вывести в момент срабатывания сообщение, что там-то (например на севере) обнаружены танки противника и т.д.
    Крайний раз редактировалось 1ceman; 15.12.2010 в 10:56.
    http://www.snowball.ru/1943/
    дополнительный помощник младшего заместителя вспомогательного Курьера

  9. #9
    Механик
    Регистрация
    16.07.2004
    Адрес
    Киев
    Сообщений
    338

    Re: Триггеры редактора.

    Цитата Сообщение от ntalex Посмотреть сообщение
    Судя по приведенной картинке, очевидно что контур для пехотинцев некорректно расположен в окопе. Его следует аккуратно в ручную уложить вдоль дна окопа. Рекомедую видеоурок lesson07_divisions.

    Оффтопик:
    ps
    Полагаю вам следует создать отдельную тему с названием "размещение подразделений в окопе" и попросить модератора перенести туда наши сообщения, поскольку они не соотносятся с триггерами редактора.
    Спасибо.

  10. #10

    Re: Триггеры редактора.

    Тригер проверки.
    Допустим поставлена задача:
    Из контура „start” доехать в контур „zone_A”, затем в контур „zone_B” и вернуться назад в контур „start”. Изначально танк игрока находиться в контуре „start”.
    Заводим на все контура по тригеру, с параметром „танк игрока в контуре”:
    1. tr_start
    2. tr_ zone_A
    3. tr_zone_B
    Создаем тригер „успешного окончания миссии” с логической операцией „&” умножение.
    4. tr_victory = tr_start & tr_ zone_A & tr_ zone_B
    Условие будет истинно, если все тригера переуключаться в „1”.
    Вся хитрость заключается в том, что тригер tr_start задается для многократного переключения, другие для однократного.
    Итак, вначале переключается в „1” тригер tr_start, но условие не истинно, т.к. игрок не посетил два контура.
    tr_victory != 1 & 0 & 0
    Как только игрок покинул контур start, тригер tr_start вновь переключается в „0”. После посещения двух контуров, возвращаемся назад (tr_start вновь в „1”) и получаем зачет миссии:
    1 = 1 & 1 & 1
    т.е. условие истинно.
    Крайний раз редактировалось ntalex; 14.11.2011 в 04:48. Причина: fix
    Слава Україні!
    Героям Слава!

Ваши права

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