Помощь - Поиск - Участники - Календарь
Сам форум: Интересно о ПЗ….
City of Joons > Аддон для Проклятых Земель > Проекты
Pages: 1, 2
sun
В ПЗ, достаточно много всяких скрытых «фишек», многое задумано, но не реализовано, отключено, не отлажено, есть даже закомментированные квесты, диалоги и так далее…
Например, можно, перед тем как обвинить Эрфара в предательстве, но, не выполнять квест “Бивак неизвестных”, набрать в консоли две команды: thingamabob, GSSetVar(0,”s25_n”,2). Тогда если обвинить Эрфара в предательстве арест будет происходить несколько иначе. Можно сразу после создания новой игры, набрать в консоли две команды, thingamabob, LeaveToZone(0,”bz2g”,0) – и вы услышите диалог, который был задуман на тот случай, если вдруг Зак сумеет зайти к Знахарке раньше, чем заполучит «Магическую плашку». В задании: «Важное дело старосты» (украсть Гоблинскую святыню), которое выполняется на карте «Река и острова», есть несколько Ящеров в клетке, а у одного из Гоблинов ключ от клетки. Так вот, по идеи, в этом задании, нужно было украсть ключ от клетки ящеров, выпустить ящеров, и освобожденные ящеры должны были бы помочь расправиться с гоблинами. То есть после разговора с Эрфаром о его важном деле, должен был бы у Эрфара появиться текст диалога: «Подробнее о плане старосты». Чтобы диалог все-таки послушать, нужно набрать в консоли: thingamabob, GSSetVar(0,” b.elder.s6_3”,1). Так же, у меня есть подозрение, что арестованного Зака Хадаганской экспедицией должен был освободить Ящер, но не просто так, а на подобии как это делает «Наложница», то есть Мы бы поиграли за Ящера и освободили бы Зака. Видимо, что–то не срослось…. То, что в ПЗ осталось очень много незадействованной магии, это давно известно широкой публике, даже не магии, а отключены целые школы магии, например, магия Контроля, отключены руны, которыми можно было концентрировать заклинание. Отключены некоторые расширенные параметры персонажей, навыки и умения, Например, был навык «Удар со спины», то есть Персонажу не доставалось просто так +300 к Умению «Удар со спины» при ударе со спины. На экране управления игрой, слева, были четыре кнопки навыков: Обокрасть, Использовать, Следовать, Приручать. Все эти навыки нужно было прокачивать. Например, сейчас в ПЗ ненужно прокачивать навык «Следовать», и у персонажа, как бы, сразу 100 единиц этого навыка. Видимо, разработчики ПЗ поступили правильно, что эту команда отнесли к управлению игры, а не к магии. Прокачиваемым навыком остался навык Обокрасть/Использовать. Так же, в ПЗ остались нереализованными и некоторые задумки в отношении баланса игры. Например, «выпадение» из монстров случайных денег, то есть к тем, что выпадают обычно, есть возможность установить еще и дополнительную премию, при этом можно настроить уровень вероятность выпадения денег для каждого из прототипов. В игре можно телепортировать группу на другой аллод, хотя такая операция телепортации будет ошибкой, так как оставить просто так на других аллодах взятых с собой помощников нельзя. В игре было множество задумок-реплик на игровых зонах. Это Циклоп, Демон, Диера, и многие другие, но из-за проблем «глючности» и сложного определения, когда можно применить эти реплики, они не используются.
В младших бета версиях игры планировалось использовать щиты, и даже остались от щитов анимация, но ни текстур, ни фигур в игре не осталось. Игрой ни разу не используются 99 объектов-фигур которые есть в ресурсах. Из них три расы юнитов, где «unmoog» – старый формат Огра. И две модели рас unanwigi и unmobi (квестовый дракончик, стрючек) в базе параметров рас -RaceModels нет им соответствующих строк. В игре, недостает несколько игровых зон. Например, на Гипате, в Предгорьях, должна была быть тролиная пещера, а тоннель из Мертвого города должен выходить к оркам в Средних горах.

Вот так вот кратко, можно сказать в поддержку изменений игры, возможным неофициальным сервиспакетом, в плане баланса и новизны.
Участвуйте в создании проекта «Народный сервиспакет к ПЗ»!
Буду рад квалифицированной поддержке горожан!
Александр
Кстати, новые зоны-то, наверно, без полноценного mob editor`а и mpr editor`а сделать нельзя unsure.gif
noone
Sun, я уже много раз слышал об "приручении" которое планировалось но не реализовано.. следовательно прирученные монстры или тот же ящер (за которого планировалось играть при освобождении Зака из плена) должны были иметь нормальный вид с текстурами.. то есть создание таких монстров должно быть решаемой проблеммой?
sun
Я думаю, что с текстурами в одиночной игре нет проблем, так как монстр создан в моб-файле, и его нужно просто взять, в новую партию. Нужно попробовать, можно ли реализовать доступными методами такую возможность, если нет, то сделаем патчик…
Александр
Sun, я вот думаю заняться активацией отключённых высказываний, но хотелось бы сначала знать, есть ли уже соображения, где и как это делать wink.gif
sun
Александр
«Высказывания» - это непонятный термин. Есть диалоги (на брифингах), есть реплики игроку (А вот и Гоблин Дозорный!), есть сам себе (Ну и погодка!...). Браться за все сразу ненужно.
В общем, ты можешь попробовать сделать простой мод. Так же, можно попробовать многое чего поштрыкать в коде, но если мы собираемся создать сервиспакет, то в первую очередь нужна теория и обоснования: Что нужно сделать, почему? Адрес этого самого изменения и тому подобное.
В данном случае, мы должны типизировать методы обработки событий скриптом для объектов и создать перечень стандартных инструкции кода.
Александр
Сорри, высказывания- моё название реплик wink.gif Я заметил, что в датабазе-то они прописаны... blink.gif
И ещё: составил набросок списка отключённых реплик( в более-менее хронологическом порядке):
***
Всё ниже перечисленное сежит по пути sfx.res\Acks\

Орки около Пирамиды в Предгорьях
OrcPyr\Scenario\OrcPyr.wav

Ящеры около Большой ракушки в Средних горах
Liz4\Scenario\Liz4.wav

Ящеры в Дальних Горах
Liz6\Scenario\Liz6.wav

Дракон, подчиняющийся амулету
GTDragon\Scenario\GTDragon.wav

Воевода
Sherrif\Scenario\Sherrif.wav

Циклоп:
Cyclope\Scenario\Cyclope.wav

Хадаганцы на Гипате
HadExpW\Scenario\HadExpW.wav

Ящеры с сокровищем в Песках
Liz8\Scenario\Liz8.wav

Демон
Demon\Scenario\Demon.wav

Зелёный лесовик- хранитель цветка
DrGuardian\Scenario\DrGuardian.wav

Хабуру
Haburu\Scenario\Haburu24.wav
Haburu\Scenario\Haburu25.wav

Диэра
Dier\Scenario\Dier.wav

Наложница
Nalo\Scenario\Nalo

Зак:
HH\Scenario\
181.wav
176.wav
182.wav
178.wav

-----------------------------------------------------
Elder\Scenario\Elder.wav - ??????????????????????????
-----------------------------------------------------
IDoL
Еще вопрос (может кто знает), зачем был сделан "Danger sensor"???
sun
IDoL

Наверное, этот вопрос нужно задать Нивалу на их форуме.

Я могу только предположить….
В игре были запланированы ловушки. Ловушки должны были быть как жезлы с заклинаниями, но израсходоваться как зелье. Предположительно, ловушки можно было произвольно устанавливать на игровой зоне. То есть, в магазине, можно было собрать ловушку, вставить в жезл, и установить её на игровой зоне. "Danger sensor", это, видимо, некий кристалл, который бы светился, или ещё как-то подавал бы сигналы игроку в местах опасности, там, где установлены подобные ловушки врагами или собственные без фильтров.
Вот такие вот мои личные предположения….
Alecron
Sun, хочу спросить насчет дилогов, ведь их присваивать можно только тем NPC, которые заранее продуманны Нивалом, то есть добавить новых так просто не получится. Можно ли как-то обойти проблему? wink.gif
Подобное очень актуально при добавлении новых наемников.
IDoL
2 sun:
Спасибо, теперь вроде ясно.
sun
Alecron
Вопрос достаточно емкий. Выскажу мои предположения....

Персонаж, именно персонаж, отличается от другого объекта в моб-файле только NID кодом. А так же, у персонажа есть собственное уникальное имя в базе данных локализации: texts.res\Pers *, (c предиктором Pers), а у не персонажей - простых юнитов, имя одно общее для всей группы прототипа и в базе локализации эти юниты имеют предиктор: Unit *. Вообще, персонажи можно динамически добавлять на бриффинг зону. Для этого существует команда: AddUnitToServer (добавляет именно персонажи!), или можно припасать юнит в мобе, но нужно знать NID и правильно прописать код. Чтобы персонаж был персонажем на брифинг зоне, имя персонажа ID_OBJNAME должно соответствовать NID коду. Именно по этому коду установлен фильтр принадлежности юнита к персонажам и по этому коду будет доступ к разговору на брифинг зоне с персонажем. Текст локализованного имени будет выводиться на экран, если соответствует NID код имени в texts.res\Pers*.
Функция получение NID кода из имени не сложная, думаю, ты сам её сделаешь….
Так же нужно понимать механизм обработки диалогов. Для большего понимания происходящего я покажу пример:
Создай текстовый файл с именем «1.txt», положи его в директорию игры и вставь в него следующие строки:

CODE
thingamabob
@AddUnitToServer( "Nalo","Human Hadagan Pretty","",GetX(GetLeader()), GetY(GetLeader()),0)
@AddUnitToServer( "Nalo1","Human Hadagan Pretty","Nalo",GetX(GetLeader()), GetY(GetLeader()),0)
@GSSetVar(0,"b.Nalo.m0",1)
@GSSetVar(0,"b.Nalo1.m0",1)
@GSSetVar(0,"b. Pig.m0",1)
@AddUnitToServer( "Nalo","Human Hadagan Pretty","",GetX(GetLeader()), GetY(GetLeader()),0)

Зайди на брифинг зону Поселка в одиночной игре и из консоли набери команду: exec 1.txt
Поговорить можно с любой из Наложниц, и со Свиньей в том числе. Во время наведения курсора мыши на каждую из наложниц будет изменяться курсор и на одной из них будет текст: «Наложница», но сколько бы Зак не "знакомился" с Бабуром, ни у одной из Наложниц, в том числе и у Свиньи, переменная не будет проинициализирована на значение "2". Это происходит из-за того, что в блоке обработки диалогов «Script #OnBriefingComplete» для Наложниц нет соответствия имени юнита к имени диалога. Связь соответствия Персонажа диалогу можно посмотреть в ID_VSS_BS_CHEK в виде составной переменной: b.[NameUnit_NID].[NameDialog]. Но! Блок ID_VSS_BS_CHEK, в структуре моб-файла, предназначен не для игры, а для конструктора!




IDoL
К слову сказать. Вся графика ловушек в игре присутствует, но не используется. Так же в игре присутствуют всевозможные отмычки, и ключи, которые можно разбирать и создавать из прототипов наподобие жезлов, и видимо с магией…
Александр
2sun
А как привязать NPC диалог "о жизни..." в мульти?
sun
Александр
Думаю, что точно так же как и в одиночной игре.
Нужно отметить, что диалоги заданий в одиночной игре находятся в каждом выдаваемом задании персонально, а другие диалоги могут браться из двух мест, из textslmp.res\ briefing * и из texts.res\ briefing *. Так что если диалог уже существует в одиночной игре, то этот диалог можно использовать в сетевой игре. Локализованное имя персонажа в сетевой игре, то же, что и в одиночной. Ты можешь включить в сетевую игру любой диалог из одиночной игры, даже из консоли, это можно сделать для персонажей, которые есть и в одиночной игре и в сетевой игре. Например:
CODE
thingamabob
@AddUnitToServer( "Nalo","Rick","",GetX(GetLeader()), GetY(GetLeader()),0)
@GSSetVar(0,"b.Nalo.m0",1)
@GSSetVar(0,"b.Smith.m0",1)
@GSSetVar(0,"b.Smith.M1",1)
@GSSetVar(0,"b.Smith.m12",1)
@GSSetVar(0,"b.Smith.m12_1",1)
@GSSetVar(0,"b.Smith.m12_4",1)
@GSSetVar(0,"b.Smith.m13_1",1)
@GSSetVar(0,"b.Smith.m13_2",1)
@GSSetVar(0,"b.Smith.m13_3",1)
@GSSetVar(0,"b.Smith.m13_4",1)
@GSSetVar(0,"b.Smith.m15",1)
@GSSetVar(0,"b.Smith.m16",1)
@GSSetVar(0,"b.Smith.m19",1)
@GSSetVar(0,"b.Smith.M1_1",1)
@GSSetVar(0,"b.Smith.M1_2",1)
@GSSetVar(0,"b.Smith.m21",1)
@GSSetVar(0,"b.Smith.m21_1",1)
@GSSetVar(0,"b.Smith.m24",1)
@GSSetVar(0,"b.Smith.m24_2",1)
@GSSetVar(0,"b.Smith.m24_3",1)
@GSSetVar(0,"b.Smith.m26",1)
@GSSetVar(0,"b.Smith.M4",1)
@GSSetVar(0,"b.Smith.M5_1",1)
@GSSetVar(0,"b.Smith.M5_3",1)
@GSSetVar(0,"b.Smith.M5_4",1)
@GSSetVar(0,"b.Smith.M6",1)
@GSSetVar(0,"b.Smith.M6_1",1)
@GSSetVar(0,"b.Smith.m7_1",1)


Не забудь подключить консоль для сетевой игры.
P.S.: Все инструкции по применению кода, такие же как и в предыдущем моем сообщении.
Александр
Спасибо smile.gif Подробности сделанного, как и многое другое, в следующем выпуске evil-mod`а cool.gif
Alecron
Sun, а вот не понятно, почему только у одной из наложниц выводится имя "Наложница", не смотря на то, что я добавил в Texts.res/Pers* Nalo1?
И таже ситуация, если в мобе правильно написать NID код, чтобы появилась возможность общаться с персонажем, имя его все равно не появляется при наведении курсора... Странно однако... huh.gif
Может еще что нужно сделать?
Александр
Sun, и у меня проблемы: добавленные NPC стали выдавать некоторые задания( когда я прописал их имя в mq файле). Но говорить приветственные диалог, кроме как после набратия скрипта в консоле, непоявляется sad.gif В каком месте и в какой полной форме надо прописывать этот скрипт в разделе моба ID_SS_TEXT? huh.gif
sun
Alecron
Прочти описание функции: AddUnitToServer…
Чтобы добавленный юнит на игровой зоне имел локализованное имя, нужно оставить пустым третий параметр:
@AddUnitToServer ( "Nalo1","Human Hadagan Pretty","",GetX(GetLeader()), GetY(GetLeader()),0)
Наверное, из-за этого у тебя не появляется локализованное имя у наложницы. Хотя это мои догадки. Ты не написал порядок твоих действий.

Александр
Я так понимаю, что ты говоришь о сетевой игре.
«Приветственный» диалог не должен быть в mq-файле! В список диалога заданий, попадают три строки, случайно выбранных mq-файлов для брифингов сетевой игры.
Попробуй прописать приветственный диалог в textslmp.res, соблюдая каноническую форму имени и структуру файла диалога.
Например:
Распакуй из ресурсов файл «briefing intro_1k», измени текст диалога, но не меняй имени персонажа! Переименуй отредактированный файл и запакуй его в файл textslmp.res, под именем: «briefing mp10». Предположим, что для дополнительного приветствия Мастером посетителей поселка, на Гипате, ты создал правильный файл диалога. Тогда в моб-файле basecam-lmp, в секции ID_SS_TEXT, найди процедуру «Script VTriger#0#569» и в тело процедуры, например, после команды «PlayAnimation( PodMaster, "uspecial08" )», вставь строку GSSetVar(0,"b.smith.mp10",1).
Вот так должен выглядеть код:
CODE
Script VTriger#0#569
(
 if
 (
 )
 then
 (
   KillScript(  )
   PlayAnimation( PodMaster, "uspecial08" )
   GSSetVar(0,"b.smith.mp10",1)
   VTriger#0#570( this )
 )
)
Alecron
QUOTE
Прочти описание функции: AddUnitToServer…
Чтобы добавленный юнит на игровой зоне имел локализованное имя, нужно оставить пустым третий параметр:
@AddUnitToServer ( "Nalo1","Human Hadagan Pretty","",GetX(GetLeader()), GetY(GetLeader()),0)
Наверное, из-за этого у тебя не появляется локализованное имя у наложницы. Хотя это мои догадки. Ты не написал порядок твоих действий.

Sun, большое спасибо за помощь. blush.gif wink.gif
Вообщем описываю свои действия.
Я создал текстовой файл, в котором есть обе наложницы и команда, которая их обоих вызывает, убрал третий параметр NameUnitControl у наложницы Nalo1. Далее, добавил в ресурсы Texts.res/pers Nalo1 и оставив название "Наложница" внутри файла. Захожу в игру, вызываю наложниц обе они разговаривают, но у второй наложницы Nalo1 нет имени.
Тоже самое, если добавить наложницу через моб и указав Nid код правильно, все равно она остается без имени. А если присвоить диалог чисто для нее предварительно добавив его в Texts.res, то в этом случае в диалоге вместо имени наложницы будет написано имя, которое прописано в секции ID_OBJNAME. smile.gif
sun
Alecron
Есть одна проблема в моих советах, по большей части это теория, так что заранее извини, если я тебя поведу по ложному следу.
Я думаю, что в твоих действиях есть простая ошибка. Толи что-то с запаковкой, то ли неправильно отредактирован файл...
Я точно не помню, кажется, в конце файла локализованного имени должен быть код символа 10 и 13, может из-за этого проблема?

Сделай так, скопируй файл из ресурсов, например «pers Deva» и переименуй имя файла в «pers Nalo1», запакуй новый файл. Затем, попробуй запустить мой текстовый файлик. Думаю, ты быстро найдешь, где была ошибка…
Александр
Sun, а за что отвечает команда
CODE
PlayAnimation( PodMaster, "uspecial08" )

И, если, например, речь идёт о Свере- Зайчатнике , как изменить команду( игра, правильно, сетевая)
sun
Александр
В твоем случае, команда PlayAnimation не нужна. Эта команда предназначена для принудительной анимации персонажей на игровой зоне. Как правило, применяется эта команда для анимации тренирующихся воинов. Первый параметр: Имя расы юнита. Второй параметр, имя анимации из таблицы параметров анимации рас, в базе database.res\*.adb, а так же, значение второго параметра команды PlayAnimation совпадает с именем в базе данных figures.res
В макросе диалогов есть параметр ANIMATION отвечающее за анимацию во время диалога.

Я не понял, что ты имел в виду для Зайчатника?
Александр
QUOTE(sun @ 23 Марта 2004, 16:26)
Я не понял, что ты имел в виду для Зайчатника?

Я добавил на Ингос в сетевой игре новых NPC, в том числе- Свера wink.gif
Alecron
Sun, путь оказался не ложным. smile.gif Просто я пользуюсь стартером и через него указывал путь к текстовым ресурсам, а он почему-то не поддерживает этот префикс Pers*, ( странно ) поэтому и возникала проблема. Нужно было просто запаковать в обычный texts.res в директории ПЗ.
Еще раз большое спасибо. blush.gif
sun
К сожалению, в Стартере много серьезных ошибок. Стартер написан на Дельфи Нивеей. Как только он появится, то устранит ошибки.

Спасибо за интересные вопросы.
Jet
QUOTE(Alecron @ 24 Марта 2004, 05:13)
Sun, путь оказался не ложным. smile.gif   Просто я пользуюсь стартером и через него указывал путь к текстовым ресурсам, а он почему-то не поддерживает этот префикс Pers*, ( странно ) поэтому и возникала проблема. Нужно было просто запаковать в обычный texts.res в директории ПЗ.
Еще раз большое спасибо.   blush.gif

По подробнее опиши, пожалуйста, что и как ты пытался сделать?
Мы постараемся исправить ошибку, если она имеется....
Alecron
А в принципе и описывать нечего. cool.gif
Взял из texts.res файл pers Nalo и заменил его на pers Nalo1, запаковал его в texts.res и положил в папку Res своего мода, далее вызвал функцией AddUnitToserver наложницу, но с именем PersName Nalo1, как показал Sun. Имени у наложницы нет. А когда запаковал в директорию ПЗ, то имя появилось. Как я понял, имя ресурса Pers* не берется из директории Стартера. smile.gif
Александр
Sun, я решил попробовать реализовать пока одну вещь из перечисленных в первом посте темы, а именно - отключённые реплики. Но где они отключены? В датабазе они прописаны, затем я посмотрел в мобе, взяв для примера отключённую реплику орка после выполнения квеста "Шаман и пирамида", реплика в мобе прописана. huh.gif
sun
Команда SendStringEvent - вызывает определенное событие игры, описываемое строкой: SAY. Известные нам события это: Реплики на игровых зонах, Немедленный старт диалогов на брифинг-зоне, Запуск окна обучающего текста, выделение рамкой определенных участков интерфейса игры во время обучения управления игрой.
В каждом случае форма построения строки SAY событий разная. Например, чтобы вызвать какой-то диалог немедленно, то есть обработать событие на брифинг-зоне с каким-то условием, эту команду нужно написать следующим образом: SendStringEvent(0,"briefing m12"). Если набрать команду из консоли игры, то немедленно состоится разговор между Заком и Бабуром, разумеется, если Бабур присутствует на брифинг-зоне, так как переменная диалога "m12" принадлежит макросу этого диалога, в теле которого присутствует имя Бабура как члена разговора, к которому должен приблизиться главный герой. Соответствие переменной диалога к имени персонажа прописывается в скрипте, в блоке: Script #OnBriefingComplete.
QUOTE
(Отступление: То же самое событие: «вызов диалога», можно реализовать при посещении брифинг-зоны, например, проинициализировать переменную: 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-кода – десятизначное число), то Орк будет без здоровья для отдельных частей тела и будет, в общем-то, неправильным объектом.

Если решить, что нужно сделать реплику как «Эхо» на игровой зоне. То эту реплику-файл: «Acks\OrcPyr\Scenario\OrcPyr.wav», в базе данных звуков: sfx.res, нужно перенести в: «Acks\HH\Scenario\ 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" )». После таких изменений, после отключения ловушки, должна прозвучать реплика как бы «Эхо» на игровой зоне.
Alecron
Напишу все таки, может прояснится ситуация.
Sun, давно уже спрашивал про Глобальную карту и про зоны перехода, но так и не смог разобраться почему модель поселка на Глобальной карте выбирается вместе с самой зоной Развалины.
В самом map.txt я вообщем более менее разобрался и активировал зоны перехода, которые были отключены разработчиками, также даже пробовал дописывать свои зоны, изменяя входы/выходы с поселка к ним.
Позже я заметил, что в скрипте зоны 1, перед тем как войти в Поселок Заком, есть скрипт, который делает зону уже как бы пройденной и отмечает ее темным цветом: GSSetVarMax( 0, "z.gz1g" , 2 )
Тогда я убрал эту переменную и на Глобальной карте, зона Развалины стала выбираться курсором и подсветкой отдельно от модели Поселка, однако при наведении курсора на Поселок они выделяются вместе. Любые изменения переменной: GSSetVarMax( 0, "z.bz1g" , 2 ), на 1, или на 0, приводят к тому, что модели Поселка на Глобальной карте нет. smile.gif
CAHEK7
Вот пример для Materials.txt
Total $
Calc $
Price Mod
Absorption Mod - Все подразделы
Crippled
Comments и xxx - Все подразделы
Если ты сможешь мне указать куда они запаковываются, то значит я ошибся. Но я их в упор в запакованной базе не видел. Даже когда я запаковывал две базы с разными этими параметрами, то после полного их сравнения я не нашел разницы...
sun
CAHEK7
Кажется, ты ответил не в той теме, где я тебя спрашивал.

Ты перечислил поля таблиц. Поля таблиц в конструкторе могут быть произвольные, такие как вычисляемы поля, Total, Calc или Комментарий.
Параметры, это значение строк в полях. То о чем мы говорили, о значениях в полях, константы поля “Lists Stats Modifiers”, или подобные константы или значения. То есть параметры неких объектов базы данных. Мне это нужно для энциклопедии.
Александр
Sun, спасибо за инструкции. А изменения не распространяются на ранние сохранения?
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, миную глобальную карту: «Лагерь». Вообще, в ПЗ переходы имеют массу тонкостей…
Александр
Распространяется, в некоторых случаях…
Alecron
QUOTE
Брифинг, находящийся на игровой зоне подсвечивается вместе с зоной, потому, что он привязан прямым выходом с зоны gz1g на bz1g, миную глобальную карту: «Лагерь». Вообще, в ПЗ переходы имеют массу тонкостей…

Но ведь именно так устроен и Ингос, и точно так реализован вход и выход с Окрестностей города в сам город. Мало того перед тем как Зак входит в город инициализируются похожие переменные как и в Развалинах:
GSSetVarMax( 0, "gz11k", 2 )
GSSetVarMax( 0, "bz8k", 2 )
Однако это не меняет выбор зон, а в Развалинах меняет... В чем фишка? unsure.gif
Я вот поэксперементировал.
Удалил все входы и выходы, кроме тех, что отвечают за переход между Поселком и Развалинами и также поступил на Ингосе с Окрестностями и Городом. На Ингосе все нормально, на Глобальной карте зона выбирается подсветкой отдельно и соответственно моделька города также, а на Гипате все по-прежнему вместе. Что за ерунда... Может все-таки это настроено в движке ПЗ? huh.gif
Jet
Обсуждение "внутренностей" ПЗ переместил в эту тему: http://www.gipat.ru/forum/index.php?showtopic=1922

По поводу проблемы с подсветкой "Развалин" и "Поселка".

Я удалил все переменные, кроме:
z.gz1g 2
z.bz1g 2

(Для Гипата)
и
z.gz11k 2
z.bz8k 2

(Для Ингоса)

В map.txt удалил всё лишнее, оставил лишь только необходимый минимум...
Видимо проблема одними "переменными" не решается, может, у кого какие мыслишки будут по этому поводу?

Результаты эксперимента в аттаче.
sun
Alecron
В ПЗ есть исключения из правил, собственно, так нескладно устроен сам движок ПЗ.
К тонкостям управления переходов, которые я имел в виду, нужно отнести то, что переменные управления доступностью переходов инициализируются не только в скрипте, движке, но и из ресурсов, в таблице quests2.txt. В одном из полей блокируется переход - устанавливает значение «1» в любую глобальную переменную, в другом поле - значение «2», то есть доступность зоны без предварительного посещения зоны и вне правил по умолчанию переходов. В этой же таблице инициализируются и некоторые переменные заданий, хотя можно было бы полностью все переменные инициализировать и в скрипте.

Если ты нашел место, где механизм реализован одинаково, но представлен по-разному, соответственно, ты нашел исключения из правил.
Но я до конца не понял, чего ты хочешь добиться?
Alecron
QUOTE
Но я до конца не понял, чего ты хочешь добиться?

Sun, я хотел бы просто разобраться в механизме выделения курсором на Глобальной карте игровых и диалоговых зон и исправить это. Смысл в том, что на Ингосе, наводя на модель Города курсором, он темнеет, а сама зона остается прежнего цвета, а на Гипате, при наведении курсором на модель Поселка, выделяется также и сама зона Развалины. Кстати, Jet представил пример в этой теме, причем визуально, где подробно показана проблема. smile.gif
sun
Alecron
Как раз, то, что проблема состоит в выделении области на глобальной карте, а не в самой логике перехода мы, я и Jet, поняли. В начале, я думал, что речь идет о том, чтобы можно было избирательно перейти с глобальной карты: либо в Поселок, либо на первую игровую зону.

Как, в общем, работают переходы, наверное, всем понятно. Переходы между собой связаны «по доступности», логической цепочкой: если на «второй» зоне открыты все переходы, то с перехода «первой» зоны можно сразу попасть на «третью» зону через соседствующий переход «второй» зоны, минуя саму «вторую» зону. Некая логика есть и у брифингов, ведь брифинги, как правило, это и есть часть территории самой игровой зоны. Поэтому зона брифинга должна быть связана прямым выходом (минуя глобальную карту), с игровой зоны на брифинг этой же зоны и «в принципе», территория самого брифинга на глобальной карте, должна совпадать с территорией игровой зоны. На аллоде «Гипат» зоны брифингов и игровых зон объединяются в одно цело на глобальной карте. , если на игровой зоне выполнены все задания и открыты все выходы. На Ингосе другие правила, брифинг не связан с игровой зоной и если для игровой зоны установлен параметр: все зоны и переходы открыть (установить переменной z.gz#[g,k,h] игровой зоны значение «2»), то зоны брифинга и игровые не объединяются. В общем-то, так устроен сам движок ПЗ и внешней настройки свойств связи брифинга и игровой зоны, которой принадлежит сам брифинг – нет. Можно, конечно же, поискать «поглубже» или сделать такую настройку в Стартере.
Должен заметить, что этот вопрос/ответ немного не в тему этой рубрики: «Интересно о ПЗ». Этот вопрос, наверное, нужно разбирать с программистами и любителями создавать моды для ПЗ. Проблема с переходами возникает только у создателей модов для одиночной игры, а не у игроков. Также, ошибки в игре связанные с этой проблемой я не нашел.
Alecron
QUOTE
Можно, конечно же, поискать «поглубже» или сделать такую настройку в Стартере.

Это было бы просто замечательно. wink.gif
Александр
Sun, у меня очередной вопрос: где прописано имя игровой зоны, которая загружается в сингле после показа видеоролика ( в оригинале - zone1)?
Mephisto
Попробую ответить я, если что пусть Сан поправит меня.
QUOTE
Sun, у меня очередной вопрос: где прописано имя игровой зоны, которая загружается в сингле после показа видеоролика ( в оригинале - zone1)?

Вроде прописано в движке, так как файла с зонами я не видел еще в папке пз smile.gif
Александр
QUOTE(Mephisto @ 01 Апреля 2004, 23:47)
Вроде прописано в движке, так как файла с зонами я не видел еще в папке пз smile.gif

А вот это уже плохо smile.gif
Jet
QUOTE(Александр @ 02 Апреля 2004, 06:47)
А вот это уже плохо smile.gif

Эту проблему можно попробовать решить с помощью нашего стартера.
Александр
QUOTE(Jet @ 02 Апреля 2004, 13:37)
Эту проблему можно попробовать решить с помощью нашего стартера.

Каким образом? Я такой функции в настройках не видел unsure.gif
Jet
Ее "пока" нет, но можно добавить, если приспичит. wink.gif

Хотя, есть следующий вариант:
в моде, для стартера в папке Maps, создаешь файлы с именами zone1.mob и zone1.mpr и игра будет их запускать, вместо своих.
Александр
Я думал о возможности замены файлов, но беда в том, что мне надо запускать с самого начала брифинг-зону, а не игровую зону sad.gif
Alecron
Sun, я хотел поинтересоваться насчет сетевой игры. Ты как-то говорил, что движок сетевой игры не сильно отличается от одиночной, так вот, я попробовал указать зоны перехода в сетевой игре, все как надо указал в map.txt, но при попытке войти, игра виснет. Интересен тот факт, что даже указав входы/выходы в map.txt любого квеста, который берешь перед тем как войти на игровую зону, зоны перехода на данной карте появляются, но войдя в любой из них, тебя переносит на диалоговую зону. Даже пробовал перенестись командой LeaveToZone на разные игровые зоны в сетевой игре, но при этом персонаж становится не доступен для управления. smile.gif
Так все-таки возможно организовать переходы между игровыми зонами?
Если не трудно, можно получить немного информации на этот счет. wink.gif
Legolas
в сетевой игре переход м\у игровыми зонами имхо недоступен.
поэтому в МП и нельзя по зонам как в сингле путешествовать...
во всяком случае, у меня случплось тоже самое, что и у тебя. smile.gif
sun
Я думаю, что все переходы c игровой зоны сетевой игры на брифинг, жестко прописаны в движке. Наверное, у разработчиков игры была проблема с реализацией логики при путешествии игроков между дополнительными зонами, или же, просто не хватило времени доделать такую «фишку».
Я не могу уверенно сказать, можно или нельзя будет нам сделать поддержку переходов между зонами для сетевой игры. Нужна идея - как реализовать логику переходов, и при этом, изучить все тонкости движка. Пока мы не планировали заниматься такой работой. На досуге посмотрю, может, что придумаем…
Это облегченная версия форума. Чтобы увидеть графику, кликните здесь.
Invision Power Board © 2001-2020 Invision Power Services, Inc.