23.03.2004, 17:26 (Сообщение последний раз редактировалось: 24.03.2004, 11:04 sun.)
Александр
В твоем случае, команда PlayAnimation не нужна. Эта команда предназначена для принудительной анимации персонажей на игровой зоне. Как правило, применяется эта команда для анимации тренирующихся воинов. Первый параметр: Имя расы юнита. Второй параметр, имя анимации из таблицы параметров анимации рас, в базе database.res*.adb, а так же, значение второго параметра команды PlayAnimation совпадает с именем в базе данных figures.res
В макросе диалогов есть параметр ANIMATION отвечающее за анимацию во время диалога.
Sun, путь оказался не ложным. Просто я пользуюсь стартером и через него указывал путь к текстовым ресурсам, а он почему-то не поддерживает этот префикс Pers*, ( странно ) поэтому и возникала проблема. Нужно было просто запаковать в обычный texts.res в директории ПЗ.
Еще раз большое спасибо.
24.03.2004, 18:38 (Сообщение последний раз редактировалось: 24.03.2004, 18:43 Jet.)
Alecron,24 Марта 2004, 05:13 Написал:Sun, путь оказался не ложным. Просто я пользуюсь стартером и через него указывал путь к текстовым ресурсам, а он почему-то не поддерживает этот префикс Pers*, ( странно ) поэтому и возникала проблема. Нужно было просто запаковать в обычный texts.res в директории ПЗ.
Еще раз большое спасибо.
По подробнее опиши, пожалуйста, что и как ты пытался сделать?
Мы постараемся исправить ошибку, если она имеется....
А в принципе и описывать нечего. B)
Взял из texts.res файл pers Nalo и заменил его на pers Nalo1, запаковал его в texts.res и положил в папку Res своего мода, далее вызвал функцией AddUnitToserver наложницу, но с именем PersName Nalo1, как показал Sun. Имени у наложницы нет. А когда запаковал в директорию ПЗ, то имя появилось. Как я понял, имя ресурса Pers* не берется из директории Стартера.
Sun, я решил попробовать реализовать пока одну вещь из перечисленных в первом посте темы, а именно - отключённые реплики. Но где они отключены? В датабазе они прописаны, затем я посмотрел в мобе, взяв для примера отключённую реплику орка после выполнения квеста "Шаман и пирамида", реплика в мобе прописана.
25.03.2004, 17:02 (Сообщение последний раз редактировалось: 25.03.2004, 17:05 sun.)
Команда SendStringEvent - вызывает определенное событие игры, описываемое строкой: SAY. Известные нам события это: Реплики на игровых зонах, Немедленный старт диалогов на брифинг-зоне, Запуск окна обучающего текста, выделение рамкой определенных участков интерфейса игры во время обучения управления игрой.
В каждом случае форма построения строки 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" )». После таких изменений, после отключения ловушки, должна прозвучать реплика как бы «Эхо» на игровой зоне.
Напишу все таки, может прояснится ситуация.
Sun, давно уже спрашивал про Глобальную карту и про зоны перехода, но так и не смог разобраться почему модель поселка на Глобальной карте выбирается вместе с самой зоной Развалины.
В самом map.txt я вообщем более менее разобрался и активировал зоны перехода, которые были отключены разработчиками, также даже пробовал дописывать свои зоны, изменяя входы/выходы с поселка к ним.
Позже я заметил, что в скрипте зоны 1, перед тем как войти в Поселок Заком, есть скрипт, который делает зону уже как бы пройденной и отмечает ее темным цветом: GSSetVarMax( 0, "z.gz1g" , 2 )
Тогда я убрал эту переменную и на Глобальной карте, зона Развалины стала выбираться курсором и подсветкой отдельно от модели Поселка, однако при наведении курсора на Поселок они выделяются вместе. Любые изменения переменной: GSSetVarMax( 0, "z.bz1g" , 2 ), на 1, или на 0, приводят к тому, что модели Поселка на Глобальной карте нет.
Вот пример для Materials.txt
Total $
Calc $
Price Mod
Absorption Mod - Все подразделы
Crippled
Comments и xxx - Все подразделы
Если ты сможешь мне указать куда они запаковываются, то значит я ошибся. Но я их в упор в запакованной базе не видел. Даже когда я запаковывал две базы с разными этими параметрами, то после полного их сравнения я не нашел разницы...
Что есть то есть, того что было не вернуть, не изменить ни дня. Черный Обелиск "Дом желтого сна (часть 2)"
CAHEK7
Кажется, ты ответил не в той теме, где я тебя спрашивал.
Ты перечислил поля таблиц. Поля таблиц в конструкторе могут быть произвольные, такие как вычисляемы поля, Total, Calc или Комментарий.
Параметры, это значение строк в полях. То о чем мы говорили, о значениях в полях, константы поля “Lists Stats Modifiers”, или подобные константы или значения. То есть параметры неких объектов базы данных. Мне это нужно для энциклопедии.
25.03.2004, 21:59 (Сообщение последний раз редактировалось: 25.03.2004, 22:29 sun.)
Alecron
В файле скрипта zone1.mob, в: Script VTriger#0#169, Script VTriger#0#188, Script VTriger#0#194 измени строку GSSetVarMax( 0, "z.gz1g", 2 ) на GSSetVar( 0, "z.gz1g", 1 )
Или набери в консоли команду @GSSetVar( 0, "z.gz1g", 1 ) (без …MAX…).
Поняли, что ты спрашиваешь….
Брифинг, находящийся на игровой зоне подсвечивается вместе с зоной, потому, что он привязан прямым выходом с зоны gz1g на bz1g, миную глобальную карту: «Лагерь». Вообще, в ПЗ переходы имеют массу тонкостей…
Александр
Распространяется, в некоторых случаях…
Цитата:Брифинг, находящийся на игровой зоне подсвечивается вместе с зоной, потому, что он привязан прямым выходом с зоны gz1g на bz1g, миную глобальную карту: «Лагерь». Вообще, в ПЗ переходы имеют массу тонкостей…
Но ведь именно так устроен и Ингос, и точно так реализован вход и выход с Окрестностей города в сам город. Мало того перед тем как Зак входит в город инициализируются похожие переменные как и в Развалинах:
GSSetVarMax( 0, "gz11k", 2 )
GSSetVarMax( 0, "bz8k", 2 )
Однако это не меняет выбор зон, а в Развалинах меняет... В чем фишка? :unsure:
Я вот поэксперементировал.
Удалил все входы и выходы, кроме тех, что отвечают за переход между Поселком и Развалинами и также поступил на Ингосе с Окрестностями и Городом. На Ингосе все нормально, на Глобальной карте зона выбирается подсветкой отдельно и соответственно моделька города также, а на Гипате все по-прежнему вместе. Что за ерунда... Может все-таки это настроено в движке ПЗ?
По поводу проблемы с подсветкой "Развалин" и "Поселка".
Я удалил все переменные, кроме: z.gz1g 2
z.bz1g 2
(Для Гипата)
и z.gz11k 2
z.bz8k 2
(Для Ингоса)
В map.txt удалил всё лишнее, оставил лишь только необходимый минимум...
Видимо проблема одними "переменными" не решается, может, у кого какие мыслишки будут по этому поводу?
Alecron
В ПЗ есть исключения из правил, собственно, так нескладно устроен сам движок ПЗ.
К тонкостям управления переходов, которые я имел в виду, нужно отнести то, что переменные управления доступностью переходов инициализируются не только в скрипте, движке, но и из ресурсов, в таблице quests2.txt. В одном из полей блокируется переход - устанавливает значение «1» в любую глобальную переменную, в другом поле - значение «2», то есть доступность зоны без предварительного посещения зоны и вне правил по умолчанию переходов. В этой же таблице инициализируются и некоторые переменные заданий, хотя можно было бы полностью все переменные инициализировать и в скрипте.
Если ты нашел место, где механизм реализован одинаково, но представлен по-разному, соответственно, ты нашел исключения из правил.
Но я до конца не понял, чего ты хочешь добиться?
Цитата:Но я до конца не понял, чего ты хочешь добиться?
Sun, я хотел бы просто разобраться в механизме выделения курсором на Глобальной карте игровых и диалоговых зон и исправить это. Смысл в том, что на Ингосе, наводя на модель Города курсором, он темнеет, а сама зона остается прежнего цвета, а на Гипате, при наведении курсором на модель Поселка, выделяется также и сама зона Развалины. Кстати, Jet представил пример в этой теме, причем визуально, где подробно показана проблема.
Alecron
Как раз, то, что проблема состоит в выделении области на глобальной карте, а не в самой логике перехода мы, я и Jet, поняли. В начале, я думал, что речь идет о том, чтобы можно было избирательно перейти с глобальной карты: либо в Поселок, либо на первую игровую зону.
Как, в общем, работают переходы, наверное, всем понятно. Переходы между собой связаны «по доступности», логической цепочкой: если на «второй» зоне открыты все переходы, то с перехода «первой» зоны можно сразу попасть на «третью» зону через соседствующий переход «второй» зоны, минуя саму «вторую» зону. Некая логика есть и у брифингов, ведь брифинги, как правило, это и есть часть территории самой игровой зоны. Поэтому зона брифинга должна быть связана прямым выходом (минуя глобальную карту), с игровой зоны на брифинг этой же зоны и «в принципе», территория самого брифинга на глобальной карте, должна совпадать с территорией игровой зоны. На аллоде «Гипат» зоны брифингов и игровых зон объединяются в одно цело на глобальной карте. , если на игровой зоне выполнены все задания и открыты все выходы. На Ингосе другие правила, брифинг не связан с игровой зоной и если для игровой зоны установлен параметр: все зоны и переходы открыть (установить переменной z.gz#[g,k,h] игровой зоны значение «2»), то зоны брифинга и игровые не объединяются. В общем-то, так устроен сам движок ПЗ и внешней настройки свойств связи брифинга и игровой зоны, которой принадлежит сам брифинг – нет. Можно, конечно же, поискать «поглубже» или сделать такую настройку в Стартере.
Должен заметить, что этот вопрос/ответ немного не в тему этой рубрики: «Интересно о ПЗ». Этот вопрос, наверное, нужно разбирать с программистами и любителями создавать моды для ПЗ. Проблема с переходами возникает только у создателей модов для одиночной игры, а не у игроков. Также, ошибки в игре связанные с этой проблемой я не нашел.