Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

 Правила этого форума ПРАВИЛА РАЗДЕЛА
9 страниц V  « < 3 4 5 6 7 > »   
Ответить в эту темуОткрыть новую тему
> ПОСТРОЕНИЕ СКРИПТОВЫХ СЦЕН, Основы написания Cutscene
Aiwan
сообщение Dec 27 2005, 10:50
Сообщение #101


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



RoHaN привет. Статья моя, вот и все совпадения. =)
QUOTE (RoHaN @ Dec 27 2005, 11:11)
Важно то, что у меня перестали работать Цутсценьы !!!!!!!!!!!!! Что такое ??????!!!!!!!!!

Что значит перестали? Скажи что ты сделал, что так произошло?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
RoHaN
сообщение Dec 28 2005, 15:37
Сообщение #102


Level 1


Класс: Варвар
Характер: True Neutral
Раса: Полуорк



Помогите PLZ . У меня перестали работать Кутсцены !!!!!!!!!! Я в недоумении, подскажите, что делать ???????
Добавлено в [mergetime]1135773618[/mergetime]
Как сдеать чтобы трупы не убирались сами по себе с поля боя ????????
Добавлено в [mergetime]1135774008[/mergetime]
{Обясняю}В своём модуле я сделал несколько не сложных сценок (порядка 4-5). А потом делаю очередной триггер со сценкой, а он отказывается работать !!!!!!!!!!!!!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Dec 28 2005, 16:11
Сообщение #103


Вечно меняющийся
Иконки Групп

Класс: Монах
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]



QUOTE
Как сдеать чтобы трупы не убирались сами по себе с поля боя ????????

Свойства NPC - улучшенный - время разложения. (там настрой нужное время, вообще подобные вопросы, лучше постить в других темах, например в: "Одиночный вопрос".)
QUOTE
{Обясняю}В своём модуле я сделал несколько не сложных сценок (порядка 4-5). А потом делаю очередной триггер со сценкой, а он отказывается работать !!!!!!!!!!!!!

Повторяю приведи код, скажи куда ставишь скрипт, обьясни ситуацию. Телепатией вроде не владеем, а причин чтоб не работало может быть оч. много... ;)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Dec 28 2005, 19:03
Сообщение #104


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



ТЕМА: ПОСТРОЕНИЕ СКРИПТОВЫХ СЦЕН, Основы написания Cutscene
QUOTE (RoHaN @ Dec 28 2005, 15:37)
Как сдеать чтобы трупы не убирались сами по себе с поля боя ????????

Объяснишь связь между темой и вопросом?

Топай в "Вопросы Новичков". (по проблемам незапуска сценок тоже туда).
\\ пока преды не поставил.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
RoHaN
сообщение Jan 9 2006, 17:49
Сообщение #105


Level 1


Класс: Варвар
Характер: True Neutral
Раса: Полуорк



Привет народ !
Это снова я :D . Долго не мог прочитать ваши ответы. т.к. деньги коньчились .
Можно ещё раз про время разложения трупов PLZ . И ещё свой модуль, котором я уже упоминал, почти закончен . Большой вам РЕСПЕКТ за оказанную помощь .[COLOR=gray]
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DEM
сообщение Feb 27 2006, 22:07
Сообщение #106


Level 7
**

Класс: Маг
Характер: Lawful Neutral
Раса: Эльф



Как я знаю разложение трупов настраивается через свойства объекта...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Elf-Drow
сообщение Mar 29 2006, 07:21
Сообщение #107


Level 8
***

Класс: Теневой Танцор
Характер: True Neutral
Раса: Эльф



Здрасьте, вот делал сценку на основе Айванской и решил добавить спелл огненного шара, но ничего не вышло, вот пример, делал как было показано в тулсете...

NSS
//::///////////////////////////////////////////////
//:: Copyright © 2004 WRG!
//:://////////////////////////////////////////////
//:: Created By: Aiwan
//:: Created On: 7.08.2004
//:://////////////////////////////////////////////

void main()
{
object oPC = GetPCSpeaker();
object oNPC = GetObjectByTag("NPC_UPIR");
object oDoor = GetNearestObjectByTag("DOOR1");
object oLuk = GetNearestObjectByTag("PORTAL");
object oSec = OBJECT_SELF;
object oWPpc = GetWaypointByTag("WP_PC1");
object oWPpc2 = GetWaypointByTag("WP_PC2");
object oWP1 = GetWaypointByTag("UPIR1");
object oWP2 = GetWaypointByTag("UPIR2");
object oWP3 = GetWaypointByTag("UPIR3");
object oWP4 = GetWaypointByTag("UPIR4");
object oWP5 = GetWaypointByTag("UPIR5");
object oAnimal = GetAssociate(ASSOCIATE_TYPE_ANIMALCOMPANION, oPC);
object oDominated = GetAssociate(ASSOCIATE_TYPE_DOMINATED, oPC);
object oFamiliar = GetAssociate(ASSOCIATE_TYPE_FAMILIAR, oPC);
object oHenchman = GetAssociate(ASSOCIATE_TYPE_HENCHMAN, oPC);
object oSummoned = GetAssociate(ASSOCIATE_TYPE_SUMMONED, oPC);
//::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
effect eCutInv = EffectVisualEffect(VFX_DUR_CUTSCENE_INVISIBILITY);
effect eCutPar = EffectCutsceneParalyze();
    {
    SetLocalInt(oPC, "CUT_SCEN_02", TRUE);
    SetLocalLocation(oPC,"START_POINT", GetLocation(oPC));
    AssignCommand(oSec, ActionPauseConversation());
    AssignCommand(oNPC, ClearAllActions()); 
    AssignCommand(oNPC, ActionJumpToObject(oWP1));
    AssignCommand(oNPC, ActionDoCommand(SetFacingPoint(GetPosition(oDoor))));
    FadeToBlack(oPC, FADE_SPEED_FASTEST);
    AssignCommand(oPC, ClearAllActions());   
    ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eCutInv, oPC, 41.0);
    SetCutsceneMode(oPC); 
    SetAILevel(oNPC, AI_LEVEL_HIGH);
    ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eCutPar, oAnimal, 40.5);
    ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eCutInv, oAnimal, 40.5);
    ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eCutPar, oHenchman, 40.5);
    ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eCutInv, oHenchman, 40.5);
    ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eCutPar, oDominated, 40.5);
    ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eCutInv, oDominated, 40.5);
    ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eCutPar, oFamiliar, 40.5);
    ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eCutInv, oFamiliar, 40.5);
    ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eCutPar, oSummoned, 40.5);
    ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eCutInv, oSummoned, 40.5);
    DelayCommand(1.0, AssignCommand(oPC, JumpToObject(oWPpc)));
    DelayCommand(1.5, AssignCommand(oPC, SetCameraFacing(10.0, 12.0, 40.0, CAMERA_TRANSITION_TYPE_SNAP)));
    DelayCommand(2.0, FadeFromBlack(oPC, FADE_SPEED_MEDIUM));
    DelayCommand(2.5, AssignCommand(oPC, ClearAllActions()));
    DelayCommand(3.0, AssignCommand(oNPC, ActionPlayAnimation(ANIMATION_LOOPING_LOOK_FAR, 0.9, 5.0)));
    DelayCommand(3.5, AssignCommand(oPC, SetCameraFacing(10.0, 20.0, 40.0, CAMERA_TRANSITION_TYPE_SLOW)));
    // Повернем ракурс камеры
    DelayCommand(4.0, AssignCommand(oNPC, SpeakString("Должен есть мозги!")));
    DelayCommand(5.0, AssignCommand(oNPC, ActionMoveToObject(oWP2)));
    DelayCommand(7.0, AssignCommand(oNPC, ActionPlayAnimation(ANIMATION_LOOPING_GET_MID, 0.9, 3.0)));
    DelayCommand(8.0, AssignCommand(oNPC, SpeakString("Должен найти!")));
    DelayCommand(9.5, AssignCommand(oNPC, ActionForceMoveToObject(oWP3, TRUE, 1.0, 7.0)));
    DelayCommand(10.0, AssignCommand(oNPC, ActionDoCommand(SetFacingPoint(GetPosition(oWP3)))));
    DelayCommand(11.0, AssignCommand(oNPC, ActionPlayAnimation(ANIMATION_LOOPING_GET_MID, 0.9, 5.0)));
    DelayCommand(12.0, AssignCommand(oPC, ClearAllActions()));
    DelayCommand(12.5, FadeToBlack(oPC, FADE_SPEED_FASTEST));
    DelayCommand(13.5, AssignCommand(oPC, JumpToObject(oWPpc2)));
    DelayCommand(13.6, AssignCommand(oPC, SetCameraFacing(130.0, 20.0, 40.0, CAMERA_TRANSITION_TYPE_SNAP)));
    DelayCommand(14.5, FadeFromBlack(oPC, FADE_SPEED_MEDIUM));
//==============================================================================
    DelayCommand(17.0, AssignCommand(oNPC, ActionDoCommand(SetFacingPoint(GetPosition(oDoor)))));
    DelayCommand(19.0, AssignCommand(oNPC, ActionPlayAnimation(ANIMATION_LOOPING_LOOK_FAR, 0.9, 3.0)));
    DelayCommand(20.0, AssignCommand(oNPC, SpeakString("Сожру его мозги позже! Надо сваливать!")));
    DelayCommand(21.0, AssignCommand(oNPC, ActionCastSpellAtObject(int nFireball, object oNPC3, int nMetaMagic=METAMAGIC_FIRE, int bCheat=FALSE, int nDomainLevel=0, int nProjectilePathType_FIRE=PROJECTILE_PATH_TYPE_DEFAULT, int bInstantSpell=TRUE); // Именно здесь я делаю спелл огненного шара. Делал как написано в тулсете
    DelayCommand(24.0, AssignCommand(oNPC, ActionForceMoveToObject(oWP4, FALSE, 1.0, 15.0)));
    DelayCommand(27.0, AssignCommand(oNPC, ActionDoCommand(SetFacingPoint(GetPosition(oWP5)))));
    DelayCommand(28.0, AssignCommand(oPC, ClearAllActions()));
    DelayCommand(28.6, AssignCommand(oPC, SetCameraFacing(130.0, 10.0, 40.0, CAMERA_TRANSITION_TYPE_SLOW)));
    DelayCommand(28.0, AssignCommand(oNPC, ActionPlayAnimation(ANIMATION_LOOPING_GET_LOW, 0.9, 3.0)));
    DelayCommand(33.0, AssignCommand(oLuk, ActionPlayAnimation(ANIMATION_PLACEABLE_OPEN, 1.0)));
    DelayCommand(36.5, AssignCommand(oNPC, ClearAllActions()));
    DelayCommand(33.0, AssignCommand(oNPC, ActionMoveToObject(oWP5)));
    DelayCommand(39.5, AssignCommand(oNPC, ActionPlayAnimation(ANIMATION_LOOPING_GET_LOW, 3.0, 1.0)));
    DelayCommand(40.5, AssignCommand(oNPC, ClearAllActions()));
    DelayCommand(40.8, AssignCommand(oNPC, ActionDoCommand(DestroyObject(oNPC))));   
    DelayCommand(41.5, AssignCommand(oLuk, ActionPlayAnimation(ANIMATION_PLACEABLE_CLOSE, 2.0)));
    DelayCommand(42.0, AssignCommand(oPC, ClearAllActions()));   
    DelayCommand(42.5, FadeToBlack(oPC, FADE_SPEED_FASTEST));
    DelayCommand(43.5, AssignCommand(oPC, ActionJumpToLocation(GetLocalLocation(oPC,"START_POINT"))));
    DelayCommand(44.5, FadeFromBlack(oPC, FADE_SPEED_MEDIUM));   
    DelayCommand(45.5, AssignCommand(oSec, ActionResumeConversation()));
    DelayCommand(46.0, SetCutsceneMode(oPC, FALSE));
    }
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Mar 29 2006, 07:48
Сообщение #108


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [Sn]



Elf-Drow, закрывай тег - [/NSS] !!!

По заклу. Тебе ведь редкатор показывает, что строчка не правильная!

NSS
void ActionCastSpellAtObject(int nSpell, object oTarget, int nMetaMagic=METAMAGIC_ANY, int bCheat=FALSE, int nDomainLevel=0, int nProjectilePathType=PROJECTILE_PATH_TYPE_DEFAULT, int bInstantSpell=FALSE)

void - показывает, что функция не возвращает значений.

ActionCastSpellAtObject - название функции

int nSpell, object oTarget, int nMetaMagic=METAMAGIC_ANY, int bCheat=FALSE, int nDomainLevel=0, int nProjectilePathType=PROJECTILE_PATH_TYPE_DEFAULT, int bInstantSpell=FALSE - параметры функции

В параметрах:
int, object... тип данных, которые должны записываться в этот параметр.
oTarget, nMetaMagic... - это название параметра, тебе это писать не надо, это самой функцией используется.
Ты замест int nSpell, object oTarget... должен написать нужное тебе и подходящее по смыслу.

Как-то путано, но ладно, покажу наглядно. Посмотри, как это должно записываться.
NSS
DelayCommand(21.0, AssignCommand(oNPC, ActionCastSpellAtObject(SPELL_FIREBALL, oNPC3, METAMAGIC_FIRE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE);

Понятно?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
[MoF]Darth_Nick
сообщение Mar 29 2006, 09:10
Сообщение #109


Level 6
Иконки Групп

Класс: Некромант
Характер: Chaotic Evil
Раса: Нежить
NWN: Скриптинг [PW]



2RoHaN
http://nwcustom.jino-net.ru/upload/loot_courpse.gif
если у тебя русская, посмотри по расположению вкладки

Сообщение отредактировал [MoF]Darth_Nick - Mar 29 2006, 09:11
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Elf-Drow
сообщение Mar 29 2006, 10:30
Сообщение #110


Level 8
***

Класс: Теневой Танцор
Характер: True Neutral
Раса: Эльф



Теперь более менее, а именно так нужно записывать или можно как-нибудь покороче? Я видел пару скриптов которые можно было записывать или мега длинно или коротко...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Mar 29 2006, 16:09
Сообщение #111


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [Sn]



QUOTE(Elf-Drow @ Mar 29 2006, 11:30) [snapback]75009[/snapback]
Теперь более менее, а именно так нужно записывать или можно как-нибудь покороче? Я видел пару скриптов которые можно было записывать или мега длинно или коротко...

Ты о чем?

Если о кол-ве параметров в функции, там это смотря устраивают тебя дефолтные или нет.

Стандартно функция выглядет так:
NSS
void ActionCastSpellAtObject(int nSpell, object oTarget, int nMetaMagic=METAMAGIC_ANY, int bCheat=FALSE, int nDomainLevel=0, int nProjectilePathType=PROJECTILE_PATH_TYPE_DEFAULT, int bInstantSpell=FALSE)

int nSpell и object oTarget, всегда должны быть тобой указаны, так как по умолчанию задать этот параметр не льзя, вернее не имеет смысла.
У всех остальных параметров есть дефолтная настройка, такие как: int nMetaMagic=METAMAGIC_ANY, int bCheat=FALSE... Тобишь, если тебя устраивает METAMAGIC_ANY, то ты можешь данный параметр вообще не писать, он по дефолту стоит равным METAMAGIC_ANY.
Но есть одно НО, если тебя не устраивает дефолт кокого-нить параметра, то прейдется писать и все параметры до него. Вот и получается, что если тебя все устраивает ты запишешь
NSS
DelayCommand(21.0, AssignCommand(oNPC, ActionCastSpellAtObject(SPELL_FIREBALL, oNPC3)));

А если не устраивает последний, то
NSS
DelayCommand(21.0, AssignCommand(oNPC, ActionCastSpellAtObject(SPELL_FIREBALL, oNPC3, METAMAGIC_FIRE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));


Ты об этом спрашивал?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Elf-Drow
сообщение Mar 30 2006, 14:46
Сообщение #112


Level 8
***

Класс: Теневой Танцор
Характер: True Neutral
Раса: Эльф



Да об этом, все работает, но только не ActionCastSpellAtObject а ActionCastFakeSpellAtObject, то есть иллюзия. Почему НПС не может колдовать, а делает тока иллюзию?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Mar 30 2006, 16:36
Сообщение #113


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [Sn]



QUOTE(Elf-Drow @ Mar 30 2006, 15:46) [snapback]75274[/snapback]
Да об этом, все работает, но только не ActionCastSpellAtObject а ActionCastFakeSpellAtObject, то есть иллюзия. Почему НПС не может колдовать, а делает тока иллюзию?

Для колдовства нужно:
1) Чтобы НПС знал и мог пользоваться данным заклинанием.
2) Чтобы он мог достать этим заклинанием до жертвы. Тобишь расстояние подходящие.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Elf-Drow
сообщение Mar 31 2006, 05:31
Сообщение #114


Level 8
***

Класс: Теневой Танцор
Характер: True Neutral
Раса: Эльф



При создании сценки я руководствовался тем же. Поставил НПС 30 уровень волшебника, 20 колдуна, на всякий. (IMG:style_emoticons/kolobok_light/biggrin.gif) Потом поставил галочку на то, чтобы файрбол был как бы готов у НПС и он мог его использовать. Но НПС в то, время, когда должен колдовать тупо стоит, а затем продолжает выполнять последующие действия, плевав на колдовство...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Mar 31 2006, 09:07
Сообщение #115


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [Sn]



QUOTE(Elf-Drow @ Mar 31 2006, 06:31) [snapback]75425[/snapback]
Но НПС в то, время, когда должен колдовать тупо стоит, а затем продолжает выполнять последующие действия, плевав на колдовство...

QUOTE(-fenix- @ Mar 30 2006, 17:36) [snapback]75301[/snapback]
2) Чтобы он мог достать этим заклинанием до жертвы. Тобишь расстояние подходящие.

Может дело в этом?
Покажи эту строчку с кастом.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Elf-Drow
сообщение Mar 31 2006, 10:05
Сообщение #116


Level 8
***

Класс: Теневой Танцор
Характер: True Neutral
Раса: Эльф



Вот
NSS
DelayCommand(5.0, AssignCommand(oNPC, ActionCastFakeSpellAtObject(SPELL_FIREBALL, oNPC1)));
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Mar 31 2006, 12:40
Сообщение #117


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [Sn]



Elf-Drow, ну эта ведь у тебя работает.
У тебя с ActionCastSpellAtObject не работает, так вот, покажи как ты пишешь с ActionCastSpellAtObject. Ты уверен, что непись может скаставать этот закл на нужный объект, ему ни чего не мешает, например расстояние?
Возможно, что ты не правильно настраиваешь закл у мага. Чтобы этого избежать на 100% в функции
NSS
void ActionCastSpellAtObject( int nSpell,object oTarget, int nMetaMagic = METAMAGIC_ANY, int bCheat = FALSE, int nDomainLevel = 0, int nProjectilePathType = PROJECTILE_PATH_TYPE_DEFAULT, int bInstantSpell = FALSE)

параметр bCheat поставь TRUE. Если так напишешь, то для чтение закла маг не будет обязан его знать.


Еще, проверь объект, на который твой НПС кастует, возможно, ты в скрипте указал не его ТЕГ или написал его с ошибкой.

Сообщение отредактировал -fenix- - Mar 31 2006, 12:50
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Elf-Drow
сообщение Mar 31 2006, 16:56
Сообщение #118


Level 8
***

Класс: Теневой Танцор
Характер: True Neutral
Раса: Эльф



NSS
DelayCommand(5.0, AssignCommand(oNPC, ActionCastSpellAtObject(SPELL_FIREBALL, oNPC1)));

Точно так же. Но я проверю с TRUE...
С TRUE работает!!! Но не наносится дамаг НПС
Все хорошо, продолжаю делать модуль...

Сообщение отредактировал Elf-Drow - Apr 8 2006, 16:25
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Chimeric
сообщение May 4 2006, 17:21
Сообщение #119


Пушкин
Иконки Групп

Класс: Обыватель
Характер: Chaotic Neutral
Раса: Гигант
NWN: Тексты



Может быть, этот вопрос уже задавался, но тем не менее: как сделать так, чтобы диалог нельзя было прервать (тот "бокс" в Свойствах не делает ничего) и при этом скрывался интерфейс? Например, с такого разговора начинается модуль Kingmaker. Очень впечатляюще.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение May 4 2006, 17:52
Сообщение #120


Вечно меняющийся
Иконки Групп

Класс: Монах
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]



Нужно просто установить режим кутсцены.
NSS
void SetCutsceneMode(
    object oCreature,
    int nInCutscene = TRUE
);

QUOTE
с такого разговора начинается модуль Kingmaker

Не знаю, не играл. (IMG:style_emoticons/kolobok_light/smile.gif)

Сообщение отредактировал Dik Morris - May 4 2006, 17:55
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение May 4 2006, 17:56
Сообщение #121


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



QUOTE(Chimeric @ May 4 2006, 18:21) [snapback]80750[/snapback]
тот "бокс" в Свойствах не делает ничего)

он для другого.
зы: не забыть после разговора катсцену снять.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Chimeric
сообщение May 5 2006, 11:38
Сообщение #122


Пушкин
Иконки Групп

Класс: Обыватель
Характер: Chaotic Neutral
Раса: Гигант
NWN: Тексты



Сейчас у меня стоит вот что в ActionTaken первых строк разговора, принадлежащих NPC.

NSS
void main()
{

SetCutsceneMode(GetPCSpeaker(), TRUE);

}


Результат: разговор не происходит, начинается фильм, из которого не выбраться не Эскейпом и никак иначе.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение May 5 2006, 12:07
Сообщение #123


Вечно меняющийся
Иконки Групп

Класс: Монах
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]



Попробуй установить режим кутсцены до начала диалога.
(Например при наступании на триггер, вход в локу и т.п...)

Сообщение отредактировал Dik Morris - May 5 2006, 12:10
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Chimeric
сообщение May 5 2006, 12:19
Сообщение #124


Пушкин
Иконки Групп

Класс: Обыватель
Характер: Chaotic Neutral
Раса: Гигант
NWN: Тексты



Что же мне, каждый раз так изворачиваться? У меня диалогов тьма. Пробовал, между прочим, вписать OWNER_SELF через oTarget вместо игрока, тогда вообще ничего не происходит.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение May 5 2006, 12:26
Сообщение #125


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



не, зачем же так?
стандартный скрипт на начало разговора nw_c2_default4 берем и впихиваем туда сценку:

NSS
//:://////////////////////////////////////////////////
//:: nw_c2_default4
/*
  Default OnConversation event handler for NPCs.

*/

//:://////////////////////////////////////////////////
//:: Copyright © 2002 Floodgate Entertainment
//:: Created By: Naomi Novik
//:: Created On: 12/22/2002
//:://////////////////////////////////////////////////

#include "nw_i0_generic"

void main()
{
    // See if what we just 'heard' matches any of our
    // predefined patterns
    int nMatch = GetListenPatternNumber();
    object oShouter = GetLastSpeaker();
    object oSelf = OBJECT_SELF;

    if (nMatch == -1)
    {
        // Not a match -- start an ordinary conversation
        if (GetCommandable(OBJECT_SELF))
        {
            if (GetIsPC(oShouter))
                SetCutsceneMode(oShouter, TRUE); // наша катсцена
            ClearAllActions();
            BeginConversation();
        }
    }
    // Respond to shouts from friendly non-PCs only
    else if (GetIsObjectValid(oShouter)
              && !GetIsPC(oShouter)
              && GetIsFriend(oShouter))
    {
        object oIntruder = OBJECT_INVALID;
        // Determine the intruder if any
        if(nMatch == 4)
        {
            oIntruder = GetLocalObject(oShouter, "NW_BLOCKER_INTRUDER");
        }
        else if (nMatch == 5)
        {
            oIntruder = GetLastHostileActor(oShouter);
            if(!GetIsObjectValid(oIntruder))
            {
                oIntruder = GetAttemptedAttackTarget();
                if(!GetIsObjectValid(oIntruder))
                {
                    oIntruder = GetAttemptedSpellTarget();
                    if(!GetIsObjectValid(oIntruder))
                    {
                        oIntruder = OBJECT_INVALID;
                    }
                }
            }
        }

        // Actually respond to the shout
        RespondToShout(oShouter, nMatch, oIntruder);
    }

    // Send the user-defined event if appropriate
    if(GetSpawnInCondition(NW_FLAG_ON_DIALOGUE_EVENT))
    {
        SignalEvent(OBJECT_SELF, EventUserDefined(EVENT_DIALOGUE));
    }
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

9 страниц V  « < 3 4 5 6 7 > » 
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 19th April 2024 - 08:47