... Спустя несколько дней, недель и месяцов, и после того как я сам немного выучил "язык скриптов", то недолго думая, решил поделится с Вами, этим на вид очень сложным, но внутри очень интересным делом 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 стоит как ищущий))