Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Город Мастеров _ Neverwinter Nights Aurora Toolset _ Вопросы новичков

Автор: Вестель Jun 28 2004, 20:19

Глупый вопрос, но все равно задам: в упор не могу найти в палитре стойку бара (или что-то вроде). Облазил все, что можно, но всеже нигде нету. Не ужели ее в стандартной палитре нету?

Автор: Вестель Jun 29 2004, 13:34

QUOTE
Я так делал

Сделал аналогично. Теперь другой вопрос.
Есть диалог, в котором должно быть две ветки. Первая, в случае истинности условия, вторая в случае его ложности. Объясните поподробнее, куда должен вставляться скрипт и как его писать.
(условие - наличие оружие в руках героя).

Еще один вопросик: мне надо, чтобы монстр сидел на полу и ничего не делал, до определенного момента. Т.е. вопрос, как заставить существо лежать, сидеть на момент загрузки модуля?.. То есть я так понимаю, на существо надо повесить какой-то Action onSpawn. Вопрос какой?

Дальше больше: у меня есть охранник в таверне, он предупреждает о том, что оружием размахивать нельзя. У всех НПС и предметов, onDamaged висит скрипт действий - менять факцию дебошира на хостайл, но это не логично: он ведь не напал ни на кого лично. Он просто чуть-чуть побуянил. Как поступить? Если его факцию выставить хостайлом по отношению с гардом, то остальные ПС могут обидится - они то не причем.. Что делать: Делать отдельную факцию для дебоширов или есть другой способ?

Автор: Brodnik Jul 8 2004, 20:59

Я установил NWN NWN:SOU NWN:HOD пропатчил до 1.62.
Хочу перевести модуль, а в скриптах русские щрифты не поддерживаются.
ЧТО ДЕЛАТЬ!!!
HELP!

Автор: Lex Jul 8 2004, 21:00

закачай русские шрифты. У нас на сайте есть
Добавлено в [mergetime]1089309666[/mergetime]
и кинь эти шрифты в папку оверрайд

Автор: Аваддон Jul 8 2004, 21:03

Кхе, да он наверное не про это. Наверное он про то что в скрипт эдиторе на англ текст вводится а на русском - нет. Чтобы русский текст в скрипт впихнуть надо его куда нить написать и оттуда скопировать. Только остерегайсЯ маленькой буквы "я". У нас с ней свой счеты dirol.gif. Она всю компиляцию портит.

Автор: Lex Jul 8 2004, 21:08

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

Автор: DBColl Jul 8 2004, 21:14

QUOTE
Хочу перевести модуль, а в скриптах русские щрифты не поддерживаются.

Нажимай Ctrl+F, пиши текст в появившемся окне поиска(!), копируй в буфер и из буфера вставля в нужное место в скрипте.

Автор: Brodnik Jul 8 2004, 21:16

если я переношу уже напечатанный русский текст в скрипт то получается абракадабра.
какие шрифты куда переносить ?

Автор: Lex Jul 8 2004, 21:16

а я не так делаю. Я прямо пишу в поле Filter

ТЕБЕ НУЖНО В СКРИПТ-ЭДИТОРЕ ПОМЕНЯТЬ ШРИФТ
это самая правая иконка в верхнем ряду когда ты в скрипте ковыряешься. Выглядит как табличка маленькая

Автор: Brodnik Jul 8 2004, 21:21

Как думаете?
Я хочу перевести модуль (это вообще реально?)
потом поместить его на свой сайт в тематику по NWN
стоит это делать или нет?

Автор: Lex Jul 8 2004, 21:26

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

Автор: Brodnik Jul 8 2004, 21:42

Менял шрифты в скрипт едиторе толку нет всёравно абракадабра вместо русского хрень какая-то. Чё делать? Если в фильтре писать тоже хрень.!!! LEX помоги! Или кто-нибудь ещё

Кстати LEX желание есть вот только проблема с русским шрифтом в скриптах
модуль кстати называется Book of Shadowwe большой 16 метров и хак пак 19 метров.
Как думаешь осилю?

Автор: Lex Jul 8 2004, 21:51

одному трудно. К тому-же 18 метров это не мало. Переводить кроме диалогов и описаний вещей в палитре придется ОЧЕНЬ много. Описания все вещей в каждой локации всех вещей, что могут выпасть из погибших и тд. Работы, в общем много.

в фильтре писать, а потом переносить это такой-же вариант, как писать в доке или ворде или в поисковике, просто это быстрее немного.

"Менял шрифты в скрипт едиторе толку нет всёравно абракадабра вместо русского хрень какая-то"
- тогда не знаю. У меня была такая трабла. Поменял и все стало нормально. Ты посмотри другие шрифты в эдиторе, их там много.

Автор: Brodnik Jul 8 2004, 23:36

Спасибо Lex поменял шрифт на Courier и всё пошло.
Кстати кто знает где можно скачать хороший словарь для X-translator Platinum по тематике длиже к NWN.
И ещё этот вопрос скорее к тем кто переводил или переводит модули или к вам Lex Aiwan Авадон:
Я например перевожу диалог между PC и NPC в самой первой локации модуля,
затем захожу в игру и проверяю всёли правильно, сохраняюсь, выхожу перевожу дальше, гружу сохранёнку, а всё как было так и осталось переведённым остался толко диалог, а то что я переводил в первый раз не перевелось. Если начать модуль заново то будет переведено всё. Так что получается, что каждый раз как я хочу проверить перевод мне предётся начинать модуль заново?
ПОМОГИТЕ отцы модулестроения и модулеперевода.

Как думаете может стоит открыть тему по поводу перевода иодулей?

Автор: Аваддон Jul 9 2004, 00:01

А зачем диалоги то проверять? Я незнаю как надо извратится чтоб они работать перестали.
Единственное - не переводи таки вещи в диалоге заключенные в "< >" скобки. Напимер как <StartAction>,<StartCheck>,<CUSTOM...> и т.п.
Проверять надо скрипты.А если не хочешь каждый раз начинать модуль заново - просто перенеси в тулсете место старта игрока туда - где остановился.

Насчет перевода модуля.
Если буш переводить - не переводите контекстом. Тоесть буквально каждое слово. Просто любое предложение можно сформировать в разных вариантах. Надо эмоциональную окраску придать чтоли. Ведь эт почти тоже самое что и самому делать модуль. Чтобы игрок не жал на Esc или цифры в диалогах, а чтоб ему было интересно.

Насчет абры-кадабры в шрифтах:
У меня после каждой переустановки винды - абракадабра творится в шрифтах NWScripts и в Фотошопе. Я лично устранил это таким образом.
Открываешь реестр - (Пуск>Выполнить>regedit)
Далее - HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Control > Nls > CodePage >
Ищем там имена: 1250, 1251, 1252 и меняешь их значения на c_1251.nls .
Закрываешь реестр и перезагружаешь комп. Вуаля, в фотошопе и скрипт эдиторе нормальная кирилица.
Хотя может это только у меня так smile.gif dirol.gif

Автор: Brodnik Jul 9 2004, 00:12

Краткий обзор модуля который я перевожу
________________________________________________
Менz зовут Алекс, но у мен есть прозвище Шаддоу
В моей семье я сын, который должен обитать в Аристократических кругах.
Но ночью, когда мои родители отдыхают, я вор.
Почему я занимаюсь этим?
Кузен моего отца давил наше семейство в течение многих лет, я делаю это от злости к нему.
Он шериф Бендон, он управляет нашим городом, он коррумпированный и злой человек.
Некоторые сказали бы, что я не лучше, что я ворую не из-за потребности.
Конечно я храню в тайне мои приключения от моих родителей, они бы умерли если бы узнали чем я занимаюся.
Но каждую ночь, каждую ночь, я сменяю свои облик и становлюсь Шаддоу.
Я не злой человек, я не буду убивать, я не получаю никакого удовольствия от смерти.
Это мой рассказ и таков наш Город.
__________________________________________________

Ну как вам?!


Аваддон как перенести место старта игрока в модуле и сораниться ли у игрока всё что у него было квесты предметы, я думаю что нет. А насчёт того зачем я каждый раз проверяю перевод, например идёшь по улице раз дверь тебе и говорит мол за мной сидит девушка и плачет. То есть я проверяю скрипты невозможно перевести скрипты сразу пока не поиграешь сам.
Добавлено в [mergetime]1089321273[/mergetime]
И ещё подскажите в помощь начинаещему модулепереводчику
как сделать так что бы в скриптах писалась буква "я"?
Добавлено в [mergetime]1089321652[/mergetime]
Aiwan я так понял вы делаете какое-то дополнение я хотел бы быть тестером.
Можно?

Автор: Аваддон Jul 9 2004, 01:11

Бродник, приколись, как писать букву "я" уже написано в этой теме - чуть выше.
и в модуле надо поставить вейпоинт с тегом YA и именем "я"

QUOTE (Аваддон @ Jul 7 2004, 23:11)
Как сделать чтоб гадкая маленькая буковка "я" не делала ошибки в скриптах? На риалмс ссылку давать не надо - у меня трафик не дешевый чтоб все форумы просматривать.
З.Ы. Не нравится мне на еалмсах система поиска.. Вот нажал он нашел тебе тему а вней блин 22 страницы и каждая весит под мег...


QUOTE (Aiwan @ Jul 7 2004, 23:11)
Neverwinter Script Source
//================  Буква Я в стрингах (Автор Lex) ============================
 string ya = GetName(GetWaypointByTag("YA")); // "+ya+" - так ее использовать
//================  Буква Я в стрингах (Автор Lex) ============================

     {DelayCommand(5.0, SpeakString("Да. Ключика у теб"+ya+" нет."));}


Поклон Лексу.  good.gif 
Добавлено в 23:13
Функция Ранмы прикольная, но гемморная. Мне нравится так. Вейп создай с именем "я" и тегом "YA" и все.

Автор: Brodnik Jul 9 2004, 09:19

Lex друган вы чё за проект делаете ? Я хочу быть ТЕСТЕРОМ?

Автор: DBColl Jul 9 2004, 11:49

Сохранение - это и есть МОДУЛЬ целиком сохраненный на винт. Только в сохранении к модулю дописываются еще и установленные переменные, статусы открытых/закрытых дверей и прочая муть. Кстати, можно переименовать сохраненку в *.mod и открыть ее в тулсете.

Вывод ко всему этому, чтобы потестить перевод или вообще модуль, надо начинать всегда сначала. Сохраненка не нужна.

Автор: Brodnik Jul 9 2004, 14:33

Аваддон ты мне объясни где в модуле прописываются вэйпоинты и куда это вэйпоинт для буквы "я" прописывать.
DBColl ты ваще загнал. Если мне надо проверить несколько скриптов в предпоследней локации, мне что надо начинать модуль заново.!!!!!! Нафиг надо.
Лучше давайте все подумаем над этим.
Никто так и не оценил сюжет модуля который я перевожу:
Название: The book of Swaddowe.
Размер: модуль-16Mb hak-19Mb
Сюжет:
...Меня зовут Александр, но у меня есть прозвище Шаддоу
В моей семье я сын, который должен обитать в Аристократических кругах.
Но ночью, когда мои родители отдыхают, я вор.
Почему я занимаюсь этим?
Кузен моего отца давил наше семейство в течение многих лет, я делаю это от злости к нему.
Он шериф Бендон, он управляет нашим городом, он коррумпированный и злой человек.
Некоторые сказали бы, что я не лучше его, что я ворую не из-за потребности.
Конечно я храню в тайне мои приключения от моих родителей, они бы не выдержали если бы узнали чем я занимаюся.
Но каждую ночь, каждую ночь, я сменяю свои облик и становлюсь Шаддоу.
Я не злой человек, я не буду убивать, я не получаю никакого удовольствия от убийств.
Это мой рассказ и таков наш Город.

................КАК ВАМ......................

LEX я хочу быть тестером того чего вы там делаете. PLIZ

Автор: Auren Jul 9 2004, 14:48

Во-первых, по вежливей. Здесь никто ничего никому не должен и помогают друг-другу, как могут, во-вторых, я конечно не знаю, но наверное Аваддон имел ввиду поставить в локации вейпоинт с именем "Я" и в функции брать имя этого вейпоинта, тоесть "Я" и возвращать его.

Автор: DBColl Jul 9 2004, 15:01

Brodnik
Я тебе повторяю еще раз. Для проверок и тестов можешь не сохраняться. Бестолково. Ты понимаешь, что я сказал? SAVE-файл это и есть модуль ЦЕЛИКОМ в его нынешнем состоянии. Что тут непонятного? unknw.gif

QUOTE
Аваддон ты мне объясни где в модуле прописываются вэйпоинты и куда это вэйпоинт для буквы "я" прописывать.

Тебе надо поставить вейп в любою локацию на любое место. Выглядит вейп, как флажок (синий/зеленый/красный/желтый) на стойке. Открой модуль, справа видишь панель... Хотя постой. У тя игра и тулсет на русском?
В панели (палитра называется) есть разные виды объектов (монстры, шмот, звуки, двери... вейпы (последняя иконка)).
Ставишь в любой локации любой вейп, заходишь в его свойства и настраиваешь как тебя учили ранее (куда ставить "YA", а куда "я").
Добавлено в [mergetime]1089374707[/mergetime]
QUOTE
LEX я хочу быть тестером того чего вы там делаете. PLIZ

Не поленись, загляни и посмотри на сайте чего это мы тута делаем wink3.gif.

Автор: Tarre Talliorne Jul 9 2004, 15:05

QUOTE
DBColl ты ваще загнал. Если мне надо проверить несколько скриптов в предпоследней локации, мне что надо начинать модуль заново.!!!!!! Нафиг надо.

Если мод большой, делай дебаггинг-чит: шмот, скажем, вызывающий диалог с читерскими функциями. Хотя при небольшом опыте можно это сделать в самой игре через DebugMode 1.
Добавлено в [mergetime]1089374928[/mergetime]
QUOTE
Сюжет:
...Меня зовут Александр, но у меня есть прозвище Шаддоу
В моей семье я сын, который должен обитать в Аристократических кругах.
Но ночью, когда мои родители отдыхают, я вор.
Почему я занимаюсь этим?
Кузен моего отца давил наше семейство в течение многих лет, я делаю это от злости к нему.
Он шериф Бендон, он управляет нашим городом, он коррумпированный и злой человек.
Некоторые сказали бы, что я не лучше его, что я ворую не из-за потребности.
Конечно я храню в тайне мои приключения от моих родителей, они бы не выдержали если бы узнали чем я занимаюся.
Но каждую ночь, каждую ночь, я сменяю свои облик и становлюсь Шаддоу.
Я не злой человек, я не буду убивать, я не получаю никакого удовольствия от убийств.
Это мой рассказ и таков наш Город.


Кстати, достаточно оригинален. Для фэнтэзи. А так - средненький. Что еще можно сказать - это не сюжет, а пересказ пересказа краткой версии. Вот кинул бы настоящий сценарий, расписал бы по пунктам.

Автор: Brodnik Jul 9 2004, 16:28

Я ПОНЯЛ spiteful.gif ВЫ ДЕЛАЕТЕ "Проклятье Левора".Можно мне быть тестером У МЕНЯ БОООООЛЬШОЕ Желание им быть.
Что мне нужно что бы быть тестером?
Кстати что такое CNR? unknw.gif
Auren буду стараться быть вежлевее yes3.gif
DBColl я всё понимаю. Я знаю что если сохраняться то перевод останеться только тот который я переводил до сохранения. Поэтому я и спрашиваю как сделать так чтобы после сохранения перевод оставался.
А за объяснение вейпов СПАСИБО good.gif
Tarre что такое дебаггин-чит и как им пользоваться. unknw.gif
Насчёт сюжета то его я полностью не знаю так как переводить только начал. Этот отрывок гл.герой говорит после того как родичи хотят заставить его жениться на одной бабе.
Мне не ответили на один вопрос Помогите если кто знает где можно скачать хорошие словари близкие по тематике к NWN для X-translator Platinum.


СПАСИБО всем за всё!

Автор: Tarre Talliorne Jul 9 2004, 16:41

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

Автор: Аваддон Jul 9 2004, 16:43

CNR - Craftable Natural Resources. Вообщем система крафта(ремесла) из природных ресурсов. Типа собрать пшеницу>перемолоть в муку>добавить сахара и яблок+хлебопекарные дрожии>все это закинуть в печку и если уровень навыка подходит то у тебя получится яблочный пирог. Также и с остальным - броню ковать, оружие, алхимичить... и т.п.

Насчет словарей... Ну как тебе сказать. На том уровне на котором есть диалоги в модулях я вроде английский знаю. Если у меня возникают сложности я пользую Лингво. Довольно удобный переводчик. Дело в том что он на одно слово может дать множество его значений. Есть такое выражение - "сказать по-русски". Тоесть перефразировать переведенное предложение в более приемлемую для ушей форму.
З.Ы. А по тематики словари ты вряд ли найдешь. (я таких еще не видел)

Автор: Brodnik Jul 9 2004, 17:24

Tarre я понял что такое дебаггин-чит, но не понял как им пользоваться unknw.gif
И ещё Tarre может ты мне поможешь стать тестером вашего проекта PLIZZ yes3.gif
Аваддон ты крутой чувак если ты перевёл CNR. good.gif
я даже не могу какой-то модуль перевести. biggrin.gif
кстати я надеюсь , что всё то что у тебя написано в подписи не правда biggrin.gif , а у мнея правда.
и ещё дай ссылку на Лингво откуда его можно будет скачать PLIZZ или скинь на мыло.
Помогите ещё вот в чём:Объясните как ставить вэйпоинт для того что бы буква "я" в скриптах писалась. Мне DBColl объяснил выше, но у меня всё равно не получается. unknw.gif

Автор: Tarre Talliorne Jul 9 2004, 17:32

QUOTE
Tarre я понял что такое дебаггинг-чит, но не понял как им пользоваться 
И ещё Tarre может ты мне поможешь стать тестером вашего проекта PLIZZ 

Так тестером ЧЬЕГО проекта ты хочешь стать? Нашего (RAGE, см. мою подпись) или WRG! ? Если нашего - мы пока еще разрабатываем системы скриптов, потихоньку делаем демку. Когда она будет хотя бы "альфа", мы оповестим о наборе тестеров. Так что жди.

Автор: Auren Jul 9 2004, 17:57

Если хочешь стать тестером ВРГ, обращайся к Аивану, ДБколлу, Айс Блейду, Лексу, Баалу в разделе ВРГ! Тим. Или на пагер к ним же.
Вейпоинт как ставить?=))
1.Открываешь тулсет.
2.Справа палитра объектов. Там открываешь вкладку waypoints, кликаешь на waypoint и ставишь в какой-нить локации.
3. Шчолкаеш=)) правой кнопкой на нем и выбираешь properties там будут во вкладке basic три editа.
4. В имени пишешь Я(или я, что тебе нуна), в тэге пишешь...эээ тег из скрипта.
5. Птом создаешь библиотеку и вставляешь туда ф-цию с прошлой страницы или вставляешь в готовую библиотеку.
6. В каждом скрипте пишешь в самом начале #include "имя библиотеки"


Каааакой я умный и крутой знаток Аврорки=)))))
Инструкцию по юзанью смотри тож на прошлой стр-це
Добавлено в [mergetime]1089385261[/mergetime]
Для того чтобы пользоваться...ээээ...тем что Таррэ сказал, надо тулсет знать

Автор: Brodnik Jul 9 2004, 19:00

Auren конечно спасибо тебе за объяснение, я всё понял до 5 пункта а потом..... библиотека какая-то unknw.gif ты хочешь что бы создал то не знаю что, тем более я не знаю как их вообще создавать. объясни PLIZ yes3.gif
Tarre извини, я не знал. что вы работаете над разными проектами, но имей в виду меня при наборе тестеров. Запиши меня в список тестеров первым biggrin.gif
И ещё объясните мне как на этом форуме дают EXP и чё это за звёздочки под моей картинкой.
Добавлено в [mergetime]1089389237[/mergetime]
Auren где находиться раздел ВРГ unknw.gif
-----------------------------------------------
ДОРОГИЕ Aivan Lex DBColl Ice Blade Baal
Я хочу быть тестером проекта ВРГ!

я уже заматался это писать хоть чё нибудь ответьте мне!

Автор: Auren Jul 9 2004, 19:15

Exp- к-во твоих постов. Звездочки обозначают какого ты уровня. Стандартные скины ipb видел? Ну вот, ты щас newbie=)


Кароче сверху панель. Там вкладка Wizards->Script Editor
Туда вставляешь вот это:

string ya = GetName(GetWaypointByTag("YA"));

Сохраняешь, как inc_brodnik

В каждом скрипте, в самом начале, вставляешь: #include "inc_brodnik"

И пример использования DelayCommand(5.0, SpeakString("Да. Ключика у теб"+ya+" нет."));}

З.Ы.

А вообще я не понимаю, как можно переводить нвн-кий мод не зная основ Авроры, да и зачем переводить то, что ты переводишь, как я понял с англицкого на русский. Сюда по сюжету этот мод далеко не зе бест. Если ты крутой Инглишмен, так лучше бы помог ВРГшникам с переводом. Это будет гораздо полезней.
Добавлено в [mergetime]1089389872[/mergetime]
http://www.wrg.ru/forums/index.php?showtopic=90&st=25 если бы ты хотел, давно бы нашел.
Добавлено в [mergetime]1089389948[/mergetime]
ВРГ - это не проект, это команда, разрабатывающая мод "Проклятье Левора"
Добавлено в [mergetime]1089390004[/mergetime]
команда ВРГ=WRG! Team. Посмотри в верхний левый угол

Автор: Tarre Talliorne Jul 9 2004, 19:30

QUOTE
Tarre извини, я не знал. что вы работаете над разными проектами, но имей в виду меня при наборе тестеров. Запиши меня в список тестеров первым

Как скажешь.

Автор: Brodnik Jul 9 2004, 20:27

Auren СПАСИБО БОЛЬШОЕ за объяснение теперь я понял. good.gif
Спасибо что провел краткий курс по этой страничке мол помотри в правый верхний угол biggrin.gif
Да я плохо знаю Aurora, но ведь надо учиться и с чегото начинать.
Разве ты счичаешь. что если я переведу модуль, то толку никакого не будет?
Вообще то я хотел поместить его на свой сайт. Прикинь как рейтинги взлетят ведь переводов по сети очень мало.
И ещё почему я всего 2 уровня, а у меня уже есть 1 звёздочка, а ты 7 и у тебя всего их 2 ( у Аваддона например 4 ур. а уже 2 звезды) unknw.gif

Автор: Aiwan Jul 9 2004, 21:07

QUOTE
ДОРОГИЕ Aivan Lex DBColl Ice Blade Baal
Я хочу быть тестером проекта ВРГ!
я уже заматался это писать хоть чё нибудь ответьте мне!

Ну ну. Не надо паники. biggrin.gif Как ты с такими нервами будешь тестить модули с ошибками crazy.gif ? На паггер отправлю тебе ссылку, попозже. На днях. И потестишь...
Занятые мы люди, и твои посты только сегодняшенго дня. Кстати, существует PM. Я всеь форум прочитать не в силах.
QUOTE
И ещё почему я всего 2 уровня, а у меня уже есть 1 звёздочка, а ты 7 и у тебя всего их 2 ( у Аваддона например 4 ур. а уже 2 звезды)

Прочти правила форума вверху по ссылке. RTFM

Автор: ПРИЗРАК Jul 10 2004, 01:12

1 вопрос... Как сделать чтобы у НПС выкрикивались несколько разных фраз? Ну чтоб с определённо периодичностью 3 или 4 разновидных фраз появлялось у них над головой и чтоб при этом они делали "Салют" т.е. там руку навер поднимали...

Автор: Аваддон Jul 10 2004, 05:36

А скрипты будут на самом NPC висеть? Если да, то:

Neverwinter Script Source
void main()
{
PlayAnimation(ANIMATION_FIREFORGET_SALUTE);//анимирует салют рукой.
ActionSpeakString("Сделал -Салют- и говорю первую фразу");
DelayCommand(5.0,ActionSpeakString("Прошло 5 сек говорю вторую фразу"));
DelayCommand(5.0,ActionSpeakString("Прошло еще 5 сек говорю третью фразу"));
}


З.Ы. ПРИЗРАК, я думаю такие вопросы надо в "Скрипты" писать.

Автор: Tarre Talliorne Jul 10 2004, 14:49

Все это нужо кинуть вскрипт слота on_perception твоего НПС. а еше лучше внести элемент вероятности. Смотри:

CODE

void main()
{
object OS = OBJECT_SELF;
object oPC = GetLastPerceived();
if (!GetIsPC(oPC)) return;
string s1 = "твой текст 1";
string s2 = "текст 2";
string s3 = "текст 3";
string s4 = "текст4";
string sResult;
while (GetDistanceBetween(OS, oPC)<50.0)
{
switch (Random(4))
{
case 0: sResult = s1; break;
case 1: sResult = s2; break;
case 2: sResult = s3; break;
case 3: sResult = s4; break;
}

float fDelay = IntToFloat(Random(5);
DelayCommand(fDelay, SpeakString(sResult));
DelayCommand(fDelay, PlayAnimation(ANIMATION_FIREFORGET_SALUTE));
}
}

Код писался в отрыве от редактора, поэтму если будут ошибки, сообщайте.

Автор: ПРИЗРАК Jul 10 2004, 23:03

А как сделать чтобы предметы были бессмертными? Это тоже скрипт?

Автор: Аваддон Jul 10 2004, 23:10

Предметы всмысле размещаемые? Типа лавочек, фонарей... Чтоб их нельзя было раздолбать в Свойствах(Properties) предмета поставь галочку на Plot( в русском тулсете это "сюжет" что-ли)

Автор: ПРИЗРАК Jul 11 2004, 00:36

Сеньк... ))) А двери?

1) Чтобы НПС садился на стул скрипт правильный? (Сорри что сюда пишу, не хочу захломлять все темы одиночными вопросами)
____________________________________________________________________________________________
void main()
{
{
string sMyTagName = GetTag(OBJECT_SELF);
string sSittableTagName = "CHAIR_" + sMyTagName;
int nChair = 1;
object oChair;
oChair = GetNearestObjectByTag(sSittableTagName, OBJECT_SELF,
nChair);
ActionSit(oChair);
}
}
___________________________________________________________________________________________

2) Как сделать чтобы НПС, по классу Шифтер, использовал шифтерские способности, т.е. перевоплощаться?

3) Каким скриптом можно сделать так чтобы НПС лежал на земле, но када с нип заговоришь он встаёт?

4) Как сделать чтобы НПС после атаки на них возвращались на свои позиции?

Автор: Аваддон Jul 11 2004, 03:47

QUOTE (ПРИЗРАК @ Jul 11 2004, 00:36)
Сеньк... ))) А двери?

1) Чтобы НПС садился на стул скрипт правильный? (Сорри что сюда пишу, не хочу захломлять все темы одиночными вопросами)
__________________________________________________________________________________________
Neverwinter Script Source
void main()
{
          {
        string sMyTagName = GetTag(OBJECT_SELF);
        string sSittableTagName = "CHAIR_" + sMyTagName;
        int nChair = 1;
        object oChair;
        oChair = GetNearestObjectByTag(sSittableTagName, OBJECT_SELF,
nChair);
        ActionSit(oChair);
        }
}

__________________________________________________________________________________________2) Как сделать чтобы НПС, по классу Шифтер, использовал шифтерские способности, т.е. перевоплощаться?

3) Каким скриптом можно сделать так чтобы НПС лежал на земле, но када с нип заговоришь он встаёт?

4) Как сделать чтобы НПС после атаки на них возвращались на свои позиции?

Я думаю вопросы по скриптам надо писать в тему скрипты ph34r.gif .

1. Буффф...А че так много белеберды? Достаточно:
Neverwinter Script Source
void main()
{
ActionSit(GetNearestObjectByTag("stul",OBJECT_SELF));
}

где stul тэг стула или кресла.

2. Чтобы шифтер использовал шифтерские спосоообности... Зачем это геморой нужен? Перевоплощать НеПиСя можно и без шифтерских способностей, ведь все способности перевоплощения основаны на полиморфах. Достаточно НПС задать действие:
Neverwinter Script Source
ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectPolymorph (POLYMORPH_TYPE_CELESTIAL_AVENGER), OBJECT_SELF);

И он превратится в небесного мстителя. (POLYMORPH_TYPE_CELESTIAL_AVENGER).
Вариантов превращения - множества. Открой редактор скриптов, перейди в константы и набери в фильтре POLYMORPH_TYPE_ вот тебе все возможные превращения от пингвина до дракона.

3.
Neverwinter Script Source
PlayAnimation(ANIMATION_LOOPING_DEAD_FRONT,1.0,60.0)

Где ANIMATION_LOOPING_DEAD_FRONT - лежит лицом вниз, если ANIMATION_LOOPING_DEAD_BACK то лицом вверх.
1.0 - скорость исполнения анимации.
60.0 - время исполнения анимации(как долго он будет лежать.

4. Просто выдели НПС потом кликни правой кнопкой мыши на локации и создай точку пути (Create Waypoint). Это будет так называемый пост. Если они от него куда то отойдут например битвой унесет, то по окончании они туда вернуться.

Автор: ПРИЗРАК Jul 11 2004, 22:41

Авад, сеньк большое... good.gif

Токо насчёт лежания, как сделать чтобы он лежал всегда до разговора с ним? А после разговора уже стоял...

А и ещё, можно ли эти скрипты с тем чтобы сесть, лечь и морфнуться ставить на Спавн, в котором 1 человек?

Автор: Аваддон Jul 11 2004, 23:54

Чтобы постоянно лежал..Может есть и другие способы, но я бы сделал таким:
OnHeartBit НПС поставил бы проверку на локальную переменную. На Спавне бы ее задавал а на Конерсейшене - удалял.
OnHeartBit этот скрипт запускается каждые 6 секунд.
Потому добавляем в тот скрипт что стоит на OnSpawn НПС строчку:

Neverwinter Script Source
SetLocalInt(OBJECT_SELF,"dead",1);

Добавляем в OnHeartBit НПС строчки:
Neverwinter Script Source
if (GetLocalInt(OBJECT_SELF,"dead")==1)
{
PlayAnimation(ANIMATION_LOOPING_DEAD_FRONT,1.0,7.0);
}

И добавляем в скрипт On Conversation НПС строчку:
Neverwinter Script Source
DeleteLocalInt(OBJECT_SELF,"dead");


И так мы имеем анимацию которая идет 7 сек на 6ой из которых она вновь запускается. Запускается она только если состояние нпс dead=1.
А когда мы кликаем на разговор с НПС его состояние dead удаляется и максимум через 6 сек он встанет и начнет разговор.

2. Зачем все скрипты ставить на Он спавн? Он спавн вешается то, что должно назначаться НПС при его создании в локации (в буквальном смысле - при рождении).
Ведь ты же можешь в нужный момент запустить нужный скрипт командой типа ExecuteScript.

Автор: ПРИЗРАК Jul 12 2004, 09:49

1) Авад, что значит в нужный момент? Яже не могу во время игры скрипты делать... Мне нужно чтобы НПС появлялся и садился \ ложился, но если его убьют он больше не появится. Но мне так не нужно, мне необходимо чтобы НПС после смерти постоянно появлялся заново и выполнял данную команду (сесть \ лечь)

Или можно ли эти скрипты наложить на НПС в Кастоме, т.е. в палитре ещё, а потом, закинуть его в список "монстров" в Спавне? Будет ли этот скрипт действовать?

2) Насчёт Морфа... Если я допустим буду бабу превращать в Красного драка, то 1) будет ли она в него превращаться сразу? 2) будет ли она использовать спец. их способности такие как дыхание огнём \ громом и.т.д.?

Автор: Аваддон Jul 12 2004, 16:17

ПРИЗРАК, чтобы она дышала как дракон надо ей сначала дать эти абилити, а потом заставть ее UseTalent.
Если она постоянно воскресать и садится будет, почему бы просто не сделать ее бессмертной?:\


Добавлено в [mergetime]1089638294[/mergetime]
2GoDoom, Ну вообще если модуль лепить по человечески то желатьельно чтобы тэг совпадал с рес-рефом. Меньше путанницы.

Автор: ПРИЗРАК Jul 12 2004, 23:17

Авад, у меня она как постоянный квест... т.е. с ней говорят, она исчезает и потом о5 появляется, с ней о5 говоришь, она исчезает и.т.д.
А где этот Юз Талант ставить?
И откуда можно узнать у какого существа какой талант или можно любую магию ставить?

ААА и ещё идея!!! Можно ли сделать кровать usable и сделать так чтобы при юзание её перс ложился на неё (и на спину и на живот)? Ну что-то вроде стула... И если так можно то как скриптануть чтобы НПС так проделывал и лежал?

Автор: Aiwan Jul 12 2004, 23:26

На спину только трупом lol.gif Мордой вперед да. Но имхо, на кровать он не ляжет. Только на ковер или на хак.

Автор: Аваддон Jul 13 2004, 01:51

Да, кхм..на кровать навряд ли ляжет - высоковата слишком, и ростишка не поможет. Бэдролл - лучший вариант. А на кроватке можно и посидеть.
Юз талан это такое же действие как и все остальные. Когда она должна его использовать тогда и ставь как действие.
Таланты, спеллы и прочие гадости - все-все в свойствах этой НПС.
А насчет появляется-исчезает , то ее не обязательно убивать-воскрешать lol.gif

Автор: Tarre Talliorne Jul 13 2004, 09:50

QUOTE
Можно ли сделать кровать usable и сделать так чтобы при юзание её перс ложился на неё (и на спину и на живот)?

Ложился? Смотри тему Исходники наших скриптов. Там скрипт ДБ самый последний вродь выдержка из катсцены, где ПС лежит. Можно сделать.
use -> jump to waypoint -> play LOOPING_DEATH_BANK animation

Автор: DBColl Jul 13 2004, 11:18

Для того, чтобы перс мог "зайти" на тайловую кровать, надо хак соответствующий заиметь wink3.gif. Лежит на ваульте и где-то в нашем хаке...

А на плэйсибловую кровать лечь не удастся.

Автор: Tarre Talliorne Jul 13 2004, 11:23

Тогда так: берем тайловую кровать из хака, кидаем поверх инвизибл плэйсибл "кровать". И спим :-)
ЗЫ: можно поподробней про хак?

Автор: ПРИЗРАК Jul 13 2004, 15:18

Насчёт кровати... он чё строго на пол ложится? А высоту на которую нужно лечь никак настроить незя?

Автор: DBColl Jul 13 2004, 16:30

QUOTE
Насчёт кровати... он чё строго на пол ложится? А высоту на которую нужно лечь никак настроить незя?

А ты зайди на кровать сначала попробуй wink3.gif. Анимация строится относительно той точки, где стоит непись/игрок. Лечь на кровать плэйсэбловую нельзя. На тайловую можно, но нужен хак.

Автор: Tarre Talliorne Jul 14 2004, 17:03

А что за хак, если можно по-подробнее...

Автор: DBColl Jul 14 2004, 17:26

Tarre
Хак в котором вокмеш в этом тайле с кроватью чуток подправлен wink3.gif. Ты и сам я думаю сможешь сделать, даже если не найдешь.

Автор: ПРИЗРАК Jul 15 2004, 00:18

Вот, ещё один вопрос появился...

В СЕРе есть пушки, катапульты и баллисты которые стреляют... А можно ли такой прикол в обычном НВНе сделать? Ну если сама баллиста двигаться не будет, то хоть чтоб перед ней эффект от фаербола был (со всеми соответствующими звуками) после нажатия на неё... Так же, она должна "попасть" в несколько булыжников, которые перекрывают вход в пещеру... После выстрела, булыжники должны взорваться и исчезнуть... Но чтобы булыжники незя было сломать ничем кроме выстрела из баллисты... И ещё, можно ли сделать так чтобы булыжники через минут 10 восстанавливались на том же месте и можно бы было повторять выстрел о5...

Токо я не уверен что это возможно сделать... =(

Автор: Аваддон Jul 15 2004, 06:25

Можно! Легко...smile.gif

Автор: DBColl Jul 15 2004, 10:13

А я бы сказал: можно, но нелегко. И баллисту двигаться заставить довольно просто. Нужно ее сделать в качестве непися, а не плэйсэбла wink3.gif. Поредактировать 2да.

Автор: Вестель Jul 15 2004, 10:19

QUOTE (DBColl @ Jul 15 2004, 10:13)
Поредактировать 2да.

DBColl, не надо говорить таких страшных слов. Призрак не настолько крут в АВРОРЕ, чтобы "на хоп" редактировать 2да. А так сейчас будет вопрос, "Как?" на что его отошлют к Айсу, который скажет "Никак" и полуэльф будет мучатся.. Мне кажется, достаточно одного краткого ответа: "Сложно, но можно". Я вот сейчас вожусь со скриптом, заставить баллисту жжахнуть фаерболом, чтобы не давать голословных ответов.
//Все вышенаписанное можно стереть, если оно кому-то не понравится

Автор: DBColl Jul 15 2004, 10:41

QUOTE
DBColl, не надо говорить таких страшных слов. Призрак не настолько крут в АВРОРЕ, чтобы "на хоп" редактировать 2да. А так сейчас будет вопрос, "Как?" на что его отошлют к Айсу, который скажет "Никак" и полуэльф будет мучатся..

Во-первых, Айс не скажет "никак".
Во-вторых, чтоб не мучится, надо лишь открыть наш Леворов хак, взять оттуда appearance.2da и положить в свой хак.

Автор: Tarre Talliorne Jul 15 2004, 11:39

QUOTE
Я вот сейчас вожусь со скриптом, заставить баллисту жжахнуть фаерболом

На ваулте есть мод Аваддона баллистовый. Скчай - там это есть.

Автор: Вестель Jul 15 2004, 12:01

QUOTE (Tarre @ Jul 15 2004, 11:39)
На ваулте есть мод Аваддона баллистовый.

Вскачать всегда проще. Вот я хочу сам разобраться.
Neverwinter Script Source
//Висит на onHeartBeat катапульты
void main()
{
object oCat=OBJECT_SELF;
object oZaval=GetObjectByTag("NW_STONE");
object oStone=GetFirstItemInInventory(oCat);
if ((oStone!=OBJECT_INVALID)&&(GetTag(oStone)=="NW_BUMBUM")){ //проверяет положили ли в нее камень
    DestroyObject(oStone); //уничтожает его
    ActionCastSpellAtObject(SPELL_FIREBALL,oZaval, METAMAGIC_ANY,TRUE); //жахает фаерболл
    DestroyObject(oZaval); //уничтожает камень завала
    }
}

Самое забавное, камень завала не уничтожается, а остается стоять.
А вот после выстрела сквозь него персонаж нормально проходит. Где грабли?

Автор: DBColl Jul 15 2004, 12:05

Может несовпадение тэгов?

Автор: Вестель Jul 15 2004, 12:15

DBColl В том-то и дело, что как только это дело проходит, больше ничего не работает.. Повторные попытки жжахнуть не проходят, потому как объекта с тегом "NW_STONE" он не находит. Не дестроится визуальная часть объекта и все..
Теги проверил - КОПИ/ПЕЙСТ - все равно не помогает

Автор: Auren Jul 15 2004, 13:09

Посмотри.....вродьбы 3 главу стандартной кампании. Там были стреляющие баллисты.

Автор: DBColl Jul 15 2004, 14:31

Вестель
Попробуй сделать задержку у дестроя:
DestroyObject(..., 0.5);

Автор: Вестель Jul 15 2004, 15:20

QUOTE (DBColl @ Jul 15 2004, 14:31)
Попробуй сделать задержку у дестроя:

Безрезультатно. Даже если делать
Neverwinter Script Source
DelayCommand(0.5,DestroyObject(oStone));

все равно "визуальные" камни остаются

Автор: DBColl Jul 15 2004, 15:24

Хм... А попробуй закомментируй каст спелла. Просто уничтожить. Получится?

Автор: Вестель Jul 15 2004, 15:29

Нашел!
На плацеблах "камменюк", которые блокирывали проход стоял значок Static..
Стоило его убрать, они начали исчезать..

Теперь другой вопрос, почему у меня катапульта палит в левый верхний угол, а не куда я ей сказал? в смысле не в oZaval?

Уже куда надо палит!

Автор: Lex Jul 15 2004, 18:50

ActionCastSpellAtObject при растоянии больше, чем дальность действия закла косячит.
Делай фэйковый каст, а дамаж пиши сам (катапульты, которые обстреливают Тсурлагол делал так, так как дальность там было ой-ой-ой)

В 3-ей главе я когда-то (1.5 года назад) не нашел скрипты эти, на катапультах нет скриптов стрельбы. Поэтому делал сам, подсмотрев фишку про БалистикТраекторию у модуля катапульты на валуте. (все это было больше года назад. С тех пор скрипт стрельбы не менял)

Автор: ПРИЗРАК Jul 17 2004, 13:27

Ой, а терь можно мне как что делать объяснить ООООООООЧЕНЬ подробно и сказать если чё что откуда скачать, я был бы очень-очень рад... biggrin.gif

Автор: Вестель Jul 17 2004, 15:02

ПРИЗРАК
Качай http://me.newmail.ru/test.mod (44Кб), посмотри, что там сделано, если будут вопросы, пиши еще.

Автор: ПРИЗРАК Jul 17 2004, 17:31

ДБ, про катапульту... biggrin.gif
Вест, ща гляну...
<small>Добавлено в 14:45</small>
А что за оCat, oZaval u oStone?

Neverwinter Script Source
void main()
{
object oCat=OBJECT_SELF;
object oZaval=GetObjectByTag("NW_STONE");
object oStone=GetFirstItemInInventory(oCat);
if ((oStone!=OBJECT_INVALID)&&(GetTag(oStone)=="NW_BUMBUM")){
    DestroyObject(oStone);
    ActionCastFakeSpellAtObject(SPELL_FIREBALL,oZaval);
    DelayCommand(0.5,DestroyObject(oZaval,0.5));
    }
}


З.Ы. Оффтоп... Как цветом выделять слова? Как это должно выглядеть в написании?

LEX: теперь, когда есть кнопка НСС скрипты писать ТОЛЬКО в этом режиме

Автор: Аваддон Jul 17 2004, 23:40

object - оператор который присваивает к обозначению объект. Напимер, чтоб каждый раз мы не писали GetObjectByTag("TEST_NPC").
Мы просто присваиваем обзначению oNPC объект GetObjectByTag("TEST_NPC").
Присвоение таким образом

Neverwinter Script Source
object oNPC = GetObjectByTag("TEST_NPC");

И теперь в коде нам будет разобраться проще например вместо долгой строки:
Neverwinter Script Source
AssignCommand(GetObjectByTag("TEST_NPC"),SpeakString("Привет!"));

нам достаточно написать:

Neverwinter Script Source
AssignCommand(oNPC,SpeakString("Привет!"));

если мы заранее указали что такое у нас oNPC.
Вот и разбирайся что есть что.
OBJECT_SELF - это значит, грубо говоря самого себя.
Тоесть если скрипт стоит на катапульте и object oCat = OBJECT_SELF;
Значит за oCat катапульта будет брать саму себя.
object oZaval=GetObjectByTag("NW_STONE"); - это значит что oZaval это у нас обхект с тэгом NW_STONE.
object oStone=GetFirstItemInInventory(oCat); - значит что oStone - какой либо объект в инвентаре объекта oCat (катапульты).
if ((oStone!=OBJECT_INVALID)&&(GetTag(oStone)=="NW_BUMBUM")) - Если oStone (!= это значит НЕ ЯВЛЯЕТСЯ, или не равен) тоесть если oStone есть в инвентаре катапульты (&& - и) его тэг - NW_BUMBUM, то выполняются действия:
{
Уничтожить объект oStone в инвентаре катапульты c тэгом NW_BUMBUM;
Катапульта стреляет фаерболом в объект oZaval
И через 0.5 сек завал уничтожается.
}

Автор: ПРИЗРАК Jul 26 2004, 17:06

Здарова люди, вот наконец-то освободился от экзаменов...

Насчёт катапульты... biggrin.gif У меня всё получилось, но мона ли пару вещей изменить? Вставить взрыв фаербола на камне + чтоб звук появлялся, например от магии Руна что-ли, ну там луч лазерный с неба бьёт. И ещё, чтоб камни через минут 30 заново появлялись... Заранее сеньк...

Автор: Аваддон Jul 26 2004, 18:17

Эт прям не катапульта получается, а армагедон получается. Конечно можно. Ищешь этот звук и потма проигрывашеь его командой PlaySound. А чтоб восстанавливались - поставь DelayCommand(30.0, CreateObject ...

Автор: ПРИЗРАК Jul 26 2004, 22:43

Почему армагеддон? Ну должен же БАБАХ быть... pleasantry.gif
Можешь написать весь скрипт, я так не врубаюсь... crazy.gif
А звук куда вставить то?

Автор: Аваддон Jul 27 2004, 00:19

Весь скрипт..ишь деловой какой, надо бы и самому уже могеть потихонечку. Звук ищешь в разделе звуков(каламбурчик какой). Потом у тебя там есть в скрипте катапульты такая фишка DelayCommand(столько.секнду, ApplyEffectToObject...
И там стоит эффект фаербол. вот там же вставляешь строчку с таким же DelayCommand(столко.секунд,PlaySound("реф_звука");

Автор: FenrIX_666 Aug 16 2004, 06:39

Наверное жутко глупый вопрос (и не по теме):
Есть у меня древняя идея, сделать диспелящую стрелу (это решилось банальным свойством onHit: Dispel Magic), при этом чтобы выглядел полет как Eye-ray attack бехолдера.
Так вот, каким образом можно поменять прожектайл стрелы?

Автор: DBColl Aug 16 2004, 16:32

FenrIX_666
Я не уверен, что это можно. Более того, уверен на 99%, что нельзя.

Автор: NiMH Aug 16 2004, 16:51

можно просто сделать специфическую стрелу, с диспелом на ударе, не более.. может быть, можно как-то сделать через хаки, может это как-то можно собрать, но DB прав, скорее всего нельзя.

Автор: DBColl Aug 18 2004, 12:00

Хаками можно сделать 100%. Другой вопрос, кто станет это делать? Ибо по-моему не самая важная, ЭФФЕКТНАЯ и часто применяемая вещь.

Автор: Tarre Talliorne Aug 18 2004, 12:31

Млин, ДБ, ИМХО пора создать тему а-ля "Эффективные способы воздействие на играющего в ваши моды". Люди все больше зацикливаются на мелочах... Помнишь, у нас с тобой на эту же тему был разговор. :-) Может, его немного облагородить и перенести в ную тему?

Автор: DBColl Aug 18 2004, 13:39

QUOTE (Tarre @ Aug 18 2004, 12:31)
Млин, ДБ, ИМХО пора создать тему а-ля "Эффективные способы воздействие на играющего в ваши моды". Люди все больше зацикливаются на мелочах... Помнишь, у нас с тобой на эту же тему был разговор. :-) Может, его немного облагородить и перенести в ную тему?

Быть может и надо... Но, имхо, создатель должен сам дойти и понять это. Тема не расскажет обо всем. Это получится скорее некий псхологически-философский опус, чем членораздельное пропунктированное руководство для начинающего. А читать и обращать ОСОБОЕ внимание на советы "без пунктов", ЧТО и КАКИМ ОБРАЗОМ сделать, чтобы модуль был интересным, начинающие скорее всего не будут... sad.gif Имхо. Так что о создании темы - все-таки 50 на 50... Быть или не бывать... Не знаю...

Автор: FenrIX_666 Aug 19 2004, 11:32

Мдя.. не до мод-мейка далековато... Я просто скриптую да иногда контент правлю =)

А как с помощюью хаков? в смысле как файло моделей прожектайлов зоветься?

И еще вопросик. Можно ли скриптова запретить использовать оружия/броники/Вондероуз айтемы, чтобы они выглядели как не-классовые (скажем запретить магу использовать палки/свитки/пруты/посохи, без добвления переменной Only usable by: и Use limitation) ...

Автор: DBColl Aug 19 2004, 11:44

QUOTE (FenrIX_666 @ Aug 19 2004, 11:32)
А как с помощюью хаков? в смысле как файло моделей прожектайлов зоветься?

Не думаю, что все так как ты себе представляешь. Интуиция. Хотя подробности объяснить сможет кто-то из контентщиков... Айс, DarkLord, LexSuS...
Добавлено в [mergetime]1092905264[/mergetime]
QUOTE (FenrIX_666 @ Aug 19 2004, 11:32)
И еще вопросик. Можно ли скриптова запретить использовать оружия/броники/Вондероуз айтемы, чтобы они выглядели как не-классовые (скажем запретить магу использовать палки/свитки/пруты/посохи, без добвления переменной Only usable by: и Use limitation) ...

Надо перехватывать тэги или тип объекта в событии ModuleActivateItem и попытаться там что-то сделать... Хотя, если честно, не уверен, что прокатит.

ЗЫ. А чем тебя не устраивает ограничение в свойствах айтема?

Автор: Auren Aug 20 2004, 01:24

Вот такой вопрос: мне надо реализовать три времени суток. Тоесть грубо говоря два дня и одну ночь(на самом деле все сложнее), и менялось освещение и звуки, как это лучше сделать. И колличество часов в сутках прописано в движке? Если нет, то где?

Автор: DBColl Aug 20 2004, 09:53

QUOTE (Auren @ Aug 20 2004, 01:24)
Тоесть грубо говоря два дня и одну ночь(на самом деле все сложнее)

??? Не понял...
QUOTE (Auren @ Aug 20 2004, 01:24)
колличество часов в сутках прописано в движке? Если нет, то где?

Количество часов - 24. Прописаны движком. Единственное, что можно сделать, это изменить время рассвета, заката. Все.

Автор: Auren Aug 20 2004, 15:10

QUOTE (DBColl @ Aug 20 2004, 09:53)
??? Не понял...


Вообщем мне надо, чтобы сутки длились 36 часов и освещение за сутки менялось три раза. Про длительность суток я уже придумал, а вот про освещение....как?

Автор: JCDenton Aug 23 2004, 22:30

Как сделать диалог так чтобы:

при первом разговоре - давался квест, а при последующих спрашивали " выполнен ли он "

точнее какой скрипт должен быть для смены первой фразы NPC..

Автор: Аваддон Aug 23 2004, 22:35

Элементарно,JCDenton. Во время диалога с PC когда дается квест - назначь локалку 1. А при каждом начале диалога с NPC проверяй эту локалку. Если она = 0, то пусть дается квест, а если она =1 - пусть проверяется выполнен ли этот квест.

Автор: JCDenton Aug 23 2004, 23:03

Спасибо обьяснил unsure.gif

дай текст скрипта плиз, мне нужно чтобы при последующем обращении к нпк выдавался второй текст а не первый...
Добавлено в [mergetime]1093294356[/mergetime]
Разобрался , спасибо Аваддон. Скажи а чему я могу присваивать локалки?

GetLocalInt(object oObject,string "name",int value)

какие oObject можно юзать? я юзал Object_Self.. какие есть еще? unknw.gif

Автор: DBColl Aug 24 2004, 11:36

JCDenton
Практически любой объект в игре может иметь локалки, начиная с существ и заканчивая вейпоинтами.
Объект можно взять по тэгу:
object oObj = GetObjectByTag("тэг объекта");

Если нужен объект игрового персонажа, то
object oPC = GetFirstPC();

Автор: FenrIX_666 Aug 24 2004, 15:17

Ну.. коли в диалоге то можно oObject=GetPCSpeaker();

QUOTE

е думаю, что все так как ты себе представляешь. Интуиция. Хотя подробности объяснить сможет кто-то из контентщиков... Айс, DarkLord, LexSuS...

А где оных найти? wink3.gif

QUOTE

Надо перехватывать тэги или тип объекта в событии ModuleActivateItem и попытаться там что-то сделать... Хотя, если честно, не уверен, что прокатит.


Хм.. по-моему это событие включаеться только при использовании Unique Power *.

Ну вообщем что-то не катит как-то.

QUOTE

ЗЫ. А чем тебя не устраивает ограничение в свойствах айтема?


Да надо в диалоге в зависимости от прошлых действий сделать фразы типа *Ты предал дело Мистры, за это ты не сможешь юзать свитки/палки/посохи/мантии, редиска* или *ты предал дело Кореллона Ларетиана, за это ты не сможешь надевать эльфйские шмотки, нехороший ты человек* и т.д. А свойства айтема не годяться потому как один человек может сделать одно действие... другой-другое. И как быть, если один передаст другом ушмотку... плюс если найдет шмотку из запрещенного списка.

Автор: DBColl Aug 24 2004, 18:19

QUOTE (FenrIX_666 @ Aug 24 2004, 15:17)
А где оных найти?

Здеся. Задай только свой вопрос в этом форуме http://www.wrg.ru/forums/index.php?showforum=16
QUOTE (FenrIX_666 @ Aug 24 2004, 15:17)
Хм.. по-моему это событие включаеться только при использовании Unique Power *. Ну вообщем что-то не катит как-то.

Верно, но почему не катит?
QUOTE (FenrIX_666 @ Aug 24 2004, 15:17)
Да надо в диалоге в зависимости от прошлых действий сделать фразы типа *Ты предал дело Мистры, за это ты не сможешь юзать свитки/палки/посохи/мантии, редиска* или *ты предал дело Кореллона Ларетиана, за это ты не сможешь надевать эльфйские шмотки, нехороший ты человек* и т.д. А свойства айтема не годяться потому как один человек может сделать одно действие... другой-другое. И как быть, если один передаст другом ушмотку... плюс если найдет шмотку из запрещенного списка.

Так а в чем проблема-то? Если ты пишешь под ХотУ, то там на лету (из скриптов) можно менять свойства айтемов. Вот и делай wink3.gif.

Автор: JCDenton Aug 24 2004, 20:44

DBColl

А можно присваивать две разные локалки одному объекту?

SetLocalInt(OBJECT_SELF, "TL1", 1);
SetLocalInt(OBJECT_SELF, "TL2", 2);

???

P.S.

Это я у тя в аське, я хочу тестером быть yes3.gif

Добавлено в [mergetime]1093370032[/mergetime]
И еще, как сделать чтобы у PC в начале игры отобрали все предметы...
Где этот скрипт повесить?

Автор: Valleo Aug 24 2004, 20:55

2 JCDenton:
Ты можешь применить к любому объекту безграничное число локальных переменных (int, string, object, location и т.п.) при условии, если их имена НЕ будут совпадать.

Автор: FenrIX_666 Aug 24 2004, 23:55

2JCDenton
на событии onClientEnter.
Прописать удалениее всех предметов у объекта GetEnteringObject();
Перебор предметов идет через

Neverwinter Script Source
object oItem = GetFirstItemInInventory(...);
while (GetIsObjectValid(oItem))
{
    //удаление предмета
    ....
    oItem = GetNextItemInInventory(...);
}


QUOTE

Верно, но почему не катит?

Ну.. потому как мне еще и на остальные касты/свойства предмета запрет поставить нуно. Не только на Unique Power.

QUOTE

Так а в чем проблема-то? Если ты пишешь под ХотУ, то там на лету (из скриптов) можно менять свойства айтемов. Вот и делай wink3.gif.

Эт я знаю. Но я не помню среди свойств Not usable by <конкретный чар>. Нужно сделать не на шмотку запрет.. а на чара использование айтемов определенного типа. Например запретить полный запрет магу на использование свитков/палок/стаффов/вандов/спеллов на надеваемых шмотках и т.д.

Автор: balrog Aug 25 2004, 08:44

А что надо вписать вскрипте

CODE

#include "nw_i0_generic"
void main()
{
int fullHP=GetMaxHitPoints(OBJECT_SELF)*3;
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectHeal(fullHP),OBJECT_SELF);
ActionSpeakString("?? ???? ??? ?? ?????!!!");
SetIsTemporaryEnemy(GetPCSpeaker());
ActionAttack(GetPCSpeaker());
DetermineCombatRound();
}
Шоб НПС не толькл наподал, а еще и менялся его тип, из защищаюсего на агресивного. Ато у меня через диало НПС нападает, а когда ты его начанаешь бить, то все НПС на тебя налетают biggrin.gif

Автор: Tarre Talliorne Aug 25 2004, 10:11

Поставь твоему нписю нейтраьную к други фракцию.

Автор: DBColl Aug 25 2004, 10:19

balrog
Надо сменить неписю фракцию на STANDART_FACTION_HOSTILE, тогда за него не будут заступаться.

Автор: Ragnor Aug 25 2004, 10:44

QUOTE
Можно. loadscreens.2da.

Есть утила специальная на ваульте, которая делает в нужном формате этот скрин.


Ну дайте хоть название этой утилиты :this:

Автор: DBColl Aug 25 2004, 10:50

QUOTE (JCDenton @ Aug 24 2004, 20:44)
Это я у тя в аське, я хочу тестером быть

Я вижу. Качай модули, играй... Найдншь баги - пиши в форум wink3.gif.

Автор: Auren Aug 25 2004, 16:06

QUOTE (DBColl @ Aug 25 2004, 10:50)
Я вижу. Качай модули, играй... Найдншь баги - пиши в форум wink3.gif.

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

Автор: DBColl Aug 25 2004, 16:35

QUOTE (Auren @ Aug 25 2004, 16:06)
Немножко неправильная у вас политика искания багов, сорри за оффтоп. Нужно составлять тестпланы и давать их тестерам. Они должны их прогонять и отсылать вам баги, а вы их фиксить и отправлять обратно на верификейшн. Они опять должны прогнать этот тестплан для того, чтобы убедиться, что фикс бага не принес новых. Я просто сейчас тестером работаю и мне это немножко знакомо. Таким способом как делаете вы, всех багов не найдешь.

Я при выпуске версий всегда писал fixed-файл. Он всегда прицеплен к модулю. И, думаю, хороший тестер всегда посмотрит последние исправления, чтобы попытаться их "крякнуть" wink3.gif. А в остальном, я сам не могу сказать прям де должен точно сидеть жучила. И если постоянно выкладывать после каждого бага на новую версию "верификейшн"... так знаешь ли инет дорого обходится... Да и нафиг плодить тьму версий? Лучше исправлять массово. И если уж выкладывать, то максимум отловив, что есть. Чтобы даже тестерам играть было приятнее... wink3.gif

Автор: Auren Aug 25 2004, 16:46

Я просто говорю, как народ тестил серьезные апликейшены и я бы делал что-то подобное + свободный полет.

Автор: DBColl Aug 25 2004, 17:31

QUOTE (Auren @ Aug 25 2004, 16:46)
Я просто говорю, как народ тестил серьезные апликейшены и я бы делал что-то подобное + свободный полет.

У нас не серьезный аппликейшн wink3.gif... И версий много не надо wink3.gif.

Автор: balrog Aug 25 2004, 17:38

Посоветуйте, как реализовать доску объявленией в НВНе. Игрок пишет вое сообщение, а оно в диалоге с доской сохраняется

Автор: Auren Aug 25 2004, 17:58

QUOTE (balrog @ Aug 25 2004, 17:38)
Посоветуйте, как реализовать доску объявленией в НВНе. Игрок пишет вое сообщение, а оно в диалоге с доской сохраняется


Ой, можно, но очень очень криво. По крайней мере, мне пока только один вариант в голову пришел.

Ставишь около доски инвизибл кричер. Ему сет листенинг. Потом сохраняешь, то что сказал ПС в переменную, загоняешь ее в массив и выводишь массив в диалоге. Кривая идея, кривая отписка, просто Тулсета под рукой нету=(

Автор: Lex Aug 25 2004, 18:13

в теме скрипты для шарда есть ссылка на мой модуль с крикуном, который кричит новости, сказанные ему игроком. + рядом стоит доска, на которой эти новости можно прочитать.

Автор: balrog Aug 25 2004, 19:30

Точно?? Ой спасибо!

Автор: JCDenton Aug 25 2004, 19:39

DBColl я все скачал, только скажи где взять версию 1.32 и сколько она весит примерно smile.gif)

Еще вопрос, как в одну арию кидать разные типа тайсетов ?

Автор: DBColl Aug 25 2004, 19:51

JCDenton
Патчи есть на нашем сайте. И еще... http://nwdownloads.bioware.com/neverwinternights/patch/english/
Тута.

Автор: Lex Aug 25 2004, 20:00

http://wrg.ru/TEMP/Lex_LexxL/Speaker.rar,

Автор: JCDenton Sep 1 2004, 23:25

Как запхать свою музыку в модуль??? (включая как именно ее вставить в нем, и вызывать через скрипты) unsure.gif

Автор: Aiwan Sep 2 2004, 06:27

QUOTE (JCDenton @ Sep 2 2004, 02:25)
Как запхать свою музыку в модуль??? (включая как именно ее вставить в нем, и вызывать через скрипты)

rtfm.gif Читай мою статью! Там все написано.
Добавлено в [mergetime]1094095809[/mergetime]
http://wrg.ru/files/Document/aurora_tutorial.exe :this:

Автор: NiMH Sep 2 2004, 09:24

а именно - покопайся в свойствах buba.gif

Автор: JCDenton Sep 2 2004, 19:57

Aiwan, видел твою статью в журнале, Молодец! Так Держать yes.gif

Автор: DBColl Sep 2 2004, 21:48

QUOTE (JCDenton @ Sep 2 2004, 19:57)
Aiwan, видел твою статью в журнале, Молодец! Так Держать

Блин... выложи скрин плз!.. Хоть глазком глянуть wink.gif.. this.gif

Автор: JCDenton Sep 2 2004, 21:51

у мя ее уже нема dntknw.gif

Автор: Aiwan Sep 2 2004, 23:18

QUOTE (JCDenton @ Sep 2 2004, 22:57)
Aiwan, видел твою статью в журнале, Молодец! Так Держать

Спасибо wink.gif Первый отзыв не в письме...

Автор: JCDenton Sep 3 2004, 22:02

QUOTE (Aiwan @ Sep 2 2004, 23:18)
Спасибо wink.gif Первый отзыв не в письме...

Письмо лень писать было biggrin.gif

Автор: NightWind Sep 12 2004, 01:32

Можно ли в Aurora Toolse'ере изменить или создать свою систему боя и создать новые классы? Или если можно другой прогой то скажите плыз какой.
Ответ прошу прилать на vacmen@rambler.ru sclerosis.gif

Автор: Aiwan Sep 12 2004, 08:28

Можно, но ОООЧЕННЬЬЬ трудно moil.gif

Автор: DBColl Sep 12 2004, 10:54

QUOTE (NightWind @ Sep 12 2004, 01:32)
Можно ли в Aurora Toolse'ере изменить или создать свою систему боя и создать новые классы? Или если можно другой прогой то скажите плыз какой.

Систему боя? Скорее всего нельзя... А вот классы вполне можно. Но не программой, а ручками, поковыряв и дополнив некоторые 2da-файлы... Почитай статьи на нашем сайте.

Автор: Auren Sep 12 2004, 23:25

Можно ли это исправить без 3ДМАКСА?:

user posted image


Проблема в том, что когда делаешь Rise так, что 4 тайла образовывают квадрат или прямоугольник, то по серединке получается, что земля приподнята=(
Добавлено в [mergetime]1095020823[/mergetime]
Подозреваю, что нужно править set файл, но не уверен, точней просто не знаю=)

Автор: DBColl Sep 13 2004, 02:50

Не понял... Еще раз... Как ты делаешь?..

Автор: Lex Sep 13 2004, 18:51

симпотичный райз..хочу себе такой на развалины Иларафона

Автор: DBColl Sep 13 2004, 19:11

Я вообще не увидел ничего симпотного... Стена, как стена. Децл ретекстуренная... dntknw.gif

А вот откуда такая полоса появилась - this.gif dntknw.gif... Как все было?

Автор: Auren Sep 13 2004, 19:12

Короч райзаю так, чтобы было преподнято вот столько например тайлов:

OO
OO

Автор: Lex Sep 13 2004, 19:13

ДБ, если в тайле город/деревня сделать в квадрат 4 райза, будет что-то похожее.

Автор: Auren Sep 13 2004, 19:16

Тайлсет в целом симпотичный. Город дроу типа=)

Автор: Ice Blade Sep 13 2004, 19:45

Хм.. помню видел нечто подобное когда делал переходы между уровнями нестандартной высоты ( параметр Transition=1 в группе свойств [GENERAL], - *.set файла тайлсета, если он отличается от единицы то всё ясно. - К сожалению в таком случае здесь не поможет даже МАХ (ну в смысле если все заново не перерисовывать) sad.gif, однако этот глюк каким-то образом решают, чаще правда на уровне всё того же МАХ-а за счёт смены положени Pivot-а. Но наверное всё же существует способ и через опции - по крайне мере у меня был такой глюк что в тулсете собиралось всё отлично, а вот в игре "второй" уровень уходил в землю sad.gif.

Автор: DBColl Sep 13 2004, 19:50

Auren
Да ну, брось! У нигеров архитектура другая! mamba.gif

Автор: NightWind Sep 18 2004, 00:40

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

Автор: DBColl Sep 18 2004, 02:56

Систему боя тебе в Авроре не изменить. Разве что писать свой движок. Дело в том, что ДнД зашит внутрь Авроры. Он отнюдь не весь в открытых таблицах (2DA). Там лишь вспомогательные данные. А то, что допустим раунд 6 секунд, анимация боя (количество кадров ударов) заточены под раунды - это внутри и их не достать и не отредактировать. Иначе думаешь делали бы здесь проект Звездных Войн на AD&D? Так что, увы, сочувствую... dntknw.gif

Автор: fali Oct 15 2004, 21:46

Вопрос: как правильно управлятся с освещением в Toolset'е?
Лучше всего на конкретном примере. :)

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

Автор: Аваддон Oct 15 2004, 22:57

Я думаю что локацию надо сделать темненькой. А на люстру скриптом повесить перманентный визуальный эффект света. Если не поймешь - могу разложить по полочкам. shout.gif

Автор: fali Oct 16 2004, 01:54

Аваддон, лучше всего разложить по полочкам. :)
Буду очень благодарна. :)

Правда, я тут уже немного попробовала с темной локацией и освещением с помощью "осветительных приборов"... Без сторонних добавлений действительно темно выходит. :) Но вот эта люстра далеко не везде смотриться... Можно ли как-то повесть эффект без люстры? :) Или сделать её невидимой, например...

Автор: Аваддон Oct 16 2004, 05:08

Так, значит люстра тебе не нужна? Значится убираем нафиг люстру. А откуда свет должен идти? Хотя ладно, проблема реализма - это твое личное дело.
Значит так... Сейчас мы с тобой создадим две "лампочки".
Создаешь placeable объект с внешним видом - Invisible Object. Короче чтобы он был невидимый, раз тебе люстра и канделябра не нужна. smile.gif если нужна - выбирай их внешность.
Задаешь этому объекту тэг "LIGHT1" - это будет первая лампочка.
Потом создай такой же placeable но уже с тегом "LIGHT2" - это вторая лампочка.
Далее делаешь интерьер локации темной - задается в визуальных параметрах арены.
Размещаешь эти лампочки в той комнате где подсветка должна быть в каком хочешь месте.
Потом перед входом в комнату кладешь триггер. И в этом тригере на OnEnter вешаешь следущий скрипт:

Neverwinter Script Source
void main()
{
effect eLight = EffectVisualEffect(VFX_DUR_LIGHT_YELLOW_20); /* VFX_DUR_LIGHT_YELLOW_20 - это освещение. Yellow -цвет. 20 - дальность. Цвета: RED,WHITE, BLUE, PURPLE, ORANGE, GRAY. Дальности: 5,10,15,20. */
object oPC = GetEnteringObject();
object oLight1 = GetNearestObjectByTag("LIGHT1",oPC); //тэг первой лампочки
object oLight2 = GetNearestObjectByTag("LIGHT2",oPC); //тэг второй лампочки
if (GetLocalInt(OBJECT_SELF,"on")!=1) //проверка включены ли лампочки. Если да то больше скрипт не действует.
{
ApplyEffectToObject(DURATION_TYPE_PERMANENT,eLight,oLight1); //зажечь первую лампочку
ApplyEffectToObject(DURATION_TYPE_PERMANENT,eLight,oLight2); //зажечь вторую лампочку
SetLocalInt(OBJECT_SELF,"on",1); //отметить что лампы уже включены
}
}


Вот и все. Когда игрок начнет заходить в комнату лампы включаться и будут дооолго гореть.
Конечно ты можешь сделать лампочек более чем 2, но для этого в скрипт придется добавить объект и действие.
Например, если у третей лампочки будет тэг "LIGHT3" - ты должна добавить объект
Neverwinter Script Source
object oLight3 = GetNearestObjectByTag("LIGHT3",oPC);

и действие
Neverwinter Script Source
ApplyEffectToObject(DURATION_TYPE_PERMANENT,eLight,oLight3);


Автор: Aiwan Oct 16 2004, 11:14

QUOTE (fali @ Oct 16 2004, 00:46)
Есть локация с внутренним помещением. В локации две смежные комнаты. Нужно чтобы одна была ярко освещена (большая потолочная люстра), а вторая затемнена (слабое освещение свечи). Как это правильно сделать? Я пробовала в свойствах тайла изменять цвета, но по-моему это дает только оттенок, но не освещение...

При всем уважении к Аваддон-у предложу такой способ...
Я попробую решить твою задачу намного проще. Но не знаю, удовлетворит ли результат тебя. Делай так: выбери работу с тайлами в тулсете и выдели комнату, нажав Del и зажав левой кнопкой выбери группу тайлов заключающую в себя весь периметр. Дальше нажми правой кнопкой мыши и выбери свойства. Там будут опции овещения тайлов (палитра квадратиков). Она содержит общий свет, отражение, свет факелов и их отражение. Вот возьми и окрась темным светом в одной комнате и светлым в другой. Один цвет это общий оттенок, другой вроде как отражение. Поэкспериментируй.

Автор: fali Oct 16 2004, 14:51

2Аваддон:
Что-то у меня не работает этот скрипт... Похоже что-то неправильно делаю, а что именно, не пойму... Между прочим, раз можно включить свет, значит можно и выключить, да? :) А как сделать такой переключатель? :)

2Aiwan:
Хм... =) Никак не пойму, как я раньше пробовала это делать, что у меня ничего не получалось. :) Сейчас еще раз попробовала, действительно всё вышло как надо. :) А если еще и с осветителями получится совместить, будет просто отлично! :)

Автор: Baal Oct 16 2004, 20:16

QUOTE (fali @ Oct 16 2004, 11:51)
Что-то у меня не работает этот скрипт... Похоже что-то неправильно делаю, а что именно, не пойму...

Надо зайти в свойства лампочки и убрать галочку "Static" - тогда будет работать good.gif
QUOTE (fali @ Oct 16 2004, 11:51)
Между прочим, раз можно включить свет, значит можно и выключить, да? smile.gif А как сделать такой переключатель? smile.gif

Вот небольшой скрипт для "переключателя". Скрипт аналогичен скрипту Аваддона, только ставиться на OnUsed Плэйсибла - выключателя и может включать и выключать все объекты с тэгом LIGHT wink.gif
Neverwinter Script Source
void main()
{
effect eLight = EffectVisualEffect(VFX_DUR_LIGHT_YELLOW_20); /* VFX_DUR_LIGHT_YELLOW_20 - это освещение. Yellow -цвет. 20 - дальность. Цвета: RED,WHITE, BLUE, PURPLE, ORANGE, GRAY. Дальности: 5,10,15,20. */
// object oPC = GetLastUsedBy();
int N;
object oLight;
if (GetLocalInt(OBJECT_SELF,"on")!=1)
  {
  N=0;
  oLight = GetObjectByTag("LIGHT",N);
  while(GetIsObjectValid(oLight))
    {
    ApplyEffectToObject(DURATION_TYPE_PERMANENT,eLight,oLight);
    N++;
    oLight = GetObjectByTag("LIGHT",N);
    }
  RecomputeStaticLighting(GetArea(OBJECT_SELF));
  SetLocalInt(OBJECT_SELF,"on",1); //отметить что лампы уже включены
  }
else if (GetLocalInt(OBJECT_SELF,"on")==1)
  {
  N=0;
  oLight = GetObjectByTag("LIGHT",N);
  while(GetIsObjectValid(oLight))
    {
    eLight = GetFirstEffect(oLight);
    while(GetIsEffectValid(eLight))
      {
      RemoveEffect(oLight, eLight);
      eLight = GetNextEffect(oLight);
      }
    N++;
    oLight = GetObjectByTag("LIGHT",N);
    }
  RecomputeStaticLighting(GetArea(OBJECT_SELF));
  SetLocalInt(OBJECT_SELF,"on",0); //отметить что лампы уже выключены
  }
// Звук гонга! smile.gif Можно найти и более подходЯщий.
PlaySound("as_cv_gongring"+IntToString(Random(2)+1));
}

Автор: fali Oct 17 2004, 15:54

Первый скрип заработал просто отлично. :)
Но теперь не работает второй. =) Пытаюсь разобраться, что делаю не так на этот раз. %)

А вообще, совмещение разных способов освещения даёт просто отличный результат. :)

Автор: NiMH Oct 18 2004, 06:01

QUOTE (Аваддон @ Oct 16 2004, 05:08)
дооолго гореть

он будет гореть всегда drag.gif

Автор: Raven Oct 19 2004, 09:19

Вопрос такой... я знаю, что у некоторых спеллов не прикручены спасы - например у Bigby`s Hands, у Ракетного шторма Ишака ).. или например что Time Stop ставит на паузу весь шард... - но не уверен - все ли это спеллы? Может в NWN есть еще что-то непофиксеное ? Кто знает ?

Автор: Аваддон Oct 19 2004, 16:01

QUOTE (fali @ Oct 16 2004, 14:51)
2Аваддон:
Что-то у меня не работает этот скрипт... Похоже что-то неправильно делаю, а что именно, не пойму... Между прочим, раз можно включить свет, значит можно и выключить, да? smile.gif А как сделать такой переключатель? smile.gif

При всем уваженни к Baal'у... У меня стоит NWN: HotU. Так вот там если взять из стандартной палитры плей типа Канделябров или Факела на подставке и открыть их в свойства то там на закладке скриптов уже вписан nw скрипт на включение/выключение. Называется он nw_02_onoff. Так что достаточно взять канделябры, снять галочку "Static" и поставить галочку "Useable" и все будет просто замечательно: Кликнул - зажегся свет, еще раз кликнул - выключилсяsmile.gif

Автор: Baal Oct 19 2004, 18:42

QUOTE (Аваддон @ Oct 19 2004, 13:01)
При всем уваженни к Baal'у... У меня стоит NWN: HotU. Так вот там если взять из стандартной палитры плей типа Канделябров или Факела на подставке и открыть их в свойства то там на закладке скриптов уже вписан nw скрипт на включение/выключение.

ГЫ biggrin.gif Так чего же ты с самого начала не посоветовал этот способ девушке? drag.gif
А... наверное вот поэтому:
QUOTE (fali @ Oct 15 2004, 22:54)
Но вот эта люстра далеко не везде смотриться... Можно ли как-то повесть эффект без люстры? smile.gif Или сделать её невидимой, например...

и я использовал твой же принцип. buba.gif

Автор: Raven Oct 20 2004, 10:42

Кто знает как обойти ограничение в 20 скиллов ?

Автор: Ночной зверек Oct 20 2004, 12:17

эмм.. всмысле? unsure.gif

Автор: Raven Oct 21 2004, 22:42

Насколько я знаю - нвн ограничивает кол-во скиллов 20 штуками... но хде-то слышал, шо мона найти лекарство от этого недуга

Автор: Ночной зверек Oct 21 2004, 23:01

не знаю, чего он там ограничивает, но в нвн 22 скилла родных

Автор: DBColl Oct 22 2004, 11:54

Ты наверное имеешь в виду левелы, а не скиллы? this.gif

Автор: Goblin Oct 22 2004, 12:30

А если все же про скиллы - то посмотри хотя бы старенький ПРЦ - там 2 лишних скилла сделаны Jump и Iajitsu (надеюсь правильно написал wink.gif)

Автор: Тэш Oct 22 2004, 12:39

Несколько вопросов this.gif

-Когда локацию для шарда делаешь, теги и ресрефы менять абсолютно на все плейсеблы?
-Нужно ли все, что есть в локации добавлять в палитру?
-Можно ли добавить плейсеблы из хака в палитру скопом?

Автор: DBColl Oct 22 2004, 12:59

QUOTE (Тэш @ Oct 22 2004, 12:39)
-Когда локацию для шарда делаешь, теги и ресрефы менять абсолютно на все плейсеблы?

Нет. Все зависит от того, будешь ли ты использовать и стучаться из скрипта к тому или иному объекту. Если да, то объект желателен в палитре и соответственно с кастомным уникальным тэгом. wink.gif
QUOTE (Тэш @ Oct 22 2004, 12:39)
-Нужно ли все, что есть в локации добавлять в палитру?

Нет, не обязательно. Кастомная палитра сделана для 2-х целей:
1. Ты планируешь делать из скрипта CreateObject данного объекта.
2. Для удобства заполнения других лок (если вломы юзать Ctrl+C, Ctrl+V).
А тэг объекта можно поменять прямо в локе. И для скрипта без CreateObject он будет вполне доступен. wink.gif
QUOTE (Тэш @ Oct 22 2004, 12:39)
-Можно ли добавить плейсеблы из хака в палитру скопом?

Нет. Плэйсы появятся при дбавлении хака только в Appearance (model view). Для того, чтобы юзать плэйс в модуле, ему впервую очередь нужен уникальный ResRef и собсна описание модели в этом ресрефе. Потому и делается все ручками. yes.gif

Автор: Тэш Oct 22 2004, 13:14

Спасибки, ДБ, разжевал. pilot.gif
Добавлено в [mergetime]1098440170[/mergetime]
а да, вот еще вопросик: какой оптимальный размер локи для шарда? И максимально допустимый.

Автор: Aiwan Oct 22 2004, 14:01

QUOTE (Тэш @ Oct 22 2004, 16:14)
а да, вот еще вопросик: какой оптимальный размер локи для шарда? И максимально допустимый.

16x16 максимум. yes.gif

Автор: baskan Oct 22 2004, 14:52

Вопрос:Где в модульных свойствах прописано с какими вещами и количеством голда будет появляться игрок впервые вошедший на шард?

Автор: DBColl Oct 22 2004, 15:07

QUOTE (Тэш @ Oct 22 2004, 13:14)
Спасибки, ДБ, разжевал.

Всегда пожалуйста wink.gif.
QUOTE (baskan @ Oct 22 2004, 14:52)
Вопрос:Где в модульных свойствах прописано с какими вещами и количеством голда будет появляться игрок впервые вошедший на шард?

Это делается не в модульных свойствах, а в скрипте на событии OnClientEnter (в свойствах модуля):
Neverwinter Script Source
void main()
{
    object oPC = GetEnteringObject();
    if (GetLocalInt(oPC, "ENTERING_ONCE") == 0)
    {
        GiveGoldToCreature(oPC, 1000); // даст 1000 "зелени" wink.gif
        CreateItemOnObject("resref_item", oPC, количество); // вроде так... функция эта, но могу ошибаться в параметрах.
        SetLocalInt(oPC, "ENTERING_ONCE", 1);
    }
}

PS. Вполне допускаю, что это не самый правильный скрипт для шарда, потому как значение "первый-непервый раз" лучше хранить в БД, а не на чаре.

Автор: baskan Oct 22 2004, 15:57

Хм понятно..А вот если например я делаю тригер и сую туда вот твой скрипт золота, но так, чтобы один раз получил игрок золото и больше уже не получал.. bye.gif

Автор: DBColl Oct 22 2004, 17:47

Это вопрос?
Этот скрипт можно поставить также в OnEnter триггера без изменений wink.gif.

Автор: Raven Oct 22 2004, 18:21

Хм, можно при входе дать 1 xp чару и на основании этого давать денюшку, т.е. - если у чара 0 xp - то дается денешка и 1 xp, а если у чара 1 и больше - ниче не давать...

Автор: DBColl Oct 22 2004, 19:37

Raven
Согласен. good.gif

Автор: baskan Oct 22 2004, 21:38

QUOTE (DBColl @ Oct 22 2004, 17:47)
Это вопрос?
Этот скрипт можно поставить также в OnEnter триггера без изменений wink.gif.

Аха вопрос..Я такой тригер поставил, но как бы чар не прошел по тригеру он получает деньги за это,а нуна скрипт чтобы только один раз получил(толко мона скрипт?а не обьяснения, я ведь всеранво ниче в скриптах не понимаю)

Автор: DBColl Oct 22 2004, 21:46

Neverwinter Script Source
void main()
{
    object oPC = GetEnteringObject();
    if (GetXP(oPC) == 0)
    {
        GiveGoldToCreature(oPC, 1000); // даст 1000 "зелени"
        CreateItemOnObject("resref_item", oPC, количество); // вроде так... функция эта, но могу ошибаться в параметрах.
        SetXP(oPC, 1);
    }
}

Вроде так...

Автор: baskan Oct 23 2004, 13:06

QUOTE (DBColl @ Oct 22 2004, 21:46)
Neverwinter Script Source
void main()
{
    object oPC = GetEnteringObject();
    if (GetXP(oPC) == 0)
    {
        GiveGoldToCreature(oPC, 1000); // даст 1000 "зелени"
        CreateItemOnObject("resref_item", oPC, количество); // вроде так... функция эта, но могу ошибаться в параметрах.
        SetXP(oPC, 1);
    }
}

Вроде так...

Ага..спасибо получилось, yahoo.gif
Добавлено в [mergetime]1098528600[/mergetime]
Еще вопрос crazy.gif

Что нужно прописать (как я понял все в той же ячейке..или нет) что бы когда игрок заходил в модуль(без разницы какой раз) в сообщениях сервера было написано, ну там Добро пожаловать ту да то?

Автор: DBColl Oct 23 2004, 14:22

QUOTE (baskan @ Oct 23 2004, 13:06)
Что нужно прописать (как я понял все в той же ячейке..или нет) что бы когда игрок заходил в модуль(без разницы какой раз) в сообщениях сервера было написано, ну там Добро пожаловать ту да то?

Что ты имеешь в виду под "сообщением сервера"? Окошко внизу экрана, где пишутся диалоги, действия и прочая муть?

Автор: baskan Oct 23 2004, 15:00

Да

Автор: DBColl Oct 23 2004, 15:05

SendMessageToPC(oPC, "Welcome to Hell!");

Автор: Vhall Oct 23 2004, 19:47

У меня появилась задача чтобы после определенного пункта диалога отпиралась (Locked снимался) дверь. Подскажите пожалуйста

Автор: Raven Oct 23 2004, 21:54

QUOTE (DBColl @ Oct 23 2004, 15:05)
SendMessageToPC(oPC, "Welcome to Hell!");

Тут же встречный вопрос - можно ли поставить кастомные сообщения при атаке, попадании, промахе, кастовании закла и тд ?

Автор: Aiwan Oct 23 2004, 22:42

QUOTE (Vhall’rafein @ Oct 23 2004, 22:47)
У меня появилась задача чтобы после определенного пункта диалога отпиралась (Locked снимался) дверь. Подскажите пожалуйста

На строку диалога ставишь такой скрипт:
Neverwinter Script Source
void main()
{
object oDoor = GetObjectByTag("ТАГ_ТВОЕЙ_ДВЕРИ");
SetLocked(oDoor, TRUE); // FALSE - открыть TRUE - закрыть
}

QUOTE (Raven @ Oct 24 2004, 00:54)
Тут же встречный вопрос - можно ли поставить кастомные сообщения при атаке, попадании, промахе, кастовании закла и тд ?

OnDamaged - срабатывает при повреждениях НПС.
OnSpellCastAt - этот слот при кастовании на объект.
OnCombatRoundEnd - каждый раунд разборки aggressive.gif

Автор: Vhall Oct 23 2004, 23:13

Сенк.

1. Почему-то при запуске модуля на карте отображается белое пространство, вместо зданий. В чем дело?
2. Появится ли в ближайшее время статья про создание собственных классов и рас?

Автор: Aiwan Oct 23 2004, 23:31

QUOTE (Vhall’rafein @ Oct 24 2004, 02:13)
1. Почему-то при запуске модуля на карте отображается белое пространство, вместо зданий. В чем дело?

1. Ты наверняка юзаешь хак тайлов? Если да, то это халтура. Т.е. недоделка.
2. Не думаю. Сложно, муторно писать и зачем? Смысл какой сидеть месяцами кому-то писать это? Есть вопросы - задавай. Можешь тему создать.

Автор: Vhall Oct 23 2004, 23:33

QUOTE (Aiwan @ Oct 23 2004, 23:31)
Ты наверняка юзаешь хак тайлов?

Не использую ни одного хака
QUOTE (Aiwan @ Oct 23 2004, 23:31)
Сложно, муторно писать и зачем?

В одной статье обещались... жду...

Автор: Aiwan Oct 23 2004, 23:47

QUOTE (Vhall’rafein @ Oct 24 2004, 02:33)
В одной статье обещались... жду...

Ну ка напомни ка статью... biggrin.gif

Автор: Vhall Oct 23 2004, 23:50

http://www.wrg.ru/stat_lce_blade_1.htm

пункты:

"5.Расы.
6.Классы."
...
"Продолжение следует........(если оно потребуется)."

Автор: DBColl Oct 25 2004, 19:47

QUOTE (Raven @ Oct 23 2004, 21:54)
Тут же встречный вопрос - можно ли поставить кастомные сообщения при атаке, попадании, промахе, кастовании закла и тд ?

Думаю, что стандартные сообщения (движковые) не убрать... А свои в таком же стиле вывести можно: FloatingTextOnCreature(...);

Автор: Raven Oct 25 2004, 20:00

А куда их засунуть?

Автор: DBColl Oct 25 2004, 21:13

Ну в слоты крича: OnDamaged, OnPhysicalAttacked, OnSpellCast...

\\Задний проход не искать. wink.gif lazy.gif

Автор: Vhall Oct 26 2004, 19:24

Существует ли в Авроре предел на созданные локации? Или все определяется их общим объемом?

Автор: DBColl Oct 26 2004, 23:50

Смотря что ты делаешь. Сингл или шард?

Автор: fali Oct 27 2004, 17:51

Доброго времени суток! :)
У меня ещё вопрос появился. =) Правда, не уверена, что именно в эту тему, а не в скрипты... Но раз не уверена, лучше сюда -- здесь, по-моему, более общая тема. :)

Вопрос:
На некоторых шардах открытые двери через некоторое время сами закрываются. Как это делается? Есть ли в игре готовый скрипт или команда, которая именно это и делает?
Продолжение этого же вопроса:
Как сделать, чтобы открытая ключем дверь через некоторое время закрывалась и снова запиралась на ключ?

Автор: Aiwan Oct 27 2004, 18:24

fali приветик biggrin.gif Ставишь на слот OnOpen и закрываешь дверь на ключик.

Neverwinter Script Source
//:://////////////////////////////////////////////
//:: Created By: WRG! Aiwan aiwan@e-mail.ru
//:: Created On: 06.11.2003
//:://////////////////////////////////////////////
//::    ЗАКРЫВАЕТ ДВЕРЬ ЧЕРЕЗ 15 секунд
//:://////////////////////////////////////////////
void main()
{
ActionWait(15.0f); // через сколько секунд
ActionCloseDoor(OBJECT_SELF); // захлопнет дверь
DelayCommand(20.0,SetLocked(OBJECT_SELF, TRUE)); // закроет дверь на ключ через 20 сек
}


Кстати, ты чем занята? biggrin.gif Могу тебе порекомендовать подключиться к РПГ клубу. Им бы не помешал работающий человек а тебе видеть свои труды в действии. Поверь дядюшке Айвану wink.gif

Автор: balrog Oct 27 2004, 18:26

Шоб закрывались (через 10 секунд)

Neverwinter Script Source
//onOpen
void main()
{
DelayCommand(10.0, AssignCommand(OBJECT_SELF,ActionCloseDoor(OBJECT_SELF)));

}


А тут шоб захлопывались (тоже через 10 секунд)
Neverwinter Script Source
//onOpen
void main()
{
DelayCommand(10.0, AssignCommand(OBJECT_SELF, ActionCloseDoor(OBJECT_SELF)));
DelayCommand(10.0, AssignCommand(OBJECT_SELF, ActionLockObject(OBJECT_SELF)));
}


УЖЕ ДАЛИ ПОКА РЫЛСЯ +)))

Автор: DBColl Oct 27 2004, 19:13

balrog
AssignCommand(OBJECT_SELF, ActionCloseDoor(OBJECT_SELF)) - бесполезная команда. Типа "масло масленное". Самому себе приказывать что-то сделать... Достаточно:
ActionCloseDoor(OBJECT_SELF);

Автор: balrog Oct 27 2004, 20:29

QUOTE
AssignCommand(OBJECT_SELF, ActionCloseDoor(OBJECT_SELF)) - бесполезная команда. Типа "масло масленное". Самому себе приказывать что-то сделать... Достаточно:
ActionCloseDoor(OBJECT_SELF);

Ну конешо работает, но если говолишь шо ето лишнее =)

Автор: Aiwan Oct 27 2004, 21:09

DBColl кстати, насчет такой команды

Neverwinter Script Source
AssignCommand(OBJECT_SELF, ActionCloseDoor(OBJECT_SELF))

Раз пошел такой разговор. Я замахался с дверьми в модуле. И они закрываются в скриптах только почму-то при такой команде если пытаться на очередь другого абъекта ставить ActionCloseDoor то НИЧЕГО не происходит. Можешь списать на мою профнепригодность, скрипты не моя стихия. Но факт. Только так можно в очередь поставить. Может глюк? Я кучу сцен делал и с Вильтоном и другие, если юзать открыть дверь то тика так выходит. Ставишь в стек предмету кучу акций и открытие двери ставишь только AssignCommand для самой двери открыть себя. Если скажешь что я не прав. biggrin.gif Проверь в модуле.
Добавлено в [mergetime]1098900714[/mergetime]
QUOTE (balrog @ Oct 27 2004, 23:29)
Ну конешо работает, но если говолишь шо ето лишнее =)

AssignCommand нужна для раздачи комманд не OBJECT_SELF-ам. ... Вот я загнул. lol.gif

Автор: balrog Oct 27 2004, 22:08

QUOTE
AssignCommand нужна для раздачи комманд не OBJECT_SELF-ам. ... Вот я загнул. 

Тык я так понял, шо к мэня правэльно? Или я неправильно понял =) ... вот и я загнул =) lol.gif

Автор: Aiwan Oct 27 2004, 23:05

QUOTE (balrog @ Oct 28 2004, 01:08)
Тык я так понял, шо к мэня правэльно? Или я неправильно понял =) ... вот и я загнул =)

Если скрипт стоит на ОБЪЕКТЕ которому педназначена команда (а попросту OBJECT_SELF)то нет. Если на чем то другом но не на нем то да. А так как ты юзаешь OBJECT_SELF что означает как сам себя smile.gif То не правильно. rofl.gif Вот теперь сиди и думай... lol.gif lol.gif pilot.gif

Автор: fali Oct 28 2004, 01:46

Пасиб всем большой за помощь. :)
Утащила самый первый скрипт, остальное просто взяла на заметку. :)

2Aiwan:
>Кстати, ты чем занята? :D
Всем по немножку. =)
>Могу тебе порекомендовать подключиться к РПГ клубу. Им бы не помешал работающий человек а тебе видеть свои труды в действии.
Для начала хотелось бы узнать, что это за клуб такой. :)
А вообще, я всегда рада помочь хорошим людям... :) Особенно, если это не очень трудно. =)
>Поверь дядюшке Айвану
Верю. :) *старательно вспоминает, кто же еще говорил о том же самом и практически такими же словами... =)*

2Всем:
А вообще, мне понравилось тут вопросы задавать, поэтому я еще спрошу. :)

Вопрос:
Опять же, видела на каком-то шарде комнаты в здании, в которых можно отдыхать (в самом здании, вне комнат, нельзя). Насколько трудно это сделать? Если не очень трудно, объясните, пожалуйста, как это делается. :) Если же достаточно трудно, то ладно -- можно и просто оставить разрешение отдыха во всём здании. =)

Автор: Baal Oct 28 2004, 02:57

QUOTE (fali @ Oct 27 2004, 22:46)
Опять же, видела на каком-то шарде комнаты в здании, в которых можно отдыхать (в самом здании, вне комнат, нельзя). Насколько трудно это сделать? Если не очень трудно, объясните, пожалуйста, как это делается. smile.gif Если же достаточно трудно, то ладно -- можно и просто оставить разрешение отдыха во всём здании. =)

Я конечно не знаю, как это было реализованно на шарде, но могу предложить такую схему:

1. рисуем тригер и растягиваем его во всю комнату, где можно будет отдыхать.
на OnEnter тригера вешаем скрипт:
Neverwinter Script Source
void main()
{
object oPC = GetEnteringObject();
if (!GetIsPC(oPC)) return;
SetLocalInt(oPC, "REST_ALLOWED", 1);
}

на OnExit:
Neverwinter Script Source
void main()
{
object oPC = GetExitingObject();
if (!GetIsPC(oPC)) return;
SetLocalInt(oPC, "REST_ALLOWED", 0);
}

идем в скрипт на OnPlayerRest и в самом начале скрипта добавляем проверку:
Neverwinter Script Source
object oPC = GetLastPCRested();
if(GetLocalInt(oPC, "REST_ALLOWED") !=1) AssignCommand(oPC, ClearAllActions());

теперь игрок сможет отдыхать только если он находиться внутри специального тригера wink.gif

Автор: Twin Oct 28 2004, 03:27

О, Баал гораздо проще написал, чем додумался я... Но я всё же напишу свой вариант. smile.gif И по-моему это тебя не для топика "Вопросы от самых маленьких", а для "Скриптов". smile.gif
Сделал через векторы. В данном случае ставятся 4 вейпоинта, которые представляют собой углы прямоугольника в котором _можно_ отдыхать... За приделами этого прямоугольника, персонажу отдохнуть не удастся.

Neverwinter Script Source
int VectorInRect(vector vPC, vector vRectNW, vector vRectNE, vector vRectSE, vector vRectSW);

void main()
{
    if ( GetLastRestEventType() != REST_EVENTTYPE_REST_STARTED ) return;

    vector vPC = GetPosition(OBJECT_SELF);

    object oPointNW = GetObjectByTag("WP_REST_001NW");
    object oPointNE = GetObjectByTag("WP_REST_001NE");
    object oPointSE = GetObjectByTag("WP_REST_001SE");
    object oPointSW = GetObjectByTag("WP_REST_001SW");

    vector vRestNW = GetPositionFromLocation(GetLocation(oPointNW));
    vector vRestNE = GetPositionFromLocation(GetLocation(oPointNE));
    vector vRestSE = GetPositionFromLocation(GetLocation(oPointSE));
    vector vRestSW = GetPositionFromLocation(GetLocation(oPointSW));

    if ( VectorInRect(vPC, vRestNW, vRestNE, vRestSE, vRestSW) == 1 ) {
        SendMessageToPC(OBJECT_SELF, "Вы присели отдохнуть.");
    }
    else {
        SendMessageToPC(OBJECT_SELF, "Вам следует поискать получше место длЯ отдыха!");
        ClearAllActions();
    }
}

int VectorInRect(vector vPC, vector vRectNW, vector vRectNE, vector vRectSE, vector vRectSW)
{
    //SendMessageToPC(OBJECT_SELF, "vPC ("+ FloatToString(vPC.x, 6, 2) +":"+ FloatToString(vPC.y, 6, 2) +":"+ FloatToString(vPC.z, 6, 2) +")");

    //SendMessageToPC(OBJECT_SELF, "vRectNW ("+ FloatToString(vRectNW.x, 6, 2) +":"+ FloatToString(vRectNW.y, 6, 2) +":"+ FloatToString(vRectNW.z, 6, 2) +")");
    //SendMessageToPC(OBJECT_SELF, "vRectNE ("+ FloatToString(vRectNE.x, 6, 2) +":"+ FloatToString(vRectNE.y, 6, 2) +":"+ FloatToString(vRectNE.z, 6, 2) +")");
    //SendMessageToPC(OBJECT_SELF, "vRectSE ("+ FloatToString(vRectSE.x, 6, 2) +":"+ FloatToString(vRectSE.y, 6, 2) +":"+ FloatToString(vRectSE.z, 6, 2) +")");
    //SendMessageToPC(OBJECT_SELF, "vRectSW ("+ FloatToString(vRectSW.x, 6, 2) +":"+ FloatToString(vRectSW.y, 6, 2) +":"+ FloatToString(vRectSW.z, 6, 2) +")");

    if ( vPC.x < vRectNW.x || vPC.y > vRectNW.y ) return 0;
    if ( vPC.x > vRectNE.x || vPC.y > vRectNE.y ) return 0;
    if ( vPC.x > vRectSE.x || vPC.y < vRectSE.y ) return 0;
    if ( vPC.x < vRectSW.x || vPC.y < vRectSW.y ) return 0;

    return 1;
}


WP_REST_001NW - Самый северо-западный вейпоинт на карте.
WP_REST_001NE - Самый северо-восточный вейпоинт на карте.
WP_REST_001SE - Самый юго-западный вейпоинт на карте.
WP_REST_001SW - Самый юго-восточный вейпоинт на карте.

Запускается скрипт из OnPlayerRest через ExecuteScript("название", oPC);

P.S. Вариант Баала намного проще в реализации.
P.P.S. Векторами я никогда до этого не пользовался и ничего о них не знаю.

Пользуясь случаем, хочу передать fali (она же Птаха) большой привет! wink.gif rolleyes.gif yahoo.gif

Автор: fali Oct 28 2004, 04:12

Пасиб. =)
И за помощь и за привет. =)

Между прочим, на том шарде это было как-то завязано на дверь, по-моему. :) Если закрыта -- отдыхать можно, если открыта -- нельзя. Вот только не знаю, будет ли это проще, чем в варианте Baal'а или сложнее. :)

2Baal:
Я чучуть позже проверю. :) Поэтому, может быть, потом еще что-нибудь спрошу... =)
А пока... Меня вот это насторожило: теперь игрок сможет отдыхать только если он находиться внутри специального тригера. Имеется в виду, что игроки вообще нигде в модуле больше не смогут отдыхать? :) Или только в локации этого здания? :) И если просто изменить последний скрип, он ведь везде измениться, да? Может тогда лучше сделать его изменённую копию и назвать по другому... Тем более, что я не очень поняла, что именно это изменение делает. :)

2Twin:
>И по-моему это тебя не для топика "Вопросы от самых маленьких", а для "Скриптов".
Может быть. =) Только там такие серъёзные скрипты обсуждают... Мои вопросы как-то уж очень маленькими после них кажутся. :) К тому же, я не была уверена, что для моих вопросов нужны именно скрипты. :) А вдруг там какой-нибудь галочкой можно было обойтись? Или готовым, игровым, скриптом. :)

Автор: Baal Oct 28 2004, 09:24

QUOTE (fali @ Oct 28 2004, 01:12)
Между прочим, на том шарде это было как-то завязано на дверь, по-моему. smile.gif Если закрыта -- отдыхать можно, если открыта -- нельзя. 

Может и на дверь было завязано, если конечно скриптеры хотели сильно усложнить себе задачу. crazy.gif
Конечно можно определить с какой стороны двери игрок находиться, но нужно еще определять с какой стороны находиться комната. biggrin.gif

QUOTE (fali @ Oct 28 2004, 01:12)
Имеется в виду, что игроки вообще нигде в модуле больше не смогут отдыхать? smile.gif Или только в локации этого здания? smile.gif

Да игрок вобще теперь не сможет нигде отдыхать, если он не зашел на тригер мотдыха.
QUOTE (fali @ Oct 28 2004, 01:12)
И если просто изменить последний скрип, он ведь везде измениться, да? Может тогда лучше сделать его изменённую копию и назвать по другому...

Даже если его ставить с тем же именем, ничего страшного не произойдет, но лучше его всетаки обозвать подругому wink.gif

Вобщем если тебе надо, чтобы отдых работал в других местах как обычно, то можешь в локации, где оттдых разрешен поставить вэйпоинт с тэгом WP_REST например
и вместо
Neverwinter Script Source
object oPC = GetLastPCRested();
if(GetLocalInt(oPC, "REST_ALLOWED") !=1) AssignCommand(oPC, ClearAllActions());

поставить новую проверку:
Neverwinter Script Source
object oPC = GetLastPCRested();
object oWPRest = GetNearestObjectByTag("WP_REST", oPC);
if(GetLocalInt(oPC, "REST_ALLOWED") !=1 || !GetIsObjectValid(oWPRest)) AssignCommand(oPC, ClearAllActions());


Теперь, если на карте поставить WP_REST, то оттых будет разрешен
Если вэйпоинта нет, то отдых будет разрешен только внутри тригера.

Или тебе подругому надо было? crazy.gif

Автор: Ketcalkoatl Oct 28 2004, 09:33

off top - sorry

Fali, are you girl or boy? Of corse on real life.


Автор: Aiwan Oct 28 2004, 09:34

QUOTE (fali @ Oct 28 2004, 04:46)
Для начала хотелось бы узнать, что это за клуб такой. smile.gif
А вообще, я всегда рада помочь хорошим людям... smile.gif Особенно, если это не очень трудно. =)

http://www.wrg.ru/forums/index.php?showforum=33

Если коротко, то в нем игроки и ДМы делают не шард-мир для того что бы в нем играть и жить много времени. А небольшой модуль для узкого количества людей под конкретный квест. Это дает 100% отыгрыш и очень часто позволяет менять модули и делать их несложными и небольшими. Для такого подмастерье как ты это просто клад yes.gif

QUOTE (fali @ Oct 28 2004, 04:46)
Если не очень трудно, объясните, пожалуйста, как это делается. smile.gif Если же достаточно трудно, то ладно -- можно и просто оставить разрешение отдыха во всём здании. =)

Два предыдущих ответа были исчерпывающие и очень подробны. biggrin.gif И боюсь поставили тебя в тупик. Самое главное, ты наверное знаешь что в своествах локации где ТЕГ есть галочка: No Rest. Активируешь ее и отдыхать будет низя black eye.gif
QUOTE (Baal @ Oct 28 2004, 05:57)
теперь игрок сможет отдыхать только если он находиться внутри специального тригера

...если отдых в локации разрешен wink.gif

QUOTE (fali @ Oct 28 2004, 07:12)
Между прочим, на том шарде это было как-то завязано на дверь, по-моему. smile.gif Если закрыта -- отдыхать можно, если открыта -- нельзя. Вот только не знаю, будет ли это проще, чем в варианте Baal'а или сложнее. smile.gif

Вариант Баал интересней и лучше. ИМХО. buba.gif Дверь всеравно надо ловить и проверять с какой стороны игрок, может он снаружи сстоит, а это однозначно триггер. Можно и векторами, но это мегагеммор wacko.gif

И кстати. Если ты кликнешь на мой ник над аватором, то он скопируется вниз. Если выделишь текст и нажмешь Q-Quote то он скопируется прямо вниз для цитаты. А весь пост цитировать кнопка рядом слева от нее. Надеюсь так удобнее будет тебе отвечать yes.gif

Кстати, ты скачала мой туториал по Авроре? Для таких как ты писал wink.gif


Автор: fali Oct 28 2004, 09:44

2Baal:
>Или тебе подругому надо было?
По другому. %)

Проще всего объяснить на примере. :)
Есть шард. Есть здание, которое может присоединится к шарду. В здании есть комнаты отдыха. =) Логичнее всего было бы, если бы в здании можно было отдыхать только в положенных для этого местах. :) Впрочем, так как я почти ничего не поняла в описанных выше скриптах, могу заключить, что на данный момент это для меня достаточно трудно. :) А потому лучше просто разрешить отдых на всей локации здания. :)

Автор: Aiwan Oct 28 2004, 09:49

QUOTE (fali @ Oct 28 2004, 12:44)
что на данный момент это для меня достаточно трудно. smile.gif А потому лучше просто разрешить отдых на всей локации здания. smile.gif

Это ОЧЕНЬ просто. yes.gif
Добавлено в [mergetime]1098946222[/mergetime]
Спрашивай что не ясно.

Автор: fali Oct 28 2004, 10:24

Кхм.. Отвечала без предпросмотра и упустила добавленные позже сообщения. =)

2Ketcalkoatl:
>Fali, are you girl or boy? Of corse on real life.
I'm girl. =)
Вот только по английски не говорю. smile.gif А потому второе предложение не поняла... smile.gif
Авто-переводчик же выдал -- "Из трупа на действительности." smile.gif Что это может значить в оригинале, я так и не догадалась. =)

Айван: переводится как "Конечно в реальной жизни" или около того lol.gif

2Aiwan:
>КЛУБ РОЛЕВОЙ ИГРЫ
Я уже успела найти клуб в форуме, так что примерно представляю уже, что к чему. smile.gif
Мне понравилось, хотя я ещё не пробовала на шардах учавствовать в квестах. smile.gif Хотя, пожалуй, очень хотела бы попробовать. =) Правда, значащееся там время мне совсем не подходит, а потому, пока что вряд ли получится. smile.gif Но помочь буду рада, если действительно что-то не сложное.

>Для такого подмастерье как ты это просто клад
*засмущалась, но очень довольна =)*

>И боюсь поставили тебя в тупик.
smile.gif) Это точно. =) Впрочем, я хотела лишь узнать, сложно это или нет. smile.gif Если нет, хорошо -- значит можно сделать... Если сложно, то в общем-то не очень и нужно. =) Хотя узнать как такое делается всё равно будет очень полезно. smile.gif Может потом понятнее будет. smile.gif

> ... Надеюсь так удобнее будет тебе отвечать.
Я знаю об этих возможностях. smile.gif
Просто пишу сейчас так, как показалось мне удобнее и привычнее. smile.gif

>Кстати, ты скачала мой туториал по Авроре? Для таких как ты писал
smile.gif) Скачала. =) Причем, это было первое, что я сделала попав на этот форум. =)
Правда, винюсь, не весь прочитала. smile.gif Читать, не пробуя паралельно, показалось не очень удобным. А пробовать скрипты или фракции, к примеру, у меня просто не возникло тогда желания. smile.gif Сейчас вот думаю, что надо бы перечитать, заодно с другим туториалом. smile.gif

>Спрашивай что не ясно.
Мне ничего не ясно! =)
Впрочем, шучу. smile.gif Что нужно сделать, примерно понятно... Не понятно, какая часть скрипта за что отвечает. smile.gif К тому же, пока что это не то, что мне нужно, а потому ставить не буду. =) И, опять же винюсь, ставить скрипт просто, чтобы попробовать, мне сейчас лень. smile.gif Хотя к себе опять-таки утащила. =)

Автор: DBColl Oct 28 2004, 12:12

QUOTE (Aiwan @ Oct 27 2004, 21:09)
Раз пошел такой разговор. Я замахался с дверьми в модуле. И они закрываются в скриптах только почму-то при такой команде если пытаться на очередь другого абъекта ставить ActionCloseDoor то НИЧЕГО не происходит.

Конечно не произойдет!!! Потому что очередь будет прервана при атаке двери. Потому если делать через:
DelayCommand(14.9, ClearAllActions());
DelayCommand(15.0, ActionCloseDoor(OBJECT_SELF));
то все будет в ажуре wink.gif. DelayCommand не является акцией, потому и не будет сбоить и прерываться. wink.gif

Насчет, систем отдыха, то система Баала проще и круче wink.gif. buba.gif

Автор: Goblin Oct 28 2004, 12:34

Возможен ли рест сидя в кресле, а не на полу ? Т.е. на onUse кресла поставить скрипт реста ? -- надеюсь я не сморозил глупости, только только в скрипах разбираюсь - для локи на одном шарде нада =)))

Автор: Raven Oct 28 2004, 12:44

Видел скрипт реста в палатке, но он и в палатке сидел так как на земле, думаю, для этого нада анимацию переделывать

Автор: balrog Oct 28 2004, 13:58

QUOTE
Видел скрипт реста в палатке, но он и в палатке сидел так как на земле, думаю, для этого нада анимацию переделывать

Уху, действие Рэст уже анимировано. Я помнится тоже хотел, шоб на кроватях лёжа отдыхал =) ...

Автор: Raven Oct 28 2004, 14:33

А моя розовая мечта - чтобы в таверне, сидя на стуле, можно было выпить вина, а не вставать для этого smile.gif

Автор: Twin Oct 28 2004, 14:41

Позволю себе предложить ещё один вариант ограничения отдыха вне определенной области (специальных комнат гостиницы, например). Делается всё практически так же как предложил Баал - через тригеры. Вариант доработан и готов к использованию.

Вам нужно нарисовать на земле тригер типа Generic охватив им всю область, где вы хотите разрешить отдых и дать эму тэг TRG_SPECIALREST. Для каждой комнаты, если их будет несколько, рисуйте свой тригер с тем же названием.
Далее в свойствах арии, где находится этот триггер нужно добавить int SPECIAL_REST со значением 1, иначе скрипт не будет работать в этой арии.
Теперь нужно создать новый скрипт и вписать туда следующее:

Neverwinter Script Source
//:://////////////////////////////////////////////
//:: Created By: Twin
//:: Communication:
//::  E-mail: twin_quad@hotmail.com
//::  IRC: Twin@irc.rinet.ru:6669
//::
//:: Created On: 2004.10.28
//:://////////////////////////////////////////////

void main()
{
    if ( GetLastRestEventType() != REST_EVENTTYPE_REST_STARTED ) return;

    int nSpecialRest = 0;
    int nCanRest = !GetLocalInt(GetArea(OBJECT_SELF), "SPECIAL_REST");

    object oTriggers = GetFirstObjectInArea(GetArea(OBJECT_SELF));

    while ( GetIsObjectValid(oTriggers) ) {
        if (
            GetObjectType(oTriggers) == OBJECT_TYPE_TRIGGER &&
            GetTag(oTriggers) == "TRG_SPECIALREST"
        ) {
            nSpecialRest = 1;

            if ( GetIsInSubArea(OBJECT_SELF, oTriggers) ) {
                nCanRest = 1;
                break;
            }
        }

        oTriggers = GetNextObjectInArea(GetArea(OBJECT_SELF));
    }

    if ( nSpecialRest && !nCanRest ) {
        SendMessageToPC(OBJECT_SELF, "Найдите место получше длЯ отдыха!");
        ClearAllActions();
    }
    else {
        SendMessageToPC(OBJECT_SELF, "Вы присели отдохнуть.");
    }
}

Сохранить это, например, под названием "tw_specialrest" и в свойствах модуля в скрипте OnPlayerRest (стандартном варианте этого скрипта) добавить ExecuteScript("tw_specialrest", oPC);

Вот и всё. Главное отличие от варианта Баала - отсутствие каких-либо переменных на персонажах. И реализация очень эстетичная, имхо. biggrin.gif

Здесь можно скачать архив с демонстрационным модулем: http://ma-gavet.ntpfr.int-nt.ru/user/twin/nwn/SoSR.zip. Написан под 1.64 XP12.

P.S. Ох и долго я искал GetIsInSubArea и в лексиконе и в Авроре... wink.gif
P.P.S. Птаха, если нужно с дверьми, то это в аськи скажи, сделаю и на мыло тебе кину. yes.gif И второе предложение переводилось как "Конечно в реальной жизни."

Автор: Aiwan Oct 28 2004, 14:45

QUOTE (Raven @ Oct 28 2004, 17:33)
А моя розовая мечта - чтобы в таверне, сидя на стуле, можно было выпить вина, а не вставать для этого 

Хорошо не голубая lol.gif А помоему так можно? Актион сделать на сидение подолше и что-то в этом духе. НПС так могут точно.
Добавлено в [mergetime]1098964072[/mergetime]
Fali, ты глянь как мужчинки засуетились biggrin.gif

Автор: Raven Oct 28 2004, 14:53

QUOTE
Хорошо не голубая


lol.gif нееее.... smile.gif

Ну сидение вроде активное действие и питье бутылки тож - вряд ли... а NPC просто Emotes такие.. а мне надо шоб не просто анимация, а реальное выпивание бутля, а енто вряд ли...

Автор: Aiwan Oct 28 2004, 15:52

QUOTE (Raven @ Oct 28 2004, 17:53)
а реальное выпивание бутля,

А чем это отличается от анимации? Добавь условий и сам еффект.

Автор: Vhall Oct 28 2004, 16:11

QUOTE (DBColl @ Oct 26 2004, 23:50)
Смотря что ты делаешь. Сингл или шард?

Делаю сингл. А почему не существует однозначного ответа? smile.gif Что тогда для шарда?

Автор: fali Oct 28 2004, 16:42

2Aiwan:
>Fali, ты глянь как мужчинки засуетились :D
Просто у меня много очень хороших знакомых. :) Знала бы с какими вопросами к кому обращатся, спрашивала бы сразу у конкретных людей. :) Но, во-первых, мне неудобно их отвлекать... =) А во-вторых, здесь, как мне кажется, ответять быстрее и быстрее же поправят, если что не так. :)

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

2Twin:
А демонстрационный модуль не работает. :) Там нигде не получается отдохнуть -- ни в обозначенной зоне, ни вне её. :) И я так и не сообразила, куда нужно добавлять int SPECIAL_REST в свойствах локации. =)
Кстати, а как зону сделать невидимой? Сейчас она выделяется светло-синим при наведении, а как это выделение убрать, я так и не нашла... Если только другой вид тригера взять...
С дверьми ничего делать не нужно. :) Они и так уже сами закрываются. =)
А про второе предложение... Мне вот интересно, чего это человек так заинтересовался. =) Да еще и по аглицки зачем-то спрашивает. :))

ЗЫ:
Да... Вопрос про отдых явно просится в тему о скриптах. =)
Но откуда ж я могла знать, что он такой обширный, и что мне так захотят помочь... %)

ЗЫЫ:
А скрипт Baal'а работает. =) Только что проверила. :)
Правда, без последнего добавления, которое разрешает обычный отдых на других локациях...
http://fali.st.vstu.edu.ru/files/nwn/TrRest.zip (10 Кб)

Автор: Nika Oct 28 2004, 19:28

Возможно ли сделать так, чтобы при вселении дм-а в НПС, сидящий НПС не вставал?

Надеюсь, я ясно выразила свою мысль? dirol.gif

Автор: Aiwan Oct 28 2004, 22:26

QUOTE (Vhall’rafein @ Oct 28 2004, 19:11)
Делаю сингл. А почему не существует однозначного ответа?

Сингл очень завязан на НПС населяющие локи. В шард можно много пихать они в основном пустые. А вот сингл... Мы наделали две сотни с половиной локаций в один мод слили и НВН нам стал сообщать разную бяку, типа внутренних операций не возможность выполнения по причине нехватки времени и бла бла бла.. sad.gif Так получилось три модуля первой части biggrin.gif Повторять наш подвиг не рекомендую. black eye.gif

QUOTE (fali @ Oct 28 2004, 19:42)
А вообще, мне уже даже неудобно как-то... smile.gif Так стараются помочь, а я похоже опять плохо выразила свою мысль, и потому результат выходит не совсем тот, что хотелось бы.

Я тебе скажу так. Мы с ДБом начинали как ты, и нам помогали так же. Это у нас в крови, помогать lol.gif Еще момент. Твои вопросы это 2х2. Без обид. Отвечать на них, что букварь пересказывать biggrin.gif Так что не напрягайся, спрашивай все что наболело superman.gif.

QUOTE (fali @ Oct 28 2004, 19:42)
В частности, опять идёт влияние на скрипты всего модуля, если я всё правильно поняла... А я не уверена, что мне такое позволят. =) Модуль-то не мой (точнее, шард), и здание просто подсоеденят к уже существующей системе, если на то будет получено разрешение. smile.gif

С шардом шутки плохи aggressive.gif

QUOTE (Nika @ Oct 28 2004, 22:28)
Возможно ли сделать так, чтобы при вселении дм-а в НПС, сидящий НПС не вставал?
Надеюсь, я ясно выразила свою мысль? 

Абсолютно. Давай порассуждаем. При вселении в НПС Дма происходит нечто похожее на простой запуск скрипта. И естественно что бы не было большого бадабума где-то внутрях дается команда очистить все действия. А так как он выполняет акцию сидеть на чем-то то... Ведь НПС бог весть что может делать biggrin.gif То бишь, я сужу теоретически и говорю НЕТ. Но есть практики, которые юзают шарды. Позови их сюда или загляни к ним wink.gif

Автор: Twin Oct 29 2004, 00:29

fali
Да всё там работает... Просто чтобы персонаж мог вставть в тригер, который выделяется под курсором нужно использовать для этого либо правую кнопку мышки, либо клавиатуру... Иначе вставть внутрь "видимого" тригера у тебя не получится никогда... А визуальное выделение я оставилял для наглядности и при работе данного скрипта тип тригера (ловушка, переход и тп.) никакого значения не имеет. Сейчас уже перезалил на фтп с невидимым тригером.

Автор: elf-demon Oct 29 2004, 09:54

У меня в тулсете Фаил, Редактор, о программе и т.д. что вообщем сверху написано нормально по русски,
а в окошках справа и слева от центрального изображения вместо букв вертиркальные палочки! Это что такое и как с этим бороться?

Автор: Aiwan Oct 29 2004, 12:08

2 elf-demon у тебя есть dialog.tlk английский? Если нет, поставь и посмотри что будет (замнени в корне игры). Потом дальше будем думать. Взять его можно http://wrg.ru/files/NWN/dialog.tlk.sou.1.30org.rar

Автор: Goblin Oct 29 2004, 12:16

Где то на этом сайте упоминалась некая команда, которая аналогична ресту т.е. после её исполнения перс стоит с восстановленными заклами, хитами и прочьей лабудой -- не напомните мне эту команду? И работает ли она на плееров или только на НПС и монтров ?

Просто теоретически если такая команда работает на плееров, то тогда можно было бы повесит скрипт с таймером на креслице и тогда после того как плеер посидел на кресле определенное время то выполнялась бы эта команда и выглядело бы это так как будто плеер отдохнул --- и никакой анимации менять не придется. buba.gif

А как кстати сделать триггер невидимым ?

Автор: fali Oct 29 2004, 15:45

2Aiwan:
>Так что не напрягайся, спрашивай все что наболело
Хорошо, тогда буду дальше спрашивать. =)

Вопрос: Как у непися сделать диалог, зависящий от расы, класса и пола? Например, девушку приветствует одним образом, девушку-воина другим, эльфа-мага -- третьим, и так далее...


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

Автор: Aiwan Oct 29 2004, 16:05

QUOTE (Goblin @ Oct 29 2004, 15:16)
А как кстати сделать триггер невидимым ?

Он всегда невидим если он не Trap AreaTransmition (пишу по памяти), так что глянь свойства триггера. Он не должен быть ловушкой или переходом.
QUOTE (fali @ Oct 29 2004, 18:45)
Вопрос: Как у непися сделать диалог, зависящий от расы, класса и пола? Например, девушку приветствует одним образом, девушку-воина другим, эльфа-мага -- третьим, и так далее...

Тут вопрос. Сколько расс и сколько чего и кому? smile.gif И самое главное, на сколько глубоко проработанн он должен быть? А делается просто: на корневую строку делаешь условие (см статью biggrin.gif ).
Neverwinter Script Source
int StartingConditional()
{

    // Restrict based on the player's class
    int iPassed = 0;
    if(GetLevelByClass(CLASS_TYPE_FIGHTER, GetPCSpeaker()) >= 1)
        iPassed = 1; // если не воин не начнетсЯ

    if(iPassed == 0)
        return FALSE;
    if(GetGender(GetPCSpeaker()) != GENDER_FEMALE) // если не дама, не начнетсЯ диалог
        return FALSE;
}


Все это сделал за 1 минуту Визардом тулсета. Он тупенький но такие задачи могет решать. Юзай.

Автор: balrog Oct 29 2004, 16:57

2 fali

http://www.igromania.ru/articles/?nw_63 this.gif линк на статью, она мне очень помогла разобратся с диологами когда я тока начанал ......

Автор: DBColl Oct 29 2004, 17:06

QUOTE (Goblin @ Oct 29 2004, 12:16)
Где то на этом сайте упоминалась некая команда, которая аналогична ресту т.е. после её исполнения перс стоит с восстановленными заклами, хитами и прочьей лабудой -- не напомните мне эту команду? И работает ли она на плееров или только на НПС и монтров ?

Эта команда есть только в ХотУ. Как-то зовется типа ForceRest... поищи ее в тулсете ХотУ по этому фильтру.

ЗЫ. Работает и на плеере и на неписях.

Автор: Aiwan Oct 29 2004, 19:33

QUOTE (balrog @ Oct 29 2004, 19:57)
линк на статью, она мне очень помогла разобратся с диологами когда я тока начанал ......

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

Автор: balrog Oct 29 2004, 19:47

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

Ну незнаю незнаю, покрайней мере скриптинг диалогов то я по ней изучал swoon.gif. Надеюсь в этом месте ничего страшного небыло biggrin.gif

Автор: Leon PRO Oct 29 2004, 20:10

QUOTE
Вопрос: Как у непися сделать диалог, зависящий от расы, класса и пола? Например, девушку приветствует одним образом, девушку-воина другим, эльфа-мага -- третьим, и так далее...

Мне кажется, это было-бы легко, если-бы можно было добавить своих кастомных токенов. Вопрос: это возможно ?
QUOTE
off top - sorry

Fali, are you girl or boy? Of corse on real life.
lol.gif lol.gif lol.gif
А труп, потому, что corse переводчик расценил как corPse = труп, а нужно было course =) учите Инглиш, кушайте пряники, спите крепко =)
Добавлено в [mergetime]1099070908[/mergetime]
QUOTE
Тут же встречный вопрос - можно ли поставить кастомные сообщения при атаке, попадании, промахе, кастовании закла и тд ?

Можно, но для этого надо модифицировать soundset - файл кричи. (Файл имеет SSF структуру).

Автор: Nika Oct 29 2004, 22:24

Я без всяких токенов делала - выбираешь опцию text appears when, там выбираешь расу и/или пол и пишешь соответствующий диалог. А скрипт потом сохраняешь под нужным именем.
Единственное неудобство - приходится писать много разных вариантов для обоих полов каждой расы.

Автор: elf-demon Oct 30 2004, 01:00

Aiwan
Ну спасибооо! Удружил! Теперь у меня вместо русских букв ангийские!! фигня блин! У меня раньше ваще вот как было всё:
Сначала у меня всё нормально было и я создавал модули на русском, правда тупо было что редактор разговоров и скриптов там всяких, сюжета было по английски!!( нет ли русификатора?)
А потом я переустановил винду( была WindowsXP Professional и сейчас такую же установил) и всё! устанавливаю НВН с того же диска а в тулсете палки вместо букв!! И ещё заметил:
В старой операционке(в которой шёл тулсет) пароль в подключении в интернет отображался точками(•••), а сейчас, когда не идёт тулсет, пароль отображается такимиже палочками!

Автор: fali Oct 30 2004, 02:23

2Aiwan:

QUOTE
Сколько расс и сколько чего и кому?  И самое главное, на сколько глубоко проработанн он должен быть?

Ну, судя по всему это был скорее теоретический вопрос. :) Так как, попробовав, я решила что лучше много вариантов приветствия не делать, а остановиться на паре-тройке, если не на одном. :) Уж больно много иначе маленьких скриптов получается... А в моём случае они и вовсе были не нужны, просто захотелось попробовать разнообразить диалоги. Ну и на будущее узнать, как это делается. :) Всяко пригодится. ;)
Между прочим, обнаружила в редакторе диалогов кнопку Мастера скриптов. =) А так как там всё по русски, оказалось что сделать такое очень просто. :) Правда, у меня почему-то на русские коментарии (вставляются автоматом при создании) при компиляции иногда ругаются...

Между прочим, вопрос. :)
В чем суть различия твоего и вот этого скрипта, созданого Мастером скриптов из диалога? :) Помимо того что здесь проверка только на принадлежность к женскому полу. =) Я не очень разберусь...
Neverwinter Script Source
int StartingConditional()
{
    if(GetGender(GetPCSpeaker()) != GENDER_FEMALE)
        return FALSE;
    return TRUE;
}

2balrog:
Статью эту уже видела раньше (и еще две из той же серии). :) Хотя читала не очень внимательно, так как в то же время читала два туториала намного аккуратнее оформленных. =) А у меня некоторая слабость есть к хорошему оформлению. :)

2Leon PRO:
Эм... Леон, а что такое "токен"? =)
А инглиш учить не буду, я ленивая. :-Ь =)
Хотя вообще-то, после того как перевели, я уже успела понять в чем было дело. :)

Автор: Ночной зверек Oct 30 2004, 03:41

токен - предмет. в частности предмет-идентификатор
а ингишь выучить всяко полезно будет yes.gif

Автор: balrog Oct 30 2004, 08:11

QUOTE
Между прочим, вопрос. smile.gif
В чем суть различия твоего и вот этого скрипта, созданого Мастером скриптов из диалога? smile.gif Помимо того что здесь проверка только на принадлежность к женскому полу. =) Я не очень разберусь...

помоему, ставишь этот скрипт на "Текс аппиэр" ... и это строка диалого, на кторой этот скрипт будем появлятся лишь в том случае, если игрок - Женщина.

В мастере скриптов диалогов помечай галочками сразу несколько окошек, так ты сможешь вместить больше условий и действий в одын скрипт

Автор: Aiwan Oct 30 2004, 08:28

2 elf-demon не нервничай biggrin.gif Русский язык твоего тулсета и НВН такой же Dialog.tlk, только русский, вернее переведенный. А нужно мне было узнать, работает у тебя тулсет на английском, если да то все нормально. Что бы тебе было понятно, русский это просто НАЛОЖЕНИЕ на ангийский язык. СТОП! Глянь в папку override игры, есть там что ни будь? Например такие файлы как: fnt_dialog16x16.txi, fnt_dialog16x16.tga и т.д.? Это шрифты русские.

Скажи, сейчас все на английском? Но работает и меню и палитры? Да? Если да, то бери Dialog.tlk переведенный с диска своего (посмотри на диске два обычно) и заменяй. Если нет, то в сети есть. Не найдешь скажи я помогу. Если снова не будет пахать, то поставь шрифты русские в папку override. Если опять ничего не поможет, то удали из реестра все записи о НВН. Видно твои пираты что-то намудрили...

2 Fali

QUOTE (fali @ Oct 30 2004, 05:23)
Правда, у меня почему-то на русские коментарии (вставляются автоматом при создании) при компиляции иногда ругаются...

А вот почитай мою статью. Принципиально не скажу что это beee.gif
QUOTE (fali @ Oct 30 2004, 05:23)
В чем суть различия твоего и вот этого скрипта, созданого Мастером скриптов из диалога? smile.gif Помимо того что здесь проверка только на принадлежность к женскому полу. =) Я не очень разберусь...

Да не в чем. Синтаксис. И все. Вот смотри...

Neverwinter Script Source
int StartingConditional()
{
    int iPassed = 0; // Число iPassed равно нулю
   if(GetLevelByClass(CLASS_TYPE_FIGHTER, GetPCSpeaker()) >= 1)
// если уровень класса воин у говорЯщего РС больше или равен единички то
       iPassed = 1; // ТО число iPassed равно единицы

// а то что снизу это уровнение как бы с сокращением. Вверху это как бы записи:
// пусть Х=тому то У= тому то бла бла а внизу в чистом виде y=x+z
// Если число iPassed равно нулю, то ничего не произойдет и ...
    if(iPassed == 0)
        return FALSE;

// возврат (return) ЛОЖЬ (FALSE), то есть скрипт не вернется в самый верх
// к функции int StartingConditional() и не прикажет ей начать диалог с
// персонажем показав именно ЭТУ строку удовлетворЯющую ее запросам
  return TRUE;

// Это второе условие, т.е. скрипт как бы пробежал по коду и если iPassed = 1;
// то он даже не опустится к  return FALSE;  так как у нас единичка и он сразу
// побежит читать что еще там ниже. А ниже "return TRUE;" что значит возврат
// ИСТИНА, и он типа: ОПА!  И запускает функцию ктороая быстренько тормозит
// пролетающую проверку движком по всем корневым строкам НПС сверху вниз
}


Теперь твой скрипт
Neverwinter Script Source
// тут без всЯких сокращений поэтому мало и понЯтней смотри:
int StartingConditional()
{
    if(GetGender(GetPCSpeaker()) != GENDER_FEMALE)
// (УСЛОВИЕ) "if" ЕСЛИ пол (GetGender - возьми пол) говорЯщего игрока
// НЕ женский (== это РАВНО условию != это ОТРИЦАНИЕ || или или
//  && это и ЭТО и ЭТО обязательно)
//  дак вот, ЕСЛИ пол говорЯщего игрока не равен женскому то возврат ЛОЖЬ
  return FALSE;
      return TRUE; // Любой другой будет верным условием результат
// if -это условие если оно есть, то после него идет параметр условий и если оно
// простое, как у нас  return FALSE; то его не заключают в скобки {} если сложное
// то заключат. Например там несколько  строк и сложное описание.
//Тогда отделим его скобами, а if обрабатывает первое что идет после него.

}


Вот в принипе я разжевал, может что не совсем верно, но я старался biggrin.gif

Автор: elf-demon Oct 30 2004, 11:00

Aiwan
Да на английском все работает вот тока среди выбора всего (у меня еще на диске аддон Hordes of Underdark) ну например монстры, которые есть в Underdarke а в простом НВН их нету эти монстры никак не названы просто стоит тире и пустота но при этом можно на пустоту кликать мышкой и ставить себе в модуль выбранное. Шрифты у меня в папке стоят о которых ты говоришь но все равно как установил этот dialog тот сразу сделал все английским и что больше меня разочеровало - игра стала английской версией!! А это тупо!
На английском все и даже меню и палитры которые были русские! на диске dialog нету. Где найти? this.gif

Автор: Aiwan Oct 30 2004, 11:32

QUOTE (elf-demon @ Oct 30 2004, 14:00)
Да на английском все работает вот тока среди выбора всего (у меня еще на диске аддон Hordes of Underdark) ну например монстры, которые есть в Underdarke а в простом НВН их нету эти монстры никак не названы просто стоит тире и пустота но при этом можно на пустоту кликать мышкой и ставить себе в модуль выбранное.

Это потаму как тот файл что ты скачал не для ХотУ, а для СоУ. В нем твоих монстров не было и не могло быть. Он не знает их и названий в нем нет.
QUOTE (elf-demon @ Oct 30 2004, 14:00)
Шрифты у меня в папке стоят о которых ты говоришь но все равно как установил этот dialog тот сразу сделал все английским и что больше меня разочеровало - игра стала английской версией!! А это тупо!

Боже мой! lol.gif Какое горе! biggrin.gif Да русский тупит по страшному! Я сам пол года на русском был, а как полезли баги пересел на английскую. Но это ИМХО каждого на чем сидеть. Ищи ПЕРЕВОД ХотУ и загружай к себе. И будет у тебя опять русская версия.

shout.gif Эй НАРОД! Дайте парню ссылку на Dialog.tlk для HotU!

Автор: DBColl Oct 30 2004, 15:48

Думаю, что если он заглянет на http://rpgplanet.ru то найдет все необходимое wink.gif для руссификации... buba.gif

Автор: fali Oct 30 2004, 17:37

2Ночной зверек:
Если я правильно поняла объяснения, Леон имел в виду "знаки", вставляемые в текст диалога. Вроде miss/mr, <class> или <race>... :)

2balrog:
Да, с этим я, кажется, уже разобралась. :)

2Aiwan:

QUOTE
А вот почитай мою статью. Принципиально не скажу что это

А я принципиально скажу, что всё равно не поняла. user posted image
Все буквы "я", вроде бы убирала... :) А всё равно, если внутри текста скрипта коментирование сидит -- ругается, если после закрывающей скобки "}" -- принимает. =) Даже с буквой "я", между прочим, не ругается тогда. :)

QUOTE
Вот в принипе я разжевал, может что не совсем верно, но я старался :D

Ну, главное я поняла. =) То, что разница только в синтаксисе написания. :) А остальное... Что-то поняла, что-то не очень... Но объяснил действительно хорошо. :)

2elf-demon:
Выбирай любой, какой понравится. =)
Где смогла, написала коментарий, что говорили об этих файлах. :)
Переводы я не проверяла, так что могут повторятся. Сравнивала только по названию и размеру файлов...

русский dialog.tlk2DBColl:
А на rpgplanet.ru, кстати, найти довольно проблематично. =) Только что проверяла. :)

Добавлено:
Скачала все и посмотрела размеры и даты самих tlk-файлов, а не архивов...
dialog.rar (13 549 228, 17.01.2004), dialog_159_hotu_rus.rar (12 569 105, 07.01.2004), dialog1-2.rar (13 549 228, 17.01.2004, есть шрифты), nwn.exe (13 549 228, 07.01.2004, есть шрифты), siala_dialog_2.0.rar (12 692 021, 03.06.2004).

Автор: Aiwan Oct 30 2004, 18:16

QUOTE (fali @ Oct 30 2004, 20:37)
Все буквы "я", вроде бы убирала... smile.gif А всё равно, если внутри текста скрипта коментирование сидит -- ругается, если после закрывающей скобки "}" -- принимает. =) Даже с буквой "я", между прочим, не ругается тогда. smile.gif

А это глюк русских версий black eye.gif Не надо их юзать, говорю как бывший юзарщик русских версий biggrin.gif
QUOTE (fali @ Oct 30 2004, 20:37)
А остальное... Что-то поняла, что-то не очень... Но объяснил действительно хорошо. smile.gif

Ты главное сохрани страничку и почитывай иногда. Как осознаешь ВСЕ что я написал, скажешь, напишу еще больше. Так и научишься...

Автор: elf-demon Oct 30 2004, 19:55

fali
Cпасибо! Самый первый в твоём списке скачал и он перевёл Невервинтер на ура! ещё причем текст в игре так немного курсивом! Класс! Но вот проблемка в Тулсете тоже самое - Палитра сверху работает(русское) а всё остальное в окошках справа и слева - палочки! =(( Устаноил и dialog и шрифты к нему прилагались (в рхиве вместе сним были) а он на тулсет не подействовал! Не везёт мне!=((

Автор: Aiwan Oct 30 2004, 20:36

elf-demon напиши мне ПУТЬ до твоей папки с игрой. Только точно, например C:\games\nwnx2\
Ясно? Я тебе вышлю файлик реестра, обновишь его и ini ивсе заработает как должно быть.

Автор: elf-demon Oct 31 2004, 16:56

Aiwan
Вообщем случилось вот что:
Я скачал с твоего письма файлы на рабочий стол. потом нажал на фаил HotU и мне написали: хотите добавить в реестр? я нажал ДА! Появилась в реестре в том пути который ты мне указал новая папка с 2 файлами. Не подействовало на тулсет. Я поменял ini фаил в папке с игрой и это тоже ничего не дало - в тулсете палочки вместо букв! А вот в игре вместо нормального текста стали закарючки всякие!!!! Ой народ!! Я уже отчаился!! Видно - не судьба!! Помогите всё исправить как было и всё!! не получеться видно ничего!
Добавлено в [mergetime]1099231497[/mergetime]
Мдя бедный мой НВН уже много раз его меняли по языкам! один dialog я сменил по моему 4 раза! Блин лучше переустановлю!

Автор: Некромес Oct 31 2004, 19:36

Скачай лучше руссификатор. Если че я могу подкинуть. yes.gif
Переустановить всегда успеешь. Если че, то лучше винт форматни. biggrin.gif

Автор: balrog Oct 31 2004, 21:15

ДА не мучайся ты! Возьми да и переустанови НВН diablo.gif ... или ты компактов не имеешь?.... сразу как-только такие глюки, берёшь да и переустонавливаешь biggrin.gif

Автор: Aiwan Oct 31 2004, 22:55

QUOTE (elf-demon @ Oct 31 2004, 19:56)
Блин лучше переустановлю!

good.gif

Автор: elf-demon Nov 1 2004, 01:57

Ну вот и всё!! Переустановил и играю! Правда модули создавать не могу из-за палочек, но что делать! Чем-то надо же жертвовать! dntknw.gif

Автор: DBColl Nov 1 2004, 02:31

У меня такое впечатление, что палитры у тебя сдохли каким-то образом... А может их пираты убили?.. Хотя глупость... А вообще я первый раз встречаю, чтобы тул так вставлял... crazy.gif this.gif

Автор: Aiwan Nov 1 2004, 10:24

QUOTE (elf-demon @ Nov 1 2004, 04:57)
Правда модули создавать не могу из-за палочек, но что делать! Чем-то надо же жертвовать!

Если я не ошибаюсь, у Лекса была такая трабла. Помогло по моему только Format c: ... dntknw.gif
Вообще-то НВН не особо и нуждается в настройках и реестре. Только для патчевания. У меня на хардах по году не сносил их а винду переустанавливал раз в два месяца точно.

Автор: DBColl Nov 1 2004, 12:13

QUOTE (Aiwan @ Nov 1 2004, 09:24)
Если я не ошибаюсь, у Лекса была такая трабла. Помогло по моему только Format c: ..

НЕ ПУГАЙ ПАРНЯ! shout.gif
elf-demon
Найди у кого-нить из друзей другую инсталяшку НВН и попробуй установить. Будет ли та же шляпа?..

Автор: Некромес Nov 1 2004, 15:18

Да-да-да, тока format c: или где Невер у тя стоит? Или лучше disks clear. biggrin.gif Лан, ты не обижайся. Нащет пиратов, дык у мя тож пиратские оба аддона!
Ось какая? Пропатчена до какой версии(игра)? unsure.gif

Автор: elf-demon Nov 1 2004, 18:20

Некромес
Да я вообще не патчил может в этом и проблема!
DBColl
Поищу! Может и есть у кого!

Автор: Некромес Nov 1 2004, 19:12

elf-demon, ты шо? Как же не патчить? biggrin.gif Без этого никуды. yes.gif
Пропатчь, и русифицируй. this.gif Интересно 30 метров скачать не слабо?
Блин, щас преду дадут. warning.gif

Автор: elf-demon Nov 1 2004, 21:50

Некромес
Вот вот! Нафиг надо!! Лучше без тулсета посижу или потом ангийскую версию установлю и там на инглише посоздаю, чем буду качать 30 метров!!!!! Я ж на модеме а не на выделенке!!!

Автор: fali Nov 1 2004, 22:26

Пока читала форум, немного запуталась и отпостила вопрос несколько не туда. =)
Так что, копирую его сюда -- здесь он уместнее. :)

QUOTE ("fali")
QUOTE ("Аваддон")
У меня тут вопрос возник. Сделал в горде плазу в парке. А на ней скамейки тайловые. Так вот, я хочу чтобы игрок на них садился. Пишу скриптик [...] И ставлю его на OnUsed невидимого плейса. Кликаю - игрок садится. Но, как этот плейс не крути он всегда будет садится лицом на восток. Чудеса да и только. Что можно предпринять?

Между прочим, вот и у меня та же проблема... :) Уж как я не вертела это несчасное невидимое сидение, всё одно садятся лицом на восток. =) Решила оставить до лучших времён и потом выспросить, да забыла. :) Сейчас вот прочитала -- вспомнила. :)

Так что, присоединяюсь к вопросу. :) Как сделать эти самые сидения, чтобы их можно было располагать на различных предметах по нескольку штук в ряд? =) Сделано же это как-то в Экзистауне... Там и на бревне можно рядком устроиться, и на тюк сена сесть...

Автор: Lex Nov 1 2004, 22:28

по поводу палочек: Я лечил переустановкой, хотя знаю, что можно в реестре что-то сделать, чтобы этот глюк вылечить... Глюк довольно распространенный.

ЗЫ: Какое тут оживление в мое отсутствие..

ЗЫЫ: fali чем то напоминает меня в марте 2003 года на рельсах..хорошее было время...


По поводу сидений: я так и не придумал, как эту проблему решать..

Автор: Некромес Nov 2 2004, 07:50

QUOTE (elf-demon @ Nov 1 2004, 21:50)
Вот вот! Нафиг надо!! Лучше без тулсета посижу или потом ангийскую версию установлю и там на инглише посоздаю, чем буду качать 30 метров!!!!! Я ж на модеме а не на выделенке!!!

Я вообще тоже на модеме пока, но скора на выделенке biggrin.gif . Но ради тулчка я скачаю и 50 метров (заметьте какой патриотизм drinks.gif).Между прочим я 98 метров хака равенлофта качал yes.gif.

Автор: Goblin Nov 2 2004, 12:29

Народ, у меня самый наверное простой вопрос : Я хочу русифицировать допустим модуль. Если я переведу только диалоги, названия и описание предметов, названия лок (не таги и не ресрефы), добавлю несколько заколок на карте --- то это никак не повлияет на скрипты или прочую работу шарда ?

Автор: mamuc Nov 2 2004, 14:11

не повлияет..но наверняка, что нить останеться по английски biggrin.gif

Автор: elf-demon Nov 2 2004, 18:36

Lex
Мне на Реалмсе(бывшем, ща rpgplanet) сказал один про реестр. вот:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Nls\CodePage
надо значением параметра 1252 поставить c_1251.nls, возможно тоже самое сделать для 1250.

Не это случайно? Я так не делал! Опосаюсь чтоб не испортить что-нибудь!

Автор: elf-demon Nov 2 2004, 19:43

Народ!!!!!!!! Кто подскажет нет ли где списка создавания вещей в НВН с помощью реагентов (тока это не способность перса а так у колдуньи одной можно в сундуке специальном сделать( соединить там например брюхо жука+ череп гаргульи+малахит ну что-то по типу этого!))

Извините что не в тему просто не знаю где ещё такой вопрос можно задать!


Автор: Aiwan Nov 2 2004, 19:58

Это тебе на RPGPlanet... biggrin.gif

Автор: Некромес Nov 2 2004, 20:17

QUOTE (elf-demon @ Nov 2 2004, 19:43)
Народ!!!!!!!! Кто подскажет нет ли где списка создавания вещей в НВН с помощью реагентов (тока это не способность перса а так у колдуньи одной можно в сундуке специальном сделать( соединить там например брюхо жука+ череп гаргульи+малахит ну что-то по типу этого!))
Извините что не в тему просто не знаю где ещё такой вопрос можно задать!

Типа в игре есть такой момент? В ориг-компании? Во второй главе?

Автор: elf-demon Nov 2 2004, 21:09

Aiwan Aiwan
Нету там такого!!!=(
Некромес
Да!! У колдуньи! В прохождении сказно что в шкафу свиток лежит и в нём написано, но я не магом играю а войном!! И свитка нету!! ( хотя может и не из-за того что я воин но всё равно нету!)

Автор: Некромес Nov 2 2004, 21:25

Ну, мля, это у Элтуры,да? Вообще-то там свиток появляется тока када ты принесешь какую либо книгу Иммаскарана yes.gif. И в любом случае там надо накладывать какое-либо заклинание, типа кислотной стрены Мельфа. buba.gif
Поэтому там тебе ниче не светит. Я тож за воина\Черного Стража играл.

Автор: elf-demon Nov 2 2004, 21:27

Но как же мне сказал другой чел( он давно проходил) что воин тоже может создать... shout.gif

Автор: Некромес Nov 2 2004, 21:31

QUOTE (elf-demon @ Nov 2 2004, 21:27)
Но как же мне сказал другой чел( он давно проходил) что воин тоже может создать...

Неправда. Сам подумай, как может воин создать магический предмет в лаборатории колдуньи абсолютно без магии? yes.gif

Автор: elf-demon Nov 2 2004, 21:42

Так там не надо колдовать по моему! Тока ложишь реагенты в этот сундук а он всё сам делает! Кстати книги все 5 ей отдал а внизу вместо свитка во всех шкафах - книги по истории невервинтера.!

Автор: Некромес Nov 2 2004, 21:52

QUOTE (elf-demon @ Nov 2 2004, 21:42)
книги все 5 ей отдал а внизу вместо свитка во всех шкафах - книги по истории невервинтера.!

Даже там, рядом с ящиком в центре комнаты? Колдовать надо, я ж пробовал, например, сустав скелета, язык слаада и кислотная стрела. Только так. yes.gif

Автор: elf-demon Nov 2 2004, 21:56

Некромес
Блин жалко! Ну ладно.. Спасибо!! Прояснил ситуацию!! biggrin.gif

Автор: Некромес Nov 2 2004, 22:02

elf-demonпжалста. biggrin.gif Наконц-то кому-то помог.

Автор: Серхио Nov 3 2004, 11:48

Добрый вечер!
У меня тут несколько вопросов накопилось:
Ситуация номер раз. Необходимо чтобы персонаж (PC, хенчман или NPC), убивший определеного злодея "выполнял" определенную последовательность действий (к примеру):
1. Сразу после решающего удара (закла) падал бы на землю (EffectKnockdown());
2. Пролежав так секунд 5, бросал бы фразу типа: "Какого хера?" (стрингом над головой PC или NPC);
3. Подвергался бы действию какого нибудь закла (например Harm).
Наиболее логично было бы поставить эту последовательность действий на событие OnDeath того самого злодея. Вся соль состоит в том что сакраментальное: "Какого хера?" при этом выводится только при помощи функции FloatingTextStringOnCreature() (такая строчка воспринимается скорее как служебное сообщение типа "Критический удар", хотя я конечно придираюсь biggrin.gif). Конечно можно поставить всплытие этой строчки с задержкой на событие OnCombatRoundEnd для убийцы, однако получается мне придется модифицировать соответствующие скрипты всех возможных убийц (благо в моем случае их немного), а это не совсем красивое решение. К тому же не понятно как в этом случае будет определяться конец раунда, ведь перс будет подвергнут действию эффекта Knockdown. Скрипт уже существует и пашет, только вот ента строчка мне не совсем нравится, вернее ее шрифт.

Ситуация номер два. Есть довольно приличная композиция, которая вполне годится в качестве амбиента. Вся неприятность в том что это песня. Если бы в сети был инструментальный вариант песни такого бы вопроса естественно не возникло. Но увы dntknw.gif. Посему у меня вопрос, который вполне может показаться смешным (lol.gif) тем кто хотя бы немного знаком с теорией вопроса.
ВОПРОС: Можно ли стандартный MP3-файл разложить на дорожки и впоследствии лишить композицию текстовой составляющей. Вопрос принципиальный, по сути идея квеста строится на этой самой композиции. this.gif

Ситуация номер три. Снимется ли со временем эффект наложенный на PC или его хенча при помощи функции ExtraordinaryEffect(). Отдыхом и диспеллами не снимается, проверено buba.gif.

Автор: Аваддон Nov 3 2004, 17:00

1. Чтобы крич сказал фразу - пользуйся коммандой SpeakString. Если событие стоит на OnDeath злодея - заставь убившего его игрока сказать фразу. Получится что то типа AssignCommand(oPC,SpeakString("Какого такого...")); .
Где oPC = GetLastKiller();

2. Скорее всего нельзя :/ Можешь попробовать скачать плагин для WinAmp - Voice Remover, чтобы убрать вокал, а дальше там с записью похимичить.

P.S. А зачем эффект KnockDown если можно ограничится командой PlayAnimation?

Автор: Серхио Nov 3 2004, 18:24

QUOTE (Аваддон @ Nov 3 2004, 18:00)
P.S. А зачем эффект KnockDown если можно ограничится командой PlayAnimation?

Чтоб жизнь убивцу медом не казалась diablo.gif (а в чем разница? dntknw.gif Эффект получается тот же)
А вообще спасибо!

Автор: Аваддон Nov 3 2004, 19:51

А может у него иммун на нокдауны?;-)

Автор: Aiwan Nov 3 2004, 22:42

Серхио эээ... Тебе это куда? Если сурьезно то можно глянуть и настроить то что росишь...

Автор: Серхио Nov 4 2004, 05:11

QUOTE (Аваддон @ Nov 3 2004, 18:00)
Можешь попробовать скачать плагин для WinAmp - Voice Remover, чтобы убрать вокал, а дальше там с записью похимичить.

Скачал, глушит голос (но его все-таки слышно к тому же заодно глушит и часть музыки, что ессно buba.gif ), для караоке конечно подойдет, а так... Я-то думал что все просто, а оно вона как. Х с ним, на худой конец вставлю песню как есть.
QUOTE (Аваддон @ Nov 3 2004, 20:51)
А может у него иммун на нокдауны?;-)

Резонно, как-то упустил из виду..
QUOTE (Aiwan @ Nov 3 2004, 23:42)
Серхио эээ... Тебе это куда? Если сурьезно то можно глянуть и настроить то что росишь...

Для моего мини-модуля (на большее у меня просто фантазии не хватит). Хотя зная самого себя скажу честно: вероятность 90%, что я его не сделаю, потому как лентяй я жуткий lazy.gif. Так шо звиняй за беспокойство drag.gif

Автор: Velteron Nov 8 2004, 18:32

Привет всем!
Вроде стал понимать скрипты на логическом уровне , до этого програмировал лишь в Delphi smile.gif
У меня вопрос такой :
Как поправит такой баг . Игрок умер , перезаходит и , о чудо! , живой . Я пробовал править своим допотопотным скриптом , который дает вещь при смерти , и если в ooClientEnter скрипт находит такую вещь у игрока , то перемещает его в фугу . Но , во-первых с этим связана уча других багов , например если его реснут , то камень не исчезает . Игрок забывает его вытащить и при следующем заходе оказывается в фуге . Вторая часть бага , если 10<HPs<=0 , то при перезаходе у него восстанавливаются все жизни и спеллы. Как сделать , чтобы такого бага не было, помогите плз!!! unsure.gif

Автор: Аваддон Nov 8 2004, 19:10

Ага, незабудь еще и спеллы воостанавливаются:)
Старенький скрипт. Написал его _kaa_. Только я боюсь в NwN: HotU спеллов намного больше чем здесь так что число менять придется. Но это уже сам тестируй.


Скрипт для сохранения здоровья и спеллов при перезаходе.
Автор: _kaa_


событие OnClientEnter модуля:

Neverwinter Script Source
//by _Kaa_ 20.05.30
#include "nw_o0_itemmaker"
void main()
{
object oPC = GetEnteringObject();
object oStore = GetModule(); 
string sStoreName = GetName(oPC)+GetPCPlayerName(oPC); // =[PC name] + [login name]
SetLocalString(oPC,"HP_MyIdString",sStoreName);
int iSavedHP = GetLocalInt(oStore,sStoreName);
if (iSavedHP != 0)
{
effect efDamage = EffectDamage(GetMaxHitPoints(oPC)-iSavedHP,DAMAGE_TYPE_MAGICAL,DAMAGE_POWER_ENERGY);
ApplyEffectToObject(DURATION_TYPE_INSTANT,efDamage,oPC);
}

int k,j,nSpells;
for (k=1; k < 400; k++)
{
nSpells = GetLocalArrayInt(oStore,sStoreName+"_spells",k);
if (nSpells)
  for (j=0; j <= GetHasSpell(k,oPC)-nSpells; j++) DecrementRemainingSpellUses(oPC, k);
}
}



OnClientLeave
Neverwinter Script Source
//by _Kaa_ 20.05.30
#include "nw_o0_itemmaker"
void main()
{
object oPC = GetExitingObject();
object oStore = GetModule();
string sStoreName = GetLocalString(oPC,"HP_MyIdString");
SetLocalInt(oStore, sStoreName, GetCurrentHitPoints(oPC));
int k,nSpells;
for (k=1;k<400;k++)
{
nSpells = GetHasSpell(k,oPC);
if (nSpells)
  SetLocalArrayInt(oStore,sStoreName+"_spells",k,nSpells);
}
}



Автор: Velteron Nov 8 2004, 23:10

Огромное спасибо ! yahoo.gif
<small>Добавлено в 23:27</small>
Еще один вопросик , кто-инбудь знает скрипт авто-удаления лута . А то после пяти часов работы шарда накапоивается куча лута и сервер начинает тормозить . Пробовал такой скрипт :

Neverwinter Script Source
void TrashObject(object obj)
{
       // Check for Plot Flag
       if (GetPlotFlag(obj)) SetPlotFlag(obj,FALSE);
       // if this is not a container, just destroy it and we're done
       if (GetHasInventory(obj) == FALSE) {
               DestroyObject(obj);
       } else {
               object oItem = GetFirstItemInInventory(obj);
               // destroy everything in the inventory first
               while (oItem != OBJECT_INVALID)
               {
                       TrashObject(oItem);
                       oItem = GetNextItemInInventory(obj);
               }
               // destroy the container itself
               DestroyObject(obj);
       }
}

void main()
{
       object oArea = OBJECT_SELF;
       string AreaTag = GetTag(oArea);
       object oModule = GetModule();
       int iItemDropLifeSpan = 20;
       // iCounterMax must always be greater than iItemDropLifeSpan
       int iCounterMax = 1000;
       int iTrashMark = 0;
       int threads = GetLocalInt(oModule,"GLOBAL_SCHEDULLER_THREADS");
       int HEARTBEAT_TIME = GetLocalInt(oModule,"AREAS_COUNT") / threads * FloatToInt(RoundsToSeconds(1)) * GetLocalInt(oModule,"GLOBAL_SCHEDULLER_TIME_ROUNDS");

       string sTrashMark = "iTrashMark";
       int iCounter = GetLocalInt(oArea, "ItemTrashCounter");
       iCounter++;
       iCounter = iCounter % iCounterMax;
       if (iCounter == 0) { iCounter++; } // 0 is reserved
       if (iCounter > iCounterMax) iCounter = 1; // in case when counter reaches limit
       SetLocalInt(oArea, "ItemTrashCounter", iCounter);
       object obj = GetFirstObjectInArea(oArea);
       while (obj != OBJECT_INVALID)
       {
        // match based on type first, because comparing int
        // is faster than string; wrong types don't reach
        // string comparison
        string sTag = GetTag(obj);
        string sName = GetName(obj);
        // this assumes that every item drop from a monster
        // comes in a placeable container with a tag name
        // of "BodyBag"; it seems to be true, but if this
        // assumption is false, this code needs to be fixed
        if ((GetObjectType(obj) == OBJECT_TYPE_PLACEABLE) && (sTag == "BodyBag" || sName == "Remains") ||
             (GetObjectType(obj) == OBJECT_TYPE_CREATURE && GetIsDead(obj) && !GetIsPC(obj)))
           {
             iTrashMark = GetLocalInt(obj, sTrashMark);
             if (iTrashMark == 0)
             {
                   SetLocalInt(obj, sTrashMark, iCounter);
             } else
             {
                   int iTimeAlive = 0;
                   if (iCounter >= iTrashMark) {
                       iTimeAlive = iCounter - iTrashMark;
                   } else
                   {
                       iTimeAlive = iCounterMax - iTrashMark + iCounter - 1;
                   }
                   if (iTimeAlive > iItemDropLifeSpan)
                   {
                        if (GetObjectType(obj) == OBJECT_TYPE_CREATURE)
                           SetIsDestroyable(TRUE,FALSE,FALSE);
                       TrashObject(obj);
                   }
            }
           }
               obj = GetNextObjectInArea(oArea);
       }
//    SetLocalInt(oModule,AreaTag+"LOOT_INIT_TIMER_DONE",0);
}


Запихивал в HeartBeat , но в логе постоянно вылазили ошибки скрипта . По 30 штук в секунду ! Это явно бы мешало игрокам и пришлось отказаться от этого sad.gif
Помогите ,плз ! sad.gif

Автор: Wereman Nov 9 2004, 07:32

Народ - дайте пжалста скрипт лечения у храмовика...Мне в диалоге его выствить надо =)
Чтобы как в сингле Арибет, например, лечила, если ее попросишь.

Очень нужно! У нас из-за этого гильдхол на шарде поставить не можем!
Считайте что вас человек 10 сразу просит!

Автор: Kalian Nov 9 2004, 14:12

Народ, как написать скрипт на движение камеры?
Ну, например, чтоб она крутилась вокруг PC?

Автор: Aiwan Nov 9 2004, 20:30

http://www.wrg.ru/forums/index.php?showtopic=388
Скачивай и читай.

Автор: Аваддон Nov 9 2004, 21:59

QUOTE (Wereman @ Nov 9 2004, 07:32)
Народ - дайте пжалста скрипт лечения у храмовика...Мне в диалоге его выствить надо =)
Чтобы как в сингле Арибет, например, лечила, если ее попросишь.

Чтобы полностью лечила или по скольку то там процентов? За деньги или бесплатно?!

Автор: Wereman Nov 10 2004, 05:48

Полностью и бесплатно yes.gif

Автор: SeDAl Nov 10 2004, 17:04

buba.gif Вобщем нужен скрипт, чтоб в разговоре при фразе например: "Я слаб, вылечи меня" с перса снимались все вредные эффекты, полностью востанавливалисб хитпоинты и было это бесплатно...
Очень прошу, необходимо...

Автор: SeDAl Nov 10 2004, 18:07

Все уже, не нало... yahoo.gif

Автор: fali Nov 11 2004, 06:39

Надо! =)
На всякий пожарный... :)

Автор: Маэв Лютина Nov 11 2004, 07:03

Господа и дамы! Ситуация: НПС, который ко мне присоединился имеет все скрипты хенчмена, однако, пока не нажмешь на кнопку "Следовать" в окне персонажа - стоит не месте и смотрит на меня влюбленным взором.
Вопрос: Какой скрипт нужен и нужен ли, чтобы он следовал за мной без напоминаний. Заранее благодарю за ответы. dntknw.gif

Айван: Лютина, давай в одной теме один вопрос. Не стоит дублировать. Я все читаю. И не только я wink.gif
п.с. В теме про хеньчмана я ответил.

Автор: Аваддон Nov 11 2004, 09:20

QUOTE
Полностью и бесплатно smile.gif

QUOTE
Надо! =)
На всякий пожарный... smile.gif


Вешаешь как действие на ветке диалога. Лечит все ХП и снимает эффекты.
Neverwinter Script Source
#include "nw_i0_plot"
void main()
{
object oPC = GetPCSpeaker();
int iHP =GetMaxHitPoints();
effect eHeal = EffectHeal (iHP);
effect eHealVis = EffectVisualEffect (VFX_IMP_HEALING_X);
ActionCastFakeSpellAtLocation(SPELL_HEALING_CIRCLE,GetLocation(oPC));
DelayCommand (2.0,ApplyEffectToObject(DURATION_TYPE_INSTANT,eHeal,oPC));
DelayCommand (2.0,ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eHealVis,oPC,10.0));
DelayCommand (2.0, RemoveEffects(oPC));
}

Автор: Zik Nov 11 2004, 12:43

Прошу прощения, если такой вопрос уже был, кто- нибудь может мне помочь со скриптом, чтобы нпс узнавал игрока при разговоре с ним второй раз? (Будет говорить что- нибудь типа "а, это вы. Мне больше нечего вам сказать":) )

Автор: Аваддон Nov 11 2004, 15:31

Zik , ты в скриптах чуть чуточку понимаешь? Надеюсь да. Тогда скажу так. Создай две ветки диалога - одну для первого разговора, другую для повторного. При первом разговори в конце диалога скриптом задай игроку локальную переменную (там в диалоге есть такая закладка Actions). А на вторую ветку диалога поставь в закладку "текс появляется:" и поставь проверку на эту переменную. Если она уже задана то активизируется вторая ветка диалога... Эмм... Понятно надеюсь? Если что - спроси объясню на пальцах:)

Автор: Aiwan Nov 11 2004, 15:56

Zik Почитай мою статью на сайте в PDF. Там это есть.

Автор: Zik Nov 11 2004, 17:43

Все понятно, благодарствую smile.gif

Автор: Лито Nov 11 2004, 21:00

Здравствуйте все,помогите разобратся dntknw.gif как сделать так чтобы при вхождении игрока модуль ему выдавался заданый инвентарь(подстилка еда золото и тд), при этом чтобы не каждый раз, вошел-вышел получил вещи, а только один раз на каждого чара

Спасибо yes.gif

Автор: Aiwan Nov 11 2004, 22:46

Лито Привет! wink.gif

Посмотри в базе скриптов пожалуйста. Я сам не могу инет тормозной bad.gif Там должен быть скрипт на удаление инвентаря. Немного подкорректируешь и все. А что бы не было многоразового использования, это надо вешать локалку на чара. А это чуть выше написано что и как yes.gif

Автор: Аваддон Nov 12 2004, 07:23

QUOTE (Aiwan @ Nov 11 2004, 22:46)
А что бы не было многоразового использования, это надо вешать локалку на чара.

А вот это не врите this.gif в мультиплеере локалка на чаре не сохраняется - я проверял. Только на шмотках. Так что придется с БД.

Автор: fali Nov 12 2004, 10:24

Аваддон, спасибо за скрипт лечения, что выше был. :)

Между прочим, у меня ещё вопрос появился. :)
Вопрос: Как делаются на шардах сундуки, в которых можно хранить вещи не опасаясь рестарта? Если кто-нибудь подскажет скрипт, буду очень благодарна. :) Но в большей мере меня интересует "технология" подобных сундуков... Если я правильно понимаю, нужно где-то хранить информацию о положенных в сундук вещах? Я слышала что-то про базы данных и про привязку вещей к игроку... Но не очень поняла, что к чему. Плюс, мне хочтся узнать, какие проблемы возникают при использовании таких сундуков? Например, не разрастётся ли от этого база данных или не отяжелеет ли чар? :) Какие ограничения тут есть или какие ограничения чаще всего делают на шардах? :)

Автор: Лито Nov 12 2004, 11:13

Не нашел в базе ничего unsure.gif , думал хоть с переменными разбирусь, так Аваддон говорит что они в онлайне не работают,а без начального инвентаря на шарде никуда,сижу теперь побитый black eye.gif

Автор: Goblin Nov 12 2004, 11:45

2fali : Для справки -- в любом сундуке максимально 25 закладок (страниц) может быть. Проверял сам. Так что слишком отяжелеть чар не сможет wink.gif

У меня, дополнение к вопросу fali : как в таком сундуке хранить сумку с каким-то содержимым. Не опустеет ли сумка после рестарта ?

Автор: Baal Nov 12 2004, 12:49

2 Лито А если при первом заходе чара выдать ему какойнить невыкидываемый предмет, например книгу правил или еще чтото в том же духе? А при следующем заходе проверять именно наличие этого предмета.

Автор: Лито Nov 12 2004, 13:13

Baal как не смешно все упрается в реализацию, я конечно могу сделать так чтобы книжку, хелпер там и тд,выдавали при заходе игрока, но как сделать проверку и чтобы это выдавалось один раз не представляю...
Распишите все пожалуйста если не трудно unsure.gif

На всякий случай напишу предметы которые хочу выдать игроку: подстилка еда н-количества золота н-количества, хелпер

Автор: Baal Nov 12 2004, 14:19

хм... так тебе нужен скрипт?
Вот могу посоветыввать так:

Neverwinter Script Source
void main()
{
object oPC; // PC сам определишь как тебе надо
object oBook=GetItemPossessedBy(oPC, "ТЭГ_КНИГИ");
if(!GetIsObjectValid(oBook))// выполнить только если книги еще нет
  {
  object oItem = GetFirstItemInInventory (oPC);
  while(GetIsObjectValid(oItem))
    {
    DestroyObject(oItem); // удаление вещей из инвентарЯ
    oItem = GetNextItemInInventory (oPC);
    }
  int i=0;
  while(i<14)
    {
    DestroyObject(GetItemInSlot(i, oPC)); // удаление вещей из слотов
    i++;
    }

  CreateItemOnObject("РЕСРЕФ_КНИГИ", oPC);
  CreateItemOnObject("РЕСРЕФ_ПЕРВОГО_ПРЕДМЕТА", oPC);
  CreateItemOnObject("РЕСРЕФ_ВТОРОГО_ПРЕДМЕТА", oPC);
  //  и т.д. создавай что тебе нужно
  }
}

Автор: Лито Nov 12 2004, 14:47

спасибо большое yes.gif , и еще уточнение, это надо в ClientEnter вставлять, правильно? this.gif

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)