Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Город Мастеров _ Custom Content _ Работа с 2da таблицами

Автор: NeuroSLK Apr 27 2004, 05:50

2 Ice Blade:
На форуме realms.ru прочитал тему про 2da'шники. Вчера попробовал вставить свой скилл, четко следовал всему, что вы написали, но версия у меня не SoU, а HOTU поэтому я решил не дописывать обычный dialog.tlk, а создал новый - модульный. А уже в новый добавил две записи: 120000 и 120001 (может в этом и проблема). .nss вытащил из .bif'a, изменил, положил в хак. scripts.2da - туда-же. В тулсете подключил и хак и .tlk . Ничего sad.gif

skills.2da:

27 строчка (с 20 по 26 все ****), ссылки на 120000 и 120001 есть.

Автор: Ice Blade Apr 27 2004, 15:53

Цитата
А уже в новый добавил две записи: 120000 и 120001

- надо же, а я думал что кастомные тлк работают с 16777216 - го ИД smile.gif

Цитата
.nss вытащил из .bif'a, изменил, положил в хак. scripts.2da - туда-же.

Устаревшая информация, устаревшая тема, моя лень biggrin.gif,- Не надо трогать nwscript.nss.

Ладно объяснять в сотый раз не буду, опиши свой скилл - на нём и объясню.

Автор: NeuroSLK Apr 27 2004, 19:56

Да скрипт в принципе иностранные языки smile.gif как у тебя и был
Чего, такой огромный ID поставить можно? Как? У меня вроде нельзя... sad.gif

Автор: NeuroSLK Apr 29 2004, 14:11

2 Iceblade: вопрос по тайлсетам. Каким образом реализовать такую вещь - вот допустим берем обычный невер. Тайлы домов расположены на расстоянии 1 тайла, при этом между ними обычная мостовая. Если же расстояние между ними 2 и больше, то вплотную к домам так и идет об. мостовая, а междук - как бы дорога... Я конечно отстойно обьясняю, но может ты понял о чем я?

И еще - как сделать, чтоб отайлы одного типа (но разные их модификации) появлялись в случайном порядке (ты в уроке помойму этого не коснулся)?

Буду очень признателен.

Автор: Ice Blade Apr 29 2004, 15:33

... сейчас у меня мало времени расписывать всё подробно (в выходные займусь... возможно smile.gif ), по этому в крацах:

Цитата
Чего, такой огромный ID поставить можно? Как? У меня вроде нельзя... 

Можно smile.gif, если не влазиет просто подвинь столбцы.

Цитата
Тайлы домов расположены на расстоянии 1 тайла, при этом между ними обычная мостовая. Если же расстояние между ними 2 и больше, то вплотную к домам так и идет об. мостовая, а междук - как бы дорога... Я конечно отстойно обьясняю, но может ты понял о чем я?

Неа не понял biggrin.gif, но думаю это касается "правил" размещения тайлов (PRIMARY RULES и т.д и т.п)

Цитата
И еще - как сделать, чтоб отайлы одного типа (но разные их модификации) появлялись в случайном порядке (ты в уроке помойму этого не коснулся)?

А этого и ненужно было касаться, тайлы размещаются по определённым правилам (на этот раз не столько PRIMARY RULES, сколько правила стыковки поверхностей TopLeft, TopLeftHeight, TopRight и т.д ), - т.е тайлы имеющие одинаковые правила (и не находящиеся в группе) будут подставляться игрой в случайном порядке.

Автор: NeuroSLK Apr 29 2004, 15:51

Хм... У меня видимо старый тлк-едитор: пишет - введите значение от 1 до 16777215...
Как называется тот, которым пользуешься ты? sad.gif

Автор: NeuroSLK Apr 29 2004, 18:04

Ох... совсем я с этим запутался... наверное чето не так делаю... добавлять новые записи (описания вещей, названия тайлсетов и т.д.) надо начиная с 16777216? То есть ResRef должен быть начиная с этого числа... Так как я делаю кустомный тлк, который буду потом добавлять к модулю, до 16777216 все записи должны быть пустыми... Когда я этот тлк сохраняю у меня получается файл размером 65 мегов... в нем одна запись...

P.s. какую прогу выбрать? я уже три с ваулта скачал, так на всех ограничение до 16777215... sad.gif sad.gif

cray.gif

Помогите плиз, а то нам столько всего делать надо... ужас... и самое страшное, что вроде как на простом уже запорка... cray.gif

Автор: Ice Blade Apr 29 2004, 19:22

Опять в крацах: В КАСТОМНОМ ТЛК НАЗНАЧАЕШЬ НОМЕР 1 (или 0 точно непомню smile.gif ), А В СКАЖЕМ 2ДА ЭТО СООТВЕТСТВУЕТ НОМЕРУ 16777216. - надеюсь понятно объяснил biggrin.gif

Автор: NeuroSLK Apr 29 2004, 19:53

Ох, спасибо огромное! Теперь все ясно blum3.gif

Но у меня снова вопросы (как только я надоем, так и скажите biggrin.gif ):

1. в файле .set тайлсета есть такой параметр EnvMap? Это текстура какая то или что?

2.

...
[TILE0]
Model=N01_UGV - имя нашего тайла (верхний угол).
WalkMesh=msb01 - пишите тоже что у меня.
TopLeft=Desert - тип местности с которым стыкуется угол
TopLeftHeight=1 - этот угол у нас на высоте
TopRight=Desert
...

откуда берется значение WalkMesh ("пишите тоже что у меня") - а разве тут не надо указывать название обьекта с модификатором MDL walkmesh из модели тайла, который мы описываем?

3. Полазил я с помощью NWNViewera по bif-файлам, конечно поначалу ошеломляет, сколько всего со всем этим можно сделать... А все ли можно?
Пример: в бифе лежат иконки, курсоры, текстуры менюшек и все остальное... Если сделать свой курсор, назвать его точно так же как и в самой игре, раземры естественно соблюсти, а потом положить в хак... В модуле оно будет работать или не все так просто?

Автор: Ice Blade Apr 30 2004, 04:52

Цитата
Но у меня снова вопросы (как только я надоем, так и скажите  ):

- Скажим smile.gif

1. в файле .set тайлсета есть такой параметр EnvMap? Это текстура какая то или что?
Это EnvMap он же Environment Map - если не знаком с МАХ-ом, то карта отражений.


Цитата
2.

...
[TILE0]
Model=N01_UGV - имя нашего тайла (верхний угол).
WalkMesh=msb01 - пишите тоже что у меня.
TopLeft=Desert - тип местности с которым стыкуется угол
TopLeftHeight=1 - этот угол у нас на высоте
TopRight=Desert
...

откуда берется значение WalkMesh ("пишите тоже что у меня") - а разве тут не надо указывать название обьекта с модификатором MDL walkmesh из модели тайла, который мы описываем?


Нет ненадо, здесь указывается тип и т.п. спецефичные функции WalkMesh, в простом же случае WalkMesh находится в одноимённом с тайлом файле (правда с расширением не mdl, а wok) и ссылка на него идёт не с set-файла, а из самой модели.


Цитата
3. Полазил я с помощью NWNViewera по bif-файлам, конечно поначалу ошеломляет, сколько всего со всем этим можно сделать... А все ли можно?
Пример: в бифе лежат иконки, курсоры, текстуры менюшек и все остальное... Если сделать свой курсор, назвать его точно так же как и в самой игре, раземры естественно соблюсти, а потом положить в хак... В модуле оно будет работать или не все так просто?


В 95% случаев будет good.gif

Автор: NeuroSLK Apr 30 2004, 06:32

То есть типы Walkmesha бывают разными?
А где эти типы узнать, они где-то указаны?
И конкретно какие характеристики у msb01? unsure.gif

Автор: NeuroSLK Apr 30 2004, 14:20

2 Ice Blade: если у вас будет свободное время, можете разобраться с проблемой. Я уже 4 раз заново начинаю, а ничего (хотя некоторые плоды есть)

мои файлы:

dwt_floor.mdl
dwt_floor.wok
dwt_floor.tga
dwtpalstd.itp
dwt.set

dwt.set:

[GENERAL]
Name=DWT01
Type=SET
Version=V0.1
Interior=0
HasHeightTransition=1
EnvMap=tcn01__ref01
Transition=4
DisplayName=1605
Border=Asfalt
Default=Asfalt
Floor=Asfalt

[TERRAIN TYPES]
Count=1

[TERRAIN0]
Name=Asfalt
StrRef=63297

[TILES]
Count=1

[TILE0]
Model=dwt_floor
WalkMesh=msb01
TopLeft=Asfalt
TopLeftHeight=1
TopRight=Asfalt
TopRightHeight=1
BottomLeft=Asfalt
BottomLeftHeight=0
BottomRight=Asfalt
BottomRightHeight=1
Top=
Right=
Bottom=
Left=
MainLight1=1
MainLight2=1
SourceLight1=1
SourceLight2=1
AnimLoop1=1
AnimLoop2=1
AnimLoop3=1
Doors=0
Sounds=0
PathNode=B
Orientation=0
VisibilityNode=A
VisibilityOrientation=0
ImageMap2D=MICN01_A01

dwtpalstd.itp точно такой же, как в вашем уроке (только вместо Desert - Asfalt)...

ID из dialog.tlk я нигде не менял (оставил те же самые, какие были в тайлсете из невера)

Тулсет вроде бы чего то такое видит, когда создаешь новую область, только ячейка без названия, а потом когда создаю область - "не могу создать область... "

P.S. имеет ли смысл поставить английскую вместо русской, может оно исправится (а то вдруг чего там пираты наделали sad.gif )

Автор: LexSuS Apr 30 2004, 14:49

чесно говоря у меня была похожая проблема присоздании нового типа локаций - название появлялось, но при запуске выдавал "не могу создать область... ". так что пришлось делать замену локаций, упростив себе жизнь.

Автор: Ice Blade Apr 30 2004, 15:05

Цитата
2 Ice Blade: если у вас будет свободное время, можете разобраться с проблемой. Я уже 4 раз заново начинаю, а ничего (хотя некоторые плоды есть)

Хватит обращаться на ВЫ, хоть у меня и есть самомнение но оно не такое Большое smile.gif, а время будет уж если не раскажу то хоть подскажу.

Так посмотрим:
WalkMesh=msb01
PathNode=B
VisibilityNode=A
- про эти значения вообще забудь пока не разберёшся с остальным (а так же 3ds Max или что-то вроде него ), т.к они связаны во многом с "оптимизацией" проходимости причём не для игрока, а для AI.

Из всего увиденного я могу назвать пока только одну ошибку это:
Цитата
TopLeft=Asfalt
TopLeftHeight=1
TopRight=Asfalt
TopRightHeight=1
BottomLeft=Asfalt
BottomLeftHeight=0
BottomRight=Asfalt
BottomRightHeight=1


Ну не может тайлсет состоящий из одного тайла ТАК стыковаться с подобными ему. Попробуй изменить на это:
TopLeftHeight=0
TopRight=Asfalt
TopRightHeight=0
BottomLeft=Asfalt
BottomLeftHeight=0
BottomRight=Asfalt
BottomRightHeight=0
Должно помоч!

Автор: spyon Apr 30 2004, 18:37

А я хотел спросить, поддерживает ли MdlPluginSuit 1.12 анимацию.

Автор: NeuroSLK Apr 30 2004, 18:49

тот который я тебе дал - точно поддерживает

Автор: spyon Apr 30 2004, 18:50

Сорри, чуть-чуть не туда обратился

Добавлено в [mergetime]1083340329[/mergetime]
А ты пробовал вставлять аним?

Автор: NeuroSLK Apr 30 2004, 18:57

Эх не помогло...
Все равно не создает sad.gif
Может с .тлк ошибка??

Мой кастомны тлк:
0 Название тайлсета
1 Асфальт

К модулю подключил:
ссылки из .сет и .итп фалов
16777216 и 16777217 соответственно

В тулсете обысно ничего не пишет, а иногда "Неправильный указатель" (у меня к сож. только русская версия)
А отом - "не могу создать область"... sad.gif

З.Ы. Макс я тьфу-тьфу-тьфу знаю... blum3.gif

Автор: Ice Blade May 1 2004, 06:08

ХЗ... бери эти файлы и шли мне на jrs@surguttel.ru, - я посмотрю smile.gif

Автор: spyon May 1 2004, 09:06

А я прочитал урок по втавке своего тайла и чето никак не пойму откуда брать Strref, вернее я знаю, что он берется из tlk(в уроке написан какой-то)?

Автор: NeuroSLK May 1 2004, 09:20

Берешь делаешь в тлк. фале (своем кустомном) запись (вверху Ice Blade писал об этом), а потом уж на нее ссылку...

P.S. По поводу этого надо переговорить, чтоб конфликтов не было (на техническом форуме).

Автор: NeuroSLK May 1 2004, 10:41

2 Ice Blade: ужо послал biggrin.gif посмотри плиз sad.gif

Автор: spyon May 1 2004, 11:06

А как мне тлк открыть?
Добавлено в [mergetime]1083399199[/mergetime]
Давайте я попробую рассказать по порядку, а вы скажите где я ошибаюсь.

Я создаю модель, экспортирую ее. Получаю два файла .mdl и .wok .
Потом создаю .set файл прописываю там настройки.
Потом там какайто запарка с Itp тулсетом. Скажите пожалуйста по порядку, что нужно делать с itp .

Автор: NeuroSLK May 1 2004, 11:49

ну в уроке все аписано же, даже картинка прилагается...

Автор: Ice Blade May 1 2004, 13:42

ХА ХА ХА ХА ХА ХА - ЩАС УПАДЁТЕ lol.gif lol.gif lol.gif
Вся загвоздка была ... ну неповеришь.... lol.gif
действительно неповеришь biggrin.gif
Всё дело в
Version=V0.1 - оказуется так нельзя smile.gif
ставь
Version=V1.0 - обязанно зароботать!

Автор: NeuroSLK May 1 2004, 18:19

АААААААААААААААААААААААААААААААААААААААААААААААГРОМНОЕ СПАСИБО!!!!!!! biggrin.gif biggrin.gif biggrin.gif biggrin.gif biggrin.gif
Я бы сам в жизнь не дагодался blum3.gif

Автор: NeuroSLK May 2 2004, 06:55

Однако вопросы не кончаются.
Я вот только не понимаю каким образом осуществляется связь палитры (я так понимаю это .itp файл) с тайлами.
В палитре мы делаем элементы с ссылками на записи в .tlk и на вид Terrain'а из .set файла. В самом же .set файле я как-то не нашел ни одной связи между Terrain'ами и тайлами (то есть у меня сначала написано [terrain types]count 2, потом просто описываются два terraina (название и ссылка на тлк файл), а потом вроде как в случайном порядке идут все тайлы (и в неверовских сетах вроде бы так же), а к какому виду terraina они принадлежат не ясно...
P.S. Палитры в тулсете вобще не появляется... unsure.gif

Автор: Ice Blade May 2 2004, 07:41

Цитата
Я вот только не понимаю каким образом осуществляется связь палитры (я так понимаю это .itp файл) с тайлами.В палитре мы делаем элементы с ссылками на записи в .tlk и на вид Terrain'а из .set файла.

Я же кажется объяснял по поводу itp:
В самом начале разворачиваешь Element = 0 -> List Main, - и видишь три группы:
Element = 0
Element = 0
Element = 0
ну так вот первая из них это Features (они же "особенности" ) задаются двумя параметрами:
unit32 strref (либо через string name - но об этом потом) - это название.
resref resref - это собственно имя тайла.

Вторая это группы:
описание тоже самое, но указывается один тайл входящий в группу (желательно центральный)

Третья это местность:
Там всё ещё проще достаточно указать имя и тип местности, НВН сам подберёт тайлы соответствующие правилам размещения (помнишь TopLeftHeight=0, TopRight=Asfalt и т.д ) данного типа местности в случайном порядке (если тайлов местности больше одного ) расположит их.

Цитата
P.S. Палитры в тулсете вобще не появляется... 

Ещё бы, а откуда она появится если тлк-шник подключается к модулю потом smile.gif, да и вообще желательно избежать использования кастомного тлк в тайлсетах (тем более что он там и не нужен biggrin.gif )

Автор: NeuroSLK May 2 2004, 08:33

Так в том то и дело, что тлк к модулю я уже подключил... А политры вообще нет. Пусто. Ни Особенностей, ни Группы, ни Местность, ничего...

У меня есть два Terraina: Asfalt и Building. И есть два тайл: один - плоскость (якобы асфальт), а другой - стена. Нигде же не указано к какому виду местности принадлежат эти тайлы...

Автор: Ice Blade May 3 2004, 14:40

Цитата
У меня есть два Terraina: Asfalt и Building. И есть два тайл: один - плоскость (якобы асфальт), а другой - стена. Нигде же не указано к какому виду местности принадлежат эти тайлы...

Ну здрасти неуказанно, а как насчёт ЭТИХ строк в описании тайлов? :
TopLeft=Asfalt
TopLeftHeight=0
TopRight=Asfalt
TopRightHeight=0
BottomLeft=Asfalt
BottomLeftHeight=0
BottomRight=Asfalt
BottomRightHeight=0
- Уже ясно что этот тайл будет стыковаться с поверхностями типа Asfalt ( и сам в том числе будет являться поверхностью типа Asfalt )
Палитра это всего лишь палитра, она есть только для того чтобы что-то поставить, а вот можно ли это туда ставить определяет сет файл, чего тут непонятного ?
Ещё раз повторю: НВН САМ ВЫБЕРАЕТ ТАЙЛЫ В СООТВЕТСТВИИ С ПРАВИЛАМИ РАЗМЕЩЕНИЯ.


Цитата
Так в том то и дело, что тлк к модулю я уже подключил... А политры вообще нет. Пусто. Ни Особенностей, ни Группы, ни Местность, ничего...

1. попробуй обойтись без тлк (задай значения из стандартного)
2. возможно нужны тайлы перехода, т.е тайлы где указанно что-то вроде
TopLeft=Asfalt
TopLeftHeight=0
TopRight=Building
TopRightHeight=0
BottomLeft=Asfalt
BottomLeftHeight=0
BottomRight=Asfalt
BottomRightHeight=0
3. если всё это есть, то дело тогда в itp

Автор: NeuroSLK May 5 2004, 13:04

Вопрос: карту EnvMap можно свою использовать? Если да, то какой формат? Вставлять так же как и текстуры, в ХАК?

Автор: Ice Blade May 5 2004, 16:24

Цитата
Вопрос: карту EnvMap можно свою использовать?

В принцепе можно, но учти большие мультитекстуры сильно загружают движек.

Цитата
Если да, то какой формат?

кратный размер (16х16, 32х32, 256х256 ... вплоть до 1024х1024 )
TGA, DDS, в некоторых случаях требуется сопровождение TXI файлом.

Цитата
Вставлять так же как и текстуры, в ХАК?

Думаю да.

Автор: NeuroSLK May 6 2004, 22:31

Чего такое trimesh? Видимо полезная штука, т.к. она в наличие практически в каждом неверском тайле...

Автор: NeuroSLK May 7 2004, 20:37

Я попробовал вставить свой placeable, все получилось, только не пойму, как сделать чтобы персонаж не проходил насквозь?

p.s. Если в максе я меняю праметры tile и rotate в настройках мапы, это сохранится при экспорте?

p.p.s Как создать "размазанную" текстуру обьекта? Unwrap'ом, или как?

p.p.p.s. Поддерживает ли игра модификатор UWV Map?

Автор: Ice Blade May 9 2004, 20:35

Цитата
Я попробовал вставить свой placeable, все получилось, только не пойму, как сделать чтобы персонаж не проходил насквозь?

Сделай плоскость под плейсиблом, и назначь на неё модификатор MDL Placeable/Door с влючённым PWK
При экспорте получишь свой Mdl-ник и ещё один PWK-шник (который отвечает за проходимость)


Цитата
p.s. Если в максе я меняю праметры tile и rotate в настройках мапы, это сохранится при экспорте?

НЕТ, но примерно тоже самое ты можешь сделать через UVW Map или UVW Unwrap.

Цитата
.p.s Как создать "размазанную" текстуру обьекта? Unwrap'ом, или как?

Не понял что значит "размазанную" ?

Цитата
p.p.p.s. Поддерживает ли игра модификатор UWV Map?

Оф корс, только стек сверни после натягивания, а то заглючит.

Автор: NeuroSLK May 10 2004, 20:55

Лицо, тело и все остальное как бы по плоскоси растянуто... Ну не знаю как сказать lol.gif

Автор: NeuroSLK May 11 2004, 17:15

Я пробовал заменять GUI-тектурки всякие (указатели, иконки слотов брони в инвенторИ, кнопочки всякие и т.д.) - странное дело. В тулсете пишется: эти текстурки заменены (ну там есть такая функция проверки на конфликты, когда хак подключаешь), тобишь все должно работать.
А в игре ни фига, как будто какая то фигня всегда сбрасывает на дефолтные...

2 Ice Blade: Ты пробовал менять интерфейс?

P.S. Причем остальные ресурсы спокойно заменяются (loadsceens и др.). Не заменяется только то что в gui - бифе... Может надо еще чето сделать (я то че заменить надо в хак кладу и всё)..

Автор: Ice Blade May 16 2004, 16:25

Цитата
2 Ice Blade: Ты пробовал менять интерфейс?

Если честно, не очень на этом зацикливался biggrin.gif (есть куда более важные и интересные вещи)

Цитата
А в игре ни фига, как будто какая то фигня всегда сбрасывает на дефолтные...

Хех.. всё не так просто как хотелось бы, я тоже встречал некоторые вещи которые отказывались работать через хак, но при этом спокойно работали через overide shok.gif . Но и это ещё не всё,- дело в том что в самом экзешнике nwmain.exe, - так же существуют некоторые курсоры и кнопки shok.gif, отчего и размер его зашкаливает за 5 мб (эх жаль он декомпиляции не подлежит, а так бы я там много чего поправил :devil: )

Автор: LexSuS Jul 5 2004, 07:50

Ice Blade
когда-то ты мне говорил что 2да в сочитании со скриптом могут творить чудеса,
так вот:
имеем footstepsounds.2da и 2 звука: шаги и постоянный, можно ли с помощю скпипта включать и выключать постоянный звук?

Автор: balrog Nov 18 2004, 23:00

У меня возникла проблема с 2да. Мне препёрло вписать в 2да пару модэлей, но как отурываю ету таблтцу ... когда она грузится, появляется эррор, он гласит: "Run-time error '308' Invelid properti value" ... и чё мне терь дэлать?

Автор: DBColl Nov 19 2004, 12:24

balrog
Чем ты открываешь эту таблицу? Блокнотом?

Автор: balrog Nov 19 2004, 15:37

NWN2DAEdit swoon.gif ........ ща качаю с ваулта другие проги ... мож подскажи самую самую, шоб всё открывало

Автор: DBColl Nov 19 2004, 18:01

БЛОКНОТ. good.gif

Автор: balrog Nov 19 2004, 18:06

Ну я тут откопал другую прогу.... ты лучше мне скажи, вот я тут вставил пару новых модэлей, и удолил старых, но я когда удалил старые увидел шо все модэли в тулике (тулсете) сбиты с порядка .... так я как понял надо вместо того шоб кдолять строчки писать шо они типо РЕЗЕРВИРОВАННЫЕ ?

Автор: DBColl Nov 19 2004, 18:26

А нафига ты удалял?!.. Просто добавил в конец свои модели и все!.. На кой тебе удаление? unsure.gif

Автор: balrog Nov 19 2004, 18:40

ай, просто ета Таблица уже гатова была, а модели некоторые были левинькие и я не хотел их держать в хаке шоб использовать из в одном мэппе, или воще не использовать.

Автор: Lemegeton Nov 27 2004, 15:48

Эээ... Если кому времени не жалко, обучите пожалуйста, как новые Item'ы делаются? Что-то не пойму, какие 2da'шки править? Где картинки итемов добавлять?

З.Ы. http://nwn.bioware.com/neverwinternights/misc/1.62HotU-2dasourcefull.zip лежат ВСЕ 2da'шки от HoU! Уже вытащенные. 622Кб.

Автор: Lex Nov 27 2004, 20:37

для нового типа айтемов тебе baseitem нужен, если я не ошибаюсь.
А потом сами новые айтемы идут в хаке без прописывания в 2да, как например новые щиты и тд.

Автор: Lex Nov 28 2004, 00:08

Прописываю в 2дашке polimorph пару своих строк (на безопасных строках), однако константы полиморфа, которые я прописал в этом файле, не появились в скрипт эдиторе и я не смог сдлать эффект с моей констатной.
Вопрос:
что я сделал не так?
(в 2да все правильно написал. Взял строку, которая там есть и поменял имя констаты..все остальное не трогал. Потом ее копию, сменил имя и модель (все согласно appearence.2da))

Автор: Lex Nov 28 2004, 14:03

еще вопрос.
есть безопасные строки для каждой 2да ...скажем в какой-то 2да это от 200.
Ьам есть только 50. Надо ли делать с 51 по 200 пустых строк или можно сразу после 50 написать 200-ую ?

Автор: Lemegeton Nov 29 2004, 09:37

Lex: Не-а, нельзя после 50-той написать 200-тую. Это вытекает из Биоварного описания 2да-шек, где написано:

QUOTE
Never delete a row.

Перевод: Никогда не удаляйте строку.
(Если рассмотреть абстрактную ситуацию, что строки с 50 по 200 существуют, то пожелание написать после 50 сразу 200 есть ничто иное как удаление строк с 51 по 199.)

А как картинки-то добавлять? В каком формате и с каким именем файла?

Автор: DBColl Nov 29 2004, 16:31

Lemegeton
Колонка ID, где идут номера, фактически ничего не значит. Можно чтобы номера шли и непоследовательно. Все будет работать wink.gif.

Автор: Leon PRO Nov 29 2004, 16:59

В принципе номера колонок вообще ни на что не влияют...
Если будет такая ситуация

1
2
3
4
699

то на самом деле при считывании файла получится

1
2
3
4
5

поэтому и пишут обычно

1
2
3
4
5
6 **** **** ****
7 **** **** ****
---//---//---//---
---//---//---//---
698 **** **** ****
699 бла бла бла

Автор: Lex Nov 30 2004, 21:45

а что там с полиморфом у меня?

CODE

Прописываю в 2дашке polimorph пару своих строк (на безопасных строках), однако константы полиморфа, которые я прописал в этом файле, не появились в скрипт эдиторе и я не смог сдлать эффект с моей констатной.
Вопрос:
что я сделал не так?
(в 2да все правильно написал. Взял строку, которая там есть и поменял имя констаты..все остальное не трогал. Потом ее копию, сменил имя и модель (все согласно appearence.2da))


Автор: Lemegeton Dec 3 2004, 17:44

Lex: Дык, братишка, опаньки... Надо же еще эту константу в скрипты вписать. Обычно в nwscripts.nss. Вроде:

CODE
const int POLYMORPH_xxx_xxx = <номер строки в 2да>.

Автор: Lex Dec 3 2004, 18:45

ясно. Спасибо.

Автор: Ice Blade Dec 4 2004, 10:27

QUOTE (Lemegeton @ Dec 3 2004, 19:44)
Дык, братишка, опаньки... Надо же еще эту константу в скрипты вписать. Обычно в nwscripts.nss. Вроде:

Не правильный ответ - Лекс(хотя это больше к ДБ) впомни сколько матов вызывало использование nwscript.nss в первых вариантах хаков Левора. Тем более что решение гораздо проще, - я же давал описание к константам всевозможного полиморфа в хаках. - Lemegeton - правильно сказал это константа вида int POLYMORPH_xxx_xxx = <номер строки в 2да>. (без const само собой) - только вот ошибся местом,- трогать nwscript.nss ненужно достаточно дать эту константу в самом скрипте с полиморфом smile.gif

Автор: Lex Dec 4 2004, 18:11

ну..я сам не нашел этот nwscripts.nss поэтому запихнул консту в скрипт полиморфа.. :-)

Автор: Lemegeton Dec 9 2004, 08:47

Была славная тема на старом Форуме. Ее еще Ice Blade вел. К сожалению она прекратилась на самом интересном месте - на spells.2da.

В связи с этим у меня возник вопрос.

help.gif help.gif help.gif

Как сделать новое заклинание???

Вроде со всеми столбцами (ну почти) разобрался. Где не разобрался, подставил значения из наиболее похожих заклинаний (строк), а вот на скрипте взял, да и запоролся. То есть, я его обозвал (в десятом столбце), создал файл с таким же именем+nss, а он, зараза такая, не вызывается. Что я сделал не так? dntknw.gif

Автор: Chimeric Dec 9 2004, 20:38

Мегетончик, ты меня так не пугай. Ты мне по полиморфу сколько советов надавал, а теперь оказывается, что ты не волшебник, а только учишься? aggressive.gif

Автор: Клемент Астилон Dec 10 2004, 02:22

У меня вроде остались старые Лексовские темы. Если хочешь можешь скачать их http://vgjsoft.h14.ru/admin/2dastuff.rar 2,69мб
А что конкретное спрашивай. Я с ними в свое время возился.

Смотря откуда вызываешь. Я хотел сделать как в ПРЦ фит в контекстном меню, вызываюший спелл.
Вот у меня все было как надо кроме появления фита в контекстном меню. Ты конкретный код показывай. Так не разобраться.

Автор: Lemegeton Dec 15 2004, 18:32

Chimeric: Не беспокойся. Меня просто где-то переклинило по-черному. Разберусь.

Clement Astilon: Гы. Я этот форум ВЕСЬ скатал.
Про конкретность:
Ну всю строку спела не надо, надеюсь? Спел у меня в книге появляется. Как ни крути.
В десятой строчке (ImpactScript) ставлю имя. Создаю скрипт <имя>.nss. В нем пишу что-нибудь типа speakstring('Da, da, da!') - стопудово должно работать же?! Ан не работает!!!

Автор: Lemegeton Dec 15 2004, 19:17

Нижайше прошу прощения за то, что обращаюсь к Вам со столь Ламерским вопросом. Я его уже отпостил где только мог. Хоть "караул" кричи.

Пытаюсь сделать новое заклинание.

Вроде со всеми столбцами (ну почти) разобрался. Где не разобрался, подставил значения из наиболее похожих заклинаний (строк), а вот на скрипте взял, да и запоролся. То есть, я его обозвал (в десятом столбце), создал файл с таким же именем + nss, а он, зараза такая, не вызывается. Что я сделал не так?

Заклинание появляется в книге как и должно. Если ставить стандартные скрипты - вызываются. Мой - нет. Для проверки я уже чего только туда не пихал. Вплоть до SpeakString. Не вызывается.

help.gif help.gif help.gif

Автор: Ice Blade Dec 15 2004, 20:11

Ну думаю ты сам догадался что тут всего нескольк вариантов:
- Либо чего-то нитуда поставил в 2да-шке ( проверить просто - берёш первое попавшеся заклинание и меняешь ему только имя скрипта - больше ничего нетрогая)
- Либо чего-то перемудрил со скриптом ( проверить тоже очень просто- достаточно скопировать код любого из работающих заклинаний и попробовать запустить с ним, если несработает значит дело не в скрипте )
- Ну и последний вариант - это так называемая "криворукость" (редко но бывает почти у всех biggrin.gif - у меня в том числе ),- сделал что-то мелкое и противное на что обычно никто не обращает внимания, причём возможно и ты сам незамечаешь хотя и знаешь что так нельзя сделать. Тут может помочь только полный - нет.. АБСОЛЮТНО полный пересказ своих действий, без "кратких" изложений.

Автор: Leon PRO Dec 16 2004, 15:46

Помню, в молодости сам делал новый закл, дык вот на скрипте постоянно спотыкался, пока не понял, что он просто напросто не компилируется из-за ошибки =).

З.Ы. Больше ничем не могу помочь, т.к. все было давно.

Автор: Anker Dec 16 2004, 18:59

Люди, помогите плиз! this.gif

Расскажите как редатировать 2da файлы в хаках. А то у меня после подключения некоторых из них получается заместь грибов деревья, а заместь заборов столы! dntknw.gif

good.gif

Автор: Lemegeton Dec 17 2004, 09:20

Anker: Старайся не редактировать строки, а добавлять их. Избежишь много-много неприятных "глюков". Да, не забывай обновлять копии в хаке. biggrin.gif

По поводу спелла: в-принципе-то, я правильно скрипт подключаю???

Автор: Anker Dec 17 2004, 14:39

QUOTE (Lemegeton @ Dec 17 2004, 09:20)
Anker: Старайся не редактировать строки, а добавлять их. Избежишь много-много неприятных "глюков". Да, не забывай обновлять копии в хаке.  biggrin.gif


Спасибо за совет, но мне кажется ты не совсем понял в чём проблема. good.gif

Я подключил хак из "Проклятья Левора" к своему модулю, и после загрузки модуля у меня заместь заборов столы, а заместь фонарей на улеце кресла. dntknw.gif Тоесть обьекты хака заменили мне объекты стандартной палитры. Меня интересует как сделать так, что бы объекты добавлялись к стандартным, а не заменяли их?
Кроме того я совсем не врубаюсь, как енто можно сделать? Я так понял, что надо редактировать 2da файл хака, но как, что и где надо прописать я не знаю. dntknw.gif
Вот. this.gif

pilot.gif

Автор: DBColl Dec 17 2004, 15:35

Anker
У нас в Проклятии собственная палитра. Мы не пользовались стандартной и вообще забили на нее, продублировав все объекты в Custom Palette, попутно переводя их на русский язык. Так что выход один - экспортировать палитру из Проклятия и импортировать ее к себе. И пользоваться после этого объектами из Custom Palette.

Автор: Anker Dec 17 2004, 18:41

QUOTE (DBColl @ Dec 17 2004, 15:35)
Anker
У нас в Проклятии собственная палитра. Мы не пользовались стандартной и вообще забили на нее, продублировав все объекты в Custom Palette, попутно переводя их на русский язык. Так что выход один - экспортировать палитру из Проклятия и импортировать ее к себе. И пользоваться после этого объектами из Custom Palette.

Пасиба! Попробую. yes.gif

Но всё же как редактировать хаки что бы не было такой фигни как у меня? pilot.gif

Автор: Ghost Dec 20 2004, 21:04

QUOTE (DBColl @ Dec 17 2004, 15:35)
Так что выход один - экспортировать палитру из Проклятия и импортировать ее к себе. И пользоваться после этого объектами из Custom Palette.

У меня стоит СоУ и Хоту по отдельности. Я хочу использовать Хак Левора в ХотУ, но идет наложение, как у Anker'a. Я экспортирую файлы из СоУ и пытаюсь Вставить в Хоту но он пишет что не находит нужного дополнения.

Автор: DBColl Dec 21 2004, 15:01

Ghost
Хм... Какого дополнения? Хака нашего? Или ресурсов Expansion Pack 1?

Автор: Ghost Dec 21 2004, 16:21

Expansion Pack 1

Автор: DBColl Dec 21 2004, 17:30

Вывод. Хех, надо ставить СоУ... buba.gif drag.gif

Автор: Anker Dec 21 2004, 18:37

Люды добрі! aggressive.gif
Тож скажите как редактировать хаки?! dntknw.gif
У меня такая фигня не только с Леворовским хаком!

Пли-и-и-и-з!!!

shout.gif shout.gif shout.gif

Автор: Ghost Dec 21 2004, 18:48

QUOTE (DBColl @ Dec 21 2004, 17:30)
Вывод. Хех, надо ставить СоУ... 

Угу, но наличие 40 уровней для прокачки Очень весомый довод в пользу ХотУ.

Автор: DBColl Dec 21 2004, 18:53

Anker
Что тебе именно нужно? Плэйсэблы? Монстры?
1. Открываешь соответственно стандартные placeables.2da и appearance.2da. Достать их нужно из 2da.bif NWN Explorer'ом или NWN Viewer'ом.
2. Открываешь эти же 2да-шки, лежащие в хаке.
3. В стандартный файл добавляешь те строчки из хаковского, которые в нем отсутствуют. Таким образом ты прилепишь ресурсы хака к стандартному 2да файлу.
4. После этого сохраняешь получившийся файл и пихаешь его в свой хак.

Вообще вся эта работа на примерах расписана в туториале Айвана у нас на сайте. Посмотри для начала его pdf-ку.
Добавлено в [mergetime]1103644479[/mergetime]
Ghost
Я имел в виду, надо ставить совместно СоУ+ХотУ и все у тебя будет в шоколаде! good.gif

Автор: Ghost Dec 21 2004, 19:12

QUOTE (DBColl @ Dec 21 2004, 18:53)
Я имел в виду, надо ставить совместно СоУ+ХотУ и все у тебя будет в шоколаде!

Шоколад у меня оказался просроченным. Я 20 раз совмещал обе версии (сначала Соу на ХотУ, потом ХотУ на СоУ) Игра нормально отображает обе версии в одной, но Аврора злобно матерясь предлагает только 4 локации (Город,деревня,подземелья,лес) открываю Левора и опять ругань Авроры. Локации открываются только доступные для создания, а все остальные пустое окно просмотра локации.

Автор: DBColl Dec 21 2004, 19:40

Ghost
Что-то у тебя вообще с НВН не то... sad.gif Вообще у народа вроде бы все нормально с отображением Левора в тулсе... Странно. Тебе надо бы искать сначала баги в том, почему же все-таки не ставятся нормально СоУ + ХотУ... buba.gif

Автор: Anker Dec 22 2004, 14:11

Ой пасиба пасибочки!!! yahoo.gif

yes.gif yes.gif yes.gif


Автор: Lemegeton Dec 23 2004, 19:09

clapping.gif clapping.gif clapping.gif clapping.gif clapping.gif
Урррряяяя, заработало!!!
clapping.gif clapping.gif clapping.gif clapping.gif clapping.gif

Понял! Нельзя "внешние" (в виде файлов) скрипты пихать. Если внутренние - все ОК, иначе - тупик!!! dntknw.gif

Ффуу. Думал, сошел с ума.... Крэйзанулся, по-ихнему. crazy.gif

Автор: DBColl Dec 23 2004, 19:37

КУЛ! МОЛОТОК. Поделись здесь опытом, плиз. Научи еще народ wink.gif.

Автор: Lemegeton Dec 23 2004, 19:44

DBColl: Подкалываешь, да? aggressive.gif
Вообще-то, я собирался добавить серию новых заклинаний полиморфа NPC-Henchman'ов (но не самого кастователя!) в различные виды драконов (дабы офигенно мощных NPC можно было делать на несколько ходов)... Чему тут учить-то? dntknw.gif Если грабли найду, тогда отпостю.

Автор: DBColl Dec 23 2004, 20:30

QUOTE (Lemegeton @ Dec 23 2004, 18:44)
DBColl: Подкалываешь, да?

Даже и не собирался. Более того, мне и самому хочется почитать, как это делается. yes.gif
QUOTE (Lemegeton @ Dec 23 2004, 18:44)
Чему тут учить-то?Если грабли найду, тогда отпостю.

Может оформишь в виде статьи (со скриншотами)? На новый сайт выложим wink.gif.

Автор: Lemegeton Dec 24 2004, 13:57

Лирическое отступление: Первые грабли, на которых я попрыгал, являли собой недостаток информации про сам SPELLS.2DA. Я, честно говоря, поражен. Ice Blade в описании SPELLS.2DA на старом форуме дал его гораздо более полно и точно, чем здесь в статьях. Непонятно. Посему, проведя свое маленькое расследование в данной области, привожу своё:

Итак, его величество SPELLS.2da

ID, Label - как и везде.

Name - Идентификатор из tlk файла. Если из кастомного то к идентификатору надо добавить 16777216 (это расспространяется на ЛЮБУЮ ссылку на tlk).

IconsRef - иконка заклятия

School - школа магии, к которой принадлежит заклинание(буква идентификатор из spellschools.2DA)

Range - зона поражения(P- сам персонаж,T - прикосновение, S - малая, M - средняя, L - большая).

VS - Vocal (устная) и Somantic (рукамимахательная) составляющие заклинания. Это определяет достаточно много параметров. Например, есть фит (или скил, пожизни путаю) на колдовство без соматической части. Т.е. можно кастовать заклинание в состоянии окаменения. v - голос, s - руки, vs - и то, и то, "-" - ни то, ни то. Что будут обозначать "****" - честно говоря, не в курсе.
Было: VS - спасбросок против заклинания( если vs - то есть, если s или v, то нет ).

MetaMagic - это есть мета магия - т.е фиты усиливающие( ускоряющие, улучшающие и .т.д) заклинания.
значения:
1 - Empower
2 - Extend
4 - Maximize
8 - Quicken
16 - Silent
32 - Still
Соответственно, при суммировании побитовым "И" можно настроить какие фиты доступны заклинанию.

TargetType - тип цели:
0х01 - self
0x02 - creature
0x04 - area
0x08 - item
0x10 - door
0x20 - placeble
0x40 - trigger
Соответственно, при суммировании побитовым "И" (можно просто суммировать) можно настроить на что действует заклинание.

ImpactScript - собственно скрипт определяющий действие заклинания.

Bard, Cleric, Druid, Paladin, Wiz_Sorc -показывает, с какого уровня доступно данное заклинание ( Если **** - то оно у класса отсутствует).

Innate - Уровень, на котором присутствует спелл, если это "врожденная" способность (вспоминаем священника)

ConjTime - Время колдовства.(т.е. -время за которое рпоизходит визуальная часть заклинания).

ConjAnim - анимация клдовства(Head - над головой, Hand- в руках, **** - руки не двигаются)

ConjHeadVisual - спец эффект над головой (имя модели).

ConjHandVisual - то же но для рук.

ConjGrndVisual - тоже но для земли (эффект на полу)

ConjSoundVFX - звук для спецэффектов.

ConjSoundMale - звук, который издает маг(мужчина) во время произнесения заклинания

ConjSoundFemale - звук, который издает маг(женшина) во время произнесения заклинания.

CastAnim - анимация при колдовстве(Константа анимации ).
"area"
"out"
"self"
"touch"
"up"
"attack"
"creature"

CastTime - время необходимое для колдовства.

CastHeadVisual, CastHandVisual, CastGrndVisual - Спецэффекты при колдовстве.

CastSound - звук при колдовстве.

Proj, ProjModel, ProjType, ProjSpwnPoint, ProjSound - частицы при колдовстве(прсутствуют - отсутствуют, тип, место появление, звук, Ориентация - соответственно.)
Типовые константы для ProjType:
"homing"
"ballistic"
"highballistic"
"burst"
"accelerating"
"spiral"
"linked"
"bounce"

ImmunityType - тип иммунитета к заклинанию (костанта иммунитета).

ItemImmunity - Подлежат ли предметы действию заклинания.

SubRadSpell - позволяет задать "подзаклинания" как, например, теневые заклинания. Указывается номер строки подзаклинания. Всего их можно сделать 5 (пять) штук. При создании подзаклинаний, у последних в ОБЯЗАТЕЛЬНОМ порядке должен быть указан параметр в столбце Matser.
Было: SubRadSpell - изменение заклинания в зависимости уровня (ID спела отсюда же).

Category - берется из Category.2da.

Master - Используется в "подчиненных" радиальных заклинаниях. С.м. SubRadSpell

SpellDesc - описание спелла, ( ID из Dialog.tlk или кастомного tlk)

UserType - Сложно для формулировки, что-то вроде того, кто/что это заклинание может использовать:
1 = spells
2 = creature power
3 = feat
4 = item power

SpellDesc - Из tlk. Описание спелла.

UseConcentration — если стоит 1, то будет использоваться умение Concentration

SpontaneouslyCast - Для лечащих заклинаний священников (они могут заменять существующие заклинания тогоже уровня)

Altmessage — текст в консоли после применения заклятья ( ID из Dialog.tlk).

HostileSetting - будет ли расцениваться это заклинание как нападение (0 - нет, 1 - да)

FeatID - идентификатор фита( некоторые фиты (например песня барда или ярость варвара) предстовляют из себя заклинания) из Feats.2da


Ффу... Вроде все.

Автор: DBColl Dec 24 2004, 15:11

Ох, Блин! Греатест РЕСПЕКТ! good.gif good.gif good.gif Молодец. Оформим в виде статьи wink.gif. Может твои комментарии в ходе работы еще добавишь? Чего избегать и тп..?

Автор: Lemegeton Dec 24 2004, 15:41

По заказам трудящихся, но БЕЗ картинок.

Создание заклинания

1. Постановка задачи:
(Задача выдумана и реальной ценности не имеет, поскольку внесет слишком большой дисбаланс)
Создать заклинание полиморфа игрока в синего, красного и зеленого дракона. Заклинание должно быть радиальным и использоваться Колдуном/Волшебником на первом уровне.

2. Необходимые инструменты:
а. Любая программа, которая позволит достать SPELLS.2DA. Например http://nwvault.ign.com/Files/other/data/1026158289673.shtml, если лень другой искать. Либо сам SPELLS.2DA.
б. Любая программа, которая позволит отредактировать SPELLS.2DA. Например, NotePad.
в. Редактор TLK файлов. Ну, тут уж на вкус и цвет. Ищите на ваулте.
г. Тулсет + модуль. Я буду использовать специально созданный маленький модуль с одной локацией.

3. Решение задачи:

3.1 Создание нового (редактирование существующего) кастомного TLK файла:
Для решения задачи мы будем использовать кастомный tlk файл. Т.е. мы не будем использовать DIALOG.TLK из корневого каталого игры.

Нам потребуется по две строки описания на одну строку в SPELLS.2DA (название заклинания и его описание). У нас есть одно основное и три дополнительных заклинания - значит, потребуется восемь строк в TLK файле.

Берем свой свежескачанный TLK редактор и добавляем строки с названиями. Я сделал так:
10000 - название основного заклинания ("Полиморф в дракона")
10001, 10002, 10003 - названия дополнительных заклинаний. ("Синий", "Красный", "Черный")

20000 - описание основного заклинания ("Это заклинание превращает заклинателя в древнего дракона...")
20001, 20002, 20003 - описание дополнительных заклинаний.

Сохраняем TLK файл в каталоге TLK, который находится в каталоге с игрой.

3.2 Редактирование SPELLS.2DA:
а. Создание основного радиального заклинания.

Придумываем название скрипта, например "l_poly_drgn". Это будет единый скрипт для ВСЕХ строк.

Придумываем название основного заклинания например "l_Polymorph_Drgn", иконку к нему (можно создать, можно взять готовую, я взял для примера "is_PolyFey").

Добавляем строку в 2да файл с нужными параметрами (см. предыдущий пост). Пусть (предположим) эта строка имеет номер 805. Анимацию для основного заклинания можно не указывать, как и ряд других параметров (задача на дом - выяснить опытным путем, каких именно). Лучший вариант, на мой взгляд, взять строку номер 130 (PolymorfSelf), скопировать и подредактировать.

Придумываем названия "подзаклинаний" и разрабатываем параметры для них. В моем случае это "l_Polymorph_Drgn_Blue", "l_Polymorph_Drgn_Red" и "l_Polymorph_Drgn_Blue".
Скрипт подставляем тот же, который и для родительского заклинания. Пусть (предположим) номера этих строк будут 806, 807 и 808 соответственно.

Внимание!!! Дальнейшее очень важно. Это - связь. Без нее работать не будет!!!.

ГЛАВНОЕ: в столбце Master всех "подзаклинаний" указываем номер строки основного заклинания.

Так как "подзаклинаний" у нас три (синий, красный и зеленый драконы), то в строке основного скрипта в столбцах SubRadSpell1, SubRadSpell2 и SubRadSpell3 прописываем номера строк "подзаклинаний" 806, 807 и 808 соответственно.

На этом с SPELLS.2DA все. Сохраняем и оставляем пока в покое.

3.3 Подключение этого всего к модулю:
Для начала, нужно создать HAK файл с нашим SPELLS.2DA (и иконками, если есть). Для этого можно использовать утилиту NWHAK.EXE, поставляемую с тулсетом (с игрой). Можно, так же, положить это все в существующий хак.

В тулсете при открытом модуле, к которому будет подключен новый спелл, нужно подключить этот ХАК и НЕ ЗАБЫТЬ на той же вкладке ниже выбрать вышесозданный TLK файл.

3.4 Скриптование:
Последняя часть "Марлезонского балета".

Нужно помнить, что скрипт вызывается от лица того, на кого направленно заклинание. Т.е. константа "OBJECT_SELF" будет указывать на того, на кого кастовали.

Создаем скрипт с ранее придуманным именем ("l_poly_drgn"). В нем пишем все, что нашей душе угодно. В моем случае, я написал следующее:

Neverwinter Script Source
const int l_Polymorph_Drgn = 805;
const int l_Polymorph_Drgn_Blue = 806;
const int l_Polymorph_Drgn_Red = 807;
const int l_Polymorph_Drgn_Green = 808;

void main() {

    int nSpell = GetSpellId();
    object oTarget = GetSpellTargetObject();
    effect eVis = EffectVisualEffect(VFX_IMP_POLYMORPH);
    effect ePoly;
    int nPoly;
    int nMetaMagic = GetMetaMagicFeat();
    int nDuration = GetCasterLevel(OBJECT_SELF);
    //Enter Metamagic conditions
    if (nMetaMagic == METAMAGIC_EXTEND)
    {
        nDuration = nDuration *2; //Duration is +100%
    }

    //Determine Polymorph subradial type
    if(nSpell == 806)
    {
        nPoly = POLYMORPH_TYPE_ANCIENT_BLUE_DRAGON;
    }
    else if (nSpell == 807)
    {
        nPoly = POLYMORPH_TYPE_ANCIENT_RED_DRAGON;
    }
    else if (nSpell == 808)
    {
        nPoly = POLYMORPH_TYPE_ANCIENT_GREEN_DRAGON;
    }
    ePoly = EffectPolymorph(nPoly);
    //Fire cast spell at event for the specified target
    SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, l_Polymorph_Drgn, FALSE));

    //Apply the VFX impact and effects
    ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
    ApplyEffectToObject(DURATION_TYPE_TEMPORARY, ePoly, oTarget, TurnsToSeconds(nDuration));
}


4. Проверка:
У меня работает!

Автор: Ice Blade Dec 24 2004, 17:31

Lemegeton - good.gif good.gif good.gif - Эх.. вот и смена растёт, давненько уже ник-то туторов по 2да не писал,- хоть и без картинок smile.gif и некоторых мелочей(ввиде явного примера строки 2да-шки), но зато и без ошибок, я примерно год назад точно-так же делал - только задачка была чуть посложней biggrin.gif. Наградить тебя особо нечем, но кое чего я тебе всётаки дам. См. приват.

Автор: DBColl Dec 24 2004, 18:54

Lemegeton
ПУЛЯ! КРУТО. good.gif Слов нет. Абсолютное пособие для самых маленьких. Для меня yes.gif.

Автор: Lemegeton Dec 24 2004, 19:00

У меня сейчас случится припадок мании величия! crazy.gif biggrin.gif biggrin.gif biggrin.gif

Автор: DBColl Dec 24 2004, 19:50

Фигня! Опустим на землю при случае lol.gif lol.gif lol.gif. Смотри не увлекайся wink.gif. Хыхыхы.

Автор: Ice Blade Dec 24 2004, 21:18

И я первый опущу если что не так (хоть я уже и незанимаюсь НВН). Просто давненько небыло как бы это выразится "залётных", которые хотябы процентов на 50% своими силами осилили что-то существенное в 2да-шках (а спелы это и есть существенное) и более того подробно описали. Фактически за всё время что я связан с НВН таких залётных можно персчитать по пальцам одной руки biggrin.gif ), но сильно нос не задирай - т.е есть ещё ОЧЕНЬ многое чего ты ещё незнаешь и если не продолжишь свои иследования, а будешь как большенство ждать что в чём-то за тебя разберутся, то далеко не уйдёшь. Заклинания заклинаниями, но пока хотябы сложные комбинации классов с фитами не осилишь - ты будишь не более чем начинающим мастером. Так что удачи. good.gif

PS
Айв или ДБ - дайте ему "мастера контента".

Автор: Lemegeton Dec 27 2004, 11:37

QUOTE
Смотри не увлекайся

Эх, блин, поздно. Уже увлекся. swoon.gif

Ну что же. Вдохновённый успехом в Выссшем эшалоне, решил создать теперь свой фит (то же заклятие, но в виде фита). Тут есть несколько проблемм. Не понял про CR(Character Reputation, что-ли?) и про MinFortSave (какие-то спасброски). Но это не главное.

Итак, по традиции,

Его величество FEAT.2DA

FeatId - Ну это понятно. Кстати, это значение ПОЛНОСТЬЮ ИГНОРИРУЕТСЯ!!! Чего я только туда не писАл crazy.gif Движок просто подсчитывает номер строки и забивает на значение в этом столбце.

LABEL - Метка. Текстовое название.

FEAT - Название фита. Ссылка на строку в TLK - файле. Добавить 16777216, если строка должна браться из кастомного TLK.

DESCRIPTION - Описание фита. Ссылка на строку в TLK - файле. Добавить 16777216, если строка должна браться из кастомного TLK.

ICON - Имя файла иконки (32x32)

MINATTACKBONUS - Минимальный бонус атаки, который нужно иметь для получения фита

MINSTR, MINDEX, MININT, MINWIS, MINCON, MINCHA - Минимальные бонусы Силы, Ловкости, Интеллекта, Мудрости, Живучести и Харизмы, соответственно, для получения фита.

MINSPELLLVL - Минимальный уровень заклинаний, который необходимо иметь для получения фита.

PREREQFEAT1, PREREQFEAT2 - Предварительно необходимые фиты для получения фита. Нужно иметь ОБА эти фита.

GAINMULTIPLE - Можно ли получить несколько раз? 1 - да, 0 - нет

EFFECTSSTACK - Непонял. Но похоже на то, что если стоит 1, то эффект не суммируется с другими при высоких сложностях.

ALLCLASSESCANUSE - Все ли классы могут использовать этот фит? 1 - да, 0 - нет. Если 0 - необходимо добавить фит в соотвестствующий cls_feat_***.2da файл.
З.Ы. Тут есть сложность. В этом файле (cls_feat_***.2da) описывается, где будет находится "иконка" активного фита. Непонятно, как сделать активный фит, который могут использовать ВСЕ классы?!

CATEGORY - Категория. Берется из category.2da.

MAXCR - Кто - нибудь, объясните, что такое CR???

SPELLID - Идентификатор заклинания для активных фитов. Все активные фиты создаются через этот параметр. Он, по сути дела, косвенно "связывает" фит со скриптом.

SUCCESSOR - Если один фит заменяет другой, здесь указывается номер строки этого фита.
З.Ы. При проверке более "низкого" фита, когда уже получен более высокий, все равно возвращает TRUE!

CRValue - Еще раз этот CR! Статистика говорит что значения ставятся на:
0,2 - рассовые фиты
0,5 - классовые фиты (не всегда)
1,0 - остальные фиты.

USESPERDAY - Количество использований фита в день. Только для активных фитов.

MASTERFEAT - Ссылка на masterfeats.2da. При использовании "подфитов" как, например, фокусировка на оружии (т.е. экранчик, на котором выбирается подфит).

TARGETSELF - Тяжелый случай. При 1, фит не может быть использован не на себе. Но наблюдались и другие эффекты!

OrReqFeat0, OrReqFeat1, OrReqFeat2, OrReqFeat3, OrReqFeat4 - То же, что и PREREQFEATх, но нужно иметь хотя бы ОДИН из этих фитов.

REQSKILL - Необходимый скилл. Хм, похоже, что игрок просто должен иметь ДОСТУП к скилу (например, маг не имеет доступ к "Сочувствию к животным"). Гы.

Constant - Константа для использования в скриптах.

TOOLSCATEGORIES - Где будет появляться фит в тулсете (только для тулсета!!!).
1 - Combat Feats
2 - Active Combat Feats
3 - Defensive Feats
4 - Magical Feats
5 - Class/Racial Feats
6 - Другие фиты (наиболее удобно)

HostileFeat - Определяет, рассматривается ли действие фита как атака. 1 - да, 0 - нет.

MinLevel - минимальный левел игрока для получения фита.

MinLevelClass - Ссылка на classes.2da. Левел какого класса будет рассматриваться в строке MinLevel. Если **** - будет браться суммарный левел персонажа.

MaxLevel - Максимальный уровень персонажа, при котором можно получить этот фит. Похоже, суммарный.

MinFortSave - Какие-то спас-броски.

PreReqEpic - Нужен ли эпический персонаж для получения фита. 1 - да, 0 - нет.

Ну, все, что знал, рассказал. Про cls_feat_***.2da и пример создания фита - позже.

Автор: Lemegeton Dec 27 2004, 13:10

Эх, нравится мне в 2да'шках копаться.

При создании фита, одним из параметров является определение, доступен ли этот фит всем классам, или только некоторым. Это делается в файле feat.2da, столбце ALLCLASSCANUSE(18). Однако, определяется, какой класс этот фит будет использовать совсем в других файлах. Эти файлы называются обычно cls_feat_#.2da, где # это название класса. На самом деле, название такого файла для каждого класса указывается в файле classes.2da в столбце FeatsTable.

Итак, одни из самых простых 2да:

CLS_FEAT_****.2DA

ID - Идентификатор строки. Опять таки, на практике не имеет значения. Имеет значение лишь номер строки.

FeatLabel - Имя фита.

FeatIndex - Индекс фита из таблицы feat.2da

List - Возможность/категория использования:
0 - Общий фит.
1 - Мета-магический
2 - Специфичный для класса (Вроде Favor Enemy у рэйнджера)
3 - Выдаваемый автоматически.

GrantedOnLevel - На каком уровне гарантировано автоматическое получение. Значение -1 означает стандартное получение по увеличению уровня.

OnMenu - Самая главная строчка для активных фитов. Обозначает, будет ли отображаться фит в радиальном меню персонажа. 1 - да, 0 - нет. Если фит активный, необходимо поставить 1.

Вот и все.

Автор: Goblin Dec 27 2004, 14:52

CR - Челендж Рейтинг - что-то вроде крутости. Ну например (хотя пример конечно кривоват unsure.gif но что поделаешь.) итак есть у нас лич, сначала у него ЦР 100, а потом мы ему сделали ЦР 1. К личу подваливает чел 40 лвла (я хз скока у него считается ЦР, но допустим 40). В первом случае лич увидит перса, сравнит его цр со своим и скажет (иметь мои старые костыли - да это же лам) и ломанет на перса в рукопашную без обкастовки. Иное дело когда у лича Цр 1 - он посмотрит на перса 40 лвла и подумает (вот теперь ко мне снова смерть пришла, только на этот раз я походу костями не отмахаюсь). и после этого выдаст в перса весь набор спеллов которые только натолкали в него с помощью тулса.

Т.о. вот это "MAXCR" - если тупо переводить, можно перевести как - максимальный челендж рейтинг

, а вот с этим "MinFortSave" проще - это минимальный спас на Форту ака Стойкость ака Fortitude. Хм, только что-то мне не припоминаются фиты которые требуют спасы ... dntknw.gif

Гы, воровские сныки crazy.gif сделаны с помощью SUCCESSOR

"TARGETSELF - Тяжелый случай. При 1, фит не может быть использован не на себе. Но наблюдались и другие эффекты!" - например ?

"EFFECTSSTACK - Непонял. Но похоже на то, что если стоит 1, то эффект не суммируется с другими при высоких сложностях." - скорее всего - если фит используют несколько раз то будет ли стаковаться (складываться) эффект друг с дружкой или нет.

"ALLCLASSESCANUSE - Все ли классы могут использовать этот фит? 1 - да, 0 - нет. Если 0 - необходимо добавить фит в соотвестствующий cls_feat_***.2da файл.
З.Ы. Тут есть сложность. В этом файле (cls_feat_***.2da) описывается, где будет находится "иконка" активного фита. Непонятно, как сделать активный фит, который могут использовать ВСЕ классы?!" --- а поставить 1 ???

"SPELLID - Идентификатор заклинания для активных фитов. Все активные фиты создаются через этот параметр. Он, по сути дела, косвенно "связывает" фит со скриптом." - поясни плз

Все таки дойдут у меня руки сделать чтобы девастат на лук был от ловкости, а не от силы - это ж бред чистой воды.

Автор: DBColl Dec 27 2004, 15:57

Lemegeton
РЕСПЕКТИЩЕ!.. Отлично! good.gif good.gif good.gif yes.gif

Автор: Lemegeton Dec 27 2004, 16:45

Спасибо. Но это еще не все. Я еще до расс и классов не добрался. spiteful.gif Разберу по косточкам. Ишь, взяли моду - не отвечать на вопросы! diablo.gif

Goblin
1. Спасибо за CR.

QUOTE
мне не припоминаются фиты которые требуют спасы ...

Сбивание с ног.

QUOTE
"TARGETSELF - Тяжелый случай. При 1, фит не может быть использован не на себе. Но наблюдались и другие эффекты!" - например ?

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

QUOTE
Непонятно, как сделать активный фит, который могут использовать ВСЕ классы?!" --- а поставить 1

Имеется в виду АКТИВНЫЙ фит, присутствующий в радиальном меню. А где ты поставишь OnMenu??????? dntknw.gif

QUOTE
"SPELLID - Идентификатор заклинания для активных фитов. Все активные фиты создаются через этот параметр. Он, по сути дела, косвенно "связывает" фит со скриптом." - поясни плз

Все активные фиты по сути дела являются заклинаниями.
SPELLID указывает на строчку из spells.2da, а спелл, в свою очередь, вызвывает скрипт. biggrin.gif Вот и все.

QUOTE
Все таки дойдут у меня руки сделать чтобы девастат на лук был от ловкости, а не от силы - это ж бред чистой воды.

Э, батенька, это уже на скриптах решать надобно. Да и почему бред? Ты лук видел? А тетиву натянуть пробовал? Там нужна сила. А ловкость, скорее на скорость.

Автор: K.SpecTr Dec 27 2004, 17:42

Ух ты, а вот это интересно.
Вспомнил одну вещь, которая у меня когда-то не получилась.
Имеем классовый фит, например полиморф Шифтера или Огн.дыхание RDD. Данный фит является активным и появляется, в собственном радиальном меню класса. Однако, объединив предидущие посты имеем следующий результат:
Даем классу RDD в его классовую таблицу фитов фит полиморфа в дракона. Прописываем скрипт, наподобие приведенного выше. Скажем появление нашего фита запланировано с уровня N персонажа. Первый собственный активный фит (аля Огн.дыхание дается на уровне M). И тут проблема: если M>N, то радиальное меню классовых фитов не появляется вообще (хотя в нем должен был появляться наш фит), если M<=N, то меню появляется и в нем мы видим оба фита (наш и родной). Изменение M на формулу не влияет, т.е. наш фит появляется в меню только если оно уже появилось в силу родного фита.
Сам фит работает и скрипт работает, могу выложить строку из 2da.
Собственно вопрос: в чем причина такой дискриминации кустомного фита?

Автор: Lemegeton Dec 27 2004, 17:53

IMHO глюка. Выкладывай все ТРИ строки. Из spell, feat, cls_feat_x.

З.Ы. Как я превращался в дракона:

http://gbds.narod.ru/NWN0001.jpg
http://gbds.narod.ru/NWN0002.jpg
http://gbds.narod.ru/NWN0003.jpg
http://gbds.narod.ru/NWN0004.jpg
http://gbds.narod.ru/NWN0005.jpg
http://gbds.narod.ru/NWN0006.jpg
http://gbds.narod.ru/NWN0007.jpg
http://gbds.narod.ru/NWN0008.jpg
http://gbds.narod.ru/NWN0009.jpg
http://gbds.narod.ru/NWN0010.jpg

Сорри за народ.рю и невбубенные картинки.

Автор: Anker Dec 27 2004, 18:35

Ех! this.gif Рано я обрадовался aggressive.gif
У меня всё равно ни чего не вышло. Я всё зделал как мне советовал и как расписано в туториале Айван, но проблема осталась. this.gif Только теперь заместь грибов уже другое дерево.
У меня возник новый вопрос.
В 2daшке из хака "Пр. Лев." я заметил (также как и в некоторых других), что номерация строк идёт не по порядку. В данном случае стандартные заканчиваются 201-ой строкой, а дописаные начинаются 300-ой. Почему 300, а не 202? Может в ентом вся загвоздка?

this.gif this.gif this.gif

Автор: DBColl Dec 27 2004, 19:21

Anker
Нет. Как правило колонка ID ничего не решает. Она для личного удобства wink.gif.

Автор: K.SpecTr Dec 27 2004, 20:27

Итак, возьмем строки стандартного полиморфа шифтера и дадим их RDD (изменения в таблицах минимальны - только выдрал и проверил на глючность - глючат biggrin.gif ):
Это у нас cls_feat_dradis.2da

CODE
          FeatLabel                             FeatIndex   List   GrantedOnLevel   OnMenu
41         FEAT_DRAGON_DIS_BREATH                965         3      M                1        
...
71         FEAT_EPIC_WILD_SHAPE_DRAGON           873         1      N                1

Это у нас feat.2da
CODE
      LABEL                                            FEAT    DESCRIPTION   ICON               MINATTACKBONUS   MINSTR   MINDEX   MININT   MINWIS   MINCON   MINCHA   MINSPELLLVL   PREREQFEAT1   PREREQFEAT2   GAINMULTIPLE   EFFECTSSTACK   ALLCLASSESCANUSE   CATEGORY   MAXCR   SPELLID   SUCCESSOR   CRValue   USESPERDAY   MASTERFEAT   TARGETSELF   OrReqFeat0   OrReqFeat1   OrReqFeat2   OrReqFeat3   OrReqFeat4   REQSKILL   ReqSkillMinRanks   REQSKILL2   ReqSkillMinRanks2   Constant                                         TOOLSCATEGORIES   HostileFeat   MinLevel   MinLevelClass   MaxLevel   MinFortSave   PreReqEpic
873    FEAT_EPIC_WILD_SHAPE_DRAGON                      8667    8668          ife_X2WShpDrag     ****             ****     ****     ****     ****     ****     ****     ****          ****          ****          0              0              0                  ****       ****    725       ****        1         ****         ****         1            ****         ****         ****         ****         ****         ****       ****               ****        ****                FEAT_WILD_SHAPE_DRAGON                           6                 ****          ****       ****            ****       ****          0            

Это у нас spells.2da
CODE
     Label                               Name    IconResRef        School   Range   VS     MetaMagic   TargetType   ImpactScript       Bard   Cleric   Druid   Paladin   Ranger   Wiz_Sorc   Innate   ConjTime   ConjAnim   ConjHeadVisual    ConjHandVisual    ConjGrndVisual    ConjSoundVFX      ConjSoundMale      ConjSoundFemale    CastAnim   CastTime   CastHeadVisual   CastHandVisual   CastGrndVisual   CastSound          Proj   ProjModel          ProjType       ProjSpwnPoint   ProjSound          ProjOrientation   ImmunityType     ItemImmunity   SubRadSpell1   SubRadSpell2   SubRadSpell3   SubRadSpell4   SubRadSpell5   Category   Master   UserType   SpellDesc   UseConcentration   SpontaneouslyCast   AltMessage   HostileSetting   FeatID      Counter1   Counter2   HasProjectile  
707   Greater_Wild_Shape_Red_dragon       12491   is_ShpDragon      T        P       v      0x00        0x01         X2_S2_GWildShp     ****   ****     ****    ****      ****     ****       3        1500       hand       ****              vco_smhannatr01   ****              sco_mehannatr01   ****               ****               out        1000       ****             ****             ****             ****               0      ****               ****           ****            ****               ****              ****             0              ****           ****           ****           ****           ****           ****       677      2          ****        0                  0                   83578        0                329057129   ****       ****       0              
708   Greater_Wild_Shape_Blue_dragon      12467   is_ShpDragon      T        P       v      0x00        0x01         X2_S2_GWildShp     ****   ****     ****    ****      ****     ****       3        1500       hand       ****              vco_smhannatr01   ****              sco_mehannatr01   ****               ****               out        1000       ****             ****             ****             ****               0      ****               ****           ****            ****               ****              ****             0              ****           ****           ****           ****           ****           ****       677      3          ****        0                  0                   83578        0                329122665   ****       ****       0              
709   Greater_Wild_Shape_Green_dragon     12487   is_ShpDragon      T        P       v      0x00        0x01         X2_S2_GWildShp     ****   ****     ****    ****      ****     ****       3        1500       hand       ****              vco_smhannatr01   ****              sco_mehannatr01   ****               ****               out        1000       ****             ****             ****             ****               0      ****               ****           ****            ****               ****              ****             0              ****           ****           ****           ****           ****           ****       677      3          ****        0                  0                   83578        0                329188201   ****       ****       0              
...
725   Dragon_Shape                        8667    is_ShpDragon      T        P       v      ****        0x01         X2_S2_GWildShp     ****   ****     ****    ****      ****     ****       1        1500       hand       ****              ****              ****              ****              ****               ****               ****       ****       ****             ****             ****             ****               ****   ****               ****           ****            ****               ****              ****             0              707            708            709            ****           ****           ****       ****     3          ****        0                  0                   83895        0                873         ****       ****       0              

В первой строке числа я обозвал M и N соответственно. (было 3 и 10)
P.S. Извиняйте если строки не очень читабельные, не знал как лучше сделать dntknw.gif
P.P.S.
QUOTE
невбубенные картинки
Ну я за 5-ть минут только пол картинки закачал и обломался, а что там было? pilot.gif

Автор: Lemegeton Dec 27 2004, 20:48

См. приват.

Автор: DBColl Dec 27 2004, 20:51

QUOTE (K.SpecTr @ Dec 27 2004, 19:27)
Ну я за 5-ть минут только пол картинки закачал и обломался, а что там было?

Реальная работа активного фита превращения в синего драка. wink.gif

Автор: Anker Dec 28 2004, 13:10

А в чём же тогда дело?

Автор: DBColl Dec 28 2004, 13:49

Что ты сделал? Паоитру Левора экспортировал/импортировал?

Автор: Lemegeton Dec 28 2004, 16:03

Попробуй в cls_feat_****.2da поменять в столбце List 1 на 3. this.gif
И UserType в SPELLS.2DA посмотри. Не очень-то понятно, где у тебя фит должен стоять.

Да, если у тебя версия выше 1.60, не заморачивайся так с радиальными активными фитами. И без этой мути работают. biggrin.gif

Автор: Goblin Dec 28 2004, 16:15

"Сбивание с ног" --- а так это какой спас будет против этого фита, а я думал что идет речь о том что для взятия какого-то фита требуется определенное кол-во спаса.

"Э, батенька, это уже на скриптах решать надобно. Да и почему бред? Ты лук видел? А тетиву натянуть пробовал? Там нужна сила. А ловкость, скорее на скорость." - позволю себе не согласится -- девастат по идее рассматривается МНОЙ как эдакий супер пупер удар которым можно с одного щелчка завалить противника, за счет так сказать большОго умения мастера. Дык для использования лука в основном нужна ловкость - чтобы так стрелу пустить чтобы она попала в такое место (каждый думает конечно в меру своей испорченности, но туда - тоже вариант drag.gif ) чтоб врага сразу сдуло. А сила действительно влияет - но на урон наносимый стрелой, который в данном случае и приравнивается к скорости стрелы (считаем что стреляется одинаковыми по массе стрелами). Так что ИМХО как раз от ловкости должен расчитываться девастат, а не от силы. Эт так скаать разь. И двазь - почему на скриптах - взять скрипт от девастата (он общий) - выдрать из него ту часть которая отвечается за лук (арбалет, пращу и т.д.) и оформить в виде отдельного фита который привязать к достижению допустим 25 ловкости и в самом скрипте поставить где была сила - ловкость. Т.о. стандартный девастат останется, а мой будет появлятся тогда когда мне надо т.е. при достижении персом 25 ловкости. В принципе придется конечно по скриптам полазить - не без этого, но чтоб только на скриптах - эт ты загнул pilot.gif

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

"Имеется в виду АКТИВНЫЙ фит, присутствующий в радиальном меню. А где ты поставишь OnMenu???????" --- хм, ну тогда в том самом цлс_фитс прописать твой фит каждому классу вручную ...

"Сорри за народ.рю и невбубенные картинки. " -- ты бы еще видео снял в авишнике biggrin.gif lol.gif - а то вдруг кто не поймет - как полиморфится надо =))))))))))))))))

2K.SpecTr : Убери "перенос по словам" в блокноте - все сразу преобразится в более менее нормальную картину dirol.gif

т.е. если сначала полиморф - потом перегар -- то перегар не взять никогда, а если наоборот - сначала перегар взять - то полиморф потом взять можно --- я прально понял ?

Автор: Lemegeton Dec 28 2004, 16:43

QUOTE
а я думал что идет речь о том что для взятия какого-то фита требуется определенное кол-во спаса.

Например? crazy.gif

QUOTE
ну тогда в том самом цлс_фитс прописать твой фит каждому классу вручную ...

А при мультиклассе у тебя за каждый класс этот фит давать будут.

QUOTE
ты бы еще видео снял в авишнике  - а то вдруг кто не поймет - как полиморфится надо =))))))))))))))))

Это я дабы не быть голословным сделал. Чтобы не подумали, что от балды свое IMHO выложил.

QUOTE
...на урон наносимый стрелой, который в данном случае и приравнивается к скорости стрелы...

Позволь не согласиться, дабы стреле скорость придать нужно ей придать ускорение, оно, извини от твоей силы зависит. Ловкость это, скорее, точность действий. Хотя, если в глаз с пяти метров засадить - тут силы много не потребуется. yes.gif

QUOTE
...и в самом скрипте поставить где была сила - ловкость...

А всего остального можно и не делать... biggrin.gif

Автор: K.SpecTr Dec 28 2004, 17:07

QUOTE (Goblin @ Dec 28 2004, 16:15)
2K.SpecTr : Убери "перенос по словам" в блокноте - все сразу преобразится в более менее нормальную картину

По-моему это не ко мне, ведь я "это" постил, а не читать собираюсь. crazy.gif
QUOTE (Lemegeton @ Dec 28 2004, 16:03)
Да, если у тебя версия выше 1.60, не заморачивайся так с радиальными активными фитами. И без этой мути работают

Работать то они работают и в фитах charscreen'a отображаются, но как я их активировать буду, если их в меню нет и выбрать соответственно нельзя? Через консоль? crazy.gif
QUOTE (Goblin @ Dec 28 2004, 16:15)
т.е. если сначала полиморф - потом перегар -- то перегар не взять никогда, а если наоборот - сначала перегар взять - то полиморф потом взять можно --- я прально понял ?

Неправильно!
Взять можно и то и другое, даже больше - оно дается автоматом при левелапе, но если у меня нет Fire_breath, то я не вижу радиальное меню классовых абилок и не могу активизировать полиморф (даже если он "взят"), НО если меню уже есть, И в нем уже есть иконка Fire.breath, то тогда иконка полиморфа появляется рядом, как и запланировано (я ее жму и получаю дракона как положено).
QUOTE (Lemegeton @ Dec 28 2004, 16:03)
List 1 на 3

Ноль, и вроде это влияет на принадлежность фита (combat, metamagic, class ets.), а не на то что нужно.
QUOTE (Lemegeton @ Dec 28 2004, 16:03)
И UserType в SPELLS.2DA посмотри

И смотреть не надо, все правильно (3=feat).

Автор: Lemegeton Dec 28 2004, 17:14

Вот это да?! Я попробовал сделать то же самое - усе нормально!!! Бредятина. Буду искать разницу. Какая у тебя вресия?

Автор: K.SpecTr Dec 28 2004, 17:20

QUOTE (K.SpecTr @ Dec 28 2004, 17:07)
И смотреть не надо, все правильно (3=feat)

Вру biggrin.gif для 707-ой строки "Greater_Wild_Shape_Red_dragon" стоит 2. Но оно там так и стояло, это не я это Биовари. dntknw.gif
Поменял на 3 - эффект тотже! Какие будут другие предложения? Может ли быть появление меню классовых абилок "зашито" в core на "родные" абилки или нет? Если да, то это могло бы что-нибудь объяснить.
Версия 1.62 +exp1+exp2
Добавлено в [mergetime]1104243721[/mergetime]
QUOTE (Lemegeton @ Dec 28 2004, 17:14)
Я попробовал сделать то же самое - усе нормально!!!

M и N плиз, при которых пробовал.

Автор: Anker Dec 28 2004, 18:27

Нет политру я не экспортировал и не импортировал, не знал как.
Я пробовал редактировать 2da файл вашего хака. Делак всё как писал Айван. Брал стандартный плейсебл и добавлял строки из вашего хака. При этом изменились вещи которые вылазят заместь стандартных и всё. dntknw.gif
Я уже начал подумывать что дело в каком то нюансе о котором я не знаю.

this.gif this.gif this.gif

Автор: DBColl Dec 28 2004, 18:50

QUOTE (Anker @ Dec 28 2004, 17:27)
Нет политру я не экспортировал и не импортировал, не знал как.

Залазь Меню, Файл, Экспорт (в Проклятии). Выбираешь тип ресурса внизу Placeables. Отмечаешь все и нажимаешь ОК. Сохранится ERF-файл.

Затем открываешь свой модуль, подключаешь к нему 2 хака Проклятия. Залазь Меню, Файл, Импорт. Указываешь этот сохраненный ERF и да будет тебе счастье. wink.gif

Автор: K.SpecTr Dec 28 2004, 20:54

QUOTE (K.SpecTr @ Dec 28 2004, 17:07)
QUOTE (Lemegeton @  Dec 28 2004, 16:03)

List 1 на 3

Ноль, и вроде это влияет на принадлежность фита (combat, metamagic, class ets.), а не на то что нужно.

Малость ошибся black eye.gif
Если я меняю на 3, то фит я получаю в радиальном меню всех абилок, там где воровать, ходить тихо и т.д., а мне надо чтобы это было в отдельном подменю данного меню, предназначенным для классовых возможностей, например, для полиморфа Шифтера и Друида появляются в меню абилок золотые иконки с изображением класса (дерево для друида, морда для шифтера), а уже из них ростут остальные их абилки, также у меня получалось с RDD, но только на условиях приведенных выше.

Автор: Lex Dec 28 2004, 21:58

Блин...Anker, наш хак очень устарел. На волте полно плэйсов. Зачем тебе наш??

Автор: Anker Dec 29 2004, 13:45

QUOTE (Lex @ Dec 28 2004, 21:58)
Блин...Anker, наш хак очень устарел. На волте полно плэйсов. Зачем тебе наш??

Ну вопервых в вышем хаке много интересных штучек, вовторых людям (в случае если у меня что-нибудь получится) не надо будет качать очень большой хак ( я имею ввиду тех у кого естиь "Пр. Лев."), ну а в третих мне это нужно ещё и в образовательных целях. Проблемы с вашим хаком у меня возникали и с другими хаками, поэтому устраню их в этом случаю, смогу устранить в другом. Вот. unsure.gif

yes.gif yes.gif yes.gif

Автор: Lemegeton Dec 29 2004, 17:24

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

Все. Ухожу на каникулы. До 11.01.2005. Всем удачно встретить Новый Год! drinks.gif alcoholic.gif friends.gif

Автор: Goblin Dec 30 2004, 15:04

2Lemegeton :

"Позволь не согласиться, дабы стреле скорость придать нужно ей придать ускорение, оно, извини от твоей силы зависит. Ловкость это, скорее, точность действий. Хотя, если в глаз с пяти метров засадить - тут силы много не потребуется. " ---- а я думал что скорость стрелы зависит от так сказать тетивы лука (если тетиву хрен натянешь то и скорость стрелы если натянешь будет огого, а если это резинка от трусов а не тетива, то и стрела полетит соответственно как говно по параболе, а не как стрела) -- если ты это имел ввиду то да - тут от силы зависит. Но ведь урон из лука зависит не только от натяга тетивы (что у нас приравнивается к скорости стрелы и мощности выстрела), а еще от массы стрелы (кстати, может стрелы +1, +2, +3 просто поменять на названия с разными массами стрел - ИМХО больше реалистичности) и от того куда именно направлена эта стрела - а это в свою очередь зависит как раз от ловкости. У лучника вроде все таки берется силы 14 - 16 ... в среднем, что ИМХО как раз хватает для удовлетворения требований по силе натяга тетивы для разных луков, а вот чем больше ловкость (т.к. в НВН нету таких понятий как меткость, восприятие и т.д. то все они входят в ловкость - ЭТО МОЕ ИМХО) - тем больше шанс того что лучник засадит свою тетиву в какое-нить сочленение доспехов и сильно ослабит или сразу завалит супостата. Кроме того некоторые стрелы можно сделать против определенного типа доспехов - я где то читал что для пробивания тяжелых копейщиков (эдакие маленькие танки в фуллплейтах) использовались тяжелые стрелы с тупыми наконечниками которые выпускались из луков с достаточно большой силой натяжения и с достаточно близкого расстояния - при лобовом ударе (прямо в душу) - стрела прошибала копейщика навылет.

"Например?" --- вот и я не мог вспомнить. Но теперь все ясно.

"А при мультиклассе у тебя за каждый класс этот фит давать будут." --- может я чего то не вижу, но чем это плохо ?

"А всего остального можно и не делать..." -- угу и тогда девастат на все будет работать от ловкости, а не от силы = 5 баллов (для двуручного топора например black eye.gif ). Или в девастате есть часть которая отвечает именно за ранжед оружие? Кроме того - для взятия девастата на ранжед оружие нужно чтобы ловкости было 25, а не силы, а то получится допустим - чтобы взять девастат - силу надо взять 25, а модификатор девастата будет учитываться исходя из ловкости персонажа --- crazy.gif вот это будет подстава.

"Это я дабы не быть голословным сделал. Чтобы не подумали, что от балды свое IMHO выложил." - ето быль сарьказьм с моей стороны без желания обидеть слушающего (читающего в нашем случае biggrin.gif )


2K.SpecTr

- ну ничаго ничаго - вот получишь ответ в таком же виде - типа я тоже ведь писать буду, а не читать -- воть тадыть и поговоримс diablo.gif

Дык у тебя получается что меню (в данном случае РДД) появляется с появлением перегара, ясен пень что если что-то раньше перегара в этом меню появляется - ты этим пользоваться не сможешь пока перегара не будет. Ты привяжи появление классового меню к тому что раньше появляется ... и все должно заработать .... (или я опять что-то не понял unsure.gif = вот что я действительно не понял - это как можно сделать так что РДД получает все свои классовые возможности без перегара (отключение перегара как фита не рассматривается) dntknw.gif )

Автор: K.SpecTr Dec 30 2004, 20:45

QUOTE (Goblin @ Dec 30 2004, 15:04)
- ну ничаго ничаго - вот получишь ответ в таком же виде - типа я тоже ведь писать буду, а не читать -- воть тадыть и поговоримс

Уже получал biggrin.gif
QUOTE (Goblin @ Dec 30 2004, 15:04)
или я опять что-то не понял  = вот что я действительно не понял - это как можно сделать так что РДД получает все свои классовые возможности без перегара

На этот раз в точку. А без огн.дыхания он свои возможности получает спокойно - это не проблема.
QUOTE (Goblin @ Dec 30 2004, 15:04)
Ты привяжи появление классового меню к тому что раньше появляется

Собственно вопрос - КАК? Я не нашел где она эта привязка вообще есть.

Автор: Клемент Астилон Jan 2 2005, 15:29

Солидно... Респект. Только вот проблема с появлением фита в радиальном меню бывает часто...
С нетерпением жду classes.2da думаю будет также информативно.
good.gif good.gif good.gif

Автор: K.SpecTr Jan 3 2005, 23:27

Clement Astilon
Напросился biggrin.gif
Делаем классы.
Сперва разбор таблиц, затем проблемы, с которыми я столкнулся (собственно из-за проблем и пишу, а то до возвращения Lemegeton'a не вытерплю smile.gif). Замечания приветствуются.
classes.2da - Первая таблица и главная (что логично)

Id,Label - ид строки и текстовая метка класса

QUOTE (Lemegeton)
как и везде  biggrin.gif

Name - ссылка в файле tlk на имя класса
Plural - ссылка в файле tlk на множественное число
Lower - ссылка в файле tlk на lowercase написание
Description - ссылка в файле tlk на описание класса
Icon - имя ресурса с иконкой класса
HitDie - какой кубик кидаем для хитов при получении уровня (10 значит d10)
AttackBonusTable - имя CLS_ATK_*.2da таблицы, в которой указана зависимость увеличения базового модификатора атаки от уровня персонажа
FeatsTable - ссылка на соответствующую cls_feat_***.2da таблицу, из которой берутся доступные классу фиты
SavingThrowTable - ссылка на соответствующую CLS_SAVTHR_***.2da таблицу, в которой перечислены сэйвы данного класса по уровням
SkillsTable - ссылка на соответствующую таблицу CLS_SKILL_***.2da, в которой перечисляются доступные и классовый навыки(скилы) класса
BonusFeatsTable - ссылка на соответствующую CLS_BFEAT_***.2da, в которой перечисляются дополнительные фиты для класса. Если я не ошибаюсь, то именно эта таблица отвечает за получение "внеплановых" фитов для каждого 5-го уровня мага и каждого 2-го файтера.
SkillPointBase - количество очков навыка, получаемых классом при повышении уровня, при нулевом модификаторе INT'а
SpellGainTable - ссылка на соответствующую CLS_SPGN_***.2da, отвечающая за количество доступных слотов заклинаний и их максимальный уровень для конкретного уровня опыта
SpellKnownTable - ссылка на соответствующую CLS_SPKN_***.2da, отвечающую за максимальное количество заклинаний, которые может выучить Сорк/Бард для конкретного уровня опыта
PlayerClass - если 1 - то игрок может выбрать этот класс, если 0 - то нет.
SpellCaster - если 1 - то для данного класса доступны заклинания и он может их использовать, если 0 - то нет. (также это и навык UMD отвечает за возможность кастовать со свитков, ?требует описания в spells.2da?)
Str - если игрок нажмет клавишу "recommended" при выборе характеристик, то его сила станет такой.
Dex,Con,Wis,Int,Cha - аналогично. Важно! сумма всех шести не зависит от 30-ти очков, которые даются для распределения, и при нажатии "recommended" оно принимается равным нулю. Если стоит ограничение "Single Player Enforce Legal Characters=1", то персонаж вызовет ошибку)
PrimaryAbil - Основная из шести, по ней мы получаем бонусы к заклинаниям и XP, она же растет при "recommended" на повышении уровня.
AlignRestrict - задает ограничения на характер: даже не знаю что сказать black eye.gif (как бы я их не менял, никаких изменений в игре я не заметил, видать опять глюки)
Но если верить тому что пишут, то:
0x0 - All
0x01 - Neutral
0x02 - Lawful
0x04 - Chaotic
0x08 - Good
0x10 - Evil
Для получения комплексных запретов складываем, если число большое значит пора смотреть строку InvertRestrict.
Паладин имеет LG -> 01(по обеим шкалам, см. AlignRstrctType)+04+10=0x15
AlignRstrctType - по какой шкале запрещаем характер (особенно важно для нейтралов): 0x0-none(ни по какой), 0x1-law/chaos, 0x2-good/evil, 0x3-both(и то, и другое)
InvertRestrict - инвертировать запреты (0-нет, 1-да), если много запретов, то ставим 1 и идем от обратного.
Constant - имя константы CLASS_TYPE_***, используется например в сравнении с результатами GetClassByPosition()
EffCRLvl01,EffCRLvl02,...,EffCRLvl20 - Рейтинг крутости класса для заданного уровня, используется для определения коэффициента на получение опыта, а также для сравнения с монстрами, т.е. чем он выше тем менее "impossible" будет писаться в описании монстров.
PreReqTable - мое любимое, ссылка на соответствующую CLS_PRES_***.2da, отвечающую за требования, которые выдвигаются к персонажу для взятия уровня в этом классе (помимо мировозрения).
MaxLevel - максимальный уровень, который персонаж может набрать в этом классе, при 0 действует ограничение ядра, иначе(1..40) выбранный уровень (ставить 41 и выше бессмысленно, хотя в сумме с кое-какими другими изменениями можно добиться отмены ограничения в 40 уровней)
XPPenalty - учитывается ли этот уровень при вычислении пенальти к получаемому опыту за мультиклассовость (0-нет, 1-да).
ArcSpellLvlMod - если в этой строке стоит число отличное от 0, то оно определяет количество уровней дданного класса, за которые дается продвижение на 1 уровень по таблице, указанной в SpellGainTable наивысшего класса арканного заклинателя для класса заклинателя соответственно (начиная с 1-го), при этом уровень этого класса не изменяется. (т.е. если стоит 2, то на уровнях 1,3,5... будут добавляться слоты другому магическому классу, или этому - если он магический и выше по уровню).
DivSpellLvlMod - аналогично для слотов клирических заклинаний, ?тут у меня снова будет вопрос?.
EpicLevel - ограничение на максимальный уровень класса, до тех пор пока персонаж не станет эпическим. (т.е. не будучи эпиком нельзя выбрать этот класс при повышении уровня, если текущий его уровень равен указанному числу)
Package - идентификатор данного класса для пакаджей (см. ниже)
<small>Добавлено в 23:34</small>
Заметили как много *.2da таблиц отсюда ветвятся, одну забудешь и нету класса.
Идем дальше:

CLS_PRES_***.2da - табличка PreReqTable требований престиж-классов, помимо прямого описания необходимых фитов, численного значения навыков, здесь можно сравнивать переменные, полученные от скриптов (активно использовалось в SoU)

Id,LABEL - Id и метка
ReqType - Параметр, который нужно сравнить с некоторым значением (можно считать это функциями, возвращающими TRUE или FALSE), если результат истинна, то можем выбрать этот класс при повышении уровня.
ReqParam1 - первый параметр функции ReqType
ReqParam2 - второй параметр функции ReqType

Сейчас возможные функции не говорю, но если кому-нибудь интересно могу описать. Нужно?

packages.2da - очень важная табличка для того, чтобы наш класс заработал (я о ней забыл и получил кучку проблем)

Id,Label - Id и метка
Name - ссылка в файле tlk на имя пакаджа класса
Description - ссылка в файле tlk на описание пакаджа класса
ClassID - идентификатор класса, для которого этот пакадж, должен совпадать с полем Package в classes.2da (собственно это связь)
Attribute - по смыслу совпадает с PrimaryAbil в classes.2da
Gold - количество золота, которое получает персонаж при старте
School - школа заклинаний для арканных кастеров, учитывается при определении доступных заклинаний в spells.2da (дает ограничения и запреты, значение равно указанному в spellschools.2da +1, т.к. 0-значит нет ограничений) ?не могу понять почему бард имеет ограничение по Трансмутации?
Domain1 - выбранный домен номер раз у клириков
Domain2 - номер два
Associate - идентификатор для фамилиара из таблицы hen_familiar.2da для визарда/сорка или для компаньона из hen_companion.2da для друида.
SpellPref2DA - имя таблицы PackSP***.2da с заклинаниями, которые будет знать персонаж данного класса (для арканных кастеров)
FeatPref2DA - имя таблицы PackFT***.2da c фитами, которые будут выбранны персонажем
SkillPref2DA - имя таблицы PackSK***.2da c распределением очков навыка. Эти три строки задают то, что будет получаться при нажатии "recommended", а иначе вас ждет краш (оч. неприятный)
Equip2DA - имя таблицы PackEQ***.2da, указывающей какие итемы будут даны персонажу в инвентарь в начале игры.
Soundset - id в soundset.2da, указывающий на звуковой пресет персонажа (0 по умолчанию)
<small>Добавлено в 23:41</small>
Вопросы будут чуть позднее.
И связаны они в первую очередь с созданием кастеров и связью с spells.2da

Автор: Клемент Астилон Jan 4 2005, 13:24

Не плохо. Респект.
Можно уже потихоньку оформлять в русский мануаль по 2да smile.gif

Автор: Lex Jan 4 2005, 13:25

Clement Astilon, займешься этим?
<small>Добавлено в 13:27</small>
ДО КУЧИ:

CODE

__________________________________________________________
__________________________________________________________

Обшие столбцы:
ID(пустой столбец) - итендификатор, используется чаще всего для

ссылки на другие 2да, причём само число неважно,- т.к учитывается

лишь номер строки, однако полезно.

Description/STR_REF/Name - текстовая информация (описание,название и

т.д) В качестве значения указывается ссылка на ID из *.tlk файла.

LABEL - внутригровое имя, иногда используется для ссылок в 2да но

чаще просто как удобное обозначение.
____________________________________________________
ammunitiontypes.2da

Model - имя файла модели

ShotSound - звук при выстреле

ImpactSound - звук при попадании
____________________________________________________
apperance.2da

NAME - имя используюшееся для принадлежности данной модели

персонажа

RACE - имя файла с моделью.

ENVMAP - текстура которая будет использоваться для создания эффекта

отражения.

BLOODCOLR - цвет крови: R - красный, G - зеленый, W - белый, O -

оранжевый, Y - желтый, B - голубой, P - пурпурный.

MODELTYPE - тип модели: P - модель игрока, F - модель с "полным"

набором анимации, S - модель с набором анимации creature (монстры,

животные), L - модель с набором анимации creature, но с анимацией

оружия.

WEAPONSCALE - визуальное увеличение/уменьшение оружия( 1 - без

изменений).

WING_TAIL_SCALE - визуальное увеличение/уменьшение "крыльев"

существа.

HELMET_SCALE_M - визуальное увеличение/уменьшение шлема (мужск)

HELMET_SCALE_F - визуальное увеличение/уменьшение шлема (женск)

MOVERATE - скорость передвижения.(численые значения этих переменных

см. в creaturesspeed.2da).

WALKDIST - перемешение при ходьбе.

RUNDIST - перемешение при беге.

PERSPACE,CREPERSPACE - расстояние на которим могут находиться

персонажи друг от друга.

HEIGHT - высота ???


HITDIST - расстояние удара

PreFatCKDist - растояние атаки без использования оружия.

TARGETHEIGHT - высота цели(а точнее тип атаки H или L ).

ABORTONPARRY - ???

RACIALTYPE - расса

HASLEGS, HASARMS -соответственно определяют есть ли у перонажа ноги

и руки.

PORTRAIT - портрет по умолчанию.

SIZECATEGORY - размер, ID из creaturesize.2da

PERCEPTIONDIST - дистанция обнаружения(появления).

FOOTSTEPTYPE - звук при ходьбе (ID из Footstepsounds.2da)

SOUNDAPPTYPE - остальные звуки персонажа (ID из apperancesndset.2da)

HEADTRACK - возможность поворачивания головы в сторону других

персонажей .

HEAD_ARC_H и HEAD_ARC_V - соответственно углы поворота.

HEAD_NAME - название обьекта головы в MDL модели персонажа.

BODY_BAG - набор сокровишь ( ID из Bodybag.2da).

TARGETABLE - определяет может ли данная модель выбираться в качестве

цели.(подсвечиваться)
_________________________________________
apperancesndset.2da

ArmorType - тип брони

WeapTypeL,WeapTypeR,WeapTypeS,WeapTypeClsLw,WeapTypeClsH,WeapTypeRch

,FallFws, FallBck - звук звучащий при соответствующих

ударах/падениях ( ИД из

Looping - постоянно повторяющийся звук
_________________________________________
areaeffects.2da

SHAPE - Способ задания формы зоны: R- прямоугольник, C - круг.

RADIUS - радиус круга (если используется круг)

WIDTH, LENGTH - ширина и длина квадрата.

ONENTER - скрипт выполняемый при входе в зону

HEARTBEAT - скрипт периодически выполняемый когда объект находится в

зоне.

ONEXIT - скрипт выполняемый при покидании зоны.
_________________________________________
Armor.2da

ACBONUS - общий бонус АС

DEXBONUS - максимальный бонус от ловкости

ACCHECK - пенальти к скилам

ARCANEFAILURE% - процент "провала" заклинания

WEIGHT - вес

COST - цена
_________________________________________
Baseitems.2da

InvSlotWidth - занимаемое место в инвентаре - ширина.

InvSlotHeight - занимаемое место в инвентаре - высота.

EquipableSlots - слоты в которые можно экипировать данный предмет:
0x00000 – не экипируемое
0x00001 - шлем
0x00002 - броня
0x00004 - обувь
0x00008 - перчатки
0x00010 - расходуемое оружие
0x00020 - щит
0x00030 - Дистанционное оружие
0x00040 - плащ
0x00180 - кольцо
0x00200 - амулет
0x00400 - пояс
0x00800 - стрелы
0x01000 - заряды для пращи
0x02000 - заряды для арбалета
0x1C000 - оружие существа
0x1C010 - двуручное оружие
0x1C030 - одноручное оружие
0x20000 - броня существа (щкура)

CanRotateIcon -возможность поворачивать в окне редактора.

ModelType - тип модели
1 - используется только для шлема
2 - составная модель
3 - броня
0 - выборачная модель (выбирается иконка модели, а вместе с ней

подставляется и модель).

ItemClass - имя модели (для разных типов моделей, свои правила в

именах).

GenderSpecific - определяет зависит ли выбор модели от пола

персонажа.

Part1EnvMap, Part2EnvMap, Part3EnvMap - текстура отражения

соответственно для 1-й 2-й и 3-й частей модели.

DefaultModel - модель по умолчанию.

DefaultIcon - иконка по умолчанию.

Container - определяет является ли модель контейнером.(можно ли туда

что-то положить).

WeaponWield - определяет тип анимации для этой модели:
1 - без типа анимации (предметы которые носят )
2 -
3 -
4 - копья и т.д
5 - Лук
6 - арбалет
7 - шит
8 - двухсторонние мечи и т.д
9 - оружие существ
10 - дарты и праща (гранаты)
11 - Сюрикены, метательные топоры
**** - стандартное оружие



WeaponType - тип урона от оружия
1 - колющий
2 - дробящий
3 - режущий
4 - колющий и режущий

WeaponSize - размер окужия
1 - мелкий
2 - маленький
3 - средний
4 - большой

RangedWeapon - дистанционное оружие(ID амуниции из этого же файла).

PrefAttackDist, MinRange, MaxRange, NumDice, DieToRoll, CritThreat,

CritHitMult - стандартный харак-ки оружия .

CritThreat - вероятность нанесения критического удара
1 - d20
2 - d19-20
3 - d18-20
и т.д

BaseCost - базовая цена.

Stacking - по сколько штук может храниться (например стрелы 99).

InvSoundType - звук в инвентаре (ID из Inventorysnds.2da).

StorePanel - определяет в какой группе находится предмет у торговца
0 - броня
1 - оружие
2 - эликсиры
3 - маг. вещи
4 -

ReqFeat0, ReqFeat1, ReqFeat2, ReqFeat3, ReqFeat4 - требуемые фиты(

ID из Feats.2da)

AC_Enchant, BaseAC, ArmorCheckPen -снова хар-ки оружия.

ChargesStarting - количество зарядов.

RotateOnGround - возможность поворота на земле.

TenthLBS - Вес.

WeaponMatType - тип материала оружия.(используется в основном для

определения звука и т.д)

AmmunitionType - тип аммуниции (ID из ammunutiontypes.2da).

ArcaneSpellFailure - вероятность срыва закленания

%AnimSlashL, %AnimSlashR, %AnimSlashS - вероятность проигрования

одного из типов анимации.

ILRStackSize - почти тоже что и Stacking.
__________________________________________
Classes.2da
HitDie - хитов на уровень (думаю понятно)
AttackBonusTable - имя таблицы BAB (Base Attack Bonus) см. любую из них там всё просто.
FeatsTable - имя таблицы фитов (о ней ниже)
SavingThrowTable - таблица спасс бросков (там тоже всё понятно)
SkillsTable - таблица скилов.
BonusFeatsTable - таблица бонусных фитов (привет из ХоТУ .. - дополнительная таблица по фитам)
SkillPointBase - сколько скил пойнтов получает этот класс не считая всяких там бонусов за интелект и т.д.
SpellGainTable - таблица спеллов которые "даются" - т.е слоты для спеллов.
SpellKnownTable - таблица спеллов которые "может применить" - т.е как сорк Н-дцать спелов опред левла.
PlayerClass - может ли игрок использовать этот класс.
SpellCaster - и так понятно, 1 - класс спелкастер, 0 - нет.
Str,Dex,Con,Wis,Int,Cha - "рекомендуемые" параметры.
PrimaryAbil - основная для класса характеристика (я точно не уверен но кажется она как-то влияет на опыт)
AlignRestrict - ограничитель на alignment: 0x01 = NEUTRAL, 0x02 = LAWFUL, 0x04 = CHAOTIC, 0x08 = GOOD, 0x10 = EVIL.
AlignRstrctType - дополнение к первому, но влияет как бы сказать на линию: 0x01 = lawchaos, 0x02 = goodevil, 0x03 = оба.
Constant - константа класса, впринцепе очень нужна только для скриптов.
EffCRLvl1-20 - эффективный уровень, вляет на опыт персонажа.
PreReqTable - таблица требований престижа
MaxLevel - максимальный уровень в классе.
XPPenalty - пеннальти за мультиклассовость
ArcSpellLvlMod, DivSpellLvlMod - эффективный уровень кастера.
EpicLevel - когда становиться эпиком.
Package - пресеты.

cls_atk_* - таблица изменения BAB (Base Attack Bonus)
cls_bfeat_* - таблица получения "бонусных" фитов
___________________________________
cls_feat_* - таблица отвечающая за набор фитов для каждого класса.

___________________________________
cls_pres_* - набор "ограничений" для класса

ReqType - тип переменной (тип требования)
ReqParam1, ReqParam2 - требуемый параметр 1 и 2 соответственно.
Наборы примерно такие:
FEAT - фит/ в качестве параметра указывается ИД из Feat.2da
FEATOR - один из фитов/ в качестве параметра указывается ИД из Feat.2da
RACE - расса/ в качестве параметра указывается ИД из Racialtypes.2da
BAB - собственно BAB/ в качестве параметра указывается число
ARCSPELL - возможность колдовать тайные (arcane) заклинания/ в качестве параметра указывается требуемый уровень заклинаний
SKILL - скилл/ в качестве первого параметра указывается ИД из Skills.2da, в качестве второго необходимое значение скилла
CLASS - класс/ в качестве параметра указывается ИД из Сlasses.2da
CLASSOR - один из классов/ в качестве параметра указывается ИД из Сlasses.2da
VAR - локальная переменная на персонаже/ в качестве первого параметра указывается имя переменной, в качестве второго необходимое значение
DIVSPELL -?
SKILLOR - ?

____________________________________
cls_savthr_* - таблица спасов для каждого класса.
Level - уровень игрока
FortSave -
RefSave -
WillSave -
____________________________________
cls_skill_* - таблица скиллов для каждого класса
SkillLabel - внутр. название скила
SkillIndex - ИД из Skills.2da
ClassSkill - определаяет расход скил пойнтов на скилл
____________________________________
creaturesize.2da -
ACATTACKMOD - модификатор атаки.
____________________________________
creaturspeed.2da
2DAName - имя используемое в других 2да
WALKRATE - частота шагов (перемещение при этом указывается в appernace.2da)
RUNRATE - частота бега (перемещение указывается в apperance.2da)
____________________________________
damagehitvisual.2da
VisualEffectID - виз.эффект для оружия ближнего боя (итендификатор из visualeffects.2da )
RangedEffectID - виз.эффект для оружия дальнего боя ( итендификатор из visualeffects.2da )
____________________________________
defaultacsounds.2da
Label - собственно АС
ArmorType - тип брони (см.
____________________________________
des_ *
/////////////////////////////////////
____________________________________
Disease.2da
First_Save -
Subs_Save -
Incu_Hours -
Dice_1 -
Dam_1 -
Type_1 -
Dice_2 -
Dam_2 -
Type_2 -
Dice_3 -
Dam_3 -
Type_3 -
Type -
End_Incu_Script -
24_Hour_Script -
__________________________________
domains.2da
Level_1-9 - определяет халявные заклинания,
GrantedFeat - каким фитом даётся домен ?????
CastableFeat -
__________________________________
doortypes.2da
Model - модель двери
TileSet - тайлсет к которой она относится
TemplateResRef - ресреф модели по умолчанию (если имееется)
StringRefGame -
BlockSight -
VisibleModel - видимость модели
SoundAppType - звук ( ИД из
__________________________________

......................
__________________________________
Feat.2da
FEAT - имя фита (ид из tlk)
MINATTACKBONUS - минимальный BAB для получения фита.
MINSTR, MINDEX, MININT, MINWIS, MINCON, MINCHA - мин. характеристики.
MINSPELLLVL - минимальный уровень заклинаний
PREREQFEAT1, PREREQFEAT2 - требуемый фит, для взятия этого.
GAINMULTIPLE - можно ли брать фит несколько раз. (1-да 0 - нет)
EFFECTSSTACK - "накапливаемость" фита
ALLCLASSESCANUSE - может ли фит использоваться всеми классами
CATEGORY -
MAXCR -
SPELLID - ид из Spells.2da (фактически там указывается действие фита)
SUCCESSOR -
CRValue -
USESPERDAY - сколько раз в день можно использовать фит.
MASTERFEAT -
TARGETSELF -
OrReqFeat0 - почти то же что и PREREQFEAT1, но требуется только один из них, а не обязательно оба
REQSKILL - требуемый скилл (ИД из
ReqSkillMinRanks - требуемое минимальное значение скила
Constant - константа фита
TOOLSCATEGORIES -
HostileFeat -
MinLevel - минимальный требуемый уровень игрока.
MinLevelClass - класс для минимального требуемого уровня игрока.
MaxLevel - максимальный уровень (после него фит нельзя взять)
MinFortSave -
PreReqEpic - требование к "эпичности" персонажа.
__________________________________
footstepsounds.2da
Label - тип персонажа
Dirt0, Grass0, Stone0 и далее - это типы поверхности (указываются звуковые файлы шагов, для этих поверхностей)
__________________________________
genericdoors.2da
//////////////////////////////
__________________________________
hen_companion.2da
BASERESREF - ресреф с хенчем (имя стандартного utp файла)
__________________________________
IPRP_ * - эти файлы отвечают за некоторые инструменты и функции в тулсете, большенство из них несут просто текстово/ресрефовую информацию, но некоторые черезвычайно полезны, в основном за счёт так называемого модификатора цены cost, а так же возможности дополнить их недоступными ранее свойствами либо разрешить использование каких либо ранее запрещённых свойств, например:
iprp_lightcost.2da
Если в нём изменить значение Cost = 0.5 у Type:_Bright_(20m), на скажем (минус) "- 10", - то добавление у свойств предмета самого яркого света, будет не увиличевать стоимость предмета (как в голдах, так и в левлах), а наоборот понижать её.
Или к примеру, можно расширить список iprp_onhitspell.2da, что бы добавить новые (возможно даже самодельные) спеллы к оружию.
__________________________________
parts_*
COSTMODIFIER - множитель цены
ACBONUS - бонус к АС

А так же в случае с parts_robe.2da
HIDEFOOTR, HIDEFOOTL и т.д - определяют какие части модели брони скрывать при использовании робы.
__________________________________
placeableobjsnds.2da
ArmorType - тип материала из которого изготовлен плейсибл.
Opened - звук при открытии плейсибла
Closed - соответственно при закрытии
Destroyed - уничтожении
Used - использовании
Locked - запирании
__________________________________
placeable.2da
/////////////////////////////////////////////////////
__________________________________
poison.2da
Save_DC
Handle_DC
Dice_1
Dam_1
Default_1
Script_1
Dice_2
Dam_2
Default_2
Script_2
Cost
OnHitApplied
VFX_Impact
__________________________________
polymorph.2da
AppearanceType - модель для замены (ИД из apperance.2da)
RacialType - раса (ИД из RacialTypes.2da)
PortraitId - портрет (ИД из Portraits.2da)
Portrait - прямое имя портрета
CreatureWeapon1 - оружие существа (файл либо ресреф)
HideItem - броня в слоте Hide(шкура) (файл либо ресреф)
EQUIPPED - экиперовка оружием (файл либо ресреф)
STR, CON, DEX - приобретаемые характеристики
NATURALACBONUS - бонус к АС
HPBONUS - бонус к НР
SoundSet - набор звуков (ИД из
SPELL1, SPELL2, SPELL3 - активные фиты (спеллы) приобретаемые с полиморфом(ИД из spells.2da)
MergeW - остаётся возможность менять оружие
MergeI - остаётся возможность менять предметы (кольца, амулеты и т.д)
MergeA - остаётся возможность менять броню
__________________________________
portraits.2da
///////////////////////////////////////
__________________________________
race_feat_*
FeatLabel - название фита.
FeatIndex - ID из Feats.2da
__________________________________
racialtypes.2da
Abbrew - Сокращенное название.
Name - имя расы.
NamePlural - имя во множественном числе.
Description - описание.
Appearance - дефолтная модель.(ID из Appearance.2da)
StrAdjust - поправка на силу.
DexAdjust - то же для ловкости.
ConAdjust - для телосложения.
IntAdjust - для интеллекта.
WisAdjust - для мудрости.
ChaAdjust - для харизмы.
Favored - Favorite Class для этой расы. ( ID класса из classes.2DA.)
FeatsTable - таблица фитов рассы.
Biography - биография. (ID из dialog.tlk).
PlayerRace - может ли игрок выбрать расу.
Constant - константа рассы.
Age - примерный возраст.
__________________________________
restduration.2da
LABEL - уровень
DURATION - длительность отдыха
__________________________________

skills.2da
Untrained - подготовленость в данном скиле.
KeyAbility - ключевая характеристика для скилла. ( STR (сила), DEX (ловкость), CON (телосложение), INT (интеллект), WIS (мудрость), CHA (обаяние).)
ArmorCheckPenalty - дает ли пенальти надетая броня при использовании скилла. 0 — нет, 1 — да.
AllClassesCanUse — все ли классы могут использовать этот скил. Если поставить 0 — нет, если 1 — да.
Constant - константа умения.
HostileSkill -

__________________________________
Sound*
//////////////////////////////////////////////////////////////////
__________________________________
spells.2da
////////////////////////////////////////////////////////////////// форум
__________________________________
spellschools.2DA
Letter - буква идентификатор школы(исп-ся для других 2da)
StringRef — имя в игре (ID из tlk)
Opposition — противоположная школа магии. ( ID другой школы ).
Description — описание(ID из tlk)
__________________________________
surfacemat.2da
Label - тип поверхности
Walk - можно ли ходить по данной местности (1-да 0 -нет)
WalkCheck -
LineOfSight - используется ли на данном типе местности LineOfSight
Sound - звук издаваемый на данной поверхноти (значение из
IsWater - определяет воду
Visual - виз. эффект на месте следов (да и сами следы в том числе)
__________________________________
*_edge.2da
////////////////////////////////////////////////////////////////
__________________________________
traps.2da
TrapScript - скрипт ловушки
SetDC -
DetectDCMod -
DisarmDCMod -
TrapName -
ResRef -
IconResRef -
__________________________________
vfx_persistent.2da
/////////////////////////////////////////////////////////////////
__________________________________
visualeffects.2da
Type_FD - тип эффекта:
f - fire and forget
d - duration
b - beam
p - permament

OrientWithGround -
Imp_HeadCon_Node - модель эффекта которая будет прикреплина к хелперу head (т.е голове)
Imp_Impact_Node - модель эффекта которая будет прикреплина к хелперу Impact (который находится на туловище)
Imp_Root_S_Node, Imp_Root_M_Node, Imp_Root_L_Node, Imp_Root_H_Node - модель которая будет прикреплина к Root-у, где S,M,L,H - для разных размеров персонажа.
ProgFX_Impact -
SoundImpact - звук при
ProgFX_Duration -
SoundDuration - длительность звука
ProgFX_Cessation -
SoundCessastion - звук при
Ces_HeadCon_Node - модель эффекта которая будет прикреплина к хелперу head (т.е голове) при ...
Ces_Impact_Node - модель эффекта которая будет прикреплина к хелперу Impact (который находится на туловище) при ...
Ces_Root_S_Node и т.д -
ShakeType - тип эффекта "землетрясения"
ShakeDelay - задержка "землетрясения"
ShakeDuration - длительность "землетрясения"
LowViolence -
LowQuality -
___________________________________
weaponsounds.2da
//////////////////////////////////////////////////////////////////
___________________________________
продолжение пишется ...
то описание чего отсутствует или помеченно //////////, - будет в скором времени дополнено.
___________________________


ICE BLADE

Автор: Клемент Астилон Jan 4 2005, 19:41

Да пожалуй займусь.
Хорошие описания, Респект smile.gif

Автор: Lex Jan 4 2005, 19:53

Было бы ОЧЕНЬ здорово.
Наверное в тутор надо все таблицы разобрать (каждый столб что значит) и примеры.
Чем больше, тем лучше. В идеале для каждой таблицы пример кастомной строки.
Так намного легче изучать.

Автор: Vhall Jan 4 2005, 23:30

Хм, где здесь Айс публиковал список безопасных ID для 2da'шек? Очень нужно racialtypes и appearance

Автор: DBColl Jan 5 2005, 01:03

Vhall’rafein
Это есть среди статей у нас на сайте вроде бы... Просмотри, будет быстрее. wink.gif

Автор: K.SpecTr Jan 5 2005, 01:28

Спасибо за мастера, дали в тихую - я и не заметил. biggrin.gif
Lex
"Куча" - это хорошо, но лучше мы это все здесь детально разберем, для редактирования неточностей и пропусков.
Ну да ладно, продолжаем с классами.

Еще немножко таблиц, нужных для создания класса (они простые, но есть моменты)

CLS_ATK_*.2da - таблица зависимости базового модификатора атаки от уровня персонажа
Level - Это не ид, а уровень персонажа (столбец не имеет метки, 0=1-му уровню)
BAB - базовая атака для этого уровня
CLS_ATK_1.2da - таблица для файтеров
CLS_ATK_2.2da - таблица для клириков
CLS_ATK_3.2da - таблица для магов

CLS_BFEAT_***.2da - таблица задающая получение дополнительных фитов персонажа
Level - уровень персонажа
Bonus - количество дополнительно получаемых фитов на этом уровне

CLS_SAVTHR_***.2da - таблица, задающая зависимость сэйвов данного класса от уровня
Id - Ид
Level - уровень персонажа
FortSave - соответствующий уровню спас.бросок по стойкости
RefSave - соответствующий уровню спас.бросок по рефлексам
WillSave - соответствующий уровню спас.бросок по воле

CLS_SKILL_***.2da - таблица, задающая классовые и внеклассовые навыки персонажа
Id - Ид
SkillLabel - метка(название) навыка
SkillIndex - индекс навыка в таблице skills.2da
ClassSkill - является ли навык классовым (1-да и стоит одно очко для повышения; 0-нет и стоит 2 очка)
Замечание: Если какие-то навыки надо сделать недоступными классу, то соответствующие строки не должны включаться в таблицу (например, UMD)
Кроме того, надо редактировать таблицу skills.2da (будет ниже)

CLS_SPGN_***.2da - таблица зависимости доступных слотов заклинаний от уровня персонажа
Id - Ид
Level - уровень персонажа
NumSpellLevels - текущий максимальный уровень заклинаний (1..10, т.к. кэнтрипы считаются 1-го уровня)
SpellLevel0,SpellLevel1,...,SpellLevel9 - количество доступных слотов для заклинаний данного уровня (а тут кэнтрипы считаются 0-го уровня)
Значение **** вместо нуля, это так к слову.

CLS_SPKN_***.2da - таблица, задающая максимальное количество заклинаний в книге, которые может выучить Сорк/Бард для конкретного уровня опыта
Id - Ид
Level - уровень персонажа
SpellLevel0,SpellLevel1,...,SpellLevel9 - количество доступных для изучения заклинаний соответствующего уровня при повышении уровня персонажа
Совет: не ставте число большее, чем число всех возможных заклинаний данного уровня - результат может быть непредсказуемый.
Можно ставить меньшее число, чем на предыдущем уровне - персонаж должен будет отказаться от заклинаний (у меня просто обрезало последнее известное заклинание)

PackSP***.2da - таблица с заклинаниями, выбираемыми персонажем по умолчанию
Id - Ид
SpellIndex - индекс заклинания в spells.2da
Label - текстовая метка заклинания
Замечание: Это не только заклинания в книге, но и "любимые" по приоритету для кастования (так что табличку для клериков тоже делать прийдется)

PackFT***.2da - таблица c фитами, которые будут выбранны персонажем по умолчанию
Id - Ид
FeatIndex - индекс фита в feat.2da
Label - текстовая метка фита
Замечание: Нужно перечислить все возможные для класса фиты (а их может быть ой как много), т.к. этот приоритет выбора должен учитывать фиты, выбранные вручную
Замечание 2: В принципе можно и не все, но тогда есть шанс краша (хоть его вероятность близка к нулю), но обязательно не меньше чем максимальное количество фитов, которые может выбрать персонаж на максимальном уровне (из доступных).

PackSK***.2da - таблица c распределением очков навыка по умолчанию (точнее приоритета навыков)
Id - Ид
SkillIndex - индекс навыка в skills.2da
Label - текстовая метка навыка
Замечание: если все перечисленные в таблице навыки уже нельзя повышать, то очки навыков останутся не распределенными.

PackEQ***.2da - таблица, перечисляющая все итемы в стартовом инвентаре персонажа
Id - Ид
Label - таг вещи, например NW_IT_TORCH001 для факела (хотел бы я знать где они все перечисляются, ведь где-то же они это делают)

Дальше больше...

Автор: Vhall Jan 5 2005, 12:01

DBColl
В статьях нет и тему 2da FAQ удалили (распределили). Весело biggrin.gif

Автор: Ice Blade Jan 5 2005, 14:20

ambientmusic.2da - 150
ambientsound.2da - 200
ammunitiontypes.2da - 75
appearance.2da - 750
appearancesndset.2da - 50
baseitems.2da - 200
bodybag.2da - 20
chargenclothes.2da - 40
classes.2da - 50
creaturesize.2da - 20
crtemplates.2da - 20
defaultacsounds.2da - 20
disease.2da - 30
domains.2da - 50
doortypes.2da - 300
effecticons.2da - 175
environment.2da - 50
feat.2da - 2000
footstepsounds.2da - 30
genericdoors.2da - 20
hen_companion.2da - 20
hen_familiar.2da - 20
iprp_feats.2da - 50
iprp_spellcost.2da - 300
iprp_spells.2da - 750
itempropdef.2da - 150
itemprops.2da - 150
loadscreens.2da - 150
masterfeats.2da - 30
metamagic.2da - 20
packages.2da - 150
parts_belt.2da - 30
parts_bicep.2da - 30
parts_chest.2da - 75
parts_foot.2da - 30
parts_forearm.2da - 40
parts_hand.2da - 20
parts_legs.2da - 30
parts_neck.2da - 20
parts_pelvis.2da - 50
parts_shin.2da - 30
parts_shoulder.2da - 50
placeableobjsnds.2da - 50
placeables.2da - 1000
poison.2da - 75
polymorph.2da - 150
portraits.2da - 2000
racialtypes.2da - 50
skills.2da - 50
spells.2da - 1500
spellschools.2da - 20
surfacemat.2da - 50
traps.2da - 100
vfx_persistent.2da - 50
visualeffects.2da - 750

PS
Никому не кажется что эта тема немного не там где должна быть, всётаки 2да это как никрути контент.

Автор: Lex Jan 5 2005, 18:45

Айс, я все таки за то, чтобы 2да переместить в Тулсет.
В Макс+НВН оставить только моделинг и интегрирование его в НВН. (+ сопутствущие 2да. Но не таблицы классов, расс и тд.)
По 2да народ в основном лезет (по вполне понятной причине) в Тулсет, а не в Макс. И не находя ответы, создает новые темы и тд.

Автор: Vhall Jan 5 2005, 19:32

Ice Blade
Спасибо, прямо выручил yes.gif

Кстати, ни у кого нет уже размеченного с 400 до 750 appearance.2da? biggrin.gif
Или кто-нибудь может предложить рациональный вариант разметки... lol.gif

Автор: DBColl Jan 5 2005, 19:37

QUOTE (Vhall’rafein @ Jan 5 2005, 18:32)
Кстати, ни у кого нет уже размеченного с 400 до 750 appearance.2da? Или кто-нибудь может предложить рациональный вариант разметки...

Копировать строки, а потом ручками переписывать ID в 3 прохода. Сначала единицы, потом десятки, потом сотни. smile.gif

Автор: K.SpecTr Jan 6 2005, 01:51

skills.2da - таблица, отвечающая за все доступные в игре навыки.

Id - индекс
Label - текстовая метка навыка
Name - ссылка в файле tlk на название навыка
Description - ссылка в файле tlk на описание навыка
Icon - имя ресурса с иконкой навыка
Untrained - позволяется ли использование навыка без присвоения ему очков при повышении или выборе уровня (бонусы не учитываются)(1-да, 0-нет)
KeyAbility - характеристика, ответственная за навык (от нее будут зависеть бонусы и пенальти к навыку)
ArmorCheckPenalty - накладываются ли на навык пенальти от брони (значение в поле ACCHECK таблицы armor.2da) (0-нет, 1-да)
AllClassesCanUse - доступен ли навык всем классам (1-да, 0-нет)
Замечание: Это значение взаимно перекрывается строкой в CLS_SKILL_***.2da: т.е. если стоит 1 и строка навыка в CLS_SKILL_***.2da отсутствует, то навык все равно будет добавлен классу как внеклассовый, что позволяет сокращать строки в CLS_SKILL_***.2da; если стоит 0, но строка в CLS_SKILL_***.2da есть, то навык будет доступен по правилам CLS_SKILL_***.2da; для того чтобы навык был не доступен необходимо поставить 0 И убедиться что соответствующая строка в CLS_SKILL_***.2da отсутствует.
Category - категория навыков из таблицы categories.2da (надо исправить в feat.2da - была ошибка в названии)
Предположение 1: Биовари зарезервировали этот столбец для возможной группировки навыков, аля "hide"+"move silently"=stealth. Возможно, хотя спорно, это было бы полезно для скриптов, но на практике во всех строках стоит **** (н/а по нашему) и столбец не используется.
Предположение 2: (более вероятное, и я на 99% уверен что так оно и есть, - по аналогии с feat.2da) Есть, например, такая функция GetCreatureTalentBest(), определяющая для AI лучший активный фит или действие по категории исходя из их CR() - теоретически это можно продолжить и на скилы. По категории определяем из каких навыков будем выбирать возможное действие и сравниваем CR.
MaxCR - "рейтинг крутости"(Challenge Rating) для данного навыка. Внутри функции GetCreatureTalentBest() мы выбираем действие, имеющее наиболее приближенный снизу (меньший или равный) maxCR к заданному из одной категории. (Еще один плюс к предположению 2, но возможно более опытные скриптеры меня поправят)
Замечание: Похоже эти две строки хотели применять для определения навыков, годных к использованию во время боя, а именно - animal empathy, heal, parry, taunt.
Constant - имя константы SKILL_***, определяющей навык.
HostileSkill - Является ли навык враждебным по природе и, соответственно, требующим проверки на реакцию объекта (возможно негативную к персонажу, пример - "pick pocket") (0-нет, 1-да)

На этом разбор таблиц для создания класса закончен - следующим будет пример (как только его оформлю).

Автор: Вишес Jan 8 2005, 03:16

K.SpecTr
Так в чем проблема? я торможу что-то...
в этой теме, по моему, лежит все, что надо, для нового класса.
и сразу предупреждаю свой класс я делал варварскими методами, так что вряд ли что мудрое посоветую.

Автор: Vhall Jan 10 2005, 18:46

Тут у меня несколько вопросов. Подскажите пожалуйста.

1. Как прописывается (создается) subrace?
2. Можно ли задать субрасе собсвенную модель?
3. Можно ли изменить модель обычной (сущесвующей) расы?
4. Как изменить параметры существующей расы?

Автор: Аваддон Jan 10 2005, 20:08

Vhall’rafein Вобщето саб раса вводится при создании игрока. Затем скриптами можно ее читать (GetSubRace) и уже в зависимости от нее творить с игроком все что тебе нужно.

Автор: K.SpecTr Jan 10 2005, 20:56

Vhall’rafein
Можно изменить модель или создать свою. Модельки составные вида pZYn_<bodypart>XXX, где:
P - это из столбца MODELTYPE в appearance.2da, если ставим не P, то модель считается не составной, и в RACE стоит RESREF на полную модель кричи (.mdl и текстура одноименные для P - .plt-текстура, для не P - .dds или .tga),
Z - буква для определения пола,
Y - берется из столбца RACE appearance.2da для соответствующей расы,
n - это цифра, что она задает я не разобрался, но вроде это фенотип (0-обычный, 1-толстый),
дальше часть тела (например, chest),
XXX - три цифры, задающие номер модели (для типов одежды, брони и т.д. "надетых" на модель)
Параметры расы меняются в racialtypes.2da.
Вот только как добавить кнопочку в меню рас я не знаю.

Автор: Vhall Jan 11 2005, 00:27

Ага... всем спасибо.
K.SpecTr
А что если модель будет цельная (без возможности изменения цвета волос, головы и т.д.) и из оригинальных? Возможно ли просто прописать ее в racialtypes?

ЗЫ Кнопку для дополнительной расы сделать нельзя. Это вшито в движок. Но можно изменить одну из стандартных, сделав тем самым новую полноценную расу

Автор: Lemegeton Jan 11 2005, 09:05

Усем БАААЛЬШОЕ здарово!!! Или, как говорится, Hello, All! Вот и вышел Я из запоЯ!

А вы, блин, пацаны, вааще, я погляжу, оборзели! Я же тут посты за ПЕРВОЕ ЯНВАРЯ нашел!!! crazy.gif
Вы чего - трэзвенники, что-ли??? Но все-равно. Очень рад вас всех снова... хм... читать?!

Vhall’rafein: Ну нифига вы тут с Chimeric'ом за две недели наворотить успели!!! Еле-еле все прочитал!

QUOTE
... Кнопку для дополнительной расы сделать нельзя. Это вшито в движок. Но можно изменить одну из стандартных, сделав тем самым новую полноценную расу...


Вот, вот. Об этом-то я тебя и хотел спросить-поспрашивать. yes.gif Ну и какую рассу заменять??? dntknw.gif
Добавлено в [mergetime]1105424390[/mergetime]
QUOTE
Можно уже потихоньку оформлять в русский мануаль по 2да 


Тэкс... Меня слегка удивило слово "русский"?! Существует АНГЛИЙСКИЙ мануал?????? diablo.gif

Ну и чего тогда мы тут все (и лично я, заодно) геморрой себе отращиваем в локоть толщиной??? angry2.gif wacko.gif aggressive.gif

НА БОЧКУ!!!

З.Ы. Мастеру колобков: А нельзя ли колобка, бъющего по столу кулаком?! biggrin.gif

Автор: Vhall Jan 11 2005, 19:32

Только что опробовал систему замены расы. Все нормально кроме самой кнопки. Она ссылается на оригинальный диалог и никак не относится к racialtypes. Кто знает как ее заоверрайдить?

Автор: DBColl Jan 11 2005, 22:27

Вал, скорее всего придется расковырять станадартный диалог.тлк и припаять его к твоему модулю... По-крайней мере, я делал это с Проклятием, готовя его к СД-версии.

Автор: Vhall Jan 11 2005, 22:50

Хм, а вот это уже интересно... biggrin.gif
Припаять весь или только нужные строчки? Как это осуществить, не мог бы расписать? Хотя бы примерно

Автор: [MoF]Darth_Nick Jan 11 2005, 23:12

БИГ респект за создание и продлевание етой темы до 3 страницы! biggrin.gif biggrin.gif
теперь снова займусь 2DA

Автор: DBColl Jan 12 2005, 00:27

QUOTE (Vhall’rafein @ Jan 11 2005, 21:50)
Хм, а вот это уже интересно... Припаять весь или только нужные строчки? Как это осуществить, не мог бы расписать? Хотя бы примерно

Да я просто взял одну из лучших руссификаций на сегодняшний день, открыл tlk-шку в tlk-editore и поисправлял для себя те кнопки, которые надо было. Потом пересохранил этот тлк со стандартным именем. То есть я заменил первоначальный dialog.tlk своим dialog.tlk с небольшим подправлением исходного. Обычная операция. Но по ходу ты хочешь сделать все-таки не так... unsure.gif

Автор: Leon PRO Jan 12 2005, 12:05

QUOTE
XXX - три цифры, задающие цвет1+цвет2+номер модели(для типов одежды, брони и т.д. "надетых" на модель)
Не верно, это просто нумерация. Нумерация распределяется по цветам только у оружия.

Автор: Vhall Jan 12 2005, 13:49

DBColl
Твой dialog.tlk был кастомным с нужными тебе исправлениями или заменял оригинальный? unsure.gif

Автор: Lemegeton Jan 12 2005, 17:52

QUOTE
Только что опробовал систему замены расы. Все нормально кроме самой кнопки. Она ссылается на оригинальный диалог и никак не относится к racialtypes. Кто знает как ее заоверрайдить?


Да, да, да.

Именно по этому еще не кидал описалово, как создать рассу. Там, во-первых, совсем дофига чего править нужно, а во вторых...

Никак нельзя название и описание рассы (и еще нескольких вещей) брать из кастомного ltk. Даже в 1.64 нельзя. Единственный выход это править сам Dialog.tlk.
Править его можно любым редактором, работающим с tlk файлами. Значения ставь как можно больше, но МЕНЬШЕ чем 16777216!!! Vhall’rafein, заодно, впиши туда название и описание формотвора, plz, и скинь мне номера (а еще лучше, сам tlk).

Диалог DBColl'а был оригинальным, но с внесенными исправлениями и заменял оригинальный smile.gif

DBColl: А какую вы рассу для Проклятья делали?

Автор: Vhall Jan 12 2005, 18:29

Выходит для прошивания оригинального ТЛК его нужно полностью скопировать? Это еще +4 мега в наш хак? swoon.gif

Автор: Lemegeton Jan 12 2005, 18:42

К сожалению... Зато, он хорошо жмется! smile.gif

Автор: DBColl Jan 12 2005, 23:06

Lemegeton

QUOTE (Lemegeton @ Jan 12 2005, 16:52)
DBColl: А какую вы рассу для Проклятья делали?

Мы не расу делали. Мне надо было заменить хинты, которые при загрузке лок внизу написаны, затем сами менюшки подписать вместо оригинальной кампании - написать Проклятие Левора. А внутрь всунуть 3 названия модулей. Вот такие пироги.

А диалог у меня был DIALOG.TLK. Никаких кастомных! Мы же под СоУ еще! wink.gif Просто взял русифицированный тлк и подправил его.

Автор: Vhall Jan 12 2005, 23:53

Так. Вот сейчас я задам провокационный вопрос: biggrin.gif
Дабавляется ли новый (созданный) класс к списку все классов. Его можно будет выбрать? Или опять заменять придется? diablo.gif

Автор: Lemegeton Jan 13 2005, 10:46

Vhall’rafein:
Класс добавить вполне можно. yes.gif Выбираться он будет. Заменять не надо. Только, как и с рассой, его название и описание берется только из DIALOG.TLK. Какая, блин, жалкость. black eye.gif

DBColl:
Гы, забавно. А что, хинты и подписи тоже только из DIALOG.TLK берутся?

Автор: Vhall Jan 13 2005, 11:16

Lemegeton
Скажи пожалуйста, а какие должны быть иконки для фитов и классов?
Добавлено в [mergetime]1105604245[/mergetime]
какой размер

Автор: Lemegeton Jan 13 2005, 11:39

32х32х32b в формате TGA (любой Фотожопой делается).

Автор: DBColl Jan 13 2005, 13:28

QUOTE (Lemegeton @ Jan 13 2005, 09:46)
DBColl: Гы, забавно. А что, хинты и подписи тоже только из DIALOG.TLK берутся?

Хинты - да. А подпись - это что?

Автор: Lemegeton Jan 13 2005, 14:09

QUOTE
Хинты - да.

У-у-у, как все плохо-то.

QUOTE
А подпись - это что?

Это я про менюшки так неудачно выразился. yes.gif

Видимо без перезаписи DIALOGS.TLK не обойтись. Обойтись бы простым добавлением строк smile.gif

Автор: BlackCat Jan 13 2005, 21:33

Своим я читал файлы, на которых NWN2daedit спотыкался))). Могу скинуть с исходниками(на С#). Соответственнно, требуется .Net Framework.

Предупреждаю сразу.... Для работы нужен .Net Framework. Прога умеет делать автозаполнение... Аккуратнее с удалением(по кнопке Дел), оно работает без подтверждения.... Новые 2да создавать нельзя, хотя пункт меню есть... Можно открыть несколько 2да... Ща вышлю версию... Комментарии, просьбы, пожелания, баги на мыло tovasya@mail.ru. Учту и доработаю...

Фрейм ворк качается с Microsoft.com Занимает примерно 25 мегов... Советую скачать... Под него довольно много программ есть....

Номер аси 149586972

Автор: Vhall Jan 14 2005, 12:43

А где храняться иконки классов и фитов в НВН? Допустим при использовании nwnexplorer

Автор: Клемент Астилон Jan 14 2005, 18:37

Для дебага кидай в Оверрайд. А так добавляй в хак-пак либо создавай новый.

Автор: Аваддон Jan 14 2005, 19:10

Когда жмешь на TAB подсвечиваются предметы, игроки, и НПС. Хочу убрать подсветку и слышал, что есть 2да-шка в которой эта подсветка настроена. Не подскажие как этот файл называется?

Автор: DBColl Jan 15 2005, 04:45

Аваддон, смотря наверное с чего именно ты хочешь убрать подсветку. То есть от типа объекта зависит...

Автор: balrog Jan 15 2005, 10:41

QUOTE
Аваддон, смотря наверное с чего именно ты хочешь убрать подсветку. То есть от типа объекта зависит...

отвечу за Аваддона. Подсветку убрать отовюду, от куда только можно ... объекты мобы, если можно то и с игроков pardon.gif

Автор: Клемент Астилон Jan 15 2005, 17:13

Имхо это разве не движковое?

Автор: balrog Jan 15 2005, 19:58

QUOTE
Имхо это разве не движковое?

Этого то я и опасаюсь. А вы не находите эту подсветку плохой идеей? понятия поиска и внезапного наподения уничтожаются благодаря этой нелепой подсветке pardon.gif

Автор: K.SpecTr Jan 15 2005, 21:34

QUOTE (Leon PRO @ Jan 12 2005, 12:05)
Не верно, это просто нумерация.

Исправил обратно, а ведь сначала правильно написал. sorry.gif
QUOTE (Clement Astilon @ Jan 15 2005, 17:13)
это разве не движковое?

Движковое, но возможно был какой-то параметр в .ini файле - посмотрю.

>Посмотрел - Ключика не нашел. Посмотрю еще в *.2da, но не уверен что есть что искать.

Автор: Lemegeton Jan 18 2005, 14:08

Vhall’rafein:

QUOTE
А где храняться иконки классов и фитов в НВН? Допустим при использовании nwnexplorer

В [x2_]textures.bif. Начинаются с ir_***
В nwnexplorer'е они в разделе Textures, TGA.

Автор: K.SpecTr Jan 19 2005, 21:36

Хочу узнать мнение, нужна ли следующая таблица Age_categories.2da ?

CODE

2DA V2.0

          LABEL        BASE_AGE   MIDDLE_AGE   OLD_AGE   VENERABLE
0          Dwarf        40         125          167       250
1          Elf          100        175          233       350
2          Gnome        60         100          133       200
3          Halfling     20         50           67        100
4          Half_Elf     15         62           83        125
5          Half_Orc     15         35           47        70
6          Human        15         45           60        90

Используется скрипт-инклюд с функцией int GetAgeCategory(int Age); который применяется для определения возрастной категории (и возможно эффектов старения по правилам D&D).
Цель - использование в диалогах, для ветвления по условию возраста.
Или лучше просто сделать скрипт без таблицы?

И еще как можно править и добавлять макросы в диалогах, например <FirstName>?

Автор: Lex Jan 19 2005, 21:44

Я бы просто на скриптах это сделал, без 2да.

Автор: K.SpecTr Jan 19 2005, 21:47

Просто с .2da можно редактировать не открывая модуль, вот я и в сомнениях. dntknw.gif

Автор: Vhall Jan 25 2005, 22:00

Кто-нибудь все-таки знает, какая 2da'шка содержит параметры айтемов? unsure.gif

Автор: balrog Jan 25 2005, 22:14

QUOTE
Кто-нибудь все-таки знает, какая 2da'шка содержит параметры айтемов?

Всмысле параметров? погляди baseitems.2da - может там найдёшь то, что тебе нужно.

Автор: Vhall Jan 25 2005, 22:27

properties вещи

Автор: balrog Jan 25 2005, 22:55

QUOTE
properties вещи

Это типо, например, если вздумал поменять у Базого придмета "двуручный топор" поменять базавую атаку? так? .... помоему ничего подобного в 2да таблицах я не находил. Чтож, подождём, что скажут знатоки 2да ... мне бы тоже было бы интересно послушать (почитать).

Автор: Vhall Jan 25 2005, 23:09

На самом деле мне нужно добавить в этот список свой параметр smile.gif
user posted image

Автор: Aiwan Jan 25 2005, 23:28

Скорее всего это *.utp файл типа палитры для тайлсета *.itp.

Автор: Lex Jan 25 2005, 23:30

Нет, это в 2дашке делается...
itemprops вроде.
Добавить не сможешь (те может и сможешь, но я так тебе навскидку не скажу, как), сможешь только включить все, что там есть (но могут быть недостыпны для данного типа вещей).

Автор: Vhall Jan 25 2005, 23:33

QUOTE (Lex @ Jan 25 2005, 23:30)
Добавить не сможешь

А вроде в СЕРе есть новый параметр - ограничение по полу

Автор: Leon PRO Jan 26 2005, 07:40

вобщем делаешь свой скрипт, а-ля магия. и в itemprops его закидываешь.

Автор: Lex Jan 27 2005, 22:46

Требуется достоверная инфа про %AnimSlash + Weapon Type + WeaponWield. (baseitems.2da)
Те %AnimSlashS, %AnimSlashR, %AnimSlashL - что каждое из них значит.
И какая боевая анимация используется при разных сочетаниях этих элементов.


Автор: Клемент Астилон Jan 28 2005, 00:00

Ну вроде это процентный шанс какая анимация будет использована этим орудием.
Правда Слэш это вроде просто рубить. Разве нет еще подобного? Далеко 2да не посмотреть.

Автор: K.SpecTr Jan 28 2005, 19:33

QUOTE (Lex @ Jan 27 2005, 22:46)
Требуется достоверная инфа про %AnimSlash + Weapon Type + WeaponWield. (baseitems.2da)

%AnimSlashX - действительно вероятность срабатывания данной анимации, но не в %, а относительная.
,где Х = Left, Right, Strike - соответственно будет показан взмах слева-направо, справа-налево (а может и наоборот, не помню), прямой удар/укол.
В силу определенных причин, дубины, молотки и топоры имеют %AnimSlashS==0, а всякие самострелы - ****, ибо у них своя анимация.
WeaponWield - указывает, как персонаж (с руками который) будет держать предмет (точки для наложения рук), значение **** значит - либо не используется (например, броня), либо по умолчанию (одноручное, можно держать в любой руке). значение 1 - держать в одной правой, другие не помню smile.gif
Weapon Type - вроде указывает на слэшно-пиерсно-бладжоновскую характеристику:
0 - нет;
1 - пиерс;
2 - бладжон;
3 - рублящий;
4 - режущий.

Автор: Lex Jan 28 2005, 19:44

1 пирс, 2 бладжон, 3 - слэш, 4 - пирс&слэш
Добавлено в [mergetime]1106930769[/mergetime]

QUOTE (K.SpecTr @ Jan 28 2005, 19:33)
AnimSlashX - действительно вероятность срабатывания данной анимации, но не в %, а относительная.

что значит в данном случае относительная?

Автор: K.SpecTr Jan 28 2005, 20:12

Значит сумма может быть любая: 65+65+35=165
Чтобы float не использовать crazy.gif.

Автор: Lex Jan 28 2005, 20:19

а расчет как происходит? Относительно суммы?
Делаю 2 параметра 0, а один 100. (%AnimSlashL - 100, ост 0)
Идут с короткой дистанции колющие удары. Издалека с замахом сверху.
А ставлю %AnimSlashR 100, а остальные 0, то он и колющие делает выпады и боковые удары.
Ставлю %AnimSlashS 100, а остальные 0, выходит так же, как с пред. вариантом.


Анимация как то завивит от Weapon Type?
Те если оружие колющее, то удары соотв и нет режущих боковых ударов (например копье то же)
А от WeaponWield? Если поставить там 9 (Creature weapon) то что будет с анимацией?


Мне собсна вот такая инфа и нужна... smile.gif


ЗЫ: я мог тут че-то и напутать. sad.gif

Автор: K.SpecTr Jan 28 2005, 20:36

Надо попробовать... dntknw.gif
Что-то там с любимой дистанцией еще есть...
Помоему, я что-то перепутал... black eye.gif

Автор: K.SpecTr Jan 28 2005, 21:46

Так, проверил я это дело.
В общем я все правильно писал, только одна поправка:
Похоже, что если в двух параметрах не 100, то шанс выпадения третьего эффекта !=0, независимо от того что в тот столбец вставили.
Т.е. если у меня 100-100-0, то третий не выпадает, но если 100-50-0 - то первые два выпадают в отношении 2:1, а третий как захочет.
Почему, не знаю, хотя в теории четко сказано "will not" для 0. dntknw.gif
P.S. Первый удар всегда идет сверху-вниз, если дистанция до цели больше оптимальной (также вроде для AoO).

Автор: Lex Jan 28 2005, 22:46

Класс! А о связи с WeaponWield и Weapon Type есть что-нить?

Автор: Vhall Feb 1 2005, 19:03

Какой параметр placeables.2da отвечает за появление новых моделей во вкладке custom?

Автор: Aiwan Feb 1 2005, 20:53

А какой параметр отвечает за то, что бы pls_ мог дестроиться на локе в свойствах? Очень надо.
Vhall’rafein если ты про синьку, то это utc файл, что наглядно видно в СЕР-е.

Автор: K.SpecTr Feb 1 2005, 20:55

Vhall’rafein
Никакой!
Если я правильно понял вопрос, то редактируется placeablepalcus.itp для своего модуля. Только одними руками это не сделать.
Добавлено в [mergetime]1107280741[/mergetime]
Aiwan
Какой параметр где? utc - вроде только для крич. swoon.gif
Добавлено в [mergetime]1107280887[/mergetime]
plc_* или pls_*?

Автор: Aiwan Feb 1 2005, 21:17

QUOTE (K.SpecTr @ Feb 1 2005, 23:55)
Какой параметр где? utc - вроде только для крич.

А точно, это uti biggrin.gif

Автор: K.SpecTr Feb 1 2005, 21:22

QUOTE (Aiwan @ Feb 1 2005, 20:53)
А какой параметр отвечает за то, что бы plс_ мог дестроиться на локе в свойствах? Очень надо.

Не совсем понял, что имеется в виду?

Автор: Aiwan Feb 1 2005, 21:22

QUOTE (K.SpecTr @ Feb 1 2005, 23:55)
plc_* или pls_*?

канэчно с.. biggrin.gif Просто я на гребаном диалапе почасовом, вот и постю как пьяная машинистка сто слов в минуту.
Добавлено в [mergetime]1107282497[/mergetime]
QUOTE (K.SpecTr @ Feb 2 2005, 00:22)
Не совсем понял, что имеется в виду?

В свойствах стандартного плейса, есть опция дестроиться. Так вот, этот плейс как бы прячется на локе вниз на 15 метров и остается стрелочка на локе. Если секреетить на этом месте такой же плейс, то он встанет тютелька в тютельку на его место. Что очень важно при расстановке плейсов и креетить их потом на месте из скрипта.

Автор: K.SpecTr Feb 1 2005, 21:47

QUOTE (Aiwan @ Feb 1 2005, 21:22)
Просто я на гребаном диалапе почасовом

У меня сейчас то же самое началось. lol.gif
QUOTE (Aiwan @ Feb 1 2005, 21:22)
В свойствах стандартного плейса, есть опция дестроиться.

А static это разве не она?

Автор: DBColl Feb 1 2005, 22:12

QUOTE (K.SpecTr @ Feb 1 2005, 20:47)
А static это разве не она?

Имхо, как раз то, что нужно Айву. yes.gif

Автор: Lex Feb 1 2005, 22:16

Не, Айв говорит про state объекта. У дверей это Closed, Open 1, Open 2, Destoyed. Ну и у других объетов бывают свои наборы состояний.
Но имхо это отдельно не прописывается, или я не прав? (те состояние destroyed может быть у каждого плэйса)

Автор: Vhall Feb 21 2005, 21:54

Как создать свой раздел в плейсах?
В placeabletypes.2da уже добавил строку, но наверняка существует еще какой-то хитрый itp. =/
А после того как раздел все таки появится, возможно ли ассоциировать с ним плейсы?

Автор: DBColl Feb 22 2005, 13:16

QUOTE (Vhall’rafein @ Feb 21 2005, 20:54)
А после того как раздел все таки появится, возможно ли ассоциировать с ним плейсы?

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

Автор: Vhall Feb 22 2005, 14:00

Я немного не об этом говорю... smile.gif
Мне нужно дополнить стандартный раздел а не кастомный pardon.gif
user posted image

Автор: K.SpecTr Feb 22 2005, 22:25

А зачем? Чем кустомный не нравится?

Автор: Vhall Feb 23 2005, 15:51

Да вот, в голову взбрело pardon.gif
Кстати, за это отвечают placeablepal.itp и placeablepalstd.itp pilot.gif

Автор: Скорпион Feb 24 2005, 19:45

QUOTE
1 пирс, 2 бладжон, 3 - слэш, 4 - пирс&слэш
а я сделал новый вид урона в iprp_damagetype.2da Его как нибудь можно приписать оружию?

Автор: K.SpecTr Mar 21 2005, 11:44

Кому-нибудь тут программка для конвертации 2.b->2.a и обратно, с возможностью редактирования, нужна? Знаю, что это на будущее, но вдруг кто-то захочет KotoR поломать.

Автор: Скорпион Mar 21 2005, 19:02

QUOTE
Кому-нибудь тут программка для конвертации 2.b->2.a и обратно, с возможностью редактирования, нужна? Знаю, что это на будущее, но вдруг кто-то захочет KotoR поломать.
как раз искал, чем бы его ломануть yes.gif

Автор: mamuc Mar 22 2005, 11:14

QUOTE
Мне нужно дополнить стандартный раздел а не кастомный


...хотеть не вредно... biggrin.gif ...насколько знаю кастомные дополнить мона, НО и тогда это будет действовать токо для работы в тулсете , а не в игре( то есть играя ДМом, и захотев сделать итем, это новая разметка разделов не будет видна).....так что забудь об этом yes.gif

Автор: Wakeful Mar 22 2005, 21:05

QUOTE (Vhall’rafein @ Feb 21 2005, 21:54)
В placeabletypes.2da уже добавил строку, но наверняка существует еще какой-то хитрый itp. =/
А после того как раздел все таки появится, возможно ли ассоциировать с ним плейсы?

У меня почти тот же вопрос. Если я создал раздел в палитре, как сделать так, что бы в этом разделе появились плэйсы лежащие у меня в хаке? Распишите поподробней, кто знает. Плиз.

Автор: Vhall Mar 22 2005, 22:44

Wakeful
1. Находишь с помощью Эксплорера в HotU Main Data файл placeablepalstd.itp (раздел templates)
2. Скачай ERF\GFF Editor
http://nwncraft.uk-kubenergo.ru/nwnfiles/utils/ufe.rar
3. Открой itp файл во вкладке GFF
4.
Добавь Element в MAIN (правый клик -> Add Note)
Добавь параметр LISTA в Element (правый клик -> Add Element -> LISTA) -> Затем замени его название с "......" на LIST
DWORD в Element (Add Element -> UINT32) -> Измени название на DWORD и в value впиши ссылку на строку из dialog.tlk
BYTE в Element (Add Element -> UINT8) -> название BYTE. Понятие не имею на что влияет value но с 17 отлично работает pardon.gif
5.
Добавь Element в LIST
CEXOSTRING в Element (Add Element -> SRING32) -> имя NAME, value - файл плейса без расширения
RESREF в Element (Add Element -> SRING8) -> имя RESREF, value - синька по умолчанию

Один плейс прописан smile.gif

Автор: Wakeful Mar 22 2005, 23:00

Большое спасибо. smile.gif

QUOTE (Vhall’rafein @ Mar 22 2005, 22:44)
и в value впиши ссылку на строку из dialog.tlk

Своё название можно?
Добавлено в [mergetime]1111522881[/mergetime]
Vhall’rafein
А можно на примере конкретного плэйса? pardon.gif
Добавлено в [mergetime]1111523646[/mergetime]
В placeabletypes.2da перед этими действамиями нужно строку добавлять? Всё это добро потом с хак кидать соответственно?

Автор: Vhall Mar 22 2005, 23:43

QUOTE (Wakeful @ Mar 22 2005, 23:00)
Своё название можно?

Неа. Да и то свое название задается через CEXOSTRING, а не DWORD. Обзави Special'ом каким-нибудь wink.gif
QUOTE (Wakeful @ Mar 22 2005, 23:00)
А можно на примере конкретного плэйса? pardon.gif

Через DWORD. StrRef равен 0 (т.е. текст "Bad Strref")
http://www.rpgplanet.ru/forums/index.php?act=Attach&type=post&id=3030
Через CEXOSTRING. Как ты можешь заметить, текста нет вообще. Не советую использовать такой вариант - с определением синьки будут большие проблемы pardon.gif. Так, для ознакомления
http://www.rpgplanet.ru/forums/index.php?act=Attach&type=post&id=3031
QUOTE (Wakeful @ Mar 22 2005, 23:00)
Большое спасибо. smile.gif

Всегда рад помочь! yes.gif
Добавлено в [mergetime]1111524309[/mergetime]
QUOTE (Wakeful @ Mar 22 2005, 23:00)
В placeabletypes.2da перед этими действамиями нужно строку добавлять? Всё это добро потом с хак кидать соответственно?

Нет. Один этот файл smile.gif
Добавлено в [mergetime]1111526097[/mergetime]
QUOTE (Vhall’rafein @ Mar 22 2005, 23:43)
Через DWORD. StrRef равен 0 (т.е. текст "Bad Strref") http://www.rpgplanet.ru/forums/index.php?a...pe=post&id=3030

Багофикс: pardon.gif
http://www.rpgplanet.ru/forums/index.php?act=Attach&type=post&id=3034

Автор: DEM Mar 23 2005, 21:08

Вот в Hordes of the Underdark ожно было из простых предметов делать заготовки, а потом соединять их. Как я понимаю это можно сделать в 2da таблицах, а как? О-очень надо...

Автор: Lemegeton Mar 25 2005, 18:51

DEM: Тебя интересует система крафта? Это весьма и весьма непросто. Поищи по форуму (есть кнопочка поиска) или по ваулту - должны быть готовые системы крафта.

Если, все-таки, хочешь "ручками" сделать - "ковыряй" des_conf_*.2da - практически весь крафт - там.

Автор: DEM Mar 25 2005, 20:11

Lemegeton, спасибо... ПОпробую...

Автор: Lex May 2 2005, 15:48

Итак...

packsk*
packft*
cls_bfeat_*
Как они обрабатываются?
Я так понял, что packft* идет сверху вниз и берет первое, что удовлеитворяет условиям взятия фита, так?
packsk наверное аналогично.... Так?
А вот 3-ий я не догоняю.

В cls_feat_* что значит -1 в GrantedOnLevel и что значит столб List ? Так там вроде все ок.

Где прописано, какой класс берется по рекомендации? В classes.2da не нашел.

Хм..было что-то еще...потом вспомню..

Автор: K.SpecTr May 3 2005, 14:20

QUOTE (Lex @ May 2 2005, 15:48)
Я так понял, что packft* идет сверху вниз и берет первое, что удовлеитворяет условиям взятия фита, так?

Именно так.
Но для скилов, за одну итерацию в одном навыке нельзя взять более 1-го пункта.
Итерации идут по принципу:
1) Из packsk*
2) Если рекомендуемые нельзя, то только классовые из cls_skill_*;
3) Если остались пункты, а в классовые уже нельзя, то неклассовые из cls_skill_*.
QUOTE (Lex @ May 2 2005, 15:48)
А вот 3-ий я не догоняю. (cls_bfeat_*)

А что тут догонять, первая колонка уровень, вторая - количество дополнительных фитов, которые мы на этом уровне получим.
Замечание: Для класса должны быть определены бонусные фиты (у Биоваров только для файтера и визарда).
Для этого в cls_feat_* должно быть List == 1 yes.gif
QUOTE (Lex @ May 2 2005, 15:48)
-1 в GrantedOnLevel

Означает, что мы выбираем эти фиты при повышении уровня, а не получаем на шару на уровне номер положительный.
QUOTE (Lex @ May 2 2005, 15:48)
Где прописано, какой класс берется по рекомендации? В classes.2da не нашел.

И не нашел бы, ибо racialtypes.2da - столбец Favored, где индекс на строку в classes.2da

P.S. Есть еще сложности с повышением уровня для класса, не имеющего пакадж, а второй или третий класс только в ручную.
Добавлено в [mergetime]1115119999[/mergetime]
P.P.S. Не правильно сказал, нет никаких сложностей, просто NPC нужно говорить, какой класс повышать, а то он только первым ограничится.
А пакадж выберет из packages.2da - первая строка, у которой ClassID совпадет с повышаемым классом.

Автор: defolt May 4 2005, 07:27

QUOTE (Lex @ May 2 2005, 15:48)
что значит столб List ?


тип переменной int:
если -1 - фит дается при создании персонажа на первом уровне;
если 0 - фит можно выбрать;
если 1 - фит можновыбрать в качестве бонусного или нормального;
если 2 - фит может быть выбран только как бонусный фит класса;
если 3 - фит дается нахаляву на уровне определенном параметром
GrantedOnLevel;
Добавлено в 07:43
и насчет cls_bfeat_*

QUOTE (K.SpecTr @ May 3 2005, 14:20)
А что тут догонять, первая колонка уровень, вторая - количество дополнительных фитов, которые мы на этом уровне получим.


level=(2da row+1), что товарищ K.SpecTr и сказал,..
а вот во втором столбце либо 1 (бонусный фит дается),либо 0 (не дается)...


Добавлено в 09:04
2Vhall’rafein

вот тут у вас видел посты о создании плейса в стандартной палитре...
т.е если прописать имя плейсибла без тлкашника, то это имя не видно будет????
я прописал...в тулсете видно....или вы про что то другое говорили с Wakefulом?
Добавлено в 10:39
короче есть краткая инфа по следующим 2DA (для некоторых очень краткая, для других по паре страниц формата А4) :
CODE
   
              appearance
              cls_skill_#
              domains
              placeableobjsnds
              repute
              tailmodel
              cls_pres_#
              packages
              bodybags
              repadjust
              wingmodel
              cls_spgn_#
              packeq#
              cursors
              soundset
              creaturesize
              cls_spkn_#
              packft#
              placeabletypes
              soundsettype
              creaturespeed
              hen_companion
              packsk#
              traps
              prioritygroups
              phenotype
              hen_familiar
              packsp#
              ambientsound
              sounddefaultspos
              footstepsounds
              feat
               fractionalcr
              ambientmusic
              sounddefaultstim
              racialtypes
              masterfeats
              portraits
              lightcolor
              baseitems
              classes
              categories
              gender
              prpsettings
              itempropdef
              cls_atk_#
              race_feat_#
              ranges
              loadscreens
              itemprops
              cls_thr_#
              skills
              doortypes
              skyboxes
              iprp_ammotype
              cls_feat_#
              spells
               genericdoors
              environment
              iprp_feats
              cls_bfeat_#
              spellschools
              placeables
              encdifficulty
              iprp_spells
              spellshl
              iprp_costtable
              subtype table
              iprp_bonuscost
              iprp_chargecost
              damagecost
              damvulcost
              immuncost
              meleecost
              monstcost
              neg5cost
              neg10cost
              onhitcost
              redcost
              resistcost
              soakcost
              spellcost
               srcost
               weightcost
               iprp_paramtable
              param table
              onhitdur
              weightinc
              itemvalue
              skillvsitemcost
              capart
               armor
              weaponsounds
               appearencesndset
             defaultacsounds

Автор: Lex May 4 2005, 11:13

QUOTE (K.SpecTr @ May 3 2005, 15:20)
racialtypes.2da - столбец Favored, где индекс на строку в classes.2da

пасиба smile.gif

Вот не очень понял что за бонусные фиты
QUOTE (defolt @ May 4 2005, 08:27)
если 2 - фит может быть выбран только как бонусный фит класса;

QUOTE (K.SpecTr @ May 3 2005, 15:20)
количество дополнительных фитов

Это только дополнительные, те в +. А где основные?
Те как узнать сколько на каждом уровне будет даваться фитов?


И еще такая бяка...
Кастомный класс, все вроде ок. Но на некоторых уровнях (начиная где-то от 7-го) в фит листе ничего нету на выбор, хотя можно взять 1 фит...


И еще, у магов например когда поднимаешь уровни, там иногда бывает укороченный список фитов, только мажеские... Это с пред. моментом как-то связано? Как это правильно прописать?

Автор: defolt May 4 2005, 11:45

QUOTE (Lex @ May 4 2005, 11:13)
Вот не очень понял что за бонусные фиты


ну к примеру у ренджера есть фиты Favour Enemy- как раз бонусный фит класса...
Добавлено в [mergetime]1115196753[/mergetime]
QUOTE (Lex @ May 4 2005, 11:13)
А где основные?


а..а основные это не те которые каждые три лева даются? на 3,6,9 и т.д левах?

Автор: Lex May 4 2005, 12:20

Сенькс..а дальше?

Автор: K.SpecTr May 4 2005, 17:01

QUOTE (defolt @ May 4 2005, 11:45)
а основные это не те которые каждые три лева даются? на 3,6,9 и т.д левах?

Именно так, и это прошито в движке.
QUOTE (defolt @ May 4 2005, 07:27)
а вот во втором столбце либо 1 (бонусный фит дается),либо 0 (не дается)...

Я отнюдь не ошибся! Если поставишь туда число 2, то получишь именно 2 бонусных фита (проверено на практике), но тогда получится именно такая "бяка":
QUOTE (defolt @ May 4 2005, 07:27)
Но на некоторых уровнях (начиная где-то от 7-го) в фит листе ничего нету на выбор, хотя можно взять 1 фит...

Т.е. число доступных фитов будет с учетом нашего значения в _bfeat, но после первого выбранного бонусного список станет пустым, даже если еще остались нераспределенные (это прошито в движек, но я слышал что были способы обойти).
QUOTE (Lex @ May 4 2005, 11:13)
И еще, у магов например когда поднимаешь уровни, там иногда бывает укороченный список фитов, только мажеские... Это с пред. моментом как-то связано? Как это правильно прописать?

Если посмотришь в cls_feat_wiz.2da, то именно этот список отмечен значением List=1, а в cls_bfeat_wiz.2da указано на каких уровнях этот список вылезет.
А теперь маленькая тайна: diablo.gif Для оригинального NWN без аддонов такой вещи как _bfeat_ еще не было, точнее для визарда и файтера бонусные уровни были зашиты в движек, поэтому изменения в ихних _bfeat_ могут не срабатывать. crazy.gif
Добавлено в [mergetime]1115215586[/mergetime]
QUOTE (defolt @ May 4 2005, 07:27)
короче есть краткая инфа по следующим 2DA (для некоторых очень краткая, для других по паре страниц формата А4)

Где? smile.gif Если не дублируется с тем что уже есть - давай сюда. good.gif

Автор: Lex May 4 2005, 17:29

Надо все по 2да собрать в 1 топик типа тутор. Описание столбцов 2дашкек, примеры работы и прочее smile.gif
Кто займется?

Автор: K.SpecTr May 4 2005, 18:12

А что стало с этим?

QUOTE (Clement Astilon @ Jan 4 2005, 19:41)
Да пожалуй займусь.

Автор: Lex May 4 2005, 19:15

Чтоб я знал smile.gif

Автор: defolt May 4 2005, 21:08

QUOTE (K.SpecTr @ May 4 2005, 17:01)
Где?  Если не дублируется с тем что уже есть - давай сюда.

...насчет дублируется ли не знаю...но это официальная биотварская инфа - с их сайта качал...

вот тут это все...

http://nwn.bioware.com/developers/#resources
Добавлено в [mergetime]1115232385[/mergetime]
если что надо- переведу (как смогу) и выложу...

Автор: balrog May 23 2005, 08:51

Простите, а где в 1.65 версии.... престиж классы в 2да таблицах?
Добавлено в [mergetime]1116852778[/mergetime]
Гы... простите за туповатый вопрос... стоило лишь в экспеншионах порыться wink.gif

Автор: balrog May 24 2005, 08:51

QUOTE
Id,LABEL - Id и метка
ReqType - Параметр, который нужно сравнить с некоторым значением (можно считать это функциями, возвращающими TRUE или FALSE), если результат истинна, то можем выбрать этот класс при повышении уровня.
ReqParam1 - первый параметр функции ReqType
ReqParam2 - второй параметр функции ReqType

Сейчас возможные функции не говорю, но если кому-нибудь интересно могу описать. Нужно?

rolleyes.gif
Было бы классно, если кто-нибудь описал подробно. Иль дайте хоть сцылку какую-нить, где можно почитать =-)
Добавлено в [mergetime]1116918814[/mergetime]
И ещё вопрос, как мне сделать так, чтобы описалово класа, название и пр. Бралось не из Диалог.тлк, а из какого-нибудь другого ТЛК, в папке соответствующей. Я попробовал писать тлк, но в игре мне ничего не пишет, я всё в 2да указывал, класс есть... но не пишет ничего. dntknw.gif

Автор: Lex May 24 2005, 16:44

QUOTE (balrog @ May 24 2005, 09:51)
И ещё вопрос, как мне сделать так, чтобы описалово класа, название и пр. Бралось не из Диалог.тлк, а из какого-нибудь другого ТЛК, в папке соответствующей. Я попробовал писать тлк, но в игре мне ничего не пишет, я всё в 2да указывал, класс есть... но не пишет ничего. dntknw.gif

ты номер правильно в 2да формируешь?
В том месте, где тебе надо сослаться на твой тлк вместо биоваровской ссылки поставь свою (номер)
расчитывается так:
16777216 + номер в твоем тлк.
те если там был 111, то тебе в 2да надо написать 16777327
Добавлено в [mergetime]1116942312[/mergetime]
QUOTE (balrog @ May 24 2005, 09:51)
Было бы классно, если кто-нибудь описал подробно. Иль дайте хоть сцылку какую-нить, где можно почитать =-)

это уже описано. Читай тему эту на первой странице

Автор: balrog May 24 2005, 17:05

Lex Действительно, про тлк я не знал, спасибо огромное.
Что касается 2дашки... ещё раз всё просмотрел, и нашёл pardon.gif
Добавлено в [mergetime]1116949483[/mergetime]
Хм... всёравно какято фигня..... Делаю я свой тлк.. ну в этом случае начанаю с самого начала... и пишу там. Название класса -ляляля, описалово и т.п. Потом в класс.2да прописываю 16777216 + номер (1,2,3) и т.п. а это бяка! Росчитав свои 16777216, начанает мне отсчитывать пребавленные мной числа, с етогго жу Диалог ТЛК. не лезит в папку искать другие dntknw.gif
Я чёто неверно делаю black eye.gif

Автор: Lex May 24 2005, 22:32

если
- тлк к модулю подключен
- все числа верные
то я даже не знаю, почему не работает. У меня все пашет

Автор: balrog May 25 2005, 07:30

QUOTE
если
- тлк к модулю подключен

rolleyes.gif

Ну вот, по этой части вроде всё уяснил. Можно лепить классы black eye.gif
А вот... вот в какой 2да можно прописать спэйшл абилитис... ну мол ... как регенерауция у вамприов...

Автор: balrog May 30 2005, 13:15

Простите, а как делать статичные фиты? Фит с магией я сделал.. А например как реализовывается фит, скажим, защита от огня и т.п.?

Автор: Nightfall Jun 1 2005, 11:38

QUOTE (defolt @ May 4 2005, 21:08)
http://nwn.bioware.com/developers/#resources Добавлено в 21:46 если что надо- переведу (как смогу) и выложу...

В дистрибутиве Nightfall's Talk Table Editor есть мои переводы оффициальной инфы по TLK и 2DA файлам. Можно попросить Айвана их выложить отдельно.

Автор: K.SpecTr Jun 1 2005, 20:09

QUOTE (Nightfall @ Jun 1 2005, 11:38)
Можно попросить Айвана их выложить отдельно.

Aiwan, просим! good.gif

Автор: Aiwan Jun 1 2005, 21:54

Куда выложить? НА сайт?

Автор: K.SpecTr Jun 1 2005, 22:15

Ага. Если понадобится, могу оформить под форум в стиле моих и Лема.

Автор: Aiwan Jun 1 2005, 22:35

Оформи!

Автор: K.SpecTr Jun 2 2005, 00:07

Если речь идет о Bioware_Aurora_2DA_Format_Rus.doc и Bioware_Aurora_TalkTable_Format_Rus.doc, то их надо однозначно на сайт. Но у меня с defolt'ом речь шла о содержании конкретных таблиц, а не структуре формата в целом, этого я у Nightfall'а не нашел.
Или плохо искал, или придется таки объединять инфу Ice Blade'а с моей и Лема, дайте мне недельку.

Автор: rdx Jun 2 2005, 00:59

Инфу по 2da и не только искать тут:
http://ccg.dladventures.com/index.php/Main_Page
и
http://nwn.bioware.com/forums/main.html

На сайте по первой ссылке есть куча информации по всем ресурсам нвн, в частности, по 2да таблицам. Если там чего нету, то надо идти на форумы биоварей и там искать ветки, посвященные их редактированию.

QUOTE (balrog)
Простите, а как делать статичные фиты? Фит с магией я сделал.. А например как реализовывается фит, скажим, защита от огня и т.п.?

Прошиты в нвн, свои чистые никак не сделаешь, только в обход - используя имеющиеся (иммун от огня есть) или через скриптование всех событий, где "статичный" фит используется. Посмотри, например, PRC. Также не забудь, PRC глючит именно по этой причине smile.gif

Автор: K.SpecTr Jun 2 2005, 01:13

rdx
Речь идет о русском варианте. smile.gif
А посылать нас на форум Биоварей, значит совсем нас не уважать.

Автор: rdx Jun 2 2005, 01:36

QUOTE (K.SpecTr @ Jun 2 2005, 01:13)
rdx
Речь идет о русском варианте. smile.gif
А посылать нас на форум Биоварей, значит совсем нас не уважать.

Сорри, забыл после второй ссылки смайлик поставить smile.gif Откопаю переводы - выложу.

Тут вопрос возник, что будет, если на шарде дать персу новый фит (через 2да) с описанием из дополнительного tlk, а игрок, когда будет снова заходить, решит посмотреть описание, не входя в игру (в смысле, будет смотреть из окна выбора персонажей)? Ничего не увидет, bad stref или вылет в винды, краш сервера?

Автор: K.SpecTr Jun 2 2005, 02:24

Если не подключен tlk:

QUOTE (rdx @ Jun 2 2005, 01:36)
bad stref

Увидит непотребность из совсем другой строки tlk. Причем, при каждой попытке одно и то же, а не случайное.
Если не подключен хак или 2da, то не увидит своих фитов вообще.
Краша сервера быть не должно точно, как и краша в Винду.
Тут уже спорили, подключается хак на момент коннекта или входа.
Я думаю, что если у игрока хак и tlk лежат где надо, то увидит как положено, но не проверял.

Автор: Kalian Jun 18 2005, 17:25

У меня вопрос. Буду благодарен если кто-нибудь поможет. )
Вопрос про связь спеллов из таблицы itempropdef.2da c их же скриптами.

Например, в таблице в строчке под номером 35, стоит спелл "Haste". Так вот, как игра узнает какой скрипт ей надо запускать?

Спасибо заранее. smile.gif

Автор: Lex Jun 18 2005, 18:26

QUOTE (Kalian @ Jun 18 2005, 18:25)
Вопрос про связь спеллов из таблицы itempropdef.2da c их же скриптами.

ты путаешь немного. Haste там это свойство вещи, не закл.
а вот в iprp_spells.2da хранится вроде те заклы, что можно на вещь повесить (те список того, что есть в Cast Spell закладке свойст). Ну а тут уже ссылка на spells.2da, а там скрипты.

Автор: defolt Jun 18 2005, 18:44

QUOTE (Lex @ Jun 18 2005, 18:26)
ты путаешь немного. Haste там это свойство вещи, не закл.
а вот в iprp_spells.2da хранится вроде те заклы, что можно на вещь повесить (те список того, что есть в Cast Spell закладке свойст). Ну а тут уже ссылка на spells.2da, а там скрипты.

это конечно хорошо...
но в файле итема хранится только индекс свойства из itempropdefs.2da, в котором для хейста (строка 35) в столбце SubTypeResRef пусто, т.е нет указания на какую либо подтаблицу свойств на подтаблицу, чем по сути дела и является iprp_spells.2da...
т.е тут действительно есть какойто прикол.
Кстати а что, хейст действительно принадлежит к спелам? разве есть спелл с постоянным хейстом? может для этого дела движек как нить сам скрипт генерит?
Добавлено в [mergetime]1119109626[/mergetime]
или я не правильно понял...
QUOTE (Lex @ Jun 18 2005, 18:26)
Haste там это свойство вещи, не закл.

Что это значит?Lex, поясни,плиз.

Автор: Kalian Jun 18 2005, 19:13

QUOTE (Lex)
Haste там это свойство вещи, не закл.

Ну хорошо, пускай Haste не спелл, а свойство вещи ) , но для него же тоже должен быть скрипт, наверно?

QUOTE (Lex)
а вот в iprp_spells.2da хранится вроде те заклы, что можно на вещь повесить (те список того, что есть в Cast Spell закладке свойст).

Так мне-то как раз нужно то что не в "Cast Spell закладке свойств", а просто в закладке свойств. smile.gif

Автор: defolt Jun 18 2005, 19:17

а вот с этим как раз и проблема swoon.gif
я всю документацию перерыл,а ничего . что могло бы решить вопрос не нашел black eye.gif
так что ждем Lexa drag.gif

Автор: Kalian Jun 18 2005, 22:42

Ждем... )
Айван: дорогой Kalian, тут не болтологией люди занимаются. Такое считается у нас флудом. Особенно в таких форумах как этот. На первый раз предупреждаю...

Автор: Lex Jun 18 2005, 23:38

QUOTE (defolt @ Jun 18 2005, 20:17)
так что ждем Lexa drag.gif

а надо бы мастера контента ловить.

QUOTE (Kalian @ Jun 18 2005, 20:13)
Ну хорошо, пускай Haste не спелл, а свойство вещи ) , но для него же тоже должен быть скрипт, наверно?

скорее всего (я точно не знаю) свойства вещей как и статичные фиты прописаны в движке. Так что собсна скрипта нет.

Автор: K.SpecTr Jun 19 2005, 00:36

Лююди, кончайте путать.
Эти таблицы лишь определяют свойства, но они не указывают на скрипты. Они больше для того, чтобы в тулсете появлялись новые группы и подгруппы, чем актуальная связь.
Тут определение свойств, их внешнего вида и описания в окошке итема, его стоимость для предмета, шансы срабатывания и еще всяко разное.
Но обработка на уровне движка: либо переопределяется в спелл, либо в эффект, либо в режим, либо статус, либо фиг знает еще что.
Может я чуть ошибаюсь, но я не нашел другого применения. А искал. smile.gif

Добавлено в [mergetime]1119130754[/mergetime]
В смысле связь конечно есть, но лишь для некоторых (например, заклинаний) она явная.

Автор: defolt Jun 19 2005, 00:40

QUOTE (K.SpecTr @ Jun 19 2005, 00:36)
Может я чуть ошибаюсь, но я не нашел другого применения. А искал.


Вот и я о том же, не цепляются эти дурацкие таблички с реализацией. black eye.gif Забьем на них, есть много более интересных вещей.

Kalian Чем тебе существующих не хватает??? их, извините меня за выражение, их там хоть жопой жуй!

Автор: Kalian Jun 19 2005, 00:49

Так что же, добавить какое-нибудь новое свойство нельзя?

Автор: defolt Jun 19 2005, 02:08

Такс вот тебе инфа:

Item Property Definitions:.

Таблица itempropdef.2da определяет доступные свойства итемов, которые могут быть добавлены в PropertiesList итема.

Столбцы itempropdefs.2da

CODE
Столбец:Name
Тип: Integer
Описание: StrRef на имя свойства итема, например, "Enhancement Bonus"

Cтолбец: Label
Тип: String
Описание: программная метка

Столбец: SubTypeResRef
Тип: String
Описание: ResRef на подтаблицу (Sub Type 2da)

Столбец: Cost
Тип: Float
Описание: используется при подсчете стоимости


Столбец: CostTableResRef
Тип: Integer
Описание: индекс в iprp_costtable.2da


Столбец: Param1ResRef
Тип: Integer
Описание: **** для свойств, которые не имеют параметров, или для тех, параметры которых определены в подтаблице. В других случаях- индекс в iprp_paramtable.2da


Столбец: GameStrRef
Тип: Integer
Описание: StrRef на имя свойства, являющееся частью какой-либо строки, например, "Enhancement Bonus:"


Столбец: Description
Тип: Integer
Описание: StrRef на описание свойства итема.

Добавлено в 02:09
продолжение следует...
если где ошибся -пишите.
Добавлено в 03:30
Так эту часть следовало бы пустить до предыдущего описания, но уж извиняйте.

ItemProperty Fields
Эта инфа непосредственно о том, какая информация о свойствах предмета хранится в файле итема.
Каждый элемент ItemProperty в списке свойств итема (PropertiesList) содержит поля, описание которых
дано ниже.

CODE

Имя: ChanceAppear
Тип:BYTE
Описание:Устаревшее. Всегда имеет значение равное 100.

Имя: CostTable
Тип: BYTE
Описание: Индекс в iprp_costtable.2da. Эквивалентен значению в столбце CostTableResRef строке
определенной полем PropertyName. Должен быть определен в обязательном порядке.

Имя: CostValue
Тип: WORD
Описание: Индекс в таблице стоимости. ResRef этой таблицы стоимости - это значение в столбце Name
таблицы iprp_costtable.2da, в строке определенной в поле CostTable. Должен быть определен в
обязательном порядке.

Имя: Param1
Тип: BYTE
Описание: Индекс в iprp_paramtable.2da. Определяет таблицу параметров. Его значение равно -1, если
параметров нет. Существует два способа определения отсутствия параметров в зависимости от того,
содержит ли структура ItemProperty ненулевое поле SubType или нет.
Если SubType присутствует: параметров нет, если столбец Param1ResRef в таблице подтипов
отсутствует (см. описание поля SubType) или если в столбце  Param1ResRef  строки, определенной
полем SubType, стоит ****.
Если SubType отсутствует: параметры отсутствуют если в таблице itempropdef.2da в столбце
Param1ResRef  строки, определенной полем PropertyName, стоит ****.

Имя: Param1Value
Тип: BYTE
Описание: Индекс в таблице параметров. ResRef на эту таблицу определяется значением в столбце
TableResRef строки, определенной полем Param1, таблицы iprp_paramtable.2da. Если данное
ItemProperty не имеет таблицу параметров, то значение этого поля равно 0.

Имя: Param2
Тип: BYTE
Описание: Устаревшее.Одинаков с Param1.

Имя: Param2Value
Тип:BYTE
Описание:Устаревшее. Одинаков с Param1.

Имя: PropertyName
Тип: WORD
Описание: Индекс в itempropdefs.2da. Должен быть определен в обязательном порядке.

Имя: SubType
Тип: WORD
Описание: Индекс в таблице подтипов свойств. ResRef на эту таблицу определяется значением в
столбце SubTypeResRef  строки, определенной полем PropertyName, в таблице itempropdefs.2da. Равен
нулю если SubTypeResRef отсутствует.


ВСЕМ ДУМАТЬ ПО ЭТОМУ ПОВОДУ, и тебе ,Kalian, в первую очередь!!!!!
crazy.gif crazy.gif crazy.gif
Добавлено в [mergetime]1119141577[/mergetime]
кстати там еще куча всякой лажи по этому поводу, и если нужно я переведу...
так мне продолжать?

Автор: K.SpecTr Jun 19 2005, 11:17

QUOTE (defolt @ Jun 19 2005, 02:08)
ВСЕМ ДУМАТЬ ПО ЭТОМУ ПОВОДУ

QUOTE (defolt @ Jun 19 2005, 02:08)
кстати там еще куча всякой лажи по этому поводу

Где там? Ссылку давай. this.gif
А я подумаю, совать это в мануал или нет. lol.gif

Автор: defolt Jun 19 2005, 12:37

QUOTE (K.SpecTr @ Jun 19 2005, 11:17)
Где там? Ссылку давай.


хм..ссылку на этот ресурс я уже давал, и в этой теме, но на нее дружно все забили - у нее единственный недостаток- вся инфа на английском.
ссылку ищите на http://www.wrg.ru/forums/index.php?showtopic=704&st=130 странице.

Автор: K.SpecTr Jun 19 2005, 13:24

Ага, ложил, но я хочу конкретную, к именно этим докам.
Т.е. не http://nwn.bioware.com/developers/#resources, а глубжее.
Мне с телефоном там рыться не с руки.

lol.gif
Нам английский не по чем -
Врежем в морду кирпичем!
Вмиг по нашему запляшут,
Все что надо нам расскажут.

lol.gif

Автор: defolt Jun 19 2005, 14:05

QUOTE (K.SpecTr @ Jun 19 2005, 13:24)
Ага, ложил, но я хочу конкретную, к именно этим докам.


Ух, хумы вообще оборзели! biggrin.gif

Значит так, основы вот тут, но в остальных доках тоже много всего интересного:

http://nwn.bioware.com/developers/Bioware_Aurora_Item_Format.pdf- инва по 2да на стр. 14-23
http://nwn.bioware.com/developers/Bioware_Aurora_DoorPlaceableGFF.pdf- инфа по 2 да на стр. хз знает какой- оглавления нету.
http://nwn.bioware.com/developers/Bioware_Aurora_Creature_Format.pdf- инфа по 2да на стр. 28-43


Автор: Kalian Jun 19 2005, 20:22

QUOTE (defolt @ Jun 19 2005, 02:08)
ItemProperty Fields
Эта инфа непосредственно о том, какая информация о свойствах предмета хранится в файле итема.
Каждый элемент ItemProperty в списке свойств итема (PropertiesList) содержит поля, описание которых
дано ниже.


Только я че-то не понял из какого это файла?

Автор: defolt Jun 19 2005, 20:43

QUOTE (Kalian @ Jun 19 2005, 20:22)
Только я че-то не понял из какого это файла?


Да это в принципе не важно, я просто акцентировал внимание именно какая иформация о его свойствах прикрепляется к итему.

Я думаю, что эта инфа содержится и в UTI файле (определяет итем в палитре тулсета// если я ошибся с расширением исправьте), и в файле BIC персонажа в структуре, определяющей содержимое его инвентаря и тому подобное...Эти структуры можно редактировать при помощи GFF- редактора. А вообще все эти структурки автаматом создаются в тулсете, поэтому не следует извращаться с их редактированием. crazy.gif

GFF (Generic File Format)- расширение файлов, которое используется биотварями для хранения инфы.
По сути дела все типы файлов BIC, UTI, UTD, UTP, ARE , GIC, GIT (но не HAK и ERF) принадлежат к этому формату.

Если тебя не пугает английский, то качая инфу по ссылки из последнего поста K.SpecTrа, там про все это подробно расписано+ там еще куча инфы по 2да.

Автор: Kalian Jun 29 2005, 19:32

У меня еще вопрос...
Можно ли где-нибудь настроить кол-во восстанавливаемых ХП при отдыхе? Ну чтобы не полностью восстанавливалось, а частично? Или это движковое?
Спасибо заранее.

Автор: balrog Jun 29 2005, 20:36

Kalian Это помоему движковое. Можно скриптами прерывать отдых через пару секунд от его начала. Но тогда надо както восстонавливать заклинания и т.п.

Автор: dumbo Jun 30 2005, 01:11

не прерывать отдых, а в конце отдыха делать дамаг, как везде и сделано.

Автор: Sharklike Jul 5 2005, 18:47

Есть у кого либо реальный опыт создания кастерского класса? Конкретно интересует занесение его в spells.2da.

Возможно ли создать пассивный фит?

Автор: SadoMazaXist Jul 6 2005, 00:26

Всем доброго времени суток!
_____________________________
Сделал я класс, все по посту в этой ветке...почти у меня нет некоторых колонок в 2дашке...(PreReqTable)
у меня нет таких 2да вообще даже:CLS_PRES_***.2da
У меня WinXp+NWN HOTU1.65...
Я предполагаю, что из-за данных недостатков мой класс нельзя выбрать при создании перса...

Автор: balrog Jul 6 2005, 20:06

SadoMazaXist Качай с ваулта НВН Эксплорер, открывай ресурсы.... ХотУ экспеншион пак, там первая ветка, там ГеймДата(2да тобишь), там будут ВСЕ 2да

Автор: K.SpecTr Jul 14 2005, 09:53

QUOTE (Sharklike @ Jul 5 2005, 18:47)
Есть у кого либо реальный опыт создания кастерского класса? Конкретно интересует занесение его в spells.2da.

Сие есть невозможно. Сделать кастерский класс, который бы не был престижем нельзя. Ограничение движка не дает возможности добавить столбец другого класса в spells.2da (точнее добавить то можно, но нельзя прописать его соответствие конкретному классу, т.е. пока только те что есть и все). Проблема даже в том, что дать уже существующий для нового класса тоже не получается.
P.S. Есть теория, что где-то в скриптах можно это ограничение обойти, но на практике не видел ни разу.
QUOTE (SadoMazaXist @ Jul 6 2005, 00:26)
Сделал я класс, все по посту в этой ветке...почти у меня нет некоторых колонок в 2дашке...(PreReqTable)
у меня нет таких 2да вообще даже:CLS_PRES_***.2da
У меня WinXp+NWN HOTU1.65...
Я предполагаю, что из-за данных недостатков мой класс нельзя выбрать при создании перса...

При создании персонажа ни престижные, ни кустомные базовые выбрать нельзя, даже если все требования выполнены. Можно только если использовать внешний редактор (типа PRC-шного).
Отсутствие таблиц требований может сказаться только при выборе класса на повышении, а для своего класса CLS_PRES_***.2da нужно создавать самому, а не искать среди стандартных.

Автор: Sharklike Jul 18 2005, 05:47

QUOTE (K.SpecTr @ Jul 14 2005, 09:53)
Сделать кастерский класс, который бы не был престижем нельзя.

Т.е. ты хочешь сказать, что кастерский класс можно добавить престиж-классом?
И у него будет стандартная сетка заклинаний, а не спеллайк абилити?

Автор: K.SpecTr Jul 18 2005, 07:10

И у него будет стандартная сетка заклинаний базового класса, к которому он престиж. this.gif
Создать новую не выйдет, в spells.2da они определены только для следующего (что, думаю, вы заметили уже):

CODE
Bard   Cleric   Druid   Paladin   Ranger   Wiz_Sorc

Автор: Kalian Jul 30 2005, 13:52

Товарищи, можно ли как-нибудь сделать, чтоб при нажатии на кнопку отдыха не появлялась надпись "Отдых", а при отмене отдыха не появлялась, соответственно, надпись "Отдых отменен"?

PS Или может кто знает, откуда игра ссылается на эти строчки в dialog.tlk ?

Опять же заранее спасибо. )

Автор: dumbo Jul 31 2005, 05:17

Kalian
просто затри эти строки в dialog.tlk любым tlk-editor'ом. индексы строк - 7952, 7957.

QUOTE (Kalian @ Jul 30 2005, 14:52)
PS Или может кто знает, откуда игра ссылается на эти строчки в dialog.tlk ?

знаем - из nwmain.exe. но это тебе ни к чему. wink.gif

Автор: Kalian Jul 31 2005, 12:49

QUOTE (dumbo @ Jul 31 2005, 05:17)
просто затри эти строки в dialog.tlk любым tlk-editor'ом. индексы строк - 7952, 7957.
Ну это-то понятно. ) А так чтоб не трогать dialog.tlk?

Автор: dumbo Jul 31 2005, 13:42

Kalian, я не зря упомянул nwmain.exe: надписи реста - это движковое и, насколько я знаю, никак не конфигурится.

Автор: Valleo Jul 31 2005, 19:37

Странно, а почему в "русской" версии НВН там пишется "Начало отдыха" и "Конец отдыха"??? pardon.gif

Автор: dumbo Jul 31 2005, 23:12

Valleo, зри в корень. а точнее - предыдущий мой пост. wink.gif
под "движковым" подразумевалось само появление этих надписей.

Автор: Valleo Jul 31 2005, 23:16

А, ты про это. Ну убрать тогда толдько из диалог.тлк их можно... Только зачем? Вот я не понимаю pardon.gif

Автор: Exectrix Aug 17 2005, 02:06

Всем большое приветствие.

Вопрос: Где можно снять ограничение на уровень? Ну или поднять планку до 200'го...

Спаасибо...

Автор: Dik Morris Aug 17 2005, 06:19

Не совсем понял твой вопрос. unsure.gif Видимо ты хочешь прокачатся дальше 40 уровня? Хочу, тебя обидеть, это НЕВОЗМОЖНО.

Автор: Wizard Red Rise Aug 17 2005, 06:38

Привет, А как прокачаться до 40 левела.. у меня в ПЛ 20-максимальный... но ПЛ оговорено про Эпический класс...где 40 возможен... помогите! aggressive.gif

Автор: K.SpecTr Aug 17 2005, 12:14

QUOTE (Dik Morris @ Aug 17 2005, 06:19)
Хочу, тебя обидеть, это НЕВОЗМОЖНО.

Это НЕ невозможно, но потребует уймы труда по переписыванию всех таблиц. Маленьким хачным методом можно заменить число 40 на любое другое, но без поддержки в данных игры, это ничего не даст, точнее даст глюк.
swoon.gif Только основной вопрос, а зачем такой уровень нужен?
По правилам D&D даже прогресс слотов заклинаний не повышается после 20-ого, в NWN:HotU на него забили ради манчей.
Проще уж сделать +1000НР на первом уровне, и фитов побольше. crazy.gif

Автор: Vhall Sep 18 2005, 20:25

Мне необходимо добавить +2 к Bluff и Intimidate пассивным фитом. Как это сделать?

Автор: -fenix- Sep 18 2005, 21:10

В 2da я полный ноль, но вещь эта полезная и поэтому хочу разобраться. И так, ламерские вопросы:
1) Зачем вообще нужны 2da, что они делают. То есть, что с помощью них делают - это понятно, а вот как ОНИ это делают? Ну скажем, при создании скрипта, ты описываешь что в скрипте задействованно и дальше пишешь команды, которые они будут выполнять? Вот какую-нить аналогию с 2da можно провести.(не знаю объяснил ли, что хочу или нет dntknw.gif )
2) Как взаимодействуют tlk и 2da?
3) Где найти 2da, ни в одной папке не нашел?

Пока вроде все. Мне бы главное принцып понять и тогда дело пойдет(темку скачал). Можно кое что сделать читая описание в этой теме, но делать что-то бездумно и не понимая как это делается я не хочу.

Автор: Ghost Sep 18 2005, 21:30

QUOTE (-fenix- @ Sep 18 2005, 22:10)
Где найти 2da, ни в одной папке не нашел?

(если стоят СоУ и НотУ) Файлы XP1 и XP2. Открываются с помощью Bif Unpacker'a (я пользуюсь им, хотя могут быть и другие проги) .
QUOTE (-fenix- @ Sep 18 2005, 22:10)
2) Как взаимодействуют tlk и 2da?

В 2да прописывается ID строк с описанием (чего либо) в ТЛК файле.

Автор: Vhall Sep 18 2005, 21:35


QUOTE (-fenix- @ Sep 18 2005, 22:10)
1)

Сами по себе они ничего не делают. Это просто текст. Движок ссылается на них для получения необходимых данных в определенных ситуациях.
QUOTE (-fenix- @ Sep 18 2005, 22:10)
2)

2da берет текстовые строки из tlk
QUOTE (-fenix- @ Sep 18 2005, 22:10)
3)

Есть папочка в корневухе – source, но это фуфло – там не все. Качай nwnexplorer и ищи их в категориях Game Data


Автор: -fenix- Sep 18 2005, 22:03

QUOTE (Vhall @ Sep 18 2005, 22:35)
Есть папочка в корневухе – source,

Нету такой black eye.gif

QUOTE (Vhall @ Sep 18 2005, 22:35)
2da берет текстовые строки из tlk

Тоесть каждому 2da соответствует tlk из которого берутся все строки, скажем описание класса, фита... А как они связываются?

QUOTE (Vhall @ Sep 18 2005, 22:35)
Сами по себе они ничего не делают. Это просто текст. Движок ссылается на них для получения необходимых данных в определенных ситуациях.

Тобишь те же скрипты но работающие на прямую с движком.

QUOTE (Lex Jan 4 2005 @ 20:53)

Было бы ОЧЕНЬ здорово.
Наверное в тутор надо все таблицы разобрать (каждый столб что значит) и примеры.
Чем больше, тем лучше. В идеале для каждой таблицы пример кастомной строки.
Так намного легче изучать.

Тутора еще не написали?
Добавлено в [mergetime]1127071058[/mergetime]
Гы нашел описание 2da в tlkedit_v2.05, то что надо на первых порах, почему его тут не написали?

Автор: Ghost Sep 18 2005, 22:31

QUOTE (-fenix- @ Sep 18 2005, 23:03)
Тоесть каждому 2da соответствует tlk из которого берутся все строки, скажем описание класса, фита... А как они связываются?

Нет... не каждому 2да, а каждопу пункту в нем..
Neverwinter Script Source
LABEL                                          FEAT     DESCRIPTION          
0  Alertness                                      289       290

Вот отрывок! первой строчки из Feat.2da
Цифры это номера строк в ТЛК файле. Тоесть по номером 289 будет написано само название фита, а под 290 описание этого фита... smile.gif . Надеюсь объясняю понятно...

Автор: Vhall Sep 19 2005, 00:38

QUOTE (-fenix- @ Sep 18 2005, 23:03)
Нету такой black eye.gif

Плюнь на нее. http://valamor.dtiltas.lt/Files/NWN_Explorer.rar rulzz
QUOTE (-fenix- @ Sep 18 2005, 23:03)
Тоесть каждому 2da соответствует tlk из которого берутся все строки, скажем описание класса, фита... А как они связываются?

В соответствующем поле 2da'шки указывается строка (StrRef) в dialog.tlk или <customtlk>.tlk, как уже показал Ghost
QUOTE (-fenix- @ Sep 18 2005, 23:03)
Тобишь те же скрипты но работающие на прямую с движком.

В корне не верно
QUOTE (-fenix- @ Sep 18 2005, 23:03)
Тутора еще не написали?

Как видишь...
QUOTE (-fenix- @ Sep 18 2005, 23:03)
Гы нашел описание 2da в tlkedit_v2.05, то что надо на первых порах, почему его тут не написали?

Не нашли\нет времени\плевать. Что хоть там? Выкладывай давай
Добавлено в [mergetime]1127081314[/mergetime]
http://droaam.nm.ru/images/2da&tlk.jpg

Автор: Клемент Астилон Sep 19 2005, 01:21

Хех, Вал дай ссылку на твой Балдурс Легаси smile.gif Удобный редактор вроде.

Туторил вроде была такая идея, только вроде самое интересное где-то было разобрано одним усидцивым парнем. Вот не помню где точно, зайте поиск.

Автор: Vhall Sep 19 2005, 01:33

Да не вроде, а точно удобный biggrin.gif
http://www.wrg.ru/files/?cr=./toolset

Автор: -fenix- Sep 19 2005, 09:03

QUOTE (Vhall @ Sep 19 2005, 01:38)
Не нашли\нет времени\плевать. Что хоть там? Выкладывай давай


QUOTE

BioWare Движок Аврора
Формат файла 2DA

1. Введение
2da файл представляет собой чисто текстовый файл, описывающий 2-х мерный массив данных.
В играх BioWare, 2da файлы используются для различных целей, часто как ключевые элементы правильного функционирования игры и утилит. Они описывают многие аспекты правил иигрового движка.
Хотя 2da файлы являются простыми текстовыми файлами. Они структурированы в соответствии с установленными правилами, которых необходио придерживаться в дальнейшем для того, чтобы игра и утилиты читали 2da файлы корректно.
2. Основные Понятия
Основное тело 2da файла представляет собой таблицу, содержащуюю строки и столбцы данных. Каждый индивидуальный элемент данных имеет свои координаты по строкам/столбцам и называется компонентом. Данными может быть текст, целое число или число с плавающей точкой

Рассмотрим следующий пример контента 2da файла:
CODE

2DA V2.0

   LABEL         STRREF STRING          HasLegs  Pesonal_Space
0   Chicken       2013   Chicken         1        0.13
1   ****          ****   ****            ****     ****
2   Battle_Horror 1996   "Battle Horror" 0        0.3
3   Bear_Polar      1999  "Polar Bear"    1     0.6
4   Deer          2017   Deer            1        0.6


QUOTE

Этот пример иллюстрирует некоторые понятия, описанные до этого

Пространство, разделяющее столбцы
Каждый столбец разделен одним или несколькими пробелами. Точное число пробелов не имеет значения, сколько угодно, необходим по крайне мере один пробел. Столбцы можно точно не выравнивать, как показано в линии 3 примера выше.
Важно: не используйте символы табуляции для разделения столбцов.

Первый столбец
Первый столбец всегда содержит номер строки, первая строка нумеруется как 0, и все последующие строки увеличивают значение с этого.
Первый столбец единственный из всех не имеет заголовка.
Отметьте, что нумерация строк с помощью первого столбца нужна для удобства изучения или редактирования 2da файла. Игра и утилиты автоматически отслеживают индекс каждой строки, так что если строки пронумерована некорректно, игра или утилита все равно будет использовать верный номер в качестве индекса строки. Однако, хорошей привычкой может стать проверка правильности нумерации строк, избавляющаяя от путаницы.

Имена столбцов
Все столбцы после первого должны иметь заголовок. Заголовок может содержать символы различного регистра и подчеркивания.
Типы данных
В 2da файле используется три типа данных. Все данные в пределах одного столбца должны быть однотипны. Используются следующие типы данных:

• Строка: строка может состоять из произвольной последовательности символов. Однако, если строка содержит пробелы, то она должна быть заключена в символы разделения (") потому, что иначе, текст после пробела будет отнесен к следующему столбцу. Сама строка не должна содержать символов разделения.
• Целое: целое может быть максимум 32-разрядным, хотя приложение, считывающее это целое может в действительности принять значение меньшим размером. Например, булевое значение сохраняется в 2da как целое, таким образом столбец для него должен содержать только 0 или 1.
• Дробное: 32-разрядное значение с плавающей точкой.
Формат 2da не включает информацию о типе данных для каждого столбца потому, что приложению, считывающему данные из 2da, должно быть известно, какой тип данных соответствует тому или иному столбцу.

Пустые (****) ячейки
Специальная последовательность из символа **** указывает что компонент не содержит данных, или его значение не может быть использовано. Отметьте, что эта последовательность содержит точно 4 символа звездочки, ни больше, ни меньше.
Если нужно удалить строку из 2da файла, то все столбцы в этой строке должны быть заполнены последовательностями ****.
Значение **** также используется для указания "N/A" (не доступно).
При попытке чтения Строки с компонента **** , должна возвращаться пустая строка (""). При попытке чтения Целого или Дробного должен возвращаться 0. При программировании функций, выполняющих операции чтения, указывайте, когда попытка чтения завершилась неудачей, чтобы приложение знало, что компонетн не является простой пустой строкой "" или 0.

StrRefs
Одно из типичных применений Целочисленных столбцов это сохранение StringRefs (или StrRefs). StrRef представляет собой индекс в пользовательском файле dialog.tlk, который содержит строки диалогов. Когда 2da файл включает информацию, относязуюся к тексту, который должен быть отображен пользователю, этот текст не внедряется прямо в 2da файл. Вместо этого, 2da содержит ссылки StrRef для этого текста.
Использование StrRefs в 2da позволяет для всех языков использовать одну копию 2da файла. Вместо проведения многих тысяч изменений 2da для каждого языка, нужно только изменить один файл - dialog.tlk.

3. Разметка Файла
Линия 1 – версия формата файла

Первая линия 2da файла после указания типа, описывает версию 2da формата. Заголовок текущей версии выглядит следующим образом:
2DA V2.0

Линия 2 – по умолчанию пустая или опциональная
Вторая линия 2da файла обычно пустая.
Опционально, в этой строке может быть указано значение по умолчанию для всех компонент в файле. Шаблон имеет следующий вид:
DEFAULT: <text>
где <text> представляет собой значение по умолчанию, которое следует использовать. Отметьте, что текст значения по умолчанию подчиняется тем же правилам о пробелах, что любой другой столбец в 2da. Строка, содержащая пробелы, должна быть заключена в символы разделения.
Значение по умолчанию будет возвращено, когда запрошенная строка и столбец не имеют данных, а также  при запросе данных из несуществующей строки. Для запрошенной Строки, текст по умолчанию возвращается в виде строкового значения. Для целочисленных или дробных запросов, значение по умолчанию будет преобразовано Целочисленное или Дробное значение, в зависимости от прочих условий. Если строка значения по умолчанию не может быть преобразована в числовой тип данных, то будет возвращено значение 0. Программная функция, считывающая 2da компонент, должна информировать о  неудачном  чтении.
Значение по умолчанию не вовращается, когда запрашивается компонент ****. Для компонента, содержащего **** будет возвращена пустая строка или ноль.

Линия 3 – имена столбцов
Третья линия 2da файла содержит имена для каждого столбца. Имя каждого столбца отделено от других одним или более пробелами. Точное количество пробелов не имеет значения, сколько угодно, но по крайне мере один.
Имя столбца содержит буквенно-цифровые символы или подчеркивания и может начинаться с любого из них (т.е. первый символ не ограничен только буквой).

Линия 4 для определения – строка данных
Все линии начиная с 4 являются строками данных.
Каждый столбец в строке отделен от других столбцов одним или несколькими пробелами. При просмотре 2da контента с использованием шрифта фиксированной ширины, столбцы в  каждой строке визуально не совпадают со столбцами в других строках, но для упрощения восприятия лучше делать, чтобы совпадали.
Самый первый столбец в строке это индекс строки. Первая строка данных (линия 4) имеет индекс 0, вторая строка данных (линия 5) имеет индекс 1, и так далее.
Каждая строка должна содержать точно столько столбцов, сколько именованных столбцов содержится в линии 3, и еще один (так как индекс столбца без имени).
Если данные в ячейке столбца являются строкой, содержащей пробелы, то необходимо наличие символа разделения (двойная кавычка) в начале и в конце этих данных. В противном случае, текст после пробела будет отнесен к следующему столбцу. Строковый копонетнт 2da может вообще не содежать символов разделения.

4. Проверка
После того, как 2da файл был создан и его поддержка была добавлена в игру и/или утилиты, часто бывает необходимо изменять этот файл. Следующие правила обеспечивают безопасное внесение изменений.

Столбцы
Приложения могут ссылаться на столбцы через позицию (столбец 0, столбец 1, и т.д.) или по имени. Во избежании ошибок кода, зависимого от позиции столбца, пользуйтесь следующими правилами:
• Всегда добавляйте столбец после самого последнего столбца.
• Никогда не вставляйте столбец между двумя существующими или первым.
• Никогда не удаляйте столбец из 2da файла.
• Никогда не переименовывайте столбец.
• При добавлении столбца, убедитесь, что все строки содержат данные для нового столбца.

Строки
Многие свойства игровых объектов являются целочисленными значениями и сохраняться в виде обычных 2da файлов. Следовательно, позаботьтесь при изменении строк данных в 2da о том, чтобы  как можно меньшее число данных было затронуто изменениями.
Всегда добавляйте строки в самый конец файла.
Никогда не вставляйте строку между двумя существующими строками.
Никогда не удаляйте строку. Если требуется удалить данные в строке, просто замените все ненужные компоненты символами ****. Убедитесь, что действительно нет реальных данных в 2da или по крайне мере, ссылок на отмеченную строку.

Автор: -fenix- Sep 22 2005, 16:16

Ну так как вам? Я еще и про tlk нашел. Их бы на сайт выложить или в отдельную темку, помоему для человека ни разу в глаза не видавшему 2da и tlk(как я) это просто спасение. И вы от многих совсем ламерских вопросов освободитесь smile.gif

QUOTE



BioWare Движок Аврора
Формат Файла Таблицы Диалогов (dialog.tlk)




1. Введение
Игры BioWare's изданы на различных языках, поэтому и иговой текст необходим различный, в зависимости от языка пользователя.
Файл таблицы диалогов называется dialog.tlk (dialogf.tlk содержаит строки для женских персонажей) и содержит все строки, отображаемые игрой перед пользователем и поэтому требует перевода. Хранение всех отображаемых пользователю строк в таблице диалогов упрощает процедуру создания разноязычных версий игры, т.к. все остальные игровые данные (за исключением файлов озвучки) могут оставаться одними и теми же. Использование таблицы диалогов также помогает уменьшить требуемый объем дискового пространства для игры, т.к. содержит текст только для одного языка.

1.1. Соглашения
Это документ, описывающий файловые форматы. Во всех файловых форматах, описываемых здесь, упорядочивание байт происходит от младшего, также как в формате, используемом в процесорах Intel. Если значение больше, чем 1 байт, то младший значимый байт будет первым, а старший - последним.
Например, число 258 (0x0102 в шестнадцатиричной системе) выражается как 4-х байтовое целое и в файле будет записано следующей последовательностью байтов: 0x02, 0x01, 0x00, 0x00.
Следующие термины используются в документе для ссылки на типы числовых данных:
• WORD: 16-бит (2-байта) беззнаковое целое
• DWORD: 32-бита (4-байта) беззнаковое целое
• FLOAT: 32-бита с плавающей точкой, значение в формате IEEE Std 754-1985.

2. Строковая Ссылка StringRefs

2.1. Выборка Строки с помощью строковой ссылки StringRef
Когда игре или редактору (toolset) требуется отобразить языкозависимую строку, происходит обращение к строке в таблице диалогов через Строковую Ссылку  (String Reference) (сокращенно StringRef или StrRef), являющуюся уникальным идентификатором (ID), однозначно указывающим соответствующую строку в таблице. Идентификатор (ID) неизменен для версий игры различных языков, а соответствующий ему текст зависит от языка пользователя. Текст, содержащийся в таблице диалогов варьируется в зависимости от языка.

2.2. Описание StringRef
StrRef является 32-битным беззнаковым целым, которое служит как указатель на  табличную строку, размещенную в таблице диалогов.
Для обозначения неверной StrRef, в системе таблицы диалогов используется StrRef в которой все биты равны 1 (т.е., 4294967295 или 0xFFFFFFFF, как наибольшее 32-битное беззнаковое значение, или -1, сли это было знаковое 32-битное значение). При появлении StrRef с неверным значением, возвращаемый текст должен быть пустой строкой.
Верным считается значение StrRefs до 0x00FFFFFF или 16777215. Любое большее значение будет иметь 2 старших байта, которые примут нулевое значение, так, например, 0x01000001 или 16777217, будет представлено как StrRef, равная 1.
Если говорить точно, то 2 старших байта из StrRef могут нести особое значение. Смотрите Раздел 2.4 для пояснения.
В API, который взаимодействует с таблицей диалогов, функция, извлекающая текст по StrRef, должна возвращать булевое значение, как в случае, если StrRef была найдена в таблице диалогов, так и в противном случае. Произойдет обращение к приложению решить, как обработать ошибку. Это может быть сообщение об ошибке для пользователя или автоматическое использование пустой строки.

2.3. Обозначение Пола (Gender)
Для языков, отличных от английского, где разговорный или другой текст отличается  в зависимости от пола говорящего или слушающего, используют два файла с таблицей диалогов, dialog.tlk и dialogf.tlk. Оба tlk файла содержат идентичный между собой текст по всем StrRefs в игре. Однако, при появлении StrRef, указывающей на текст, имеющий два различных варианта в зависимости от пола персонажа игрока, то используется dialog.tlk для мужской формы текста или dialogf.tlk для женской формы текста.

2.4. Альтернативные Таблицы Диалогов (Alternate Talk Tables)
В модуле может быть указано, что используется альтернативная таблица диалогов, отличная от таблицы dialog.tlk.
Если модуль использует альтернативную таблицу диалогов, то используется бит 0x01000000 для использования StrRef указывающий, когда StrRef ссылается на обычный dialog.tlk, а когда - на альтернативный tlk файл. Если этот бит выставлен в 0, то StrRef ссылается как обычно на dialog.tlk. Если этот бит выставлен в 1, то StrRef ссылается на альтернативную таблицу диалогов.
Если альтернативного tlk файла не существует, или он не может быть загружен, или в нем нет запрошенной StrRef, то StrRef будет ссылаться как обычно, - на файл dialog.tlk.
Например: StrRef 0x00000005 указывает на StrRef 5 в dialog.tlk, а 0x01000005 является ссылкой StrRef 5 в альтернативном tlk файле. Если альтернативная  ссылка StrRef 5 не может быть получена, то используется обычная сылка StrRef 5.
Имя и расположение файла альтернативной таблицы диалогов не описываются форматом TLK файла. Однако, если требуется женская таблица диалогов, то соответсвующая ей версия файла альтернативной таблицы диалогов должна быть размещена в той же дирректории, что и мужская/нейтральная версия.
Например: Если неанглийский модуль использует альтернативную таблицу диалогов названную "customspells", то должны быть файлы customspells.tlk и customspellsF.tlk.

3. Формат Файла TLK

3.1. Структура Файла TLK
(не знаю, как вставить картинку  blush.gif )

3.2. Заголовок (Header)
Таблица 3.2.1 описывает заголовок файла dialog.tlk. Заметьте, что tlk формат, описываемый в этом документе имеет версию 3.0.

Таблица 3.2.1: Заголовок файла dialog.tlk
CODE

Значение             Тип        Описание

FileType             4 байта    "TLK "
FileVersion          4 байта    "V3.0"
LanguageID           DWORD      ID языка. См. таблицу 3.2.2
StringCount          DWORD      Число строк в файле
StringEntriesOffset  DWORD      Смещение от начала файла до Контента Таблицы


QUOTE

LanguageID указывает язык строк, содержащихся в tlk файле. Таблица 3.2.2 содержит список определенных языков. Для неанглийских языков, должно быть два tlk файла, dialog.tlk и dialogf.tlk.

Таблица 3.2.2: LanguageID
CODE

Язык                     ID

Английский                0
Французский               1
Немецкий                  2
Итальянский               3
Испанский                 4
Польский                  5
Корейский               128
Китайский Традиционный  129
Китайский Упрощенный    130
Японский                131


QUOTE


3.3. Таблица Данных о Строках (String Data Table)
Таблица Данных о Строках это список Элементов Данных о Строках, каждый из которых описывает единичную строку в файле dialog.tlk.
Число элементов в Таблице Данных о Строках соответствует значению из StringCount, указанному в Заголовке файла. Каждый элемент следует непрерывно один за другим сразу после заголовка файла.
StringRef является указателем в Таблице Данных о Строках, так StrRef 0 определяет первый ее элемент, StrRef 1 – второй элемент, и так далее.
Формат Элементов Данных о Строках приведен в Таблице 3.3.1.

Таблица 3.3.1: Элементы Данных о Строке (String Data Element)
CODE

Значение        Тип        Описание

Flags           DWORD      Флаг ссылки StrRef.
SoundResRef     16 байт    Ссылка ResRef на звуковой файл, связанный с
               (4xDWORD)  соответствующей строкой. В качестве неиспользуемых  
                          символов используются нули.
VolumeVariance  DWORD      не используется
PitchVariance   DWORD      не используется
OffsetToString  DWORD      Смещение от StringEntriesOffset до начала текста по
                          ссылке StrRef.
StringSize      DWORD      Число байт в строке. Нулевые конечные символы не
                          учитываются, следовательно данный размер не
                          включает нулевые окончания строк.
SoundLength     FLOAT      Длительность в секундах связанного со строкой wave
               (4 байта)  файла.    


QUOTE


До версии 3.0 в TLK файлах не было элемента SoundLength. При чтении из такого файла, приложение в качестве значения SoundLength должно было принять 0.0 секунд.
Флаговые значения элемента Данных о Строке являются флаговыми битами cо значениями, приведенными в Таблице 3.3.2.

Таблица 3.3.2: Строковые Флаги (String Flags)
CODE

Имя             Значение   Описание

TEXT_PRESENT    0x0001     Если этот флаг установлен, то в файле текст,
                          указанный ссылкой StrRef присутствует.Используйте  
                          OffsetToString и StringSize для определения этого  
                          текста.            
                                                     
                          Если флаг не установлен, то по ссылке StrRef
                          нет текста. Возвращается пустая строка.

SND_PRESENT     0x0002     Если флаг установлен, то можно считать SoundResRef  
                          из файла.

                          Если флаг не установлен, то SoundResRef является
                          пустой строкой.

SNDLENGTH_PRESENT 0x0004   Если флаг установлен, то можно считать  SoundLength
                          из файла.

                          Если флаг не установлен, то SoundLength считатеся
                          равной 0.0 секунд.    


QUOTE


3.4. Таблица Контента Строк (String Entry Table)
Таблица Контента Строк начинается от StringEntriesOffset, указанном в Заголовке файла и продолжается до конца этого файла. Весь локализованный текст располагается в Таблице Контента Строк в виде строк без нулевых символов. Как только заканчивается одна строка, начинается другая.

Автор: yudgi Sep 22 2005, 18:01

Привет всем, зашла в этот раздел форума и решила внести предложение. Информация здесь наверно довольно полезная, но думаю что для болшинтсва новичков, в том числе и для меня,непонятная. Может стоить сделать отдельную тему о 2DA таблицах, хотя бы самое основное: где находятся, зачем нужны, что с помощью них можно сделать и как, и т.д. Я узнала о них буквально день назад в одном из сообщений прочитала, думаю другие новички тоже о них мало знают, а ведь им это может пригодиться. Мастера, может у кого-то из вас найдётся свободное время создать такую темку? Заранее спасибо!
Кстати может такая тема есть, а я её не видела?

Автор: -fenix- Sep 24 2005, 12:24

При попытки открыть chargenclothes.2da выдается ошибка
Run-time error '380'
invalid property value
Почему так?

Автор: Vhall Sep 24 2005, 18:25

Чем отрываешь то? lazy.gif

Автор: -fenix- Sep 24 2005, 18:51

QUOTE (Vhall @ Sep 24 2005, 19:25)
Чем отрываешь то?

NWN2DAEdit

Но сейчас скачал BLToolkitStd, все открывает и намного удобнее + еще и tlk.

Такой вопросик
QUOTE

Name - Идентификатор из tlk файла. Если из кастомного то к идентификатору надо добавить 16777216 (это расспространяется на ЛЮБУЮ ссылку на tlk).


А что такое идентификатор из tlk, где его найти?


Добавлено в [mergetime]1127577194[/mergetime]
З.Ы так как описание 2da и tlk в темке 2DA ТАБЛИЦЫ??

Автор: AliceDiren Sep 24 2005, 19:05

-fenix- , дай ссылочку на BLToolkitStd, у мну до сих пор TLKEdit 1.0, даже поиска нет sad.gif А идентификатор из tlk - это... ну проще говоря ID строки.
Добавлено в [mergetime]1127578269[/mergetime]
Ну помнишь в тулсе есть функция
void SpeakStringByStrRef(int nStrRef, int nTalkVolume=TALKVOLUME_TALK)
так nStrRef - это и есть идентификатор строки

Автор: -fenix- Sep 24 2005, 19:17

QUOTE (AliceDiren @ Sep 24 2005, 20:05)
-fenix- , дай ссылочку на BLToolkitStd

Смотри http://www.wrg.ru/files/?cr=./toolset называется Baldur's Legacy Toolkit - v1.0

QUOTE (AliceDiren @ Sep 24 2005, 20:05)
А идентификатор из tlk - это... ну проще говоря ID строки.

Мне не для скриптов а для 2da, если у меня кастомный tlk, то к ID нужно добавить 16777216 - но тогда получается, что кастомный tlk можно иметь только один?

Автор: AliceDiren Sep 24 2005, 19:21

QUOTE
но тогда получается, что кастомный tlk можно иметь только один?

Ну, как я понимаю - да. Ты же указываешь его в модульные свойства/настройки пользователя/Специальный TLK файл.

QUOTE
Мне не для скриптов а для 2da

так ID-то у строки один что для скрипта, что для 2da smile.gif
Добавлено в [mergetime]1127579771[/mergetime]
-fenix- kiss.gif Спасиб за ссылочку - гораздо удобнее работать good.gif

Автор: Vhall Sep 24 2005, 19:38

QUOTE (-fenix- @ Sep 24 2005, 20:17)
но тогда получается, что кастомный tlk можно иметь только один?

Да. Больше и не нужно
QUOTE (-fenix- @ Sep 24 2005, 19:51)
NWN2DAEdit

Видимо эта прога не понимает такое количество строк\столбцов, которые есть в chargenclothes.2da
QUOTE (-fenix- @ Sep 24 2005, 19:51)
З.Ы так как описание 2da и tlk в темке 2DA ТАБЛИЦЫ??

Все что могу сказать - информативно
QUOTE (-fenix- @ Sep 24 2005, 19:51)
А что такое идентификатор из tlk, где его найти?

Я же скрин приводил
http://droaam.nm.ru/images/2da&tlk.jpg
Верхнее окно - 2da
Нижнее - tlk

Автор: -fenix- Sep 24 2005, 20:34

Я вот решил попробовать сделать полиморф в драконов, как описал Lemegeton и у меня вопрос

QUOTE

В тулсете при открытом модуле, к которому будет подключен новый спелл, нужно подключить этот ХАК и НЕ ЗАБЫТЬ на той же вкладке ниже выбрать вышесозданный TLK файл.

Что значит на той же вкладке ниже выбрать вышесозданный TLK, на этой вкладке кроме подключения хаков ничего нет. Я сделал из своего tlk то же хак и подключил, но у меня ничего не добавляется, наверное я не так сделал?
И еще в написанном скрипте у меня ошибки выдает на строках
Neverwinter Script Source
nPoly = POLYMORPH_TYPE_ANCIENT_BLUE_DRAGON;
nPoly = POLYMORPH_TYPE_ANCIENT_RED_DRAGON;
nPoly = POLYMORPH_TYPE_ANCIENT_GREEN_DRAGON;

Наверное из-за того же?
Помогите!

Автор: Vhall Sep 24 2005, 20:39

QUOTE (-fenix- @ Sep 24 2005, 21:34)
Что значит на той же вкладке ниже выбрать вышесозданный TLK, на этой вкладке кроме подключения хаков ничего нет. Я сделал из своего tlk то же хак и подключил, но у меня ничего не добавляется, наверное я не так сделал? И еще в написанном скрипте у меня ошибки выдает на строках

ТЛК должен иметь расширение .tlk и находиться в папке tlk
QUOTE (-fenix- @ Sep 24 2005, 21:34)
И еще в написанном скрипте у меня ошибки выдает на строках

Эт скрипты - я хз

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)