Talarasha
Apr 11 2012, 23:33
Цитата
Так скрипты тут не при чем
Смысл в том, что получившийся объект плейсебл ничем не напоминает.
Цитата
По поводу ползаний НПС – видел такое только на шардах, видимо это действие кастомного AI, потому что при работе с модулем у меня НПС ведут себя строго так как прописано в их скриптах (с учетом влияния фракций, репутации и т.д. конечно).
Ползанье от дружественной фракции это движковая фича. Если есть пример обхода, то с удовольствием посмотрб. В виде тестового модуля.
Цитата
На самом деле в большинстве скриптов просто стоят проверки
На самом деле, неть. Можешь открыть станартные скрипты и пройтись по ним от корня по всем вложенным инклюдам. Проверки, касающиеся plot-флага, встречаются только два раза в Talent spell/melee функциях.
Ilerien
Apr 11 2012, 23:50
Цитата(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
Apr 11 2012, 23:53
Цитата
Ещё одним костылём замораживается анимация движения существа, так что статую вполне можно изобразить.
Это я знаю, но мне не для статуй.
Цитата
Хм?
Не заметил. Я стандартным набором просто обычно пользуюсь (nw_c2_default*).
Ilerien
Apr 11 2012, 23:54
Ну, начиная с HotU, эти скрипты по дефолту ставятся в слоты новосозданному неписю в тулсете.
Talarasha
Apr 12 2012, 00:10
Да, я знаю, мне просто как правило не нужны расширения от дополнений в скриптах, поэтому я новых НПС делаю на основе прегенеренных шаблонов со стандартным набором.
Я тогда неправильно указал в своем первом посте, что plot-флаг отменяет самозащиту. Я сейчас не могу с уверенностью сказать, почему так происходит, но сомневаюсь, что это чисто скриптовое решение, т.к.:
Чистый НПС с plot-флагом не защищается
Чистый НПС без plot-флага защищается
Скриптованный nw_c2_* НПС защищается в обоих случаях
Скриптованный x2_* НПС защищается только без флага
Надо будет глянуть, почему так. Ну т.е. понятно, что x2_* не защищается из-за процитированной проверки, но непонятно тогда, почему чистый НПС не требует такой же.
Ilerien
Apr 12 2012, 00:27
Возможно, существует заглушка в виде автоатаки, если скрипт в слоте пуст. В коде заглушки вполне может быть и проверка флага. Лень ковырять в IDA.

Ради интереса можно поставить игроку плотфлаг и посмотреть, будет ли автоатака.
Цитата(Ilerien @ Apr 12 2012, 07:28)

Шкуроносов в проверялочке точно нет. Может, там двойные кавычки были или что-то в этом роде?Это полезно, если хочется построить из неписей многоагентную систему "по науке".

Не могу быть на сто процентов уверенным, но мне почему-то кажется, что прироста производительности по сравнению с простым ExecuteScript() здесь не будет.
Ну если в модуле порядка 100500 наименований скриптов
denis0k
Apr 12 2012, 07:27
Цитата
Ползанье от дружественной фракции это движковая фича. Если есть пример обхода, то с удовольствием посмотрб. В виде тестового модуля.
Нафига?

Чтобы приведённый доминейтом или раззадориванием моб намертво закрывал проход? Хотя вряд ли это остановит старпёра - умельцы способны пролазить даже сквозь закрытые двери и глухие нагромождения плейсов - тоже движковая фича
Talarasha
Apr 12 2012, 09:23
Я понимаю, что эта фича появилась не по велению левой пятки программиста, а по необходимости, но мне не нравится, что мои НПС от пинков персонажа скачут по всей локации. Это не дело. Могли бы сделать ее и отключаемой для отдельных НПС.
Flaristan
Apr 12 2012, 12:23
Цитата(denis0k @ Apr 11 2012, 14:50)

Созданное вручную. Там есть функция посылки события по номеру.
В общем походу что-то вроде продвинутого «ExecuteScript» видимо. (хотя что-то сдается мне, что это рычажок от тулсетовского мастера сюжета)
Цитата(Talarasha @ Apr 11 2012, 23:33)

Смысл в том, что получившийся объект плейсебл ничем не напоминает.
Ползанье от дружественной фракции это движковая фича. Если есть пример обхода, то с удовольствием посмотрб. В виде тестового модуля.
Он бы напоминал, просто дело в том, что зафиксированная на НПС агрессия в НВН автоматически изменяет репутацию агрессора в глазах НПС, а атаки недружественного существа заставляют атаковать в ответ.
Плот флаг не дает совершить агрессию на НПС => репутация агрессора в его глазах измениться не может, и это не вызывает ответную атаку. Однако если скриптами НПС заставить атаковать в ответ – он будет атаковать.
Может конечно дело в том, что я моделю в 1.67 версии а использую под 1.69, но если это фича движка - по идее тут должно быть без разницы. Но дружественные НПС у меня стоят на месте при виде ПС.
P.S.: А временный «катсцен иммобилайз» на «онперсепшн» неписям проблему эту не решает?
Talarasha
Apr 12 2012, 15:45
Цитата
Но дружественные НПС у меня стоят на месте при виде ПС.
При виде ПС они и не должны реагировать. Они отползают, когда ты к ним подходишь. Освобождают дорогу, типа. Слабовольные неудачники, hold the damned line...
Цитата
А временный «катсцен иммобилайз» на «онперсепшн» неписям проблему эту не решает?
Очень может быть, что постоянный катсцен иммобилайз именно то, что мне нужно.
Melisse
Apr 12 2012, 17:15
Цитата
При виде ПС они и не должны реагировать. Они отползают, когда ты к ним подходишь. Освобождают дорогу, типа. Слабовольные неудачники, hold the damned line...
Попробуй поставить им в параметрах скорости, в свойствах, без движения
Anakondar
Apr 12 2012, 18:15
Цитата(Melisse @ Apr 12 2012, 18:15)

Попробуй поставить им в параметрах скорости, в свойствах, без движения
Это точно не помогает. Я раньше делал кукол для битья иммобильными, но пятифутовый шаг при атаке они могут делать, равно как и быть сдвинутыми плечом игрока
Flaristan
Apr 17 2012, 14:53
В настройках редактора журнала в тулсете есть такой пункт «Очередности» - это что за очередности, порядок отображения тем в окне журнала (и если так, то получается самые актуальные в самом низу журнала), или я что-то путаю?
gennady
Apr 17 2012, 16:09
«Очередности» - это сортировка квестов по важности. самые важные вверху
Flaristan
Apr 17 2012, 19:45
Походу это просто пометка для фильтра записей в журнале, если стоит другой фильтр (а по умолчанию там по дате) – эта пометка ничего не дает.
Melisse
Apr 17 2012, 20:29
Flaristan
Apr 18 2012, 02:40
Спасибо – подшил еще один мануал себе в коллекцию.

P.S.: Тулсет продолжает радовать своей необъятностью освоения. Остается загадкой как биовари умудрились на таком сказочном движке сделать такие унылые компании.
denis0k
Apr 18 2012, 07:31
Они и не старались вообще-то

Тулсет и сервер были их целью, кампания - лишь демо-версия возможностей оных.
Melisse
Apr 18 2012, 18:54
Когда возвращается игрок функцией
Neverwinter Script
object oPlayer = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC, OBJECT_SELF, 1);
с последующей проверкой на валидность
Neverwinter Script
if(GetIsObjectValid(oPlayer))
почему не возвращается игрок мертвый? =) что за лажа?)
Почему он считается не валидным?
Как проверить наличие игрока в любом его состоянии - мертвым или живым?
denis0k
Apr 18 2012, 20:41
В качестве второго критерия надо добавить труп (is_alive false кажется).
Flaristan
Apr 19 2012, 13:17
Причем там еще чехарда с состояниями трупа наблюдается: например функция GetIsDead считает трупом ПС в состоянии блидинга (поэтому чтоб выделить состояние «клинической» смерти приходилось еще считать ХП).
Melisse
Apr 19 2012, 20:05
еще один непонятный прикол)))
Имя звукового объекта нельзя GetName() и ни в лог ни в SendMessage
Про переменные на звуковом объекте непонятно - когда ставишь число, почему-то возвращает 0, а когда TRUE - читает =)
Flaristan
Apr 19 2012, 21:18
Звуки в тулсете к сожалению не являются полноценными объектами и похоже половина функций с ними урезана (я когда-то так и не нашел например способа создать звуковой объект из палитры).
Иногда (когда удается найти подходящий звуковой файл для этого из стандартного набора) проще использовать не звуковой объект, а обычный (например невидимый) объект-плейсбл оснащенный проигрывающимся на нем звуком. Или просто заставлять проигрывать командами 2D-файлы на ПС.
Melisse
Apr 19 2012, 23:33
denis0k рассказал как-то про шэйдеры для нвн1, оказывается есть такая тема
вот и
вотМожет и не ахти, но довольно забавно) Тема довольно старая, конечно...






Для текстур есть возможность сделать бамп, я так понимаю нужно просто карту нормалей делать в максе
denis0k
Apr 20 2012, 07:40
Не увидел обещанного параллакс маппинга

Везде одни пост-эффекты типа блума.
Melisse
Apr 20 2012, 09:37
Кое-где там бамп на текстуры наложен.
Кроме того, это бета =) Возможно кому-то захочеться сделать лучше...
Я так понимаю там не нужно писать код шейдера, просто можно создать карту нормалей и она будет отображаться "выпуклой"
kiruhs
Apr 20 2012, 15:17
Вот такой вопрос... Возможно ли как-то изменить обязательное количество доменов у клеры? Т.е. чтобы игроку, при создании чара, нужно было выбирать не 2 домена, а один. Или может есть идеи как это красиво обойти? Например, что будет если уже после создания чара один из фитов, который даёт домен, убить у игрока? Механически у него останется только один домен?
Melisse
Apr 20 2012, 15:50
Можно убить. Для этого нужно иметь кастомный ELC и нвнх.
denis0k
Apr 20 2012, 17:01
Цитата
Кроме того, это бета =) Возможно кому-то захочеться сделать лучше...
Угу, так со всем в опенсорсе

"Возможно кому-то захочется сделать лучше"
Ilerien
Apr 20 2012, 18:21
Цитата(kiruhs @ Apr 20 2012, 15:17)

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

Наверно проще сделать автобан персонажа-клерика не имеющего какого-нибудь установленного стилизованного (например для характера персонажа: упорядоченно-добрым на лечение, хаотично-злым на проклялки и т.д.) домена среди двух выбранных, и прописать это в правилах.
Я же писал. Надо что бы красиво)
Ilerien подсказал в каком направлении думать. Сделаем пустышку и в зависимости от бога, в соответствующем поле, будем выдавать нужный домен + пустышку
Flaristan
Apr 22 2012, 13:54
Ну, просто ИМХО пустышка как раз и некрасиво – на мой взгляд лучше какой-нибудь бесполезный стилизованный домен, чем «выколотую бесконечность».
Anakondar
Apr 27 2012, 17:03
Удалил код. Нашел ошибку. Занятное свойство.
Оказывается для левелдрейна
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
Apr 27 2012, 19:44
Не бывает такого. Эти константы определены в nwscript.nss и соответствуют номерам строк в iprp_onhitcost.2da.
Anakondar
Apr 27 2012, 20:20
Задай
AddItemProperty (DURATION_TYPE_PERMANENT, ItemPropertyOnHitProps (IP_CONST_ONHIT_LEVELDRAIN, IP_CONST_ONHIT_SAVEDC_16), oWeapon);
а потом посмотри на предмет. У него будет свойство LEVELDRAIN: SAVEDC_14
Я тоже не ожидал от Bioware таких подстав.
Melisse
Apr 27 2012, 20:42
Расскажу еще про одну. Можно насадить скриптом только одно свойство онхитспелл. Второе не вешается, а если сделать на предмете в тулсете такое свойство, то через скрипт повеситься еще одно без проблем. Особенности движка.
Ilerien
Apr 27 2012, 21:28
Только работать будет ровно одно свойство, которое наложено раньше. Или позже, не помню

Цитата
Задай
AddItemProperty (DURATION_TYPE_PERMANENT, ItemPropertyOnHitProps (IP_CONST_ONHIT_LEVELDRAIN, IP_CONST_ONHIT_SAVEDC_16), oWeapon);
а потом посмотри на предмет. У него будет свойство LEVELDRAIN: SAVEDC_14
Так константа не виновата, это баг функции, конструирующей это конкретное свойство. Но таки да, полезно знать.
denis0k
Apr 28 2012, 00:06
Несложно написать кастомный онхит, который через одно свойство реализует любые возможные эффекты

И можно будет хоть по 10 штук сразу вешать.
Anakondar
May 3 2012, 10:59
Кстати, не напомните какой скрипт сет у асошиэйтов? Просто у задоминированных существ перестаёт выполняться выставленный в тулсете хитбит, а это не хорошо.
Ilerien
May 3 2012, 18:35
nw_ch_ac*
Ollone5
May 8 2012, 08:24
Проблема в том, что хакпаки у меня как то плохо работают

. Скачал хак с плэйсами окон, но там из всех моделей была доступна одна рама и свет из окна. С другими то же самое, часть хака неработает
Если нужны именно плэйсовые окна, то в 1.69 HotU (может и раньше) вполне годные есть, плюс всякие там балкончики, вывески и иже с ними. Олсо, сравни placeables.2da из своего нвна и из хака, вдруг где друг друга перекрывают.
Можно ли отловить изучение свитков визардом, успешное использование "защитной уловки", и если да какой дефолтный скрипт за это отвечает? или это зашито в двиг?
Ilerien
May 9 2012, 00:25
Зашито.
Цитата(Ilerien @ May 9 2012, 08:25)

Зашито.
А НВНХ?
denis0k
May 11 2012, 07:16
Ну если кто-то напишет плагин
Ilerien
May 11 2012, 07:16
Только самому руками писать, сейчас там нет таких эвентов.
Virake
Jun 27 2012, 13:44
честно говоря, не знал, куда запостить вопрос. недавно невер начал выдавать очень странные глюки - разноцветные тени (как будто гг под кайфом). странно также то, что глюки видны только под определенными углами обзора камеры (т.е. если развернуть в противоположную сторону - все ок). если отключить тени от окружения - глюк пропадает вместе с тенями.
скрин:
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.