Новости Старт 6го сезона Grim League
  • 733
  • 0
4 мая в 18-00 стартует шестой сезон Community лиги по одной из лучших игр в жанре arpg Grim Dawn. Сезон представляет собой глобальную модификацию игры, включающую в себя расширение мира, изменение...
Новости Дата релиза Baldur's Gate III
  • 20.643
  • 1
Наконец-то дождались - "Baldur's Gate III" покидает ранний доступ, и в августе 2023 выходит в полноценный релиз, о чём стало известно на церемонии "The Game Awards 2022". С момента выхода игры в...
Новости Итоги года от The Game Awards 2022
  • 14.198
  • 0
Вчера прошла ежегодная церемония награждения проектов в индустрии компьютерных игр и киберспорта. Самую главную награда - "Игра года" забрала игра "Elden Ring" от японских разработчиков...
Новости Анонс Assassin's Creed Mirage
  • 19.735
  • 6
На сегодняшнем мероприятии «Ubisoft Forward» была анонсированна новая часть вселенной «Assassin's Creed» под названием «Mirage». В роли протагониста будет Басим ибн Исхак, играющие в «Assassin’s...

Вопросы по скриптингу в Готике

Fase

Житель города
Участник форума
Регистрация
29 Янв 2012
Сообщения
109
Реакции
9
Баллы
27
Лучшие ответы
0
#11
Вот тут не согласен.Я прям всё до мелочейй рассматриваю. :-X
 

xterm

Герой
Команда форума
Администратор форума
Пользователь VIP
Модостроитель
 
Почётный пользователь
Участник форума
Регистрация
11 Апр 2010
Сообщения
5.477
Реакции
1.136
Баллы
556
Лучшие ответы
5
#12

Fase

Житель города
Участник форума
Регистрация
29 Янв 2012
Сообщения
109
Реакции
9
Баллы
27
Лучшие ответы
0
#13

Yelawolf

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


Идем в папку с игрой. И открываем папки Gothic II\_work\Data\Scripts\Content\Story\NPC
Создаем там файл NONE_2000_Masterius.d

Теперь, попытаюсь расшифоровать это неизвестное наименование..
NONE - это какая-либо гильдия (здесь, у нас НПС без гильдии)(список всех гильдий я приведу чуть ниже)
2000 - это порядковый номер нашего НПС (можно любую другую незанятую цифру поставить)
Masterius - имя нашего НПС :)

После того как такой файлик мы создали то заходим в него и пишем еще небольшой текстик

instance NONE_2000_Masterius (Npc_Default) // - это инстанция создания персонажа

{
//----
//Данные персонажа
//----
name = Masterius; // Имя НПС (вводите свое)
guild = GIL_PIR; // Гильдия
npctype = NpcType_Friend; // Отношение данного НПС к ГГ
flags = 0; // Определяет смертность НПС, 0 - смертный, Npc_Flag_Immortal - бессмертный
id = 2000; // Порядковый номер НПС (вводите любое)
level = 30; // Уровень НПС
//----
//Характеристика
//----
attribute[ATR_STRENGTH] = 300; //Сила
attribute[ATR_DEXTERITY] = 200; //Ловкость
attribute[ATR_MANA_MAX] = 100; //Максимальная мана
attribute[ATR_MANA] = 100; //Текущая мана
attribute[ATR_HITPOINTS_MAX] = 2000; //Максимальное здоровье
attribute[ATR_HITPOINTS] = 2000; //Текущее здоровье

//-------------
//Защита
//----------------------
protection [PROT_BLUNT] = 0; //От тупого оружия
protection [PROT_EDGE] = 0; //От лезвия
protection [PROT_POINT] = 0; //От стрел
protection [PROT_FIRE] = 0; //От огня
protection [PROT_FLY] = 0; //От падения
protection [PROT_MAGIC] = 0; //От магии

//-------------
//Урон
//------------------------
damage [DAM_INDEX_BLUNT] = 0; //Тупым оружием
damage [DAM_INDEX_EDGE] = 0; //Лезвием
damage [DAM_INDEX_POINT] = 0; //Стрелами
damage [DAM_INDEX_FIRE] = 0; //Огнем
damage [DAM_INDEX_MAGIC] = 0; //Магией

//-------------
//Владение оружием
//---------------------
HitChance [NPC_TALENT_1H] = 100; //Одноручное оружие
HitChance [NPC_TALENT_2H] = 100; //Двуручное оружие
HitChance [NPC_TALENT_BOW] = 100; //Лук
HitChance [NPC_TALENT_CROSSBOW] = 100; //Арбалет
Npc_SetTalentSkill (self, NPC_TALENT_PICKLOCK, 1); //Отмычки
Npc_SetTalentSkill (self, NPC_TALENT_SNEAK, 1);//Подкрадывание
Npc_SetTalentSkill (self, NPC_TALENT_ACROBAT, 1); //Акробатика
//Если проставлено значение 1 - то значит навык выучен, если 0 то навык невыучен.

//-------------
//Вид снаружи
//------------------
Mdl_SetModelFatness (self, 0); //Персонаж будет худым или толстым 0-худой, 1-толстый
Mdl_ApplyOverlayMds (self, Humans_Relaxed.mds; //Анимация
B_SetNpcVisual (self, MALE, ;Hum_Head_FatBald;, Face_N_NormalBart03, BodyTex_N, ITAR_Bau_M);
//Male - мужской пол, Female - женский пол.
//Hum_Head_FatBald; - голова
//Face_N_NormalBart03; - лицо
//BodyTex_N; - текстура тела.
//ITAR_PIR_H_Addon; - доспехи, одетые на персонажа.

//---------------
//Вооружение (Экипировка)
//--------------------
EquipItem (self, ItMw_Inquisitor); // Оружие ближнего боя (в данном случае "Инквизитор")
EquipItem (self, ItRw_Bow_M_04); // Оружие дальнего боя (в данном случае "Буковый лук")
//Все вещи,которыесть в игре можно посмотреть в папке Items, либо в кодах)

//----------------
//Рюкзак
//--------------------
CreateInvItems (self, itpo_perm_health); // (Это то что будет лежать в инвертаре НПС. В данном случае, перманентное зелье жизни)
//Все вещи можно посмотреть в папке Items.

//---------------
//Чувства
//-----------------------
senses = SENSE_SEE | SENSE_SMELL | SENSE_HEAR; //Зрение, обаняние, слух.
senses_range = 2000; //Расстояние действия чувств !

//----------------
//Интеллект
//------
fight_tactic = FAI_HUMAN_MASTER; // Как дерется наш НПС, (в данном случае, будет дратся как мастер) есть еще FAI_HUMAN_STRONG и FAI_HUMAN_COWARD!
daily_routine = rtn_start_1000; //Ввод распорядка дня.

};
//----------------
//Распорядок дня
//---------------
func void rtn_start_1000() //функция распорядка дня
{
TA_Stand_Dementor (8, 0, 22, 0, ;NW_FARM1_OUT_01;
TA_Stand_Dementor (22, 0, 8, 0, ;NW_FARM1_OUT_01;
};

Здесь я указал что наш НПС будет стоять как Ищущий. Если вам нужен другой вейпойнт, то заходите в Spacer который находится в папке с игрой и полетайте в нем)

Открываем файл Gothic II\_work\Data\Scripts\Content\Story\StartUp.d Находим в нём строку Wld_InsertNpc(BAU_950_Lobart,”NW_FARM1_OUT_01”);
дописываем ниже Wld_InsertNpc(NONE_2000_Masterius,”NW_FARM1_OUT_01”) ;
Открываем прогу Spacer(она находится в Gothic II\System)
Нажимаем World\Reparse Script(заменить скрипты), выбираем Gothic.src и нажимаем открыть. Пока идет компиляция скриптов, можно сходить и выпить чашечку кофе.
Всё теперь заходим в игру,только обязательно начинаем игру с начала!И вот наш пират Masterius стоит как ищущий))
 

multivoin

Труженик
Модостроитель
Участник форума
Регистрация
1 Авг 2010
Сообщения
391
Реакции
74
Баллы
65
Лучшие ответы
0
#15
Да уж, а я думал тутор Вама учить нада ;D wall&66@
 

Yelawolf

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

multivoin

Труженик
Модостроитель
Участник форума
Регистрация
1 Авг 2010
Сообщения
391
Реакции
74
Баллы
65
Лучшие ответы
0
#17
А как квест создать в новом мире, а то я когда то пробывал, и не получилось. :)
 

Yelawolf

Живая легенда
Модостроитель
Почётный пользователь
Участник форума
Регистрация
29 Янв 2012
Сообщения
6.785
Реакции
2.187
Баллы
661
Лучшие ответы
2
#18
Немножко попозже распишу как сделать квест в скриптах - щас просто времени пока нет) ::)
Ждите на выходных!
 

Bjorn

Труженик
Участник форума
Регистрация
29 Дек 2011
Сообщения
492
Реакции
103
Баллы
55
Лучшие ответы
0
#19
Подскажите функцию вызывающая анимацию съедание еды у НПС :) мне её в диалог надо...
 

xterm

Герой
Команда форума
Администратор форума
Пользователь VIP
Модостроитель
 
Почётный пользователь
Участник форума
Регистрация
11 Апр 2010
Сообщения
5.477
Реакции
1.136
Баллы
556
Лучшие ответы
5
#20
Можешь в инстанции персонажа добавить функцию TA_Stand_Eating(21,55,23,55,"NW_BIGFARM_HOUSE_UP2_06");
(естественно с нужным тебе временем и вейпоинтом)

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