Тема: Скриптинг
Показать сообщение отдельно
Старый 01.02.2006, 20:59   #1
Администратор
Мастер
 
Аватар для DEDROIT
 
Регистрация: 31.01.2006
Адрес: Москва
Сообщений: 1,384
Сказал(а) спасибо: 36
Поблагодарили 233 раз(а) в 68 сообщениях
По умолчанию Скриптинг

И так, я начну:
Заходим в
Gothic II\_work\Data\Scripts\Content\Story\NPC
и создаём там файл
NONE_1000_DEDROIT.d

где
NONE – принадлежность к гильдии (в данном случае нейтрал,без гильдии).
1000 – уникальный порядковый номер НПС.
DEDROIT – имя вашего НПС.

Вот содержимое файла:

instance NONE_1000_DEDROIT (Npc_Default) //это создание персонажа (инстанции) от общего прототипа НПС
{
//-------------
//Данные персонажа
//-------------
name = "Арес"; //Имя нпс.
guild = GIL_NONE; //Принадлежность к гильдии.
npctype = NpcType_Friend; //Это отношение к главному герою(в нашем случае дружелюбный).
flags = 0; //Определяет "бессмертие" НПС. 0 - смертный, Npc_Flag_Immortal - бессмертный, Npc_Flag_Ghost - призрак.
id = 1000; //Порядковый номер персонажа.
level = 25; //Уровень НПС.
voice = 6; //Голос персонажа.
//-------------
//Аттрибуты
//--------------------
attribute[ATR_STRENGTH] = 170; //Сила
attribute[ATR_DEXTERITY] = 150; //Ловкость
attribute[ATR_MANA_MAX] = 110; //Максимальная мана
attribute[ATR_MANA] = 110; //Текущая мана
attribute[ATR_HITPOINTS_MAX] = 200; //Максимальное здоровье
attribute[ATR_HITPOINTS] = 200; //Текущее здоровье
//-------------
//Защита
//----------------------
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] = 60; //Владение Одноручником
HitChance [NPC_TALENT_2H] = 50; //Владение Двуручником
HitChance [NPC_TALENT_BOW] = 60; //Умение обращаться с Луком
HitChance [NPC_TALENT_CROSSBOW] = 30; //Умение обращаться с Арбалетом
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); //Это как будет выглядеть персонаж толстым или худым.
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_Bau_M->доспехи, одетые на персонажа.
//---------------
//Экипировка
//--------------------
EquipItem (self, ItMW_Addon_Stab01); //то, что надето на персонаже(в дано случаи волчий нож)!
EquipItem (self, ItRw_Addon_MagicBow); //Магический лук
//Все вещи,которыесть в игре можно посмотреть в папке Items.
//----------------
//Инвентарь
//--------------------
CreateInvItems (self, ItAm_Prot_Fire_01, 2); //Это то что будет находится в Инвентаре(в данном случаи амулет огня).
//Как я уже и сказал все вещи можно посмотреть в папке Items.
//---------------
//Чувства
//-----------------------
senses = SENSE_SEE | SENSE_SMELL | SENSE_HEAR; //Зрение, обаняние, слух.
senses_range = 2000; //Расстояние действия чувств !
//----------------
//Искусственный интеллект
//------
fight_tactic = FAI_HUMAN_STRONG; //Эта функция отвечает,за то как будет драться нпс,ещё есть FAI_HUMAN_MASTER и FAI_HUMAN_COWARD!
daily_routine = rtn_start_1000; //Ввод распорядка дня.
};
//----------------
//Распорядок дня
//---------------
func void rtn_start_1000() //функция распорядка дня
{
TA_Smoke_Joint (8, 0, 22, 0, "NW_FARM1_OUT_01");
TA_Smoke_Joint (22, 0, 8, 0, "NW_FARM1_OUT_01");
};
//TA_Smoke_Joint->стоит и курит болотник!
//8, 0, 22, 0->время, в течении которого нпс совершает действие.
//NW_FARM1_OUT_01->название вайпоинта,где будет стоять ваш нпс (В даном случае возле Лобарта)!
//Самый быстрый способ посмотреть нужный вам вейпоинт,это зайти в Spacer и полетать по нему! Вот так приблизительно должен выглядеть скрипт без комментариев:

instance NONE_1000_DEDROIT (Npc_Default)
{
//-------------
//Данные персонажа
//-------
name = "Арес";
guild = GIL_NONE;
npctype = NpcType_Friend;
level = 25;
voice = 6;
id = 1000;
//-------------
//Аттрибуты
//---------------
attribute[ATR_STRENGTH] = 170;
attribute[ATR_DEXTERITY] = 150;
attribute[ATR_MANA_MAX] = 110;
attribute[ATR_MANA] = 110;
attribute[ATR_HITPOINTS_MAX] = 200;
attribute[ATR_HITPOINTS] = 200;
//-------------
//Визуализация
//------------
Mdl_SetModelFatness (self, 0);
Mdl_ApplyOverlayMds (self, "Humans_Relaxed.mds");
B_SetNpcVisual (self, MALE, "Hum_Head_FatBald", Face_N_NormalBart03, BodyTex_N, ITAR_Bau_M);
//-------------
//Таланты
//----------------
HitChance [NPC_TALENT_1H] = 60;
HitChance [NPC_TALENT_2H] = 50;
HitChance [NPC_TALENT_BOW] = 60;
HitChance [NPC_TALENT_CROSSBOW] = 30;
//-------------
//Инвентарь
//---------------
CreateInvItems (self, ItAm_Prot_Fire_01, 2);
EquipItem (self, ItMW_Addon_Stab01);
EquipItem (self, ItRw_Addon_MagicBow);
//-------------
//Чувства
//-------------------
senses = SENSE_SEE | SENSE_SMELL | SENSE_HEAR;
senses_range = 2000;
//-------------
//АИ
//------------------------
fight_tactic = FAI_HUMAN_MASTER;
daily_routine = Rtn_Start_1000;
};
func void Rtn_Start_1000()
{
TA_Smoke_Joint (8,0,22,0,"NW_FARM1_OUT_01");
TA_Smoke_Joint (22,0,8,0,"NW_FARM1_OUT_01");
};Теперь вставляем нпс в игру!

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

Примечание: Если во время компиляции будут ошибки,вы должны их исправить и произвести компиляцию заново. Убедитесь, что файл NONE_1000_DEDROIT.d включен в процесс компиляции (добавлен в gothic.src либо как STORY\NPC\*.d, либо как Story\NPC\NONE_1000_DEDROIT.d).

Список распорядка дня нпс:

TA_Announce_Herold – Объявления Герольда
TA_Circle – Ритуал в Круге солнца
TA_Concert – Концерт InExtremo в аддоне
TA_Cook_Cauldron – Приготовление пищи в котле
TA_Cook_Pan – Приготовление пищи на сковороде
TA_Cook_Stove – Приготовление пищи в печи
TA_Dance – Танцы НПС
TA_FleeToWp – НПС убегает на свою точку
TA_Follow_Player – НПС следует за ГГ
TA_Ghost – Поведение призраков
TA_GhostWusel – Поведение Радемеса
TA_Guard_Hammer – Охрана Святого молота
TA_Guard_Passage – Охрана прохода
TA_Guide_Player – ГГ следует за НПС
TA_Pee – НПС справляет малую нужду
TA_Pick_FP – НПС бродит по PICK фрипоинтам (что-то ищет или собирает)
TA_Pick_Ore – Добыча руды
TA_Play_Lute – Игра на лютне
TA_Potion_Alchemy – Приготовление алхимических напитков
TA_Practice_Magic – Тренировка магии (не используется)
TA_Practice_Sword – Упражнения с мечом
TA_Pray_Innos – Молитва статуям Инноса
TA_Pray_Innos_FP – Молитва Инносу на заданной точке PRAY
TA_Pray_Sleeper – Молитва статуям Белиара (не используется)
TA_Pray_Sleeper_FP – Молитва Белиару на заданной точке PRAY (не используется)
TA_Preach_Vatras – Проповедь Ватраса
TA_Rake_FP – Работа в поле
TA_Read_Bookstand – Чтение книг
TA_RangerMeeting – Собрание “Кольца Воды” у Орлана
TA_Repair_Hut – Ремонт хижины
TA_Roast_Scavenger – Барбекю из Падальщика
TA_RunToWP – НПС бежит на охраняемую точку
TA_Saw – Распиловка древесины
TA_Sit_Bench – Сидеть на скамье
TA_Sit_Campfire – Сидеть у костра
TA_Sit_Chair – Сидеть на стуле
TA_Sit_Throne – Сидеть на троне
TA_Sleep – Спать на кровати
TA_Sleep_Deep – Очень крепко спать на кровати (не используется)
TA_Smalltalk – Мини диалог между НПС
TA_Smith_Anvil – Использование наковальни (ковка оружия)
TA_Smith_Cool – Закалка заготовки оружия
TA_Smith_Fire – Разогрев заготовки оружия в горне
TA_Smith_Sharp – Заточка оружия
TA_Smoke_Joint – Курение болотника
TA_Smoke_Waterpipe – Курение кальяна
TA_Spit_Fire – Игра с факелами (не используется)
TA_Stand_ArmsCrossed – Стоять скрестив руки
TA_Stand_Dementor – Состояние ожидания Черных магов (Ищущие)
TA_Stand_Drinking – Пить самогон стоя
TA_Stand_Eating – Употреблять пищу стоя
TA_Stand_Guarding – Охрана территории
TA_Stand_Sweeping – Уборка территории
TA_Stand_WP – Стоять на вайпоинте
TA_Stomp_Herb – Толочь траву
TA_Study_WP – Заниматься науками (передача листа бумаги (записки) ГГ)
TA_Sweep_FP – Работа щеткой
TA_Wash_FP – Умываться (не используется)

Есть ещё одна функция распорядка дня (не оформлена через ТА)
ZS_Bandit – Поведение бандита

Полный список гильдий:

NONE – нейтрал, без гильдии.
BAU – крестьянин;
BDT – бандит;
KDW – маг воды;
MIL – милиция;
PIR – пират;
VLK – горожанин;
DJG – охотник на драконов;
KDF – маг огня;
NOV – послушник;
PAL – паладин;
SLD – наёмник;

Список бронь, которые есть в игре:

ITAR_MIL_L,Легкие доспехи стражника
ITAR_MIL_M,Тяжелые доспехи стражника
ITAR_PAL_M,Доспехи рыцаря
ITAR_PAL_H,Доспехи паладина
ITAR_SLD_L,Легкие доспехи наемника
ITAR_SLD_M,Средние доспехи наемника
ITAR_SLD_H,Тяжелые доспехи наемника
ITAR_DJG_Crawler,Доспехи из панцирей ползунов
ITAR_DJG_L,Легкие доспехи ОнД
ITAR_DJG_M,Средние доспехи ОнД
ITAR_DJG_H,Тяжелые доспехи ОнД
ITAR_DJG_BABE,Кольчуга охотницы за драконами
ITAR_NOV_L,Ряса послушника
ITAR_KDF_L,Мантия Мага Огня
ITAR_KDF_H,Тяжелая мантия Мага Огня
ITAR_Leather_L,Кожаные доспехи
ITAR_BDT_M,Средняя бандитская кольчуга
ITAR_BDT_H,Тяжелая бандитская кольчуга
ITAR_RANGER_Addon,Кольчуга ‘Кольца Воды’
ITAR_Fake_RANGER,Разорванная кольчуга
ITAR_KDW_L_Addon,Легкая мантия Магов Воды
ITAR_KDW_H,Мантия Мага Воды
ITAR_PIR_L_Addon,Одежда пирата
ITAR_PIR_M_Addon,Доспехи пирата
ITAR_PIR_H_Addon,Одежда капитана
ITAR_VLK_L,Одежда горожанина
ITAR_VLK_M,Одежда горожанина
ITAR_VLK_H,Одежда горожанина
ITAR_VlkBabe_L,Одежда горожанки 1
ITAR_VlkBabe_M,Одежда горожанки 2
ITAR_VlkBabe_H,Одежда горожанки 3
ITAR_BAU_L,Одежда крестьянина 1
ITAR_BAU_M,Одежда крестьянина 2
ITAR_BauBabe_L,Одежда крестьянки 1
ITAR_BauBabe_M,Одежда крестьянки 2
ITAR_Bloodwyn_Addon,Кольчуга Бладвина
ITAR_FireArmor_Addon,Магическая кольчуга
ITAR_MayaZombie_Addon,Древняя кольчуга
ITAR_OreBaron_Addon,Броня барона
ITAR_Raven_Addon,Кольчуга Равена
ITAR_Thorus_Addon,Тяжелая кольчуга гардиста
ITAR_BARKEEPER,Одежда трактирщика
ITAR_CorAngar,Кольчуга Кор Ангара
ITAR_Dementor,Темная накидка
ITAR_Diego,Кольчуга Диего
ITAR_Governor,Накидка гор. советника
ITAR_JUDGE,Одежда судьи
ITAR_LESTER,Роба Лестера
ITAR_SMITH,Одежда кузнеца
ITAR_XARDAS,Мантия Темных Искусств
ITAR_Prisoner,Одежда заключенного
ITAR_PAL_SKEL,Древняя кольчуга
NO_ARMOR,Нет доспех

DEDROIT вне форума   Ответить с цитированием