gothic 2 создание мода

Начало работы

Отдельное спасибо Vam’ у за «Уроки скриптологии»

Я не ставлю перед собой задачу полного описания всех программ, необходимых для создания собственной игры, а точнее собственной модификации игры (MOD’a). Просто мне знакомы проблемы, с которыми сталкиваются новички, решившие сделать свой Мод.

Итак, познакомимся с основами работы в разных программах, необходимых для создания полноценного М ода.

Подготовка к работе. Установка необходимых программ

Естественно, первое, что необходимо иметь, это установленную игру В«Готика 2 Ночь ВоронаВ» версии 2.6 (Die Nacht des Raben).

Доступны следующие компоненты:

Пункт Sprachausgabe отмечать не нужно, он не доступен для установки.

После установки MDK необходимо установить патч В« g2mdk-2.6a.exe В» в ту же директорию. На этом установка MDK закончена.

Для удобства работы я бы посоветовал создать ярлыки для папки В«_compiledВ» расположенной в директории …\GothicII\_work\data\Scripts и папки В«CutsceneВ», расположенной в …\Gothic II\_work\data\Scripts\Content.

Рис 1.

Хотелось бы дать несколько советов «совсем» начинающим . Файлы игры делятся на 2 вида. Компилированные, которые использует движок игры, и не компилированные, исходные файлы, которые можно редактировать. Вот таблица этих файлов:

В последней папке System находим файл GothicSourcerV2_40.exe, запускаем его. Вот окно декомпилятора:

Источник

Справочник модостроения

neromont


Модостроитель

Я выложил текущую версию справки, так как обещал, что обновление будет в июле. Однако справка, все еще не закончена.

В справку включено множество статей с сайта World of Players, а также переводы с сайтов World of Gothic.DE и TheModders.org.

Добавлены справочники: Gothic Starter и INI файлы, Daedalus, MARVIN и некоторые другие. Некоторые из них пока в процессе наполнения.

Изменено индексирование справки.

Версию для Mozilla я постараюсь выложить в скором времени.

Справочник включает обновленный каталог моделей, в которые вошли модели из G3, TES IV и TES V.

Библиотека моделей представлена в виде RAR архива и в виде VDF-тома.

RAR Архив. Чтобы модели можно было использовать достаточно разархивировать библиотеку в папку Gothic/_work с игрой.

VDF том. Чтобы модели можно было использовать достаточно сохранить том в папку Gothic 2\Data.

Патч для библиотеки моделей

Патч необходимо скопировать в папку IE ZenGin Reference\js\ с заменой оригинального.

Запуск и установка справочника

Так как справочник создавался с нуля, его нельзя устанавливать в ту же папку в которую установлена предыдущая версия справки.

Текущая версия справки представлена в виде RAR архива. Почему не самоустанавливающийся SFX? Ну некоторые считают его неудобным.

Для запуска каталога после его разархивации, необходимо запустить файл VOB.html из папки IE ZenGin Reference. Файл находится практически в самом низу папки.

Заметки по использованию справочника в Mozilla и Internet Explorer 11

Internet Explorer 11 при тестировании работал со всеми вкладками справочника и каталогов.

Mozilla имеет ряд недостатков, в частности не отображает некоторую Flash анимацию в категории «Доспехи». В любом случае, в следующей версии справочника категория «Доспехи» будет изменена и вместо Flash будут использоваться картинки. Доспехи будут состоять из трех подкатегорий: доспехи, одежда и мантии.

Браузеры Chrome и Opera не работают со справкой, так как блокируют фреймы (по крайней мере у меня), но вы можете попробовать

Если вы заметили в справке какую-то ошибку сообщите мне в этой ветке форума. Чем больше исправим, тем точней будет справочник.

Также, если вы хотите пополнить справочник своими статьям по модостроению, или знаете ссылки на страницы с интересными статьями, то просьба тоже указывать их здесь. Авторство естественно будет сохранено. Свои статьи можете прислать в DOC или RTF формате.

Вложения

Участник форума

2neromont
Почему не выложить оффлайн версию сайта? Не нужно было бы прикладывать столько трудов. Я давно себе сделал, так как некоторые сайты исчезают без предупреждения. Если нужно могу выложить.

ЗЫ Зачем выкладывать архив, как exe-шник. Люди сами себе распакуют куда нужно.

ЗЗЫ Хотя, если хочется делать справочники, кто запретит.

neromont


Модостроитель

Это и так оффлайн версия сайта.

При распаковке можно выбрать любую папку. Куда хотите туда распаковывайте.

А с каких сайтов есть оффлайн версии.

Добавляю описание классов. Надеюсь закончить к концу зимних каникул и приступить к основной работе.

Образец справки по классу C_GilValues прикреплен.

Вложения

DenZanuda


Архивариус

Обнаружено отсутствие иллюстраций по меньшей мере в одной статье.
Возможно ли это исправить?

ДОПОЛНЕНО: аналогичная история в статье Анимация камеры

neromont


Модостроитель

Обнаружено отсутствие иллюстраций по меньшей мере в одной статье.
Возможно ли это исправить?
Посмотреть вложение 51150

ДОПОЛНЕНО: аналогичная история в статье Анимация камеры

MEG@VOLT

★★★★★★★★★
ТехАдмин

neromont


Модостроитель

MEG@VOLT

★★★★★★★★★
ТехАдмин


Модостроитель

neromont


Модостроитель

Потихоньку работаю с классом C_Item.

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

Справочный файл по C_Item прикреплен.

Если есть, замечания, отпишитесь

Просьба к модостроителям. У кого есть копии уроков с изображениями, или ссылка на подобные уроки, пожалуйста поделитесь.

Иначе, я не вижу смысла их добавлять в справочник

Список уроков без изображений прикреплен.

Вложения

Стражник

Участник форума

neromont


Модостроитель

MaGoth

★★★★★★★★★★★
Администратор

Стражник

Участник форума

neromont


Модостроитель

Вложения

Стражник

Участник форума

В свое время я начал именно с различных сюжетов и сценариев для Возвращения. Часть задумок была там реализована.

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

Начал разбирать твои уроки и учиться в мире Готики 2. Поэтому и первые шаги в модострое будут в локации Хориниса.

Сейчас по мере возможности и времени немного изменяю мир локации Хориниса. Хотя уже неделю занимаюсь аналитикой совсем других вещей и времени на модострой нет. Удобство в том что пока события будут происходить только в локации Хориниса. Минус это мое неведение в работе с основным миром. По идее нужно убрать ряд обьектов которые через Спейсер не убрать. Нужно работать в графическом редакторе а опыта пока нет. Хотя для альфа версии вполне сойдет.

Читайте также:  экг электрод универсал 57 34 мм код 5734 россия

MaGoth

★★★★★★★★★★★
Администратор

Зы, в архиве скрины.

Вложения


Модостроитель

neromont


Модостроитель

На данный момент раздел «Статьи» завершен.

Список включенных статей:

o Учимся работать с Gothic VDFS [Killer-XXX]

Текстуры и текстурирование

o Текстурирование объектов Готики в 3D Studio Max, с использованием Multi/Sub-Object материала и UVW Mapping’а [R.S.]
o Замена картинки в игровом меню [Мильтен]
o Тутор по обновлению текстур [multivoin]
o Изменение фона меню загрузки [multivoin]
o Создание нового шрифта [Мильтен]
o Текстурирование объекта в 3DS Max [Igor_msts]
o Текстурирование объектов Готики в 3ds Max с использованием модификатора Unwrap UVW [Марвин]
o Текстурирование зданий с помощью модификатора Unwrap UVW [R.S.]

o Описание, экспорт/импорт *3ds-файлов [WSA]

o Моделирование вазы [Мильтен]
o Моделирование лестницы [Мильтен]
o Моделирование лука [Beowulf]
o Моделирование меча [Мильтен]
o Моделирование меча в 3D [Мильтен]
o Тутор по созданию меча [Magi-Max]
o Рисуем 3D вазу [Мильтен]

o Рисуем 3D домик [Мильтен]
o Рисуем 3D вышку [Мильтен]
o Тутор по созданию простой статуи [ВоинИнтернета]

Создаем растительность [BlackMag]

o Создание локации в 3D Studio Max #1 [DEDROIT]
o Создание локации в 3D Studio Max #2 [DEDROIT]
o Создание локации в 3D Studio Max #3 [DEDROIT]
o Создание локации в 3D Studio Max #4 [DEDROIT]
o Урок по моделированию ландшафта [DEDROIT]
o Создание локаций (Последний урок) [DEDROIT]
o Создание территории от простого к сложному [BlackMag]
o Создание новых локаций в 3DS Max [s@m]
o Создание локации для G2 в 3DS Max с помощью «Карты рельефа» [MEG@VOLT]
o Создание рельефа для Готики [Valeyard] НОВОЕ

o Руководство по программе GothicSourcer [VAM]
o Руководство по ошибкам GothicSourcer [VAM]
o Импорт/экспорт моделей [VAM]

o Конструкция if() else() [Мильтен]
o Функции в скриптинге [Мильтен]
o Использование рандома [Мильтен]
o Создание скриптовой зацикленной функции при помощи TriggerScript (ZEN) [Мухомор]
o Создание таймера [Мильтен]

o О файле Startup [Мильтен]

o Создание персонажа (Npc) [Мильтен]
o Создание Npc и вставка его в игру [DEDROIT]
o Создание персонажа торговца [Мильтен]
o Динамическая смена главного героя [Мильтен]
o Реализация татуировки [Мильтен]
o Создание новой текстуры лица [Мильтен]
o Перенос визуализации лица из Готики 1 в Готику 2 [DEDROIT]
o Конвертирование лиц из Gothic I в Gothic II и обратно [Ukur aka BlackWolf]

o Система гильдий в скриптах Готики [Маразмус]
o Создание новой гильдии [DEDROIT]

o Вставка нового доспеха [Beowulf]
o Создание руны телепорта [Мильтен]
o Тутор по созданию телепорта в любую часть локации [DUSTinghoFFman]
o Создание амулета регенерации [DEDROIT]
o Туториал по созданию многостраничного документа [Redleha]
o Тутор по созданию стрелы массового поражения [Redleha]

o Создание квеста [Мильтен]
o Создание скриптового мини-мода [DEDROIT]

o Создание нового заклинания [Saturas]

o PFX система (Эффекты излучаемых частиц) [VAM]

o Урок по основам анимации в 3DS Max [SMErtNIK]
o Правильное приготовление головы персонажа [alex_draven]
o ASC-файлы: объекты и модели [Kerrax]
o Гоблин-всадник (создание) [Kerrax]
o Урок по привязке меша к костям скелета [Марвин]
o Создание собственной брони [WSA]
o Туториал по анимации, пришивка анимации брони к скелету модели в 3D Studio Max [DEDROIT]
o Динамическая модель (3DS Max, анимация и меши) [Vam]
o Динамическая модель: Описание eventTag’ов [Kerrax]
o Тутор по вставке нового oCMob в игру с новыми анимациями [Saturas]

o Звуковые эффекты и диалоги [Basilio58]
o Нарезаем готовую композицию в формат DirectMusic для Готики 1/2 [Странник aka Wanderer]

o Руководство по переводу модификаций [Мильтен]

Если есть желание, добавить какую-нибудь свою статью, то оставляйте ссылку, или загружайте файлы на эту страничку.

Пример страницы из справки по MARVIN. Закончено на 70%.

Следующий рассмотренный класс C_Menu. С описанием некоторых параметров мне очень помог Gratt за что ему отдельное спасибо.

Источник

Создание Модификаций для Готики 2

Ruslan

УРОК 1: СОЗДАНИЕ НОВОГО НПС И ВСТАВКА ЕГО В ИГРУ

!ВНИМАНИЕ!: Урок создавал VenDigo, данный урок был выложен на всеобщее обозрение на сайте www.gothic.ozl.ru

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Существует множество туторов для начинающих скриптеров, однако они не совсем для «НАЧИНАЮЩИХ»! Когда чел. не знает что такое НПС и что такое скрипт, ему сложно понять фразу типа «теперь компилируем скрипт и создаём новые ou файлы».
Вот пара советов для начала:

1. Обязательно иметь MDK(МодДевелопментКит) для Вашей Готики.

Объясняю зачем:
а)Необходим Спейсер, который поставляется не со всеми версиями игры.
б)Нужны примеры скриптов
в)MDK добавляет в корневой каталог игры очень нужные, для скриптеров и текстурщиков особенно, файлы.
г)И вообще пакет очень нужный. Без коментариев. Качаем.

2. Необходимо(ну не совсем необходимо, но я бы советовал) иметь тутор «Уроки скриптологии» от Vam’а.

а) В нём содержатся все основные и продвинутые функции, встречающиеся не только повсеместно, но и в частности в играх Готики.
б) Если у Вас в школе нет\не было информатики, он просто НЕОБХОДИМ!
в) Если Вы не знаете значение той или иной функции или значка, совсем не обязательно сразу доканывать вопросами других людей. Достаточно просто посмотреть в гениальный тутор Вама. Тем более что самому докапываться до истины гораздо приятнее, ибо, поверьте мне, она всегда рядом

3. Желательно хорошо знать сюжет оригинальной игры, помнить мелочи каждого квеста, лица различных НПСей.
Это нужно для того, чтобы при «тормозе» в собственном скрипте, на примере скриптов проффесионалов(Пираньи имеются в виду) понять и проанализировать свою ошибку.

Открываем только что созданный файл. У меня это NONE_999_Vendigo.d И начинаем творить:

instance NONE_999_Vendigo (Npc_Default) //слово instance отвечает за ввод функции, в данном случае, ввод непися NONE_999_Vendigo
< //эти скобочки очень важны в скрипте! Ни в коем случае не пропускайте их! Иначе весь скрипт на смарку.

//Здесь описаны параметры вашего персонажа. Сила, кол-во жизни и т.д.

attribute[ATR_STRENGTH] = 70; //Сила
attribute[ATR_DEXTERITY] = 50; //Ловкость
attribute[ATR_MANA_MAX] = 10; //Максимальная мана, которую может иметь персонаж
attribute[ATR_MANA] = 10; //Текущая мана
attribute[ATR_HITPOINTS_MAX] = 200; //Максимальное здоровье
attribute[ATR_HITPOINTS] = 200; //Текущее здоровье

Читайте также:  майнинг ergo на виндовс

//Обеспечивает естесственную защиту персонажа. Для неписей, ИМХО, не нужна, потому как по задумке они броню носят, которая им протекшн и добавляет. Лучше ставить везде по нулям. В противном случае можно сделать мутанта, у которого нездоровый иммунинет к повреждениям. В скриптах Готики 2, да и Г1, помойму тоже, этот раздел вообще можно опустить.

Npc_SetTalentSkill (self,NPC_TALENT_1H,2); // Умения махать одноручником. Цифра 2 означает Master. Ещё можно ставит 0 и 1. Чем выше, тем круче.
Npc_SetTalentSkill (self,NPC_TALENT_2H,2); // Умение махать двурушником. Аналогично.
Npc_SetTalentSkill (self,NPC_TALENT_BOW,2); // Луком
Npc_SetTalentSkill (self,NPC_TALENT_CROSSBOW,2); //Арбалетом

//В Г2 всё гораздо проще. За Вас всё делает одна единственная функция:

//Хотя ладно, скажу. это же тутор. Вот так:

HitChance [NPC_TALENT_1H] = 60; //Одноручник
HitChance [NPC_TALENT_2H] = 50; //Двуручник
HitChance [NPC_TALENT_BOW] = 60; //Лук
HitChance [NPC_TALENT_CROSSBOW] = 30; //Арбалет

//Это раздел скрипта, отвечающий за внешний вид вашего НПС

Mdl_SetModelFatness (self, 0); //Это так называемая «толстость» персонажа, будет ли он плотненький, с животиком. Поставить 2 для полноты вполне достаточно.

B_SetNpcVisual (self, Male, «Hum_Head_Bald», Face_N_Corristo, BodyTex_N, ItAr_Djg_Crawler);

//Здесь то, что непосредственно надето на персонаже

EquipItem (self, ItMw_1H_Special_01); //после self пишем название вещи, которую необходимо надеть на непися. Всё, что можно надеть ищите здесь: _work\Data\Scripts\Content\Items\IT_Addon_Amulette.d
EquipItem (self, ItRw_Sld_Bow); // _work\Data\Scripts\Content\Items\IT_Addon_Runes.d
// _work\Data\Scripts\Content\Items\IT_Addon_Weapons.d
// _work\Data\Scripts\Content\Items\IT_Amulette.d
// _work\Data\Scripts\Content\Items\IT_Melee_Weapons.d
// _work\Data\Scripts\Content\Items\IT_Ranged_Weapons.d
// _work\Data\Scripts\Content\Items\IT_Ringe.d
// _work\Data\Scripts\Content\Items\IT_Runen.d
//—————-Инвентарь———————

//Сюда можно пихать абсолютно все предметы. Они будут лежать у персонажа в инвентаре. Пример:

CreateInvItems (self, ItPo_Health_03, 30); //Помещает в инвентарь бутылки сильного лечения количеством 30 штук.

//Все итемки(предметы) можно найти в файлах папки _work\Data\Scripts\Content\Items

//—————Чувства————————
//Отвечает за восприятие НПС окружающего мира. Все эти чувства проявляются в том, на каком расстоянии персонаж увидит или услышит например, монстра, чтобы вытащить меч и наброситься на него. Или если ваш перс захочет с поговорить с Безымянным, то сделает это, когда ГГ подойдёт к нему на расстояние senses_range.

//Ёлы-палы, как звучит! Но ничего сложного тут нет.

fight_tactic = FAI_HUMAN_MASTER; //Функция отвечает за тактику боя. Ещё есть FAI_HUMAN_STRONG и. ещё третье чё-то. ламо короче.

func void Rtn_Start_999 () //Сама функция распорядка дня
<
TA_Stand_Guarding (07,00,09,00,»NW_XARDAS_TOWER_03″);

//теперь персонаж стоит на вайпоинте. И только. Чтобы научить его ходить, надо прописать как минимум две функции. Добавляем, например эту:

instance NONE_999_Vendigo (Npc_Default)

name = «Вендиго»;
guild = GIL_NONE;
npctype = NPCTYPE_MAIN;
level = 15;

attribute[ATR_STRENGTH] = 70;
attribute[ATR_DEXTERITY] = 90;
attribute[ATR_MANA_MAX] = 10;
attribute[ATR_MANA] = 10;
attribute[ATR_HITPOINTS_MAX] = 200;
attribute[ATR_HITPOINTS] = 200;

B_SetNpcVisual (self, MALE, «Hum_Head_Bald», Face_N_Corristo, BodyTex_N, ItAr_Djg_Crawler);

Mdl_ApplyOverlayMds (self, «humans_Militia.mds»);

Mdl_SetModelFatness (self, 0);

B_GiveNpcTalents (self);
B_SetFightSkills (self, 60);

EquipItem (self, ItMw_1H_Special_01);
EquipItem (self, ItRw_Sld_Bow);

CreateInvItems (self, ItPo_Health_03, 30);
CreateInvItems (self, ItWr_Timber_Guard_1, 1);
CreateInvItems (self, ItWr_Timber_Guard_2, 1);
CreateInvItems (self, ItWr_Timber_Guard_3, 1);
CreateInvItems (self, ItWr_Timber_Guard_4, 1);
CreateInvItems (self, ItWr_Timber_Guard_5, 1);
CreateInvItems (self, ItWr_Timber_Guard_6, 1);
CreateInvItems (self, ItWr_Timber_Guard_7, 1);
CreateInvItems (self, ItWr_Timber_Guard_8, 1);

senses = SENSE_SEE | SENSE_SMELL | SENSE_HEAR;
senses_range = 2000;

func void Rth_Start_999 ()
<
TA_Stand_Guarding (07,00,09,00,»NW_XARDAS_TOWER_03″);
TA_Practice_Sword (09,00,12,00,»NW_XARDAS_TOWER_VIEW_03_01″);
TA_Smoke_Waterpipe (12,00,15,00,»NW_XARDAS_TOWER_VIEW_03_01″);
TA_Guard_Hammer (15,00,18,00,»NW_XARDAS_TOWER_03″);
TA_Smith_Fire (18,00,21,00,»NW_XARDAS_TOWER_03″);
TA_Saw (21,00,07,00,»NW_XARDAS_TOWER_VIEW_03_01″);
>;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Теперь о том, как вставить этот самый НПС в игру:

Копируем наш *.d файл в папку со всеми неписями у Gothic II\_work\Data\Scripts\Content\StoryNULLPC

В файле Gothic II\_work\data\Scripts\Content\StoryNULLPC_Globals.d находим строчку var C_NPC Lester; и дописываем под ней var C_NPC Vendigo;(имя вашего НПС). Теперь в этом же файле находим Lester = Hlp_GetNpc(PC_Psionic); и дописываем ниже Vendigo = Hlp_GetNpc(NONE_999_VenDigo); где NONE_999_VenDigo название файла Вашего непися.
Почему именно под этой строчкой. Важно не под какой строчкой, а в каком разделе файла, в какой функции. Лестер, так же как и наш новенький непись попадает в в функцию, которая вставляет персов в окрестностях башни ксардаса. А так как Вендиго(или кого у вас там) мы вставляем именно у его башни, то соответственно прописывать нужно именно здесь.

Открываем файл Gothic II\_work\Data\Scripts\Content\Story\StartUp.d Находим в нём строку Wld_InsertNpc (PC_Psionic, «NW_XARDAS_TOWER_PATH_01»); И дописываем ниже Wld_InsertNpc (NONE_999_Viktor, «»NW_XARDAS_PATH_FARM1_08»);

Открываем Spacer, прогу, поставляющуюся из Девелопменкита или вместе с игрой. Экзешник в папке System. Нажимаем World\Repare Script(Мир – заменить скрипты), выбираем Gothic.scr и нажимаем открыть. После чего начнётся компиляция скриптов. Продолжаться она может достаточно долго. В идиале не должно выскочить ни одной ошибки. Если они всё-таки повыскакивали, не отчаивайтесь, персонаж и с ними может вставиться. Конец компиляции выдаст окно Аутпут-Юнитс, которе заменится на окно Материалз.

Теперь заходим в игру и начинаем новую (обязательно! не загружаем!). Проверяем, стоит ли персонаж на месте. Если же персонажа на указанном вайпоинте не оказалось, детально, по строчечке проверте правильность ваших скриптов (везде ли стоят ‘;’ и » <", нету ли описок в словах и т.д.).
Внимание : если вы нашли и исправили ошибку, нужно снова компилить Gothic.src
///////////////////////////////////////////////////////////////////////////////////////

Ruslan

Вот еще тутор, от этого автора:

ПРИМЕР: Тип предмета; Mainflag ; Flag; Код предмета; Файлы.

Амулеты: ITEM_KAT_MAGIC; ITEM_AMULET; ItAm_; IT_Addon_Amulette.d и IT_Amulette.d

Трофеи: ITEM_KAT_NONE; ITEM_MULTI; ItAt_; IT_AnimalTrophy.d

Доспехи: ITEM_KAT_ARMOR; 0; ItAr_; IT_Addon_Armor.d и IT_Armor.d

Еда: ITEM_KAT_FOOD; ITEM_MULTI; ItFo_; IT_Addon_Food.d и IT_Food.d

Ключи: ITEM_KAT_NONE; 0; ItKe_; IT_Addon_Keys.d и IT_Keys.d

Напитки: ITEM_KAT_POTIONS; ITEM_MULTI; ItPo_; IT_Addon_Potions.d и IT_Potions.d

Кольца: ITEM_KAT_MAGIC; ITEM_RING; ItRi_; IT_Ringe.d

Руны: ITEM_KAT_RUNE; 0; ItRu_ ; IT_Addon_Runes.d IT_Runen.d

Создавать отдельный файл под итемку не нужно. Чтобы «написать» предмет, нужно писать с крипт в соответствующем файле(из вышеприведённой таблицы). О флагах и кодах позже.

Оружие ближнего боя: ITEM_SWD (одноручный меч)
ITEM_2HD_SWD (двуручный меч)
ITEM_AXE (одноручный топор)
ITEM_2HD_AXE (двуручный топор)

Оружие дальнего боя: ITEM_BOW (лук)
ITEM_CROSSBOW (арбалет)
ITEM_CROSSBOW|ITEM_MULTI (стрелы и болты)

Письмена: 0 (нейтральные листовки и книги)
ITEM_MISSION|ITEM_MULTI (карты)

К предметам, учавствующим в основной сюжетной линии и каих-либо квестах применяют флаг ITEM_MISSION;

Читайте также:  супер коды амазинг рп 2021

//Здесь заканчивается первая область и начинается вторая, ответственная за выво текста.

COUNT[2] = переменная; //Назначается значение функции из TEXT[2]. Понимаю, пока не всё ясно, но позже всё встанет на свои места
COUNT[3] = переменная; //Аналогично
COUNT[4] = переменная; //Аналогично
COUNT[3] = value; //Определяет значение предмета.

Вот в принципе и всесь скелет. Если Вы хотите привязать к предмету какую либо функцию, например постоянное увеличение силы на 20, дописываем следующее:

on_equip = Equip_name; //Где name полностью совпадает с именем предмета. Эта функция означает одевание предмета.
on_unequip = UnEquip_name; //Снятие предмета

TEXT[1] = «Этот предмет даёт небывалую силу»;
TEXT[2] = NAME_Bonus_Str;
COUNT[2] = 20;
>;

Теперь приписываем само повышение силы:
<
FUNC VOID Equip_Name()
<
Npc_ChangeAttribute(self,ATR_STRENGTH,+ 20);
>;

FUNC VOID UnEquip_Name()
<
Npc_ChangeAttribute(self,ATR_STRENGTH,- 20);
>;

Готово! Вот пример моей итемки. Это квестовый лук.
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
INSTANCE ItRw_KvintBow (C_Item)
<
name = «Лук Квинта»;
mainflag = ITEM_KAT_FF;
flags = ITEM_BOW;
value = Value_KvintBow;
visual = «ItRw_Bow_H_04.mms»;
material = MAT_WOOD;
munition = ItRw_Arrow;

cond_atr[2] = ATR_DEXTERITY;
cond_value[2] = Condition_KvintBow;

damageTotal = damage_KvintBow;
damagetype = DAM_POINT;

TEXT[0] = «Этот лук сделан Виктором»;
TEXT[1] = «по заказу Квинта»;
TEXT[2] = NAME_Damage; COUNT[2] = damageTotal;
TEXT[3] = NAME_Dex_needed; COUNT[3] = cond_value[2];
TEXT[5] = NAME_Value; COUNT[5] = value;
>;

Примите во внимание, что после damagetotal(повреждения), value(цена) и cond_value[2](cтоимость ловкости) стоят не числа, а функции. Чтобы приписать числа к этим функциям(т.е. скока именно дамаг, цена, и ст-ть ловкости) нужно в файле Items\Tuning_Ranged_Weapons.d дописать следующее:

const int damage_KvintBow = 130; //Повреждения 180
const int Condition_KvintBow = 90; //Требует ловкости 90
const int Value_KvintBow = 1800; //стоит 1800

КОНЕЦ! Но тутор далеко не полный. Просто решил вынести основное на ваш суд. Позже(может дня через два-три) к тутору будут добавлены пояснения о создании каждого типа предметов.

Так, теперь по-порядку. Создание определённого предмета.

mainflag = ITEM_KAT_MAGIC;
flags = ITEM_AMULET;

visual_skin = 0;
material = MAT_METAL;

wear = WEAR_EFFECT; //Не помню зачем. пусть бедет.
on_equip = Equip_Prot_Fire;
on_unequip = UnEquip_Prot_Fire;

TEXT[2] = «Защита от огня»;
COUNT[2] = 50;
TEXT[5] = NAME_Value;
COUNT[5] = 10000;

INV_ZBIAS = INVCAM_ENTF_AMULETTE_STANDARD; //Чего не знаю, того не знаю. Кажется месторасположение в ивентаре. Но не точно. В любом случае эту строку не изменяйте.

FUNC VOID Equip_Prot_Fire()
<
self.protection [PROT_FIRE] += 50;
>;

Это амулет для защиты от огня на 50 едениц.
Как привязать к предмету повышение хар-ки вы уже знаете.

Для примера возьмём мясо какого-нибудь особенного мясного жука, при съедании которго прибавляется +1 к силе.

mainflag = ITEM_KAT_FOOD;
flags = ITEM_MULTI;

visual = «ItAt_Meatbugflesh.3DS»;
material = MAT_LEATHER;
scemeName = «FOODHUGE»;
on_state[0] = Use_Meatbugflesh_Str; //Процедура использования вещи

description = name;
TEXT[1] = NAME_Bonus_HP; COUNT[1] = 10;
TEXT[2] = NAME_Bonus_Str; COUNT[2] = 1;
TEXT[5] = NAME_Value; COUNT[5] = value;
>;

Создаём модифицированные доспехи из пластин ползунов, по сюжету, наприм. окраплёные кровью Инноса
Просто добавляем защиты побольше к старым и привязываем увеличение плюс манны на 100.

INSTANCE ITAR_DJG_Crawler_Innos (C_Item)
<
name = «Ползунки Инноса»;

mainflag = ITEM_KAT_ARMOR;
flags = 0;

visual = «ItAr_Djg_Crawler.3ds»;
visual_change = «Armor_Djg_Crawler.asc»;
visual_skin = 0;
material = MAT_LEATHER;

on_equip = Equip_ITAR_DJG_Crawler_Innos;
on_unequip = UnEquip_ITAR_DJG_Crawler_Innos;

TEXT[1] = NAME_Prot_Edge;
COUNT[1] = protection [PROT_EDGE];

TEXT[2] = NAME_Prot_Point;
COUNT[2] = protection [PROT_POINT];

TEXT[3] = NAME_Prot_Fire;
COUNT[3] = protection [PROT_FIRE];

TEXT[4] = NAME_Bonus_Mana;
COUNT[4] = 100;

TEXT[5] = NAME_Value;
COUNT[5] = value;
>;
FUNC VOID Equip_ITAR_DJG_Crawler_Innos()
<
if Npc_IsPlayer (self) //Условие если одеты на ГГ
<
MCArmor_Equipped = TRUE;

if (MC_Equipped == TRUE)
<
self.protection[PROT_EDGE] += 170;
self.protection[PROT_BLUNT] += 170;
self.protection[PROT_POINT] += 170;
self.protection[PROT_FIRE] += 115;
Npc_ChangeAttribute (self, ATR_MANA, 25);
self.aivar[REAL_MANA] = self.aivar[REAL_MANA], +25;

>;
>;
>;
FUNC VOID UnEquip_ITAR_DJG_Crawler_Innos()
<
if Npc_IsPlayer (self)
<
MCArmor_Equipped = FALSE;

Случай такой же, как и с мясом жука-убийцы

Сейчас сделаем обычный ключик. Какой сундук или какую дверь открывает этот ключ прописывается не в скрипте ключа, а в свойствах воба(сундука или двери).

mainflag = ITEM_KAT_NONE;
flags = 0;

visual = «ItKe_Key_01.3ds»;
material = MAT_METAL;

TEXT[2] = «Этот ключь открывает замок»;
TEXT[3] = «за нарисованным чайником»;

Делаем супер-меч с дамагом 300 и прибавке к владению двурушником +50%

INSTANCE ItMw_Zorn_of_god (C_Item)
<
name = «Месть богов»;

mainflag = ITEM_KAT_NF;
flags = ITEM_SWD;
material = MAT_METAL;

damageTotal = 300; //Общий урон
damagetype = DAM_EDGE; //Тип повреждений. В данном случае лезвием.

on_equip = Equip_Innos_of_GOD;
on_unequip = UnEquip_Innos_of_GOD;

description = name;
TEXT[1] = NAME_Damage; COUNT[1] = damageTotal;
TEXT[2] = NAME_Str_needed; COUNT[2] = cond_value[2];
TEXT[3] = «К двуручному умению»; COUNT[3] = 50;
TEXT[4] = NAME_TwoHanded;
TEXT[5] = NAME_Value; COUNT[5] = value;
>;

FUNC VOID Equip_Innos_of_GOD()
<
B_AddFightSkill (self, NPC_TALENT_1H, 50);
>;

7.Оружие дальнего боя.

см. пример «Лук Квинта».

8.Напитки.
«Усложняем номер» (С)
Делаем настойку из крови дракона, дающую +25 к силе и ловкости, но только ОНД.

mainflag = ITEM_KAT_POTIONS;
flags = ITEM_MULTI;

visual = «ItMi_Flask.3ds»;
material = MAT_GLAS;
on_state[0] = UseItPo_DragonsBlood;
scemeName = «POTIONFAST»;

wear = WEAR_EFFECT;
effect = «SPELLFX_ITEMGLIMMER»;

TEXT[1] = «. «; //В игре действие будет неизвестно

TEXT[5] = NAME_Value;
COUNT[5] = value;

Абсолют новые руны сделать скриптово Вы не можете, т.к. для этого нужны новая визуализация и эффекты.
Можно только модифицировать кол-во манны, которое требуется для заклинания и его повреждение.

/////////////////////////////////////////////////////////////////////////////////////////////
INSTANCE ItWr_123 (C_Item)
<
name = «Книга»;
mainflag = ITEM_KAT_DOCS;
flags = 0;
value = 500;
visual = «ItWr_Book_02_05.3ds»;
material = MAT_LEATHER;
scemeName = «MAP»;
on_state[0] = Use_Book;
description = name;
TEXT[2] = «Это книга для тутора по скриптам»;
TEXT[3] = «В летописях строителей.»;
TEXT[5] = NAME_Value;
COUNT[5] = value;
>;

FUNC VOID Use_Book()//С этой функции и далее прописывается непосредственно текст книги.
<

var int nDocID;//Переменная

//1.Seite //Для первой страницы

Doc_SetMargins ( nDocID, 0, 275, 20, 30, 20, 1 );//Ограничение текста. Своеоьразная рамка, куда помещён текст. Для опытных.
Doc_SetFont ( nDocID, 0, FONT_BookHeadline );//Шрифт. В данном случае крупный жирный(для заголовков)
Doc_PrintLine ( nDocID, 0, «Каляка-баляка»); //Сам текст
Doc_SetFont ( nDocID, 0, FONT_Book); //Обычный шрифт
Doc_PrintLine ( nDocID, 0, «»); //Пропуск строки
Doc_PrintLines ( nDocID, 0, «Каляка баляка»); //Текст
Doc_PrintLine ( nDocID, 0, «»); //Пропуск строки
Doc_PrintLines ( nDocID, 0, «Каляка баляка»); //И так далее и т.п. Можете пропускать строки, не пропускать. и писать что угодно.

//2.Seite //Тоже самое, только для второй страницы.

Вот и весь тутор. Все функции и предметы проверены в игре лично ВенДиго (С).
Автор: ВенДиго(С). При помощи и поддержке Francisc’a

Источник

Компьютерный онлайн портал