Помощь - Поиск - Пользователи - Календарь
Полная версия: Вопросы новичков
Город Мастеров > РЕДАКТОРЫ > Neverwinter Nights Aurora Toolset
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103
Nik
Очень бы хотелось узнать - с помощью каких программ создаются ролики с расширением *.bik. Подскажите плиз! Хочется сделать анимацию...
rdx
RAD Video Tools
Мефистофель
QUOTE (rdx @ May 14 2005, 00:19)
RAD Video Tools

С вашнго позваления подправлю. RAD Video Tools, не создаёт ролики эта программка, конвертирует, файлы Avi WMA и другие видео файлы в Bik. формат. А если хотите уважаемый Nik создать видео ролик, если 3D то скорее всего 3D Max, ну а если 2D то Windows Movie Maker, думаю подойдёт. Возможно я не прав. спросите у WRG-шников которые делали клип для Пр. Ле.
Nik
Сенкс Всем! yes.gif
-fenix-
Помогите!

1) На Реалмс лежит перевод функций скриптов от Валео, но там он не закончен. Не знаете где взять полный.

2) Не знаете перевел какой-нить супер герой Лексикон на русский? А топо английски я и предложение не пойму, а после часов 5 работы с переводчиком чувствуешь себя как-будто Войну и Мир заново прочел.
Lex
1 - у нас на сайте самая полная версия была. Но он вроде не все перевел

2 - нет. Реально это надо очень небольшому кол-ву людей. Програмисты с английским на "ты" обычно. Да и в лексиконе язык вообще простой. smile.gif
himera
опять вопрос.
Мне нужно проверить класс и пол чара вошедшего в модуль. И в случае не совпадения смерть с текстом мол смени пол и клас.
Я взял за основы сгенерированый скрипт
Neverwinter Script Source
//::///////////////////////////////////////////////
//:: FileName check_on_enter
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 24.05.2005 3:58:47
//:://////////////////////////////////////////////
int StartingConditional()
{


    int iPassed = 0;
    if(GetLevelByClass(CLASS_TYPE_WIZARD, GetPCSpeaker()) >= 1)
        iPassed = 1;
    if(iPassed == 0)
        return FALSE;


    if(GetGender(GetPCSpeaker()) != GENDER_MALE)
        return FALSE;

    return TRUE;
}

Если я правельно понимаю надо заменить return TRUE; на что то и повесить в событиях модуля на OnClientEnter
А вот как подправить??
dumbo
эх, на сон грядущий... lazy.gif

himera
вставить в скрипт OnClientEnter:
Neverwinter Script Source
object oPC = GetEnteringObject();
if (GetLevelByClass(CLASS_TYPE_WIZARD, oPC)==0 || GetGender(oPC)!=GENDER_MALE)
{
  SetCommandable(FALSE, oPC);
  DelayCommand(5.00, SendMessageToPC(oPC,
                      "Только маг с йайцами может пройти здесь!"));
  DelayCommand(15.00, BootPC(oPC));
  return;
}

Добавлено в [mergetime]1116898840[/mergetime]
ps. да, в случае сингл-модуля нужно строку
Neverwinter Script Source
DelayCommand(15.00, BootPC(oPC));
заменить на:
Neverwinter Script Source
DelayCommand(15.00, EndGame("Ending"));
где "Ending" - название .bik файла завершительного видео-ролика...
himera
dumbo
От всей души спасибо!!! smile.gif
Garou
Народ, помогите неучу. Я хочу присвоить своей ниписи в диалоге голос... сделал вавовский файл реплики, залез в 2da soundset, там, спасибо Aiwan(у) тоже вроде все прописал, а куда разместить исходник, звуковой ролик на который будет ссылаться игра. И где находятся все вавы саундов прочих ниписей.
Aiwan
Скачай по ссылкам прогу NWN Explorer. В .bif файлах найдешь все.
Агрессинг
У меня возник вопрос: в этой части скрипта:
Neverwinter Script Source
ActionDoCommand(AssignCommand(oNPC,ActionSpeakString("ТЕКСТ")));
          ActionDoCommand(AssignCommand(oNPC,ActionPlayAnimation( ANIMATION_LOOPING_GET_MID,1.0,25.0f)));

NPC должен по идее говорить ТЕКСТ 25 секунд(столько играет анимация), а он говорит 12сек, а остальное время просто доигрывает анимацию. Как это исправить, подскажите пожалуйста!
И еще: в кат-сцене (скрипт вызывается триггером onenter) я хочу поменять ракурс камеры. Мне надо, чтоб камера меняла ракурс после действия НПС. Я ставил ее в очередь НПС, но камера не меняется!
вот часть скрипта:
Neverwinter Script Source
ActionDoCommand(AssignCommand(oNPC,ActionPlayAnimation( ANIMATION_LOOPING_GET_MID,1.0,15.0f)));
ActionDoCommand(AssignCommand(oNPC,DelayCommand(1.5, AssignCommand(oPC, SetCameraFacing(10.0, 17.0, 40.0, CAMERA_TRANSITION_TYPE_MEDIUM)))));

Заранее спасиб за помощь.
Убо-Сатло
QUOTE (Агрессинг @ Jun 2 2005, 18:36)
NPC должен по идее говорить ТЕКСТ 25 секунд(столько играет анимация), а он говорит 12сек

Разбей текст на две части и вторую пусти с задержкой 12 сек.
Насчет второго вопроса точно не могу сказать почему не работает, я
ActionDoCommand не пользуюсь, делаю через DelayCommand, но мне кажется, там слишком длинная цепочка команд. Триггер приказывает NPCу, через 1,5 сек приказать PCу, сменить ракурс. Попробуй просто
Neverwinter Script Source
ActionDoCommand(DelayCommand(1.5, AssignCommand(oPC, SetCameraFacing(10.0, 17.0, 40.0, CAMERA_TRANSITION_TYPE_MEDIUM))));
Но насчет Delay внутри ActionDo не знаю, я бы вообще сделал
Neverwinter Script Source
float t = // время от начала кутсценки
DelayCommand(float t, AssignCommand(oPC, SetCameraFacing(10.0, 17.0, 40.0, CAMERA_TRANSITION_TYPE_MEDIUM)));
Garou
Помогите... Самому не под силу... По сюжету при запуске диалога должно проверяться условие: если у игрока >= 10000 золотых, запускается ветка диалога, Какой скрипт ставится в Text Appears When и какой в Actions Taken, если после этого диалога ветка должна закрыться?
Добавлено в [mergetime]1117737399[/mergetime]
Помогите... Самому не под силу... По сюжету при запуске диалога должно проверяться условие: если у игрока >= 10000 золотых, запускается ветка диалога, Какой скрипт ставится в Text Appears When и какой в Actions Taken, если после этого диалога ветка должна закрыться?
Добавлено в [mergetime]1117737442[/mergetime]
Помогите... Самому не под силу... По сюжету при запуске диалога должно проверяться условие: если у игрока >= 10000 золотых, запускается ветка диалога, Какой скрипт ставится в Text Appears When и какой в Actions Taken, если после этого диалога ветка должна закрыться?
Lex
QUOTE (Агрессинг @ Jun 2 2005, 18:36)
DelayCommand(1.5,

вместо этого
Neverwinter Script Source
ActionDoCommand(


Вообще конструкция у тебя мудреная. Например первый ActionDoCommand можно нах. выкинуть. Он все равно в твоем варианте никак не отразится на результате.
Garou
Как запустить модуль с диалога игрока и неписи? Я разместил точку начала в тригере со скриптом (StartConversation) на onEnter(е), наверно допотопно...sad.gif Если так можно, тоесть ли способ уничтожить тригер после диалога?
P.S. Сори за вчерашний спам... У меня глючил инет...sad.gif
Lex
Garou, я не понял смысла раскидывания всех своих вопросов в 3 топика. Все можно было в "Вопросы новичков" постануть.
QUOTE (Garou @ Jun 3 2005, 10:55)
Как запустить модуль с диалога игрока и неписи? Я разместил точку начала в тригере со скриптом (StartConversation) на onEnter(е), наверно допотопно...sad.gif Если так можно, тоесть ли способ уничтожить тригер после диалога?

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

Neverwinter Script Source
void main()
{
int nActivated = GetLocalInt(OBJECT_SELF,"ACTIVATED");
if (nActivated) return;
SetLocalInt(OBJECT_SELF,"ACTIVATED",TRUE);

object oPC = GetEnteringObject();
object oNPC = GEtNearestObjectByTag("NPC_TAG");
AssignCommand(oNPC,ClearAllActions());
AssignCommand(oNPC,ActionStartConversation(oPC));
DestroyObject(OBJECT_SELF,1.0); // удаление через секунду после активации
}

ЗЫ: написано БЕЗ тулсета. Так что проверяй синтаксис.
тут свои нюансы есть, типа прерывания нпс и прочее, но это уже твое дело
Garou
Понял Lex! Буду постить в один форум. Спасибо за дельный советsmile.gif
Добавлено в [mergetime]1117784791[/mergetime]
Lex, а как мне заставить работать ветку диалога с проверкой у игрока наличия определенной сумы денег? Я спрашивал об этом раньше. Можешь помочь?
Lex
Neverwinter Script Source
int StartingConditional()
{
return  GetGold(GetPCSPeaker()>100);
}

скрипт ставишь в слот "text appears when" Той фразы, что должна появиться, если денег больше 100 монет.
сумму меняй как тебе надо
-fenix-
Может и тупой вопрос, но я не догоняю.

Зачем нужны квадратики под левелом (они от него зависят?) и зачем нужен кружок под ником (у кого зеленый, у кого красный). Разъясните плизз biggrin.gif

Lemegeton: В "Техническую поддержку", пожалуйста. Сюда, скорее, по тулсету.
Lemegeton
QUOTE (Garou @ Jun 3 2005, 10:38)
Lex, а как мне заставить работать ветку диалога с проверкой у игрока наличия определенной сумы денег? Я спрашивал об этом раньше. Можешь помочь?


Хм... возможно, это должно было выглядеть так:
Neverwinter Script Source
int StartingConditional()
{
return  GetGold(GetPCSPeaker())>=100;
}

Обратите внимание на скобки и знак равно (денег-то должно быть достаточно, а не обязательно больше опред. суммы!?)
Lex
да, скобки не туда поставил. smile.gif
Garou
Такая ситуация: Игрок появляется в локации, перед ним лежит непись (при этом юзать ее нельзя). Как это сделать? Мне говорили: "ставишь на неписе галочку Leave lootable corpse, затем на onspawn (или когда тебе там надо) прибиваешь непися." Врать не буду, не доперsad.gif Растолкуйте если не трудно.
Aiwan
Neverwinter Script Source
void main()
{
    object oNpc = OBJECT_SELF;
    SetIsDestroyable(FALSE,FALSE,FALSE);
    ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDeath(TRUE,TRUE), oNpc);
}
2GoDoom
Пояснение к скриптику Айвана - ставить этот скрипт надо на OnSpawn непися (если хочешь чтобы он сразу трупиком стал. wink.gif
Агрессинг
Убо-Сатло
а чего не удобно в функции
Neverwinter Script Source
ActionDoCommand(DelayCommand(1.5,

это то, что надо время подгадывать..
-fenix-
ActionDoCommand заставляет команды выполнятся только после завершения предыдущих.

А в функции DelayCommand можно указать точное время выполнения команды от начала скрипта.

Поэтому писать DelayCommand в ActionDoCommand по моему бессмысленно.
Lex
Neverwinter Script Source
ActionMoveToObject(oPoint);
ActionDoCommand(DelayCommand(2.0,SpeakString("Я ТУТ УЖЕ 2 СЕКУНДЫ СТОЮ"));

Дойти до точки и через 2 сек после того, как туда дошел скажет фразу. (скажет в любом случае, если ДОШЕЛ до точки.)
А теперь попробуй напиши это без "ActionDoCommand(DelayCommand(1.5" (чтобы было 2 строки кода)
Другое дело, что это можно заменить ожиданием, но есть нюансы и тут: например прерывание.

Вообще всем читать тему про катсцены, так вроде сказано что такое Акция, Делэй и прочее.
надо еще командаблы расписать на досуге

Aiwan
QUOTE (-fenix- @ Jun 4 2005, 14:47)
Поэтому писать DelayCommand в ActionDoCommand по моему бессмысленно.

При помощи DelayCommand, можно выстроить Актионы как тебе надо. И вообще, в каждой ситуации свои прибамбасы.
QUOTE (-fenix- @ Jun 4 2005, 14:47)
ActionDoCommand заставляет команды выполнятся только после завершения предыдущих.

ActionDoCommand позволяет ставить не Актионы в стэк. Читайте мои статьи про катсцены, там все разжевано про это.
Archangel
Люди, подскажите почему это не работает:
1)

Neverwinter Script Source
Void main()
  {
  SetLocalInt(OBJECT_SELF,"1",TRUE);
  }

2)
Neverwinter Script Source
int StartingConditional()
  {
  return GetLocalInt(OBJECT_SELF,"1");
  }

Есть диалог:
[NPC]Да, сэр?
[PC]У вас есть задание для меня?
[NPC]Да, конечно...(дает задание)
[NPC]Но я уже дал вам задание. Приходите, когда выполните его.
[PC]Хорошо. Я прииду позже.
[PC]Хорошо. Я его выполню.
Во время диалога на фразу НПС "Да, конечно...(дает задание)" вешается 1й скрипт(в Действия совершены), затем, когда игрок снова спрашивает у НПС "У вас есть задание для меня?", то непись должен ответить уже "Но я уже дал вам задание. Приходите, когда выполните его." При этом на эту строчку(в Текст проявляется при) вешается 2й скрипт.
Но это не работает. Почему же? Сделал, как было написано в статье "Игромании", но ничего не произошло... cray.gif
Смотрел в теме "Часто задаваемые вопросы", но там написано точно также. Неужели я настолько непонятливый??? no.gif
ЗЫ
Только ненадо меня отсылать читать статьи! Читал я уже! unsure.gif
Lex
поменяй строки местами. Выше ставь ту, где есть проверка на появление. Те "Но я уже дал вам задание. Приходите, когда выполните его."
и все будет ок
Archangel
QUOTE
поменяй строки местами. Выше ставь ту, где есть проверка на появление. Те "Но я уже дал вам задание. Приходите, когда выполните его."
и все будет ок

Спасибо, Lex. Теперь все работает! Если честно, то я бы ни за что не догодался, что ошибка в этом. Так бы и мучался... wink.gif
Garou
Lex, спасибо за скрипт с дестроем тригера, работает "На ура"... А вот с проверкой наличности проблемі. Скрипт компилится, но в игре результат нулевой... Есть идеи?
Lex
QUOTE (Garou @ Jun 6 2005, 11:13)
Скрипт компилится, но в игре результат нулевой... Есть идеи?

мдя..ты используешь скрипт
Neverwinter Script Source
int StartingConditional()
{
return  GetGold(GetPCSPeaker())>=100;
}

на сроке, которая должна появиться, если денег больше 100?
Если на строке игрока, то быть такого не может.
Если на строке НПС, то смотри, чтобы на самом верху не было строки без проверки. Те фразы НПС, если у них есть ветвления должны распологаться так:
фраза 1 (с проверкой)
..
фраза Х (с проверкой)
фраза Х+1 (без проверки)
А как распологать проверки, это уже индивидуально смотреть надо.
Garou
Не очень понял, но попробую может получится. Спасибо!:)
Lex
ну не умею я объяснять smile.gif
Короче фразы игрока появляются по такому принципу:
если выполнено условие на ее появление, то ты модешь ее выбрать.
Фразы НПС появляются так:
берется первая. Если условия подходят, то ниже другие фразы даже не смотрятся, выбирается эта.
Так перебор идет до тех пока пока не кончатся фразы или условие не подойдет.
Агрессинг
Очень, Очень простой, элементарный скрипт на ветуку диалога
Neverwinter Script Source
void main()
{
object oPC =  GetPCSpeaker();

    CreateItemOnObject("ТЕГ", oPC);

}

Но вещь не появляется! shout.gif Просто невероятно.
По тем же причинам, наверное, не работает скрипт онентер локи
Neverwinter Script Source
void main()
{
object oPC = GetEnteringObject();
object oPosoh = GetObjectByTag("ТЕГ");
object oCloth = GetObjectByTag("ТЕГ1");
CreateItemOnObject("ТЕГ", oPC);
CreateItemOnObject("ТЕГ1", oPC);
ActionEquipItem (oPosoh, INVENTORY_SLOT_CWEAPON_B);
ActionEquipItem (oCloth, INVENTORY_SLOT_CARMOUR);
}
dumbo
в функции CreateItemOnObject необходимо использовать ResRef, а не тэг! yes.gif
также стоит обратить внимание на регистрочувствительность Blueprint resref'а.
второй скрипт должен выглядеть примерно так:
Neverwinter Script Source
void main()
{
  object oPC = GetEnteringObject();
  if (!GetIsPC(oPC)) return;
  object oPosoh = CreateItemOnObject("РезРеф Посоха", oPC);
  object oCloth = CreateItemOnObject("РезРеф Шкурки", oPC);
  ActionEquipItem(oPosoh, INVENTORY_SLOT_CWEAPON_B);
  ActionEquipItem(oCloth, INVENTORY_SLOT_CARMOUR);
}
Aiwan
Э... позволю пять юаней вставить. Если креетишь в инвентаре.
Neverwinter Script Source
CreateItemOnObject("РезРеф Шкурки", oPC, 1);

Последний параметр количество в стэке. К примеру у стрел поставь 30 и будет пачка стрел 30 шт.
Агрессинг
ResRef ето то, что под тегом. А он залочен, его изменять можно? Наверное нет...
Lex
QUOTE (Агрессинг @ Jun 6 2005, 15:36)
ResRef ето то, что под тегом. А он залочен, его изменять можно? Наверное нет...

ты когда создаешь свой айтем, он хочет стать = имени вещи. Если нельзя, то там по модели берется.
Чтобы теперь поменять, сделай Edit&Copy Там поле это откроется и делай какое тебе надо. Потом удали старый айтем.
Анамиэль
Можно ли сделать так,чтобы НПС сидел в кресле,но так чтобы с ним было возможно ведение диалога?

И еще у меня одна проблемка.Есть три точки перехода,из первой локи попадаешь во вторую из второй в третью.Так вот проблема в том что из локи №1 я попадаю в локу №3 сразу,хотя с триггерами все в порядке...что может быть?я не знаю но на то я и новичок patsak.gif
2GoDoom
1 - хз (но точно можно сделать чтобы он встал и потмо вновь присел)
2 - проверь именна вейпоинтов wink.gif
Garou
Оки-доки, Lex, я поставил скрипт в реплику РС, все работает. А с обьяснением не переживай, все дело в том, кто пытается это понять... В любом случае спас:)
Nick Parker
У меня один тупой вопрос. Куда мне можно сослаться, что бы постичь науку скриптологии. Я уже нарисовал свой модуль, сюжет обдумал, осталось только триггеры по местам расставить и скрипты написать. С триггерами я знаком, но со скриптами первый раз встретился. Ответьте.
Garou
Народ, это баг ToolSet(а), или с этим можно бороться...? Пример: тайл башни мага – 1 в ширину, 2 – в длину. А внутренние помещения такой размерности «ни-ни»... Минимум 2х2. Вот и получается: заходишь в маленький домик, а внутри – целый храм:(
Archangel
QUOTE
У меня один тупой вопрос. Куда мне можно сослаться, что бы постичь науку скриптологии. Я уже нарисовал свой модуль, сюжет обдумал, осталось только триггеры по местам расставить и скрипты написать. С триггерами я знаком, но со скриптами первый раз встретился. Ответьте.

Сползай на сайт, там есть статьи, как раз для новичков. Все написано предельно просто и понятно.
Скриптинг наука нелегкая. Ох как я с ним намучался в свое время... Желаю тебе удачи в освоении этой нелегкой науки! wink.gif

QUOTE
Народ, это баг ToolSet(а), или с этим можно бороться...? Пример: тайл башни мага – 1 в ширину, 2 –в длину. А внутренние помещения такой размерности «ни-ни»... Минимум 2х2. Вот и получается: заходишь в маленький домик, а внутри – целый храм:(

Это, как ты выразился "баг ToolSet(а)". В основном Игрок не обращает внимание на это, если пропорции более или менее одинаковые. cool.gif
2GoDoom
Ник, если ты даже примерно не знаешь как что программируется (любой язык.. хоть Паскаль) - то можешь даже не соваться - тебе, думаю, никто не будет обьяснять как ВООБЩЕ программить. Ну а если знаком - то смотришь синтаксис по тем скриптам что есть, функции в тулсете есть (и описания их) - так что методом тыка разберешься wink.gif
Ну а в крайнем случае пиши тута (или в другой теме... про скрипты) - свои вопросы.. Но не просто "у меня не получается" а сказав, что типа попробовал сделать - и не получается. и расписать что не получается, запостить код и т.п. wink.gif

Гароу, это не баг, это недоработка pardon.gif Впринципе я где-то, вроде, видел тайл такой... Но можно сделат ьи корридором помещенице wink.gif
Aiwan
QUOTE (Анамиэль @ Jun 6 2005, 18:55)
Так вот проблема в том что из локи №1 я попадаю в локу №3 сразу,хотя с триггерами все в порядке...что может быть?я не знаю но на то я и новичок

У любого триггера перехода или двери, должны быть уникальные ТЭГи. Ты явно соединила по умолчанию нарисовав.
QUOTE (Nick Parker @ Jun 6 2005, 21:57)
Я уже нарисовал свой модуль, сюжет обдумал, осталось только триггеры по местам расставить и скрипты написать.

А диалоги? biggrin.gif Скриптинг, это сложно но возможно. Не веришь посмотри на меня. Не прошло и пары лет, как я стал скриптить более менее crazy.gif
Lex
QUOTE (Aiwan @ Jun 6 2005, 22:51)
Не прошло и пары лет, как я стал скриптить более менее

угу, я тоже более менее теперь. Начал весной 2003, прошло 2 года...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Invision Power Board © 2001-2024 Invision Power Services, Inc.