Игроделу | Редактор фракций | Neverwinter Nights
По сайту
Главная
Рыцарская сага
Файлы
Neverwinter Nights
Гостевая книга
Форум сайта

По теме
Игроделу
Редактор фракций
Редактор журнала
Редактор диалога
Редактор скрипта
Модуль и области
Двери
Монстры
Встречи
Предметы
Торговцы
Объекты
Триггеры
Звуки
Тайлы
Хак файлы
Скриптинг
Neverwinter Nightsредактор фракцийИгроделу

Редактор фракций

редактор фракций

При создание нового модуля, у вас уже будет пять стандартных фракций.


 1. Фракция П   имеет константу    т.е. фракция нашего героя
 2. Враждебный                 int STANDARD_FACTION_HOSTILE  = 0;
 3. Простолюдин                int STANDARD_FACTION_COMMONER = 1;
 4. Торговец                   int STANDARD_FACTION_MERCHANT = 2;
 5. Защитник                   int STANDARD_FACTION_DEFENDER = 3;

Можно при необходимости добавить и свои фракции, кликнув кнопку “Добавить фракцию”. В шкале градации нужно настроить и отношение новой фракции с другими. В нашем случае фракция "Voin” будет нейтральна ко всем стандартным фракциям и дружественна к соплеменникам.

Если включить галку “Глобальный эффект”, то если герой поссорится с одним членом этой фракции, то во всех локациях сразу у всех членов этой фракции изменится репутация. Если вам это не нужно, то удалите галку, тогда репутация сменится только у тех членов фракции, которые в данный момент могут видеть или реагировать на героя. Даже находясь в одной локации, не говоря о других локациях, члены этой фракции могут оставаться нейтральными, если они не среагировали на атаку героя.

Величина репутации целое число от 0 до 100. В скрипте это значение записывается так:
int iRep = GetReputation(oNPC, oPC);

Отношение между фракциями зависит от величины репутации, и выглядит так:
0-10 враждебны
11-89 нейтральны
90-100 дружествены

Настраивать отношение нужно на шкале, прижав нужный столбец, левой кнопкой мыши, и двигая вверх или вниз. Также можно менять отношения фракций и скриптами. Советую иметь по одному члену от каждой фракции, где-либо в закрытой от доступа героя локации, чтобы менять репутацию героя к этим определенным персонажам. Для этого им нужно присвоить уникальные тэги. Этих НПС необходимо разделить, чтобы они не атаковали друг друга, и поставить им галку Бессмертный, чтобы случайно не погибли. (Сюжет ставить нельзя, т.к. при таком раскладе нельзя менять репутацию...) Пример скрипта:

void main()
 {
    object oPC = GetFirstPC(); // наш герой
    object oByTag = GetObjectByTag("DEVA"); // NPC в закрытой локе
    AdjustReputation(oPC, oByTag, 50);
 }
 //Повысить на 50 единиц (понизить цифра со знаком - )

В этом скрипте мы повышаем репутацию фракции на 50 единиц от установленных. Репутацию можно и понижать, тогда значение нужно ставить со знаком минус. Для стандартных фракций есть функция установки необходимой величины репутации. Она не работает на фракции созданные вами...

void main()
{
 object oPC = GetFirstPC();
  // Установить репутацию 30 единиц фракции Простолюдин
 SetStandardFactionReputation(STANDARD_FACTION_COMMONER, 30, oPC);
}

Атаковав члена фракции, мы изменим репутацию у всех членов этой фракции, а затем где-либо в разговоре мы может опять помириться с этой фракцией, зная, что тэг персонажа в закрытой локации “DEVA” Скриптом можно сменить фракцию одиночному персонажу, это сразу же сменит и его репутацию:

void main()
{
   object oNPC = GetObjectByTag("TAG");
   object oPC = GetFirstPC();

 AssignCommand(oPC, ClearAllActions(TRUE)); //Чистим актионы у игрока
 AssignCommand(oNPC, ClearAllActions(TRUE)); //Чистим актионы у NPC
 ClearPersonalReputation(oPC, oNPC); // Чистим репутацию PC к NPC
 ClearPersonalReputation(oNPC, oPC); // Чистим репутацию NPC к герою
    // Делаем фракцию простолюдин
 ChangeToStandardFaction(oNPC, STANDARD_FACTION_COMMONER);
}

Перед сменой репутации конечно лучше почистить персональную репутацию героя и НПС.

Можно даже враждебного монстра сделать дружественным, сменив ему фракцию, допустим на Voin:

void main()
 {
   object oPC = GetFirstPC();
   object oGoblin = GetObjectByTag("TAG");
   object oNeytral = GetObjectByTag("DEVA");

   if(GetIsEnemy(oPC, oGoblin)) // Если враги
   ChangeFaction(oGoblin, oNeytral); //  Дать oGoblin фракцию oNeytral
 }

Вся информация о фракциях модуля, находится в папке temp0, которая временно создается при отрытие модуля редактором "Аврора", в папке modules. Имя файла: Repute.fac

Обновление: Rambler's Top100