Вернуться   Форум команды Magic Team > Создание модов > Модостроение к Gothic

Важная информация

Модостроение к Gothic Как делаются моды к Готике...

Ответ
 
Опции темы Опции просмотра
Старый 14.10.2008, 21:52   #171
Администратор
Мастер
 
Аватар для redleha
 
Регистрация: 28.02.2008
Адрес: г.Новокуйбышевск Самарская обл.
Сообщений: 1,385
Сказал(а) спасибо: 515
Поблагодарили 419 раз(а) в 183 сообщениях
Отправить сообщение для redleha с помощью ICQ Отправить сообщение для redleha с помощью Skype™
По умолчанию Скриптинг

Цитата:
А на каком языке скрипты пишуться?
Язык, вроде, называется Daedalus. Стиль, да и внешний вид очень похожи на С++ , только очень упрощённый.
По идее, тутора Вама вполне может хватить для новичков, которые имеют склонность хотя бы к простейшей скриптологии Готы (по сравнению с ассемблером или чистым С эти скрипты - простейшие).
Поверь мне MaGoth хорошо знает скрипты, иначе бы он не был админом-скриптологом и не возглавлял с Marazmus'ом WOG.
__________________
redleha вне форума   Ответить с цитированием
Старый 15.10.2008, 00:23   #172
Готоман
Посвященный
 
Аватар для ghost
 
Регистрация: 31.07.2007
Сообщений: 414
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
По умолчанию Скриптинг

Цитата:
Язык, вроде, называется Daedalus. Стиль, да и внешний вид очень похожи на С++ , только очень упрощённый.
По идее, тутора Вама вполне может хватить для новичков, которые имеют склонность хотя бы к простейшей скриптологии Готы (по сравнению с ассемблером или чистым С эти скрипты - простейшие).
Поверь мне MaGoth хорошо знает скрипты, иначе бы он не был админом-скриптологом и не возглавлял с Marazmus'ом WOG.
Абсолютно согласен... Но вспомни С - что в начале прописывается (?).... - именно это и прошу MaGoth или др., если не составит труда, перечислить по возможности/знанию... Очень сомневаюсь что смогут, хотя надеюсь, что ошибаюсь...

P.S. К сожалению язык упрощен, общие библиотеки (*.h и т.д.) отсутствуют как, по всей видимости, и проверка при компиляции, а туторы достаточно скудны необходимой информацией (скорее для общего ознакомления) - остается идти методом проб и ошибок от версии к версии (в GM это прослеживается...)...

P.S.S. Ассемблер и "чистый" С (С1) языки разных уровней...
__________________
Трусость и невежество ведут к змеиному коварству...
ghost вне форума   Ответить с цитированием
Старый 15.10.2008, 11:07   #173
Готоман
Магистр форума
 
Аватар для MaGoth
 
Регистрация: 30.08.2006
Адрес: Самара
Сообщений: 2,024
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Отправить сообщение для MaGoth с помощью ICQ
По умолчанию Скриптинг

ghost
Цитата:
MaGoth: Не станеш париться или скорее просто не знаеш? Список переменных позволил бы даже начинающим скриптологам оценить свои возможности и/или найти новые решения...
Если тебе нужно описание, то скачай GMDK2, установи его там будет описание небольшое правда и только на немецком.
Что до твоего вопроса: то я не совсем понял что именно тебе нужно, приведи пример.

По Daedalus: сам язык примитывный до ужаса, все что нужно конкретно описанов Туторе вама, и программе ГотикСоурсер.


Цитата:
P.S. Х.з., х.з. - лежит на поверхности - читайте внимательнее прогу, ведь сами создаете уроки/туторы, зачастую бездумно...
Если бы они были бездумными, то не было бы русских модов как таковых...
MaGoth вне форума   Ответить с цитированием
Старый 15.10.2008, 21:53   #174
Готоман
Посвященный
 
Аватар для ghost
 
Регистрация: 31.07.2007
Сообщений: 414
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
По умолчанию Скриптинг

Цитата:
Что до твоего вопроса: то я не совсем понял что именно тебе нужно, приведи пример.
Как пример: можно ли используя скрипты присвоить дальнобойному/стрелковому оружию возможности оружия ближнего боя зависимо от расстояния до текущего противника... Более просто: обстреливаем Орка на расстоянии, но он подбегает в ближний бой - как к примеру арбалету присвоить возможность удара?...Т.е. обусловить характеристики предмета зависимо от вторичного параметра (не обязательно согласно приведенному примеру/запросу, возможно наоборот - при ударе, к примеру, "магическим" мечом повреждение наноситься на расстоянии (как у Равена...)...

P.S. При написании, к примеру, на С переменные и присваемые им значения должны быть описаны в начале (если придерживаться корректного стиля)... Конечно не касаюсь написания новых квестов - это чисто лоховское (без обид...)... Кстати, как в скрипте определяется текущая глава в Г2НВ и присваевается последующая зависимось подскриптов/подпрограм?

P.S.S. Обобщая: насколько понимаю, при написании скриптов в Г2НВ используються определенные переменные, зависимые от возможностей "движка", со своими изменяемыми, в определенных пределах, значениями - но как их "звать" и что им присваивать?... Если знаете - полный список выложите...

Цитата:
Если бы они были бездумными, то не было бы русских модов как таковых...
И в результате что нового, кроме интерестных квестов и криво созданных NPC-обжектов?...
__________________
Трусость и невежество ведут к змеиному коварству...
ghost вне форума   Ответить с цитированием
Старый 16.10.2008, 00:41   #175
Готоман
Магистр форума
 
Аватар для MaGoth
 
Регистрация: 30.08.2006
Адрес: Самара
Сообщений: 2,024
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Отправить сообщение для MaGoth с помощью ICQ
По умолчанию Скриптинг

ghost
Цитата:
Как пример: можно ли используя скрипты присвоить дальнобойному/стрелковому оружию возможности оружия ближнего боя зависимо от расстояния до текущего противника... Более просто: обстреливаем Орка на расстоянии, но он подбегает в ближний бой - как к примеру арбалету присвоить возможность удара?...Т.е. обусловить характеристики предмета зависимо от вторичного параметра (не обязательно согласно приведенному примеру/запросу, возможно наоборот - при ударе, к примеру, "магическим" мечом повреждение наноситься на расстоянии (как у Равена...)...
Ни как, если не ошибаюсь тут придется ехе юзать вроде, хотя могу ошибаться нужно реализацию анимации для этого класса смотреть...
Если будет время, позже отвечу точно.

Цитата:
P.S. При написании, к примеру, на С переменные и присваемые им значения должны быть описаны в начале (если придерживаться корректного стиля)...
Забудь о С, здесь его нет...
Все переменные прописаны в СториГлобалс, это которые Глобальные... Все остальные в в соответствующих скриптах, откуда они задействуются.(и не обязательно что это скрипты диалогов и т.д...)

Цитата:
Кстати, как в скрипте определяется текущая глава в Г2НВ и присваевается последующая зависимось подскриптов/подпрограм?
Ну так как это:
Цитата:
чисто лоховское (без обид...)
Пусть будет твоим ДЗ...

Цитата:
P.S.S. Обобщая: насколько понимаю, при написании скриптов в Г2НВ используються определенные переменные, зависимые от возможностей "движка", со своими изменяемыми, в определенных пределах, значениями - но как их "звать" и что им присваивать?... Если знаете - полный список выложите...
Читай тутор Вама, там описаны все типы переменных и присваемых ими значений и т.д..
Если же речь идет конкретно о переменных описаных в коде, то выше я уже писал.(файл СториГлобал)

Цитата:
И в результате что нового, кроме интерестных квестов и криво созданных NPC-обжектов?...
Скажи за это спасибо Пираньям...
MaGoth вне форума   Ответить с цитированием
Старый 20.10.2008, 20:49   #176
Администратор
Мастер
 
Аватар для redleha
 
Регистрация: 28.02.2008
Адрес: г.Новокуйбышевск Самарская обл.
Сообщений: 1,385
Сказал(а) спасибо: 515
Поблагодарили 419 раз(а) в 183 сообщениях
Отправить сообщение для redleha с помощью ICQ Отправить сообщение для redleha с помощью Skype™
По умолчанию Скриптинг

У меня вот такой вопрос возник.
Написал я значит несколько квестов, заскриптил их. Потом декомпилировал скрипты Глобала 1.14, решив аккуратно их туда вставить. Залез в самый важный файлик StoryGlobals, а там увидел что-то совсем не похожее на StoryGlobal от Акеллы или оригинала Г2А. А также в папке _Intern отсутствует файл Constants.d . Не подскажите с чем это связано, и следовательно второй вопрос - куда прописывать глобальные переменные тогда? :unsure:
__________________
redleha вне форума   Ответить с цитированием
Старый 20.10.2008, 23:10   #177
Готоман
Пользователь
 
Аватар для Marvin
 
Регистрация: 13.02.2008
Адрес: Ukraine
Сообщений: 96
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Отправить сообщение для Marvin с помощью ICQ
По умолчанию Скриптинг

redleha
Такая же ситуация была у меня, когда я разбирался в моде. MaGoth писал что это недоработки GothicSourcera. Вот вобщем здесь //magic-team.net.ru/forum/index.php?showtopic=287 пост №16.
__________________
Никогда не делай сегодня то, что можно сделать завтра. А то завтра будет нечего делать. © ???
Marvin вне форума   Ответить с цитированием
Старый 21.10.2008, 10:18   #178
Администратор
Мастер
 
Аватар для redleha
 
Регистрация: 28.02.2008
Адрес: г.Новокуйбышевск Самарская обл.
Сообщений: 1,385
Сказал(а) спасибо: 515
Поблагодарили 419 раз(а) в 183 сообщениях
Отправить сообщение для redleha с помощью ICQ Отправить сообщение для redleha с помощью Skype™
По умолчанию Скриптинг

Marvin, спасибо!
Но всё-таки, может кто поможет и прикрепит эти два файлика в виде спойлера. Я уж сам как-нибудь вставлю куда надо! :P
Заранее премного благодарен!
__________________
redleha вне форума   Ответить с цитированием
Старый 10.11.2008, 22:22   #179
Администратор
Мастер
 
Аватар для redleha
 
Регистрация: 28.02.2008
Адрес: г.Новокуйбышевск Самарская обл.
Сообщений: 1,385
Сказал(а) спасибо: 515
Поблагодарили 419 раз(а) в 183 сообщениях
Отправить сообщение для redleha с помощью ICQ Отправить сообщение для redleha с помощью Skype™
По умолчанию Скриптинг

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

Всё рассмотренное ниже проводилось на акелловских скриптах, скачанных с WoG.ru
Изменения проводились с помощью программы GothicSourcer v3.14
Мой Мини-Тутор будет отредактирован, в случае необходимости и удобочитаемости.
Скрипты рабочие!

Заметил одну неприятную особенность в отображении скриптов Готики: сочетание && заменяется на &;&;
Это следует учесть


Давайте рассмотрим пример «как добавить новый алхимический рецепт».
Предположим, вам захотелось, чтобы какой-нибудь алхимик помог вам изучить Зелье, которое вы придумали сами, и при взаимодействии с алхимическим столом появлялся соответствующий пункт. Навскидку – я придумал зелья, которые представляют собой вытяжки-экстракты из различных растений. Например, рецепт:
«Вытяжка из лечебных растений» - представляет собой что? Берём 10 лечебных растений, выжимаем их в бутылочку и получаем зелье, которое представляет собой эликсир, увеличивающий наши ХитПойнты на 100 очков, то бишь жизнь.
1) Начинаем с конца – создаём сам эликсир. Для этого открываем файл IT_Potions.d в папке Items, и в самый конец файла прописываем следующее:


[!-- gsrc --][span class=\"CT\"][span class=\"CTR\"]const[/span] [span class=\"CTR\"]int[/span] HP_SpecMi_Health_01 [span class=\"CTSp\"]=[/span] [span class=\"CTN\"]1[/span][span class=\"CTN\"]0[/span][span class=\"CTN\"]0[/span][span class=\"CTSp\"];[/span] [span class=\"CTCom\"]//объявляем константу бонуса – 100 HP[/span]
[span class=\"CTR\"]const[/span] [span class=\"CTR\"]int[/span] Value_HpSpecMi_Health_01 [span class=\"CTSp\"]=[/span] [span class=\"CTN\"]1[/span][span class=\"CTN\"]0[/span][span class=\"CTN\"]0[/span][span class=\"CTSp\"];[/span] [span class=\"CTCom\"]//объявляем константу стоимости напитка.[/span]

[span class=\"CTR\"]instance[/span] ItPo_SpecMi_Health_01[span class=\"CTSp\"]([/span]C_Item[span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
name [span class=\"CTSp\"]=[/span] NAME_Trank[span class=\"CTSp\"];[/span]
mainflag [span class=\"CTSp\"]=[/span] ITEM_KAT_POTIONS[span class=\"CTSp\"];[/span]
flags [span class=\"CTSp\"]=[/span] ITEM_MULTI[span class=\"CTSp\"];[/span]
value [span class=\"CTSp\"]=[/span] Value_HpSpecMi_Health_01[span class=\"CTSp\"];[/span] [span class=\"CTCom\"]//константа - стоимость напитка[/span]
visual [span class=\"CTSp\"]=[/span] [span class=\"CTQ\"]\"ItPo_Health_01.3ds\"[/span][span class=\"CTSp\"];[/span] [span class=\"CTCom\"]//будет выглядеть как обычная лечебная эссенция.[/span]
material [span class=\"CTSp\"]=[/span] MAT_GLAS[span class=\"CTSp\"];[/span]
on_state[span class=\"CTSp\"][[/span][span class=\"CTN\"]0[/span][span class=\"CTSp\"]][/span] [span class=\"CTSp\"]=[/span] UseItPo_SpecMi_Health_01[span class=\"CTSp\"];[/span] [span class=\"CTCom\"]//здесь имя функции, которая описана ниже, и описывающая бонусы от использования напитка.[/span]
scemeName [span class=\"CTSp\"]=[/span] [span class=\"CTQ\"]\"POTIONFAST\"[/span][span class=\"CTSp\"];[/span]
wear [span class=\"CTSp\"]=[/span] WEAR_EFFECT[span class=\"CTSp\"];[/span]
effect [span class=\"CTSp\"]=[/span] [span class=\"CTQ\"]\"SPELLFX_HEALTHPOTION\"[/span][span class=\"CTSp\"];[/span]
description [span class=\"CTSp\"]=[/span] [span class=\"CTQ\"]\"Выжимка из лечебных растений\"[/span][span class=\"CTSp\"];[/span] [span class=\"CTCom\"]//название вашего эликсира[/span]
text[span class=\"CTSp\"][[/span][span class=\"CTN\"]1[/span][span class=\"CTSp\"]][/span] [span class=\"CTSp\"]=[/span] NAME_Bonus_HP[span class=\"CTSp\"];[/span]
count[span class=\"CTSp\"][[/span][span class=\"CTN\"]1[/span][span class=\"CTSp\"]][/span] [span class=\"CTSp\"]=[/span] HP_SpecMi_Health_01[span class=\"CTSp\"];[/span] [span class=\"CTCom\"]//константа, объявленная выше (значение бонуса от использования напитка) с присвоенным значением, равным 100 HP.[/span]
text[span class=\"CTSp\"][[/span][span class=\"CTN\"]5[/span][span class=\"CTSp\"]][/span] [span class=\"CTSp\"]=[/span] NAME_Value[span class=\"CTSp\"];[/span]
count[span class=\"CTSp\"][[/span][span class=\"CTN\"]5[/span][span class=\"CTSp\"]][/span] [span class=\"CTSp\"]=[/span] Value_HpSpecMi_Health_01[span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
[span class=\"CTR\"]func[/span] [span class=\"CTR\"]void[/span] UseItPo_SpecMi_Health_01[span class=\"CTSp\"]([/span][span class=\"CTSp\"])[/span] [span class=\"CTCom\"]//функция, описывающая бонус.[/span]
[span class=\"CTSp\"]{[/span]
Npc_ChangeAttribute[span class=\"CTSp\"]([/span]self[span class=\"CTSp\"],[/span]ATR_HITPOINTS[span class=\"CTSp\"],[/span]HP_SpecMi_Health_01[span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span][/span][!-- /gsrc --]
//В данном случае при помощи функции Npc_ChangeAttribute мы изменяем себе текущее значение //ХитПойнтов(ATR_HITPOINTS) на 100 пунктов(HP_SpecMi_Health_01=100).
//
Аналогично вставляем второй напиток:
[!-- gsrc --][span class=\"CT\"][span class=\"CTR\"]const[/span] [span class=\"CTR\"]int[/span] HP_SpecMi_Health_02 [span class=\"CTSp\"]=[/span] [span class=\"CTN\"]2[/span][span class=\"CTN\"]0[/span][span class=\"CTN\"]0[/span][span class=\"CTSp\"];[/span] [span class=\"CTCom\"]//объявляем константу бонуса – 200 HP[/span]
[span class=\"CTR\"]const[/span] [span class=\"CTR\"]int[/span] Value_HpSpecMi_Health_02 [span class=\"CTSp\"]=[/span] [span class=\"CTN\"]2[/span][span class=\"CTN\"]0[/span][span class=\"CTN\"]0[/span][span class=\"CTSp\"];[/span] [span class=\"CTCom\"]//объявляем константу стоимости напитка.[/span]

[span class=\"CTR\"]instance[/span] ItPo_SpecMi_Health_02[span class=\"CTSp\"]([/span]C_Item[span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
name [span class=\"CTSp\"]=[/span] NAME_Trank[span class=\"CTSp\"];[/span]
mainflag [span class=\"CTSp\"]=[/span] ITEM_KAT_POTIONS[span class=\"CTSp\"];[/span]
flags [span class=\"CTSp\"]=[/span] ITEM_MULTI[span class=\"CTSp\"];[/span]
value [span class=\"CTSp\"]=[/span] Value_HpSpecMi_Health_02[span class=\"CTSp\"];[/span]
visual [span class=\"CTSp\"]=[/span] [span class=\"CTQ\"]\"ItPo_Health_02.3ds\"[/span][span class=\"CTSp\"];[/span]
material [span class=\"CTSp\"]=[/span] MAT_GLAS[span class=\"CTSp\"];[/span]
on_state[span class=\"CTSp\"][[/span][span class=\"CTN\"]0[/span][span class=\"CTSp\"]][/span] [span class=\"CTSp\"]=[/span] UseItPo_SpecMi_Health_02[span class=\"CTSp\"];[/span]
scemeName [span class=\"CTSp\"]=[/span] [span class=\"CTQ\"]\"POTIONFAST\"[/span][span class=\"CTSp\"];[/span]
wear [span class=\"CTSp\"]=[/span] WEAR_EFFECT[span class=\"CTSp\"];[/span]
effect [span class=\"CTSp\"]=[/span] [span class=\"CTQ\"]\"SPELLFX_HEALTHPOTION\"[/span][span class=\"CTSp\"];[/span]
description [span class=\"CTSp\"]=[/span] [span class=\"CTQ\"]\"Выжимка из лечебных трав\"[/span][span class=\"CTSp\"];[/span]
text[span class=\"CTSp\"][[/span][span class=\"CTN\"]1[/span][span class=\"CTSp\"]][/span] [span class=\"CTSp\"]=[/span] NAME_Bonus_HP[span class=\"CTSp\"];[/span]
count[span class=\"CTSp\"][[/span][span class=\"CTN\"]1[/span][span class=\"CTSp\"]][/span] [span class=\"CTSp\"]=[/span] HP_SpecMi_Health_02[span class=\"CTSp\"];[/span]
text[span class=\"CTSp\"][[/span][span class=\"CTN\"]5[/span][span class=\"CTSp\"]][/span] [span class=\"CTSp\"]=[/span] NAME_Value[span class=\"CTSp\"];[/span]
count[span class=\"CTSp\"][[/span][span class=\"CTN\"]5[/span][span class=\"CTSp\"]][/span] [span class=\"CTSp\"]=[/span] Value_HpSpecMi_Health_02[span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
[span class=\"CTR\"]func[/span] [span class=\"CTR\"]void[/span] UseItPo_SpecMi_Health_02[span class=\"CTSp\"]([/span][span class=\"CTSp\"])[/span] [span class=\"CTCom\"]//функция, описывающая бонус.[/span]
[span class=\"CTSp\"]{[/span]
Npc_ChangeAttribute[span class=\"CTSp\"]([/span]self[span class=\"CTSp\"],[/span]ATR_HITPOINTS[span class=\"CTSp\"],[/span]HP_SpecMi_Health_02[span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
[/span][!-- /gsrc --]
Вы можете изменять, что хотите. Например можно написать следующую функцию:
[!-- gsrc --][span class=\"CT\"][span class=\"CTR\"]func[/span] [span class=\"CTR\"]void[/span] UseItPo_SpecMi_Health_02[span class=\"CTSp\"]([/span][span class=\"CTSp\"])[/span] [span class=\"CTCom\"]//функция, описывающая бонус.[/span]
[span class=\"CTSp\"]{[/span]
Npc_ChangeAttribute[span class=\"CTSp\"]([/span]self[span class=\"CTSp\"],[/span]ATR_HITPOINTS[span class=\"CTSp\"],[/span]HP_SpecMi_Health_02[span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span] [span class=\"CTCom\"]//Увеличиваем текущие ХП на 100 пунктов.[/span]
if[span class=\"CTSp\"]([/span]Npc_IsPlayer[span class=\"CTSp\"]([/span]self[span class=\"CTSp\"])[/span][span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
SpecMiUsing_Bonus [span class=\"CTSp\"]=[/span] SpecMiUsing_Bonus [span class=\"CTSp\"]+[/span] [span class=\"CTN\"]1[/span][span class=\"CTSp\"];[/span]
if[span class=\"CTSp\"]([/span]SpecMiUsing_Bonus [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] [span class=\"CTN\"]1[/span][span class=\"CTN\"]0[/span][span class=\"CTSp\"])[/span] [span class=\"CTCom\"]//если мы использовали напиток 10 раз, то возникает следующее:[/span]
[span class=\"CTSp\"]{[/span]
B_RaiseAttribute[span class=\"CTSp\"]([/span]self[span class=\"CTSp\"],[/span]ATR_HITPOINTS_MAX[span class=\"CTSp\"],[/span]SpecMi_Bonus[span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span] [span class=\"CTCom\"]//увеличиваем максимум силы на величину константы SpecMi_Bonus[/span]
Npc_ChangeAttribute[span class=\"CTSp\"]([/span]self[span class=\"CTSp\"],[/span]ATR_HITPOINTS[span class=\"CTSp\"],[/span][span class=\"CTN\"]5[/span][span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span] [span class=\"CTCom\"]// Увеличиваем текущие ХП на 5 пунктов.[/span]
Snd_Play[span class=\"CTSp\"]([/span][span class=\"CTQ\"]\"LevelUp\"[/span][span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span]
SpecMiUsing_Bonus [span class=\"CTSp\"]=[/span] [span class=\"CTN\"]0[/span][span class=\"CTSp\"];[/span]
SpecMiUsing_SuperBonus [span class=\"CTSp\"]=[/span] SpecMiUsing_SuperBonus [span class=\"CTSp\"]+[/span] [span class=\"CTN\"]1[/span][span class=\"CTSp\"];[/span]
If[span class=\"CTSp\"]([/span]SpecMiUsing_SuperBonus [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] [span class=\"CTN\"]1[/span][span class=\"CTN\"]0[/span][span class=\"CTSp\"])[/span] [span class=\"CTCom\"]// если мы использовали напиток 100 раз, то возникает:[/span]
[span class=\"CTSp\"]{[/span]
B_RaiseAttribute[span class=\"CTSp\"]([/span]self[span class=\"CTSp\"],[/span]ATR_STRENGTH[span class=\"CTSp\"],[/span] SpecMi_Bonus[span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span] [span class=\"CTCom\"]//увеличиваем максимум силы на[/span]
[span class=\"CTCom\"]// величину константы SpecMi_Bonus[/span]
B_AddFightSkill[span class=\"CTSp\"]([/span]self[span class=\"CTSp\"],[/span]NPC_TALENT_1H[span class=\"CTSp\"],[/span]SpecMi_SuperBonus[span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span] [span class=\"CTCom\"]//увеличиваем атрибут владения[/span]
[span class=\"CTCom\"]//одноручным мечём на величину константы SpecMi_SuperBonus[/span]
Snd_Play[span class=\"CTSp\"]([/span][span class=\"CTQ\"]\"LevelUp\"[/span][span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span]
SpecMiUsing_SuperBonus [span class=\"CTSp\"]=[/span] [span class=\"CTN\"]0[/span][span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span][/span][!-- /gsrc --]
В этом случае перед строкой instance ItPo_SpecMi_Health_02(C_Item) добавляем строчки:
[!-- gsrc --][span class=\"CT\"]
Const [span class=\"CTR\"]int[/span] SpecMi_Bonus [span class=\"CTSp\"]=[/span] [span class=\"CTN\"]5[/span][span class=\"CTSp\"];[/span]
Const [span class=\"CTR\"]int[/span] SpecMi_SuperBonus [span class=\"CTSp\"]=[/span] [span class=\"CTN\"]5[/span][span class=\"CTSp\"];[/span]
[/span][!-- /gsrc --]
А в файле StoryGlobals.d добавляем две строки:

[!-- gsrc --][span class=\"CT\"]Var [span class=\"CTR\"]int[/span] SpecMiUsing_Bonus[span class=\"CTSp\"];[/span]
Var [span class=\"CTR\"]int[/span] SpecMiUsing_SuperBonus[span class=\"CTSp\"];[/span][/span][!-- /gsrc --]

2) Следующий шаг – нужно внести изменения в диалог взаимодействия ГГ с алхимическим столом. Чтобы при выученном навыке «Варить вытяжку» появлялась соответствующая строчка.
Сразу усложним немного задачу и внесем не строчку в диалог, а целый раздел «Изготовить экстракты растений» с внутренними строками: «Вытяжка из лечебных растений» и «Вытяжка из лечебных трав». Всё это аналогично тому, как раздел «Лечебные зелья» содержит в себе строки «Лечебная эссенция», «Лечебный экстракт».
Для этого открываем файл …\Story\Dialog_Mobsis\PotionAlchemy.d и в конец файла добавляем следующее:

Условно разделим вставляемые строки на три логические части(помечены как А, А1 и А2):
Часть А отвечает за раздел в диалоге MOBSI – а именно «Изготовить экстракты растений»
Части А1 и А2 – это как раз те зелья, которые будут в разделе «Изготовить экстракты растений», а именно «Вытяжка из лечебных растений» и «Вытяжка из лечебных трав»


А
[!-- gsrc --][span class=\"CT\"]
[span class=\"CTR\"]var[/span] [span class=\"CTR\"]int[/span] SpecialMiskStart[span class=\"CTSp\"];[/span]
[span class=\"CTR\"]instance[/span] PC_SpecialMisk_Start[span class=\"CTSp\"]([/span]C_Info[span class=\"CTSp\"])[/span] [span class=\"CTCom\"]//функция вставляющая соответствующий раздел «Изготовить экстракты растений»[/span]
[span class=\"CTSp\"]{[/span]
npc [span class=\"CTSp\"]=[/span] PC_Hero[span class=\"CTSp\"];[/span]
nr [span class=\"CTSp\"]=[/span] [span class=\"CTN\"]1[/span][span class=\"CTN\"]2[/span][span class=\"CTSp\"];[/span]
condition [span class=\"CTSp\"]=[/span] PC_SpecialMisk_Start_Condition[span class=\"CTSp\"];[/span]
information [span class=\"CTSp\"]=[/span] PC_SpecialMisk_Start_Info[span class=\"CTSp\"];[/span]
permanent [span class=\"CTSp\"]=[/span] TRUE[span class=\"CTSp\"];[/span]
description [span class=\"CTSp\"]=[/span] [span class=\"CTQ\"]\"Изготовить экстракты растений\"[/span][span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
[span class=\"CTR\"]func[/span] [span class=\"CTR\"]int[/span] PC_SpecialMisk_Start_Condition[span class=\"CTSp\"]([/span][span class=\"CTSp\"])[/span] [span class=\"CTCom\"]//условия, при которых будет вставлен раздел[/span]
[span class=\"CTSp\"]{[/span]
if[span class=\"CTSp\"]([/span][span class=\"CTSp\"]([/span]PLAYER_MOBSI_PRODUCTION [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] MOBSI_PotionAlchemy[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]TabakStart [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] FALSE[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]BoozeStart [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] FALSE[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]HealthStart [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] FALSE[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]ManaStart [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] FALSE[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]SpecialStart [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] FALSE[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]SpecialMiskStart [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] FALSE[span class=\"CTSp\"])[/span][span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
return TRUE[span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
[span class=\"CTR\"]func[/span] [span class=\"CTR\"]void[/span] PC_SpecialMisk_Start_Info[span class=\"CTSp\"]([/span][span class=\"CTSp\"])[/span] [span class=\"CTCom\"]//итоговое значение функции – то, что мы перешли в этот раздел к напиткам.[/span]
[span class=\"CTSp\"]{[/span]
SpecialMiskStart [span class=\"CTSp\"]=[/span] TRUE[span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
[span class=\"CTR\"]instance[/span] PC_SpecialMisk_Stop[span class=\"CTSp\"]([/span]C_Info[span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
npc [span class=\"CTSp\"]=[/span] PC_Hero[span class=\"CTSp\"];[/span]
nr [span class=\"CTSp\"]=[/span] [span class=\"CTN\"]9[/span][span class=\"CTN\"]9[/span][span class=\"CTSp\"];[/span]
condition [span class=\"CTSp\"]=[/span] PC_SpecialMisk_Stop_Condition[span class=\"CTSp\"];[/span]
information [span class=\"CTSp\"]=[/span] PC_SpecialMisk_Stop_Info[span class=\"CTSp\"];[/span]
permanent [span class=\"CTSp\"]=[/span] TRUE[span class=\"CTSp\"];[/span]
description [span class=\"CTSp\"]=[/span] Dialog_Back[span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
[span class=\"CTR\"]func[/span] [span class=\"CTR\"]int[/span] PC_SpecialMisk_Stop_Condition[span class=\"CTSp\"]([/span][span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
if[span class=\"CTSp\"]([/span][span class=\"CTSp\"]([/span]PLAYER_MOBSI_PRODUCTION [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] MOBSI_PotionAlchemy[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]SpecialMiskStart [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] TRUE[span class=\"CTSp\"])[/span][span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
return TRUE[span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
[span class=\"CTR\"]func[/span] [span class=\"CTR\"]void[/span] PC_SpecialMisk_Stop_Info[span class=\"CTSp\"]([/span][span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
SpecialMiskStart [span class=\"CTSp\"]=[/span] FALSE[span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
[/span][!-- /gsrc --]
А1

[!-- gsrc --][span class=\"CT\"][span class=\"CTR\"]instance[/span] PC_ItPo_SpecMi_Health_01[span class=\"CTSp\"]([/span]C_Info[span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
nr [span class=\"CTSp\"]=[/span] [span class=\"CTN\"]1[/span][span class=\"CTN\"]0[/span][span class=\"CTSp\"];[/span]
npc [span class=\"CTSp\"]=[/span] PC_Hero[span class=\"CTSp\"];[/span]
condition [span class=\"CTSp\"]=[/span] PC_ItPo_SpecMi_Health_01_Condition[span class=\"CTSp\"];[/span]
information [span class=\"CTSp\"]=[/span] PC_ItPo_SpecMi_Health_01_Info[span class=\"CTSp\"];[/span]
permanent [span class=\"CTSp\"]=[/span] TRUE[span class=\"CTSp\"];[/span]
description [span class=\"CTSp\"]=[/span] “Вытяжка из лечебных трав”[span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
[span class=\"CTR\"]func[/span] [span class=\"CTR\"]int[/span] PC_ItPo_SpecMi_Health_01_Condition[span class=\"CTSp\"]([/span][span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
if[span class=\"CTSp\"]([/span][span class=\"CTSp\"]([/span]PLAYER_MOBSI_PRODUCTION [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] MOBSI_PotionAlchemy[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]SpecialMiskStart [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] TRUE[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]PLAYER_TALENT_ALCHEMY[span class=\"CTSp\"][[/span]POTION_SpecMi_Health_01[span class=\"CTSp\"]][/span] [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] TRUE[span class=\"CTSp\"])[/span][span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
return TRUE[span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
[span class=\"CTR\"]func[/span] [span class=\"CTR\"]void[/span] PC_ItPo_SpecMi_Health_01_Info[span class=\"CTSp\"]([/span][span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
if[span class=\"CTSp\"]([/span]Npc_HasItems[span class=\"CTSp\"]([/span]hero[span class=\"CTSp\"],[/span]ItPl_Health_Herb_01[span class=\"CTSp\"])[/span] [span class=\"CTSp\"]>[/span][span class=\"CTSp\"]=[/span] [span class=\"CTN\"]1[/span][span class=\"CTN\"]0[/span][span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
Npc_RemoveInvItems[span class=\"CTSp\"]([/span]hero[span class=\"CTSp\"],[/span]ItPl_Health_Herb_01[span class=\"CTSp\"],[/span][span class=\"CTN\"]1[/span][span class=\"CTN\"]0[/span][span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span]
CreateInvItem[span class=\"CTSp\"]([/span]hero[span class=\"CTSp\"],[/span]ItPo_SpecMi_Health_01[span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span]
Print[span class=\"CTSp\"]([/span]PRINT_AlchemySuccess[span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span]
else
[span class=\"CTSp\"]{[/span]
Print[span class=\"CTSp\"]([/span]PRINT_ProdItemsMissing[span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span]
CreateInvItems[span class=\"CTSp\"]([/span]self[span class=\"CTSp\"],[/span]ItMi_Flask[span class=\"CTSp\"],[/span][span class=\"CTN\"]1[/span][span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
b_endproductiondialog[span class=\"CTSp\"]([/span][span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
[/span][!-- /gsrc --]

А2
[!-- gsrc --][span class=\"CT\"][span class=\"CTR\"]instance[/span] PC_ItPo_SpecMi_Health_02[span class=\"CTSp\"]([/span]C_Info[span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
nr [span class=\"CTSp\"]=[/span] [span class=\"CTN\"]1[/span][span class=\"CTN\"]1[/span][span class=\"CTSp\"];[/span]
npc [span class=\"CTSp\"]=[/span] PC_Hero[span class=\"CTSp\"];[/span]
condition [span class=\"CTSp\"]=[/span] PC_ItPo_SpecMi_Health_02_Condition[span class=\"CTSp\"];[/span]
information [span class=\"CTSp\"]=[/span] PC_ItPo_SpecMi_Health_02_Info[span class=\"CTSp\"];[/span]
permanent [span class=\"CTSp\"]=[/span] TRUE[span class=\"CTSp\"];[/span]
description [span class=\"CTSp\"]=[/span] [span class=\"CTQ\"]\"Вытяжка из лечебных растений\"[/span][span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
[span class=\"CTR\"]func[/span] [span class=\"CTR\"]int[/span] PC_ItPo_SpecMi_Health_02_Condition[span class=\"CTSp\"]([/span][span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
if[span class=\"CTSp\"]([/span][span class=\"CTSp\"]([/span]PLAYER_MOBSI_PRODUCTION [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] MOBSI_PotionAlchemy[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]SpecialMiskStart [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] TRUE[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]PLAYER_TALENT_ALCHEMY[span class=\"CTSp\"][[/span]POTION_SpecMi_Health_02[span class=\"CTSp\"]][/span] [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] TRUE[span class=\"CTSp\"])[/span][span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
return TRUE[span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
[span class=\"CTR\"]func[/span] [span class=\"CTR\"]void[/span] PC_ItPo_SpecMi_Health_02_Info[span class=\"CTSp\"]([/span][span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
if[span class=\"CTSp\"]([/span]Npc_HasItems[span class=\"CTSp\"]([/span]hero[span class=\"CTSp\"],[/span]ItPl_Health_Herb_02[span class=\"CTSp\"])[/span] [span class=\"CTSp\"]>[/span][span class=\"CTSp\"]=[/span] [span class=\"CTN\"]1[/span][span class=\"CTN\"]0[/span][span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
Npc_RemoveInvItems[span class=\"CTSp\"]([/span]hero[span class=\"CTSp\"],[/span]ItPl_Health_Herb_02[span class=\"CTSp\"],[/span][span class=\"CTN\"]1[/span][span class=\"CTN\"]0[/span][span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span]
CreateInvItem[span class=\"CTSp\"]([/span]hero[span class=\"CTSp\"],[/span]ItPo_SpecMi_Health_02[span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span]
Print[span class=\"CTSp\"]([/span]PRINT_AlchemySuccess[span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span]
else
[span class=\"CTSp\"]{[/span]
Print[span class=\"CTSp\"]([/span]PRINT_ProdItemsMissing[span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span]
CreateInvItems[span class=\"CTSp\"]([/span]self[span class=\"CTSp\"],[/span]ItMi_Flask[span class=\"CTSp\"],[/span][span class=\"CTN\"]1[/span][span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
b_endproductiondialog[span class=\"CTSp\"]([/span][span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
[/span][!-- /gsrc --]
Теперь практически всё, осталось только по всему файлу изменить строки, содержащие выражение:
[!-- gsrc --][span class=\"CT\"][span class=\"CTR\"]if[/span][span class=\"CTSp\"]([/span][span class=\"CTSp\"]([/span]PLAYER_MOBSI_PRODUCTION [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] MOBSI_PotionAlchemy[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]TabakStart [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] FALSE[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]BoozeStart [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] FALSE[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]HealthStart [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] FALSE[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]ManaStart [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] FALSE[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]SpecialStart [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] FALSE[span class=\"CTSp\"])[/span][span class=\"CTSp\"])[/span]
на
[span class=\"CTR\"]if[/span][span class=\"CTSp\"]([/span][span class=\"CTSp\"]([/span]PLAYER_MOBSI_PRODUCTION [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] MOBSI_PotionAlchemy[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]TabakStart [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] FALSE[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]BoozeStart [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] FALSE[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]HealthStart [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] FALSE[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]ManaStart [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] FALSE[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]SpecialStart [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] FALSE[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]SpecialMiskStart [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] FALSE[span class=\"CTSp\"])[/span][span class=\"CTSp\"])[/span][/span][!-- /gsrc --]
Видим изменения. Надеюсь понятно - почему.

3) Далее открываем файл …/Story/B_Story/b_teachplayertalentalchemy –
В этом файле содержится функция
func int B_TeachPlayerTalentAlchemy(var C_Npc slf,var C_Npc oth,var int potion)
Её роль – обучение ГГ искусству алхимии и соответственно каждому из рецептов.
Теперь вставляем после строки:
B_LogEntry(TOPIC_TalentAlchemy,"Чтобы сварить зелье, мне нужна пустая мензурка и необходимые для этого зелья ингредиенты. Из этих ингредиентов, я могу приготовить зелье на столе алхимика.");
Наши строки:

[!-- gsrc --][span class=\"CT\"][span class=\"CTR\"]if[/span][span class=\"CTSp\"]([/span]potion [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] POTION_SpecMi_Health_01[span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
PLAYER_TALENT_ALCHEMY[span class=\"CTSp\"][[/span]POTION_Health_01[span class=\"CTSp\"]][/span] [span class=\"CTSp\"]=[/span] TRUE[span class=\"CTSp\"];[/span]
B_LogEntry[span class=\"CTSp\"]([/span]TOPIC_TalentAlchemy[span class=\"CTSp\"],[/span][span class=\"CTQ\"]\"Ингредиенты для 'Выжимки из лечебных растений': 10 лечебных растений.\"[/span][span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
[span class=\"CTR\"]if[/span][span class=\"CTSp\"]([/span]potion [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] POTION_SpecMi_Health_02[span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
PLAYER_TALENT_ALCHEMY[span class=\"CTSp\"][[/span]POTION_Health_02[span class=\"CTSp\"]][/span] [span class=\"CTSp\"]=[/span] TRUE[span class=\"CTSp\"];[/span]
B_LogEntry[span class=\"CTSp\"]([/span]TOPIC_TalentAlchemy[span class=\"CTSp\"],[/span][span class=\"CTQ\"]\"Ингредиенты для 'Выжимки из лечебных трав': 10 лечебных растений.\"[/span][span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span][/span][!-- /gsrc --]
На этом всё.

4) Далее открываем файл …/Story/B_Story/b_getlearncosttalent.d –
В этом файле содержится функция
func int B_GetLearnCostTalent(var C_Npc oth,var int talent,var int skill)
Её роль – определение очков обучения, которые будут потрачены на обучение какому-либо навыку всех талантов ГГ, как то рецепты алхимии, кузнечного и охотничьего дела и т.д.
Ищем строки:

[!-- gsrc --][span class=\"CT\"][span class=\"CTR\"]else[/span] [span class=\"CTR\"]if[/span][span class=\"CTSp\"]([/span]skill [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] POTION_MegaDrink[span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
kosten [span class=\"CTSp\"]=[/span] [span class=\"CTN\"]2[/span][span class=\"CTN\"]0[/span][span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
[/span][!-- /gsrc --]
И после них вставляем следующее, предварительно удалив точку с запятой. Получаем следующее:
[!-- gsrc --][span class=\"CT\"][span class=\"CTR\"]else[/span] [span class=\"CTR\"]if[/span][span class=\"CTSp\"]([/span]skill [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] POTION_MegaDrink[span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
kosten [span class=\"CTSp\"]=[/span] [span class=\"CTN\"]2[/span][span class=\"CTN\"]0[/span][span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span]
[span class=\"CTR\"]else[/span] [span class=\"CTR\"]if[/span][span class=\"CTSp\"]([/span]skill [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] POTION_SpecMi_Health_01[span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
kosten [span class=\"CTSp\"]=[/span] [span class=\"CTN\"]2[/span][span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span]
[span class=\"CTR\"]else[/span] [span class=\"CTR\"]if[/span][span class=\"CTSp\"]([/span]skill [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] POTION_SpecMi_Health_02[span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
kosten [span class=\"CTSp\"]=[/span] [span class=\"CTN\"]2[/span][span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
[/span][!-- /gsrc --]
Здесь kosten – кол-во очков обучения, которые ГГ потратит на изучение соответствующего рецепта.

5) Самое главное теперь прописать эти рецепты в файл …/Intern/Constants.d
Ищем строки

[!-- gsrc --][span class=\"CT\"][span class=\"CTR\"]var[/span] [span class=\"CTR\"]int[/span] player_talent_alchemy[span class=\"CTSp\"][[/span]MAX_POTION[span class=\"CTSp\"]][/span][span class=\"CTSp\"];[/span] [span class=\"CTCom\"]//массив размеров равным константе MAX_POTION, объявленной ниже.[/span]
[span class=\"CTR\"]const[/span] [span class=\"CTR\"]int[/span] POTION_Health_04 [span class=\"CTSp\"]=[/span] [span class=\"CTN\"]1[/span][span class=\"CTN\"]4[/span][span class=\"CTSp\"];[/span]
[span class=\"CTR\"]const[/span] [span class=\"CTR\"]int[/span] MAX_POTION [span class=\"CTSp\"]=[/span] [span class=\"CTN\"]1[/span][span class=\"CTN\"]5[/span][span class=\"CTSp\"];[/span][/span][!-- /gsrc --]
И изменяем размер массива и вставляем строки так, как показано ниже:
[!-- gsrc --][span class=\"CT\"][span class=\"CTR\"]var[/span] [span class=\"CTR\"]int[/span] player_talent_alchemy[span class=\"CTSp\"][[/span]MAX_POTION[span class=\"CTSp\"]][/span][span class=\"CTSp\"];[/span]
[span class=\"CTR\"]const[/span] [span class=\"CTR\"]int[/span] POTION_Health_04 [span class=\"CTSp\"]=[/span] [span class=\"CTN\"]1[/span][span class=\"CTN\"]4[/span][span class=\"CTSp\"];[/span]
[span class=\"CTR\"]const[/span] [span class=\"CTR\"]int[/span] POTION_SpecMi_Health_01 [span class=\"CTSp\"]=[/span] [span class=\"CTN\"]1[/span][span class=\"CTN\"]5[/span][span class=\"CTSp\"];[/span]
[span class=\"CTR\"]const[/span] [span class=\"CTR\"]int[/span] POTION_SpecMi_Health_02 [span class=\"CTSp\"]=[/span] [span class=\"CTN\"]1[/span][span class=\"CTN\"]6[/span][span class=\"CTSp\"];[/span]
[span class=\"CTR\"]const[/span] [span class=\"CTR\"]int[/span] MAX_POTION [span class=\"CTSp\"]=[/span] [span class=\"CTN\"]1[/span][span class=\"CTN\"]7[/span][span class=\"CTSp\"];[/span][/span][!-- /gsrc --]
На этом подготовительная часть закончена. Осталось только добавить обучение этим рецептам кому-то из алхимиков.

6) Возьмем, например Константино.
Открываем файл …/Story/Dialoge/dia_vlk_417_constantino.d
Ищем строки:

[!-- gsrc --][span class=\"CT\"][span class=\"CTR\"]func[/span] [span class=\"CTR\"]void[/span] DIA_Constantino_TEACH_Info[span class=\"CTSp\"]([/span][span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
AI_Output[span class=\"CTSp\"]([/span]other[span class=\"CTSp\"],[/span]self[span class=\"CTSp\"],[/span][span class=\"CTQ\"]\"DIA_Constantino_TEACH_15_00\"[/span][span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span] [span class=\"CTCom\"]//Каким рецептам ты можешь обучить меня?[/span]
[span class=\"CTR\"]if[/span][span class=\"CTSp\"]([/span][span class=\"CTSp\"]([/span]PLAYER_TALENT_ALCHEMY[span class=\"CTSp\"][[/span]POTION_Health_01[span class=\"CTSp\"]][/span] [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] TRUE[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]PLAYER_TALENT_ALCHEMY[span class=\"CTSp\"][[/span]POTION_Health_02[span class=\"CTSp\"]][/span] [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] TRUE[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]PLAYER_TALENT_ALCHEMY[span class=\"CTSp\"][[/span]POTION_Health_03[span class=\"CTSp\"]][/span] [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] TRUE[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]PLAYER_TALENT_ALCHEMY[span class=\"CTSp\"][[/span]POTION_Perm_Health[span class=\"CTSp\"]][/span] [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] TRUE[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]PLAYER_TALENT_ALCHEMY[span class=\"CTSp\"][[/span]POTION_Mana_01[span class=\"CTSp\"]][/span] [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] TRUE[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]PLAYER_TALENT_ALCHEMY[span class=\"CTSp\"][[/span]POTION_Mana_02[span class=\"CTSp\"]][/span] [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] TRUE[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]PLAYER_TALENT_ALCHEMY[span class=\"CTSp\"][[/span]POTION_Perm_STR[span class=\"CTSp\"]][/span] [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] TRUE[span class=\"CTSp\"])[/span][span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
AI_Output[span class=\"CTSp\"]([/span]self[span class=\"CTSp\"],[/span]other[span class=\"CTSp\"],[/span][span class=\"CTQ\"]\"DIA_Constantino_TEACH_10_01\"[/span][span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span] [span class=\"CTCom\"]//Извини. Я больше ничему не могу научить тебя.[/span]
[span class=\"CTSp\"]}[/span]
[span class=\"CTR\"]else[/span]
[span class=\"CTSp\"]{[/span]
AI_Output[span class=\"CTSp\"]([/span]self[span class=\"CTSp\"],[/span]other[span class=\"CTSp\"],[/span][span class=\"CTQ\"]\"DIA_Constantino_TEACH_10_02\"[/span][span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span] [span class=\"CTCom\"]//Есть несколько - выбирай.[/span]
Info_ClearChoices[span class=\"CTSp\"]([/span]DIA_Constantino_TEACH[span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span]
Info_AddChoice[span class=\"CTSp\"]([/span]DIA_Constantino_TEACH[span class=\"CTSp\"],[/span]Dialog_Back[span class=\"CTSp\"],[/span]DIA_Constantino_Teach_BACK[span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
[/span][!-- /gsrc --]
И изменяем следующим образом (изменения замечаем сами):
[!-- gsrc --][span class=\"CT\"][span class=\"CTR\"]func[/span] [span class=\"CTR\"]void[/span] DIA_Constantino_TEACH_Info[span class=\"CTSp\"]([/span][span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
AI_Output[span class=\"CTSp\"]([/span]other[span class=\"CTSp\"],[/span]self[span class=\"CTSp\"],[/span][span class=\"CTQ\"]\"DIA_Constantino_TEACH_15_00\"[/span][span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span] [span class=\"CTCom\"]//Каким рецептам ты можешь обучить меня?[/span]
[span class=\"CTR\"]if[/span][span class=\"CTSp\"]([/span][span class=\"CTSp\"]([/span]PLAYER_TALENT_ALCHEMY[span class=\"CTSp\"][[/span]POTION_Health_01[span class=\"CTSp\"]][/span] [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] TRUE[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]PLAYER_TALENT_ALCHEMY[span class=\"CTSp\"][[/span]POTION_Health_02[span class=\"CTSp\"]][/span] [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] TRUE[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]PLAYER_TALENT_ALCHEMY[span class=\"CTSp\"][[/span]POTION_Health_03[span class=\"CTSp\"]][/span] [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] TRUE[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]PLAYER_TALENT_ALCHEMY[span class=\"CTSp\"][[/span]POTION_Perm_Health[span class=\"CTSp\"]][/span] [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] TRUE[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]PLAYER_TALENT_ALCHEMY[span class=\"CTSp\"][[/span]POTION_Mana_01[span class=\"CTSp\"]][/span] [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] TRUE[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]PLAYER_TALENT_ALCHEMY[span class=\"CTSp\"][[/span]POTION_Mana_02[span class=\"CTSp\"]][/span] [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] TRUE[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]PLAYER_TALENT_ALCHEMY[span class=\"CTSp\"][[/span]POTION_Perm_STR[span class=\"CTSp\"]][/span] [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] TRUE[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]PLAYER_TALENT_ALCHEMY[span class=\"CTSp\"][[/span]POTION_SpecMi_Health_01[span class=\"CTSp\"]][/span] [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] TRUE[span class=\"CTSp\"])[/span] &amp[span class=\"CTSp\"];[/span]&amp[span class=\"CTSp\"];[/span] [span class=\"CTSp\"]([/span]PLAYER_TALENT_ALCHEMY[span class=\"CTSp\"][[/span]POTION_SpecMi_Health_02[span class=\"CTSp\"]][/span] [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] TRUE[span class=\"CTSp\"])[/span][span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
AI_Output[span class=\"CTSp\"]([/span]self[span class=\"CTSp\"],[/span]other[span class=\"CTSp\"],[/span][span class=\"CTQ\"]\"DIA_Constantino_TEACH_10_01\"[/span][span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span] [span class=\"CTCom\"]//Извини. Я больше ничему не могу научить тебя.[/span]
[span class=\"CTSp\"]}[/span]
[span class=\"CTR\"]else[/span]
[span class=\"CTSp\"]{[/span]
AI_Output[span class=\"CTSp\"]([/span]self[span class=\"CTSp\"],[/span]other[span class=\"CTSp\"],[/span][span class=\"CTQ\"]\"DIA_Constantino_TEACH_10_02\"[/span][span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span] [span class=\"CTCom\"]//Есть несколько - выбирай.[/span]
Info_ClearChoices[span class=\"CTSp\"]([/span]DIA_Constantino_TEACH[span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span]
Info_AddChoice[span class=\"CTSp\"]([/span]DIA_Constantino_TEACH[span class=\"CTSp\"],[/span]Dialog_Back[span class=\"CTSp\"],[/span]DIA_Constantino_Teach_BACK[span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
[/span][!-- /gsrc --]
И вставляем после них сразу:
[!-- gsrc --][span class=\"CT\"]
[span class=\"CTR\"]if[/span][span class=\"CTSp\"]([/span]PLAYER_TALENT_ALCHEMY[span class=\"CTSp\"][[/span]POTION_SpecMi_Health_01[span class=\"CTSp\"]][/span] [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] FALSE[span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
Info_AddChoice[span class=\"CTSp\"]([/span]DIA_Constantino_TEACH[span class=\"CTSp\"],[/span]B_BuildLearnString[span class=\"CTSp\"]([/span][span class=\"CTQ\"]\"Выжимка из лечебных растений\"[/span][span class=\"CTSp\"],[/span]B_GetLearnCostTalent[span class=\"CTSp\"]([/span]other[span class=\"CTSp\"],[/span]NPC_TALENT_ALCHEMY[span class=\"CTSp\"],[/span]POTION_SpecMi_Health_01[span class=\"CTSp\"])[/span][span class=\"CTSp\"])[/span][span class=\"CTSp\"],[/span]DIA_Constantino_TEACH_SpecMi_Health_01[span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
[span class=\"CTR\"]if[/span][span class=\"CTSp\"]([/span]PLAYER_TALENT_ALCHEMY[span class=\"CTSp\"][[/span]POTION_SpecMi_Health_02[span class=\"CTSp\"]][/span] [span class=\"CTSp\"]=[/span][span class=\"CTSp\"]=[/span] FALSE[span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
Info_AddChoice[span class=\"CTSp\"]([/span]DIA_Constantino_TEACH[span class=\"CTSp\"],[/span]B_BuildLearnString[span class=\"CTSp\"]([/span][span class=\"CTQ\"]\"Выжимка из лечебных трав\"[/span][span class=\"CTSp\"],[/span]B_GetLearnCostTalent[span class=\"CTSp\"]([/span]other[span class=\"CTSp\"],[/span]NPC_TALENT_ALCHEMY[span class=\"CTSp\"],[/span]POTION_SpecMi_Health_02[span class=\"CTSp\"])[/span][span class=\"CTSp\"])[/span][span class=\"CTSp\"],[/span]DIA_Constantino_TEACH_SpecMi_Health_02[span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
[/span][!-- /gsrc --]
Далее после строк:
[!-- gsrc --][span class=\"CT\"]
[span class=\"CTR\"]func[/span] [span class=\"CTR\"]void[/span] DIA_Constantino_Teach_BACK[span class=\"CTSp\"]([/span][span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
Info_ClearChoices[span class=\"CTSp\"]([/span]DIA_Constantino_TEACH[span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
[/span][!-- /gsrc --]
Прописываем следующее:
[!-- gsrc --][span class=\"CT\"]
[span class=\"CTR\"]func[/span] [span class=\"CTR\"]void[/span] DIA_Constantino_TEACH_SpecMi_Health_01[span class=\"CTSp\"]([/span][span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
[span class=\"CTR\"]if[/span][span class=\"CTSp\"]([/span]B_TeachPlayerTalentAlchemy[span class=\"CTSp\"]([/span]self[span class=\"CTSp\"],[/span]other[span class=\"CTSp\"],[/span]POTION_SpecMi_Health_01[span class=\"CTSp\"])[/span][span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
AI_Output[span class=\"CTSp\"]([/span]self[span class=\"CTSp\"],[/span]other[span class=\"CTSp\"],[/span][span class=\"CTQ\"]\"DIA_Constantino_TEACH_SpecMi_Health01_10_00\"[/span][span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span] [span class=\"CTCom\"]//Ингредиенты для \"Выжимки из лечебных растений\" - 10 лечебных растений.[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
Info_ClearChoices[span class=\"CTSp\"]([/span]DIA_Constantino_TEACH[span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
[span class=\"CTR\"]func[/span] [span class=\"CTR\"]void[/span] DIA_Constantino_TEACH_SpecMi_Health_02[span class=\"CTSp\"]([/span][span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
if[span class=\"CTSp\"]([/span]B_TeachPlayerTalentAlchemy[span class=\"CTSp\"]([/span]self[span class=\"CTSp\"],[/span]other[span class=\"CTSp\"],[/span]POTION_SpecMi_Health_02[span class=\"CTSp\"])[/span][span class=\"CTSp\"])[/span]
[span class=\"CTSp\"]{[/span]
AI_Output[span class=\"CTSp\"]([/span]self[span class=\"CTSp\"],[/span]other[span class=\"CTSp\"],[/span][span class=\"CTQ\"]\"DIA_Constantino_TEACH_SpecMi_Health02_10_00\"[/span][span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span] [span class=\"CTCom\"]////Ингредиенты для \"Выжимки из лечебных трав\" - 10 лечебных трав.[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
Info_ClearChoices[span class=\"CTSp\"]([/span]DIA_Constantino_TEACH[span class=\"CTSp\"])[/span][span class=\"CTSp\"];[/span]
[span class=\"CTSp\"]}[/span][span class=\"CTSp\"];[/span]
[/span][!-- /gsrc --]
7) Теперь самое главное – не компилируем наш изменённый проект, а сохраняем все изменения и закрываем его.
Затем вновь запускаем GS3.14 и открываем наш проект. После этого компилируем.
С чем это связано? Просто если компилировать сразу, то вы наткнётесь на ошибку
«Неопределённый идентификатор POTION_SPECMI_HEALTH_01» в файле dia_vlk_417_constantino.d
Чем это объясняется. В моём понимании – ответ таков:
В момент открытия проекта идет анализ в том числе файла Constants.d.
Можно компилировать и сразу, но тогда нужно сделать следующую замену:
PLAYER_TALENT_ALCHEMY[POTION_SpecMi_Health_01] на
PLAYER_TALENT_ALCHEMY[15],
а PLAYER_TALENT_ALCHEMY[POTION_SpecMi_Health_02]
На PLAYER_TALENT_ALCHEMY[16]
В этом случае компиляция проходит, но работоспособность мной в этом случае не была проверена.
__________________
redleha вне форума   Ответить с цитированием
Старый 04.01.2009, 06:49   #180
Готоман
Пользователь
 
Аватар для . . . .Pr0gр@мmеR. . . .
 
Регистрация: 15.07.2007
Сообщений: 52
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
По умолчанию Скриптинг

Кто-нибудь может рассписать логику написания диалогов?
. . . .Pr0gр@мmеR. . . . вне форума   Ответить с цитированием
Ответ

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


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 06:10. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot
Magic Team© 2006-2019, The development and modification