Помощь - Поиск - Пользователи - Календарь
Полная версия: Вопросы новичков
Город Мастеров > РЕДАКТОРЫ > 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
Клемент Астилон
Один объект вряд ли. А армию многие делали.
Через скрипты.
Isendel
А мона тогда пример такого скрипта?
Добавлено в [mergetime]1128094483[/mergetime]
И можно ли поставить скриптом возможность игроку пользоваться определенными спеллами (независимо от класса)? Если да, то как?

Просто я подумываю сделать модуль о Стар Варс... Интересно, насколько это получиться в нвновсоком тулсете...
Анамиэль
QUOTE (Isendel @ Sep 30 2005, 18:10)
И можно ли поставить скриптом возможность игроку пользоваться определенными спеллами (независимо от класса)? Если да, то как?

скриптами нет, 2да ковырять надо.
насчет армии -зрелище скажем так не очень и имхо не стоит dntknw.gif
Isendel
Кстати, 2да... Чтобы ставить музычку в хакпак, обязательно ее промясорубивать через конвертор бму или можно просто переименовать? И будет ли хак с музычкой ругаться на СЕР?
-fenix-
QUOTE (AliceDiren @ Sep 30 2005, 18:07)
А как ты работаешь с объектами? И почему нельзя посмотреть инвентарь? Посмотри первую главу HotU, эта идея реализована там.

Я только начал проходить хоту, скажи где это сделано, я посмотрю в тулсете.

QUOTE (AliceDiren @ Sep 30 2005, 18:07)
Единственная проблема будет при работе с трупом. Тут конечно придется подумать, но если вообще не думать, тогда как делать что-то?

Я говорил, что это не льзя сделать, я да же преводил первые прикидки, как это делать. Но вместе с этим я говорю, что не надо думать, что мы тут все такие умные, а все другии дураки и не додумались до этого. Сколько уже есть шардов и систем смерти? Судя по тому, как тут это обсуждают, то реализацию этой идеи на шарде ни кто не видел и самое разумное предположить, что все дело в лагах, тормозах и проблем с сервером, а может еще и не все так просто, как мы думаем.

QUOTE (AliceDiren @ Sep 30 2005, 18:07)
А вообще работать с этой копией можно как с любым существом.

Давай подумаем:
у него нет эвентов, наверное есть со стандартными скриптами, но у нас к ним доступов нет. Если нужна преличная система смерти, то это большой напряг и да же если в хоту реализованна система открытия инвентаря, то создание доп. невидимого эффекта все рано нужно, чтобы с его эвентов управлять трупом.
Да еще и нверное самое важное, только что прешедшее в голову. Если у НПС после смерти можно посмотреть инвентарь, то он юзабельный, а если он юзабельный, то на него можно наложить закленание реста, оно на шардах используется для воскрешения игроков, которое воскресит НПС, а не игрока.
Еще опять проблема в не возможности создания из синьки.
Как видешь полно проблем, которые если и решаются, то жуткими способами, от которых в условиях шарда - ЛАГИ, ЛАГИ, ЛАГИ!!!
ИМХО.

QUOTE (Isendel @ Sep 30 2005, 20:50)
Кстати, 2да... Чтобы ставить музычку в хакпак, обязательно ее промясорубивать через конвертор бму или можно просто переименовать? И будет ли хак с музычкой ругаться на СЕР?

Если игра работает с bmu, то как она поймет mp3? Простым переименованием файла это не исправешь, зачем сделан конвертор.

QUOTE (Isendel @ Sep 30 2005, 20:50)
И будет ли хак с музычкой ругаться на СЕР?

????

Isendel, все вопросы решаемы опытным путем! Надо просто самому сделать и узнать. Проверить на конфликты хаки можно в св-вах модуля.
acdcee
Вот не задача то у меня все работает но насчет лута с трупа таким путем ты прав ФЕНИКС, проблема пока еще велика но все возможно smile.gif...........

Тобур и команда с Сиалы как то реализовали это ........

А не кто не знает есть лим такая фишка в 2да файлах........ если вот с ними чето сделать Гыыыыы smile.gif...... (крыша поехать может так smile.gif )

Или на открытие инвентория у игрока это с движком связано или.........
-fenix-
QUOTE (acdcee @ Sep 30 2005, 22:44)
Вот не задача то у меня все работает

Что все?

QUOTE (acdcee @ Sep 30 2005, 22:44)
Тобур и команда с Сиалы как то реализовали это ........

Значит все таки есть шард, где рест, инвентарь и прочее делается с клоном НПС? Скорее там все таки менее геморный вариант - с заготовкой подходящих "трупов", а так не видел, не знаю.
Если видел и знаешь, то рассказалбы сразу, а вообще мож там не только 2da, мож еще и 3dMAX dntknw.gif

QUOTE (acdcee @ Sep 30 2005, 22:44)
Или на открытие инвентория у игрока это с движком связано или.........

AliceDiren, говорит, что такое сделанно в хоту, но я пока не видел - те же противные мешочки!

З.Ы мож скрин выложишь, посмотреть кто там и как там валяется.
Ghost
Кстати на счет конвертора музыки... При запуске выдает табличку "Run-time Error 76. Path not found". От чего это может быть?? и как с этим бороться....???
-fenix-
УРРРЯЯЯ, порылся в тулсе и лексеконе - оказывается и правда можно сделать, чтобы у НПС был лут после смерти, нашел еще кое-что, собственно теперь все решаемо. Только пока без клона, а с заготовленными НПС!

AliceDiren, ты ба сразу сказала, что есть такая-то функция, а то я ХОТУ два дня только как поставил!
Добавлено в 00:43
Вот это надо ставить на OnSpawn лут-НПС
Neverwinter Script Source
SetIsDestroyable(TRUE, FALSE, TRUE);
SetLootable(OBJECT_SELF, TRUE);


А вот это на OnPlayerDeath
Neverwinter Script Source
void main()
{
object oPC = GetLastPlayerDied();
location lLocPC = GetLocation(oPC);

object oLootNPC = CreateObject(OBJECT_TYPE_CREATURE, "РесРеф лут-НПС", lLocPC);

PopUpDeathGUIPanel(oPC,TRUE);
DelayCommand(0.3, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDeath(), oLootNPC));

int iGold = GetGold(oPC);
int i = 0;

while(i<14)
{
    object oItemInSlot = GetItemInSlot(i, oPC);

    if(oItemInSlot != OBJECT_INVALID)
    {
        AssignCommand(oLootNPC, ActionTakeItem(oItemInSlot, oPC));
    }
    i ++;
}

object oItemInInventory = GetFirstItemInInventory(oPC);

while(GetIsObjectValid(oItemInInventory))
{
    CopyItem(oItemInInventory, oLootNPC);
    DestroyObject(oItemInInventory);
    oItemInInventory = GetNextItemInInventory(oPC);
}

AssignCommand(oLootNPC, TakeGoldFromCreature(iGold, oPC));
}

Поместиит на лут-НПС все вещи и золото ПС.
Aiwan
Феникс, если часто у тебя копирует есть смысл инклюдой подключать, у меня есть функция. Хочешь бери себе.
Neverwinter Script Source
// КОПИРУЕТ ВЕСЬ ИНВЕНТАРЬ oMaster=OBJECT_SELF В ИНВЕНТАРЬ oNewMaster
// iDel = TRUE - удаляет копируемый объект из инвентаря хозяина, FALSE - нет
void CopyInventory(object oNewMaster, object oMaster=OBJECT_SELF, int iDel=TRUE);

//------------------------------------------------------------------------------
void CopyInventory(object oNewMaster, object oMaster=OBJECT_SELF, int iDel=TRUE)
{
      object oItem = GetFirstItemInInventory(oMaster);
      while (GetIsObjectValid(oItem))
      {
        CopyItem(oItem, oNewMaster);
        if(iDel==TRUE)
        {
            DestroyObject(oItem, 0.1);
        }
        oItem = GetNextItemInInventory(oMaster);
      }
}


ПРИМЕР ИСПОЛЬЗОВАНИЯ

Neverwinter Script Source
if(!GetLocalInt(oSelf, "INVENTORY_USED"))
    {
        oInv = CreateObject(OBJECT_TYPE_PLACEABLE, "am_plc_invspider", lLoc);
        CopyInventory(oInv);
        SetLocalInt(oSelf, "INVENTORY_USED", TRUE);
    }
_kaa_
QUOTE (Aiwan @ Oct 1 2005, 08:38)
Феникс, если часто у тебя копирует есть смысл инклюдой подключать,  у меня есть функция. Хочешь бери себе.
Neverwinter Script Source
// КОПИРУЕТ ВЕСЬ ИНВЕНТАРЬ oMaster=OBJECT_SELF В ИНВЕНТАРЬ oNewMaster
        CopyItem(oItem, oNewMaster);


Имеет смысл сразу поправить и поставить
Neverwinter Script Source
CopyItem(oItem, oNewMaster,TRUE);


Тогда заодно скопируются все локальные переменные. Если их не используете - ничего страшного не будет, а если используете - сбережете себе нервы smile.gif
Geck0
У меня опять вопрос...
А как я буду работать в Тулсете если у меня будут Инглиш версии? Мне придеться весь текст на английском языке писать или транслитом? Этож бред!
Прочитал Scripting Tutorial, некогда хранившейся на почившем Невервинтер.ру... Многое понял, но я не могу представить как из всей массы функций, условий и переменных можно выбрать то, что тебе надо! Ведь в этом обучении представлены только некоторые ("минимум" это мягко сказано)...
acdcee
Geck0Тебе вот сюда надо http://www.wrg.ru/files/?cr=./toolset

Качаешь NWTSrus патч, вот из-за него тулсет понимает букву я и шрифты так же скачай с форума.

Вот впринцепе все.
AliceDiren
-fenix- , я предлагала клонировать PC только с целью создания полного правдоподобия. А эти строки
Neverwinter Script Source
AssignCommand(oCopy1, SetIsDestroyable(TRUE, FALSE, TRUE));
SetLootable(oCopy1, TRUE);

можно поставить после создания клона. Но это только мое скромное мнение.
-fenix-
AliceDiren, ясное дело, что это можно и клону поставить, но с клоном множество других проблем, о них уже писали. Правдоподобие выходит боком. Надеть вещи можно и на обычного НПС, только сделать их выбрасываемыми.
Вобщем мое ИМХО - это никаких клонов, а там как знаете.

Aiwan, _kaa_, спасибо smile.gif
Lex
Айв, одна проблема - сумки. Вроде как низя сумку с вещами так копировать, надо внутрь лезть.
Darkelf
Не знаю, сюда ли я пишу, но может кто даст ссылки на руские туториалы по Авроре, а то я задолбался искать.
Lex
http://www.wrg.ru/files/?f=./toolset/aurora_tutorial.exe
Добавлено в [mergetime]1128156850[/mergetime]
плохо искал.
Darkelf
Да это я видел. Очень уж много весит. Да и я совсем чайник. Работаю пока только в TES CS. Может ещё какие-нить есть?
Lex
есть биоваровский тутор. На сайте у нас в разделах файлы/Тулсет и статьи/Тулсет смотри.
+ тему Ссылки на форуме. Там есть ссылки на другие статьи.
Но я бы на твоем месте скачал тот большой тутор и заблил бы на все другие.
Он - лучший.
Добавлено в [mergetime]1128158918[/mergetime]
QUOTE (Darkelf @ Oct 1 2005, 13:08)
Да и я совсем чайник

он как раз для таких и написан.
Daemonix
Darkelf
Напиши мне на мыло ugr@inbox.ru. Я тебе пришлю кое-какие туториалы.
zmey
Здрасьте! Пишу сюда вопрос по скриптам, потому, что считаю себя новичком. А то в скриптах скажут: посмотри то-то, измени там-то...а конкретики никакой.

Вопрос нумер раз. Нужон такой скрипт: на вход в локу. на предмете в инвентаре перса последовательно перебираются переменные, и если переменная = 1, то В МОДУЛЕ(в другой локе) дестроится объект с тегом (имя переменной). Затем берется следующая переменная и так пока все не будут перебраны.

вопрос номер два: на вход в локу. на предмете в инвентаре последовательно перебираются переменные, и если переменная больше нуля, то в журнал перса заносится запись (имя переменной) с номером (значение переменной). затем берется следующая переменная.

Я ЦИКЛЫ НЕ ПОНИМАЮ, ТОЧНЕЕ, УСЛОВИЯ ИХ ВЫПОЛНЕНИЯ!!!!!!!! shout.gif
-fenix-
QUOTE (zmey @ Oct 3 2005, 12:30)
Я ЦИКЛЫ НЕ ПОНИМАЮ, ТОЧНЕЕ, УСЛОВИЯ ИХ ВЫПОЛНЕНИЯ!!!!!!!!

Теперь понятно?

do Loop (цикл до - цикл с постусловием)

В своей практической деятельности человек постоянно сталкивается с задачами, при решении которых требуется многократно повторять одни и те же действия. Для составления алгоритмов решения таких задач используют циклы. Цикл – повторяющиеся действия. Циклы бывают с предусловием (do - while), с постусловием (while - do), и со счетчиком (for). У каждого цикла есть тело цикла - это группа выполняемых операторов заключенных в оперативные скобки. Все эти операторы будут выполняться каждый раз, как будет верно условие вхождения в цикл. Если в теле цикла один оператор, то оперативные скобки можно не ставить.

Сейчас мы поговорим о циклах с постусловием. Этот цикл так называется, потому что условие входа в цикл стоит после тела цикла, т.е с начало выполняются операторы, а потом проверяется условие. При таком построении цикл выполнится хотя бы один раз. Структура цикла с постусловием выглядит так:
do { оператор(ы); } while (условие); Читается это так: “выполнить оператор(ы) пока условие верно ”.

Важно: Если в условии стоит переменная, то ее тип должен быть объявлен перед циклом.

Neverwinter Script Source
// структура
   do
   {
      оператор(ы);
   }
   while (условие);


// использование
int i; // определяем тип переменной

do
{ //начало тела цикла

     PrintInteger(i); // первый оператор
     i++;             // второй оператор

} // конец тела цикла

while (i < 5); // условие входа в цикл (i < 5)


while Loop (цикл пока – цикл с предусловием)

Цикл с предусловием отличается только тем, что условие стоит в начале тела цикла – значит данный цикл может не выполнится ни разу.

Важно: Если в условии стоит переменная, то ее тип должен быть объявлен перед циклом.
Neverwinter Script Source
// структура

   while (условие)
   {
       оператор(ы);
   }


// использование
int i; // определяем тип переменной

while (i < 5) // условие входа в цикл
{
     // оператор...
     i++;
}


for Loop (цикл для – цикл со счетчиком)

Когда известно число повторений удобно использовать цикл for.
Neverwinter Script Source
// структура

   for (выражение 1; выражение 2; выражение 3)
   {
       оператор(ы);
   }


Выполнение цикла for, представляется тремя выражениями:

• выражение 1 объявляет счетчик цикла, его начальное значение.

Важно: Счетчик цикла является переменной, поэтому перед её использованием нужно определить её тип.

• выражение 2 - это условие для выполнения цикла. Если выражение 2 оценивается в лож, то цикл прерывается. Это выражение может быть оставлено пустым, чтобы создать неполный цикл, если вы хотите в ручную прервать цикл использующий оператор break.

• выражение 3 - это оператор приращения. Он будет выполняться всякий раз после выполнения операторов в теле цикла. Он может выглядеть, как i++ и как i--. Проще говоря этот оператор показывает в какую сторону (положительную или отрицательную) изменять выражение 1.

Neverwinter Script Source
int i; // определяем тип переменной

for (i = 0; i < 5; i++) // условие цикла. i будет изменяться от 0 до 4                       
{
     // оператор(ы) ...
     // в этом цикле i будет иметь значение 0, 1, 2, 3 и 4
}


Пример представленный выше читается так: “Для i начиная с 0 до 4 выполнить операторы”. А действовать он будет так – в первый раз переменная i установится на 0, дальше проверится меньше ли i 5, после чего будут выполнены операторы в оперативных скобках. После выполнения операторов переменная i увеличится на 1 – это произойдет благодаря оператору приращения (i++), после чего снова будет проверенно выражение 2. Как только выражение 2 не выполнится цикл прервется.

zmey, зачем тебе перебирать переменные, разве ты не знаешь название нужной тебе? К тому же если у тебя их не сколько, то может быть 2 или больше переменных со значением 1, к тому же поиск переменных идет по имени, а имена могут быть всякии!

Aiwan: плюсом одарить не могу, так как уже недавно наградил. Но "взял на карандаш" ... biggrin.gif
Lex
QUOTE (-fenix- @ Oct 3 2005, 13:36)
лож

вроде как единственная ошибка в тексте при беглом осмотре. Молодец.
Чуть больше примеров (тот же скрипт удаления всех вещей в инвентаре)
и будет совсем хорошо!
Geck0
Можно поинтересоваться существует ли конвертер видео-файлов обчного формата, в bik используемый в NWN и многих других игрушках... Поделитесь ссылкой плиз, если есть.

И существует ли перевод на русский язык всех функций скриптов? Если - да, можно ли линку узнать.
Isendel
А можно ли сделать, чтобы при входе в модуль игроку ставилось опр. имя, раса (но не класс)? Или так, чтобы можно было входить только определенным чаром, но при этом выбрать класс. Ну или в крайнем случае и без класса обойтись.
???
-fenix-
QUOTE (Isendel @ Oct 5 2005, 22:40)
А можно ли сделать, чтобы при входе в модуль игроку ставилось опр. имя, раса (но не класс)?

Нет.

QUOTE (Isendel @ Oct 5 2005, 22:40)
Или так, чтобы можно было входить только определенным чаром, но при этом выбрать класс.

Чтобы можно было войти да,

Например так, на OnAreaTransitionClick двери или на OnClick тригера, у которых настроен переход!
Neverwinter Script Source
void main()
{
object oClicker = GetClickingObject();
object oTarget = GetTransitionTarget(OBJECT_SELF);
int iRace = GetRacialType(oClicker);

if(iRace == RACIAL_TYPE_HUMAN)
{
    SetAreaTransitionBMP(AREA_TRANSITION_RANDOM);
    AssignCommand(oClicker,JumpToObject(oTarget));
}
else
{
    AssignCommand(OBJECT_SELF, SpeakString("Вы не попадете в эту область"));
}
}

Пройдут только люди.

а про выбор класса не понял, но скорее всего нет.
Aiwan
QUOTE (Isendel @ Oct 6 2005, 00:40)
А можно ли сделать, чтобы при входе в модуль игроку ставилось опр. имя, раса (но не класс)?

Конечно можно.
Neverwinter Script Source
void main()
{
    object oPC = GetEnteringObject();
    string sName = "Вася Пупкин";
    string sMessage = "Ваше имя не нравится мне!";
    if (GetIsPC(oPC) && GetName(oPC)!=sName)
      {
      PopUpDeathGUIPanel(oPC, FALSE, TRUE, 0, sMessage);
      return;
      }
}
Geck0 перевода нет и не будет. Кроме перевода Валео.
Geck0
QUOTE (Aiwan @ Oct 5 2005, 23:02)
Geck0 перевода нет и не будет. Кроме перевода Валео.

Перевод Валлео это который на RPG Planet? За 2003 год вроде, да?
Isendel
А ставить на локу или на модуль?
AliceDiren
Isendel , то что сказал Aiwan - на модуль. Не стоит убивать героя за то, что он попал не в ту локу smile.gif . На локу можно просто не пустить, но это тоже было описано Fenix'ом.
Isendel
И еще я хотел бы узнать, как при входе в модуль, делать игроку в журнале сообщение.
AliceDiren
Neverwinter Script Source
void AddJournalQuestEntry(
    string szPlotID,
    int nState,
    object oCreature,
    int bAllPartyMembers=TRUE,
    int bAllPlayers=FALSE,
    int bAllowOverrideHigher=FALSE);

В скрипте на OnClientEnter что-нибудь вроде:
Neverwinter Script Source
object oPC = GetEnteringObject();
AddJournalQuestEntry("Таг квеста в журнале", 1, oPC);
_kaa_
QUOTE (Isendel @ Oct 6 2005, 12:47)
И еще я хотел бы узнать, как при входе в модуль, делать игроку в журнале сообщение.

Читай тут, доступней некуда smile.gif
http://www.wrg.ru/forums/index.php?showtopic=1752
Aiwan
QUOTE (Isendel @ Oct 6 2005, 14:47)
И еще я хотел бы узнать, как при входе в модуль, делать игроку в журнале сообщение.

Это все расписано в мануале моем. Не пойму, влом читсть? Вот я скоро запрещу отвечать на вопросы, которые уже разобрали подробно. Цените время людей.
Vitalist
Поделитесь скриптом, который при окончание разговора открывает нужные двери.
-fenix-
На совершенные действия
Neverwinter Script Source
void main()
{
SetLocked(GetObjectByTag("ТАГ двери"), FALSE);
}
Vitalist
Fenix, сенкс!
В св-ах NPC можно поставить галочку на "Без прерывания" - это, я так понял, низя прервать диалог ESC'ом. Тогда почему его можно прервать у меня, хотя галку ставил?!
Aiwan
QUOTE (Vitalist @ Oct 8 2005, 15:23)
В св-ах NPC можно поставить галочку на "Без прерывания" - это, я так понял, низя прервать диалог ESC'ом. Тогда почему его можно прервать у меня, хотя галку ставил?!

Нет. Прервать нельзя только в катсцене.
Vitalist
А для чего тогда эта "без прерывания"?
NedWarN
QUOTE
А для чего тогда эта "без прерывания"?

Скрипты, рождены для того чтобы "Тупить", ета функцыя помогает Неписю, не отвелактся. А в НВН прервать можно что угодно.
-fenix-
QUOTE (Vitalist @ Oct 8 2005, 16:44)
А для чего тогда эта "без прерывания"?

Для шардов, чтобы два чела не могли одновременно разговаривать с одним НПС.
NedWarN
QUOTE
Для шардов, чтобы два чела не могли одновременно разговаривать с одним НПС.

Етого я не знал, пасиба.
Vitalist
Значит, такая вот ситуация:
Есть один NPC1, при разговоре с которым задаеться переменная. Она отвечает за начало разговора с другим NPC2. Если с ним поговорить сразу, то все нормально, но если поговорить с еще одним другим NPC3 (при этом первый NPC дестроиться), то ничего не происходит... Я пробовал поставить туже переменную в разговор со вторым - тот же результат. Как рациональней это сделать? Типа, устроить проверку у NPC2 на две переменный: NPC1 или другая от NPC3...
Вишес
Может ты локальную переменную на кого вешаешь? Если на Первую непись то понятно по чему теряется.
Aiwan
Vitalist это все есть в моей статье. Принципиально не скажу как. beee.gif
Ling
\\Всё спасибо .. вопросы отпали
Vitalist
Aiwan, я, наверное, плохо читал - не нашел там подобного... Я просто заново сделал скрипт, теперь работает. И почему он до этого не работал - ведь все такое же было.
Ща опять подобное. У NPC есть диалог, типа:
NPC - Опять ты? (этот текст появляеться при перемен. "asd 1 и 2" )
NPC - Принес?
-> Да (появляеться при предмете в инвенторе)
---> Хорошо, я рад (забирает предмет, устанавливает лок. перем. "asd 1")
-> Ага (появляеться при переменной)
---> Отлично, заценил! (устанавливает лок. перем. "asd 2")
-> Нет.

Короче тут он не хочет переходить ко второй фразе NPC (опять ты?), при разговоре появляеться "Ага" (с "Да" все вроде нормально, больше не появляеться - предмета нет)
-fenix-
QUOTE (Vitalist @ Oct 11 2005, 15:47)
Aiwan, я, наверное, плохо читал

ПЛОХО!

Vitalist, как-то все сумбурно, признаться не понял, как и что у тебя сделанно.

Зачем нужно и ДА и АГА?
Зачем на них устанавливаются разные переменные?
QUOTE (Vitalist @ Oct 11 2005, 15:47)
-> Ага (появляеться при переменной)

При какой переменной?
QUOTE (Vitalist @ Oct 11 2005, 15:47)
Короче тут он не хочет переходить ко второй фразе NPC (опять ты?)

опять ты - вторая фраза?

Теперь, как это делать.
QUOTE (Vitalist @ Oct 11 2005, 15:47)

NPC - Опять ты? (этот текст появляеться при перемен. "asd 1 и 2" )
NPC - Принес?

Нужно делать проверку на ветку "Принес" - по скольку она будет участвовать только один раз, а ветка "Опять ты?" будет появляться всякий раз, при начале разговора, после/до выполнения квеста.
QUOTE (Vitalist @ Oct 11 2005, 15:47)

-> Да (появляеться при предмете в инвенторе)
---> Хорошо, я рад (забирает предмет, устанавливает лок. перем. "asd 1")
-> Ага (появляеться при переменной)
---> Отлично, заценил! (устанавливает лок. перем. "asd 2") -> Нет.

Зачем нужно и ДА и АГА, если в конце каждой устанвливается переменная запускающая ветку "ОПЯТЬ ТЫ?" ?

У нас есть ветки в диалоге у НПС.

->Проверить квест
->Дать квест
->Снова ты?

На "снова ты" нет проверок, на "Дать квест" проверка переменной "start != 2", в конце устанавливается переменная "start = 1", на "Проверить квест" условие появления переменная "start == 1", после выполнения квеста переменная устанавливается на "start = 2".
Теперь "Дать квест" и "Проверить квест" связаны, а "Снова ты?" появляется, до и после квеста.
Vitalist
Спасибо за подробный ответ, но я сам уже догнал - вот что бывает, когда чуть-чуть мозгу напрягешь biggrin.gif
Как заставить NPC проигрывать нужную мне анимацию просто так? То есть, стоит игрок возле него, ничего не делает - а NPC, допустим, жестекулирует.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Invision Power Board © 2001-2025 Invision Power Services, Inc.