С Днём России!
  • 2.711
  • 6
Дорогие друзья! Поздравляю вас с Днём России! Этот праздник напоминает нам о богатой истории и культуре нашей страны, о её величии и непоколебимом духе народа! Желаю вам крепкого здоровья...
Новости Анонсирован Atomic Heart II
Новости Анонсирован ремастер Final Fantasy Tactics
  • 1.018
  • 1
Культовая пошаговая тактическая RPG от Square Enix получит второе дыхание. На проходящей выставке State of Play, где анонсируются игры для Play Station, состоялся анонс ремастера Final Fantasy...
Новости Моддеры Oblivion Remastered нашли способ внедрения абсолютно любых скриптов
  • 1.217
  • 4
Сообщество моддинга Oblivion Remastered (ORM) переживает настоящий расцвет. После долгих месяцев работы, энтузиасты научили игру работать с мощным скриптовым языком Lua, открыв перед создателями...

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

Fase

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

xterm

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

Fase

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

Yelawolf

Живая легенда
Модостроитель
Почётный пользователь
Участник форума
Регистрация
29 Янв 2012
Сообщения
6.785
Реакции
2.195
Баллы
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
Реакции
75
Баллы
65
Лучшие ответы
0
#15
Да уж, а я думал тутор Вама учить нада ;D wall&66@
 

Yelawolf

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

multivoin

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

Yelawolf

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

Bjorn

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

xterm

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

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