![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#4746
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Это глюк.
Скорее всего железо глючит, но бывает еще сам дефолтный контент нвн глючный. Нвн может быть не хороший? Кастомный контент используете если - с ним тоже могут быть проблемы. Вообще надо скрины было прицепить... хотя бы что-то, а то так гадать, но основные проблемы часто встречающиеся назвала. |
![]()
Сообщение
#4747
|
|
Level 2 ![]() Класс: Пьяный Мастер Характер: True Neutral Раса: Эльф ![]() |
Это глюк. Скорее всего железо глючит, но бывает еще сам дефолтный контент нвн глючный. Нвн может быть не хороший? Кастомный контент используете если - с ним тоже могут быть проблемы. Вообще надо скрины было прицепить... хотя бы что-то, а то так гадать, но основные проблемы часто встречающиеся назвала. Спасибо, железо это мб, потому что винду давно не переставлял, все дико лагает и все такое...НВН лицензионный еще с древних дисков. А скрины чего? |
![]()
Сообщение
#4748
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Проблема может быть в dialog.tlk - при отсутствии добавленных в 1.69 строк клиент отказывается отображать некоторых неписей. Можно взять оригинальный файл из 1.69 и посмотреть, не решится ли проблема.
|
![]()
Сообщение
#4749
|
|
Level 3 ![]() Класс: Волшебник Характер: Neutral Evil Раса: Человек ![]() |
Доброго времени суток, уважаемые знатоки.
Заранее благодарю за помощь и ценю каждого, кто еще не забыл про NWN. Захотелось мне побаловаться тулсетом и сделать свой персональный "шард", именно для себя, оффлайновый, натыкать монстров, может воссоздать по памяти что то из тех шардов, где я бегал по молодости... Уперся в стенку на вопросе о спауне мобов, стандартный спаун не совсем гибкий и вспомнив о наличие скрипта, в котором при приближении к трупу из него вылезал зомби, я открыл его и попробовал сделать под себя, мучался целый день, но не смог добиться желаемого, а имено: "Скрытый плейсибл со скриптом спауна на хартбит >>> приближается мой персонаж >>> монстр появляется и пока не будет убит, на его месте не появляется кто то другой >>> после смерти проходит n-секунд, если игрок не ближе чем n-метров и не дальше чем n-метров, монстр снова появляется." Мой скрипт то начинал постоянно спавнить монстров, внезависимости от того убит целевой или нет, то вроде бы я это преодолел, но пытаясь создать универсальность, в итоге получил, что в случае, если один монстр прибегал к плейсиблу соседнего, то 1е место спауна переставало "плодить" мобов и умирало (т.к. я использовал ориентир "ближайший объект"). Казалось я и это вылечил, добавив в скрипт проверку, позволяющую оживить спаун, но теперь мобы стали появляться по 2е... В общем буду примного благодарен за ссылку на скрипт с "шардовым" вариантом появляния монстров, отличающийся универсальностью и простотой использования (создать плейсиблы-ориентиры с уникальными тегами для каждого моба на локации это еще ладно, но чтобы не пришлось каждому отдельному мобу писать скрипт). Сообщение отредактировал Mandrake - Nov 1 2012, 00:12 |
![]()
Сообщение
#4750
|
|
Level 6 ![]() ![]() Класс: Друид Характер: Chaotic Neutral Раса: Гном ![]() |
У меня, например, не из плейсов респаунятся, а из своих трупов (некоторые из хитбита локации). Общий вид скрипта на смерть существа выглядит так (всё лишнее\личное удалил):
Neverwinter Script void Resp (location lLocation) Ну и в спауне не забудь вставить SetIsDestroyable(FALSE);{ SetIsDestroyable(TRUE); DestroyObject(OBJECT_SELF); if (GetIsEncounterCreature()) return; // энкаунтерные сущаства респаунятся в скриптах энкаунтера //хотя у меня чуть более сложная система для них, чем описана, но общий смысл такой object oNew = CreateObject(OBJECT_TYPE_CREATURE,GetResRef(OBJECT_SELF),lLocation); // а тут с этим новым объектом можно что-то сделать; например, левелапнуть правильно. } void main() { int hours = GetSpawnTime(); // у меня вычисляется в зависимости от HD и CR существа location lLoc = GetSpawnLocation(); // у меня читается из локалок, при спуне инициализированных DelayCommand(HoursToSeconds(hours), Resp(lLoc)); DropItems(); // система выпадения лута GiveXPToKillers(); // своя система пати-опыта } В случае респауна через локацию (можно любой удобный объект использовать - плейс или даже модуль), текст на смерть выглядит примерно так: Neverwinter Script void main() и скрипт respawn{ object oArea=GetArea(OBJECT_SELF); SetLocalInt(oArea,"respawn_time",GetSpawnTime()); SetLocalLocation(oArea,"respawn_loc",GetSpawnLocation()); SetLocalString(oArea,"respawn_resref",GetResRef(OBJECT_SELF)); ExecuteScript("respawn",oArea); DropItems(); // система выпадения лута GiveXPToKillers(); // своя система пати-опыта } Neverwinter Script void Resp (string sRef, location lLocation) { object oNew = CreateObject(OBJECT_TYPE_CREATURE,sRef,lLocation); // а тут с этим новым объектом можно что-то сделать; например, левелапнуть правильно. } void main() { int hours = ; string sRef = ; location lLoc = ; // всё читаем из локалок, ну или вычисляем любым удобным способом DelayCommand(HoursToSeconds(hours), Resp(sRef,lLoc)); } Это система: один убитый - один новый. Если нужна популяционная система (с изменяющейся численностью) - напиши. Тут не так много менять (собственно, перевесить скрипт на хитбит, добавить параметры вероятности, близости (игрока, другого объекта), насыщенности (максимум плотности населения) и изменить метод вычисления исходных данных. Сообщение отредактировал Anakondar - Nov 1 2012, 02:50 |
![]()
Сообщение
#4751
|
|
Level 3 ![]() Класс: Волшебник Характер: Neutral Evil Раса: Человек ![]() |
|
![]()
Сообщение
#4752
|
|
Level 5 ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Модмейкер История дома Салливан ![]() |
Здравствуйте! Я довольно долго делаю модуль, сейчас столкнулась с такой проблемой: хочу сделать NPC свои портреты. Т.е. для этого нужно картинки засунуть в Хак Пак, так? Нужно ли изменить им расширение? Как потом этим хак паком пользоваться? Я знаю, где его добавить, но где появятся мои новые портреты? И можно ли добавить музыку, какие-то свои аудио-файлы? Вот такие вопросы. Заранее извиняюсь, если на этот вопрос уже где-то отвечали или я написала не в ту тему...)))
|
![]()
Сообщение
#4753
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Портреты
вот тут почитай Музыка - нужно добавлять треки в ambientmusic.2da префикс mus_* Желательно не больше 2:00 минут (можно и больше, ограничения чисто интуитивные, так как все треки примерно так) В хак нужно добавить только 2da, а файл кидать в music. Хотя можно, наверное, и в хак... не знаю. Со звуками сложнее. Их несколько видов. Для добавления новых звуков для существ придется создавать звуковые схемы работа с такими 2da как: footstepsounds.2da AppearanceSndSet.2da soundset.2da Чтобы появился в игре - запакуй в хак пак сам звук, 2da и добавь. чтобы просто добавить звук для выставления его объектом в локацию нужно сделать его моно, 16бит, то ли 8бит (не помню) и задать один из префиксов для деление его в категорию. Эти префиксы можно поглядеть при создании нового звука в тулсете. Чтобы появился в игре - запакуй в хак пак и добавь. Можно сделать новый амбиент звук в локацию. Он уже может быть стерео и желательно, да. Он проигрывается постоянно и его нужно сделать петлей в звуковом редакторе, иначе будет лажа. Эти файлы не надо скидывать в хак пак, а класть в папку ambient, в каталоге с игрой. Нужно еще 2da редактировать - это AmbientSound.2da, вроде. И в хак отправляешь только сам 2da файл Еще можно добавлять новые звуки для ударов оружия/стука брони/ходьбы персонажа по поверхностям (правда только на замену) Можно так же озвучивать диалоги, манипуляции примерно такие же как и со звуковыми объектами в локацию. Сообщение отредактировал Melisse - Jan 18 2013, 22:56 |
![]()
Сообщение
#4754
|
|
Level 5 ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Модмейкер История дома Салливан ![]() |
Melisse, спасибо большое!
|
![]()
Сообщение
#4755
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Heather, вот тут есть туториалы по авроре, почитай:
Aurora Toolset Tutorial (BioWare) Aurora Toolset Tutorial (WRG!) Очень много вопросов отпадет. Написано специально для новичков которые делают модули сами. |
![]()
Сообщение
#4756
|
|
Level 5 ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Модмейкер История дома Салливан ![]() |
Aiwan, спасибо. Я модули для себя и друзей делаю где-то с 2009 г., а об этом замечательном форуме узнала только сейчас((.. Сейчас уже интересуюсь скриптами посложнее.
|
![]()
Сообщение
#4757
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Heather, если задаешь ТАКИЕ простые вопросы, то значит мануалы не повредят. В них есть инфа которой ты не знаешь и которая не повредит. Поверь.
Насчет скриптов. Тут есть тема в помощь новичкам, там почти все простые основные скрипты есть. Разберешься в них, научишься писать сама. Ну и велкам (IMG:style_emoticons/kolobok_light/wink3.gif) |
![]()
Сообщение
#4758
|
|
Level 1 Класс: Друид Характер: Lawful Neutral Раса: Полуэльф ![]() |
Доброго времени суток, господа!
После застоя лет в пять взялся за "Аврору" и не могу понять, почему созданные НПС (уникальные для пишущегося мода) не появляются в самом моде, когда я пытаюсь его потестить? Можете подсказать, на что обратить внимание? |
![]()
Сообщение
#4759
|
|
Level 5 ![]() ![]() Класс: Паладин Характер: Chaotic Good Раса: Человек ![]() |
То есть ты разместил их в локациях, но при заходе в игру никого не нашел?
|
![]()
Сообщение
#4760
|
|
Level 1 Класс: Друид Характер: Lawful Neutral Раса: Полуэльф ![]() |
|
![]()
Сообщение
#4761
|
|
Level 1 Класс: Убийца Характер: Chaotic Good Раса: Полуэльф ![]() |
Здравствуйте. Вот решил немного отвлечься от моддинга одной игры и выбрал Невервинтер, ибо игрушка мне очень нравится и первая часть больше второй. Скажите - можно ли сделать так, чтобы при незаконных действиях стражники пытались тебя оглушить и после того ты попадал в тюрьму, но потом тебя выпускают? Пример:
1. Ты украл что-то и спалился 2. Стражники начинают тебя чморить и всё таки завалили 3. При системе отрицательного здоровья(потеря сознания при "здоровье<0") ты оказываешься в тюремной камере. 4. Либо "Прошло 2 года" и тебя выпустили, либо тебя отмазали влиятельные персоны(К примеру батя-староста посёлка или друг-принц и т.д.) 5. Отмазывать тебя будут раза 2 или 3 - далее на тебя плюнут и ты просидишь в карцере до конца дней. |
![]()
Сообщение
#4762
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Можно, но очень сложно и с некоторыми нюансами. Боюсь то, что получиться в результате долгих мучений и настроек/устранения багов всего этого - вас не устроит.
|
![]()
Сообщение
#4763
|
|
Level 1 Класс: Убийца Характер: Chaotic Good Раса: Полуэльф ![]() |
А систему голода кто-нибудь создавал? К примеру 0-8 часов после поедания чего-нибудь у тебя сытость, 8-11 слабый голод, 11-17 голод(тут минус к хар-кам), 17+ сильный голод(сильный минус к хар-кам и нанесение дамага в геометрической прогрессии(Чем у тя больше КЗ и ХП тем больше проживёшь голодным))
Вот возник вопрос по существу - как сделать так, чтобы NPC подходил к игроку при его входе в локацию(модуль)? |
![]()
Сообщение
#4764
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
1. Делали. На буржуйских шарда очень часто можно увидеть.
2. Тут 2 варианта - либо через персиптион эвент, либо через триггер. Все это можно заскриптовать в нвн-скриптинге в той или иной форме. Вопрос в другом - как это будет работать. Потому что мало написать код - его еще надо отшлифовать и обезбажить. (IMG:style_emoticons/kolobok_light/smile.gif) Вы такие вопросы задаете - характера, выдать готовое решение вопроса - это никто не будет так делать. Вряд ли кто-то захочет делать это за вас. |
![]()
Сообщение
#4765
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Вот возник вопрос по существу - как сделать так, чтобы NPC подходил к игроку при его входе в локацию(модуль)? читайте пост: http://www.city-of-masters.ru/forums/index...st&p=110735 Скажите - можно ли сделать так, чтобы при незаконных действиях стражники пытались тебя оглушить и после того ты попадал в тюрьму, но потом тебя выпускают? Можно, и уже реализовано Aiwan-ном в Монете судьбы: http://wrg.ru/download.php?list.2 и в нашем модуле тоже есть такая фишка... Сообщение отредактировал gennady - Jun 3 2013, 21:30 |
![]()
Сообщение
#4766
|
|
Level 1 Класс: Убийца Характер: Chaotic Good Раса: Полуэльф ![]() |
Можно, и уже реализовано Aiwan-ном в Монете судьбы и в нашем модуле тоже есть такая фишка... Я знаю, но там ты со стражей не дерёшься - тебя просто на 3-4 раз открывания сундука или если ты своровал, когда тя заметили. За это упекает в тюрьму - стража пришла сказала реплику и если ты не убедил их то ушла и ты оказываешься в тюрьме. Просто от стражи то можно и убежать, от стражи можно избавиться. |
![]()
Сообщение
#4767
|
|
Тролль ![]() ![]() ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Neutral Раса: Тварь ![]() |
Доброго времени суток, господа! Это «ошибка класса пурпурно дракона» - про нее на этом форуме время от времени поднимают вопросы.После застоя лет в пять взялся за "Аврору" и не могу понять, почему созданные НПС (уникальные для пишущегося мода) не появляются в самом моде, когда я пытаюсь его потестить? Можете подсказать, на что обратить внимание? По поводу всего остального - так же ранее много раз уже отсылал: Как поймать лису за хвост, Как достать рукой до звезд, Как из камня сделать пар, Знает доктор наш Гаспар! (с) P.S.: А систему голода кто-нибудь создавал? Создавали ее все, кому не лень. И все по примерно этому же принципу. Лично я, а так же многие другие знакомые мне игроки считают все это одним большим геморроем – даже для синглплеера это выглядит, по меньшей мере, глупо и жутко неудобно. Тут упоминали проекты – недавно посмотрел модуль Рыцарская Сага, про который тут на форуме писали, там такая система так же есть, если говорить о примерах. И она так же выглядит скорее не как усталость от недосыпания, а как «тыквенное проклятие» Золушки, которое превращает с 12 ударом часов карету в тыкву, в данном случае персонажа - в неповоротливую флудящую об усталости тыкву, медленно ползущую битый километр до своей кровати, чтоб от этого проклятия избавиться. Не поймите неправильно - сам модуль вполне хорош и продолжает традиции Проклятия Левора, но такие моменты мой мозг всегда просто убивают. Кстати в своем онлайн-модуле и я сделал для персонажей голод и усталости, однако, недоедание и недосыпание к примеру там вызывает лишь небольшие штрафы к скорости передвижения (-10% и -15% соответственно). Так что штрафы за них не то что геморрой привносят в игру, а даже не сразу в глаза бросаются и ощущаются только в сумме с другими. Чего и всем желаю. (IMG:style_emoticons/kolobok_light/smile.gif) Сообщение отредактировал Flaristan - Jun 6 2013, 04:55 |
![]()
Сообщение
#4768
|
|
Level 1 Класс: Убийца Характер: Chaotic Good Раса: Полуэльф ![]() |
Русификатора к скриптгену нету случаем? (IMG:style_emoticons/kolobok_light/rolleyes.gif) Никак не могу заставить сидеть людишек всё время(отдыхать). Это точно скриптами делается(перековырял компании, в монету судьбы залез - всё бестолку, несгибаемые стражники)?
|
![]()
Сообщение
#4769
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Он не нужен.
Что значит сидеть? На земле? или что? Выражайте мысли яснее. подобного рода скриптов навалом. Ставьте на OnSpawn существа Neverwinter Script void main()
{ DelayCommand(1.0f, AssignCommand(OBJECT_SELF, ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS, 1.0, 99999.0))); DelayCommand(3.0, SetCommandable(FALSE, OBJECT_SELF)); } |
![]()
Сообщение
#4770
|
|
Тролль ![]() ![]() ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Neutral Раса: Тварь ![]() |
Русификации к скрипт-генератору насколько мне известно нет. Хотя конечно можно попробовать поискать – но вряд ли. Переводить там немного и вполне можно самостоятельно, хотя бы с помощью этого. Однако большинство ситуаций предполагает, что пользователь хоть сколько-нибудь знаком с тулсетом, а так же терминологией модулестроения. Поэтому советую читать Lexicon. Полных переводов его тоже нет, равно как и перевода на русский язык языка программирования С++ использующегося в скриптах НВН. Поэтому английский учить советую в любом случае. (IMG:style_emoticons/kolobok_light/smile.gif)
Так же существует несколько неплохих русских обучалок по тулсету которые рекомендованы к прочтению любому модульмейкеру: - оригинальный; - от создателей ПЛ; - от создателей РС. По поводу сидения НПС на стульях/чем угодно: на самом деле если вам нужен скрипт (особенно для онлайн модуля) который заставит определенного НПС все время сидеть на стуле/чем-либо – то это лучше всего делать скриптом на OnHeartbeat, который запускается с объекта постоянно с интервалом в 6 секунд. В противном случае сидение НПС может быть прервано и не возобновлено никак (если это OnSpawn эвент – то он сработает только единожды при спавне НПС, причем при этом еще не следует путать спавн НПС и размещение его в модуле вручную, чем последнее не является). Плюс в скрипт на OnHeartbeat можно добавлять массу условий которые вместе со спецификой автовыполнения его постоянно превратят простую команду для НПС в его поведение. Например с помощью скриптгена создание такого скрипта будет выглядеть так: - Normal script - NPC heartbeat - (Okay, Cansel) - Other actions and action queues - SCRIPT - Assign queue to the owner of the script - Sit down on object - (ввести/скопировать таг объекта) - Okay – exit! - Close Результат: Neverwinter Script void main() Помещать его стоит соответственно на OnHeartbeat НПС – скрипт заставить его всегда сидеть на объекте с указанным тагом исключая ситуации боя и диалога.
{ object oPC = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN); if (IsInConversation(OBJECT_SELF) || GetIsInCombat()) return; ActionSit(GetObjectByTag("TAG_OF_SIT")); } Сообщение отредактировал Flaristan - Jun 17 2013, 06:40 |
![]() ![]() |
Текстовая версия | Сейчас: 20th August 2025 - 02:46 |