Новости Анонсирован Atomic Heart II
Новости Анонсирован ремастер Final Fantasy Tactics
  • 204
  • 1
Культовая пошаговая тактическая RPG от Square Enix получит второе дыхание. На проходящей выставке State of Play, где анонсируются игры для Play Station, состоялся анонс ремастера Final Fantasy...
Новости Моддеры Oblivion Remastered нашли способ внедрения абсолютно любых скриптов
  • 272
  • 1
Сообщество моддинга Oblivion Remastered (ORM) переживает настоящий расцвет. После долгих месяцев работы, энтузиасты научили игру работать с мощным скриптовым языком Lua, открыв перед создателями...
Новости Tainted Grail: The Fall of Avalon — Польская «Skyrim» теперь официально
  • 1.753
  • 24
23 мая 2025 после двух лет успешного раннего доступа в Steam польская студия Questline наконец представила свою фэнтези-RPG в полной версии. Tainted Grail: The Fall of Avalon доступна на ПК...

Создание нового таланта

Defman

Новичок
Участник форума
Регистрация
29 Май 2013
Сообщения
5
Реакции
0
Баллы
8
Лучшие ответы
0
#1
Как создать новый талант такого же типа как взлом (т.е. ему можно обучится и все),или как создать абсолютно новый перк (как сила,прокачиваемая) и реализуемо это вообще,просто в моде "Возвращение" был новый талант,вот и я хочу тоже такой сделать.
 

Yelawolf

Живая легенда
Модостроитель
Почётный пользователь
Участник форума
Регистрация
29 Янв 2012
Сообщения
6.785
Реакции
2.195
Баллы
661
Лучшие ответы
2
#2
Декомпилируй датник Возвращения, и через поиск посмотри как реализовано. Тебе нужен Gothic.Dat и Menu.Dat.
 
Автор
Автор
Defman

Defman

Новичок
Участник форума
Регистрация
29 Май 2013
Сообщения
5
Реакции
0
Баллы
8
Лучшие ответы
0
#3
Про Gothic.dat уже поискал,все таланты лежат в constants.d,но вот про menu.dat я вообще не думал ._.
Вроде вот
Код:
const int NPC_TALENT_UNKNOWN            = 0;    //Отсутствует
const int NPC_TALENT_1H                 = 1;    //Владение одноручным оружием
const int NPC_TALENT_2H                 = 2;    //Владение двуручным оружием
const int NPC_TALENT_BOW                = 3;    //Владение луком
const int NPC_TALENT_CROSSBOW           = 4;    //Владение арбалетом
const int NPC_TALENT_PICKLOCK           = 5;    //Умение вскрывать замки
//const int NPC_TALENT_PICKPOCKET       = 6;    //Карманная кража (из Готики 1, не используется)
const int NPC_TALENT_MAGE               = 7;    //Маг
const int NPC_TALENT_SNEAK              = 8;    //Подкрадывание
const int NPC_TALENT_REGENERATE         = 9;    //Регенерация
const int NPC_TALENT_FIREMASTER         = 10;   //Владение огнем
const int NPC_TALENT_ACROBAT            = 11;   //Акробатика
const int NPC_TALENT_PICKPOCKET         = 12;   //Карманная кража
const int NPC_TALENT_SMITH              = 13;   //Кузнечное дело
const int NPC_TALENT_RUNES              = 14;   //Изготовление рун
const int NPC_TALENT_ALCHEMY            = 15;   //Алхимия
const int NPC_TALENT_TAKEANIMALTROPHY   = 16;   //Разделка животных
const int NPC_TALENT_FOREIGNLANGUAGE    = 17;   //Изучение иностранных языков
const int NPC_TALENT_WISPDETECTOR       = 18;   //Поиск предметов
const int NPC_TALENT_C                  = 19;   //(пусто)
const int NPC_TALENT_D                  = 20;   //(пусто)
const int NPC_TALENT_E                  = 21;   //(пусто)

const int NPC_TALENT_MAX                = 22;   //Макс. число талантов
Вставлять сюда свой талант в constants.d,но что это за цифры рядом с талантами? Я так понял это их ID,но чтобы добавить новый талант нужно увеличить NPC_TALENT_MAX наверно.
UPD:
Так и есть.3 неиспользуемых таланта были задействованы в "Возвращении",и в B_story есть b_***.d файл,который отвечает за функцию изучения перка,в свою очередь которая вызывается у НПС в диалоге.
 
Последнее редактирование модератором:

Yelawolf

Живая легенда
Модостроитель
Почётный пользователь
Участник форума
Регистрация
29 Янв 2012
Сообщения
6.785
Реакции
2.195
Баллы
661
Лучшие ответы
2
#4
Автор
Автор
Defman

Defman

Новичок
Участник форума
Регистрация
29 Май 2013
Сообщения
5
Реакции
0
Баллы
8
Лучшие ответы
0
#5
Чтож,буду знать.А по теме - разобрался.Спасибо за верное направление в этих датниках.
 
Автор
Автор
Defman

Defman

Новичок
Участник форума
Регистрация
29 Май 2013
Сообщения
5
Реакции
0
Баллы
8
Лучшие ответы
0
#6
Теперь осталось только,чтобы умный человек проверил правильность всех скриптов:
в constants.d прописал
Код:
const int NPC_TALENT_INTELEKT = 19;
потом создал в папке Story\B_story файл b_teachPlayerTalentIntelekt с таким кодом:
Код:
func int B_TeachIntelektTalent(var C_Npc slf,var C_Npc oth,var int talent)
{
	var int kosten;
	kosten = B_GetLearnCostTalent(oth,talent,1);
	if((talent != NPC_TALENT_INTELEKT))
	{
		Print("*** ERROR: Wrong Parameter ***");
		return FALSE;
	};
	if(oth.lp < kosten)
	{
		PrintScreen(PRINT_NotEnoughLearnPoints,-1,-1,FONT_ScreenSmall,2);
		B_Say(slf,oth,"$NOLEARNNOPOINTS");
		return FALSE;
	};
	oth.lp = oth.lp - kosten;
	if(talent == NPC_TALENT_INTELEKT)
	{
		Npc_SetTalentSkill(oth,NPC_TALENT_INTELEKT,1);
		PrintScreen(PRINT_LearnPicklock,-1,-1,FONT_Screen,2);
		return TRUE;
	};
И добавил отображение навыка в menu.dat\Menu_menu_status.d.Все ли тут правильно?
Окей,проверять буду сам,дубляции постов буду избегать :3
 
Последнее редактирование модератором:

Yelawolf

Живая легенда
Модостроитель
Почётный пользователь
Участник форума
Регистрация
29 Янв 2012
Сообщения
6.785
Реакции
2.195
Баллы
661
Лучшие ответы
2
#7
Теперь осталось только,чтобы умный человек проверил правильность всех скриптов:
Как умный человек, дам тебе практичный совет: компилируй свое творение и проверяй. Это намного проще, чем ждать на форуме пока кто нибудь проверит. tost^75?
И еще на последок.. Не пиши по два поста подряд, ибо это запрещено Правилами Форума, которые ты должен прочитать. На первый раз прощаю так как ты "свеженький" на форуме :DD
 
Последнее редактирование модератором:
Сверху Снизу