Помощь - Поиск - Пользователи - Календарь
Полная версия: ОДИНОЧНЫЙ ВОПРОС
Город Мастеров > РЕДАКТОРЫ > Neverwinter Nights Aurora Toolset
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68
Talarasha
Цитата
Так скрипты тут не при чем

Смысл в том, что получившийся объект плейсебл ничем не напоминает.
Цитата
По поводу ползаний НПС – видел такое только на шардах, видимо это действие кастомного AI, потому что при работе с модулем у меня НПС ведут себя строго так как прописано в их скриптах (с учетом влияния фракций, репутации и т.д. конечно).

Ползанье от дружественной фракции это движковая фича. Если есть пример обхода, то с удовольствием посмотрб. В виде тестового модуля.

Цитата
На самом деле в большинстве скриптов просто стоят проверки

На самом деле, неть. Можешь открыть станартные скрипты и пройтись по ним от корня по всем вложенным инклюдам. Проверки, касающиеся plot-флага, встречаются только два раза в Talent spell/melee функциях.
Ilerien
Цитата(Talarasha @ Apr 11 2012, 23:33) *
Смысл в том, что получившийся объект плейсебл ничем не напоминает.
Ещё одним костылём замораживается анимация движения существа, так что статую вполне можно изобразить.
Цитата
На самом деле, неть. Можешь открыть станартные скрипты и пройтись по ним от корня по всем вложенным инклюдам. Проверки, касающиеся plot-флага, встречаются только два раза в Talent spell/melee функциях.
Хм?
x2_def_attacked, x2_def_ondamage, x2_def_spellcast - скрипты, отвечающие за обработку враждебных неписю действий:
Neverwinter Script
if (GetPlotFlag(OBJECT_SELF))
    {
        return;
    }
Talarasha
Цитата
Ещё одним костылём замораживается анимация движения существа, так что статую вполне можно изобразить.

Это я знаю, но мне не для статуй.

Цитата
Хм?

Не заметил. Я стандартным набором просто обычно пользуюсь (nw_c2_default*).
Ilerien
Ну, начиная с HotU, эти скрипты по дефолту ставятся в слоты новосозданному неписю в тулсете. smile.gif
Talarasha
Да, я знаю, мне просто как правило не нужны расширения от дополнений в скриптах, поэтому я новых НПС делаю на основе прегенеренных шаблонов со стандартным набором.

Я тогда неправильно указал в своем первом посте, что plot-флаг отменяет самозащиту. Я сейчас не могу с уверенностью сказать, почему так происходит, но сомневаюсь, что это чисто скриптовое решение, т.к.:
Чистый НПС с plot-флагом не защищается
Чистый НПС без plot-флага защищается
Скриптованный nw_c2_* НПС защищается в обоих случаях
Скриптованный x2_* НПС защищается только без флага
Надо будет глянуть, почему так. Ну т.е. понятно, что x2_* не защищается из-за процитированной проверки, но непонятно тогда, почему чистый НПС не требует такой же.
Ilerien
Возможно, существует заглушка в виде автоатаки, если скрипт в слоте пуст. В коде заглушки вполне может быть и проверка флага. Лень ковырять в IDA. smile.gif
Ради интереса можно поставить игроку плотфлаг и посмотреть, будет ли автоатака.
PaiNt
Цитата(Ilerien @ Apr 12 2012, 07:28) *
Шкуроносов в проверялочке точно нет. Может, там двойные кавычки были или что-то в этом роде?Это полезно, если хочется построить из неписей многоагентную систему "по науке". smile.gif
Не могу быть на сто процентов уверенным, но мне почему-то кажется, что прироста производительности по сравнению с простым ExecuteScript() здесь не будет.

Ну если в модуле порядка 100500 наименований скриптов smile.gif
denis0k
Цитата
Ползанье от дружественной фракции это движковая фича. Если есть пример обхода, то с удовольствием посмотрб. В виде тестового модуля.
Нафига? smile.gif Чтобы приведённый доминейтом или раззадориванием моб намертво закрывал проход? Хотя вряд ли это остановит старпёра - умельцы способны пролазить даже сквозь закрытые двери и глухие нагромождения плейсов - тоже движковая фича smile.gif
Talarasha
Я понимаю, что эта фича появилась не по велению левой пятки программиста, а по необходимости, но мне не нравится, что мои НПС от пинков персонажа скачут по всей локации. Это не дело. Могли бы сделать ее и отключаемой для отдельных НПС.
Flaristan
Цитата(denis0k @ Apr 11 2012, 14:50) *
Созданное вручную. Там есть функция посылки события по номеру.
В общем походу что-то вроде продвинутого «ExecuteScript» видимо. (хотя что-то сдается мне, что это рычажок от тулсетовского мастера сюжета)
Цитата(Talarasha @ Apr 11 2012, 23:33) *
Смысл в том, что получившийся объект плейсебл ничем не напоминает.

Ползанье от дружественной фракции это движковая фича. Если есть пример обхода, то с удовольствием посмотрб. В виде тестового модуля.
Он бы напоминал, просто дело в том, что зафиксированная на НПС агрессия в НВН автоматически изменяет репутацию агрессора в глазах НПС, а атаки недружественного существа заставляют атаковать в ответ.
Плот флаг не дает совершить агрессию на НПС => репутация агрессора в его глазах измениться не может, и это не вызывает ответную атаку. Однако если скриптами НПС заставить атаковать в ответ – он будет атаковать.

Может конечно дело в том, что я моделю в 1.67 версии а использую под 1.69, но если это фича движка - по идее тут должно быть без разницы. Но дружественные НПС у меня стоят на месте при виде ПС.

P.S.: А временный «катсцен иммобилайз» на «онперсепшн» неписям проблему эту не решает?
Talarasha

Цитата
Но дружественные НПС у меня стоят на месте при виде ПС.

При виде ПС они и не должны реагировать. Они отползают, когда ты к ним подходишь. Освобождают дорогу, типа. Слабовольные неудачники, hold the damned line...

Цитата
А временный «катсцен иммобилайз» на «онперсепшн» неписям проблему эту не решает?

Очень может быть, что постоянный катсцен иммобилайз именно то, что мне нужно.
Melisse
Цитата
При виде ПС они и не должны реагировать. Они отползают, когда ты к ним подходишь. Освобождают дорогу, типа. Слабовольные неудачники, hold the damned line...

Попробуй поставить им в параметрах скорости, в свойствах, без движения
Anakondar
Цитата(Melisse @ Apr 12 2012, 18:15) *
Попробуй поставить им в параметрах скорости, в свойствах, без движения

Это точно не помогает. Я раньше делал кукол для битья иммобильными, но пятифутовый шаг при атаке они могут делать, равно как и быть сдвинутыми плечом игрока
Flaristan
В настройках редактора журнала в тулсете есть такой пункт «Очередности» - это что за очередности, порядок отображения тем в окне журнала (и если так, то получается самые актуальные в самом низу журнала), или я что-то путаю?
gennady
«Очередности» - это сортировка квестов по важности. самые важные вверху
Flaristan
Походу это просто пометка для фильтра записей в журнале, если стоит другой фильтр (а по умолчанию там по дате) – эта пометка ничего не дает.
Melisse
вот про журнал, кстати из подписи gennady
http://remmgen.narod.ru/tredzurnal.html

вот тут еще:
http://www.city-of-masters.ru/forums/index...?showtopic=1752
Flaristan
Спасибо – подшил еще один мануал себе в коллекцию. smile.gif

P.S.: Тулсет продолжает радовать своей необъятностью освоения. Остается загадкой как биовари умудрились на таком сказочном движке сделать такие унылые компании.
denis0k
Они и не старались вообще-то smile.gif Тулсет и сервер были их целью, кампания - лишь демо-версия возможностей оных.
Melisse
Когда возвращается игрок функцией
Neverwinter Script
object oPlayer = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC, OBJECT_SELF, 1);

с последующей проверкой на валидность
Neverwinter Script
if(GetIsObjectValid(oPlayer))

почему не возвращается игрок мертвый? =) что за лажа?)
Почему он считается не валидным?
Как проверить наличие игрока в любом его состоянии - мертвым или живым?
denis0k
В качестве второго критерия надо добавить труп (is_alive false кажется).
Flaristan
Причем там еще чехарда с состояниями трупа наблюдается: например функция GetIsDead считает трупом ПС в состоянии блидинга (поэтому чтоб выделить состояние «клинической» смерти приходилось еще считать ХП).
Melisse
еще один непонятный прикол)))
Имя звукового объекта нельзя GetName() и ни в лог ни в SendMessage
Про переменные на звуковом объекте непонятно - когда ставишь число, почему-то возвращает 0, а когда TRUE - читает =)
Flaristan
Звуки в тулсете к сожалению не являются полноценными объектами и похоже половина функций с ними урезана (я когда-то так и не нашел например способа создать звуковой объект из палитры).
Иногда (когда удается найти подходящий звуковой файл для этого из стандартного набора) проще использовать не звуковой объект, а обычный (например невидимый) объект-плейсбл оснащенный проигрывающимся на нем звуком. Или просто заставлять проигрывать командами 2D-файлы на ПС.
Melisse
denis0k рассказал как-то про шэйдеры для нвн1, оказывается есть такая тема вот и вот
Может и не ахти, но довольно забавно) Тема довольно старая, конечно...













Для текстур есть возможность сделать бамп, я так понимаю нужно просто карту нормалей делать в максе
denis0k
Не увидел обещанного параллакс маппинга smile.gif Везде одни пост-эффекты типа блума.
Melisse
Кое-где там бамп на текстуры наложен.
Кроме того, это бета =) Возможно кому-то захочеться сделать лучше...
Я так понимаю там не нужно писать код шейдера, просто можно создать карту нормалей и она будет отображаться "выпуклой"
kiruhs
Вот такой вопрос... Возможно ли как-то изменить обязательное количество доменов у клеры? Т.е. чтобы игроку, при создании чара, нужно было выбирать не 2 домена, а один. Или может есть идеи как это красиво обойти? Например, что будет если уже после создания чара один из фитов, который даёт домен, убить у игрока? Механически у него останется только один домен?
Melisse
Можно убить. Для этого нужно иметь кастомный ELC и нвнх.
denis0k
Цитата
Кроме того, это бета =) Возможно кому-то захочеться сделать лучше...
Угу, так со всем в опенсорсе smile.gif "Возможно кому-то захочется сделать лучше" biggrin.gif
Ilerien
Цитата(kiruhs @ Apr 20 2012, 15:17) *
Вот такой вопрос... Возможно ли как-то изменить обязательное количество доменов у клеры? Т.е. чтобы игроку, при создании чара, нужно было выбирать не 2 домена, а один. Или может есть идеи как это красиво обойти? Например, что будет если уже после создания чара один из фитов, который даёт домен, убить у игрока? Механически у него останется только один домен?
Существующими плагинами - нельзя, убийство фита уберёт только Domain Power, но заклинания - не уберёт. К слову, кастомный ELC тут не нужен, потому что дефолтный не заботится об отсутствии полагающихся персонажу фитов, только о наличии лишних.
Думается мне, можно сделать кастомный домен, не дающий ровно ничего, и при первом заходе клерика на шард менять у него второй домен на этот кастомный. Пользовать при реализации работу с фитами и доменами из NWNX Funcs (всякие Add/RemoveFeat(), Get/SetClericDomain()).
Flaristan
Наверно проще сделать автобан персонажа-клерика не имеющего какого-нибудь установленного стилизованного (например для характера персонажа: упорядоченно-добрым на лечение, хаотично-злым на проклялки и т.д.) домена среди двух выбранных, и прописать это в правилах.
kiruhs
Цитата(Flaristan @ Apr 21 2012, 23:10) *
Наверно проще сделать автобан персонажа-клерика не имеющего какого-нибудь установленного стилизованного (например для характера персонажа: упорядоченно-добрым на лечение, хаотично-злым на проклялки и т.д.) домена среди двух выбранных, и прописать это в правилах.

Я же писал. Надо что бы красиво) Ilerien подсказал в каком направлении думать. Сделаем пустышку и в зависимости от бога, в соответствующем поле, будем выдавать нужный домен + пустышку
Flaristan
Ну, просто ИМХО пустышка как раз и некрасиво – на мой взгляд лучше какой-нибудь бесполезный стилизованный домен, чем «выколотую бесконечность».
Anakondar
Удалил код. Нашел ошибку. Занятное свойство.

Оказывается для левелдрейна

int IP_CONST_ONHIT_SAVEDC_14 = 1;
int IP_CONST_ONHIT_SAVEDC_16 = 2;
int IP_CONST_ONHIT_SAVEDC_18 = 3;
int IP_CONST_ONHIT_SAVEDC_20 = 4;
int IP_CONST_ONHIT_SAVEDC_22 = 5;
int IP_CONST_ONHIT_SAVEDC_24 = 6;
int IP_CONST_ONHIT_SAVEDC_26 = 7;

а для остальных

int IP_CONST_ONHIT_SAVEDC_14 = 0;
int IP_CONST_ONHIT_SAVEDC_16 = 1;
int IP_CONST_ONHIT_SAVEDC_18 = 2;
int IP_CONST_ONHIT_SAVEDC_20 = 3;
int IP_CONST_ONHIT_SAVEDC_22 = 4;
int IP_CONST_ONHIT_SAVEDC_24 = 5;
int IP_CONST_ONHIT_SAVEDC_26 = 6;

Ах, как странно
Ilerien
Не бывает такого. Эти константы определены в nwscript.nss и соответствуют номерам строк в iprp_onhitcost.2da.
Anakondar
Задай
AddItemProperty (DURATION_TYPE_PERMANENT, ItemPropertyOnHitProps (IP_CONST_ONHIT_LEVELDRAIN, IP_CONST_ONHIT_SAVEDC_16), oWeapon);
а потом посмотри на предмет. У него будет свойство LEVELDRAIN: SAVEDC_14

Я тоже не ожидал от Bioware таких подстав.
Melisse
Расскажу еще про одну. Можно насадить скриптом только одно свойство онхитспелл. Второе не вешается, а если сделать на предмете в тулсете такое свойство, то через скрипт повеситься еще одно без проблем. Особенности движка.
Ilerien
Только работать будет ровно одно свойство, которое наложено раньше. Или позже, не помню smile.gif
Цитата
Задай
AddItemProperty (DURATION_TYPE_PERMANENT, ItemPropertyOnHitProps (IP_CONST_ONHIT_LEVELDRAIN, IP_CONST_ONHIT_SAVEDC_16), oWeapon);
а потом посмотри на предмет. У него будет свойство LEVELDRAIN: SAVEDC_14
Так константа не виновата, это баг функции, конструирующей это конкретное свойство. Но таки да, полезно знать. smile.gif
denis0k
Несложно написать кастомный онхит, который через одно свойство реализует любые возможные эффекты smile.gif И можно будет хоть по 10 штук сразу вешать.
Anakondar
Кстати, не напомните какой скрипт сет у асошиэйтов? Просто у задоминированных существ перестаёт выполняться выставленный в тулсете хитбит, а это не хорошо.
Ilerien
nw_ch_ac*
Ollone5
Проблема в том, что хакпаки у меня как то плохо работают prankster2.gif . Скачал хак с плэйсами окон, но там из всех моделей была доступна одна рама и свет из окна. С другими то же самое, часть хака неработает vava.gif
wirTUS
Если нужны именно плэйсовые окна, то в 1.69 HotU (может и раньше) вполне годные есть, плюс всякие там балкончики, вывески и иже с ними. Олсо, сравни placeables.2da из своего нвна и из хака, вдруг где друг друга перекрывают.
PaiNt
Можно ли отловить изучение свитков визардом, успешное использование "защитной уловки", и если да какой дефолтный скрипт за это отвечает? или это зашито в двиг?
Ilerien
Зашито.
PaiNt
Цитата(Ilerien @ May 9 2012, 08:25) *
Зашито.

А НВНХ?
denis0k
Ну если кто-то напишет плагин smile.gif
Ilerien
Только самому руками писать, сейчас там нет таких эвентов.
Virake
честно говоря, не знал, куда запостить вопрос. недавно невер начал выдавать очень странные глюки - разноцветные тени (как будто гг под кайфом). странно также то, что глюки видны только под определенными углами обзора камеры (т.е. если развернуть в противоположную сторону - все ок). если отключить тени от окружения - глюк пропадает вместе с тенями.
скрин:
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Invision Power Board © 2001-2024 Invision Power Services, Inc.