Интересно о ПЗ….
#1
В ПЗ, достаточно много всяких скрытых «фишек», многое задумано, но не реализовано, отключено, не отлажено, есть даже закомментированные квесты, диалоги и так далее…
Например, можно, перед тем как обвинить Эрфара в предательстве, но, не выполнять квест “Бивак неизвестных”, набрать в консоли две команды: 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 нет им соответствующих строк. В игре, недостает несколько игровых зон. Например, на Гипате, в Предгорьях, должна была быть тролиная пещера, а тоннель из Мертвого города должен выходить к оркам в Средних горах.

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

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

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

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

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

Воевода
SherrifScenarioSherrif.wav

Циклоп:
CyclopeScenarioCyclope.wav

Хадаганцы на Гипате
HadExpWScenarioHadExpW.wav

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

Демон
DemonScenarioDemon.wav

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

Хабуру
HaburuScenarioHaburu24.wav
HaburuScenarioHaburu25.wav

Диэра
DierScenarioDier.wav

Наложница
NaloScenarioNalo

Зак:
HHScenario
181.wav
176.wav
182.wav
178.wav

-----------------------------------------------------
ElderScenarioElder.wav - ??????????????????????????
-----------------------------------------------------
Петька:Дуб ты,Василий Иванович!
Чапаев:Да,Петька,я могуч!
Ответ
#8
Еще вопрос (может кто знает), зачем был сделан "Danger sensor"???
Ответ
#9
IDoL

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

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

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

Код:
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
К слову сказать. Вся графика ловушек в игре присутствует, но не используется. Так же в игре присутствуют всевозможные отмычки, и ключи, которые можно разбирать и создавать из прототипов наподобие жезлов, и видимо с магией…
Ответ
#13
2sun
А как привязать NPC диалог "о жизни..." в мульти?
Петька:Дуб ты,Василий Иванович!
Чапаев:Да,Петька,я могуч!
Ответ
#14
Александр
Думаю, что точно так же как и в одиночной игре.
Нужно отметить, что диалоги заданий в одиночной игре находятся в каждом выдаваемом задании персонально, а другие диалоги могут браться из двух мест, из textslmp.res briefing * и из texts.res briefing *. Так что если диалог уже существует в одиночной игре, то этот диалог можно использовать в сетевой игре. Локализованное имя персонажа в сетевой игре, то же, что и в одиночной. Ты можешь включить в сетевую игру любой диалог из одиночной игры, даже из консоли, это можно сделать для персонажей, которые есть и в одиночной игре и в сетевой игре. Например:
Код:
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.: Все инструкции по применению кода, такие же как и в предыдущем моем сообщении.
Ответ
#15
Спасибо Smile Подробности сделанного, как и многое другое, в следующем выпуске evil-mod`а B)
Петька:Дуб ты,Василий Иванович!
Чапаев:Да,Петька,я могуч!
Ответ
#16
Sun, а вот не понятно, почему только у одной из наложниц выводится имя "Наложница", не смотря на то, что я добавил в Texts.res/Pers* Nalo1?
И таже ситуация, если в мобе правильно написать NID код, чтобы появилась возможность общаться с персонажем, имя его все равно не появляется при наведении курсора... Странно однако... Huh
Может еще что нужно сделать?
Ответ
#17
Sun, и у меня проблемы: добавленные NPC стали выдавать некоторые задания( когда я прописал их имя в mq файле). Но говорить приветственные диалог, кроме как после набратия скрипта в консоле, непоявляется Sad В каком месте и в какой полной форме надо прописывать этот скрипт в разделе моба ID_SS_TEXT? Huh
Петька:Дуб ты,Василий Иванович!
Чапаев:Да,Петька,я могуч!
Ответ
#18
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).
Вот так должен выглядеть код:
Код:
Script VTriger#0#569
(
 if
 (
 )
 then
 (
   KillScript(  )
   PlayAnimation( PodMaster, "uspecial08" )
   GSSetVar(0,"b.smith.mp10",1)
   VTriger#0#570( this )
 )
)
Ответ
#19
Цитата:Прочти описание функции: AddUnitToServer…
Чтобы добавленный юнит на игровой зоне имел локализованное имя, нужно оставить пустым третий параметр:
@AddUnitToServer ( "Nalo1","Human Hadagan Pretty","",GetX(GetLeader()), GetY(GetLeader()),0)
Наверное, из-за этого у тебя не появляется локализованное имя у наложницы. Хотя это мои догадки. Ты не написал порядок твоих действий.
Sun, большое спасибо за помощь. Blush Wink
Вообщем описываю свои действия.
Я создал текстовой файл, в котором есть обе наложницы и команда, которая их обоих вызывает, убрал третий параметр NameUnitControl у наложницы Nalo1. Далее, добавил в ресурсы Texts.res/pers Nalo1 и оставив название "Наложница" внутри файла. Захожу в игру, вызываю наложниц обе они разговаривают, но у второй наложницы Nalo1 нет имени.
Тоже самое, если добавить наложницу через моб и указав Nid код правильно, все равно она остается без имени. А если присвоить диалог чисто для нее предварительно добавив его в Texts.res, то в этом случае в диалоге вместо имени наложницы будет написано имя, которое прописано в секции ID_OBJNAME. Smile
Ответ
#20
Alecron
Есть одна проблема в моих советах, по большей части это теория, так что заранее извини, если я тебя поведу по ложному следу.
Я думаю, что в твоих действиях есть простая ошибка. Толи что-то с запаковкой, то ли неправильно отредактирован файл...
Я точно не помню, кажется, в конце файла локализованного имени должен быть код символа 10 и 13, может из-за этого проблема?

Сделай так, скопируй файл из ресурсов, например «pers Deva» и переименуй имя файла в «pers Nalo1», запакуй новый файл. Затем, попробуй запустить мой текстовый файлик. Думаю, ты быстро найдешь, где была ошибка…


Файлы вложений
.txt   5.txt (Размер: 950 байт / Загрузок: 750)
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)