Помощь - Поиск - Пользователи - Календарь
Полная версия: Вопросы новичков
Город Мастеров > РЕДАКТОРЫ > 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
fali
Привет всем знакомым и незнакомым. :)
С прошедшим праздником вас всех, и с наступающим. =)

Вот, появился у меня ещё небольшой вопрос. Может кто сможет помочь...
Вопрос:
Есть маленький модуль (состоящий из простейшего ланшафта), сделаный в игре 1.64 версии. И есть игра, версии 1.59. Когда попыталась запустить модуль -- говорит версия не та. Как в игре, так и в тулсете. Это были данные. =) А вопрос -- вот, собственно... Можно ли как-то обойти эту проверку версии (или что там такое делается...) и запустить модуль не обновляя игру до последних версий?
В общем-то, через неделю-полторы, когда вернусь домой, вопрос будет уже не актуальным. Там я просто скачаю обновления и всё. Но на данный момент такой возможности нет, а модуль посмотреть хочется. :)

Буду благодарна за любую помощь. :)
DBColl
Фали, http://www.wrg.ru/forums/index.php?showtopic=494&st=0&#
Ищи ответ тут. this.gif
Vhall
QUOTE (Lex @ Jan 2 2005, 22:34)
А где найти высококачественные стандартные текстуры для НВН? Знаю, что есть паки 16мегобайт, есть 32 вроде. Где их найти?

64 может и не быть. Их иногда урезают пираты. У Хети на ФТП они есть. Смотри первый пост
http://www.rpgplanet.ru/forums/index.php?showtopic=249
Аваддон
fali Давно не виделись, привет!
Сначала скачай что то вроде NWN Packer и вытащи из модуля файл module.ifo . Потом скачай GFF Editor и открой им этот MODULE.IFO. Найди там 1.64 и исправь на нужную тебе версию. Сохрани файл и залей обратно в модуль и сохрани.
Все редакторы лежат на ваульте.
Vhall
Ситуация:
Хак добавляет (должен smile.gif ) в appearance новые модели существ. При выборе этой самой новой модели появляется ошибка и модель не отображается. В связи с этим появляются вытекающие вопросы:
1. Достаточно ли mdl и 2da файлов для работы такого типа хака (добавление в appearance моделей...)
2. И как все это исправить biggrin.gif

Подскажите пожалуйста

PS были подозрения на кривые 2da'шки, но они развеялись после их редактирования
Вот, кстати, хак
http://nwvault.ign.com/Files/hakpacks/data...351869081.shtml
Leon PRO
Так... по порядку...
Для начала скажу, что bif, erf лучше всего потрошить Total Commander-ом подключив к нему плагин. Лучше способа я еще не видел. Эти паки просто выглядят тогда как обычные архивы. Пока не выйду на работу никому не смогу прислать плагин.
Далее, mdl-файлы лучше всего распаковывать и смотреть mdlWiever-ом от Биовар. Для конвертации из бинарного в ASCII формат есть спец-тулзы на Ваулте. Например veltools вроде так называется.
На счет dds. Ставьте спец. плагин для Explorer-а от nVidia и тогда их можно будет видеть в качестве превьюшек прямо в виндах - самый удобный способ.
Еще. Не гонитесь за большими текстурами, они почти не сжимаются, ваш Хак будет просто огромным.
ммм... вроде пока все.

Далее:
QUOTE
Есть ли какая-либо дифференциация среди текстур НВН по качеству? То что показывает nwnexplorer неприемлемо - все low. Скачал ПДФник с именами текстур - там тоже low
Добавлено в 20:05
Судя по наблюдениям, несмотря на отвратительное качество текстур в mdl, в игре они соответствуют текущим настройкам. wtf... 

Есть. Простые текстуры в виде tga-файлов и специальные dds-текстуры с мипмэммингом. В принципе, если все заменить на текстуры высого разрешения, то слабые компы благополучно загнуться. Да и НВН будел лагать. Во-вторых первое место не текстуры а Ваша видеокарта. Иногда достаточно включить все на максимум, и все будет отлично. Антиалиасинг на первом месте.

QUOTE
Привет всем знакомым и незнакомым. smile.gif
С прошедшим праздником вас всех, и с наступающим. pardon.gif

Вот, появился у меня ещё небольшой вопрос. Может кто сможет помочь...
Вопрос:
Есть маленький модуль (состоящий из простейшего ланшафта), сделаный в игре 1.64 версии. И есть игра, версии 1.59. Когда попыталась запустить модуль -- говорит версия не та. Как в игре, так и в тулсете. Это были данные. pardon.gif А вопрос -- вот, собственно... Можно ли как-то обойти эту проверку версии (или что там такое делается...) и запустить модуль не обновляя игру до последних версий?
В общем-то, через неделю-полторы, когда вернусь домой, вопрос будет уже не актуальным. Там я просто скачаю обновления и всё. Но на данный момент такой возможности нет, а модуль посмотреть хочется. smile.gif

Буду благодарна за любую помощь. smile.gif

Привет! А тебе, птица высокого полета, личный выговор black eye.gif , со всеми вытекающими.
Как запустить модуль тебе уже написали, но я бы не советовал лезть в потроха mod-файла. Можно загубить все одним "левым" движением. Лучше подожди.

QUOTE
Ситуация:
Хак добавляет (должен  ) в appearance новые модели существ. При выборе этой самой новой модели появляется ошибка и модель не отображается. В связи с этим появляются вытекающие вопросы:
1. Достаточно ли mdl и 2da файлов для работы такого типа хака (добавление в appearance моделей...)
2. И как все это исправить 

Подскажите пожалуйста

PS были подозрения на кривые 2da'шки, но они развеялись после их редактирования
Вот, кстати, хак


Обычно в составе хака должен быть Readme-файл с инструкцией, но в принципе достаточно модели и правки 2da. Скорее всего модели содержат ошибки анимации или моделлинга. Я пока делал своего коня в нвн раз 20 подвешивал!!! игру. Возможно какие-то конфликты.
Proydoha
Как с помощю скриптов создавать визуальные (и только визуальные) эффекты заклинаний?
Twin

effect eXXX = EffectVisualEffect(int, int);
ApplyEffectAtLocation(int, eXXX, location, float);
ApplyEffectToObject(int, eXXX, object, float);

Есть еще пара функций, но там заклинания со звуком будут.
ActionCastFakeSpellAtLocation(int, location, int);
ActionCastFakeSpellAtObject(int, object, int);
fali
Тьфу ты, третий раз всё перепечатываю... Ну что за компьютер...

2DBColl и 2Аваддон:
Спасибо, прочитала. :) И вроде бы поняла... %)
Ещё бы нашёлся добрый человек, который смог бы дать мне прямые ссылки на енти редакторы... А то у меня что-то компьютер этот шалит -- только на ваулт зайти пытаюсь, всё разом закрывается.

2Leon PRO:
Не нужно мне выговор, хнык... Я холосая... =)
К тому же, я птица не "высокого полёта", а просто перелётная. :) Нужно же делать выводы. ;) И вообче, если уж потерял, нужно было на почту яндексовскую написать -- я бы и появилась. =) Имей в виду на будущее. ;)

А насчет редакторов и особенно плагина (мнямк... %)). Я конечно понимаю, что в праздники на работу отправлять нехорошо... Но я буду с нетерпением ждать, когда у тебя появится возможность до всего ентого добраться. =) Хотя с модом разобраться всё равно хочется сейчас. :) Дома он есть, значит безвозвратно не испорчу. =) А делать мне сейчас особо нечего... :)

2Aiwan:
Тоже проверка...
Теперь поняла. Нужно было изменение внутри тега ссылки делать, а не снаружи, как в html делают. =) Всё работает. :)
Аваддон
QUOTE (Leon PRO @ Jan 6 2005, 00:03)
Как запустить модуль тебе уже написали, но я бы не советовал лезть в потроха mod-файла. Можно загубить все одним "левым" движением. Лучше подожди.

Вот и не надо ля-ля, я это по 10 раз на дню делаю.
Качаем 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 pardon.gif
Меняем на ту версию какую нам надо. Сохраняем module.ifo.
Закрываем GFF Editor. И перетаскиваем только что сохраненный нами module.ifo в еще не закрытый нами модуль в NWN Packer'е. Он спрашивает заменить файл? Отвечаем да, и сохраняем модуль - вуаля!

P.S. Но на всякий случай, послушав Leon PRO перед тем как все это творить сделай резервную копию модуля в отдельную папочку smile.gif
Leon PRO
QUOTE
Вот и не надо ля-ля, я это по 10 раз на дню делаю.

Читай внимательнее, я же не тебе это говорил!
Человек первый раз залевший в ЭТО может испортить.
МОжет просто ты это сделаешь, и отошлешь ей готовый вариант ?

Эмм... что у тебя за ГФФ эдитор такой странный ? Уж не с ярлычком-ли зеленого цвета ? Если он, то тогда
QUOTE
Открываем модуль NWN Packer'ом. Выдергиваем module.ifo
Сохраняем этот файл где нибудь на жестком диске.
Не закрывая NWN Packer, запускаем GFF Editor.
Открываем в нем наш module.ifo.
Открываем списочек и ищем Mod_MinGameVer
Видим там.. Ну я например сейчас вижу 1.62
Меняем на ту версию какую нам надо. Сохраняем module.ifo.
Закрываем GFF Editor. И перетаскиваем только что сохраненный нами module.ifo в еще не закрытый нами модуль в NWN Packer'е. Он спрашивает заменить файл? Отвечаем да, и сохраняем модуль - вуаля!

Можно сделать проще - раскрыть с помощью erf-пакера, встроенного в него, далее правым кликом переслать ifo в gff-пакер, встроенный в него-же, и сделав там-же изменения, снова вернуть в erf пакер, остается только сохранить...
Аваддон
Leon PRO нет, не с ярлычком зеленого цвета. С ярлычком это NWN ERF/GFF Editor.
Aiwan
QUOTE (Leon PRO @ Jan 6 2005, 03:03)
Пока не выйду на работу никому не смогу прислать плагин.

Я стою в твоем списке первым. biggrin.gif
QUOTE (Leon PRO @ Jan 6 2005, 03:03)
На счет dds. Ставьте спец. плагин для Explorer-а от nVidia и тогда их можно будет видеть в качестве превьюшек прямо в виндах - самый удобный способ.

ССЫЛКУ!
QUOTE (Leon PRO @ Jan 6 2005, 03:03)
Я пока делал своего коня в нвн раз 20 подвешивал!!! игру. Возможно какие-то конфликты.

Обана biggrin.gif Дай посмотреть!
QUOTE (fali @ Jan 6 2005, 13:09)
Теперь поняла. Нужно было изменение внутри тега ссылки делать, а не снаружи, как в html делают. pardon.gif Всё работает. smile.gif

Да в принципе ничего не нужно делать то. Напиши свой текст и потом выдели его и жамкай по кнопкам. Все тэги встанут сами.

п.с. Хм, приятно черт побери не успевать отвечать на вопросы biggrin.gif в хорошем смысле слова...
Leon PRO
Сегодня жизнь перешла на новую волну, отраженную в потоке мыслей. Поэтому сегодня решил помочь чем еще могу. У меня тут в клубе на всех 24 машинах лежит чуть-ли не полнейший инструментарий... Если админ не будет ломаться и подключит оба мои винта в 160Гб (с которыми я не расстаюсь после "ухода" компутера), то ждите этой ночью кучу слитых с них тулзов. Я пошел к Админу pardon.gif
Proydoha
ВОПРОС
Как увеличить дальность обзора?

ОТВЕТЫ
Полностью убрать нельзя.
edit -> area properties -> visual -> customize environment
Можно поставить 500-1000, но тогда сильно увеличится затрата ресурсов игрой (лагать будет).
baskan
Здраствуйте, я вот тут захотел сделать простейший стат. квест, но в этом я полный 0. black eye.gif
1)Как сделать чтобы при первом разгооре игрока с НПС показывался один диалог
2)После первого разговора включался второй диалог.
3)Как сделать проверку на наличие предмета у игрока.Например ели у игрока есть например ключ ему включался определеный диалог(тоесть вот смотри пункт 2, идет второй диалог. и там спрашивають.ты добыл ключ? говориш да, и делаеться проверка на наличие)
4)После того как квест выполнен включался следующий диалог
Vhall
//заодно мне разъясните пожалуйста, что такое стат-квест pardon.gif
Leon PRO
Залил тулзы на хостера. Это примерно 90% из того что я использую для работы с НВН (не считая моделлинга). Этого ДОСТАТОЧНО для большинства задач.

Итак:
1. Просто великолепный ERF/GFF эдитор. Я им пользуюсь в 99,99% случаев, когда правлю структуры.
2. Тот самый плагин для Тотал Коммандера которым можно распаковывать все ERF-структуры (BIF, HAK, ERF)
3. Tlk Edit - Этим я ковыряю TLK файлы
4. SSF-эдитор Написан на Java. У меня дома валяется собственный, но его кроме меня никто не сможет юзать, а если доделать будет просто конфетка pardon.gif
5. SET-эдитор - Настоящий клад. Просто классный инструментарий для Тайлсетчика. По началу пугает, но потом беез него как без рук. Может почти все.
6. Zoligato NWN Viever С него все думаю начинали pardon.gif работает как Эксплорер в Биф архивах.
7. Компилятор/декомпилятор MDL Файлов из двоичного формата в ASCII и обратно !!!Консольная программа!!!
8. CD-Key генератор Ключей для CD-Key.ini файла
9. Шрифт в стиле НВН.
10. Bioware MDL Viewer Кидаем в папку с моделями, и запускаем.
11. Bioware GFF Editor В некоторых случаях пользуюсь вместо ERF/GFF эдитора.
12. Та самая прога от nVidia Инсталлим, заходим в виндах в папочку с dds-ками и ставим у окошек тип просмотра-превью.

Огромная просьба к Айвану - переложить это все куда-нить, ато лежит на платном хосте и мне дадут по голове, если траффик сильно потечет.

З.Ы. Пошел резаться в UT2004, или кино посмотрю.
Proydoha
Vhall’rafein Слайдшоу! Отличная идея!

baskan Сам несколько недель мучался такими вопросами. Мой тебе совет: Скачай Aurora Tutorial с этого сайта и два модуля к нему. Лично я учился именно по ним.
2GoDoom
baskan,
Делается очень легко - с пмощью Локальных переменных...

Как ты мог догадатсья, полистав словарик или просто почитав надписи в тулсете при создании конверсейшна:
TextAppearsWhen - значит "Текст появляется когда..." и там нужно выбрать скрипт. Это значит что в скрипте задаются условия появления. (кстати там есть визард)
ActionTaken - значит "Предпринимаемое действие" (или типа того), то есть - что-то происходит после того как игрко выбрал этот ответ в диалоге, или НПЦ вышел на ветку с этим скриптом... Тут опять же есть визард.
Визард - помощник создания простых скриптов, отображается как шапочка...

Итак, теперь рассказываю подробнее...
Мы создаем все три ветки (я так понял их три надо):

- Привет, игрок
-- Привет, нпц!
- Есть ключ?
-- Есть (проверка)
-- Нету
- Молодец, ты справился с квестом! Терь вали отсюдова!

На первом диалоге (Привет, игрок) вешаем скрипт проверки локальной переменной, например назовем её - 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, contant int, 1.
Теперь переходим к второй ветке диалога (есть ключ?) - надпись будет высвечиваться если q_prog равно 1. (Думай разберешься как сделать проверку wink.gif ), ну а на ответе: (Есть) - делать првоерку на ключ... Опять же визардом: Item in Inventory и там вписываем тэг вещицы (лучше писать не попамяти - акопировать и вставлять...). Ну и Акшэн Тэйкин - присваиваем q_prog значение 2.
И последнюю ветку вешаем првоерку, если q_prog = 2...

Раз стат квест - значит надо выдать награду. Выдавать награду можно опять же через ActionTaken (Give Rewards)... Примечание: если хочешь наградить вещью - то там надо вписывать ResRef вещит, а не тэг... вроде pardon.gif

Вот и все...

Кстати попутно с квестом можно вести запись в дневнике (закладочка - Others... там думаю разберешься)
ПРИМЕЧАНИЕ: Локальные переменные - остаюстя на игроке, так что в следущем квесте не используй переменную q_prog...
ПРИМЕЧАНИЕ: Если хорошо подумаете - то сможете это все еще оптимизирвоать и улучшить... (хоят бы для повышения переменной - не обязательно использоват ьнесколько разных скриптов wink.gif )

З.Ы.
Стат квест = стационарный квест.
fali
2Аваддон:
Большущее спасибо. =) Очень подробно и понятно. Чуть позже скачаю и сразу попробую. =) А сохранять... Так я завсегда по нескольку раз всё сохраняю на всякий пожарный. %) Наученная уже. ))

2Leon PRO:
Ой... *пытается сообразить, сейчас скачивать или потом* Не ожидала, что так быстро выложишь... %) Сейчас размеры посмотрю -- если не большие, скачаю всё-таки сейчас. Если великоваты, придётся потом повторно просить. =)

2Aiwan:
Я так и делала. =) Только, по привычке, нажимала сначала на создание ссылки, а потом уже на оформление. :) В этом случае не работает. =)

Ну и ещё вопрос в догонку. :)
Вопрос:
А есть ли, собственно, в тулсете какая-нибудь "кнопочка", с помощью которой можно было бы создать модуль не привязаный к версии игры? :) А то ведь, и правда... Вдруг понадобиться знакомому без патчей с помощью модуля что-либо показать. Неуж-то ничего не предусмотрено для таких случаев? :)
Leon PRO
QUOTE
ВОПРОС
Как увеличить дальность обзора?

ОТВЕТЫ
Полностью убрать нельзя.
edit -> area properties -> visual -> customize environment
Можно поставить 500-1000, но тогда сильно увеличится затрата ресурсов игрой (лагать будет).


Можно убрать полностью... правда в этом случае будет заметна "граница" модуля. Там где заканчиваются тайлы и начинается серая "пустота".

Это достигается расширением "сферы" тумана, до 300-350 фунтов и управляется только через MOD-файл непосредственно вскрытый спецЭдитором. (Подробности не помню навскидку this.gif )

QUOTE
А есть ли, собственно, в тулсете какая-нибудь "кнопочка", с помощью которой можно было бы создать модуль не привязаный к версии игры? smile.gif А то ведь, и правда... Вдруг понадобиться знакомому без патчей с помощью модуля что-либо показать. Неуж-то ничего не предусмотрено для таких случаев? smile.gif

Как говорил Ури в Приключениях Электроника: "Ну как Вы не поймете! Нет у него кнопки!" ©
Вобщем такой кнопки нет!!!
baskan
2GoDoom Бааальшое спасибо. Разобрался. Теперь вопрос. Как после конца квеста сделать чтобы нпс исчезал?(или в лимбо)
balrog
QUOTE
Как после конца квеста сделать чтобы нпс исчезал?(или в лимбо)


Сьавишь этот скрипт в диолог на АктионТайк ... типо мол - спасибо шо принёс мне это, ну я тогда валю, ещё раз спасиобо, пока .... и НПС убехает и исчизает

Neverwinter Script Source
//:: Makes Sam to leave

void main()
{
object oWP = GetWaypointByTag ("SAM_EXIT");
object oNPC = GetObjectByTag("Sam");
AssignCommand (oNPC, ActionMoveToObject (oWP, TRUE) );
AssignCommand (oNPC, DestroyObject(OBJECT_SELF));
}


Но конешно, наверное, можно и так .. я конеш не скриптер ... меня поправят есди шо нитак pardon.gif
Neverwinter Script Source
void main()
{
AssignCommand (oNPC, DestroyObject(OBJECT_SELF));
}

biggrin.gif
2GoDoom
Как написал Балрог, только лучше, я думаю, будет написать, чтобы Дестроился обжект только через какое-то время... pardon.gif
baskan
Всем спасибо, кто помог с диалогами yahoo.gif
У меня еще вопросы возникли:
В модуле просто очень много ненужных скриптов, и мне нужно от них избавиться..Поодному в аврроре их удалять очень гиморно( и тем более модуль болшой ждать пока удалиться скрипт заманаешся), если ли какиенибудь проги black eye.gif с помощью которых можно удалять кучками скрипты? или есть другой выход?
Alexisss
Помойму в модуле можно было выделить все или чась скриптов, както открыть там скрипты, и будет куча скриптов в модуле в твоем или во всех, выделиих и нажми Delete.
baskan
Опять вопрос!) Как сделать чтобы при насиупании игрока на тригер нпс начинал диалог? black eye.gif
Аваддон
baskan Это действие должно происходить один раз? Тогда делай так:
ОнЭнтер триггера:
Neverwinter Script Source
void main()
{
object oPC = GetEnteringObject();
object oNPC = GetNearestObjectByTag("NPC_TAG",OBJECT_SELF);
int iEnter = GetLocalInt(OBJECT_SELF,"STARTED");

  if(iEnter != 1 && GetIsPC(oPC))
  {
  SetLocalInt(OBJECT_SELF,"STARTED",1);
  AssignCommand(oNPC,ActionStartConversation(oPC,"conversation_resref"));
}
}


Писал без авроры потому возможны ошибки. Но суть должна быть ясна.
Falcon
Добро времени суток. еть вопрос. короче задача что бы група монстров что респавниться в локе била всех кроме воров. Сделал кастом монстров. как я понимаю надо вешать скрипт им всем на он-персепшион. я могу сделать что бы они били только воров там или только ттам еще чтото определенное. а как сделать что бы всех кроме когто в упор не доганяю.
2GoDoom
Нужно делать циклом, пожалуй...
Перебирать циклом всех кто ест ьв локации... Если вор - то брать следущего, если не вор - то атаковать... И это в ОнСпавн мобов... (Если тебе нужно чтобы мобы всех мочили в локе просто)...
Если же тока когда заметит - то проверка вор или нет. Если не вор - то атакует...

Вроде бы все просто pardon.gif
Aiwan
QUOTE (balrog @ Jan 7 2005, 19:10)
Но конешно, наверное, можно и так .. я конеш не скриптер ... меня поправят есди шо нитак

Конечно. Тот скрипт не будет работать верно, так как НПС будет бежать, бежать, вдруг его толкнут или окликнут и он забудет зачем бежал, а бежал он дестроиться на точку. Лучше сделать так:
Neverwinter Script Source
void main()
{
object oExit = GetNearestObjectByTag("WP_EXIT");
// куда бежим, хоть в другую локу, реалестичней, т.к. побежит в двери
object oNPC = OBJECT_SELF; //сам тот кто бежит
AssignCommand(oNPC, ClearAllActions()); // забудь все что не успел сделать!
AssignCommand(oNPC, ActionForceMoveToObject(oExit, FALSE, 1.0, 25.0));
// FALSE можно поменть на TRUE и тогда непись побежит, скорость 1.0,
// если застЯл то через 25 сек прыгнет в точку
AssignCommand(oNPC, ActionDoCommand(DestroyObject(oNPC)));
//Сепука, будет только если дошел до точки oExit
DelayCommand(0.3, SetCommandable(FALSE, oNPC));
// Борьба с ретроградной амнезией - забиваем стек команд.
// Теперь он точно сделает себе харакири
}

2 baskan...
Neverwinter Script Source
void main()
{
    object oPC = GetEnteringObject(); // Тот идиот что встал на триггер
    if (!GetIsPC(oPC) || GetLocalInt(OBJECT_SELF, "TRIGGERED") == 1)
        return;
// Если это был не игрок, а кто то еще (матрица рулит), или он уже
// наступал в это дерьмо один раз, то скрипт не сработает
    object oNPC = GetNearestObjectByTag("ТАГ_НПС");
//  Тот придурок что должен сказать ПРИВЕТ!
    AssignCommand(oPC, ClearAllActions());
    AssignCommand(oNPC, ClearAllActions());
    AssignCommand(oNPC, SpeakString("Эй, придурок! Я к тебе обращаюсь!"));
//  Использую не ActionSpeakString, что бы НПС говорил фразу делаЯ что велено дальше
    AssignCommand(oPC, ActionDoCommand(SetFacingPoint(GetPosition(oNPC))));
//  Повернем мордой лица РС к НПС
    AssignCommand(oPC, ActionSpeakString("Ну, ванючка! Держись!"));
//  Тут наоборот, жду когда повернетсЯ и ТОГДА ответит
    AssignCommand(oNPC, ActionForceMoveToObject(oPC, FALSE, 1.0, 15.0));
    AssignCommand(oNPC, ActionStartConversation(oPC));
    AssignCommand(oNPC, ActionDoCommand(SetCommandable(TRUE, oNPC)));
// Убедительно просим оНПС подойти к РС и сказать что велено! И не ЗАБЫТЬ!
    DelayCommand(0.3, SetCommandable(FALSE, oNPC)); // типа что бы не забыл
    SetLocalInt(OBJECT_SELF, "TRIGGERED", 1); // Запомним что это ужо было
}

QUOTE (baskan @ Jan 7 2005, 22:38)
В модуле просто очень много ненужных скриптов, и мне нужно от них избавиться..Поодному в аврроре их удалять очень гиморно( и тем более модуль болшой ждать пока удалиться скрипт заманаешся), если ли какиенибудь проги  с помощью которых можно удалять кучками скрипты? или есть другой выход?

Открой папку темр0 и там удали все что не надо с раширением ИМЯ_СКРИПТА.NSS, ИМЯ_СКРИПТА.NCS
Falcon
QUOTE (2GoDoom @ Jan 7 2005, 22:16)
Если же тока когда заметит - то проверка вор или нет. Если не вор - то атакует...

блин все гениальное поросто или я туп как пробка. я уже далма фракции менять скриптом. crazy.gif
Alexisss
Слушайте какова черта делаю скрипт на предмет а он не светится хотя Toolset говорит что все правельно
"Скрипт Писал Сам все совпадения Случайны"

Neverwinter Script Source
//::///////////////////////////////////////////////
//:: Name svet
//:: Copyright © 2005 Alexisss Corp.
//:://////////////////////////////////////////////
/*
When Created apply a coloured effect/

Rod Colour
1 = Blue
2 = Green
3 = Red
4 = White
5 = Yellow
*/

//:://////////////////////////////////////////////
//:: Created By: Alexisss
//:: Created On: 2005
//:://////////////////////////////////////////////

void main()
{
if (GetLocalInt(OBJECT_SELF, "nDoOnce") == 1)
return;
SetLocalInt(OBJECT_SELF, "nDoOnce", 1);

effect eGlow;

int nColour = StringToInt(GetStringRight(GetTag(OBJECT_SELF), 1));

switch (nColour)
{
case 1: eGlow = EffectVisualEffect(VFX_DUR_GLOW_BLUE);
break;
case 2: eGlow = EffectVisualEffect(VFX_DUR_GLOW_GREEN);
break;
case 3: eGlow = EffectVisualEffect(VFX_DUR_GLOW_RED);
break;
case 4: eGlow = EffectVisualEffect(VFX_DUR_GLOW_WHITE);
break;
case 5: eGlow = EffectVisualEffect(VFX_DUR_GLOW_YELLOW);
break;

}

ApplyEffectToObject(DURATION_TYPE_PERMANENT, eGlow, OBJECT_SELF);
}
Alexisss
Извените если где уже писал этот вопрос...... Скажите что сдесь надо исправить чтоб работало?

Neverwinter Script Source
//::///////////////////////////////////////////////
//:: Name Ispravit
//:: Copyright © 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
    This will spawn
   
*/

//:://////////////////////////////////////////////
//:: Created By: Alexisss
//:: Created On: Sept 5, 2003
//:://////////////////////////////////////////////
#include "hx_inc_meph"
#include "x2_inc_cutscene"
// Standard cutscene start
void StartCutscene(object oPC, int iCut);
// Change Track based on night.
void SetMusic(int iCut, object oPC);
// Day/Night switch
void DoDayToNight(int iCut, object oPC, float fTime = 14.0);
// Play sound object.
void CutPlaySoundObject(int iCut, object oSound);
// Create a fire trail.
void CutCreateFire(int iCut, object oPC);
// Create corpse fire.
void CutMakeCorpseFire(int iCut, object oDead);
// Activate cutscene for Associates.
void ActivateAssociates(object oObject, int iCut);

void main()
{
    int x = 0;
    int y = 0;
    int z = 0;
    object oPC = GetEnteringObject();
    object oBuild = GetObjectByTag("hx_meph_building", x);
    int iVFX;
    object oInvis = GetObjectByTag("hx_mephdstry_obj", y);
    int iCut = 300;
    object oWizRing = GetObjectByTag("hx_end_battle_protect", z);

    if(GetIsPC(oPC))
    {
        // Do once
        if (GetLocalInt(OBJECT_SELF, "nDoOnce") != 1)
        {
                // Debug
                /////////
                //SetLocalInt(GetModule(), "bKnower_MephistophelesNamed", TRUE);
            AddJournalQuestEntry("hx_crystal_journ", 40, oPC, TRUE, TRUE);
            BlackScreen(oPC);
            SetLocalInt(OBJECT_SELF, "nDoOnce", 1);
            // Set the PC unsafe from lava.
            SetLavaUnsafe(oPC);
            // Spawn the visual effect buildings in.
            while(GetIsObjectValid(oBuild))
            {
                // Get the effect.
                iVFX = StringToInt(GetStringLeft(GetName(oBuild), 3));
                // Apply the building effect.
                ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectVisualEffect(iVFX), oBuild);
                x = x + 1;
                oBuild = GetObjectByTag("hx_meph_building", x);
            }

            // Make the building PC Blockers invis.
            while(GetIsObjectValid(oInvis))
            {
                // Apply the invis effect.
                ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectVisualEffect(VFX_DUR_CUTSCENE_INVISIBILITY), oInvis);
                y = y + 1;
                oInvis = GetObjectByTag("hx_mephdstry_obj", y);
            }

            // Make wizard ring.
            while(GetIsObjectValid(oWizRing))
            {
                // Apply the ring effect.
                ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectVisualEffect(497), oWizRing);
                z = z + 1;
                oWizRing = GetObjectByTag("hx_end_battle_protect", z);
            }
        StartCutscene(oPC, iCut);
        }
    }
}

void StartCutscene(object oPC, int iCut)
{
      location lLoc = GetLocation(GetObjectByTag("hx_end_battle_copy_spawn_wp"));

      // Setup the scene
      CutSetActiveCutscene(iCut, CUT_DELAY_TYPE_CONSTANT);
      CutSetActiveCutsceneForObject(oPC, iCut, TRUE);

      // Cutscene objects other than the PC.
      object oMeph = GetNearestObjectByTag("hx_meph", oPC);
      CutSetActiveCutsceneForObject(oMeph, iCut);
      object oMeph2 = GetNearestObjectByTag("hx_meph_crystalx", oPC);
      CutSetActiveCutsceneForObject(oMeph2, iCut);
      object oDurnan = GetNearestObjectByTag("hx_end_fight_durnan", oPC);
      CutSetActiveCutsceneForObject(oDurnan, iCut);

      // PC Copy.
      object oPCCopy = CutCreatePCCopy(oPC, lLoc, "HX_PC_COPY_FINAL");
      CutSetActiveCutsceneForObject(oPCCopy, iCut);

      object oSound = GetObjectByTag("hx_crystal_meph_sound1");
      CutSetActiveCutsceneForObject(oSound, iCut);
      object oSound2 = GetNearestObjectByTag("hx_crystal_fire_explode", oPC);
      CutSetActiveCutsceneForObject(oSound2, iCut);
      object oSound3 = GetNearestObjectByTag("hx_final_pc_appear", oPC);
      CutSetActiveCutsceneForObject(oSound3, iCut);
      object oSound4 = GetNearestObjectByTag("hx_final_meph_appear", oPC);
      CutSetActiveCutsceneForObject(oSound4, iCut);

      // Waypoints.
      location lPCCopyStart = GetLocation(GetNearestObjectByTag("hx_final_fight_pc_start", oPC));
      location lPCStart = GetLocation(GetNearestObjectByTag("hx_end_battle_pc_start_wp", oPC));
      location lPCMove1 = GetLocation(GetNearestObjectByTag("hx_end_battle_pc_move1_wp", oPC));
      location lMephStart = GetLocation(GetNearestObjectByTag("hx_crystal2_meph_end_wp", oPC));

      // Deal with Henchmen.
      ActivateAssociates(oPC, iCut);

      // Setup the cutscene.
      CutSetCutsceneMode(1.1, oPC, TRUE, CUT_CAMERA_HEIGHT_HIGH, TRUE);
      //CutSetCutsceneMode(1.1, oPC, TRUE, TRUE, TRUE, 2);

      CutSetCamera(3.4, oPC, CAMERA_MODE_TOP_DOWN, 130.0, 5.0, 85.0,
                  CAMERA_TRANSITION_TYPE_SNAP);
      CutJumpToLocation(2.0, oPC, lPCStart);

      // Cached Meph
      CutApplyEffectToObject(0.6, DURATION_TYPE_PERMANENT, VFX_DUR_CUTSCENE_INVISIBILITY, oMeph);

      CutFadeFromBlack(3.5, oPC, FADE_SPEED_MEDIUM);

      // Start the scene.
      CutSetCamera(11.0, oPC, CAMERA_MODE_TOP_DOWN, 120.0, 18.0, 78.0,
                  CAMERA_TRANSITION_TYPE_SLOW);

      CutPlayAnimation(20.0, oDurnan, ANIMATION_LOOPING_TALK_FORCEFUL, 5.0);

      // PC warps in.
      DelayCommand(24.1, CutPlaySoundObject(iCut, oSound3));
      CutApplyEffectAtLocation(24.2, oPC, DURATION_TYPE_INSTANT, 487, lPCCopyStart);
      CutJumpToLocation(25.5, oPCCopy, lPCCopyStart);
      CutSetCamera(25.0, oPC, CAMERA_MODE_TOP_DOWN, 110.0, 6.0, 80.0,
                  CAMERA_TRANSITION_TYPE_FAST);
      CutActionMoveToLocation(24.0, oPC, lPCMove1, FALSE);

      // Durnan starts conversation.
      CutSetFacingPoint(26.1, oDurnan, "HX_PC_COPY_FINAL");
      CutActionStartConversation(28.0, oDurnan, oPC, "h9_durnan");

      // End scene.
      //CutFadeOutAndIn(40.5, oPC, 1.5);
      //CutDisableCutscene(iCut, 41.0, 41.0, RESTORE_TYPE_NONE);
}

void SetMusic(int iCut, object oPC)
{
    if(iCut == GetLocalInt(oPC, "nCutsceneNumber"))
    {
        object oArea = GetArea(oPC);
        int iTrack = MusicBackgroundGetNightTrack(oArea);
        MusicBackgroundStop(oArea);
        MusicBackgroundChangeDay(oArea, iTrack);
        MusicBackgroundPlay(oArea);
    }
}

void DoDayToNight(int iCut, object oPC, float fTime = 14.0)
{
    if(iCut == GetLocalInt(oPC, "nCutsceneNumber"))
    {
        DayToNight(oPC, fTime);
    }
}

// Play sound object.
void CutPlaySoundObject(int iCut, object oSound)
{
    if(iCut == GetLocalInt(oSound, "nCutsceneNumber"))
    {
      SoundObjectPlay(oSound);
    }
}

// Create fire trail.
void CutCreateFire(int iCut, object oPC)
{
    int x = 1;
    object oWP = GetNearestObjectByTag("hx_crsytal_cut_fire", oPC, x);
    float fDelay = 0.0;

    if(iCut == GetLocalInt(oPC, "nCutsceneNumber"))
    {
      while(GetIsObjectValid(oWP))
      {
          DelayCommand(fDelay, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_FLAME_M), GetLocation(oWP)));
          fDelay = fDelay + 0.13;
          x = x + 1;
          oWP = GetNearestObjectByTag("hx_crsytal_cut_fire", oPC, x);
      }
    }
}

// Create corpse fire.
void CutMakeCorpseFire(int iCut, object oDead)
{
    if(iCut == GetLocalInt(oDead, "nCutsceneNumber"))
    {
      CreateObject(OBJECT_TYPE_PLACEABLE, "hx_crystal_fire", GetLocation(oDead));
    }
}

// Activate cutscene for Associates.
void ActivateAssociates(object oObject, int iCut)
{
    //if(iCut == GetLocalInt(oObject, "nCutsceneNumber"))
    //{
        object oHench1 = GetHenchman(oObject, 1);
        object oHench2 = GetHenchman(oObject, 2);
        object oHench3 = GetHenchman(oObject, 3);
        object oAssoc1 = GetAssociate(ASSOCIATE_TYPE_ANIMALCOMPANION, oObject);
        object oAssoc2 = GetAssociate(ASSOCIATE_TYPE_DOMINATED, oObject);
        object oAssoc3 = GetAssociate(ASSOCIATE_TYPE_FAMILIAR, oObject);
        object oAssoc4 = GetAssociate(ASSOCIATE_TYPE_SUMMONED, oObject);

        if(GetIsObjectValid(oHench1))
        {
            CutSetActiveCutsceneForObject(oHench1, iCut);
            CutApplyEffectToObject(0.1, DURATION_TYPE_PERMANENT, VFX_DUR_CUTSCENE_INVISIBILITY, oHench1);
            CutApplyEffectToObject2(0.2, DURATION_TYPE_PERMANENT, EffectCutsceneGhost(), oHench1);
        }
        if(GetIsObjectValid(oHench2))
        {
            CutSetActiveCutsceneForObject(oHench2, iCut);
            CutApplyEffectToObject(0.1, DURATION_TYPE_PERMANENT, VFX_DUR_CUTSCENE_INVISIBILITY, oHench2);
            CutApplyEffectToObject2(0.2, DURATION_TYPE_PERMANENT, EffectCutsceneGhost(), oHench2);
        }
        if(GetIsObjectValid(oHench3))
        {
            CutSetActiveCutsceneForObject(oHench3, iCut);
            CutApplyEffectToObject(0.1, DURATION_TYPE_PERMANENT, VFX_DUR_CUTSCENE_INVISIBILITY, oHench3);
            CutApplyEffectToObject2(0.2, DURATION_TYPE_PERMANENT, EffectCutsceneGhost(), oHench3);
        }
        if(GetIsObjectValid(oAssoc1))
        {
            CutSetActiveCutsceneForObject(oAssoc1, iCut);
            CutApplyEffectToObject(0.1, DURATION_TYPE_PERMANENT, VFX_DUR_CUTSCENE_INVISIBILITY, oAssoc1);
            CutApplyEffectToObject2(0.2, DURATION_TYPE_PERMANENT, EffectCutsceneGhost(), oAssoc1);
        }
        if(GetIsObjectValid(oAssoc2))
        {
            CutSetActiveCutsceneForObject(oAssoc2, iCut);
            CutApplyEffectToObject(0.1, DURATION_TYPE_PERMANENT, VFX_DUR_CUTSCENE_INVISIBILITY, oAssoc2);
            CutApplyEffectToObject2(0.2, DURATION_TYPE_PERMANENT, EffectCutsceneGhost(), oAssoc2);
        }
        if(GetIsObjectValid(oAssoc3))
        {
            CutSetActiveCutsceneForObject(oAssoc3, iCut);
            CutApplyEffectToObject(0.1, DURATION_TYPE_PERMANENT, VFX_DUR_CUTSCENE_INVISIBILITY, oAssoc3);
            CutApplyEffectToObject2(0.2, DURATION_TYPE_PERMANENT, EffectCutsceneGhost(), oAssoc3);
        }
        if(GetIsObjectValid(oAssoc4))
        {
            CutSetActiveCutsceneForObject(oAssoc4, iCut);
            CutApplyEffectToObject(0.1, DURATION_TYPE_PERMANENT, VFX_DUR_CUTSCENE_INVISIBILITY, oAssoc4);
            CutApplyEffectToObject2(0.2, DURATION_TYPE_PERMANENT, EffectCutsceneGhost(), oAssoc4);
        }
    //}
}
Comper
Можно ли каким-либо образов изменять параметры силы, ловкости .. харизмы, но так чтобы не влияло на ограничение +12. Типа команд в консольке SetSTR, SetDEX, но в скриптах. Может, есть плагин к NWNX?
Лито
Кто знает как изменить текст при загрузке локаций?(там где обычно подсказки пишутся), хотелось бы заменить на свой, мне кажется это принесет модулю свою фишку crazy.gif
Vhall
Лито
loadhints.2da
DBColl
Alexisss
QUOTE (Alexisss @ Jan 8 2005, 05:52)
Извените если где уже писал этот вопрос...... Скажите что сдесь надо исправить чтоб работало?

1. Не пости такие большие скрипты по нескольку раз. this.gif
2. Вопрос неправильно поставлен. За тебя писать тебе сценку никто не будет. Просто даже потому, что не сможет. Ты бы хоть заставил разок себя покопаться и узнать КАКАЯ КОМАНДА стопорит, где, в каком месте, а не вываливать сюда УНИКАЛЬНЫЙ СКРИПТ, как будто он УНИВЕРСАЛЬНЫЙ И ВСЕ ЕГО ЮЗАЛИ РАНЬШЕ с просьбой расписать его для тебя... Отнесись по-человечнее к Мастерам и они не будут молчать, или того хуже кричать в твою сторону: "RTFM!!!"
QUOTE (Comper @ Jan 8 2005, 09:45)
Можно ли каким-либо образов изменять параметры силы, ловкости .. харизмы, но так чтобы не влияло на ограничение +12. Типа команд в консольке SetSTR, SetDEX, но в скриптах. Может, есть плагин к NWNX?

А ApplyEffectToObject(OBJECT_TYPE_PERMANENT, EffectAbilityIncrease(...)) не отрабатывает как надо?
Comper
QUOTE (DBColl @ Jan 8 2005, 14:33)
А ApplyEffectToObject(OBJECT_TYPE_PERMANENT, EffectAbilityIncrease(...)) не отрабатывает как надо?

Нет, мне нужно изменять базовые значения параметров.
Aiwan
2 Alexisss тут тонна чужого кода плюс две инклюды. Ты хоть их приведи и опиши что не работает.
QUOTE (Comper @ Jan 8 2005, 13:45)
Можно ли каким-либо образов изменять параметры силы, ловкости .. харизмы, но так чтобы не влияло на ограничение +12. Типа команд в консольке SetSTR, SetDEX, но в скриптах. Может, есть плагин к NWNX?

Что за ограничение? Может я что пропустил...
Comper
Вещами и спелами ведь параметры можно поднять максимум на 12. Назовём это бонусом.
А через консольку можно SetSTR хоть 100 поставить и измениться базовой значение. Не затрагивая бонус.
VantallA
Задача такая -
предположим я хочу чтобы перс надавал по морде охраннику в таверне, но не убил, а именно кулаками (или дубинкой) нахренячить по башке, типа чтоб например в каком-нить притоне все сразу зауважали(примитивно но попытаюсь сформулировать по другомы если непонятно).
Кака это можно сделать? Как реализовать фиктивный дамаж, и предположим не ты а тебя отдубасили(ну напился ты побуянил) и выкинули на улицу, а потом в таверне к тебе относятся не враждебно но напряженно.
Возможно ли это?
Заранее спасибо за ответ.
Lex
хм... перед дракой сменить ему фракцию на темпорари енеми (чтобы другие не напали). Поставить флаг иммортал, чтобы не убить случайно. На onDamage слоте написать скрипт проверки ХП. Если меньше какого-то кол-ва, то остановка боя (отчистка акций, смена фракции охранника на дружественную, потом, через нек. время на ту, в которой он был). Вот собсна и все..
baskan
QUOTE (baskan @ Jan 7 2005, 19:38)
Всем спасибо, кто помог с диалогами yahoo.gif
У меня еще вопросы возникли:
В модуле просто очень много ненужных скриптов, и мне нужно от них избавиться..Поодному в аврроре их удалять очень гиморно( и тем более модуль болшой ждать пока удалиться скрипт заманаешся), если ли какиенибудь проги black eye.gif с помощью которых можно удалять кучками скрипты? или есть другой выход?

help.gif Или никто не знает ответа!? неверю pilot.gif
Aiwan
QUOTE (Aiwan @ Jan 8 2005, 01:23)
Открой папку темр0 и там удали все что не надо с раширением ИМЯ_СКРИПТА.NSS, ИМЯ_СКРИПТА.NCS

А слабо почитать что тебе пишут в ответ? aggressive.gif
baskan
Ну и дела black eye.gif Не видел, извиняюсь buba.gif
Vhall
Кто знает как подключаются эти хаки, подскажите пожалуйста smile.gif
Что-то у меня ну ни капельки не выходит... dntknw.gif
http://nwvault.ign.com/Files/hakpacks/data...351869081.shtml
http://nwvault.ign.com/Files/hakpacks/data...890117000.shtml
2GoDoom
хм... Наверное тама моделкьи, текстурки и 2да? Тогда берешь тулзу (utils/nwhak.exe) и добавляешь туда модельки, 2да... все что нужно вообщем...
Alexisss
Алеxиссс тут тонна чужого кода плюс две инклюды. Ты хоть их приведи и опиши что не работает.

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