Уважаемые гости и новички, приветствуем Вас на нашем форуме
Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».
Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
Удачи!
Друзья, доброго времени суток!
Стартовал новый литературный конкурс от "Ордена Хранителей" - "Пираты Миртанского моря". Каждый может принять в нём участие и снискать славу и уважение, а в случае занятия призового места ещё и получить награду. Дерзайте
Дорогие друзья, год подходит к концу, и пришло время подвести его итоги и наградить достойных
Не ленитесь, голосуйте в этой теме за тех форумчан, которые по вашему мнению больше всех проявили себя в этом году
По желанию, аргументировать свой выбор можете в теме обсуждения голосования.
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
Пока не расставил слэши в путях, компилятор ругался. Версия NSIS, кстати, 2.46. Возможно, слэши потерялись после вставки в сообщение на форуме. С расположением исходников, вроде бы, разобрался. Положил всё в одну папку, включая скрипт, для иконки пришлось прописать полный путь. Теперь вот затык на поиске установленного плейер-кита. В болванке, как я понимаю, прописан анализ реестра, а у меня плейер-кит для Г1 что-то как-то вручную установлен, без регистрации в реестре.
Если скрипт инсталлера находится в папке "а", то файлы находящиеся на этом же уровне должны быть прописаны как:
File "Systemmod.ini"
если они находятся во вложенных подкаталогах папки "а", то должны прописываться так:
File ".\setup\mod-de\Systemmod.ini"
где, setup и mod-de вложенные подкаталоги...
Теперь вот затык на поиске установленного плейер-кита. В болванке, как я понимаю, прописан анализ реестра, а у меня плейер-кит для Г1 что-то как-то вручную установлен, без регистрации в реестре.
Меш помещается в директорию _work\data\Meshes\Level.
Зен открывается как некомпилируемый, затем производится компиляция мира и света. Если все сделано правильно, то меш должен быть автоматически заменен. Этот способ работает, только если имя измененного меша полностью совпадает с именем заменяемого.
Хидера нет, если не считать стандартных НСИСовских. Всё в одном скрипте. Во вложении то, что пока получается. Функции автоматического определения пути и наличия установленной игры нужно допиливать. Или вовсе убирать, поскольку вариантов больше, чем два. Пока не понял, можно ли организовать выборочную установку по принципу "ИЛИ" (один из двух). Если можно, подскажи как. Также не разобрался пока, как организовать выборочное удаление компонентов.
Она не нужна, ибо нормально работать не будет при любых раскладах, просто надо прописывать оригинальный пусть из игры..
Я в свое время делал это но там такой гемор со всем этим определением, что забил...
Если использовать такой подход в чек боксах, то выборочность будет невозможна.. т.к. у тебя будет работать взаимоисключающая установка..
Единственное что можно сделать, изначально прописывать требуемое значения флага чекбокса куда нибудь, например, при установке проверяем есть ли флаг на чекбоксе 1, если есть прописываем это значение в реестр, а при удалении, деинсталлятором проверять этот ключ реестра, и если он равен 1, то переводить в активное состояние этот флаг для удаления требуемого компонента..
Так наверное..
По хидеру, прикладываю свой правленный файлик, сам стартер Г1 у тебя должен быть в подкаталоге инсталлятора System.
Хидер в скрипте подключаешь после брандинга и лангов:
Код:
!include "GOTHIC1Cls.nsh"
Прочее что должно быть в твоем скрипте для проверки плееркита, порядок именно такой(!):
Код:
Section -gmpk
SetOverwrite on
SetDetailsPrint none
SetShellVarContext current
!insertmacro GLOBAL_InstallPlayerKit
SectionEnd
Код:
Function .onInit
Push $R0
SetCurInstType 0
!insertmacro MUI_LANGDLL_DISPLAY
!insertmacro MUI_INSTALLOPTIONS_EXTRACT "setup.ini"
StrCpy $1 ${SecMod}
SetSilent normal
IfFileExists "$INSTDIR\System\Gothic.exe" done
Call GLOBAL_GetInstallLocation
Pop $R0
StrCmp $R0 "" done
StrCpy $INSTDIR $R0
done:
Pop $R0
FunctionEnd
ПРИМЕЧАНИЕ:
Некоторые значения и переменные у меня изменены и тебе надо будет прописывать их под свою версию.
Свой скрипт инсталлера мода не даю по причине его абсолютной бесполезности для тебя, т.к. я использую расширенную и измененную на уровне ехе версию NSIS UNICODE, в отличие от твоей стандартной ANSI, работать на твоей версии ничего из моего не будет..
Файлик Хидера в кодировке Юникода, надо будет конвертнуть его в стандартную Анси.
В том и дело, что мэш оригинальный. Никаким изменениям не подвергался, но пропали все пещеры. Компилирую с Editmode, пещеры на месте. Компилирую без, ни одной нет. С остальными мэшами все в порядке. Впрочем все решилось проделкой всех операций на другом компьютере. Видать опять Spacer глючит.
Вопрос по скрипту инсталлятора. Нужно вызвать функцию в момент выхода со страницы выбора директории установки (или в момент входа на страницу выбора компонентов). Цель:
Хочу дать юзеру возможность выбрать тип установки на данном этапе. Если в выбранной папке имеется мод-стартер, то инсталлятор предложит установить мод-фикс, как мод, то есть в папку Data/ModVDF с запуском через мод-стартер. Дело в том, что наличие мод-стартера не означает, что игрок использует его для запуска модов. Возможно, мод-стартер был установлен, только как обязательный элемент для последующей установки СистемПака.
Насколько я понимаю, для этого предназначены функции обратного вызова и в макросе MUI_PAGE_DIRECTORY (хидер System.nsh), например, эти функции даже определены:
Такой вопрос, как засунуть кусок локации под портал, вот например такая идея есть у меня островок, и его нужно положить под портал чтобы он стал indoor, как это правильно сделать? и да, компиляция как indoor НЕ ДОПУСТИМА в моем случае, нужно конкретно чтобы он был частью outdoor левела.
Такой вопрос, как засунуть кусок локации под портал, вот например такая идея есть у меня островок, и его нужно положить под портал чтобы он стал indoor, как это правильно сделать?
В первой готике леса и часть болота были сделаны как индур-уровни. Почему бы не сделать по аналогии? Закрываешь свой островок полигонами по сторонам в соответсвии с очертаниями модели и сверху.
Хм.. хз никогда этим не заморачивался, ибо смысла в этом мало.. В своих инсталлерах писал так.:
Все что нужно по выбору юзера, ярлыки и прочее всегда ставятся по-умолчанию не зависимо от юзера, но также все это автоматически удаляется и чистится, без оставления следов установки на компе юзера.
Вызывать можно через секцию .onInit она отрабатывает всегда в начале, или через другие секции/функции, но тут надо думать и логику правильную расписывать.
Могу порекомендовать в качестве примера глянуть на исходник инсталлера мода Оркадес, автор добавлял исходники инсталляции в архив ресурсов своего проекта, который в доступе, у него была вроде как реализована возможность опций выбора. Но все комменты там на дойче будут...
У тебя есть справка по Нсис она ведет на сайт русского сообщества где обретаются все гуру Нсиськи, там проще всего спросить, если есть какие затруднения. Это на будущее, дабы по гуглам не шариться, но можно и сюда отписать, как вариант..
Самый простой и надежный способ это проверка по либе систем пака и сравнению ее хеша(Контрольной суммы МДМ5, например), или как вариант по наличию его инишки(но ее может и не быть).
Или как вариант, можно через реестр посмотреть, установленный систем пак пишется в него, и если есть запись, то сверяться оттуда..
Всем доброго времени суток! Такой вопрос - можно ли сделать зелье регенерации? Допустим чтобы после использования восстанавливалось хп 1ед/сек и так на протяжении минуты. Долго смотрела на функцию зелья скорости и хилки, так ни к чему и не пришла
Можно, функция зелья скорости лежит глубоко в движке, так что тебе не туда надо. Тебе нужен зацикленный Триггер скрипт( в уроках должен быть), и с помощью него уже восстанавливать в цикле. вобщем завтра могу набросать пример скрипта.
Прошу помощи у знатоков моддинга Gothic 3. На днях я попробовал произвести разделение текстур для южных и северных видов животных:
- куриц (Chicken) и белых куриц (WhiteChicken);
- коров (Cow, Montera_Cow_01) и белых коров (WhiteCow);
- оленей обычных, пугливых (Deer, Vangard_Deer_01) и белых, с плато (WhiteDeer, Hanson_Deer).
Дело в том, что все животные этих видов имеют одинаковые текстуры, например, у обоих видов куриц используется текстура G3_Monster_Chicken_Body_Diffuse_S1.ximg, хотя в паке_compiledImage.pak есть текстура и для белой курицы G3_Monster_Chicken_Body_Diffuse_S2.ximg. То же самое разделение текстур имеется для коров и оленей: G3_Monster_Cow_Body_Diffuse_S1.ximg и G3_Monster_Cow_Body_Diffuse_S2.ximg, G3_Monster_Deer_Body_Diffuse_S1.ximg и G3_Monster_Deer_Body_Diffuse_S2.ximg.
Затем обратил внимание на цвет текстур у саблезубых тигров: оказывается, что южные виды почему-то имеют более светлый окрас без характерных поперечных полос, например, тёмный (Sabertooth_Dark) и подозрительный (Trelis_Sabertooth_01), а северные обычный (Sabertooth) и большой (Wolfclan_Sabertooth_01) имеют более тёмный окрас с поперечными полосами, т.е. в данном случае были перепутаны текстуры G3_Monster_Sabertooth_Body_Diffuse_S1.ximg и G3_Monster_Sabertooth_Body_Diffuse_S2.ximg.
Нашёл у себя текстовый файл, в котором расписаны взаимосвязи между основными ресурсами Gothic 3:
Код:
Templates - Templates:
.tple (NPC) -> .tple (Head/Body)
класс gCInventory_PS
в субклассах типа gCInventorySlot (gESlot_Head и gESlot_Body)
идёт ссылка на GUID Handler-Hash .tple головы/тела.
Templates - _compiledAnimation:
.tple (Head/Body) -> модели (.fxa/xact)
eCVisualAnimation_PS.ResourceFilePath=<model>.fxa/xact
Templates - _compiledImage:
.tple (Head/Body) -> иконки в инвентаре (.tga/ximg)
gCItem_PS.Texture=<icon>.tga/ximg (бывает не у всех тел)
.tple (Head/Body) -> номер текстуры (.tga/ximg)
eCVisualAnimation_PS.MaterialSwitch=n (0 - S1, 1 - S2, 2 - S3, и т.д.)
_compiledAnimation - _compiledImage:
модель (.fxa/xact) -> текстуры (.tga/ximg)
внутри модели явно указывается название 1 текстуры, например:
в G3_Hero_Body_Firemage.xact задано G3_Human_mage_Body_Diffuse_S1
Но здесь я столкнулся с глюком: текстура не изменяется на отличную от S1, если прописывать значение параметра MaterialSwitch в шаблоне существа, срабатывает только тогда, когда изменяем значение этого параметра через встроенный редактор. Причём нет разницы, начиналась или нет новая игра, находилось ли это существо в мире изначально или вставлялось позже командой spawn. На всякий случай я прилагаю архив с тестовым файлом Templates.p01, в котором пробовал изменить текстуры для белых куриц, коров, оленей, а также оленей с плато и 4 видов саблезубов.
Почему это разделение прекрасно работает для обычных и шерстистых бизонов (Bison и LonghairBison) и носорогов (Rhino и LonghairRhino)? И почему глючит при попытке сделать то же самое для куриц, коров, оленей и саблезубов?
Всем доброго времени суток! Такой вопрос - можно ли сделать зелье регенерации? Допустим чтобы после использования восстанавливалось хп 1ед/сек и так на протяжении минуты. Долго смотрела на функцию зелья скорости и хилки, так ни к чему и не пришла
Привет всем. Спрашивал многих, но не кто толком не разъяснил. Если можно - то в л.с. Скажите пожалуйста, как создать и вставить, что бы без вылетов доспех к готике 2 нв (подробно) 1. Я вставляю все, в it_addon_armor - компилирую, доспех появился. Но одеть нельзя - вылет. Он невидим. Скажите, что не так, пожалуйста.
На данном сайте используются файлы cookie, чтобы персонализировать контент и сохранить Ваш вход в систему, если Вы зарегистрируетесь.
Продолжая использовать этот сайт, Вы соглашаетесь на использование наших файлов cookie.