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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
205 страниц V  « < 147 148 149 150 151 > »   
Ответить в эту темуОткрыть новую тему
> Вопросы новичков, Абсолютные глупости
Ilerien
сообщение Jun 18 2008, 16:41
Сообщение #3686


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

Класс: Волшебник
Характер: Lawful Evil
Раса: Эльф
NWN: Скриптинг [PW]
Gem of the North



Neverwinter Script
void main()
{
    object oPC = GetEnteringObject();
    object oHench = GetHenchman(oPC);
    if(GetIsObjectValid(oHench) && GetIsPC(oPC))
    {
        AssignCommand(oHench, SpeakString("<слова хенча>"));
        DelayCommand(0.5f, AssignCommand(oPC, SpeakString("<слова игрока>")));
    }

    //Дебаг: выведет имена хенчей от 1 до 20 (чтоб уж наверняка) в лог игроку, можно поэкспериментировать с этой штукой, юзая сейв/лоад и всё такое
    int i;
    for(i = 1; i <= 20; i++)
        SendMessageToPC(oPC, "Henchman №" + IntToString(i) + ": " + GetName(GetHenchman(oPC, i)));

}


Сообщение отредактировал Ilerien - Jun 18 2008, 16:42
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Xfans
сообщение Jun 18 2008, 21:04
Сообщение #3687


Level 3
*

Класс: Обыватель
Характер: Neutral Good
Раса: Человек



Цитата(Ilerien @ Jun 18 2008, 16:41) *
Neverwinter Script
    //Дебаг: выведет имена хенчей от 1 до 20 (чтоб уж наверняка) в лог игроку, можно поэкспериментировать с этой штукой, юзая сейв/лоад и всё такое

Ну что ж, поэкспериментируем! Только вот где взять 20 хенчей? Их всего-то 14, и то не весь же зоопарк сразу нанимать=)))))
Вот еще одна фиговина. Мы не можем понять, почему визуальный эффект не проявляется никак?
Neverwinter Script
object oPlayer = GetPCSpeaker();

void main()
{
DestroyObject(OBJECT_SELF);
{
        object oBoss1 = CreateObject(OBJECT_TYPE_CREATURE,
                                    "alienhunter",
                                    GetLocation(GetNearestObjectByTag("WP_alienhunter")));
        DelayCommand(1.0,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectV
isualEffect(VFX_FNF_ELECTRIC_EXPLOSION),oBoss1));
        DelayCommand(1.3,ActionDoCommand(SetFacingPoint(GetPosition(oPlaye
r))));
        DelayCommand(1.5,AssignCommand(oBoss1,SetFacingPoint(GetPosition(OBJECT_SELF))));
    }
}

Там один объект исчезает, на его месте возникает другой. Должен бы с эффектом, но он просто вылазит и все! А ПС вообще на него внимания не обращает. Чем ему этот новый объект не нравится, не поймем. Помогите, плиз!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Jun 18 2008, 22:03
Сообщение #3688


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

Класс: Волшебник
Характер: Lawful Evil
Раса: Эльф
NWN: Скриптинг [PW]
Gem of the North



Цитата
Ну что ж, поэкспериментируем! Только вот где взять 20 хенчей? Их всего-то 14, и то не весь же зоопарк сразу нанимать=)))))
Да не важно, сколько их будет, эта штука отловит номер каждого хенча (IMG:style_emoticons/kolobok_light/smile.gif)
Цитата
Должен бы с эффектом, но он просто вылазит и все!
Neverwinter Script
void main()
{
    DestroyObject(OBJECT_SELF);
    object oPlayer = GetPCSpeaker();

    object oBoss1 = CreateObject(OBJECT_TYPE_CREATURE,
                                    "alienhunter",
                                    GetLocation(GetNearestObjectByTag("WP_alienhunter")));

    DelayCommand(1.0, AssignCommand(GetModule(), ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectV
isualEffect(VFX_FNF_ELECTRIC_EXPLOSION),oBoss1)));
    DelayCommand(1.3, ActionDoCommand(SetFacingPoint(GetPosition(oPlaye
r)))); // не понял смысла этой строчки (IMG:style_emoticons/kolobok_light/smile.gif)
    DelayCommand(1.5, AssignCommand(oBoss1, SetFacingPoint(GetPosition(OBJECT_SELF)))); // и этой тоже...
   
}

Что мы сделали? Перекинули заделеенные команды на модуль. В старом варианте объект убивался, а после этого через некоторое время он пытался выполнить функцию ApplyEffectToObject. Любая скриптовая команда выполняется определённым объектом, а когда этого объекта в природе уже нет, команда не выполняется.

Сообщение отредактировал Ilerien - Jun 18 2008, 22:40
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
denis0k
сообщение Jun 18 2008, 23:18
Сообщение #3689


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

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [PW]
Gem of the North
Край Лесов



GetAssociate() мы и пробовали. GetHenchman() скорее всего просто морда к GetAssociate(), смысла нет разводить зоопарк одинаковых функций в движке. Жаль хистори крякнулась после очередного отключения света, нашел бы логи (IMG:style_emoticons/kolobok_light/smile.gif)


Кстати, тот эксперимент надо проводить и сразу после взятия хенчей, и после пары операций удаления-взятия.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Xfans
сообщение Jun 19 2008, 10:43
Сообщение #3690


Level 3
*

Класс: Обыватель
Характер: Neutral Good
Раса: Человек



Цитата(Ilerien @ Jun 18 2008, 22:03) *
Да не важно, сколько их будет, эта штука отловит номер каждого хенча (IMG:style_emoticons/kolobok_light/smile.gif)
Neverwinter Script
void main()
{
... DelayCommand(1.3, ActionDoCommand(SetFacingPoint(GetPosition(oPlaye
r)))); // не понял смысла этой строчки (IMG:style_emoticons/kolobok_light/smile.gif)
    DelayCommand(1.5, AssignCommand(oBoss1, SetFacingPoint(GetPosition(OBJECT_SELF)))); // и этой тоже...
   
}

Что мы сделали? Перекинули заделеенные команды на модуль. В старом варианте объект убивался, а после этого через некоторое время он пытался выполнить функцию ApplyEffectToObject. Любая скриптовая команда выполняется определённым объектом, а когда этого объекта в природе уже нет, команда не выполняется.

Смысел этих двух строчек в том, что игрок и объект новый отворачиваются друг от друга, а надо чтобы лицом к лицу (точнее лицом к морде=)))). Если на новоявленный объект строка срабатывает, то вот РС-зараза заканчивает диалог с предыдущим существом, а потом поворачивается боком или спиной (в зависимости от своего желания видимо) к новому объекту.
А за объяснения про то, что скрипт относится к старому объекту - спасибо! Были подозрения на этот счет, но мы не поняли, как поменять тогда. Теперь пойдем пробовать=)))))
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Jun 19 2008, 12:24
Сообщение #3691


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

Класс: Обыватель
Характер: Lawful Good
Раса: Человек
NWN: Модмейкер
Рыцарская Сага



Цитата(Ilerien @ Jun 18 2008, 23:03) *
Что мы сделали? Перекинули заделеенные команды на модуль. В старом варианте объект убивался, а после этого через некоторое время он пытался выполнить функцию ApplyEffectToObject.

Ой-ли! Чтобы перекинуть команды на модуль, нужно пробить сразу ассинг, а потом только делай... Иначе Делай остается за объектом сельф...
Второй нюанс. Если кидаешь вектор поворота на модуль, то GetPosition(OBJECT_SELF) чез 1.5 секунд уже не существует... Нужно вектор пробить сразу.
Третий нюанс. Желательно еффекты сразу задавать, а не совать их в функцию, т.к. могут быть баги на некоторых эффектах, особенно на смерть...
Четвертый нюанс. Если пишем большой скрипт на дестроющемся НПС, то лучше кинуть сигнал и через OnUserDefined там все пробить. Тогда не нужно пробивать команды на модуль, или еще кого...
Вот как примерно должен выглядеть твой скрипт:
Neverwinter Script
void main()
{
DestroyObject(OBJECT_SELF);
object oPlayer = GetPCSpeaker();
object oMod = GetModule();
object oBoss1 = CreateObject(OBJECT_TYPE_CREATURE, "alienhunter", GetLocation(GetNearestObjectByTag("WP_alienhunter")));
effect eVis = EffectVisualEffect(VFX_FNF_ELECTRIC_EXPLOSION);
vector vFace = GetPosition(OBJECT_SELF);

AssignCommand(oMod, DelayCommand(1.0, ApplyEffectToObject(DURATION_TYPE_INSTANT,eVis,oBo
ss1)));
AssignCommand(oMod, DelayCommand(1.3, AssignCommand(oBoss1, SetFacingPoint(vFace))));
AssignCommand(oMod, DelayCommand(1.5, AssignCommand(oPlayer, SetFacingPoint(GetPosition(oBoss1)))));
AssignCommand(oMod, DelayCommand(1.5, AssignCommand(oBoss1, SpeakString("Я родилсЯ!"))));
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Jun 19 2008, 14:34
Сообщение #3692


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

Класс: Волшебник
Характер: Lawful Evil
Раса: Эльф
NWN: Скриптинг [PW]
Gem of the North



Цитата
Ой-ли! Чтобы перекинуть команды на модуль, нужно пробить сразу ассинг, а потом только делай... Иначе Делай остается за объектом сельф...
По логике делей сразу выполнится объектом, до завершения скрипта и срабатывания DestroyObject. Надо тестить, мб ты и прав (IMG:style_emoticons/kolobok_light/wink3.gif)

Сообщение отредактировал Ilerien - Jun 19 2008, 14:46
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
azathoth
сообщение Jun 19 2008, 16:39
Сообщение #3693


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

Класс: Оборотень
Характер: Chaotic Neutral
Раса: Нежить
NWN: Скриптинг [Sn]



Цитата
По логике делей сразу выполнится объектом

конечно выполнится (IMG:style_emoticons/kolobok_light/smile.gif) и установит задержку, только вот велики шансы на то, что эта задержка пропадёт вместе с объектом (IMG:style_emoticons/kolobok_light/wink3.gif)

подпишусь под каждым словом gennady, кроме одного - OnUserDefined даже биоварями признаётся глючным. Оно хоть и прекрасно работает в большнистве случаев, но лучше обойтись.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lirulin
сообщение Jun 19 2008, 17:21
Сообщение #3694


Level 3
*

Класс: Клерик
Характер: Chaotic Good
Раса: Эльф



А как вообще быть, если object'ов несколько? По-моему, компиллятор это не любит, ругается=) Матом=) Как правильно задать двум разным объектам в пределах одного скрипта разные действия? Когда я попробовал механически соединять два скрипта, все object'ы выписав в начале, у меня выходил фиг!=(
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Jun 19 2008, 18:11
Сообщение #3695


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

Класс: Волшебник
Характер: Lawful Evil
Раса: Эльф
NWN: Скриптинг [PW]
Gem of the North



Если ты про переменные, то хоть сколько. Не знаю, сколько максимально памяти движок выделяет под локальные переменные скрипта, но обжектов можно напихать под завязку.
Цитата
конечно выполнится и установит задержку, только вот велики шансы на то, что эта задержка пропадёт вместе с объектом
Логично (IMG:style_emoticons/kolobok_light/smile.gif) Потестю - расскажу (IMG:style_emoticons/kolobok_light/wink3.gif)

Сообщение отредактировал Ilerien - Jun 19 2008, 18:11
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lirulin
сообщение Jun 19 2008, 18:19
Сообщение #3696


Level 3
*

Класс: Клерик
Характер: Chaotic Good
Раса: Эльф



Вопрос № следующий:
как это
Neverwinter Script
ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectDa
mage(GetCurrentHitPoints(oPlayer)/2),oPlayer,0.5f);

преобразовать, чтоб забирало не половину жизни, а скажем... 90%. Или еще сколько-нить этих процентов.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Jun 19 2008, 18:47
Сообщение #3697


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

Класс: Волшебник
Характер: Lawful Evil
Раса: Эльф
NWN: Скриптинг [PW]
Gem of the North



Neverwinter Script
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(FloatToInt(GetCurrentHitPoints(oPlaye
r) * 0.9)), oPlayer);//не понял, зачем тут длительность, всё равно эффект мгновенный
Можно было и самому догадаться...

Сообщение отредактировал Ilerien - Jun 19 2008, 18:48
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lirulin
сообщение Jun 19 2008, 20:11
Сообщение #3698


Level 3
*

Класс: Клерик
Характер: Chaotic Good
Раса: Эльф



Гр-р-р...=(( Иногда все тупят. Но это не мешает мне сказать спасибо=)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Xfans
сообщение Jun 19 2008, 21:00
Сообщение #3699


Level 3
*

Класс: Обыватель
Характер: Neutral Good
Раса: Человек



Знаете чего, пиплы! Вы супер! Спасибо вам всем за то, что даете много вариантов и объясняете для нас, ньюбов, чего к чему! Мы знакомы всего неделю, а уже прогресс виден. Сами даже чего-то понимаем и делаем=)))))
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
shadowdweller
сообщение Jun 19 2008, 23:54
Сообщение #3700


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

Класс: Вор
Характер: Chaotic Good
Раса: Эльф
МАСТЕР Переводов



Все еще надеюсь левелапнуть своего хенчмена.
Цитата(denis0k @ Jun 7 2008, 20:17) *
Надо копаться, пробовать разные варианты (IMG:style_emoticons/kolobok_light/smile.gif)
1. Убрать скриптово плот и иммортал флаги.
2. Перекинуть дестрой на модуль: assigncommand(getmodule(), destroy...).
3. Попробовать отложенное удаление через пару секунд.

Вот это не проходит ни в какую. Не работает, хоть убейся.
Цитата(denis0k @ Jun 7 2008, 20:17) *
4. Кардинально - не удалять, а именно апать и переодевать.

А это как? Можно поподробнее?

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jun 19 2008, 23:56
Сообщение #3701


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

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



см
Neverwinter Script
LevelUpHenchman()
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
shadowdweller
сообщение Jun 20 2008, 00:17
Сообщение #3702


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

Класс: Вор
Характер: Chaotic Good
Раса: Эльф
МАСТЕР Переводов



Благодарю, о лаконичнейший! Нашла, прочитала, но как использовать, по прежнему не понимаю (IMG:style_emoticons/kolobok_light/pardon.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Jun 20 2008, 06:05
Сообщение #3703


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

Класс: Обыватель
Характер: Lawful Good
Раса: Человек
NWN: Модмейкер
Рыцарская Сага



Цитата(shadowdweller @ Jun 20 2008, 00:54) *
А это как? Можно поподробнее?

Шад, шад, шад... Эх-хе-хей... Начнем с самого начала!

Для начала нужно знать, что уровень его должен быть первым, иначе нам не удастся поднять его под уровень героя. Если вам необходимо поднять уровень, то можно в скрипт спавна добавить повышение или новый класс. Помните, что классы спутников такие же, как и у героя, остальные классы вам также не удастся поднять… Я добавлю еще в этот скрипт фишку, чтобы труп спутника не исчезал. Тогда скрипт смерти, вы можете переписать по своему усмотрению… Сам скрипт:

Neverwinter Script
//:://////////////////////
//:: Слот: OnSpawn
//:://////////////////////
#include "X0_INC_HENAI"
void main()
{
    //User ranged weapons by default if true.
    SetAssociateState(NW_ASC_USE_RANGED_WEAPON, FALSE);
    SetAssociateState(NW_ASC_DISTANCE_2_METERS);
    // Труп не исчезает и будет юзабельным
    SetIsDestroyable(FALSE, TRUE, TRUE);
    int nHenchLevel = GetHitDice(OBJECT_SELF);

    if (nHenchLevel == 1)
    {
      if (GetTag(OBJECT_SELF) == "TAG")
        {
            // Класс воин
        LevelUpHenchman(OBJECT_SELF, CLASS_TYPE_FIGHTER);
            // Класс СВЯЩЕННИК
        LevelUpHenchman(OBJECT_SELF, CLASS_TYPE_CLERIC);
        }
    }
}


Так вот, если ты пробила в спавне своему хенчу бессмертие, то перед дестроем его нужно убрать. Если ты в палитре настраиваешь хенчам уровень, параметры и шмотки и пытаешься базовым скриптом поменять хенчей, то вот тебе скриптик:

Neverwinter Script
void main()
{
object oPC = GetPCSpeaker();
object oSP = OBJECT_SELF;

// Снимаем бессмертие
AssignCommand(oSP, SetIsDestroyable(TRUE, TRUE, TRUE));
//Запускаем базовый скрипт замены хенчей
ExecuteScript("nw_ch_action_17", oSP); // * Henchman levels up
}


Если повышаем уровни хенча только скриптами и в палитре у него стоит первый уровень, то читай ниже...

Чтобы уровни спутника повышались, при повышение уровня героя, нужно в модульные свойства в слот OnPlayerLevelUp, поставить базовый скрипт x1_playerlevelup, или написать свой скрипт поднятия уровня спутника. Чтобы поднять уровень спутника до уровня героя с диалога, нужно написать примерный скрипт:

Neverwinter Script
void main()
  {
    object oPC = GetPCSpeaker();
    object oSP = GetHenchman(oPC);
    int LoPC = GetHitDice(oPC);
    int LoSP = GetHitDice(oSP);

  while (LoPC > LoSP)
  {
  LevelUpHenchman(OBJECT_SELF, CLASS_TYPE_FIGHTER);
  LoSP++;
  }
}
/* Повысить уровень воина до уровня героя */


Так, теперь скрипт с переодеванием и заменой хенчей из палитры… Писал для своего Тузика, т.к. он собачка и класс у него только животное, но вот в отличие от первых Неверских хенчей у него есть возможность открыть инвентарь и кой куда повесить шмотку.

Neverwinter Script
//:://////////////////////////////
//:: УРОВЕНЬ ТУЗИКА
//:: File name: tuzik_level
//:: Created By: Gennady
//:://////////////////////////////
void main()
{
    object oPC = GetPCSpeaker();
    object oSP = OBJECT_SELF;
    object oItem;
    int i;
    int LoPC = GetHitDice(oPC);
    int LoSP = GetHitDice(oSP);
    string sResRef = "dog_tuzik";
    location Loc = GetLocation(oSP);

  if (LoPC > 2) sResRef = "dog_tuzik_1";
  if (LoPC > 4) sResRef = "dog_tuzik_2";
  if (sResRef == GetResRef(oSP))
  {
  AssignCommand(oSP, SpeakString("Гав... Ррууу..."));
  SendMessageToPC(oPC, "<cюa >Тузик грустно лает… Похоже, что сейчас он не может ничему научиться…</c>");
  return;
  }
  object oTuz = CreateObject(OBJECT_TYPE_CREATURE, sResRef, Loc);
  DelayCommand(1.0, AssignCommand(oTuz, SpeakString("Гав... Ррууу...")));
  DelayCommand(1.0, SendMessageToPC(oPC, "<c у >Тузик утвердительно лает. Он может научиться всему, что вы пожелаете.</c>"));
  DelayCommand(1.5, AssignCommand(oTuz, ClearAllActions()));
  object oInv = GetFirstItemInInventory(oSP);
    while(GetIsObjectValid(oInv))
      {
      CopyItem(oInv, oTuz);
      oInv = GetNextItemInInventory(oSP);
      }
  for (i = 0; i < 14; i++)
  {
  oItem = GetItemInSlot(i, oSP);
  if (GetIsObjectValid(oItem))
    {
    object oItemN = CopyItem(oItem, oTuz);
    DelayCommand(1.51, AssignCommand(oTuz, ActionEquipItem(oItemN, i)));
    }
  }
  effect eOne = EffectVisualEffect(VFX_IMP_UNSUMMON);
  DelayCommand(1.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eOne, oSP));
  AssignCommand(oSP, SetIsDestroyable(TRUE, TRUE, TRUE));
  DestroyObject(oSP, 2.0);
  AssignCommand(oPC, ClearAllActions());
  DelayCommand(0.2, SetCommandable(FALSE, oPC)); // заблокировать очередь
  AssignCommand(oPC, ActionWait(2.5));
  AssignCommand(oPC, ActionDoCommand(AddHenchman(oPC, oTuz))); // Дать нового спутника
  AssignCommand(oPC, ActionDoCommand(SetCommandable(TRUE, oPC))); // разблокировать очередь
}


P.S. В этом скрипте пробито всего 2 повышения уровня… Кому надо пробейте нужное количество… Кстати, Шад, обрати внимание! В этом скрипте перед дестроем я снимаю бессмертие с Тузика, т.к. в спавне пробивал бессмертие… Удачи! (IMG:style_emoticons/kolobok_light/smile.gif)

Neverwinter Script
int iLev = 1;
  for (iLev = 1; iLev < 14; iLev++)
  {if (LoPC > iLev)  sResRef = "dog_tuzik_"+IntToString(iLev);}


Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 21 2008, 00:03
Сообщение #3704


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



shadowdweller, есть тема по хеньчманам, там заготовка, правила и все скрипты. Все работает как часы. Вот тут.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 21 2008, 00:04
Сообщение #3705


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Neverwinter Script
LevelUpXP1Henchman();
Единственно, эту функцию ставь куда тебе надо и когда надо в скрипт.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Xfans
сообщение Jun 21 2008, 12:54
Сообщение #3706


Level 3
*

Класс: Обыватель
Характер: Neutral Good
Раса: Человек



А можно хенчу задать что именно и как он будет апать? В смысле, например, визарду прокачать умение пользоваться всеми видами оружия, а не что-то касающееся исключительно магии. По умолчанию-то он прокачивает только то, что свойственно его классу.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Jun 21 2008, 14:37
Сообщение #3707


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

Класс: Волшебник
Характер: Lawful Evil
Раса: Эльф
NWN: Скриптинг [PW]
Gem of the North



Нужно ковырять таблички PackFT***.2da (*** - сокращённое название класса). Хенч левелапится согласно стандартному пакаджу.

Сообщение отредактировал Ilerien - Jun 21 2008, 14:39
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Xfans
сообщение Jun 22 2008, 10:09
Сообщение #3708


Level 3
*

Класс: Обыватель
Характер: Neutral Good
Раса: Человек



Спасибо! Тем временем возник следующий камень преткновения: нужно, чтобы NPC начинал определенный разговор не при наступании на триггер, а в определенное время (скажем, сутки спустя после предыдущего разговора). Реализуемо ли это и как? Все равно нужно рисовать где-то триггер или просто в конце первого диалога приладить какой-нибудь скрипт на возобновление беседы через сутки?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Jun 22 2008, 13:25
Сообщение #3709


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

Класс: Волшебник
Характер: Lawful Evil
Раса: Эльф
NWN: Скриптинг [PW]
Gem of the North



Легко можно разговор заделеить, вот только начнут они в бою болтать...
Neverwinter Script
DelayCommand(HoursToSeconds(24), <...>);
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Xfans
сообщение Jun 22 2008, 14:15
Сообщение #3710


Level 3
*

Класс: Обыватель
Характер: Neutral Good
Раса: Человек



А в течение этих суток они (т.е. PC и тот, с кем он должен говорить) могут беспрепятсвенно бегать где попало и делать все, что вздумается? И ровно через 24 часа начнут разговор №2? Вроде где-то мы видали такое условие If not in combat... Может, его еще сюда приделать?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

205 страниц V  « < 147 148 149 150 151 > » 
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 3rd August 2025 - 07:52