Gothic NPC Creator

DRom

Как Бэ Администратор
Команда форума
Регистрация
3 Фев 2006
Сообщения
3,685
Репутация
435
Адрес
Новосибирск
Gothic NPC Creator

Статус: в разработке
Автор: Marvin

Описание:

Программа предназначена для создания скриптов NPC для игры Gothic II Addon (пока).
В программу заложено основные используемые предметы в игре (оружие, предметы инвентаря), что позволяет быстро создать скрипт без поиска необходимых предметов в файлах игры. Программа также поддерживает создание скриптов для орков и монстров.

Здесь ведем всестороннее обсуждение программы.
В ближайшее время автор обещает выложить тестовую версию.
 

Marvin

Ополченец
Регистрация
13 Фев 2008
Сообщения
96
Репутация
1
Адрес
Ukraine
Спасибо DRom за открытую тему.
Насчет того чтобы прога считывала данные с файлов Готвы это идея хорошая, но основное назначение проги это создание скрипна НПС человеком, который вообще непосвящен в скриптах игры, а если реализировать считывание с файлов, то не все можно будет отобразить, понятным для простого юзера, языком в проге. То есть даже тот самый файл с описаеие гильдий, то и это уже проблема. Нормальное понятное название можно увидеть в файле Text.d (то есть русское описание), а вот прицепить этоже название, к тому параметру который пишеться в скрипте это уже проблемка. :blink:. Аналогичная ситуация с остальными файлами.
 

DRom

Как Бэ Администратор
Команда форума
Регистрация
3 Фев 2006
Сообщения
3,685
Репутация
435
Адрес
Новосибирск
Как я понимаю, чтобы сделать не только скрипт НПС в проге, но и, к примеру, ввести ему распорядок дня и простые скрипты диалога, нужны шаблоны с описание каждой функии, как в уроках ВАМа. А на это уйдет куча времени. Но если это сделать, тогда любой человек худо-бедно понимающий суть скриптового языка мог бы создать свой мини мод. Но это мечты. :)
А по поводу считывания, имеется ввиду, чтобы прога смотрела не на внутреннюю базу предметов и гильдий, а обращалась к файлам декомпилированных скриптов и брала наполнение оттуда, с возможностью добавлять при необходимости свои.
 

Marvin

Ополченец
Регистрация
13 Фев 2008
Сообщения
96
Репутация
1
Адрес
Ukraine
DRom
Насчет распорядка дня я уж помолчу, а то немало часов потратил на размышления как его удобно реализировать и всеравно бестолку :blink: Как не крути, а всеравно скрипт прийдется ручками править :angry: , но всеже постарался до минимума свести набор скриптов.

Да такая прога это мечта, которая считывает все с файлов игры. Этим я скорее займусь после выхода первой тестовой версии, так как работенка обещает быть трудной :) , но зато результат это почти полностью универсальная прога по созданию сктиптов. :rolleyes:
 

Kapitan_Greg

Воин Инноса
Регистрация
19 Окт 2007
Сообщения
351
Репутация
0
Да такая прога это мечта, которая считывает все с файлов игры. Этим я скорее займусь после выхода первой тестовой версии, так как работенка обещает быть трудной , но зато результат это почти полностью универсальная прога по созданию сктиптов.
Да уж, ведь главное желание и настойчивость, а остальное само придет со временем и в конце концов, пусть не сразу, но получится удобная и полезная прога. Главное не забрасывать это дело, а мы чем сможем поможем! ;)
 

DRom

Как Бэ Администратор
Команда форума
Регистрация
3 Фев 2006
Сообщения
3,685
Репутация
435
Адрес
Новосибирск
Marvin
Насчет распорядка дня я уж помолчу, а то немало часов потратил на размышления как его удобно реализировать и всеравно бестолку
Я имел ввиду, что помимо атрибутов непися были бы пустые ячейки, где бы можно было вносить выйпоинты из спайсера, а рядом окошко, где на выбор были бы доступны интервалы времени и варианты действий (пить, есть, спать и т.д.)
 

Marvin

Ополченец
Регистрация
13 Фев 2008
Сообщения
96
Репутация
1
Адрес
Ukraine
Я имел ввиду, что помимо атрибутов непися были бы пустые ячейки, где бы можно было вносить выйпоинты из спайсера, а рядом окошко, где на выбор были бы доступны интервалы времени и варианты действий (пить, есть, спать и т.д.)
Ты не пробовал программировать? А то ты так все описал, точно как у меня в проге :)
 

Marvin

Ополченец
Регистрация
13 Фев 2008
Сообщения
96
Репутация
1
Адрес
Ukraine
Привет.
Наконец то я дописал прогу и предлагаю всем желающим протестировать ее.
Сразу скажу, что прога очень сырая, только сегодня убрал последние баги (это я так думаю :SUPER lol:).
Также много вещей еще не реализировано, так как постоянно возникают новые идеи и т. п.
И еще, полное создание монстра пока еще не предусмотрено :'( , можно создавать только тех монстров у которых нет оружия.
Файлик весит 1,3 МБ качаем тут

Пожалуйста пишите про найденные баги, глюки недочеты и т. п.
 

Marvin

Ополченец
Регистрация
13 Фев 2008
Сообщения
96
Репутация
1
Адрес
Ukraine
Итак, кто может, тот пожалуйста пускай поможет :blink:
Затею, DRom'а, считывания инфы с самих файлов почти провернул. Сейчас прога уже тянет данные с файлов оружие ближнего и дальнего боя, и броню. Но вот с гильдиями никак :Paladin: , откуда концы растут незнаю, полностью запутался. В Готики 2, Аддон эти данные с горем пополам можно прочитать с файла _Intern\Constants.d, в Глобал моде такой файл повидимому ребята не трогали, но всеравно откуда растут ноги у гильдий мне невдогон. Как связать то что видим в проге и то что пишется в скрипте.... Кто знает или может предложить альтернативную затею???
 

MaGoth

Хранитель форума
Регистрация
30 Авг 2006
Сообщения
2,024
Репутация
0
Адрес
Самара
Marvin

В чем у тебя с гильдиями конкретно проблема, опиши ее подробнее.
 

Marvin

Ополченец
Регистрация
13 Фев 2008
Сообщения
96
Репутация
1
Адрес
Ukraine
Ну вот для примера возьму файл с оружием Items\IT_Melee_Weapon.d, так вот оружие описывается в скриптах так:
сначала идет
instance мое_оружие(класс_итемка)
{
name[0] = "имя которое мы видим в игре";


так вот соответственно параметр name[0] можно вывести в прогу, а instance будет в скрипте. С гильдиями я такого провернуть немогу, ибо незнаю откуда у них растут ноги. В файле Text.d есть их перевод (то есть на русский язык), а вот где имено описаны сами гильдии я без понятия. У меня вывод таков: новую гильдию создать нельзя, значит концы зарыты в екзешнику, но как прослеживается связь между GIL_PAL и тем что мы видим в игре, то есть "Паладин". :blink:
 

Marvin

Ополченец
Регистрация
13 Фев 2008
Сообщения
96
Репутация
1
Адрес
Ukraine
Ну единственная связь это этих два файла Text.d и Constants.d тут можно взять и перевод гильдии и ее значение в скрипте...Хм видимо попроще, а главное надежней варианта нет ;)
 

MaGoth

Хранитель форума
Регистрация
30 Авг 2006
Сообщения
2,024
Репутация
0
Адрес
Самара
Ну это да, именно на этом и строится гильдия в скриптах, например:

const int GIL_NONE = 0;

GIL_NONE - Константа
= 0 - Присвоенное значение (для двига и таблицы соотношения)
"Без гильдии" - Визуальное отображение в игре

Также, нужно смотреть что присваивается константе, и уже в зависимоти от этого плясать, т.к. в разных модах константа может быть изменена как сама так и ее присвоенное значение.
Здесь нужно внешний файл создавать, при анализе содержимого файлов: Text.d и Constants.d. После чего полученные данные по проекту будут вносится в какой-то файл и прога уже в дальнейшем будет смотреть по гильдиям и всему что с ними связано на него, при работе с определенным пректом.

Всего человеческих гильдий 15, взяты из Глобала.:
const int GIL_NONE = 0;
const int GIL_HUMAN = 1;
const int GIL_PAL = 1;
const int GIL_MIL = 2;
const int GIL_VLK = 3;
const int GIL_KDF = 4;
const int GIL_KDW = 4;
const int GIL_NOV = 5;
const int GIL_GUR = 10;
const int GIL_SEK = 12;
const int GIL_TPL = 15;
const int GIL_DJG = 6;
const int GIL_SLD = 7;
const int GIL_BAU = 8;
const int GIL_BDT = 9;
const int GIL_STRF = 3;
const int GIL_DMT = 11;
const int GIL_OUT = 12;
const int GIL_PIR = 13;
const int GIL_BAD = 14;
const int GIL_EMPTY_D = 15;
const int GIL_PUBLIC = 15;

const int GIL_SEPERATOR_HUM = 16;

Шестнадцатая идет не как гильдия, а как разделилель между монстрами и людьми. Изменять ее нельзя, ни саму константу, ни ее значение. Связано с двигом на прямую.
 

Marvin

Ополченец
Регистрация
13 Фев 2008
Сообщения
96
Репутация
1
Адрес
Ukraine
Также, нужно смотреть что присваивается константе, и уже в зависимоти от этого плясать, т.к. в разных модах константа может быть изменена как сама так и ее присвоенное значение.
Вот это меня и беспокоит, ведь в Готике 2, Аддон константы гильдий прописаны в файлеConstants.d, а у ребят в Global_mod'е в файле Strory_Globals.d...то есть выходит уже ошибка в проге, она не найдет хм... или точнее неправильно подставит значения...просто считает их с Constants.d и все, а на самом то деле они изменены. ;)
 

Marvin

Ополченец
Регистрация
13 Фев 2008
Сообщения
96
Репутация
1
Адрес
Ukraine
И второе, если с оружием все понятно, то есть там есть за что зацепиться (instance присутствует однозначно), то к гильдии конкретной зацепки нет, с таким успехом я в своем моде могу написать NEW_GUILD_VOVANA :) , а как ее найти в файле Constants.d я без понятия...

P. S. это только в том случае, если слово GIL не зарезервированное слово, или же не выступает определенным идентификатором, который указывает на ... короче гильдию :SUPER lol: ого...вот это выдал...
 

MaGoth

Хранитель форума
Регистрация
30 Авг 2006
Сообщения
2,024
Репутация
0
Адрес
Самара
Marvin

...а у ребят в Global_mod'е в файле Strory_Globals.d...
Нет у нас все правильно как и должно быть в файле Constants.d. Похоже ты декомпилировал скрипты, потому у тебя так это декомпиллер Вама пересортировывает содержимое файлов. Отсюда ноги этого дела растут. :)

И второе, если с оружием все понятно, то есть там есть за что зацепиться (instance присутствует однозначно), то к гильдии конкретной зацепки нет, с таким успехом я в своем моде могу написать NEW_GUILD_VOVANA , а как ее найти в файле Constants.d я без понятия...
Почитай тотур Вама, привязку можно сделать к классу оружия через флаги оружия, и к гильдия привязать также. ;)
 

Marvin

Ополченец
Регистрация
13 Фев 2008
Сообщения
96
Репутация
1
Адрес
Ukraine
Почитай тотур Вама, привязку можно сделать к классу оружия через флаги оружия, и к гильдия привязать также.
Привязка и сортировка на одноручное и двуручное или лук, арбалет есть и именно через флаги :).
Насчет Constants.d, то да я декомпилил скрипты и у меня вообще нет этого файла, а гильдии прописаны в Strory_Globals.d..
Насчет привязки гильдий непонял...ща взгляну может чтото нарою интересное, так скажем "рожу идею" B)Цитата

(MaGoth @ 14.04.2008 - 10:26)
Похоже ты декомпилировал скрипты, потому у тебя так это декомпиллер Вама пересортировывает содержимое файлов. Отсюда ноги этого дела растут. smile.gif

Непонял, а что можно еще както взглянуть на нормальный вид скриптов не декомпилируя их? unsure.gif

DRom ок понял
 

MaGoth

Хранитель форума
Регистрация
30 Авг 2006
Сообщения
2,024
Репутация
0
Адрес
Самара
Marvin

Они идут вместе с полной версией ГМДК2 ~ 70 Mб, язык немецкий.
Но и декомпиллятор, тоже иногда декомпилит как нужно, здесь воля случая...

Если судить о коде он расположен не правильно, а с программной точки зрения там все верно. ;)
 

Marvin

Ополченец
Регистрация
13 Фев 2008
Сообщения
96
Репутация
1
Адрес
Ukraine
Если судить о коде он расположен не правильно, а с программной точки зрения там все верно. ;)
Я вообще не вижу логики между файлом Constnts.d и Text.d, ну ладно в Text.d хоть расписано откуда идет начало гильдий const string TXT_GUILDS[66] =
{........и пошли имена гильдий, а Constnts.d епт как будто знаешь с фонаря взяли это размещение, типа шли ребята с пивом по улице и вели рассуждения по поводу размещения этого кода..., и судя по коду выпили они тогда немало...Ладно не мне судить. Вообщем то я хотел спросить всетаки как связать эти данные, а точнее как вообще найти описания гильдий в файле Constnts.d???
 
Сверху Снизу