![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
![]()
Сообщение
#1
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
********************************************************************************
Статьи, ссылки + выжимка из темы "Вопросы новичков, ТОМ 1" + выжимка из темы "Вопросы новичков, ТОМ 2" + выжимка из старых тем. ПОСТИТЬ ЗАПРЕЩЕНО ВСЕМ, КРОМЕ МОДЕРАТОРОВ РАЗДЕЛА. |
![]() |
![]()
Сообщение
#2
|
|||||||||||||||||||||||||||||
Level 10 ![]() Класс: Монах Характер: Lawful Good Раса: Человек NWN: Контент ![]() |
ВОПРОС Как сделать так, чтобы доступ в локацию был ограничен по левелу? То есть 3 левел еще может туда попасть а 4 уже нет? ОТВЕТЫ На OnEnter триггера ставится следующий скрипт. Этот скрипт всех других НЕ ПУСТИТ в локу. Монстров и прочее. Отредактировать под собственные нужды.
***************************************************************************** ВОПРОС Нет, я все таки не понимаю, как сделать тоже самое, но не с триггером или дверью, а с плэйсиблом? ОТВЕТЫ NPC по объекту кликнуть НЕ МОЖЕТ. Поэтому проверка на переход непися или PC - не нужна. Хенчи и прочие соратники движутся за игроком, в основном, по ActionForceFollowObject(oPC, 5.0, 15.0). И, следовательно, переходят за PC через 15 секунд, если тот дальше, чем 5 метров от них. На OnUsed предмета ставится скрипт:
***************************************************************************** ВОПРОС У меня в модуле, при перезаходе в него, восстонавливаются хит поинты и заклинания, а как сделать так, чтобы этого не происходило, и все запоминалось? ОТВЕТЫ Скрипт для сохранения здоровья и спеллов при перезаходе: событие OnClientEnter модуля:
OnClientLeave
***************************************************************************** ВОПРОС Как "выпотрошить" файл с расширением .hak для того, что бы его компоненты пошли в Оверрайд? ОТВЕТЫ В папке с игрой есть папка utils, а в ней утилита от BioWare для работы с hak-файлами. Называется nwhak.exe. ***************************************************************************** ВОПРОС Как с помощю скриптов создавать визуальные (и только визуальные) эффекты заклинаний? ОТВЕТЫ С начала, надо объявить переменную, содержащую эффект:
А затем, использовать функцию, применяющю эффект на объекте или на местности:
или
Так же, существует возможность применять "липовые" заклинания. Они не наносят повреждений, а в остальном, действуют, как настоящие:
или
***************************************************************************** ВОПРОС Как открыть модуль, созданный в более поздней версии тулсета? ОТВЕТЫ Предварительно создать копию модуля и использовать только на свой страх и риск! Качаем NWN Packer http://nwvault.ign.com/Files/other/data/1026158289668.shtml Качаем GFF Editor http://nwvault.ign.com/Files/other/data/1054162676171.shtml Открываем модуль NWN Packer'ом. Выдергиваем module.ifo Сохраняем этот файл где нибудь на жестком диске. Не закрывая NWN Packer, запускаем GFF Editor. Открываем в нем наш module.ifo. Открываем списочек и ищем Mod_MinGameVer Видим там.. Ну я например сейчас вижу 1.62 Меняем на ту версию какую нам надо. Сохраняем module.ifo. Закрываем GFF Editor. И перетаскиваем только что сохраненный нами module.ifo в еще не закрытый нами модуль в NWN Packer'е. Он спрашивает заменить файл? Отвечаем да, и сохраняем модуль - вуаля! ***************************************************************************** ВОПРОС Как увеличить дальность обзора? ОТВЕТЫ edit -> area properties -> visual -> customize environment Можно поставить 500-1000, но тогда сильно увеличится затрата ресурсов игрой (лагать будет). Можно убрать и полностью. Но в этом случае будет заметна "граница" модуля. Там где заканчиваются тайлы и начинается серая "пустота". Это достигается расширением "сферы" тумана, до 300-350 фунтов и управляется только через MOD-файл непосредственно "вскрытый" редактором. ***************************************************************************** ВОПРОС Здраствуйте, я вот тут захотел сделать простейший стационарный квест, но в этом я полный 0. 1) Как сделать чтобы при первом разгооре игрока с НПС показывался первый диалог; 2) После первого разговора включался второй диалог; 3) Как сделать проверку на наличие предмета у игрока? Например ели у игрока есть например ключ ему включался определеный диалог (тоесть вот смотри пункт 2, идет второй диалог. и там спрашивають.ты добыл ключ? говориш да, и делаеться проверка на наличие) 4) После того как квест выполнен включался следующий диалог ОТВЕТЫ Делается очень легко - с пмощью Локальных переменных... Как ты мог догадатсья, полистав словарик или просто почитав надписи в тулсете при создании конверсейшна: TextAppearsWhen - значит "Текст появляется когда..." и там нужно выбрать скрипт. Это значит что в скрипте задаются условия появления. (кстати там есть визард) ActionTaken - значит "Предпринимаемое действие" (или типа того), то есть - что-то происходит после того как игрко выбрал этот ответ в диалоге, или НПЦ вышел на ветку с этим скриптом... Тут опять же есть визард. Визард (Wizard) - помощник создания простых скриптов, отображается как шапочка... Итак, теперь рассказываю подробнее... Мы создаем все три ветки (для данного примера): - Привет, игрок -- Привет, нпц! - Есть ключ? -- Есть (проверка) -- Нету - Молодец, ты справился с квестом! Терь вали отсюдова! На первом диалоге (Привет, игрок) вешаем скрипт проверки локальной переменной, например назовем её - quest_prog (quest progress). Для этого можно использовать визард (пока в плане скриптинга обьяснять не буду - запустите визард, посмотрите на код и надеюсь все поймете) - визард в TextAppearsWhen (ТекстПоявляетсяКогда) - и там выбираем Local Variable, выбираем: int (числовая переменная, целая (не дробная)), пишем название переменной (q_prog), is less than (меньше чем), constant int (заданное число), 1. Далее на продолжении первого диалога ("привет, нпц!") вешаем скрипт (можно опять же визардом) на создании переменной q_prog и задачи ей числа 1. Set Local Variable (Задать локальную переменную), int, q_prog, constant int, 1. Теперь переходим к второй ветке диалога (есть ключ?) - надпись будет высвечиваться если q_prog равно 1. (Думай разберешься как сделать проверку ), ну а на ответе: (Есть) - делать првоерку на ключ... Опять же визардом: Item in Inventory и там вписываем тэг вещицы (лучше писать не попамяти - акопировать и вставлять...). Ну и Action Taken - присваиваем q_prog значение 2. И последнюю ветку вешаем првоерку, если q_prog равен 2. Раз стат квест - значит надо выдать награду. Выдавать награду можно опять же через ActionTaken (Give Rewards)... Примечание: если хочешь наградить вещью - то там надо вписывать ResRef вещит, а не тэг. Кстати попутно с квестом можно вести запись в дневнике (закладочка - Others... там думаю разберешься) ПРИМЕЧАНИЕ №1: Локальные переменные - остаюстя на игроке, так что в следущем квесте не используй переменную q_prog... ПРИМЕЧАНИЕ №2: Если хорошо подумаете - то сможете это все еще оптимизирвоать и улучшить... (хоят бы для повышения переменной - не обязательно использоват ьнесколько разных скриптов ) ***************************************************************************** ВОПРОС Как после конца квеста сделать так, что бы NPC исчезал (уходил)? ОТВЕТЫ Скрипт ставится на Action Taken того элемента разговора, после которого NPC должен изчезнуть.
WP_EXIT - объект, к которому пойдет (побежит) NPC. Чаще всего, на краю локации. ***************************************************************************** ВОПРОС Как сделать чтобы при заходе игрока на триггер NPC начинал диалог? ОТВЕТЫ
***************************************************************************** ВОПРОС Как сделать потайную дверь? Мне нужно, чтобы она появлялась только если у игрока есть определенный предмет в инвентаре и соотвественно, чтобы срабатывал в другую локацию. ОТВЕТЫ
***************************************************************************** ВОПРОС Можно ли запускать один скрипт из другого? И как? ОТВЕТЫ Можно:
Где sScript - имя исполняемого скрипта, а oTarget - объект, от лица которого скрипт будет запускаться. Этот объект в запускаемом скрипте будет OBJECT_SELF. ***************************************************************************** ВОПРОС ОТВЕТЫ ***************************************************************************** ВОПРОС ОТВЕТЫ ***************************************************************************** ВОПРОС ОТВЕТЫ ***************************************************************************** Сообщение отредактировал Lemegeton - Mar 18 2005, 21:07 |
||||||||||||||||||||||||||||
![]() ![]() |
Текстовая версия | Сейчас: 28th April 2025 - 18:53 |