Вопросы и Ответы по Toolsetу |
Здравствуйте, гость ( Вход | Регистрация )
Вопросы и Ответы по Toolsetу |
Jan 22 2005, 00:00
Сообщение
#1
|
|
Level 5 Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени |
********************************************************************************
Статьи, ссылки + выжимка из темы "Вопросы новичков, ТОМ 1" + выжимка из темы "Вопросы новичков, ТОМ 2" + выжимка из старых тем. ПОСТИТЬ ЗАПРЕЩЕНО ВСЕМ, КРОМЕ МОДЕРАТОРОВ РАЗДЕЛА. |
Feb 12 2005, 22:02
Сообщение
#2
|
|
Level 5 Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени |
BioWare Aurora Neverwinter Nights Toolset (На русском языке от Aiwan)
Далее ответы на некоторые распространенные вопросы. (могут быть пересечения с тутором) ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> Как пользоваться хаками? <span style='color:red'>ОТВЕТЫ</span> Тема по хакам 1 Тема по хакам 2 В том же резделе еще про них есть. 1) Кидай хак в папку haks. 2) В модуле в свойствах найди закладку, посвященную хакам (Custom Content). 3) Подключи нужный тебе хак и работай. ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> CreateObject(...); - создает по Blueprint ResRef или по тэгу? <span style='color:red'>ОТВЕТЫ</span> CreateObject(...); - создает по Blueprint ResRef Создавать можно только итемы, NPC, плейсы, магазины и вейпоинты. ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> Как сделать чтоб гадкая маленькая буковка "я" не делала ошибки в скриптах? <span style='color:red'>ОТВЕТЫ</span> Neverwinter Script //================ Буква Я в стрингах (Автор Lex) ============================ string ya = GetName(GetWaypointByTag("YA")); // "+ya+" - так ее использовать //================ Буква Я в стрингах (Автор Lex) ============================ DelayCommand(5.0, SpeakString("Да. Ключика у теб"+ya+" нет.")); Для работы этой схемы необходимо, чтобы в модуле был waypoint с tagом "YA" и именем "я" -------------------------------------------------- в скриптах я делаю так: - пишу сначала весь тест, какой должен быть в скрипте с буквами я. - запускаю find and replace и меняю я на "+ya+" ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> Для того чтобы садиться на стулья скрипт нужен? <span style='color:red'>ОТВЕТЫ</span> Да. ActionSit(object oChair); на OnUsed стула. ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> В упор не могу найти в палитре стойку бара (или что-то вроде). Облазил все, что можно, но всеже нигде нету. Не ужели ее в стандартной палитре нету? <span style='color:red'>ОТВЕТЫ</span> Нет, но можно составить стойку из квадратных столов. Составляешь в ряд, и получается стойка. ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> Есть диалог, в котором должно быть две ветки. Первая, в случае истинности условия, вторая в случае его ложности. Объясните поподробнее, куда должен вставляться скрипт и как его писать. (условие - наличие оружие в руках героя). <span style='color:red'>ОТВЕТЫ</span> Ставишь один лишь скрипт на TextAppearsWhen в первой ветке. Neverwinter Script int StartingConditional() { object oPC = GetPCSpeaker(); if (GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC) != OBJECT_INVALID){ // оружие в руке return FALSE; } return TRUE; } ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> У меня есть охранник в таверне, он предупреждает о том, что оружием размахивать нельзя. У всех НПС и предметов, onDamaged висит скрипт действий - менять факцию дебошира на хостайл, но это не логично: он ведь не напал ни на кого лично. Он просто чуть-чуть побуянил. Как поступить? Если его факцию выставить хостайлом по отношению с гардом, то остальные ПС могут обидится - они то не причем.. Что делать: Делать отдельную факцию для дебоширов или есть другой способ? Проблемма с тем, что если PC обидит гарда (сломав стул, напав на НПС), то другой РС зашедший в таверну, тоже получит от тролля в носяру. <span style='color:red'>ОТВЕТЫ</span> Сделай в таверне фракцию, чтобы каждый из коммонеров был друг к другу нейтрален. -------------------------------------------------- Делай гардов обсалютно нейтральными ко всем кроме друг друга и если ты напал на кого-то из посетителей, то вешай через он OnDamaged на оРС локалку а у гардов проверяй ее на OnPerception. Можно стереть ее через часик, типа оттаял и спеак стринг типа: "А, это ты, ну входи...входи..." -------------------------------------------------- Для этого существует PersonalReputation... Хотя... проще наверное действительно, как написано выше. Если, охранник обижается, то на нем ставится переменная: OBJECT_SELF - охранник, oPC - игрок, на которого обиделся. Neverwinter Script SetLocalObject(OBJECT_SELF, ObjectToString(oPC), oPC); и сразу за ней Neverwinter Script DelayCommand(240.0, SetLocalObject(OBJECT_SELF, ObjectToString(oPC), OBJECT_INVALID)); // 4 минуты реального времени (2 часа игрового) // Это чтобы "стиралась" репутация через 4 минуты... Ну а в OnPerception ставишь типа: Neverwinter Script if (GetLocalObject(OBJECT_SELF, ObjectToString(oSeen)) == oSeen) { ClearAllActions(); SpeakString("Вандал! Банзай!"); ActionAttack(oSeen); // и тд.. } else { SpeakString("Проходи, присаживайсЯ."); } ЗЫ. Этa "система" не претендует на звание отработаной и отлаженой. В нее надо еще вносить и вносить. Это лишь каркас. ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> И как сделать чтоб Визуал эффект был без звука? <span style='color:red'>ОТВЕТЫ</span> Отредактировав соответствующий 2da. Скриптами нельзя. ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> Есть ли возможность открыть аврору без установленной игры? <span style='color:red'>ОТВЕТЫ</span> Заходишь на nwnights.ru и качаешь там тулсет-бета 240 метров с гаком. Но это будет уже не полноценный редактор. ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> Есть какой нибудь учебничек для начинающих? <span style='color:red'>ОТВЕТЫ</span> 1. Статьи у нас на сайте (на русском). 2. NWN Lexicon (на инглише). ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> Можно ли сделать так, чтобы при создании персонажа вместо ПБ кидались кубики (как по AD&D). <span style='color:red'>ОТВЕТЫ</span> Для однопользовательской игры можно сначало создать персонажа, а потом руками отредактировать его характеристики, самостоятельно эмулируя броски кубиков. Для редактирования можно воспользоваться программой LETO, которую можно найти на ваулте. ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> Можно ли персонажу крылья прикрутить или что-нибудь такой супер-клёвое как у монстров? <span style='color:red'>ОТВЕТЫ</span> Это можно сделать редактором LETO. ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> Можно ли поменять экран при загрузке модуля или локации? <span style='color:red'>ОТВЕТЫ</span> Можно, редактированием loadscreens.2da. Есть утила специальная на ваульте, которая делает в нужном формате этот скрин. ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> Как сделать чтоб корабль плыл (ковер-самолет летал, повозка ездила и т.д.)? <span style='color:red'>ОТВЕТЫ</span> Для этого необходимо переделать плейс (placeable) корабля в крича (creature). Тогда этим объектом можно будет управлять с помощью процедуры ActionMoveToObject(). Однако, по воде передвигать корабль всё равно не получится, т.к. по воде нельзя двигаться вообще - это запрещено движком. ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> Можно ли в Aurora Toolse'ере изменить или создать свою систему боя и создать новые классы? Или если можно другой прогой то скажите плиз какой. <span style='color:red'>ОТВЕТЫ</span> Систему боя скорее всего нельзя... А вот классы вполне можно. Но не программой, а ручками, поковыряв и дополнив некоторые 2da-файлы (classes.2da, ссылка на тему 2да ТАБЛИЦЫ в начале поста) ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> как правильно управлятся с освещением в Toolset'е? <span style='color:red'>ОТВЕТЫ</span> Делай так: выбери работу с тайлами в тулсете и выдели комнату, нажав Del и зажав левой кнопкой выбери группу тайлов заключающую в себя весь периметр. Дальше нажми правой кнопкой мыши и выбери свойства. Там будут опции овещения тайлов (палитра квадратиков). Она содержит общий свет, отражение, свет факелов и их отражение. Вот возьми и окрась темным светом в одной комнате и светлым в другой. Один цвет это общий оттенок, другой вроде как отражение. ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> Как сделать так, чтобы игрок мог подниматься выше 40 уровня. <span style='color:red'>ОТВЕТЫ</span> Никак. ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> Когда локацию делаешь, теги и ресрефы менять абсолютно на все плейсеблы? <span style='color:red'>ОТВЕТЫ</span> Нет. Все зависит от того, будешь ли ты использовать эти (что находятся в локации) объекты из скриптов. Если да, то лучше сделать им уникальный тэг. поменать резреф объекта, что стоит в локе все равно нельзя. ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> Нужно ли все, что есть в локации добавлять в палитру? <span style='color:red'>ОТВЕТЫ</span> Нет, не обязательно. Кастомная палитра сделана для 2-х целей: 1. Ты планируешь делать из скрипта CreateObject данного объекта. 2. Для удобства заполнения других лок (если вломы юзать Ctrl+C, Ctrl+V). ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> Можно ли добавить плейсеблы из хака в палитру скопом? <span style='color:red'>ОТВЕТЫ</span> Нет. Плэйсы появятся при добавлении хака только в Appearance (model view). Для того, чтобы юзать плэйс в модуле, ему впервую очередь нужен уникальный ResRef и собсна описание модели в этом ресрефе. Потому и делается все ручками. ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> Где в модульных свойствах прописано с какими вещами и количеством голда будет появляться игрок впервые вошедший в модуль? <span style='color:red'>ОТВЕТЫ</span> Это делается не в модульных свойствах, а в скрипте на событии OnClientEnter (в свойствах модуля): Neverwinter Script void main() { object oPC = GetEnteringObject(); if (GetLocalInt(oPC, "ENTERING_ONCE") == 0) { GiveGoldToCreature(oPC, 1000); // даст 1000 "зелени" CreateItemOnObject("resref_item", oPC, количество); // вроде так... функция эта, но могу ошибаться в параметрах. SetLocalInt(oPC, "ENTERING_ONCE", 1); } } PS. Вполне допускаю, что это не самый правильный скрипт для шарда, потому как значение "первый-непервый раз" лучше хранить в БД, а не на чаре. ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> Как сделать так, чтобы дверь закрывалась сама после открытия? <span style='color:red'>ОТВЕТЫ</span> Neverwinter Script void main() { DelayCommand(14.9,ClearAllActions()); // Через 15 секунд DelayCommand(15.0,ActionCloseDoor(OBJECT_SELF)); // захлопнет дверь DelayCommand(20.0,SetLocked(OBJECT_SELF, TRUE)); // и закроет дверь на ключ через 20 сек } ************************************************** ***************************** <span style='color:red'>ВОПРОС</span> Как сделать так, чтобы отдыхать можно было только в определенных зонах? <span style='color:red'>ОТВЕТЫ</span> 1. рисуем тригер и растягиваем его во всю комнату, где можно будет отдыхать. на OnEnter тригера вешаем скрипт: Neverwinter Script void main() { object oPC = GetEnteringObject(); if (!GetIsPC(oPC)) return; SetLocalInt(oPC, "REST_ALLOWED", 1); } на OnExit: Neverwinter Script void main() { object oPC = GetExitingObject(); if (!GetIsPC(oPC)) return; SetLocalInt(oPC, "REST_ALLOWED", 0); } идем в скрипт на OnPlayerRest и в самом начале скрипта добавляем проверку: Neverwinter Script object oPC = GetLastPCRested(); if(GetLocalInt(oPC, "REST_ALLOWED") !=1) AssignCommand(oPC, ClearAllActions()); теперь игрок сможет отдыхать только если он находиться внутри специального тригера ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> Как у непися сделать диалог, зависящий от расы, класса и пола? Например, девушку приветствует одним образом, девушку-воина другим, эльфа-мага -- третьим, и так далее.. <span style='color:red'>ОТВЕТЫ</span> Вариант 1: Через токены. Neverwinter Script SetCustomToken(int,string); int номер кастомного токена, а string это собсна текст. ПРИМЕР: SetCustomToken(100,"эльфийка"). потом в диалоге написать: "Привет, <CUSTOM100>" А в игре будет так: "Привет, эльфийка" Если вы эти токены хотите определить и не менять (те создать свой набор и пользоваться ими в диалогах) то удобнее всего оформить их создание при загрузке модуля. Вариант 2: выбираешь опцию text appears when, туда ставишь скрипт проверки на рассу/класс/пол и пишешь соответствующий диалог. Единственное неудобство - приходится писать много разных вариантов для обоих полов каждой расы. пример скрипта: Neverwinter Script int StartingConditional() { int iPassed = 0; // Число iPassed равно нулю if(GetLevelByClass(CLASS_TYPE_FIGHTER, GetPCSpeaker()) >= 1) // если уровень класса воин у говорЯщего РС больше или равен единички то iPassed = 1; // ТО число iPassed равно единицы // а то что снизу это уровнение как бы с сокращением. Вверху это как бы записи: // пусть Х=тому то У= тому то бла бла а внизу в чистом виде y=x+z // Если число iPassed равно нулю, то ничего не произойдет и ... if(iPassed == 0) return FALSE; // возврат (return) ЛОЖЬ (FALSE), то есть скрипт не вернется в самый верх // к функции int StartingConditional() и не прикажет ей начать диалог с // персонажем показав именно ЭТУ строку удовлетворЯющую ее запросам return TRUE; // Это второе условие, т.е. скрипт как бы пробежал по коду и если iPassed = 1; // то он даже не опустится к return FALSE; так как у нас единичка и он сразу // побежит читать что еще там ниже. А ниже "return TRUE;" что значит возврат // ИСТИНА, и он типа: ОПА! И запускает функцию ктороая быстренько тормозит // пролетающую проверку движком по всем корневым строкам НПС сверху вниз } ставим этот скрипт на в слоте text appears when на той строке, где у нас ветка для воинов. Скрипты такого рода делаются ScriptWizardом. Только не забудте удалить русские буквы "я" в комментариях, если у вас русская версия НВН ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> Как заставить НПС говорить подругому в диалоге если игрок уже с ним 1 раз поговорил. <span style='color:red'>ОТВЕТЫ</span> Скриптами. 1. d_st_firsttalk Neverwinter Script void main() { SetLocalInt(OBJECT_SELF,"FirstTalk",TRUE); } 2. d_ch_firsttalk Neverwinter Script int StartingConditional() { return GetLocalInt(OBJECT_SELF,"FirstTalk"); } Ставим скрипт 1 в том месте диалога (в закладку Actions), после прохождения которого НПС будет "знать" игрока и в след. диалоге уже говорить с ним как с знакомым. (например после того, как игрок представился) Ставим скрипт 2 на той ветке, которая должна быть, если НПС знает игрока. (в закладке text appears when) ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> Вобщем нужен скрипт, чтоб в разговоре при фразе например: "Я слаб, вылечи меня" с перса снимались все вредные эффекты, полностью востанавливалисб хитпоинты и было это бесплатно... <span style='color:red'>ОТВЕТЫ</span> Вешаешь как действие на ветке диалога. Лечит все ХП и снимает эффекты. Neverwinter Script #include "nw_i0_plot" void main() { object oPC = GetPCSpeaker(); int iHP =GetMaxHitPoints(); effect eHeal = EffectHeal (iHP); effect eHealVis = EffectVisualEffect (VFX_IMP_HEALING_X); ActionCastFakeSpellAtLocation(SPELL_HEALING_CIRCLE ,GetLocation(oPC)); DelayCommand (2.0,ApplyEffectToObject(DURATION_TYPE_INSTANT,eHeal,o PC)); DelayCommand (2.0,ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eHeal Vis,oPC,10.0)); DelayCommand (2.0, RemoveEffects(oPC)); } ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> Как сделать так, чтоы у NPC с самого начала было не максимальное количество здоровья? Чтобы NPC был раненый. <span style='color:red'>ОТВЕТЫ</span> В слот OnSpawn добавить такой код: Neverwinter Script object oNPC = OBJECT_SELF; int iD = 30; // Величина повреждений effect eDamage = EffectDamage(iD); ApplyEffectToObject(DURATION_TYPE_INSTANT,eDamage, oNPC); ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> В НВН ХотУ у хенчей можно просмотреть инвентарь из радиального меню. А у простых НПС которые к тебе присоединяются - нельзя. Как сделать чтобы это стало возможным? <span style='color:red'>ОТВЕТЫ</span> поставить НПСу скрипты хенчшей. (важен именно скрипт onConversation. Там подключается библиотека, где прописаны все реакции на радиальное меню, ведь это на самом деле слова, сказанные шепотом) ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> напишите полный скрипт с объяснением, как перепрыгуть NPC`у в другую локацию <span style='color:red'>ОТВЕТЫ</span> Neverwinter Script ... objectoHome = GetObjectByTag("mn_Portal"); location lHome = GetLocation(oHome); JumpToLocation(lHome); ... Существует объект с тэгом mn_portal. Это любой размещаемый объект, можно (и желательно) WayPoint (точка пути). Объект может быть размещен где угодно. Даже на другой зоне (area). Во-первых получаем сам объект: Тип данных object хранит объект (на самом деле лишь ссылку на него, но это не важно). object oHome = GetObjectByTag("mn_Portal"); Функция GetObjectByTag возвращает "ссылку" на объект с тэгом, заданным параметром. В данном случае мы передаем тэг объекта "mn_portal" (string) получаем объект с тэгом "mn_portal" (object). Во вторых получаем координаты объекта: location lHome = GetLocation(oHome); Тип данных location хранит координаты (и много чего другого). Функция GetLocation возвращает координаты объекта, заданного параметром. В данном случае, параметром является объект с тэгом "mn_portal" (object), и получаем полные координаты размещаемого объекта (location). В-третьих совершаем само перемещение: JumpToLocation(lHome); Функция JumpToLocation перемещает объект OBJECT_SELF (в основном это будет PC) в место как можно ближе к координатам, указаным в параметре. Т.е. если в точке приземления будет стол, то перс окажется рядом со столом. Если точка перемещения окажется слишком близко, объект перемещения может просто сделать шаг. ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> Есть НПС у которого диалог. Игрок может выбрать что ответить, а может просто нажать "Esc" и диалог убереться. Как отследить что игрок снимает диалог? <span style='color:red'>ОТВЕТЫ</span> Последняя вкладка в диалог эдиторе там типа события End Normal и End Abort... ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> В тулсете под палитрой есть чекбокс "Show Plot". Если на нем поставить галочку появляется Plot Wizard, Non Plot Wizard. Что это такое и с чем его едят? <span style='color:red'>ОТВЕТЫ</span> Это для того, чтобы писать простые (принеси, убей) квесты визардом. Никогда не пользовался, хотя разобраться, вроде разобрался с ним. Ничего сложного. ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> Как игровому персу присобачить какиенибудь крылья, или хвост? <span style='color:red'>ОТВЕТЫ</span> Скриптами никак, наверное. Это рассовый признак. Те 2да файлы. ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> А вот у меня вопрос не по скриптам , я создал предмет у торговца (еда) но у него она стоит 1gp как сделать так чтобы она стоила 10? <span style='color:red'>ОТВЕТЫ</span> Стоимость товара у торговца зависит от многого. В основном, от процентной наценки торговца и от умения персонажа торговаться. Но и у предмета есть стоимость (в самой первой вкладке в свойствах предмета, слева-сверху). Она зависит от предмета (точнее, от того, как она прописана на предмет в файле 2da ), но есть и параметр Дополнительной стоимости (вроде непосредственной и необоснованной наценки) он расположен как раз под "зарядами" на той же самой первой вкладке. Увеличь ее на сколько нужно. ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> Как сделать скрипт чтобы охранники злого города атаковали и тд? <span style='color:red'>ОТВЕТЫ</span> добавка к стандартному скрипту onPerception: Neverwinter Script object oPC = GetLastPerceived(); int iSeen = GetLastPerceptionSeen(); int PCAL = GetAlignmentGoodEvil(oPC); if (GetIsPC(oPC)) { if (iSeen) { if (PCAL!=ALIGNMENT_EVIL) DetermineCombatRound(oPC); } } Это для охраны злого города. Остальное по аналогии. Есть минусы, ессно. Но суть ясна. ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> Как сделать так, чтобы гварды атаковали всех у кого нет определенного предмета? <span style='color:red'>ОТВЕТЫ</span> добавка к стандартному скрипту onPerception:: Neverwinter Script object oPC = GetLastPerceived(); int iSeen = GetLastPerceptionSeen(); int ITM = HasItem(oPC,"TAG_OF_ITEM"); if (GetIsPC(oPC)) { if (iSeen) { if (!ITM) DetermineCombatRound(oPC); } } Для работы этого куска кода надо добавить в начале скрипта, до void main() вот это : #include "nw_i0_plot" ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> Как реализовать респаун вещей в сундуках по времени(шмотка фиксовая сундук бессмертный)? <span style='color:red'>ОТВЕТЫ</span> в закрытой локации ставим creature и ставим в слот onSpawn такой скрипт: Neverwinter Script void main() { object oChest = GetObjectByTag("YOUR_PLOT_CHEST"); object oItem = GetFirstItemInInventory(oChest); while GetIsObjectValid(oItem) // отчистка сундука от всего, что в нем есть { DestroyObject(oItem); oItem = GetNextItemInInventory(oChest); } CreateItemOnObject("TAG_OF_ITEM",oChest,1); // создание фикс. вещи ExecuteScript(600.0,"spw_chestmaster"); // через 600 секунд повторить. } ************************************************** ****************************** <span style='color:red'>ВОПРОС</span> Как увеличить опыт за убийство мобов? <span style='color:red'>ОТВЕТЫ</span> 1. В настройках модуля есть XP Scale. Подвигай ее. 2. За то, сколько игрок получает экспы при убийстве моба отвечает его (моба) CR. Чем он выше, тем экспы больше. Закладка Advansed в свойствах модуля. 3. в Скрипте onDeath для мобов написать свою систему дачи экспы. XP Scale тогда надо выставить на 0. ************************************************** *************************** |
Feb 13 2005, 19:19
Сообщение
#3
|
|||||||
Level 5 Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени |
ВОПРОС Обычная одежда считается доспехами. Если использовать первые несколько вариантов для торса, когда создаёшь камзол, например, то бонуса к защите нет, но таких вариантов маловато. Хочется использовать и те, что ниже по списку, однако движок тогда автоматически добавляет бонус к защите. А этого вовсе не нужно. Как избавиться от бонуса? ОТВЕТЫ Нужно все арморы вырезать из ресурсов, переименовать их модели и кинуть в хак, потом в 2Да этим арморам написать класс брони 0. ***************************************************************************** ВОПРОС как оттуда достать вещи плейсблы и модели одежды, которые мне нужны, т.е. какие файлы отвечают за анимацию, текстуры и т.п. ОТВЕТЫ - Если в крацах: Анимация находится в самих моделях или ссылается на другие модели. Модели: MDL- иногда в паре с файлом: wok(тайлы), pwk (плейсиблы), dwk (двери) Текстуры: DDS, TGA, PLT, TXI - других недано. (plt - только с персонажами т.е броня тоже персонаж, а вот оружие нет ) Конфигурационные файлы (2да-шки) Собст-но сами 2DA Потом: SET - описание тайлов тайлсета ITP - "палитра" тайлсета. UTP, UTI и т.д - предметы (ресрефы) палитры. ***************************************************************************** ВОПРОС Далее вопрос: скачал я хак с тайлсетами(аж 25 штук(называется что-то вроде 25in1)), но многие тайлсеты просто сакс. Как мне удалить ненужные и внести туда еще парочку. ОТВЕТЫ Тайлсеты обычно обзывают первыми тремя буквами т.е к примеру НВН-шный лес это ttf - файлы связаные с ним начинаются так же модели к примеру: ttf01_a01_01, сет файл ttf01.set, итп-шник ttf01pastd.itp и т.д иногда вводят изменения ещё и в пару 2да-шников, кроме того незабудь про текстуры как их обзывают обычно всё равно т.к они могут использоваться в разных тайлсетах ) ***************************************************************************** ВОПРОС Как добавить в НВН свои портреты? ОТВЕТЫ Для того, что бы появились новые портреты в вашем модуле надо изготовить простой Hak. Для начала, нужно выбрать портреты или изготовить их самим, строго соблюдая правила. Всего используется пять портретов для разных ситуаций. Габариты всех пяти изображений должны быть следующими: 256x400 (в общем 256x512 пикселей) - используется в игре, как изображения для биографии. 128x200 (в общем 128x256 пикселей) - используется в окне информации об игроке. 64x100 (в общем 64x128 пикселей) - используется в игровом портрете, тот, что в правом, верхнем углу. 32x50 (в общем 32x64 пикселей) - используется в качестве портрета наемника. 16x25 (в общем 16x32 пикселей) - используется в окне событий thumbnail.
Все пять изображений в *.tga формате, "24 bits" и "uncompressed". Имена должны быть специальными, смотри ниже. xxxxxxxxxxxxxxxh.tga (для 256x512) xxxxxxxxxxxxxxxl.tga (для 128x256) xxxxxxxxxxxxxxxm.tga (для 64x128) xxxxxxxxxxxxxxxs.tga (для 32x64) xxxxxxxxxxxxxxxt.tga (для 16x32) Префикс "xxxxxxxxxxxxxxx" - имя портрета, файла. Максимальное число символов 15. Префиксы "h", "l", "m","s", и "t" означает размер изображения (Huge, Large, Medium, Small, and Tiny), это необходимо для игры. Для простоты использования назовем наши портреты «po_user1_», «po_user2_», «po_user3_» и т.д. В таблице 2Da файла мы пометим их как сюжетные (plot). В результате все наши портреты окажутся в разделе вместе с Арибет, Лордом Нашером и другими сюжетными персонажами. Возьмем стандартный portraits.2da в папке \source в вашей проинсталлированной игры. Откроем его редактором 2da или простым WordPad-ом. После всех портретов прописанных BioWare добавьте свои. Теперь откройте папку \Shadows of Undrentide\utils и запустите nwhak.exe. Создайте новый хак с именем, например Demo.hak и сохраните его. Теперь добавьте в него через меню Resource, Add (Ctrl+A) свой отредактированный portraits.2da и все ваши портреты с именами po_userХ_. Сохраните. Теперь зайдите в модуль и подключите этот хак к своему модулю. Зайдите в свойства NPC в раздел портрета и выберете портреты сюжетных персонажей. Если вы сделали все, как я сказал, то увидите ваши портреты там.
(IMG:http://wrg.ru/shots/scr_39.jpg) Рис. 39. Если вы любитель порядка во всем, то захотите сделать портреты и разместить их для каждой расы отдельно. Тогда вы должны знать следующие правила: Например, наш портрет дварфа po_dw_m_50_x.tga (пример, строка 704, Рис. 39, 40.) , вот значения в колонках: 1 - порядковый номер; 2 - имя портрета без po_ и X; 3 - пол персонажа на портрете (0 – мужской, 1 – женский, 3 – любой, 4 - для монстров, чтобы игрок не мог выбрать себе такой портрет); 4 – раса; игровые расы: (0 – Dwarf, 1 – Elf, 2 – Gnome, 3 – Halfling, 4 – Half-Elf, 5 – Half-Orc, 6 – human); неигровые расы: идут в алфавитном порядке (с «А» (7) до «V» (25)); 5 – обозначает тип портретов для placeables objects; 6 – plot (при 0 - портрет виден всем, при 1 - только квестовым персонажам)
(IMG:http://wrg.ru/shots/scr_40.jpg) Рис. 40. Все имена с PLC_ в начале относятся к картинкам для placeables. Есть еще картинки для дверей и т.п. Но это уже другая история… Не забудьте, что файлы портретов будут зваться po_**** (прим. "po_user1_m"), хотя в 2да-шке надо писать user_1. ***************************************************************************** ВОПРОС Как сделать небо в ХОТУ? ОТВЕТЫ Берешь локацию. И в ее свойствах открываешь закладку Визуальой среды, там жмешь на настройку, и снизу есть такая вещь Skybox. По умолчанию стоит None, вот поставь там любое небо. Потом в опциях самой игрны надо поставить флажок, чтобы небо отображалось. ***************************************************************************** ВОПРОС Как открыть модули офицальной компании в Тулсете? ОТВЕТЫ Скопировать из папки nwn нужный модуль и изменить *.nwn на *.mod ***************************************************************************** |
||||||
Mar 18 2005, 19:14
Сообщение
#4
|
|||||||||||||||||||||||||
Level 5 Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени |
ВОПРОС Как сделать раненого НПС? Те чтобы он с самого начала был ранен. ОТВЕТЫ в OnSpawn скрипт этому NPC добавить это:
***************************************************************************** ВОПРОС НПС1 дает задание убить НПС2. Как сделать, чтобы в диалоге с НПС1 появилась надпись "Я выполнил задание" после убийства НПС2? ОТВЕТЫ В скрипт OnDeath НПС2 добавить строку:
Затем в диалоге с НПС1 на строку "текст появляется при" такой скрипт:
***************************************************************************** ВОПРОС Как сделать плащ-нивидимку? ОТВЕТЫ 1. на OnPlayerEquipItem модуля...
на unEquip эффект снимай
***************************************************************************** ВОПРОС Можно ли сделать так, чтобы стало возможно говорить со статуей? Или другим неодушевленным предметом ОТВЕТЫ Добавить объекту диалог (закладка Advansed) и на OnUsed объекта поставь скрипт:
Если надо поговорить с вещью, которая в инвентаре, то так: Добавить предмету свойство (если разговор, то лучше уникальное свойство - на себя). Соотв не забыть про то, что такое использование либо использует charges либо может быть вызвано Х раз в день. Настройте этот момент, как вам нужен. Далее в скриптах модуля в слоте onActivateItem пишите что-то вроде этого:
***************************************************************************** ВОПРОС Есть ли скрипт повышающий статы или навыки на один или несколько пунктов. (Повышает, а не изменяет). ОТВЕТЫ В диалоге на закладку Actions Taken
***************************************************************************** ВОПРОС Как сделать статую из живого НПС или монстра? ОТВЕТЫ
Но есть 1 минус. Статуя поворачивается, если на нее кликнуть. ***************************************************************************** ВОПРОС Есть способ заставить определенный тип оружия наносить больше атак за раунд? кроме фитов rapid shooting и cleave? ОТВЕТЫ Кроме множества фитов, можно в скрипты на OnPlayerEquipItem и OnPlayerUnEquipItem встроить такое: 1. x2_mod_def_equ.nss
2. x2_mod_def_unequ.nss
можно заменить на любое другое условие.
Изменение количества атак не отображается в листе параметров персонажа. Добавочные атаки идут с бонусом первой атаки. GetEffectType для данного эффекта возвращает значение 0, что настораживает. Тем не менее скрипты я проверил работали нормально. ***************************************************************************** ВОПРОС Как заставить моба нормально пользоватся хайдом? Есть ли какие нибудь скрипты? ОТВЕТЫ Если вопрос про моба-шадоудансера, то самый простой путь, который мы с Ярлом нашли не требует написания никаких скриптов. Все что надо, это не давать мобу НИКАКИХ активных боевых фитов (т.е. кнок, дизарм и т.д.). В этом случае, стандартные скрипты очень здорово позволяют ШД прятаться во время боя. ***************************************************************************** ВОПРОС Что делать если глючит русский шрифт в scripteditor'е. Те переношу туда откуда-то русский текст, а получаются какие-то значки непонятные. ОТВЕТЫ В scripteditor'е последняя иконка на панели - настройка шрифтов, цветов и прочее. Выберите там другой шрифт. ***************************************************************************** ВОПРОС Как задавать из тулсета создаваемой вещи какой-либо из скрытых цветов? ОТВЕТЫ Черный, белый, золотой,медный, зеркальный,серая ткань и еще два подвида черного и белого задаются там же, где и выбираются стандартные цвета. Инструкция: 1. Зажимаешь кнопку мыши на любом цвете. 2. Тянешь мышь в пустое пространство между палитрой и кнопками OK и Сancel(cерая зона). 4. Отпускаешь кнопку мыши, выбирается квадрат в серой зоне. Вместе с ним изменятся и цвет. Квадратов несколько. ***************************************************************************** ВОПРОС ОТВЕТЫ ***************************************************************************** ВОПРОС ОТВЕТЫ ***************************************************************************** ВОПРОС ОТВЕТЫ ***************************************************************************** ВОПРОС ОТВЕТЫ ***************************************************************************** ..20.. |
||||||||||||||||||||||||
Mar 18 2005, 19:18
Сообщение
#5
|
|||||||||||||||||||||||||||||
Level 10 Класс: Монах Характер: Lawful Good Раса: Человек NWN: Контент |
ВОПРОС Как сделать так, чтобы доступ в локацию был ограничен по левелу? То есть 3 левел еще может туда попасть а 4 уже нет? ОТВЕТЫ На OnEnter триггера ставится следующий скрипт. Этот скрипт всех других НЕ ПУСТИТ в локу. Монстров и прочее. Отредактировать под собственные нужды.
***************************************************************************** ВОПРОС Нет, я все таки не понимаю, как сделать тоже самое, но не с триггером или дверью, а с плэйсиблом? ОТВЕТЫ NPC по объекту кликнуть НЕ МОЖЕТ. Поэтому проверка на переход непися или PC - не нужна. Хенчи и прочие соратники движутся за игроком, в основном, по ActionForceFollowObject(oPC, 5.0, 15.0). И, следовательно, переходят за PC через 15 секунд, если тот дальше, чем 5 метров от них. На OnUsed предмета ставится скрипт:
***************************************************************************** ВОПРОС У меня в модуле, при перезаходе в него, восстонавливаются хит поинты и заклинания, а как сделать так, чтобы этого не происходило, и все запоминалось? ОТВЕТЫ Скрипт для сохранения здоровья и спеллов при перезаходе: событие OnClientEnter модуля:
OnClientLeave
***************************************************************************** ВОПРОС Как "выпотрошить" файл с расширением .hak для того, что бы его компоненты пошли в Оверрайд? ОТВЕТЫ В папке с игрой есть папка utils, а в ней утилита от BioWare для работы с hak-файлами. Называется nwhak.exe. ***************************************************************************** ВОПРОС Как с помощю скриптов создавать визуальные (и только визуальные) эффекты заклинаний? ОТВЕТЫ С начала, надо объявить переменную, содержащую эффект:
А затем, использовать функцию, применяющю эффект на объекте или на местности:
или
Так же, существует возможность применять "липовые" заклинания. Они не наносят повреждений, а в остальном, действуют, как настоящие:
или
***************************************************************************** ВОПРОС Как открыть модуль, созданный в более поздней версии тулсета? ОТВЕТЫ Предварительно создать копию модуля и использовать только на свой страх и риск! Качаем NWN Packer http://nwvault.ign.com/Files/other/data/1026158289668.shtml Качаем GFF Editor http://nwvault.ign.com/Files/other/data/1054162676171.shtml Открываем модуль NWN Packer'ом. Выдергиваем module.ifo Сохраняем этот файл где нибудь на жестком диске. Не закрывая NWN Packer, запускаем GFF Editor. Открываем в нем наш module.ifo. Открываем списочек и ищем Mod_MinGameVer Видим там.. Ну я например сейчас вижу 1.62 Меняем на ту версию какую нам надо. Сохраняем module.ifo. Закрываем GFF Editor. И перетаскиваем только что сохраненный нами module.ifo в еще не закрытый нами модуль в NWN Packer'е. Он спрашивает заменить файл? Отвечаем да, и сохраняем модуль - вуаля! ***************************************************************************** ВОПРОС Как увеличить дальность обзора? ОТВЕТЫ edit -> area properties -> visual -> customize environment Можно поставить 500-1000, но тогда сильно увеличится затрата ресурсов игрой (лагать будет). Можно убрать и полностью. Но в этом случае будет заметна "граница" модуля. Там где заканчиваются тайлы и начинается серая "пустота". Это достигается расширением "сферы" тумана, до 300-350 фунтов и управляется только через MOD-файл непосредственно "вскрытый" редактором. ***************************************************************************** ВОПРОС Здраствуйте, я вот тут захотел сделать простейший стационарный квест, но в этом я полный 0. 1) Как сделать чтобы при первом разгооре игрока с НПС показывался первый диалог; 2) После первого разговора включался второй диалог; 3) Как сделать проверку на наличие предмета у игрока? Например ели у игрока есть например ключ ему включался определеный диалог (тоесть вот смотри пункт 2, идет второй диалог. и там спрашивають.ты добыл ключ? говориш да, и делаеться проверка на наличие) 4) После того как квест выполнен включался следующий диалог ОТВЕТЫ Делается очень легко - с пмощью Локальных переменных... Как ты мог догадатсья, полистав словарик или просто почитав надписи в тулсете при создании конверсейшна: TextAppearsWhen - значит "Текст появляется когда..." и там нужно выбрать скрипт. Это значит что в скрипте задаются условия появления. (кстати там есть визард) ActionTaken - значит "Предпринимаемое действие" (или типа того), то есть - что-то происходит после того как игрко выбрал этот ответ в диалоге, или НПЦ вышел на ветку с этим скриптом... Тут опять же есть визард. Визард (Wizard) - помощник создания простых скриптов, отображается как шапочка... Итак, теперь рассказываю подробнее... Мы создаем все три ветки (для данного примера): - Привет, игрок -- Привет, нпц! - Есть ключ? -- Есть (проверка) -- Нету - Молодец, ты справился с квестом! Терь вали отсюдова! На первом диалоге (Привет, игрок) вешаем скрипт проверки локальной переменной, например назовем её - quest_prog (quest progress). Для этого можно использовать визард (пока в плане скриптинга обьяснять не буду - запустите визард, посмотрите на код и надеюсь все поймете) - визард в TextAppearsWhen (ТекстПоявляетсяКогда) - и там выбираем Local Variable, выбираем: int (числовая переменная, целая (не дробная)), пишем название переменной (q_prog), is less than (меньше чем), constant int (заданное число), 1. Далее на продолжении первого диалога ("привет, нпц!") вешаем скрипт (можно опять же визардом) на создании переменной q_prog и задачи ей числа 1. Set Local Variable (Задать локальную переменную), int, q_prog, constant int, 1. Теперь переходим к второй ветке диалога (есть ключ?) - надпись будет высвечиваться если q_prog равно 1. (Думай разберешься как сделать проверку ), ну а на ответе: (Есть) - делать првоерку на ключ... Опять же визардом: Item in Inventory и там вписываем тэг вещицы (лучше писать не попамяти - акопировать и вставлять...). Ну и Action Taken - присваиваем q_prog значение 2. И последнюю ветку вешаем првоерку, если q_prog равен 2. Раз стат квест - значит надо выдать награду. Выдавать награду можно опять же через ActionTaken (Give Rewards)... Примечание: если хочешь наградить вещью - то там надо вписывать ResRef вещит, а не тэг. Кстати попутно с квестом можно вести запись в дневнике (закладочка - Others... там думаю разберешься) ПРИМЕЧАНИЕ №1: Локальные переменные - остаюстя на игроке, так что в следущем квесте не используй переменную q_prog... ПРИМЕЧАНИЕ №2: Если хорошо подумаете - то сможете это все еще оптимизирвоать и улучшить... (хоят бы для повышения переменной - не обязательно использоват ьнесколько разных скриптов ) ***************************************************************************** ВОПРОС Как после конца квеста сделать так, что бы NPC исчезал (уходил)? ОТВЕТЫ Скрипт ставится на Action Taken того элемента разговора, после которого NPC должен изчезнуть.
WP_EXIT - объект, к которому пойдет (побежит) NPC. Чаще всего, на краю локации. ***************************************************************************** ВОПРОС Как сделать чтобы при заходе игрока на триггер NPC начинал диалог? ОТВЕТЫ
***************************************************************************** ВОПРОС Как сделать потайную дверь? Мне нужно, чтобы она появлялась только если у игрока есть определенный предмет в инвентаре и соотвественно, чтобы срабатывал в другую локацию. ОТВЕТЫ
***************************************************************************** ВОПРОС Можно ли запускать один скрипт из другого? И как? ОТВЕТЫ Можно:
Где sScript - имя исполняемого скрипта, а oTarget - объект, от лица которого скрипт будет запускаться. Этот объект в запускаемом скрипте будет OBJECT_SELF. ***************************************************************************** ВОПРОС ОТВЕТЫ ***************************************************************************** ВОПРОС ОТВЕТЫ ***************************************************************************** ВОПРОС ОТВЕТЫ ***************************************************************************** Сообщение отредактировал Lemegeton - Mar 18 2005, 21:07 |
||||||||||||||||||||||||||||
Sep 2 2005, 17:46
Сообщение
#6
|
|||||||||
Level 9 Класс: Страж Тьмы Характер: Chaotic Evil Раса: Нежить |
ВОПРОС: Возможно ли создавать собственные рассы, классы и т.д. в Аuror'е? ОТВЕТ: Возможность сделать новый класс,заклинание, фит, склилл в НВН'е, реализуется при помощи редактирования 2да файлов.Никаких специальный wizard'ов в тулсете нет. ************************************************* ВОПРОС: Как писать в скриптах по-русски? ОТВЕТ: Нужно скачать этот патч от dumbo. ************************************************* ВОПРОС: Как изменить элаймент НПС, мобу или игроку? ОТВЕТ: При помощи функции :
************************************************* ВОПРОС: Как поставить точку выхода монстров при респауне? ОТВЕТ: Очень просто. Растягиваем триггер спавна, затем щелкаем по нему правой кнопкой мышкой и нажимаем на "Добавить точку входа". Все, выход - готов. ************************************************* ВОПРОС: Какой утилитой можно вытащить ресурсы из hak-pack'a? ОТВЕТ: nwnkak.exe - она лежит в папке utils, что находится в корневой папке NwN. ************************************************* ВОПРОС: Как войти в игру под DM'ом? ОТВЕТ: Необходимо запустить DM-клиент. Запускам файл nwn.exe, что лежит в корневой папке игры, и в появившемся меню выбираем - "DM-клиент". ************************************************* ВОПРОС: При помощи какой программы я мог бы создать ролик к модулю? Как известно он должен быть в формате .bic ОТВЕТ: RAD Video Tools - конвертирует различные видео форматы в формат .bic Чтобы создать полноценный ролик от начала до конца потребуется работа 3D-моделлеров...ну или цифровая видео-камера :) ************************************************* ВОПРОС: Как заставить работать ветку диалога только если у игрока есть в наличии определенная сумма денег? ОТВЕТ: Поставить на ветку диалога в закладке "text appears when...", такой скрипт:
Сумму, конечно же, можно менять по своему усмотрению. ************************************************* ВОПРОС: Перевел ли какой-нибудь супер-герой Лексикон на русский? ОТВЕТ: Нет, потому как это бессмысленная работа. Лексикон постоянно обновляется, чтобы его перевести нужна работа большого кол-ва людей. А программеры с английским на "ты",да и язык простой. ************************************************* ВОПРОС: Как настроить то, что появляется в сундуках или выпадает с монстров? ОТВЕТ: Для этого надо написать целую систему лута. Или же использовать систему SoU - ее можно посмотреть открыв компанию SoU ************************************************* ВОПРОС: Что такое Впитывание повреждений? Предположим у нас есть мантия искателя приключений: +1 впитывание 30 поврежений ОТВЕТ: Это значит что весь урон меньше 31, который нанесен зачарованым оружием +1 и меньше, будет впитан(не насется) ************************************************* ВОПРОС: Как повесить локальную переменную на предмет? ОТВЕТ: Для этого существует специальная функция:
************************************************* ВОПРОС: Как сделать, чтобы при использовании уникальной силы вещи открывался диалог? ОТВЕТ: Для начала надо установить вещи уникальную силу, в ее св-вах. Потом в св-вах модуля на "OnActivateItem"
object oObjectToConverseWith - задает с кем будет идти разговор (ну конечно с вами) string sDialogResRef - пишем в кавычках название разговорника Если это значение не указано, то будет использован прикрепленный к объекту диалог. int bPrivateConversation - приватный разговор (TRUE) или это слышат все (FALSE) int bPlayHello - когда начинаешь разговор - скажи привет (TRUE) или тупо промолчи (FALSE) ************************************************* ВОПРОС: ОТВЕТ: ************************************************* Сообщение отредактировал Лито - Sep 5 2005, 21:17 |
||||||||
Sep 3 2005, 13:09
Сообщение
#7
|
|||||||||||||
Вечно меняющийся Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] |
ВОПРОС: Как сделать чтобы после, наступления игроком на триггер он уничтожался? ОТВЕТ: Добавить, в скрипт что стоит на триггере, следующую функцию:
*********************************** ВОПРОС: Как сделать, чтобы NPC был, был мертв? А на земле лежал его труп? ОТВЕТ: На onSpawn NPC, поставить вот такой скрипт:
*********************************** ВОПРОС: Почему у меня не работает скрипт, на взятие предмета? Я указал, тэг, все сделал но он не работает. ОТВЕТ: Нужно указывать, не ТЭГ, а предмета ResRef (Он, находится, чуть пониже ТЭГА) *********************************** ВОПРОС: Есть три точки перехода,из первой локи попадаешь во вторую из второй в третью.Так вот проблема в том что из локи №1 я попадаю в локу №3 сразу,хотя с триггерами все в порядке...что может быть? ОТВЕТ: Вероятно, были использованы, стандартные тэги. Каждой, двери/триггеру/вайпоинту, нужен свой уникальный тэг. *********************************** ВОПРОС: Каким образом в начале диалога делалась проверка на Пол игрока? ОТВЕТ: В заклатке "текст появляется при" есть изображение шляпки, нажимай на нее и там найдешь много стандартных проверок: способность, класс, раса, пол... Для, таких случаев, проще использовать визард. *********************************** ВОПРОС: Каким образом можно разговаривать с предметом? ОТВЕТ: На onUser, нужного тебе предмета, поставь простой скрипт:
Также, укажи, нужный тебе разговор. В поле Conversation(разговор) *********************************** ВОПРОС: Как из bmu в wav переименовать? ОТВЕТ: С помощью конвентатора MP3toBMU, который имеется, на сайте WRG! *********************************** ВОПРОС: В диалоге,NPC должен сдвинуть мою напрвленость в строну Добрый +1, как это сделать? ОТВЕТ:
Далее, можно самомоу, выбрать тип направленности. С помощью константы: ALIGNMENT_ *********************************** ВОПРОС: Как сделать хенчмана? (помощника) ОТВЕТ: Для начала, его нужно присоединить, к игроку. Вот, скрипт: (на ветку, в диалоге)
Потом, замени все стандартные скрипты NPC, вот такими:
*********************************** Сообщение отредактировал Dik Morris - Sep 3 2005, 13:23 |
||||||||||||
Sep 5 2005, 20:17
Сообщение
#8
|
|||||||||||
Вечно меняющийся Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] |
ВОПРОС: Как можно изменить внешность у NPC? Почему я не могу сделать это в свойствах NPC, т.к вкладка не активна? ОТВЕТ: Скорее всего, использована стандартная “Шкурка” NPC. У них менять нельзя, меняется только, у НПС с внешностью например: Человек, Гном и т.п *********************************** ВОПРОС: Как сделать, чтобы после диалога, NPC умирал? ОТВЕТ: Поставь на ветку диалога вот этот скрипт:
Обрати внимание на функцию, DelayCommand, с помощью нее можно регулировать время, через которое умрет NPC. Или вообще удалить, если нужно чтобы NPC умер мгновенно. *********************************** ВОПРОС: Как прописать скрипт, чтобы НПС все время ходил по двум, трем... вайпоинтам без остановки. ОТВЕТ: Щелкаешь на NPC, правой кнопкой мыши. Выбираешь, пункт: СОЗДАТЬ ТОЧКУ маршрута, создаешь нужное кол-во точек. Все. *********************************** ВОПРОС: Реплика игрока должна появляться, если золота у игрока более 2000. Как это реализовать? ОТВЕТ:
*********************************** ВОПРОС: У меня в Тулсете, не работают некоторые скрипты, сделанные с помощью Мастера Скриптов, в чем проблема? ОТВЕТ: А) Поставь патч, думбо. Б) Удали русские комментарии в скриптах. *********************************** ВОПРОС: Я делаю несколько вэйпоинтов для одного NPC. Начинаю игру и все NPC (а их 6!) ходят по этим вэйпоинтам. Что делать, чтобы по ним ходил только один? ОТВЕТ: Смени таг, остальным NPC. *********************************** ВОПРОС: После, смерти NPC, обновляется журнал, как это сделать? ОТВЕТ:
*********************************** ВОПРОС: NPC, должен забрать у меня определенное кол-во вещей, с одинаковым тагом. ОТВЕТ: С помощью функции (цитата, из перевода Валлео)
*********************************** ВОПРОС: Как добавить, несколько хенчманов? (Скажем больше 3) ОТВЕТ: В скрипт OnModuleLoad добавь строку: SetMaxHenchmen(5); *********************************** ВОПРОС: В диалоге, игрок, должен использовать убеждение, как это осуществить? ОТВЕТ:
Такие скрипты, делаются с помощью, скрипта. *********************************** ВОПРОС: Чем открыть расширение erf? ОТВЕТ: erf это файлы с ресурсами, создаются\открываются с помощью файл\импорт-експорт в тулсете они не содержат моделей или еще чего, они содержат только список характеристик, координат или скрипт. *********************************** Сообщение отредактировал Dik Morris - Sep 5 2005, 20:18 |
||||||||||
Nov 25 2005, 01:51
Сообщение
#9
|
|
Level 5 Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени |
*****************************************************************************
ВОПРОС: Как недопустить в модуль персонажа, который мне не нужен? (те впустить только определенного класса, уровня, пола, расы и прочее) ОТВЕТ: module_enter (на вход в модуль) NSS void kill(object oPC) { SetLocalString(oPC,"DEATH_SMS","Персонаж должен быть мужиком"); SetPlotFlag(oPC,FALSE); SetLocalInt(oPC,"BOOT",TRUE); ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectDeath(),oPC); } void main() { object oPC = GetEnteringObject(); if (GetGender(oPC)!=GENDER_MALE) { kill(oPC); return; } // если не мужик, убиваем /* проветять можно что хотите. Примеры: if (GetName(oPC)!="Lex") { kill(oPC); return; } // если имя не Лекс - убиваем if (GetLevelByClass(CLASS_TYPE_WIZARD)==0) { kill(oPC); return; } // если не маг - убиваем if (GetRacialType(oPC)!=RACIAL_TYPE_HUMAN) { kill(oPC); return; } // если не человек - убиваем */ } module_death (на смерть игрока) NSS void main() { object oPlayer = GetLastPlayerDied(); string sSMS = GetLocalString(oPlayer,"DEATH_SMS"); int BOOT = GetLocalInt(oPlayer,"BOOT"); if (sSMS == "") sSMS = "Вы сдохли.. мои поздравления."; if (BOOT) PopUpDeathGUIPanel(oPlayer,FALSE,FALSE,0,sSMS); // без респа else PopUpDeathGUIPanel(oPlayer,TRUE,FALSE,0,sSMS); // c респом.. если надо. } ***************************************************************************** ВОПРОС: Как добавить свою озвучку для НПС в модуль? ОТВЕТ: Оказывается озвучить своих 3D "малышей" (NPC) достаточно легко. Для начала (кому интересно) - всю озвучку сюжетных ниписей можно откавырять и export`ировать через NWNexplorer: CODE - NWN Main Data -------data\convo.bif ---------------Audio ---------------vs_faldom_050.wav ---------------vs_faldom_051.wav ----------------... ----------------... и т.д. В любом редакторе звука с поддержкой разнообразного битрейта и установкой моно\стерео записываете то что вам надо. Главное чтоб .wav файл получился в МОНО, иначе ничего не произойдёт. Обзываете свои вэйвы так чтоб не запутаться и закидываете в ХАК ! Не забудте этот хак подключить, а то точно ничего не выйдет. Потом в редакторе разговора нужного NPC выбираете нужную ветку идёте на закладку "Другие действия" и там выбираете нужный трёп в меню "Играть звук". ***************************************************************************** ВОПРОС: Как сделать собственный loadscrine? ОТВЕТ: Читать тут |
Текстовая версия | Сейчас: 10th November 2024 - 22:49 |