Клемент Астилон
Sep 30 2005, 17:41
Один объект вряд ли. А армию многие делали.
Через скрипты.
Isendel
Sep 30 2005, 18:10
А мона тогда пример такого скрипта?
Добавлено в [mergetime]1128094483[/mergetime]
И можно ли поставить скриптом возможность игроку пользоваться определенными спеллами (независимо от класса)? Если да, то как?
Просто я подумываю сделать модуль о Стар Варс... Интересно, насколько это получиться в нвновсоком тулсете...
Анамиэль
Sep 30 2005, 19:37
QUOTE (Isendel @ Sep 30 2005, 18:10) |
И можно ли поставить скриптом возможность игроку пользоваться определенными спеллами (независимо от класса)? Если да, то как? |
скриптами нет, 2да ковырять надо.
насчет армии -зрелище скажем так не очень и имхо не стоит
Isendel
Sep 30 2005, 19:50
Кстати, 2да... Чтобы ставить музычку в хакпак, обязательно ее промясорубивать через конвертор бму или можно просто переименовать? И будет ли хак с музычкой ругаться на СЕР?
-fenix-
Sep 30 2005, 21:37
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
Sep 30 2005, 21:44
Вот не задача то у меня все работает но насчет лута с трупа таким путем ты прав ФЕНИКС, проблема пока еще велика но все возможно

...........
Тобур и команда с Сиалы как то реализовали это ........
А не кто не знает есть лим такая фишка в 2да файлах........ если вот с ними чето сделать Гыыыыы

...... (крыша поехать может так

)
Или на открытие инвентория у игрока это с движком связано или.........
-fenix-
Sep 30 2005, 21:58
QUOTE (acdcee @ Sep 30 2005, 22:44) |
Вот не задача то у меня все работает |
Что все?
QUOTE (acdcee @ Sep 30 2005, 22:44) |
Тобур и команда с Сиалы как то реализовали это ........ |
Значит все таки есть шард, где рест, инвентарь и прочее делается с клоном НПС? Скорее там все таки менее геморный вариант - с заготовкой подходящих "трупов", а так не видел, не знаю.
Если видел и знаешь, то рассказалбы сразу, а вообще мож там не только 2da, мож еще и 3dMAX
QUOTE (acdcee @ Sep 30 2005, 22:44) |
Или на открытие инвентория у игрока это с движком связано или......... |
AliceDiren, говорит, что такое сделанно в хоту, но я пока не видел - те же противные мешочки!
З.Ы мож скрин выложишь, посмотреть кто там и как там валяется.
Кстати на счет конвертора музыки... При запуске выдает табличку "Run-time Error 76. Path not found". От чего это может быть?? и как с этим бороться....???
-fenix-
Sep 30 2005, 22:51
УРРРЯЯЯ, порылся в тулсе и лексеконе - оказывается и правда можно сделать, чтобы у НПС был лут после смерти, нашел еще кое-что, собственно теперь все решаемо. Только пока без клона, а с заготовленными НПС!
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)); } |
Поместиит на лут-НПС все вещи и золото ПС.
Феникс, если часто у тебя копирует есть смысл инклюдой подключать, у меня есть функция. Хочешь бери себе.
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); } |
QUOTE (Aiwan @ Oct 1 2005, 08:38) |
Феникс, если часто у тебя копирует есть смысл инклюдой подключать, у меня есть функция. Хочешь бери себе.
Neverwinter Script Source | // КОПИРУЕТ ВЕСЬ ИНВЕНТАРЬ oMaster=OBJECT_SELF В ИНВЕНТАРЬ oNewMaster CopyItem(oItem, oNewMaster); |
|
Имеет смысл сразу поправить и поставить
Neverwinter Script Source |
CopyItem(oItem, oNewMaster,TRUE); |
Тогда заодно скопируются все локальные переменные. Если их не используете - ничего страшного не будет, а если используете - сбережете себе нервы
У меня опять вопрос...
А как я буду работать в Тулсете если у меня будут Инглиш версии? Мне придеться весь текст на английском языке писать или транслитом? Этож бред!
Прочитал Scripting Tutorial, некогда хранившейся на почившем Невервинтер.ру... Многое понял, но я не могу представить как из всей массы функций, условий и переменных можно выбрать то, что тебе надо! Ведь в этом обучении представлены только некоторые ("минимум" это мягко сказано)...
Geck0Тебе вот сюда надо
http://www.wrg.ru/files/?cr=./toolsetКачаешь NWTSrus патч, вот из-за него тулсет понимает букву я и шрифты так же скачай с форума.
Вот впринцепе все.
AliceDiren
Oct 1 2005, 09:58
-fenix- , я предлагала клонировать PC только с целью создания полного правдоподобия. А эти строки
Neverwinter Script Source |
AssignCommand(oCopy1, SetIsDestroyable(TRUE, FALSE, TRUE)); SetLootable(oCopy1, TRUE); |
можно поставить после создания клона. Но это только мое скромное мнение.
-fenix-
Oct 1 2005, 10:08
AliceDiren, ясное дело, что это можно и клону поставить, но с клоном множество других проблем, о них уже писали. Правдоподобие выходит боком. Надеть вещи можно и на обычного НПС, только сделать их выбрасываемыми.
Вобщем мое ИМХО - это никаких клонов, а там как знаете.
Aiwan,
_kaa_, спасибо
Айв, одна проблема - сумки. Вроде как низя сумку с вещами так копировать, надо внутрь лезть.
Darkelf
Oct 1 2005, 11:47
Не знаю, сюда ли я пишу, но может кто даст ссылки на руские туториалы по Авроре, а то я задолбался искать.
http://www.wrg.ru/files/?f=./toolset/aurora_tutorial.exe Добавлено в [mergetime]1128156850[/mergetime] плохо искал.
Darkelf
Oct 1 2005, 12:08
Да это я видел. Очень уж много весит. Да и я совсем чайник. Работаю пока только в TES CS. Может ещё какие-нить есть?
есть биоваровский тутор. На сайте у нас в разделах файлы/Тулсет и статьи/Тулсет смотри.
+ тему Ссылки на форуме. Там есть ссылки на другие статьи.
Но я бы на твоем месте скачал тот большой тутор и заблил бы на все другие.
Он - лучший.
Добавлено в [mergetime]1128158918[/mergetime]
QUOTE (Darkelf @ Oct 1 2005, 13:08) |
Да и я совсем чайник |
он как раз для таких и написан.
Daemonix
Oct 1 2005, 13:59
Darkelf Напиши мне на мыло
ugr@inbox.ru. Я тебе пришлю кое-какие туториалы.
Здрасьте! Пишу сюда вопрос по скриптам, потому, что считаю себя новичком. А то в скриптах скажут: посмотри то-то, измени там-то...а конкретики никакой.
Вопрос нумер раз. Нужон такой скрипт: на вход в локу. на предмете в инвентаре перса последовательно перебираются переменные, и если переменная = 1, то В МОДУЛЕ(в другой локе) дестроится объект с тегом (имя переменной). Затем берется следующая переменная и так пока все не будут перебраны.
вопрос номер два: на вход в локу. на предмете в инвентаре последовательно перебираются переменные, и если переменная больше нуля, то в журнал перса заносится запись (имя переменной) с номером (значение переменной). затем берется следующая переменная.
Я ЦИКЛЫ НЕ ПОНИМАЮ, ТОЧНЕЕ, УСЛОВИЯ ИХ ВЫПОЛНЕНИЯ!!!!!!!!
-fenix-
Oct 3 2005, 12:36
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: плюсом одарить не могу, так как уже недавно наградил. Но "взял на карандаш" ...
QUOTE (-fenix- @ Oct 3 2005, 13:36) |
лож |
вроде как единственная ошибка в тексте при беглом осмотре. Молодец.
Чуть больше примеров (тот же скрипт удаления всех вещей в инвентаре)
и будет совсем хорошо!
Можно поинтересоваться существует ли конвертер видео-файлов обчного формата, в bik используемый в NWN и многих других игрушках... Поделитесь ссылкой плиз, если есть.
И существует ли перевод на русский язык всех функций скриптов? Если - да, можно ли линку узнать.
Isendel
Oct 5 2005, 21:40
А можно ли сделать, чтобы при входе в модуль игроку ставилось опр. имя, раса (но не класс)? Или так, чтобы можно было входить только определенным чаром, но при этом выбрать класс. Ну или в крайнем случае и без класса обойтись.
???
-fenix-
Oct 5 2005, 22:26
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("Вы не попадете в эту область")); } } |
Пройдут только люди.
а про выбор класса не понял, но скорее всего нет.
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 перевода нет и не будет. Кроме перевода Валео.
QUOTE (Aiwan @ Oct 5 2005, 23:02) |
Geck0 перевода нет и не будет. Кроме перевода Валео. |
Перевод Валлео это который на RPG Planet? За 2003 год вроде, да?
Isendel
Oct 6 2005, 10:51
А ставить на локу или на модуль?
AliceDiren
Oct 6 2005, 11:45
Isendel , то что сказал Aiwan - на модуль. Не стоит убивать героя за то, что он попал не в ту локу

. На локу можно просто не пустить, но это тоже было описано Fenix'ом.
Isendel
Oct 6 2005, 11:47
И еще я хотел бы узнать, как при входе в модуль, делать игроку в журнале сообщение.
AliceDiren
Oct 6 2005, 11:57
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); |
QUOTE (Isendel @ Oct 6 2005, 12:47) |
И еще я хотел бы узнать, как при входе в модуль, делать игроку в журнале сообщение. |
QUOTE (Isendel @ Oct 6 2005, 14:47) |
И еще я хотел бы узнать, как при входе в модуль, делать игроку в журнале сообщение. |
Это все расписано в мануале моем. Не пойму, влом читсть? Вот я скоро запрещу отвечать на вопросы, которые уже разобрали подробно. Цените время людей.
Vitalist
Oct 7 2005, 15:17
Поделитесь скриптом, который при окончание разговора открывает нужные двери.
-fenix-
Oct 7 2005, 16:20
На совершенные действия
Neverwinter Script Source |
void main() { SetLocked(GetObjectByTag("ТАГ двери"), FALSE); } |
Vitalist
Oct 8 2005, 12:23
Fenix, сенкс!
В св-ах NPC можно поставить галочку на "Без прерывания" - это, я так понял, низя прервать диалог ESC'ом. Тогда почему его можно прервать у меня, хотя галку ставил?!
QUOTE (Vitalist @ Oct 8 2005, 15:23) |
В св-ах NPC можно поставить галочку на "Без прерывания" - это, я так понял, низя прервать диалог ESC'ом. Тогда почему его можно прервать у меня, хотя галку ставил?! |
Нет. Прервать нельзя только в катсцене.
Vitalist
Oct 8 2005, 15:44
А для чего тогда эта "без прерывания"?
NedWarN
Oct 8 2005, 15:47
QUOTE |
А для чего тогда эта "без прерывания"? |
Скрипты, рождены для того чтобы "Тупить", ета функцыя помогает Неписю, не отвелактся. А в НВН прервать можно что угодно.
-fenix-
Oct 8 2005, 15:48
QUOTE (Vitalist @ Oct 8 2005, 16:44) |
А для чего тогда эта "без прерывания"? |
Для шардов, чтобы два чела не могли одновременно разговаривать с одним НПС.
NedWarN
Oct 8 2005, 15:51
QUOTE |
Для шардов, чтобы два чела не могли одновременно разговаривать с одним НПС. |
Етого я не знал, пасиба.
Vitalist
Oct 8 2005, 18:27
Значит, такая вот ситуация:
Есть один NPC1, при разговоре с которым задаеться переменная. Она отвечает за начало разговора с другим NPC2. Если с ним поговорить сразу, то все нормально, но если поговорить с еще одним другим NPC3 (при этом первый NPC дестроиться), то ничего не происходит... Я пробовал поставить туже переменную в разговор со вторым - тот же результат. Как рациональней это сделать? Типа, устроить проверку у NPC2 на две переменный: NPC1 или другая от NPC3...
Может ты локальную переменную на кого вешаешь? Если на Первую непись то понятно по чему теряется.
Vitalist это все есть в моей статье. Принципиально не скажу как.
\\Всё спасибо .. вопросы отпали
Vitalist
Oct 11 2005, 14:47
Aiwan, я, наверное, плохо читал - не нашел там подобного... Я просто заново сделал скрипт, теперь работает. И почему он до этого не работал - ведь все такое же было.
Ща опять подобное. У NPC есть диалог, типа:
NPC - Опять ты? (этот текст появляеться при перемен. "asd 1 и 2" )
NPC - Принес?
-> Да (появляеться при предмете в инвенторе)
---> Хорошо, я рад (забирает предмет, устанавливает лок. перем. "asd 1")
-> Ага (появляеться при переменной)
---> Отлично, заценил! (устанавливает лок. перем. "asd 2")
-> Нет.
Короче тут он не хочет переходить ко второй фразе NPC (опять ты?), при разговоре появляеться "Ага" (с "Да" все вроде нормально, больше не появляеться - предмета нет)
-fenix-
Oct 11 2005, 20:23
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
Oct 12 2005, 10:14
Спасибо за подробный ответ, но я сам уже догнал - вот что бывает, когда чуть-чуть мозгу напрягешь
Как заставить NPC проигрывать нужную мне анимацию просто так? То есть, стоит игрок возле него, ничего не делает - а NPC, допустим, жестекулирует.