[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 4505: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3706)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 4507: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3706)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 4508: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3706)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 4509: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3706)
AERIE Team :: Просмотр темы - "Ликбез" по созданию модов на WeiDU
AERIE Team
http://forums.aerie.ru/

"Ликбез" по созданию модов на WeiDU
http://forums.aerie.ru/viewtopic.php?f=37&t=1738
Страница 1 из 5

Автор:  Badgert [ 08 фев 2006, 14:25 ]
Заголовок сообщения:  "Ликбез" по созданию модов на WeiDU

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

Для начала хорошо бы подробно осветить эти пункты. В дальнейшем можно будет плавно перейти к более сложным вопросам.
Я тут немного покопался на различных форумах, поспрашивал у знающих людей и вот, предлагаю свои соображения по пункту 7.

Приведу подробный пример мини-мода, который добавляет ранее созданный предмет в существующий в игре магазин.
Наш предмет (назовем файл ХХХ.itm) помещаем в папку "Items". Далее создаем пустую папку "backup".
Далее начинаем писать файл tp2

первым делом создаем строку
BACKUP ~MyMod/backup~ - где MyMod - название нашего мода, а "backup" - та самая пустая папка

далее пишем строку
AUTHOR ~Solofein (BaldurGate@mail.ru)~ - здесь мы указываем свой ник и почтовый адрес для благодарностей или критики :-)

далее пишем строку
BEGIN ~MyMod~ - где "MyMod" название нашего мода

После чего пишем следующий блок
COPY ~MyMod/Items/XXX.itm~ ~override/XXX.itm~ - с помощью этой строки WeiDU скопирует ваш предмет из папки "Items" в папку "Override"
SAY NAME1 ~ xxx ~ - в этой строке между тильдами мы пишем название предмета ДО идентификации
SAY NAME2 ~ xxx ~ - в этой строке между тильдами мы пишем название предмета ПОСЛЕ идентификации
SAY UNIDENTIFIED_DESC ~ xxx ~ - в этой строке между тильдами мы пишем описание предмета ДО идентификации
SAY DESC ~ xxx ~ - в этой строке мы пишем описание предмета ПОСЛЕ идентификации
(Примечание: если у вашего предмета идентификационный показатель равен 0, то есть он всегда идентифицирован, то в этом случае 1 и 2 строки, а так же 3 и 4 - полностью идентичны)

Итак, мы добавили наш предмет в игру. Теперь давайте занесем его в уже существующий магазин. Для этого нужно знать имя файла требуемого магазина. Для примера возьмем Лавку Приключений старины Рибальда. Файл его магазина называется ribald.sto
Пишем такую строку
COPY_EXISTING ~ribald.sto~ ~override/ribald.sto~
ADD_STORE_ITEM + ~ХХХ~ #0 #0 #0 ~IDENTIFIED&UNSTEALABLE~ #1 // Название нашего предмета
здесь ХХХ - файл нашего предмета без расширения.
Я пока еще не разобрался что означают символы #0 #0 #0 ~IDENTIFIED&UNSTEALABLE~ #1
Точнее, я понимаю, что предмет идентифицирован и его нельзя украсть, но как прописать наоброт? И что значит #0 В других модах, у некоторых предметов эти символы различаются.

И, наконец, заключительная строчка
//End of MyMod
////////////////////////////////////

AT_INTERACTIVE_EXIT ~VIEW MyMod/ReadMe-FRWL.txt~

После этого сохраняем ваш текст как Setup-MyMod.tp2
Переименовываем WeiDU.exe в Setup-MyMod.exe

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

Я вообще-то не специалист и могу ошибаться. Если был в чем-то неправ, то не со зла, а по неведению. Прошу меня поправить более опытными программистами. И надеюсь, увидеть столь же подробные описания для остальных пунктов из начала сообщения.

Автор:  Serdrick [ 08 фев 2006, 20:29 ]
Заголовок сообщения: 

Пара комментариев:
XXX.itm - XXX должно быть максимум 8 символов(только латиница). Название Mytwohandsword.itm - верный кандидат на вылет игры в винду.
Общий формат строки:
ADD_STORE_ITEM "myitem" #10 #0 #0 ~IDENTIFIED~ #5 - в указанной выше строке ITEM + ~ХХХ знак "+" не нужен.
Записи "myitem" и ~myitem~ эквивалентны, т.е. можно написать:
ADD_STORE_ITEM ~myitem~ #10 #0 #0 ~IDENTIFIED~ #5
#10 #0 #0 это число зарядов, с которыми продается данный предмет. Всего у предмета может быть три так называемых extension headers (заголовка расширений). Если предмет является оружием, то один extension header расходуется на его свойства. Оставшиеся два extension headers могут давать возможность кастовать заклинания с этого предмета. Например, у оружия может быть три заклинания Ускорения в день и два заклинания Невидимость в день.
Соответственно для этого случая предмет(у оружия первый extension header всегда пишется как #0) может продаваться с разным числом зарядов:
#0 #0 #0 - без зарядов
#0 #1 #1 - по одному заклинанию
#0 #3 #2 - 3 и 2 заклинания соответственно для указанного выше примера.
Усли предмет не является оружием, все три extension headers могут быть отведены под заклинания.
Поле ~IDENTIFIED~ может иметь следующие значения:
IDENTIFIED
UNSTEALABLE
STOLEN
IDENTIFIED&STOLEN
IDENTIFIED&UNSTEALABLE
#5 - число предметов в продаже.
Предмет обычно продается в идентифицированном состоянии, поэтому пишутся только
SAY NAME2 ~myitem~
SAY DESC ~свойства myitem~

Автор:  Badgert [ 09 фев 2006, 17:46 ]
Заголовок сообщения: 

Спасибо огромное!
Постараюсь все учесть. А как насчет поэтапного освещение остальных пунктов "начального образования на WeiDU"?

Автор:  Serdrick [ 09 фев 2006, 19:05 ]
Заголовок сообщения: 

Проверь почту.

Автор:  Accolon [ 10 фев 2006, 06:44 ]
Заголовок сообщения: 

Badgert:

WeiDU не всесилен. Например, чтоб "с нуля" создавать итемы, npc, локации одной программой Веймера точно не обойдешься. Но для модов формат WeiDU привлекателен тем, что вводит в инфинити-модостроение некий единый стандарт и позволяет делать какой никакой откат с "деинсталяцией" мода. Так же он полностью берет на себя скрипты и диалоги. И именно в добавлении текстов наиболее проявляется его привлекательность, потому что он позволяет избежать пересечения описаний (новых предметов, спеллов и т.д) и диалогов от различных модов в одном единственном файле игры dialog.tlk. Потому что не-WeiDU моды этот файл заменяли своим. А значит - если ставишь один мод, то другой уже не поставишь, т.к. dialog.tlk для игры один.

Я бы сказал, что WeiDU <u>вводит</u> в игру описание для перса/ итема/ спелла/ событий, но не стал бы говорить, что программа Веймера <u>создает</u> перса/ итем/ спеллы/ события в игре. Под "вводит" подразумевается: копирование (с созданием резервной копии уже существующего файла с таким же именем) уже созданного файла в каталог игры override; WeiDU-изменения файла dialog.tlk, дающего авторское описание вводимого в игру элемента. Установленные через WeiDU моды сохраняются в файле "WeiDU.log". Если мод программой Веймера "деинсталируется", то содержимое измененных файлов восстанавливается. Если файлы были новыми, то они удаляются WeiDU из каталога override при "деинсталяции". Но файл dialog.tlk при "деинсталяции" не изменяется: т.е. внесенные модом записи так и остаются там, хотя и не активны.

Чтоб вводить в игру перса/ итемы/ спеллы/ локации не достаточно разобраться с программой Веймера. Нужно разбираться (в этом помогут наиболее популярные Near Infinity и Infinity Explorer) во внутреннем формате файлов, описывающих в игре персонажей/ итемы/ спеллы/ локации. WeiDU копирует уже готовые файлы персонажей/ итемов/ спеллов/ локаций из папки мода в папку override и может их немного корректировать при этом. Либо корректировать файлы уже существующего в игре, размещая их в override. Например, сделать итем неиспользуемым для класса "Кавалер".

Автор:  Badgert [ 10 фев 2006, 16:24 ]
Заголовок сообщения: 


Автор:  aVoddle [ 11 фев 2006, 02:57 ]
Заголовок сообщения: 

Ну, практически цитируя туториал от TeamBG:
Нужно создать dlg-файл для продавца (при помощи notepad и weidu), в котором он может говорить все, что душе угодно, а чтобы открыть окно торговли, есть такое действие:
StartStore("XXXХХХХХ",LastTalkedToBy())
где ХХХХХХХХ - название файла магазина без расширения .sto
Потом надо сделать cre-файл для продавца. Здесь поможет Near Infinity. Не забыть назначить соответствующий диалог этому существу.
Следующий шаг - добавить в скрипт необходимого района следующий код, чтобы там появился продавец:
IF Global("########","GLOBAL",0)
THEN
RESPONSE #100
CreateCreature("********",[XXXX.YYYY],FF)
SetGlobal("########","GLOBAL",1)
END
где ######## - уникальное имя переменной, можно написать что угодно,
******** - название файла продавца без расширения .cre,
ХХХХ - координата по оси Х местоположения продавца,
YYYY - координата по оси Y местоположения продавца,
FF - направление, в котором будет смотреть продавец.
После сохранения нового baf-файла, его нужно скомпилировать (weidu поможет), расширение уже скомпилированного файла - bcs. Это можно сделать, написав в tp2-файле такую строчку:
COMPILE ~ХХХ.baf~
И, наконец, последнее - нужно убедиться, что все 4 необходимых файла скопированы в каталог override (sto, dlg, cre и bcs).
Вот и все, теперь при начале новой игры или загрузки любого сэйва, продавец появится в нужном месте. Ура!

Автор:  Serdrick [ 11 фев 2006, 15:23 ]
Заголовок сообщения: 



Вложения:
inst_dltcep.zip [47.88 КБ]
Скачиваний: 832

Автор:  Andy The Goblin [ 12 фев 2006, 02:22 ]
Заголовок сообщения: 


Автор:  aVoddle [ 12 фев 2006, 02:26 ]
Заголовок сообщения: 


Автор:  Serdrick [ 12 фев 2006, 20:52 ]
Заголовок сообщения: 

Для всех, кому это интересно, выкладываю статью по редактированию предметов в DLTCEP.

Вложения:
item_dltcep.zip [154.67 КБ]
Скачиваний: 828

Автор:  Serdrick [ 13 фев 2006, 17:46 ]
Заголовок сообщения: 

По просьбе Badgert-а, решившего перевести в Weidu формат мод "Регион Террора", я написал небольшую статью о том, как это сделать, на примере небольшого мода "Domains of Dread". В архиве находится сама статья и результат преобразования мода в Weidu формат. Правда из-за очень большого размера я заменил файл HELLOLY.bam на другой, с тем же названием. Если кому-то он нужен, его можно выложить дополнительно, однако я надеюсь, что Badgert оттестирует этот мод и выложит его на ftp(HELLOLY.bam у него есть). В этом моде должно быть довольно серьезное сражение с драколичем.

Вложения:
old_mod.zip [39.22 КБ]
Скачиваний: 786

Автор:  Badgert [ 15 фев 2006, 16:02 ]
Заголовок сообщения: 


Автор:  Serdrick [ 15 фев 2006, 17:40 ]
Заголовок сообщения: 


Автор:  Kulyok [ 15 фев 2006, 21:00 ]
Заголовок сообщения: 


Страница 1 из 5 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/
Not able to open ./cache/data_global.php