Ilerien
Dec 6 2011, 07:28
Цитата
Ээ… Нет. О скорости речи как раз не шло, а меньше и лучше можно делать как со всякими НВНХ, так и без – имеется в виду конент же, а не движок.
Одно от другого очень сильно зависит. Скажем, модульные скрипты - это тоже контент, только частично спрятанный от пользователя. Скрипт в 50 строк или скрипт в 2 строки с использованием NWNX? Оба по функционалу отвечают ровно за одну небольшую, но очень важную деталь из серии
Цитата
пусть это трата времени на, как может кому-то показаться, ненужные детали, но мое мнение таково, что именно они и делают игру.
Какой из этих скриптов лучше? Может быть, большой на дефолте, на написание и дебаг которого ты потратишь далеко не 1 час, и не факт, что отловишь все баги?
Flaristan
Dec 7 2011, 02:06
Я и не надеялся что можно поставить стартовый пакет скриптами (хотя были идеи как это сделать через «Ж» и подставную стартовую локу), я надеялся, что существует переменная для модуля, задав которую на FALSE в списке переменных, можно отключить стартовые пакеты, и что кто-то, кто знает, ее подскажет.

Я сомневаюсь, что НВНХ – это панацея для хотящих всего и много. А писание десятки строк кодов на тему интересных идей само по себе увлекательное занятие расширяющее кругозор, логическое мышление и навыки программирования, особенно если есть на него настроение.

Однозначно лучше тот скрипт, работу которого ты понимаешь и в случае необходимости можешь поменять или скорректировать, потому что работать впоследствии придется с ним именно тебе. И это однозначно будет тот, который ты писал и отлаживал лично. Баги когда возникают, не задумываются о том, насколько крут был в программировании автор программы, в которой они возникают…
denis0k
Dec 7 2011, 07:14
Цитата
я надеялся, что существует переменная для модуля, задав которую на FALSE в списке переменных, можно отключить стартовые пакеты, и что кто-то, кто знает, ее подскажет.
Ну, если абстрагироваться, она и есть же

Подрубаешь к модулю хак с одним-единственным 2да с выпиленными пакетами и вуаля

Цитата
Я сомневаюсь, что НВНХ – это панацея для хотящих всего и много.
Далеко не панацея. Во-первых и в-главных, там нужен толковый программист, либо объявление на форуме нвнх и годы терпения, мб твою идею заметят и сделают. Во-вторых, действительно, даже у моддинга с копанием в памяти есть предел, и он не так уж далёк, как можно представить.
virusman
Dec 7 2011, 12:50
Цитата(Flaristan @ Dec 7 2011, 03:06)

Я сомневаюсь, что НВНХ – это панацея для хотящих всего и много. А писание десятки строк кодов на тему интересных идей само по себе увлекательное занятие расширяющее кругозор, логическое мышление и навыки программирования, особенно если есть на него настроение.

Однозначно лучше тот скрипт, работу которого ты понимаешь и в случае необходимости можешь поменять или скорректировать, потому что работать впоследствии придется с ним именно тебе. И это однозначно будет тот, который ты писал и отлаживал лично. Баги когда возникают, не задумываются о том, насколько крут был в программировании автор программы, в которой они возникают…
Всё верно. В связи с этим я не делаю тот или иной функционал в NWNX, если проблема решается написанием скрипта, и это нормально работает.
DNAlchemist
Dec 7 2011, 21:41
Хочу сделать работающее пианино. Но после воспроизведения трех звуков оно перестает воспроизводить новые, пока не стихнут предыдущие.
Есть идеи?
denis0k
Dec 7 2011, 22:22
У меня идеи две:
- сделать звуки короче и добавить паузу между нотами
- попробовать вешать воспроизведение на разные обжекты через ассигн, если это возможно (не особо играл звуки в нвн), мб ограничение локально
Flaristan
Dec 8 2011, 01:10
Ненада вешать на объекты - просто создай нужное кол-во «звуковых объектов» на локации в точке где стоит «пианино» под нужное число нот и в их свойствах поставь опцию «не активные» (чтоб не играли сами по себе), а при активации «клавиш» поставь на них скрипт с командами «саунд обжект плей/делей/саунд обжект стоп» с нужной длительностью звучания к соответствующему звуку ноты по тагам.
DNAlchemist
Dec 8 2011, 08:44
Цитата(Flaristan @ Dec 8 2011, 02:10)

Ненада вешать на объекты - просто создай нужное кол-во «звуковых объектов» на локации в точке где стоит «пианино» под нужное число нот и в их свойствах поставь опцию «не активные» (чтоб не играли сами по себе), а при активации «клавиш» поставь на них скрипт с командами «саунд обжект плей/делей/саунд обжект стоп» с нужной длительностью звучания к соответствующему звуку ноты по тагам.

Похоже придется так. Просто от модуля к модулю создавать объекты на каждую клавишу, их же блин 88 штук!
Почему разрабы не продумал скриптовое создание саундов
Крах. Даже создавая отдельные звуки на локации, больше 4х не дает играть одновременно (первый раз было тоже четыре). Единственное, что это дало, так это чтобы не перекрывало одну ноту второй такой же сверху, а запускало ее сначала. Но для создания 88 лишних объектов на локации это слабый аргумент.
Блин, неужели ничего не сделать?
Melisse
Dec 8 2011, 10:18
Есть подобные системы на ваулте
вот одна из нихГде-то есть еще и пианино
AnnaCalessa
Dec 8 2011, 12:44
Здравствуйте.
Работаю над модулем и столкнулась с интересной ситуацией, а именно PC Parts. Есть приготовленный пакет голов и не один, а несколько:
Вот один *.hak-пакет даёт возможность использовать кастомные головы только для NPC, а PC через клиент не может получить расширенный список голов.
Берём по другому, распаковываем *.hak-пакет, помещаем головы в override директорию, и вот уже и NPC и PC могут пользоваться всем списком кастомных голов.
Но есть у меня и другой архив голов, который помещаем или в override, или запаковываем в *.hak-пакет - работает нормально в том и в том случае, и PC и NPC могут пользоваться кастомными головами.
Вот процесс этот для меня загадка. Почему в одном случае головы работают независимо от того куда их поместить, а в другом случае нет?
И ещё, как всё же правильнее и надёжнее разместить кастомные головы: в override, в *.hak-пакет, или в *.hak-пакет с вписыванием *.hak-пакетов как патчей на Preload в nwnpatch.ini ?
Какой хак подгружать - это параметр модуля.
Когда ты создаешь персонажа - модуль еще не загружен, следовательно и хак.
Если теже ресурсы закинуты в оверайд то они грузятся сразу..
Это одна и фундаментальных проблем нвн1 в настоящее время

.
Talarasha
Dec 8 2011, 14:21
Цитата
Какой хак подгружать - это параметр модуля.
Когда ты создаешь персонажа - модуль еще не загружен, следовательно и хак.
Так-то в сингле сначала грузится модуль, а потом уже создается персонаж - с учетом подключенных хаков.
Вообще, вопрос как-то заумно изложен. Пока вроде понял, что есть два хака, бошки из одного видны в игре, из другого не видны. Из оверрайда видны оба. Предполагаю, что в хаках вместе с бошками идет 2да - вероятно, конфликтует с уже имеющимся в другом хаке или в оверрайде. Большего сказать навскидку не могу, надо смотреть хаки.
UPD: Вот, нарыл кое-что в забугорье:
Цитата
Malagant
Here's how I understand it:
1-49 are recognized in both player selection and toolset.
50-99 are only recognized in player selection provided no head numbers are skipped and the same heads are in the players override to be seen correctly (otherwise they show up as those helm models in the Bioware resources. (You couldn't have 1-70 then 72-99 or else 72+ will not be available. This is also why CEP has duplicate heads that are numbered between 50-99 and 100+ for the next reason).
Heads 100-199 are only available in the toolset for NPCs and can not be automatically selected in player generation.
Any heads 200-255 (which I believe is the total limit of heads that can be used) are unfortunately only available through LETO, a properly scripted appearance changer, or some other form of manual assignment. It's my understanding that this is a hard-coded issue and these options are the only ways around it.
denis0k
Dec 8 2011, 18:03
Цитата
Крах. Даже создавая отдельные звуки на локации, больше 4х не дает играть одновременно (первый раз было тоже четыре).
Значит ты нашёл предел звукового движка нвн

Попробуй в настройках miles 2d менять на другие системы, но, во-первых, не факт (ни что поможет, ни что вообще звук будет), а во-вторых, у 99% игроков miles 2d, и менять это они не будут.
DNAlchemist
Dec 8 2011, 21:37
Цитата(Melisse @ Dec 8 2011, 11:18)

Есть подобные системы на ваулте
вот одна из нихГде-то есть еще и пианино
Не, это не то. На ваулте смотрел, они все подбирают короткие одиночные ноты. А мне как минимум аккорды подавай
Хотя ссылка полезная, спасибо)
Flaristan
Dec 8 2011, 22:18
Ну… Если делать больше совсем нечего, можно составить список аккордов по комбинациям нажатых одновременно клавиш и вызывать их отдельным цельным звуком аккорда при нажатии соответствующих клавиш, увеличивая тем самым звуковой порог до 4-х аккордов а не нот.
DNAlchemist
Dec 9 2011, 06:13
Все интервалы, трезвучия, септаккорды и аккорды от каждой ноты?

Представляю насколько это увеличит вес хака)
denis0k
Dec 9 2011, 07:33
Это попросту невозможно.
DNAlchemist
Dec 9 2011, 08:14
Ахах) появилась извращенная идея)
Написать установочник, который распакует все что нужно ( хаки, модуль ), и засунет в систему жучка, который будет ждать, пока запустится невервинтер, а потом сканировать DB, и если запуститься именно наш модуль, подгружаем в системку другую програмку, которая будет связана с DB, как и наш модуль. Персона садится за клавиши, в программа это узнает, и, собственно, генерит звук. Со всей клавиатуры. Через DB отправляем сыгранное обратно в игру, и рассылаем всем игрокам в дистанции 50 метров, и там такая же програмка все проигрывает, подрегулировав звук.
Правда на счет верности последнего пункта я сомневаюсь. задержка, все такое.
Кроме того, встраивание своей программы в систему может добавить так нехило возможностей редактору)
Ну и глюков, соответственно.
Эффекта... ну того эффекта для которого используют нвн - можно было бы имхо достичь хорошим треком навешаным на тригер, бутылкой пива и шоколадкой.. а так это "пианино" всеравно задротством будет.
denis0k
Dec 9 2011, 18:15
В лотро можно играть на музыкальных инструментах (там 24 ноты), и это очень круто и атмосферно, однажды в Бри играл целый ансамбль.
Насчёт извращённой идеи - не взлетит, 99% игроков не поставит на комп какой-то левый софт.
DNAlchemist
Dec 9 2011, 21:12
с ваулта все сливают и распаковывают экзешные архивы - и не парятся. Тут тоже самое будет.
Да и не думаю что люди будут настолько осторожничать.
Все таки человек, пишущий серьезный модуль, врядли будет пихать троянов туда.
denis0k
Dec 10 2011, 07:36
Ну многие люди до сих пор лазят по порносайтам и качают книги в ехе, нельзя на них ориентироваться.
Нужно разумно смотреть на вещи - у здоровых людей нвн не запущен круглые сутки, чтобы оправдать постоянную работу программы (которая работает как троян по сути), плюс 99,(9)% игроков всё равно не умеют играть на пианино, и им что одна нота, что тысяча - один фиг, в лучшем случае кузнечика потыкают через 2-3 ноты.
До кучи могу тебя разочаровать своим опытом игры на лютне в лотро - пинг всё портит. Даже при пинге в 50-80 и на оптоволокне с наикратчайшим трасертом до столицы (менее 10 узлов с учётом сверхбыстрых локальных) ноты вылетают не с теми интервалами, с какими ты нажимаешь клавиши. Причём каждая со своим. Причём у всех игроков на локации мелодия получится разная. Поэтому, кстати, аккорды через нажатие нескольких клавиш невозможны - они вылетают в рандомной последовательности. Да, это всё равно очень круто, но это не оправдывает создание сложной системы, которая всё равно не раскроет своего потенциала.
Добавил:
в лотро 8 нот на клавишах 1-8, плюс можно шифтом и контролом сделать диез или бемоль, на простой рингтон из цепочки звуков хватает с головой, лучше всё равно не сыграть даже мастеру из-за технических ограничений. Глубину можно дать несколькими инструментами (игроками), но для меня загадка их синхронизация, хоть я это вживую и видел. Видимо, это редкостное задротство, не иначе.
DNAlchemist
Dec 12 2011, 09:57
дело не в пианино, а в том, какие возможности открывает такой подход
Можно за каждую смерть персонажа удалять по одному системному файлу
kiruhs
Dec 12 2011, 10:08
Цитата(DNAlchemist @ Dec 12 2011, 08:57)

Можно за каждую смерть персонажа удалять по одному системному файлу biggrin.gif
Гы. Вот это точно пермосмерть. Умер - сносим клиент нафиг. Или по старинке формат С
Melisse
Dec 12 2011, 13:26
Лучше давать прямую команду процессору. Чтобы сгорал
denis0k
Dec 12 2011, 18:47
Клиенты ммо по схожему принципу и работают. У вов, например, запилен сканер памяти, и при подозрении на какие-нить хаки у тебя либо клиент не запустится, либо акк заблочится (для разблокировки письмо или смс придёт).
В нвн имхо неактуально. Люди не любят, когда что-то делают без их ведома, поэтому выберут модуль без клиента с сюрпризами. Отличие от ммо тут в том, что, во-первых, с ммо нет выбора (сервера одинаковые, в отличие от нвн), во-вторых, крупная коммерческая фирма не будет рисковать деньгами и репутацией и запихивать в клиент что-то нехорошее (в отличие от нвн).
DarkLord
Jan 1 2012, 20:40
Не могу создать новую тему т.к. заново зарегился, потеряв пароль-> пишу сюда хотя вопрос по сути не тулсетовский...
Граждане, если кто-то тут ещё есть живой, ответьте пожалуйста...!
Я смутно что-то так помню, что, когда я активно занимался НВН1, лет 5 назад, у меня был такой файлик для 3d max, в котором была некая обобщённая, серая моделька персонажа-гуманоида в виде линкованных друг с другом отдельных мешей (без костей, только меши, если ещё кто-то помнит как были сделаны модели персонажей и кричеров в нвн1 до HOtU), и на этой фигурке были повешены все-все-все анимации, которые встречаются в игре, включая ходьбу, бег, махи мечом, стрельбу из лука и арбалета, ...
других подробностей я за давностью лет не помню, с тех пор сменил с десяток винтов, т.ч. найти в архивах не вариант 200%, помню что выцепил её откуда-то из потрошков игры и импортировал плагином...
гугловна с яндексихой молчат как старые партизанки на все запросы, которые я сумел придумать, или выдают какую-то невообразимую хрень
так вот, ни у кого не завалялось этого файлика ?! был бы ПРЕблагодарен т.к. сейчас как раз возникла надобность в чём-то подобном.
(желательно не mdl, а уже в максовском формате чтобы не искать ещё и 4ю версию Макса с нвновским плагином под неё специально чтобы перегнать в нормальный формат)
Заранее СПАСИБО !
DarkLord
Jan 2 2012, 19:17
Насколько я помню, назывался он a_ba.MDL
Ilerien
Jan 2 2012, 22:26
Так, NWN Explorer в руки и вперёд, самая последняя версия этого файлика, насколько я помню, живёт в data/xp2patch.bif.
DarkLord
Jan 2 2012, 22:37
Ну это-то всегда, но это надо всё искать, качать. А может завалялось у кого )
denis0k
Jan 2 2012, 22:58
Нвн1 с софтом для копания есть у десятка человек, из которых на форуме присутствует только два-три

Тем более, они всё равно тебе дадут ту же mdl-ку, для конверта которой опять же придётся искать "4й макс с плагином"

Так что лучше сам - быстро и действенно. Посмотри на
волте (кастомные) анимации, мб там есть.
DarkLord
Jan 3 2012, 07:43
Ясн ) ну я просто, как вариант - НВН и макс уже в торренте...
Оххх в общем целый квест оказался )))
в общем как я это сделал ))) если кому ещё понадобится и он сюда зайдёт...
для начала... саму игру качать не надо (я уже выкачал...) - модельки с базовой анимацией есть в комплекте программы NWN Model Viewer в т.ч. и a_ba...
далее старые максы не идут под 7ркой... и под ХР на старой машине тоже не пошли, во всяком случае те дистрибутивы, что нашёл...
поэтому скачал с сайта самих дискритов бесплатную прогу GMAX это та же МАХ 4-5 по сути в облегчённом варианте... и с НВ Ваулта - плагин под неё (очень толковый)
http://nwvault.ign.com/View.php?view=other.Detail&id=626одна только поправочка - в a_ba нужных мне анимаций (ходьба бег и т.д.) не оказалось, они в a_ba_non_combat.mdl но это уже детали
Melisse
Jan 3 2012, 10:58
Вот этот плагин подходит и для 8 и для 9 версии макса. Так что не нужно устанавливать 4 макс
Вот ЭТО - последней версии NWN Explorer он открывает нормально версию NWN 1.69 + можно выбрать в каком виде вытаскивать контент (некоорые модельки по хитрому закомпелены и не читаются их надо перекомпилировать, так что ли) и кстати адекватно открывает ддс
DarkLord
Jan 3 2012, 21:04
8-9 тоже раритеты те ещё и не факт что пойдут под 7ркой ) спасибо за ссылки, но я уже заставил всё пахать с Gmax, которую кстати могу порекомендовать именно для игрового лоу поли моделлирования
т.б. мне надо было только анимки выцепить, ну и часть тайлсетов, чтобы вбить в другой движок - подготовка моделей и экспорт будут из 2012й максы
Melisse
Jan 4 2012, 00:00
А мне что-то 2012 не полюбился, вот 9 + vray = счастье

Мне кажется автодеск как с автокадами, так и с максом только более геморнее, больше и тормознее...хотя ничего плохого про автокад 2010 не скажу, но спрашивается ЗАЧЕМ ОН БЫЛ НУЖЕН?

Или это как с майкрософт windows, большой штат программистов хочет кушать)
DarkLord
Jan 4 2012, 03:05
Да, именно так

более того, смотрю 12ю максу, поворот объекта - всегда были окружности, за которые вращать, я всегда считал это фичей максы и фичей очень удачной... и вдруг - приплыли: теперь надо дёргать за оси

(может конечно оно настраивается, пока не пробовал)
Здравствуйте.
У меня в тулсете при редактирований какого нибудь персонажа выскакивает ошибка
Скриншотправда после этого если нажать "ОК", все будет нормально
И еще все монстры или неписи, которых я ставлю в свой модуль, не появляются при игре.
Подскажите как лечить пожалуйста.
На всяк. случай:
Нвн золотое издание версий 1.69
Система Windows XP SP3
Заранее спасибо.
Ilerien
Jan 4 2012, 22:20
Поставить dialog.tlk от 1.69.
Русскую версию (правда, я бы советовал английскую)
отсюда (переименовать в dialog.tlk и бросить в корень игры).
Цитата(Ilerien @ Jan 4 2012, 23:20)

Поставить dialog.tlk от 1.69.
Русскую версию (правда, я бы советовал английскую)
отсюда (переименовать в dialog.tlk и бросить в корень игры).
Всё заработало, спасибо.
Syntaxys
Jan 7 2012, 11:52
Помогите пожалуйста разобраться с глобальными переменными.
Если я задам в скрипте onModuleLoad глобальную переменную, например:
Код
int number_red_PC = 0;
Как мне её изменить из другого скрипта?
Ilerien
Jan 7 2012, 12:33
Цитата
Как мне её изменить из другого скрипта?
Никак. Область видимости глобальной переменной ограничена скриптом, в котором она определена (как в данном случае), либо, в случае библиотеки, теми скриптами, которые используют эту библиотеку. В любом случае, глобальная переменная инициализируется каждый раз при запуске скрипта, который её использует, так что "глобальной" в смысле возможности использования отовсюду она не является. Честно говоря, глобальные переменные лучше вообще не использовать - у меня был случай, когда глобальная переменная стала причиной бага, на поиск которого я потратил несколько часов.
Единственный правильный путь сохранить информацию для использования в другом скрипте - "локальные" переменные, которые локальные не потому, что живут в пределах одной функции, а потому, что локализованы на объекте. За работу с ними отвечают функции (Get|Set|Delete)Local*().
Syntaxys
Jan 7 2012, 13:26
Благодарю за ответ, сей вопрос понял. Ещё хотелось бы узнать, существует ли перевод лексикона и какие либо способы связи модуля с базой данных?
Ilerien
Jan 7 2012, 13:40
Частичный перевод лексикона есть где-то на wrg.ru. Насколько я помню, перевода самой нужной части ака комментарии к функциям там нет.
Способ связи с базой данных есть -
NWNX и плагин
ODBC.
Syntaxys
Jan 7 2012, 16:49
Ещё раз благодарю.
Syntaxys
Jan 8 2012, 09:02
Новый вопрос:
Код
object GetFirstPC();
Возвращает первого игрока из списка игроков. Если модуль для одного игрока всё понятно. Если играет несколько игроков, как быть в таком случае?
Код
void main()
{
object oPC = GetFirstPC();
object oArea = GetArea(OBJECT_SELF);
vector vPosition = Vector(20.0, 20.0, 0.0);
float fAngle = 90.0;
location locTarget = Location(oArea, vPosition, fAngle);
AssignCommand(oPC, JumpToLocation(locTarget));
}
Talarasha
Jan 8 2012, 09:20
Смотря для чего...
Neverwinter Script
object oPC = GetFirstPC();
while(GetIsObjectValid(oPC))
{
//:: Действия над чаром
[...]
oPC = GetNextPC();
}
Т.е. так как-то:
Neverwinter Script
void main()
{
object oArea = GetArea(OBJECT_SELF);
vector vPosition = Vector(20.0, 20.0, 0.0);
float fAngle = 90.0;
location locTarget = Location(oArea, vPosition, fAngle);
object oPC = GetFirstPC();
while(GetIsObjectValid(oPC))
{
AssignCommand(oPC, JumpToLocation(locTarget));
oPC = GetNextPC();
}
}
Syntaxys
Jan 8 2012, 09:51
Цитата(Talarasha @ Jan 8 2012, 09:20)

Т.е. так как-то:
Neverwinter Script
void main()
{
object oArea = GetArea(OBJECT_SELF);
vector vPosition = Vector(20.0, 20.0, 0.0);
float fAngle = 90.0;
location locTarget = Location(oArea, vPosition, fAngle);
object oPC = GetFirstPC();
while(GetIsObjectValid(oPC))
{
AssignCommand(oPC, JumpToLocation(locTarget));
oPC = GetNextPC();
}
}
Тут получается что все игроки из списка будут переброшены.
Суть такая:
При загрузке локации выполняется скрипт.
Если игрок, вошедший в локацию оказался четным ( не по списку, а четным по заходам в локацию), то он перенаправляется в локацию №1.
Если нечетный, то соответственно в локацию №2.
Поэтому в скрипте object oPC должен быть непосредственно вошедший игрок.
Цитата(Syntaxys @ Jan 8 2012, 10:51)

При загрузке локации выполняется скрипт.
Если игрок, вошедший в локацию оказался четным ( не по списку, а четным по заходам в локацию), то он перенаправляется в локацию №1.
Если нечетный, то соответственно в локацию №2.
Neverwinter Script
object GetEnteringObject()
Syntaxys
Jan 8 2012, 10:25
greye, то что нужно. Большое спасибо =)
Flaristan
Jan 8 2012, 15:14
Цитата(Syntaxys @ Jan 8 2012, 11:25)

то что нужно
Рекомендую - для написания тривиальных эвентов и в качестве удобного пособия примеров для изучения NWN-скриптинга.
P.S.: А если с инглишем не оч – например можно использовать хотя бы
это.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.