![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#1376
|
|
Level 1 Класс: Друид Характер: Lawful Neutral Раса: Полуэльф ![]() |
1.Как сделать чтобы НПС лежал/спал?
2.Как сделать чтобы на столе можно было смешивать определенные предметы и из этого получался какой-нибудь предмет или зелье. Если я не ошибаюсь, то для этого нужны скрипты? 3.Не могу разобраться с анимационными константами.В функцию сначала надо вводить: Neverwinter Script Source // Cause the action subject to play an animation // - nAnimation: ANIMATION_* // - fSpeed: Speed of the animation // - fDurationSeconds: Duration of the animation (this is not used for Fire and // Forget animations) void ActionPlayAnimation(int nAnimation, float fSpeed=1.0, float fDurationSeconds=0.0) а потом вставлять анимацию?Например: ANIMATION_FIREFORGET_DRINK ANIMATION_PLACEABLE_OPEN и т.д. Верно? И ещё-куда вообще вставлять анимацию, в OnSpawn? 4.И последнее, как сделать,чтобы НПС превращался например в оборотня и наоборот? :DB: Заранее премного благодарна! |
![]()
Сообщение
#1377
|
|||||||
4-х Кубовый ![]() Класс: Некромант Характер: Lawful Evil Раса: Человек NWN: Скриптинг [Sn] Проклятие Левора ![]() |
Без разницы. Если на ActionTaken последней строки, то все равно, что на EndNormal.
PlaySound("имя файла"); Еще есть такая особенность для звуков. Он должен быть ПРЕОБРАЗОВАН из wav в mp3, затем этот mp3 ПРЕОБРАЗОВАН утилиткой в формат bmu, а уже в самом конце ПЕРЕИМЕНОВАН в wav. :swoon: Вот так это делается. Добавлено в [mergetime]1118243330[/mergetime]
На heartbeat непися вешай ActionPlayAnimation(ANIMATION_LOOPING_DEADFRONT, 1.0, 9999.0); - будет долго спать. ;) Dark@ngel Слишком много вопросов, на которые ты хочешь получить ответы СРАЗУ. Большинство из них простым тычком не решаются. Скачай и почитай документацию Айвана у нас на сайте, много вопросов отпадет и в целом многие вопросы ты станешь задавать более конкретно. ;) |
||||||
![]()
Сообщение
#1378
|
|
Level 3 ![]() Класс: Оборотень Характер: Chaotic Good Раса: Человек ![]() |
Как из bmu в wav переименовать? Расширение изменить (только не бейте :)!!) или? DBColl а как в конечном итоге будет выглядеть этот скрипт? Плиииз!!!
Добавлено в [mergetime]1118244242[/mergetime] Вот еще что: Убо-Сатло мне описал, как сделать встречу с неписью через 20 дней, там есть && GetTimeHour() == xz // во сколько непись придет (х - это часы, а z - минуты? такой формат 0100 значит час ночи?) Дальше: void main() { object oPC = GetFirstPC(); SetLocalInt(oPC, "RAZBORKA", TRUE); } Это можно ставить на начало разговора в ActionTaken? И как можно проверить, работает ли вся эта конструкция? Ждать 20 дней проблемно... Добавлено в [mergetime]1118244448[/mergetime] Да, а если разные скрипты поставить в ActionTaken и EndNormal они оба работать будут? Или из-за противоречий вообще не будет ничего происходить? Сообщение отредактировал Garou - Jun 8 2005, 18:10 |
![]()
Сообщение
#1379
|
|||||
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Dark@ngel. 1. Ответил ДБ. 2. Это КРАФТ. Жутко сложно для новичков. Но если есть желание поищи тут или на Валуте системы крафтовые. Но ИМХО не рекомендую. 3.
|
||||
![]()
Сообщение
#1380
|
|||||||
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
нужны. Тебе для примера накатать простенький вариант?
Мм... я бы посоветовал сначала: - http://www.wrg.ru/old/stat_anim_npc1.htm мое мыло в начале статьи уже другое. Слать туда что-то бесполезно. потом - http://www.wrg.ru/old/stat_anim_npc2.htm после этого пости вопросы по этому направлению. Добавлено в [mergetime]1118245713[/mergetime]
если фраза со скриптом ActionTaken последняя, то сначала запустится этот скрипт, потом конец диалога. Почти одновременно. |
||||||
![]()
Сообщение
#1381
|
|
Level 5 ![]() ![]() Класс: Убийца Характер: True Neutral Раса: Чудовище ![]() |
Вещи в двадцать раз сложнее у мя получаются, а вот фигня всякая... Помогите пожалста..
Какой скрипт ставится на ветку диалога, чтобы она появилась при повторном начинании диалога? Какой скрипт ставится на ветку диалога, чтобы она появилась при определенной записи в дневнике? |
![]()
Сообщение
#1382
|
|
Level 3 ![]() Класс: Оборотень Характер: Chaotic Good Раса: Человек ![]() |
Aiwan!!! Вижу ты на форуме... Если не сильно занят, посмотри на мой сегодняшний пост в 17:50 (...Сел в лужу!!! Непись после...) Нужна помщь. Сам никак...:(
|
![]() ![]()
Сообщение
#1383
|
|||||||
Восставший из пепла ![]() ![]() ![]() Класс: Бледный Мастер Характер: Neutral Evil Раса: Человек ПОДМАСТЕРЬЕ ![]() |
Здравствуйте, я тут уже 2й час мучаю ф-ию AdjustAlignment(). И вот, что у меня получилось:
Сразу видно, что последняя строчка - это не ф-ия, а ошибка природы. Исправьте пожалуйста, сам я не допираю... :this:
У меня такая же фигня... Вон, видишь над какой шнягой мучаюсь... :swoon:
Посмотри в теме "Часто задаваемые вопросы" там это есть. Сам оттуда брал. ;) Сообщение отредактировал Archangel - Jun 8 2005, 20:37 |
||||||
![]()
Сообщение
#1384
|
|
Сивоха ![]() ![]() ![]() Класс: Некромант Характер: Lawful Evil Раса: Человек ![]() |
void AdjustAlignment(object oSubject, int nAlignment, int nShift)
oSubject - объект, алигмент каторава миняицца nAligment - собсна сам алигмент(памари в константах, как они там пишуцца. Что-то вроде ALIGNMENT_LAWFUL, ALIGNMENT_GOOD и т.д. Какой нужен ставь) nShift - эт я думаю пнятна Далее не пнятна, что ты хочешь. Каму что поменять? |
![]()
Сообщение
#1385
|
|||||||||||||||||
![]() Класс: Обыватель Характер: Chaotic Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
To Garou
GetTimeHour(); вернет только час. Без всяких минут. Это тот час, в который твой непись должен встретиться с игроком.
Проще, имо, добавить это в скрипт начала разборки. Например, после атаки или начала разговора. Это переменная, которая не даст неписю (скрипту) еще раз начать разборку или диалог. А то он у тебя в течении часа (GetTimeHour(); ) каждые шесть секунд (у тебя на хертбите модуля скрипт) будет начинать все сначала.
Дык, замени GetCalendarDay(); на GetTimeHour(); и поставь на один-два часа вперед. Вот и проверишь.
Сначала конвертнуть два раза, а потом просто заменить расширение. Скрипт будет выглядеть:
еще главный (насколько я понял) момент. Файл ОБЯЗАТЕЛЬНО должен быть моно. To Archangel
Судя по скрипту Archangel`а ему как раз это-то и непонятно... Это на какую позицию ты хочешь поставить элаймент. пример: AdjustAlignment(oPC, ALIGNMENT_LAWFUL, 100) - сдвинет элаймент по оси LAWFUL/EVIL на отметку LAWFUL 100% (вроде так) Добавлено в [mergetime]1118281784[/mergetime] Эмс... сорри, пропустил:
вот:
|
||||||||||||||||
![]()
Сообщение
#1386
|
|||||||||||
Level 5 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Человек ![]() |
xz - по русски "хз" это самая неопределенная переменная какую я знаю. В своем скрипте вместо этого вставь цифру от 0 до 23, во сколько хочешь, чтоб непись пришел.
А это можно вставить в разные места, я не знаю как у тебя в модуле развиваются события. Я бы, чтоб не писать отдельный скрипт, вставил в ХБ модуля вот так:
Я для проверки таких скриптов использую вот такую "машину времени": Делаю любой юзабельный плэйс, рычаг, например и на онюзе ставлю скрипт:
И у тебя сразу в игре наступает нужное время |
||||||||||
![]()
Сообщение
#1387
|
|
Level 3 ![]() Класс: Оборотень Характер: Chaotic Good Раса: Человек ![]() |
Низкий Вам поклон, Убо-Сатло, Auren и TigerGrayhawk :good: !!!
Вчера создал книгу (item) с квестовой инфой. Как сделать обновление дневника игрока при ее чтении? Куда ставится этот скрипт? Добавлено в 08:47 Да, сори, а ...int /*какой нужен месяц*/ ), int /*какое нужно число*/))...*какой нужен месяц* и *какое нужно число* - числа? Сообщение отредактировал Garou - Jun 9 2005, 09:06 |
![]()
Сообщение
#1388
|
|||||
Сивоха ![]() ![]() ![]() Класс: Некромант Характер: Lawful Evil Раса: Человек ![]() |
Должно быть на OnActivateItem в свойствах модуля. Вылгядеть должно примерно так:
Сообщение отредактировал Auren - Jun 9 2005, 09:56 |
||||
![]()
Сообщение
#1389
|
|||
Level 5 ![]() ![]() Класс: Убийца Характер: True Neutral Раса: Чудовище ![]() |
Хмхмхмх. посмотрел в часто задаваемых вопросах как сделать, чтобы при повторном подходе Непись говорил другую фразу. Там написанно так
Но у меня нпс все равно говорит первоначальную фразу! Я ставил скрипты и на фразу героя и на фразу НПСа, но ничего не выходит! В чем может быть проблема, подскажите пожалуйста. |
||
![]()
Сообщение
#1390
|
|
Сивоха ![]() ![]() ![]() Класс: Некромант Характер: Lawful Evil Раса: Человек ![]() |
2Агрессинг
Скажи подробней, что тибе надо, плиз. Сообщение отредактировал Auren - Jun 9 2005, 14:12 |
![]()
Сообщение
#1391
|
|
Level 5 ![]() ![]() Класс: Убийца Характер: True Neutral Раса: Чудовище ![]() |
Auren
Ну как вот ты это делаешь? На чью реплику ставишь 2ой скрипт? А первый? В этом скрипте точно все верно? "FirstTalk" можно назвать, например "FirstTalkNPC"? Ответь пожалуйста, а я проверю и отпишусь об результате. Мне бы модуль с этой ф-ней, я бы сравнил, но тут на форуме привязывать файлы только админы имеют право.. |
![]()
Сообщение
#1392
|
|
Сивоха ![]() ![]() ![]() Класс: Некромант Характер: Lawful Evil Раса: Человек ![]() |
Переменную мона обзывать практически как угодно, не в ней дело.
Я прошу тебя описать ситуацию, чтобы понять, что тебе нужно. Тебе нужно чтобы типа когда разговариваешь с неписем первый раз, он гварил адну фразу, а птом все время вторую? Или у тебя список этих фраз(10 например) и непись должен говорить их поочереди или рандомна? |
![]()
Сообщение
#1393
|
|||
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Я писал не так давно о том, как там правильно ставить проверки. Повторю наверное: ВЫБОР ФРАЗЫ НПС: берет первую. Если подходит условие, то НИЖЕ НЕ ИДЕТ И ВЫДАЕТ ЕЕ. (те если условия там нет, то фразы под ней НИКОГДА не вылезут) Если условие не подошло, то берет слуд. фразу. и так до тех пор, пока не выполнится условие или не кончатся фразы (в этом случае диалог оборвется). ВЫБОР ФРАЗ-ВАРИАНТОВ ИГРОКА: проверка условия. Если выполняется, то фразу можно выбрать. Иначе - нельзя. А теперь смотри, что ты там у себя в диалоге наворотил. |
||
![]()
Сообщение
#1394
|
|
Level 5 ![]() ![]() Класс: Убийца Характер: True Neutral Раса: Чудовище ![]() |
Я взялLex
Ну это понятно. У меня две корневые фразы. 1-ая вылезает при первом начале диалога. На Actions ей я ставлю 1ый скрипт 2-ая должна вылезать при условии, заданной первой фразой. На text appears when ставлю 2ой скрипт. Все вроде правильно, но НПС всегда говорит одну фразу. может дело в глючном toolsetе ? Я для проверки встроенным визардом сделал скрипт на текст, чтобы он появлялся при вещи в инвентаре, но текст опять же не появился! :swoon: |
![]()
Сообщение
#1395
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Эх..... ты читаешь недостаточно внимательно (думая наверное, что сам это отлично знаешь).
ПЕРВАЯ фраза должна быть с ПРОВЕРКОЙ ВТОРАЯ фраза с УСТАНОВКОЙ локалки. диалог. Начало. Фразы НПС. >> Привет, снова ты? Что тебе нужно? (ТУТ СКРИПТ d_ch_firsttalk в закладке text appears when ) >> Привет, я тебя тут раньше не видел...... (ТУТ СКРИПТ d_st_firsttalk в закладке Actions) |
![]()
Сообщение
#1396
|
|||
Восставший из пепла ![]() ![]() ![]() Класс: Бледный Мастер Характер: Neutral Evil Раса: Человек ПОДМАСТЕРЬЕ ![]() |
Есть вопросик... А сколько можно вешать локальных переменных на Игрока за один скрипт? А то уменя есть скрипт:
Но так получается, что работает только самая верхняя пременная, а другие нет. Я уже по 5-6 раз проверил правильность скриптов, вызывающих лок. перменные '11' и '12'. Все верно. Каждая пременная служит для разных диалогов с разными НПС. Но работает только та, которая вызывает другой диалог у НПС, на ветке которого этот скрипт и стоит. И что же делать? :swoon: |
||
![]()
Сообщение
#1397
|
|||
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
если это скрипт в диалоге, то ты вешаешь локалки на НПС, с которым НАЧАЛ диалог. (не важно на чьей фразе стоит скрипт) Если тебе нужен игрок, юзай
|
||
![]()
Сообщение
#1398
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Агрессинг иди как сливай мой мануал и смотри. Там это все разжевано, только в рот клади.
Archangel во первых, мы тут видим только один из четырех скриптов. Во вторых не знаем структуру твоего диалога. Подумай своей тыковкой, если у тебя стоит три строки в ряд и ВСЕ ТРИ СРАБАТЫВАЮТ? Ну? И на какой он будет работать? На самой верхней, верно. К тому же OBJECT_SELF это чаще всего НПС на которм стоит диалог. Игрока лови так: GetPCSpeaker(); И если ты скажешь что нет примера такого сложного диалога в моей статье, то я тебе влеплю второй пред. :this: |
![]()
Сообщение
#1399
|
|||||||||||||
Level 3 ![]() Класс: Оборотень Характер: Chaotic Good Раса: Человек ![]() |
Может это глюк, но я сегодня вставил в хак файл WAV без двойных конвертаций... (правда сделал его изначально моно) и он PlaySound() воспроизвелся. Кому я "открыл Америку" проверте плиз, а то я начинаю думать, что достал свой тулсет настолько, что он уже на все согласен :bad: Добавлено в 21:47 Теперь к проблемам, у меня их всегда много... Этот скрипт я поставил в ActionTaken на последней реплике PC в ветке диалога
Этот – стоит на хартбите модуля
А этим рычагом я прокручиваю время, дабы проверить эту конструкцию в работе:
Но в модуле ничего не происходит. Где моя ошибка?:( Также пробовал
Результкт тот же :shout: LEX: ЕЩЕ РАЗ УВИЖУ СКРИПТЫ, НАПИСАННЫЕ НЕ В NSS - СРАЗУ ПРЕД. |
||||||||||||
![]()
Сообщение
#1400
|
|
Level 1 Класс: Друид Характер: Lawful Neutral Раса: Полуэльф ![]() |
Добрый вечер всем! Хотела поинтересоваться какой скрипт надо вешать, чтобы НПС дал НП определенный предмет. И если не затруднит-не подкинете пару скриптиков на головоломку (скачала уже одну-где на плиты нажимаешь и слово составляешь, а потом дергаешь за рычаг и дверь открывается). :dirol:
|
![]() ![]() |
Текстовая версия | Сейчас: 30th April 2025 - 13:47 |