Команда SendStringEvent - вызывает определенное событие игры, описываемое строкой: SAY. Известные нам события это: Реплики на игровых зонах, Немедленный старт диалогов на брифинг-зоне, Запуск окна обучающего текста, выделение рамкой определенных участков интерфейса игры во время обучения управления игрой.
В каждом случае форма построения строки SAY событий разная. Например, чтобы вызвать какой-то диалог немедленно, то есть обработать событие на брифинг-зоне с каким-то условием, эту команду нужно написать следующим образом: SendStringEvent(0,"briefing m12"). Если набрать команду из консоли игры, то немедленно состоится разговор между Заком и Бабуром, разумеется, если Бабур присутствует на брифинг-зоне, так как переменная диалога "m12" принадлежит макросу этого диалога, в теле которого присутствует имя Бабура как члена разговора, к которому должен приблизиться главный герой. Соответствие переменной диалога к имени персонажа прописывается в скрипте, в блоке: Script #OnBriefingComplete.
Например, чтобы реализовать в игре реплику сразу после того, как будет отключена пирамида в Предгорьях, нужно сделать достаточно много изменений в ресурсах игры, а именно. Нужно определить, как должна звучать реплика, как из уст Орка, или просто как эхо на игровой зоне. Сейчас в ПЗ эта реплика предусмотрена как реплика орка. На игровой зоне Предгорий должен был бы быть персонаж «Орк стражник» с внутренним именем «OrcPyr» и кодом NID: 1000309027, а в таблице «ACKS1», в реплике «s10», вместо имени в поле «NAME» - «OrcPyr», должен быть прописан прототип орка, который будет добавлен на игровую зону. Так же, в таблицу NPCs нужно добавить строку и прописать в ней расширенные параметры прототипа юнита, которым будет Орк стражник. Так как, если добавить «Орка стражника» как персонаж на игровую зону и при этом у такого персонажа отсутствуют предустановленные расширенные параметры (персонаж определяется типом NID-кода – десятизначное число), то Орк будет без здоровья для отдельных частей тела и будет, в общем-то, неправильным объектом.
Если решить, что нужно сделать реплику как «Эхо» на игровой зоне. То эту реплику-файл: «AcksOrcPyrScenarioOrcPyr.wav», в базе данных звуков: sfx.res, нужно перенести в: «AcksHHScenario OrcPyr.wav». В database.res, в таблице: «ACKS1», в поле: «SFX» нужно так же соответственно изменить путь к файлу, а в поле: «NAME», изменить название прототипа: «OrcPyr», на: «Human Hero» . В файле «zone3obr.mob», в теле триггера: «VTriger#0#318», изменить команду: «SendStringEvent( 0, "say s10 OrcPyr" )» на «SendStringEvent( 0, "say s10 Hero" )». После таких изменений, после отключения ловушки, должна прозвучать реплика как бы «Эхо» на игровой зоне.
В каждом случае форма построения строки SAY событий разная. Например, чтобы вызвать какой-то диалог немедленно, то есть обработать событие на брифинг-зоне с каким-то условием, эту команду нужно написать следующим образом: SendStringEvent(0,"briefing m12"). Если набрать команду из консоли игры, то немедленно состоится разговор между Заком и Бабуром, разумеется, если Бабур присутствует на брифинг-зоне, так как переменная диалога "m12" принадлежит макросу этого диалога, в теле которого присутствует имя Бабура как члена разговора, к которому должен приблизиться главный герой. Соответствие переменной диалога к имени персонажа прописывается в скрипте, в блоке: Script #OnBriefingComplete.
Цитата: (Отступление: То же самое событие: «вызов диалога», можно реализовать при посещении брифинг-зоны, например, проинициализировать переменную: GSSetVar(0,"b.bz1g.m12",1). В этом случае, при следующем посещении брифинг-зоны Поселка, автоматически стартует диалог с Бабуром. И если непосредственно инициализировать переменную: GSSetVar(0,"b.smith.m12",1), то у Персонажа Бабура появится строка диалога, само событие диалога которого можно вызвать по выбору текста в меню этого персонажа. Макрос последовательности разговора, анимация прописаны в файле m12, базы texts.res. Выбор локализации имени персонажа, производится по уникальному NID-коду.)На игровой зоне (не на брифинг зоне и не в лагере) можно активировать событие реплики, для главного героя. При этом, можно отдать команду блокировки персонажа, пока должен быть слышен диалог. Например, SendStringEvent("say_block R1 Hero"). Для реплик на игровой зоне в строке параметра должно быть три значения, разделенные разделителем – пробел. Параметры вызова события в строке: 1-команда, 2-реплика, 3 - Персонаж. Реплики будут воспроизводиться только для персонажей, с правильным NID-кодом, где в пути к имени файла реплики должно быть ключевое слово "Scenario". Так же, необходимо, что бы в таблице «ACKS1», в поле «NAME», было имя прототипа соответствующего Персонажа. На данный момент в «Проклятых Землях» существует ошибка в базе связи озвучивания реплик: «ACKS1», где для всех реплик не главного героя, вместо прототипа персонажа, прописано само имя Персонажа. Предположительно: Активация данного события должна предусматривать проверку - есть ли персонаж на игровой зоне (Жив ли?).
Например, чтобы реализовать в игре реплику сразу после того, как будет отключена пирамида в Предгорьях, нужно сделать достаточно много изменений в ресурсах игры, а именно. Нужно определить, как должна звучать реплика, как из уст Орка, или просто как эхо на игровой зоне. Сейчас в ПЗ эта реплика предусмотрена как реплика орка. На игровой зоне Предгорий должен был бы быть персонаж «Орк стражник» с внутренним именем «OrcPyr» и кодом NID: 1000309027, а в таблице «ACKS1», в реплике «s10», вместо имени в поле «NAME» - «OrcPyr», должен быть прописан прототип орка, который будет добавлен на игровую зону. Так же, в таблицу NPCs нужно добавить строку и прописать в ней расширенные параметры прототипа юнита, которым будет Орк стражник. Так как, если добавить «Орка стражника» как персонаж на игровую зону и при этом у такого персонажа отсутствуют предустановленные расширенные параметры (персонаж определяется типом NID-кода – десятизначное число), то Орк будет без здоровья для отдельных частей тела и будет, в общем-то, неправильным объектом.
Если решить, что нужно сделать реплику как «Эхо» на игровой зоне. То эту реплику-файл: «AcksOrcPyrScenarioOrcPyr.wav», в базе данных звуков: sfx.res, нужно перенести в: «AcksHHScenario OrcPyr.wav». В database.res, в таблице: «ACKS1», в поле: «SFX» нужно так же соответственно изменить путь к файлу, а в поле: «NAME», изменить название прототипа: «OrcPyr», на: «Human Hero» . В файле «zone3obr.mob», в теле триггера: «VTriger#0#318», изменить команду: «SendStringEvent( 0, "say s10 OrcPyr" )» на «SendStringEvent( 0, "say s10 Hero" )». После таких изменений, после отключения ловушки, должна прозвучать реплика как бы «Эхо» на игровой зоне.