![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#446
|
|
Level 18 ![]() Класс: Страж Тьмы Характер: True Neutral Раса: Человек МАСТЕР D&D ![]() |
Zirrex, я ему толковал, чтоб создал сет вэйпойнтов.
priest, обычно в строку template вводят тэг НПС. |
![]()
Сообщение
#447
|
|
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
priest, а тэг НПС может быть абсолютно любым. В твоем случае рекомендуется его обозначить так: c_tiefling_01 (01 для того, если ты решишь делать еще одного Тифлинга, которому уже назначишь номер 02). Кстати, чтобы не было путаницы в тэгах, рекомендуется давать монстрам и НПС разные префиксы в тэге. Т.е., если у тебя НПС мирный, то обозначать его так: npc_tiefling_01, а если нет, то: bst_tiefling_01. Вместо tiefling можно вписывать имя НПС, тогда их будет проще отличать среди массы тэгов. Это удобно, когда нужно создать 100 и более существ. Я их еще привязывал к локации, добавляя в тэг существа сокращенное название тэга локации.
Что касается твоего первого вопроса, то значение PvP влияет лишь на то, сможешь ты атаковать дружественные существа или не сможешь. Иконка атаки будет доступна всегда. Чтобы ее убрать, посмотри оригинальный модуль компании игры. Я с НВН2 работал мало, поэтому не знаю точно, как это сделать. |
![]()
Сообщение
#448
|
|
Level 2 ![]() Класс: Клерик Характер: Lawful Neutral Раса: Человек ![]() |
В продолжении темы.
Когда NPC доходит до последнего waypoint'a, он начинает двигаться по ним обратно. Доходя до очередного waypoint'a, он каждый раз поворачивается в ту сторону, куда waypoint направлен. Некрасиво получается. Как сделать, чтобы он (NPC) не вертелся на waypoint'ах, а спокойно стоял? Сообщение отредактировал priest - Jul 28 2008, 14:59 |
![]()
Сообщение
#449
|
|
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
priest, в смысле стоял? Если точка одна, то он на ней станет так, куда указывает стрелка. А если НПС ходит по точкам, то на каждой новой точке он будет поворачиваться в том направлении, куда она смотрит. Попробуй разместить точки так, чтобы перемещение по ним не выглядело слишком резко. Можно также попробовать увеличить паузу между перемещениями от точки к точке. Для этого нужно добавить задержку в функцию ходьбы. Находится она, если ничего не изменилось в файле nw_c2_default9
|
![]()
Сообщение
#450
|
|
Level 2 ![]() Класс: Клерик Характер: Lawful Neutral Раса: Человек ![]() |
А если НПС ходит по точкам, то на каждой новой точке он будет поворачиваться в том направлении, куда она смотрит. Попробуй разместить точки так, чтобы перемещение по ним не выглядело слишком резко. Ага я именно о том и говорю, что разворот в точке waypoint'a слишком резкий. Но это ладно, фигня, умеючи можно их расположить.Можно также попробовать увеличить паузу между перемещениями от точки к точке. Для этого нужно добавить задержку в функцию ходьбы. Находится она, если ничего не изменилось в файле nw_c2_default9 Ну задержку в waypoint'ах я скриптую по этой статье, достаточно удобно. Пытаюсь еще и этот скрипт применять, но он у меня работает через раз - не знаю в чем проблема. У одного NPC работает, у другого абсолютно аналогичный - нет.Сейчас крайне интересует другой вопрос: как зациклить waypoint'ы? То есть стандартно NPC перемещается по такой цепочке: 1-2-3-4-3-2-1. А мне нужно: 1-2-3-4-1-2-3-4 (т.е. по кругу). Есть идеи? |
![]()
Сообщение
#451
|
|
Level 18 ![]() Класс: Страж Тьмы Характер: True Neutral Раса: Человек МАСТЕР D&D ![]() |
Если ты располагал ВП по кругу, то НПС и должен ходить 1,2,3,4,1,2,3,4. Для того чтобы менять направление на рандомное есть скрипт:
Neverwinter Script #include "ginc_wp" void main() { int iCurrentWP = GetCurrentWaypoint();// the waypoint we just arrived at int iNextWP = iCurrentWP+1; if (iCurrentWP>4) iNextWP = 1; SetNextWaypoint(iNextWP); } Ставится на хартбит НПС. |
![]()
Сообщение
#452
|
|
Level 2 ![]() Класс: Клерик Характер: Lawful Neutral Раса: Человек ![]() |
Если ты располагал ВП по кругу, то НПС и должен ходить 1,2,3,4,1,2,3,4. хм, ты уверен? У меня вот как waypoint'ы расположены: (IMG:http://ipicture.ru/uploads/080729/14157/6SjOHBhppR.jpg) и все равно она ходит 1-2-3-4-3-2-1-2-3-4-3-2-1... может я как-то не так их расставил? если можешь - дай пожалуйста свой скрин с расположением waypoint'ов, позволяющим зациклить ходьбу NPC. Скрипт, устанавливаемый на "on heartbeat" хорош для одного NPC... а если у меня их 50-60? и в каждом раунде это будет обрабатываться? а в модуле ведь помимо этих и другие скрипты есть. Интересно, а можно реализовать как-нибудь так: создается скрипт с названием wp_<npctag>, и в нем уже прописывается что, мол, с последнего waypoint'а NPC должен идти на первый, а не на предпоследний? И вот таким образом зациклить waypoint'ы. |
![]()
Сообщение
#453
|
|
Level 18 ![]() Класс: Страж Тьмы Характер: True Neutral Раса: Человек МАСТЕР D&D ![]() |
У тебя три ВП! Как она может ходить 1,2,3,4????? И не надо их замыкать в треугольник она сама пойдет по 1,2,3,1,2,3......
Скрипт, устанавливаемый на "on heartbeat" хорош для одного NPC... а если у меня их 50-60? и в каждом раунде это будет обрабатываться? а в модуле ведь помимо этих и другие скрипты есть. ничего страшного они ж не все пойдут рандомно |
![]()
Сообщение
#454
|
|
Level 2 ![]() Класс: Клерик Характер: Lawful Neutral Раса: Человек ![]() |
У тебя три ВП! Как она может ходить 1,2,3,4????? И не надо их замыкать в треугольник она сама пойдет по 1,2,3,1,2,3...... не-не-не! Там где она стоит, не один вейпоинт, а два! У них просто координаты абсолютно одинаковые!(IMG:http://ipicture.ru/uploads/080729/14157/U5TBpaac1a.jpg) по алгебре у мну трояк был, но считать до четырех я умею (IMG:style_emoticons/kolobok_light/crazy.gif) еее к тому же между последним и первым waypoint'aми белых стрелочек не бывает! (IMG:http://ipicture.ru/uploads/080729/14157/4UPgY40J1o.jpg) ничего страшного они ж не все пойдут рандомно Да не в том дело, я читал, что если в моде много NPC со скриптом в "on heartbeat script", то просчет в каждом раунде скриптов для каждого NPC систему нагружает сильно. Это правда? Просто мне уже нужно первую локацию модуля заселять, а вдруг я сделаю - а потом тормоза сплошняком будут. Я же убьюсь переделывать (IMG:style_emoticons/kolobok_light/sad.gif)
|
![]()
Сообщение
#455
|
|
Level 6 ![]() ![]() Класс: Некромант Характер: Lawful Evil Раса: Нежить ![]() |
у тебя четвертый вэйпоинт лишний, если он стоит внутри стартового вэйпоинта. Возможно он и приводит к неправильной последовательности. Попробуй просто убрать его, тогда достигнув 3 вэйпоинт нпс пойдет к стартовому, создавая таким обрязом треугольник.
|
![]()
Сообщение
#456
|
|
Level 2 ![]() Класс: Клерик Характер: Lawful Neutral Раса: Человек ![]() |
у тебя четвертый вэйпоинт лишний, если он стоит внутри стартового вэйпоинта. Возможно он и приводит к неправильной последовательности. Попробуй просто убрать его, тогда достигнув 3 вэйпоинт нпс пойдет к стартовому, создавая таким обрязом треугольник. фигушки... сами смотрите. Так что насчет моего предыдущего вопроса, "on heartbeat" скрипты перегружают систему при просчете, если в модуле много NPC? |
![]()
Сообщение
#457
|
|
Level 6 ![]() ![]() Класс: Некромант Характер: Lawful Evil Раса: Нежить ![]() |
К сожелению не могу взглянуть лично, поскольку я забил на нвн2 и всем, что связано с ним больше года назад и, соответственно, клиента нвн2 у меня попросто не осталось. От ныне нвн1 во веки веков (IMG:style_emoticons/kolobok_light/pilot.gif) =)
|
![]()
Сообщение
#458
|
|
Level 2 ![]() Класс: Клерик Характер: Lawful Neutral Раса: Человек ![]() |
ыыы жаль (IMG:style_emoticons/kolobok_light/smile.gif) но все равно спасибо что пытался помочь
ага уже трое скачавших, может завтра кто и даст ответы... |
![]()
Сообщение
#459
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Да не в том дело, я читал, что если в моде много NPC со скриптом в "on heartbeat script", то просчет в каждом раунде скриптов для каждого NPC систему нагружает сильно. Это правда? Просто мне уже нужно первую локацию модуля заселять, а вдруг я сделаю - а потом тормоза сплошняком будут. Я же убьюсь переделывать сильно грузят систему корявые и не оптимизированные скрипты, особенно если они стоят в ХБ. Чтобы он ходил по кругу, а не туда-сюда, нужно переписать WalkWayPoints. Делается скриптерами это для себя довольно часто, кто-то вроде бы выкладывал такое в базу скриптов НВН1. Можно взять оттуда. Можно переписать Walk и самому (заодно оптимизировав его, если этого еще не сделали Обси. Ибо исходный код Биотварей малек тяжеловат и легко потдается упрощению и облегчению) |
![]()
Сообщение
#460
|
|
Level 2 ![]() Класс: Клерик Характер: Lawful Neutral Раса: Человек ![]() |
Чтобы он ходил по кругу, а не туда-сюда, нужно переписать WalkWayPoints. Делается скриптерами это для себя довольно часто, кто-то вроде бы выкладывал такое в базу скриптов НВН1. Можно взять оттуда. Можно переписать Walk и самому Ну а гайда как переписать WalkWayPoints или чего-то в этом роде не существует? Просто этот т.н. скриптинг для меня вновинку, у меня голова кругом идет уже от половины прочитанной странички тьютора по скриптингу на вики. Вообще я с незначительным скриптованием пересекался когда под half-life 1 и 2 маппил, но тут же просто кошмар, я не понимаю как вы в этом разбираетесь. (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif) Может просто поначалу тяжело. |
![]()
Сообщение
#461
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Чтобы он ходил по кругу, а не туда-сюда, нужно переписать WalkWayPoints. Делается скриптерами это для себя довольно часто, кто-то вроде бы выкладывал такое в базу скриптов НВН1. Можно взять оттуда. Можно переписать Walk и самому (заодно оптимизировав его, если этого еще не сделали Обси. Ибо исходный код Биотварей малек тяжеловат и легко потдается упрощению и облегчению) Весь WalkWayPoints в моде переписывать с круговым движением нельзя! НПС не с круговым движением будут тыкаться по углам, как слепые котята... (т.е. с последней точки щемиться на первую) И вообще, эта функция запускается не только с ХБ, поэтому нужен комплексный подход... Если уж нужно запустить НПС по кругу, то проще сделать для этого другую функцию и почистить у него скрипты запускающие WalkWayPoints. Или перевести НПС на точки ходьбы с другими тегами... Помниться кто-то открыл отдельную тему по WalkWayPoints, но правда для 1 Невера (но я вижу, что мало что изменилось...) Можно глянуть там, что к чему, я писал свою функцию для сингла WalkWayPoints, можно оттуда выдрать круговую ходьбу, удалив обратный цикл подсчета точек. |
![]()
Сообщение
#462
|
|
Level 2 ![]() Класс: Клерик Характер: Lawful Neutral Раса: Человек ![]() |
Вопрос.
У меня на локации есть npc, тэг: npc1, есть стул, тэг: chair1. Мне нужно, чтобы npc подошел к стулу и сел, я пишу скрипт и ставлю его у npc на on spawn in script: void main() { object oNpc = GetObjectByTag("npc1"); object oChair = GetObjectByTag("chair1"); ActionMoveToObject(oChair); ActionDoCommand(ActionSit(oChair)); } npc подходит к стулу, начинает садиться на него, но тут же прерывается и тупо возле стула стоит. Что я не так делаю? |
![]()
Сообщение
#463
|
|
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
priest, если уж скрипт висит на НПС, то какой смысл запрашивать его тэг таким способом?
Neverwinter Script object oNpc = GetObjectByTag("npc1"); Достаточно сделать так: Neverwinter Script object oNpc = OBJECT_SELF; Попробуй использовать такой скрипт: Neverwinter Script void main() { // AI скрипт ... // скрипт посадки НПС на стул object oChair = GetObjectByTag("chair1"); float fDistance = GetDistanceToObject(oChair); AssignCommand(oPC, ClearAllActions(TRUE)); if (fDistance > 0.0) AssignCommand(oPC, ActionMoveToObject(oChair, FALSE, fDistance)); DelayCommand(fDistance, AssignCommand(oPC, ActionSit(oChair))); } Только есть одна мелкая деталь. НПС не сидят снова на стул, если с ним поговорить. Лучше подобный скрипт вешать на хартбит существа, и делать проверку с помощью переменной или проверки действия НПС, сидит ли НПС или нет. |
![]()
Сообщение
#464
|
|
Level 2 ![]() Класс: Клерик Характер: Lawful Neutral Раса: Человек ![]() |
Вопрос по объекту static camera. В диалогах я его научился использовать, а как сделать, чтобы камера некоторое время показывала просто игровую область - т.е. чтобы работала не в диалоге и не фокусировалась на персонаже?
|
![]()
Сообщение
#465
|
|
Level 18 ![]() Класс: Страж Тьмы Характер: True Neutral Раса: Человек МАСТЕР D&D ![]() |
Самое простое изменить задержку. Если же тебе нужно определенный ракурс, то поставить свою камеру и направить куда тебе надо или используй user defined фокус камеры, правда там всего три опции.
|
![]()
Сообщение
#466
|
|
Level 2 ![]() Класс: Клерик Характер: Lawful Neutral Раса: Человек ![]() |
Самое простое изменить задержку. Если же тебе нужно определенный ракурс, то поставить свою камеру и направить куда тебе надо или используй user defined фокус камеры, правда там всего три опции. А поподробнее можешь описать? Я просто не пойму, как это должно работать - тоже в диалоге, что ли? |
![]()
Сообщение
#467
|
|
Level 14 ![]() ![]() ![]() ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Эльф ![]() |
Коллеги, помогите, пожалуйста, с созданием вещей для шарда Балдурс Гейт:
1. Делаем броню "Подарок Ночи": Необходимо на броню повесить постоянный эффект окутанности тенями: как при выпритии бутылочки Death Armor. Как это сделать? 2. Делаем мечь "Лаликор": Мечь по сеттингу - разговаривающий. Как сделать так чтобы он при ударе по врангу с 20% вероятностью произносил фразу (текст всплывать должен) случайно выбранную из некого набора? А так же как следать так, чтобы с ним отдельно можно было поговорить, как с НПС? 3. Делаем щит "Щит Балдурана": По сеттингу он дает иммунитет к атакам Бехолдеров. Как сделать так, чтобы щит давал иммунитет к магии и магическому дамаджу именно от бехолдеров? 4. Делаем щит... забыл название: По сеттингу он отражает заклинания обратно на кастующего. Как это реализовать? Заранее спасибо. |
![]()
Сообщение
#468
|
|
Level 12 ![]() Класс: Оборотень Характер: Chaotic Neutral Раса: Нежить NWN: Скриптинг [Sn] ![]() |
"Не знаю, как там у вас, а у нас..." (с) Неизвестный Разработчик на НВН1
Цитата 1. Делаем броню "Подарок Ночи" посмотрите в скрипт этой самой Death Armor (в нвн1 она зовётся "X2_S0_DthArm.nss", вроде скрипты из первой части перенесли "как есть"), там будет наложение визуального эффекта, что-то типа: Neverwinter Script effect eDur = EffectVisualEffect(463); вот его и надо использовать... в онЭквип модудя или скрипт ещё по умолчанию запускается типа "i_+тэг предмета+еq" (опять же, не помню точно)... правда как снимать - непонятно, можно поставить псевдоцикл проверки на "надетость предмета", а эффект длительностью 5-10 сек, если броня надета - подновлять, нет - так нет. Цитата 2. Делаем мечь "Лаликор": выкрики - смотрите в сторону On Hit \ On Hit Cast Spell, разговор - Cast Spell, поредактировав .2da, можно добиться чтобы это выглядело естественно. Разговоры с оружием в ХотУ разработчики сделали через создание рядом невидимого нпц с видимым мечом в руке, пропадающего после разговора, но можно вроде игрока разговаривать и с самим собой. А если пять ударов в раунд - То выкрики каждый раунд получатся: "Этот раунд боя спонсирован Церковью Тора" (IMG:style_emoticons/kolobok_light/blum3.gif) Цитата 3. Делаем щит "Щит Балдурана": иммунитета от определённой расы вроде бы нет. пути решения: а) если у бихолдера ассортимент ограчичен только специальными Лучами Смерти \ Любви, то можно использовать EffectSpellImmunity. б) можно попробовать использовать спеллхуки, если они остались - "x2_inc_spellhook" в помощь. Если вкратце - то там задаётся в начале функцией SetModuleOverrideSpellscript(string sScriptName) где нибудь при старте модуля скрипт, который будет исполняться при касте любого спелла, и в нём уже можно делать всякие штуки с проверками. Цитата 4. Делаем щит... забыл название: малой кровью - не знаю как, в принципе спеллхуком можно отменить, GetSpellId() - выяснить, что за спел и в .2да к нему заглянуть через Get2DAString() - а вдруг площадное, и если в обратку кинуть - цикл бесконечный, а вот что дальше с ним делать - зх. невидимым монстром ActionCastSpellAtObject(...)? А вообще - имба. вобщем, в указаных вещах везде - гимор. (IMG:style_emoticons/kolobok_light/pardon.gif) |
![]()
Сообщение
#469
|
|
Level 18 ![]() Класс: Страж Тьмы Характер: True Neutral Раса: Человек МАСТЕР D&D ![]() |
|
![]()
Сообщение
#470
|
|
Level 9 ![]() ![]() ![]() Класс: Волшебник Характер: Neutral Good Раса: Эльф ![]() |
Все верно сказал azathoth.
Хочу только добавить что выкрики на мече можно сделать оверрайдом, заменив оригинальный скрипт стоящий на OnDamaged неписей (не дома сейчас поэтому не помню названия) скриптом с инициированием рандомного FloatingText на атакующем, экипированным данным мечом... А разговор с мечом проще всего сделать через "Use Item Special Power"... Позже могу написать пример. |
![]() ![]() |
Текстовая версия | Сейчас: 17th September 2025 - 03:20 |