Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

 Правила этого форума ПРАВИЛА РАЗДЕЛА
> Вопросы и Ответы по Toolsetу
Lex
сообщение Jan 22 2005, 00:00
Сообщение #1


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



********************************************************************************
Статьи, ссылки + выжимка из темы "Вопросы новичков, ТОМ 1" + выжимка из темы "Вопросы новичков, ТОМ 2" + выжимка из старых тем.


ПОСТИТЬ ЗАПРЕЩЕНО ВСЕМ, КРОМЕ МОДЕРАТОРОВ РАЗДЕЛА.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
 
Открыть новую тему
Ответов
Lex
сообщение Mar 18 2005, 19:14
Сообщение #2


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



ВОПРОС
Как сделать раненого НПС? Те чтобы он с самого начала был ранен.

ОТВЕТЫ
в OnSpawn скрипт этому NPC добавить это:
Neverwinter Script Source
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(GetCurrentHitPoints(oPC)/2),OBJECT_SELF);
}


*****************************************************************************

ВОПРОС
НПС1 дает задание убить НПС2. Как сделать, чтобы в диалоге с НПС1 появилась надпись "Я выполнил задание" после убийства НПС2?

ОТВЕТЫ

В скрипт OnDeath НПС2 добавить строку:
Neverwinter Script Source
SetLocalInt(GetLastKiller(),"Kill",1);


Затем в диалоге с НПС1 на строку "текст появляется при" такой скрипт:
Neverwinter Script Source
int StartingConditional()
{
return(GetLocalInt(GetPCSpeaker(),"Kill")==1);
}



*****************************************************************************

ВОПРОС
Как сделать плащ-нивидимку?

ОТВЕТЫ
1. на OnPlayerEquipItem модуля...

Neverwinter Script Source
void main()
{
object oPC = GetPCItemLastEquippedBy();
object oItem = GetPCItemLastEquipped();
string sTag = GetTag(oItem);
if (sTag == "INVIS_CLOACK") //ВСТАВЬ НУЖНЫЙ ТЭГ
   {
    effect eInvis = EffectInvisibility(INVISIBILITY_TYPE_IMPROVED);
    AssignCommand(GetObjectByTag("PLS_EFFECTOR"),ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC));
   //// PLS_EFFECTOR это просто некий объект. Поставте в какой-нить локе нивидимый объект с таким тэгом.
   }
}

на unEquip эффект снимай
Neverwinter Script Source
void main()
{
object oPC = GetPCItemLastUnequippedBy();
object oItem = GetPCItemLastUnequipped();
string sTag = GetTag(oItem);
if (sTag == "INVIS_CLOACK") //ВСТАВЬ НУЖНЫЙ ТЭГ
   {
    effect eInvis = GetFirstEffect(oPC);
    while (GetIsEffectValid(eInvis))
         {
         if (GetEffectCreator(eInvis)==GetObjectByTag("PLS_EFFECTOR"))
               {
               RemoveEffect(oPC, eInvis);
               return;
               }
         eInvis = GetNextEffect(oPC);
         }
   }
}



*****************************************************************************

ВОПРОС
Можно ли сделать так, чтобы стало возможно говорить со статуей? Или другим неодушевленным предметом

ОТВЕТЫ
Добавить объекту диалог (закладка Advansed) и на OnUsed объекта поставь скрипт:
Neverwinter Script Source
void main()
{
    ActionStartConversation(GetLastUsedBy());
}


Если надо поговорить с вещью, которая в инвентаре, то так:
Добавить предмету свойство (если разговор, то лучше уникальное свойство - на себя). Соотв не забыть про то, что такое использование либо использует charges либо может быть вызвано Х раз в день. Настройте этот момент, как вам нужен. Далее в скриптах модуля в слоте onActivateItem пишите что-то вроде этого:

Neverwinter Script Source
void main()
{
object oItem = GetItemActivated();
object oActivator = GetItemActivator();
object oTarget = GetItemActivatedTarget();
location lPlace = GetItemActivatedTargetLocation();
if (GetTag(oItem)=="TAG_ITEM"// TAG_ITEM Это тэг того Item'а, с которым вы делаете разговор.
  {
  AssignCommand(oActivator ,ActionStartConversation(oActivator ,"dialog"));// dialog это название conversation файла. Проще говоря диалога.
//  SetLocalObject(oPC,"ITEM_ACTIVATED",oItem); - это если тебе нужно быстро и просто получить вещь,
// которая вызвала диалог.
  }


*****************************************************************************

ВОПРОС
Есть ли скрипт повышающий статы или навыки на один или несколько пунктов. (Повышает, а не изменяет).

ОТВЕТЫ
В диалоге на закладку Actions Taken
Neverwinter Script Source
void main()
{
effect eAC = EffectAbilityIncrease(ABILITY_CHARISMA,1); // Подъем харизмы на 1. Другие статы по аналогии
effect eSC = EffectSkillIncrease(SKILL_LORE,1); // подъем опознания на 1. Другие по аналогии.
ApplyEffectToObject(DURATION_TYPE_INSTANT,eAC,GetPCSPeaker());
}



*****************************************************************************

ВОПРОС
Как сделать статую из живого НПС или монстра?

ОТВЕТЫ
Neverwinter Script Source
скрипт в onSpawn. Все остальные скрипты удалить.
void main()
{
ApplyEffectToObject(DURATION_TYPE_PERMANENT,EffectVisualEffect(VFX_DUR_FREEZE_ANIMATION), OBJECT_SELF);
SetCommandable(FALSE, OBJECT_SELF);
}

Но есть 1 минус. Статуя поворачивается, если на нее кликнуть.

*****************************************************************************

ВОПРОС
Есть способ заставить определенный тип оружия наносить больше атак за раунд? кроме фитов rapid shooting и cleave?

ОТВЕТЫ
Кроме множества фитов, можно в скрипты на OnPlayerEquipItem и OnPlayerUnEquipItem встроить такое:
1. x2_mod_def_equ.nss
Neverwinter Script Source
object oItem = GetPCItemLastEquipped();
object oPC   = GetPCItemLastEquippedBy();
if (GetBaseItemType(oItem)==BASE_ITEM_SHORTSWORD&&!GetLocalInt(oPC, "AttackChanged"))
{
    effect eEff = EffectModifyAttacks(3);
    ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEff, oPC);
    SetLocalInt(oPC, "AttackChanged", GetEffectType(eEff)+1);
}


2. x2_mod_def_unequ.nss
Neverwinter Script Source
object oItem = GetPCItemLastUnequipped();
object oPC   = GetPCItemLastUnequippedBy();
int nType = GetLocalInt(oPC, "AttackChanged");
if (GetBaseItemType(oItem)==BASE_ITEM_SHORTSWORD&&nType--)
{
    effect eEff = GetFirstEffect(oPC);
    while(GetIsEffectValid(eEff))
    {
        if (GetEffectType(eEff)==nType&&
            GetEffectCreator(eEff)==OBJECT_SELF)
        {   SetLocalInt(oPC, "AttackChanged", 0);
            RemoveEffect(oPC, eEff); break; }
        eEff = GetNextEffect(oPC);
    }
}

Neverwinter Script Source
GetBaseItemType(oItem)==BASE_ITEM_SHORTSWORD
можно заменить на любое другое условие.
Изменение количества атак не отображается в листе параметров персонажа.
Добавочные атаки идут с бонусом первой атаки.
GetEffectType для данного эффекта возвращает значение 0, что настораживает. Тем не менее скрипты я проверил работали нормально.

*****************************************************************************

ВОПРОС
Как заставить моба нормально пользоватся хайдом? Есть ли какие нибудь скрипты?

ОТВЕТЫ
Если вопрос про моба-шадоудансера, то самый простой путь, который мы с Ярлом нашли не требует написания никаких скриптов. Все что надо, это не давать мобу НИКАКИХ активных боевых фитов (т.е. кнок, дизарм и т.д.). В этом случае, стандартные скрипты очень здорово позволяют ШД прятаться во время боя.

*****************************************************************************

ВОПРОС
Что делать если глючит русский шрифт в scripteditor'е. Те переношу туда откуда-то русский текст, а получаются какие-то значки непонятные.

ОТВЕТЫ
В scripteditor'е последняя иконка на панели - настройка шрифтов, цветов и прочее. Выберите там другой шрифт.

*****************************************************************************

ВОПРОС
Как задавать из тулсета создаваемой вещи какой-либо из скрытых цветов?

ОТВЕТЫ
Черный, белый, золотой,медный, зеркальный,серая ткань и еще два подвида черного и белого задаются там же, где и выбираются стандартные цвета.
Инструкция:
1. Зажимаешь кнопку мыши на любом цвете.
2. Тянешь мышь в пустое пространство между палитрой и кнопками OK и Сancel(cерая зона).
4. Отпускаешь кнопку мыши, выбирается квадрат в серой зоне. Вместе с ним изменятся и цвет. Квадратов несколько.


*****************************************************************************

ВОПРОС

ОТВЕТЫ

*****************************************************************************

ВОПРОС

ОТВЕТЫ

*****************************************************************************

ВОПРОС

ОТВЕТЫ

*****************************************************************************

ВОПРОС

ОТВЕТЫ

*****************************************************************************

..20..
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

Сообщений в этой теме


Тема закрытаОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 18th April 2024 - 04:56