Ogneslav
Dec 22 2008, 14:37
Может я ошибаюсь конечно, но помоему скриптом можно шкурку повесить и на место "укуса"??
Ilerien
Dec 22 2008, 21:43
Цитата
Получается, что вешать переменные на нее бессмысленно? (раз она уничтожается и дается по новой или, что то не так понял?)
Это надо подробнее смотреть скрипты биоварей, насколько я помню, шкурка эта, если есть в слоте, то не убивается. Я рекомендую просто локалку X3_NO_SHAPESHIFT_SPELL_CHECK на модуле выставить в 1. Если лошади в модуле не используются, то этого должно хватить

Цитата
Может я ошибаюсь конечно, но помоему скриптом можно шкурку повесить и на место "укуса"??
Не налезет.
Ogneslav
Dec 22 2008, 22:12
Цитата
Не налезет.
А если в 2da создать отдельный вид шкурки и в параметре слота указать ... ну вообщем я не помню какая это цифра, но "укус"

???
Ilerien
Dec 22 2008, 22:41
Да можно хоть саму шкурку изменить в 2да, чтобы налезала, только надо учесть, что итемы в этим слотах используются в качестве природного оружия существа. Сам никогда не пробовал этим заниматься, надо тестить
Ogneslav
Dec 23 2008, 19:17
Цитата
итемы в этим слотах используются в качестве природного оружия существа
В смысле свойства, которые будут вешаться через редактор будут такие-же как для "укуса"??
Если да, то это ненужная трата времени(
Deirel
Mar 21 2009, 21:05
Народ, никто не подбросит идею, как сделать расписание по часам для мобов? Я знаю, что эта тема уже поднималась, но найти не смог...
http://nwnmod.narod.ru/stat_anim_npc2.htmвместо рандомного выбора ActionSet будет функция, которая на основе времени и каких-либо еще параметров будет этот ActionSet выбирать. Собсна эта функция и будет расписанием.
совет: Если все действия выполняет на 1 локации - проблем нет. Если же нужно чтобы ночью ходил домой и тд - советую не заморачиваться с "честным" движением домой, ибо в последних версиях НВН этот механизм переработали и он стал какой-то кривой. Лучше этот эффект эмулировать, телепортируя домой нужных НПС, когда игрока нет на карте. Если игрок в этот момент дома у НПС, можно НПС кидать к двери, имитируя приход. Если же игрок в другом месте - смело кидай НПС куда нужно.
Deirel
Mar 22 2009, 11:44
Спасибо!=)
DNAlchemist
Oct 21 2011, 07:37
Забавная вещь, при использовании действия ActionMoveToObject, если персонаж начинает движение без присутствия игрока на локации, он не ищет путь от точки а к точке б, а идет... Оо... напролом. Потом застревает, судя по логам и минусовой координате по оси высоты в его векторе, к примеру, в тайле с деревом. Сначала хотел использовать проверку, есть ли игрок на локации, потом телепортировать NPC, вместо того, чтобы его двигать. Но потом решил просто модифицировать скрипт WalkToWaypoint. Не буду его выкладывать, по скольку модифицирован он для моих нужд
Так будет полезно знать, что если вы захотите, чтобы внезапно какой нить нписюшник, далеко от игрока, захотел сходить за пивом, нужно либо немножко поломать голову, либо сделать так, чтобы на его пути не было препятствий)
Flaristan
Oct 21 2011, 14:42
А ActionForceMoveToObject не спасает?
denis0k
Oct 21 2011, 16:32
Зачем что-то делать без игрока на локации? В этой ситуации все скрипты должны останавливаться, иначе это напрасная трата ресурсов и, при расширении модуля, кандидат на лаги. Либо запоминать позицию, либо сразу телепортировать, но без игрока аи должен быть выключен, ибо десяток таких "живых" локаций - и привет тормозам.
Melisse
Oct 21 2011, 16:45
Вирусман говорит что вырубается аи в локах, где нет игрока.
А, кстати, нпс и вправду плохо ищут путь, если в пределах экрана нет игрока, грубо говоря игрок на них не смотрит)
Мне кажется тут происходит глюк с тайлсетовской walkmesh и pwk у плэйсов, по идеи они должны накладыватсья и общитываться, где не проходимые, а на самом деле часто очень глючат.
DNAlchemist
Oct 21 2011, 18:21
Цитата(denis0k @ Oct 21 2011, 17:32)

Зачем что-то делать без игрока на локации? В этой ситуации все скрипты должны останавливаться, иначе это напрасная трата ресурсов и, при расширении модуля, кандидат на лаги. Либо запоминать позицию, либо сразу телепортировать, но без игрока аи должен быть выключен, ибо десяток таких "живых" локаций - и привет тормозам.
Конечно я проверил ForceMoveToObject.
Десяток таких локаций не тормозят - проверено. Тормозят неграмотно сделанные циклы, и прочая нечисть. Зачем что то делать? Мне нужно чтобы нпсюшник двигался, и относительно времени оказывался на определенной точке, а игрок может войти в любой момент.
Мне же не надо этот скрипт на всех вешать.
Я поэтому и выложил сюда во всякого рода фишки, так как этот баг показался мне занятным. Вектор выдает во время столкновения объекта с препятствием минусовую координату.
по оси z
Цитата(DNAlchemist @ Oct 21 2011, 19:21)

Мне нужно чтобы нпсюшник двигался, и относительно времени оказывался на определенной точке, а игрок может войти в любой момент.
Так и посчитай эту точку на входе игрока, не трогай непися в отсутствие человека.
denis0k
Oct 21 2011, 19:28
Цитата
Вирусман говорит что вырубается аи в локах, где нет игрока.
Там в скриптах стоит заглушка - если игроков нет, то сразу return. Но события-то типа перцепшена, хб и прочих всё равно срабатывают и запускают свои скрипты, хоть они сразу и выходят.
Цитата
Мне нужно чтобы нпсюшник двигался, и относительно времени оказывался на определенной точке, а игрок может войти в любой момент.
Поясняя мысль
greye, могу добавить, что для этого достаточно скорость умножить на время. Как в 5м классе

Более того, если пофилософствовать, тут по сути нпс Шрёдингера

Игрока в локе нет, а значит он не может однозначно утверждать, где он должен быть при его входе и будет ли вообще

Что как бы делает возможным вариант пихать их хоть рандомно, на общую картину не особо повлияет.
DNAlchemist
Oct 21 2011, 19:41
Поясняя мысль greye, могу добавить, что для этого достаточно скорость умножить на время.
Об этом тоже думал. А если координата попадет на, например, воду? Или нписюшник в доме застрянет?
Ну не, рандомно - это не наш метод)
В общем, вычисляю путь виртуально, если падает под землю - смещаю на соседний тайл и вытаскиваю. Сойдет -___-
Если падает при респауне*
denis0k
Oct 21 2011, 19:48
Если хочется так уж подробно смоделировать. В каждом доступном тайле на пути поставить по вейпоинту, пронумеровав их по порядку и примерно соблюдая дистанцию. Засечь, сколько времени нпс идёт между точками. Посчитать, сколько в локации не было игрока и при его заходе высчитать, сколько тайлов прошёл нпс и, стало быть, куда его кидать.
Цитата(DNAlchemist @ Oct 21 2011, 20:41)

Об этом тоже думал. А если координата попадет на, например, воду? Или нписюшник в доме застрянет?
Биовари были не глупыми: почти все операции с расположением объектов ищут свободное место в радиусе 20.0 (2 тайла) от точки. Конечно, не очень приятно, если постоянно будет проводиться такой поиск, если вблизи нет подходящих точек, но в среднем терпимо.
DNAlchemist
Oct 21 2011, 20:37
Цитата(denis0k @ Oct 21 2011, 20:48)

Если хочется так уж подробно смоделировать. В каждом доступном тайле на пути поставить по вейпоинту, пронумеровав их по порядку и примерно соблюдая дистанцию. Засечь, сколько времени нпс идёт между точками. Посчитать, сколько в локации не было игрока и при его заходе высчитать, сколько тайлов прошёл нпс и, стало быть, куда его кидать.
У меня то же самое по сути, только объектов меньше для этого нужно) высчитывается относительно скорости и времени путь, затем считаю локацию относительно последнего пройденного вейпоинта.
Все равно я этим биоварем не доверяю... вдруг баг всплывет. Двойная проверка не будет лишней)
Anakondar
Nov 29 2011, 23:52
У одного меня так работает или это известная фича? Нет ли в ней известных багов?
Для некоторых видов кравта использую "врЕменные" айтемы, созданные копиобджектом на инвалид локейшен, а затем этим же скриптом дестроятся. И не нужно придумывать каких-нибудь невидимых, недоступнтых или расположенных в скрытых областях контейнеров.
denis0k
Nov 30 2011, 07:32
Ну работает, значит работает

Просто лично мне не приходила в голову идея крафта, где надо применять временные итемы. Только при смене внешнего вида доспеха, но там для наглядности его всё равно надо было на персонаже держать, невидимых контейнеров а-ля фоллаут не было.
Melisse
Dec 10 2011, 22:41
Может быть, знакомая многим, но все же
string stext = "Я упала с самосвала\n";
+stext = "Тормозила\n";
+stext = "Головой\n";
Выглядеть будет визуально в чате или в описание вещи так:
Я упала с самосвала
Тормозила
Головой
т.е. \n - это перенос строки типа Enter при печати в блокноте
мне долго была не известна эта фишка =)
А еще помойму в нвнСкрипт есть регулярные выражения но я правда, как не старался в этом не разобрался - и забил.
denis0k
Dec 11 2011, 13:03
Это стандартный символ переноса строки. У меня в нвн он кстати не работал, по крайней мере в районе патча этак 1.64.
Ilerien
Dec 11 2011, 13:53
Цитата
А еще помойму в нвнСкрипт есть регулярные выражения но я правда, как не старался в этом не разобрался - и забил.
Есть, но кастрированные. Функции, работающие с listen pattern'ами. Я их юзать перестал после появления onPlayerChat эвента.
Цитата(Ilerien @ Dec 11 2011, 20:53)

Есть, но кастрированные. Функции, работающие с listen pattern'ами. Я их юзать перестал после появления onPlayerChat эвента.
Вообще обобщая все это восхищаешься какие крючечки в свое время, очень давнее, стремились сделать в нвн, поидее.. если помечтать можно было замутить крутые семантитеские движки которые могли бы воспринимать слова, фразы с разными формами и сочетаниями, как яндекс..
denis0k
Dec 12 2011, 07:27
Ну как бы даже профессионалы в области лингвистики ещё не изобрели бота, которого человек в разговоре воспринимал бы как настоящего человека. Была однажды статья на хабре, что некие студенты спутали некого супербота с человеком, но, во-первых, то были программеры, а подобные задроты и переписываются по алгоритмам, сами напоминая ботов, а во-вторых, случай был единичный и стабильного повторения не вызвал (т.е. эксперимент провален).
Варианты создания более менее свободных диалогов в играх тоже как-то не увенчались успехом. Наверно потому, что работают такие системы на базах данных, содержащих тысячи слов и бессчётное множество вариантов их применения, и такая бд будет больше самой игры имхо

По крайней мере в плане трудозатрат точно. К тому же, такую игру уже не локализуешь, отдельный язык - отдельная полноценная база. Максимум, что видел - это возможность ввести слово-два в заранее заготовленных диалогах (вроде в фоллауте было) и слова-теги, которые добавляются в базу знаний персонажа и на которые у неписей есть реплики (система диалогов морровинда).
Самое амбициозное на эту тему, что я слышал в кругах нвн, - парсер чата, автоматически определяющий отыгрыш и выдающий за каждую "ролевую" фразу опыт. Какое счастье, что это не реализовали, когда я играл.
Вообще еще подобная система (гибридная по сравнению с мором (хотя и там втречались варианты диалогов)) была в Wizardry 8
Цитата(denis0k @ Dec 12 2011, 14:27)

Самое амбициозное на эту тему, что я слышал в кругах нвн, - парсер чата, автоматически определяющий отыгрыш и выдающий за каждую "ролевую" фразу опыт. Какое счастье, что это не реализовали, когда я играл.
У Вируса одно время же была система РП-индекса, котороая судя по всему в в общем расчете тоже подобную часть учитывала.
Flaristan
Dec 14 2011, 07:43
По-моему она просто считала отношение времени проведенного персонажем в игре к режиму боя.
Talarasha
Mar 11 2012, 02:58
Галка Left Lootable Corpse очень странно влияет на набор опций SetIsDestroyble(). Изначально у непися срабатывают выставленные опции, но стоит загрузить сейв модуля (!), и все декоративно-умершие NPC превращаются в ограбляемые трупы. Причем у меня еще и перестали работать скрипты оживления этих декоративно-умерших. Целый час времени убил, пока нашел проблему =/
noszone
Apr 26 2018, 08:46
Доброго времени суток, подскажите пожалуйста, очень нужна помощь по вопросу.
При играх на шардах при
отмене превращения формы или сразу переход из одной формы в другую (класс оборотень) появляется микролаг (вся игра фризится). Длительностью от 0.5 до 2 сек. Можете пожалуйста сказать, с чем это может быть связано? Записал видео даже -
https://youtu.be/XHa12SvMI4U.
Почему я думаю, что дело в скриптах, потому что на одном из шардов такое не наблюдается вообще (на всех остальных всегда есть микролаг, в одиночной, разумеется лага нету). Вне зависимоти от пинга. Есть доступ к модулю, но не знаю куда копать. Помогите плиз, куда копать.
denis0k
Apr 26 2018, 18:17
Это не совсем скрипты, скрипты на сервере, а это клиент виснет. Графический лаг на смене формы - это недозагруженные анимации как правило, но лагать должно всего один раз для каждой новой формы. Должно по крайней мере, кажется кони не у всех работали гладко, а там тот же полиморф.
Если есть возможность сравнить модули, то надо смотреть:
- скрипт входа игрока (лошади из 1.69 там как раз делают прелоад анимации) - он в свойствах модуля
- скрипт полиморфа (его придётся поискать в ресурсах, он скорее всего шаблона x1_s?_*, x1 - первый аддон, шифтер вроде оттуда, s0/s1/s2 - спеллы и абилки)
- хаки, может там кастомные модели или кастомные анимации
noszone
Apr 28 2018, 07:37
Большое спасибо, что ответили. Шард без хаков. Теперь понятно. На том шарде где раньше играл, там лошадей не было. А на этом есть. Получается прикол в них. А можно как-нибудь обмануть систему эту?
Чтобы на шарде не лагало (доступа к модулю нет, где лошади работают), т.е. что-нибудь сделать с клиентом, с анимациями? Получается, если логически думать, если лагает, то анимация с сервера каждый раз грузится? И клиент не при чём? Подскажите пожалуйста, есть ли какие-нибудь идеи, что можно сделать с клиентом?
На том шарде, где нет лошадей, от них админы отказывались, говорили, что много проблем с ними. Теперь ясно. Благодарю за помощь.
denis0k
Apr 30 2018, 18:18
Хм... Сайт иногда перестаёт грузиться, мог ответить на пару дней раньше.
Загрузка имеется в виду в память с диска, а не с сервера. Там с лошадьми хак простой - на входе (пока ещё не отрисовалась первая локация) скрипт быстро ставит вид лошади, а потом обычный. С полиморфом такой фокус вряд ли сработает, т.к. все формы перебрать мне не представляется возможным. Да и лагать должно только один раз на форму даже без дозагрузки, а не постоянно.
Рекомендую опросить других игроков, мб проблема чисто на клиенте. Насколько я помню, лошади у некоторых всё равно лагали, от компа зависит. Нвн вообще сильно от железа зависим. А ещё раньше была беда с вылетами при атаке из невидимости, и тоже проблема была в анимации, лечилось заменой на старую, до 2-го аддона.
noszone
May 5 2018, 09:19
Интересно, что админ шарда не смог вообще никак воспроизвести мою проблему и закрыл тикет, заявиви что это не баг нвн. При чем у него на лаптопе древней чем мой комп (п4) идёт вообще без лагов. У него лицензия на нвн. Получается проблема не в железе, и не в скриптах нвн или анимациях. Но, почему эе тогда когда рядом со мной лошадь, то лага вообще нет. Упоротый админ. Я ему всё расписал, а он всё равно говорит, что не при делах.
denis0k
May 6 2018, 12:48
К сожалению, это реально, в нвн - в особенности. Я играл с 2004-го на куче железа и с кучей людей, проблемы были постоянно, и проблемы часто разные у разных людей.
- Было время, когда у части владельцев карт нвидиа вместо меню был чёрный экран.
- До сих пор у некоторых (вообще непонятны критерии) игра падает при атаке персонажа из инвиза.
- До сих пор у меня на ноуте игра не запускается с первого раза.
- До сих пор у некоторых (снова нет локализации бага) игра падает, если на входе в локацию есть вода. А если тут ещё и автосейв кампании - вообще швах. Половина комментов стима к версии ЕЕ этим завалена.
- Всё известное мне время игра у 99% лагала при включении звука Rad 3d. И все 7 лет официальной поддержки никто не почесался.
И таких фишек навалом, просто вам не повезло иметь комбинацию железа и софта, от которых полиморф лагает. В случае с нвн, кстати, старый комп лучше нового - какой-нить п3-п4 + жефорс4 + вин хр.
Честно говоря, биовари так себе программисты. Оптимизаций нет, юникода нет (даже в более новых играх его не было), вечные проблемы с новым железом. Это не только в нвн, и котор стал падать прямо с вин7 (но фанаты запатчили), и первый ведьмак (движок нвн1) на вин10 стал глючить. ДЭ2 до первого патча у половины игроков не сохранялся, а Инквизиция вообще выдавала чёрный экран, в первый день были тысячи возвратов (я лично возвращал деньги, т.к. был в числе неудачников). А что творилось на релизе Андромеды... Это словами не передать, я на пс4 начал играть после месяца патчей, и то нарывался на баги.
Melisse
May 8 2018, 08:27
Цитата
До сих пор у некоторых (вообще непонятны критерии) игра падает при атаке персонажа из инвиза.
почему не понятны? - понятны, это из-за анимации "выход персонажа из инвиза", а точнее момент когда он становится прозрачным/непрозрачным/невидимым/видимым
Да ее поправили в 1.68, но дело в том что потом добавили в 1.69 анимации персонажей дополнительные на основании анимаций 1.67 и баг мягко переехал в 1.69, где он живет и по сей день. Особенно глючат так "лошадиные анимации" персонажей.
denis0k
May 8 2018, 16:20
Причина-то понятна. Не понятно, почему у некоторых падает, у некоторых - нет. По моим старым наблюдениям это даже не было связано с производителем видеокарты - (не) падало и у нвидиа, и у ати/амд.
noszone
May 10 2018, 07:27
По-моему тогда проще играть другим классом где нет шифтинга форм. Интересно также посмотреть будет ли этот баг если превратиться в кого-нибудь с пмощью заклинания 9 круга.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.