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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
205 страниц V  « < 108 109 110 111 112 > »   
Ответить в эту темуОткрыть новую тему
> Вопросы новичков, Абсолютные глупости
Aiwan
сообщение Jul 12 2006, 20:39
Сообщение #2711


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

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



Берешь звуковой файл. Простой в палитре. Например звук факел. Делаешь его с уникальным тегом ТАГ_ЛОКАЦИИ_1б ТАГ_ЛОКАЦИИ_2. Ставишь звуки рядом с факелами и у тебя звук вместе с костром - факелом по ночам. Ясно?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 12 2006, 20:42
Сообщение #2712


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

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



Milfes, звук берется из тэга локации, к которому прибавляется 1, а когда прокручивается цикл, добавляется к тэгу звука 1, нумеруя и проигрывая его около фонаря. Звук ты можешь взять либо кастомный, либо из палитры, только измени его тэг на тэг локации.

Aiwan, одного не понял, как включаются и выключаются звуки, если изначально тэг звука равен "AM_SOUND_TORTCH_"? Сприт же просто не найдет звука с тэгом "AM_SOUND_TORTCH_1".

З.Ы. Aiwan, почему таг, а не тэг? (IMG:style_emoticons/kolobok_light/rolleyes.gif)

Сообщение отредактировал Zirrex - Jul 12 2006, 20:43
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Milfes
сообщение Jul 12 2006, 20:43
Сообщение #2713


Level 5
**

Класс: Друид
Характер: Lawful Neutral
Раса: Человек



У меня фонари, а не факелы.

Мне кажеться глупо если будет проигрываться этот звук рядом с фонарём.

Сообщение отредактировал Milfes - Jul 12 2006, 20:46
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 12 2006, 20:45
Сообщение #2714


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

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



Milfes, аж насмешил (IMG:style_emoticons/kolobok_light/swoon.gif) посмотри палитру звуков, подбери звук, который больше соответствует фонарю. Да и потом, фонарей в то время не было, были факелы, выглядящие как фонари, потому что устанавливались на большие шесты.

Сообщение отредактировал Zirrex - Jul 12 2006, 20:46
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Симирель
сообщение Jul 12 2006, 20:52
Сообщение #2715


Level 2
*

Класс: Волшебник
Характер: Neutral Good
Раса: Эльф



Люди, просто не могу прочитать 100страниц, хотя уже 40 смог осилить.
Прошу, может знает кто как сделать так, что
1.когда герой дергает за рычаг, или хотя бы дотронулся до предмета его шарахнуло молнией и перенесло в другое место?
2.После разговора существо изчезает с каким нибудь финтом(диспелс итд.)
3.Существо после разговора раздвоивается и нападает?

Если сможете, то подскажите плииииз, только с обьяснением если можно...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Milfes
сообщение Jul 12 2006, 21:08
Сообщение #2716


Level 5
**

Класс: Друид
Характер: Lawful Neutral
Раса: Человек



Zirrex, а куда первую часть скрипта вставлять, тоже в хертбит или нет?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Jul 12 2006, 21:20
Сообщение #2717


Вечно меняющийся
Иконки Групп

Класс: Монах
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]



Zirrex, NeoJSmith, спасибо за поправки. Я еще новичок, посему ошибки частенько допускаю. (IMG:style_emoticons/kolobok_light/pleasantry.gif)
Все учту.

Симирель,

1. Ставь скрипт на onUsed плейса, не забуть сделать его юзабельным.

NSS
void main()
{
  object oPC = GetLastUsedBy();
  location lLoc = GetLocation(GetObjectByTag("Тэг_места"));

  if (GetLocalInt(OBJECT_SELF, "Used") == TRUE) return; // Если не нужно, чтобы скрипт сработал 1 раз - удалить,

  SetLocalInt(OBJECT_SELF, "Used", TRUE); // Если не нужно, чтобы скрипт сработал 1 раз - удалить,

  DelayCommand(0.5, AssignCommand(oPC, ClearAllActions()));
  DelayCommand(0.5, ApplyEffectToObject(0 , EffectVisualEffect(74), oPC));
  DelayCommand(0.8, AssignCommand(oPC, ActionJumpToLocation(lLoc)));
}


2. Фун-ция: DestroyObject + читать это.

3. На конец диалога, в строчку ActionTakens:

NSS
void main()
{
if (GetLocalInt(OBJECT_SELF, "Temp") == FALSE) // На всякий случай (IMG:style_emoticons/kolobok_light/smile.gif)
  {
    SetLocalInt(OBJECT_SELF, "Temp", TRUE);
    object oNPC = CopyObject(OBJECT_SELF, GetLocation(OBJECT_SELF), OBJECT_INVALID);
    DelayCommand(0.5, AssignCommand(oNPC, ActionAttack(GetFirstPC())));
    DelayCommand(0.5, AssignCommand(OBJECT_SELF, ActionAttack(GetFirstPC())));
  }
}


Сообщение отредактировал Dik Morris - Jul 12 2006, 21:32
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 12 2006, 21:23
Сообщение #2718


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

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



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

1. Неосторожного и любопытного персонажа бьет молнией и сбивает с ног. Скрипт ставится на эвент "OnUsed" объекта (рычаг):
NSS
void main()
{
    object oPC = GetLastUsedBy();

    int nSwitch = d10() + 1;
    string sSound;

    // Берем текущее значение жизни, и чтобы не убило, делим его на 2
    int nHP = GetCurrentHitPoints(oPC) / 2;
    nHP = Random(nHP);

    switch (nSwitch)
    {
        case 1: sSound = "as_pl_lafspook1"; break;
        case 2: sSound = "as_pl_lafspook3"; break;
        case 3: sSound = "vs_nzorxxxm_haha"; break;
        case 4: sSound = "vs_nx2sleem_haha"; break;
        case 5: sSound = "vs_nx2intlm_haha"; break;
        case 6: sSound = "vs_nx2grulm_haha"; break;
        case 7: sSound = "vs_nx0heurf_haha"; break;
        case 8: sSound = "vs_nx0headm_haha"; break;
        case 9: sSound = "vs_nthugxf1_haha"; break;
        case 10: sSound = "vs_nx0tymom_haha"; break;
    }
    // Проигрываем случайный звук
    PlaySound(sSound);

    ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_LIGHTNING_M), oPC);
    ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(nHP, DAMAGE_TYPE_ELECTRICAL), oPC);
    DelayCommand(0.1, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectKnockdown(), oPC, 12.0));
}

2. На окончание разговора с НПС ставим скрипт:
NSS
void main()
{
    ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_IMP_UNSUMMON), OBJECT_SELF);
    DestroyObject(OBJECT_SELF, 3.0);
}

3. Создаем копию НПС рядом с этим же НПС. Для профилактики изымаем деньги и делаем не выпадающими все его вещи (можно убрать, не актуально):
NSS
void CopyCreature(object oPC, object oCreature, location lLocation)
{
    oCreature = CopyObject(oPC, lLocation);

    int i;
    object oEquip;

    for (i = 0; i < 18; i++)
    {
        oEquip = GetItemInSlot(i, oCreature);

        if (GetIsObjectValid(oEquip)) SetDroppableFlag(oEquip, FALSE);
    }

    object oLoot = GetFirstItemInInventory(oCreature);

    while (oLoot != OBJECT_INVALID)
    {
        SetDroppableFlag(oLoot, FALSE);
        oLoot = GetNextItemInInventory(oCreature);
    }

    TakeGoldFromCreature(GetGold(oCreature), oCreature, TRUE);

    ChangeToStandardFaction(oCreature, STANDARD_FACTION_HOSTILE);
    ActionAttack(oPC);
}

void main()
{
    object oPC = GetPCSpeaker();

    ChangeToStandardFaction(OBJECT_SELF, STANDARD_FACTION_HOSTILE);
    CopyCreature(oPC, OBJECT_SELF, GetLocation(OBJECT_SELF));
    ClearAllActions();
    ActionAttack(oPC);
}

Последний скрипт не проверял, но работать, по идее, должен.

Milfes, невнимательно просмотрел сообщение Айвена. Там же написано, что скрипт можно запускать откуда угодно. В нашем случае скрипт работает всегда, когда персонаж взаимодействует с данной локацией. Он запускается через эвент локации "OnUserDefined".

Сообщение отредактировал Zirrex - Jul 12 2006, 23:27
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Milfes
сообщение Jul 12 2006, 22:26
Сообщение #2719


Level 5
**

Класс: Друид
Характер: Lawful Neutral
Раса: Человек



Всё равно не получаеться, звук работает даже днём, а факел ночью не загорается.

Так же немогу понять какой тег должен быть у фонаря, такой

QUOTE
Напримере у горящего будет таг PLC_ON


или такой

QUOTE
Таг горящего факела = "AM_PLS_TORCH_ON"


И весь ли скрипт надо писать в OnUserDefined?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 12 2006, 23:25
Сообщение #2720


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

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



Milfes, нет, на эвент "OnUserDefined" необходимо поместить только последний скрипт. Первое, лишь приставка для тэга горящего фонаря. Но только "ON", а не "PLC_ON". Должно быть так:

1. Горящий фонарь: тэг "AM_PLS_TORCH_ON" (это пример, ты можешь имя тэга сделать любым, но сохрани приставку "ON" или "OFF". Писать можно и маленькими буквами. Это не актуально, ибо нет проверки.)
2. Не горящий фонарь: тэг "AM_PLS_TORCH_OFF".

В палитре у тебя должно лежать два объекта фонаря, у одного тэг "AM_PLS_TORCH_ON", у другого "AM_PLS_TORCH_OFF". Когда сменяется день на ночь, удаляются фонари с тэгом "AM_PLS_TORCH_OFF", заменяясь фонарями с тэгом "AM_PLS_TORCH_ON".
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jul 12 2006, 23:28
Сообщение #2721


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

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



QUOTE(Zirrex @ Jul 12 2006, 23:42) [snapback]87683[/snapback]
Aiwan, одного не понял, как включаются и выключаются звуки, если изначально тэг звука равен "AM_SOUND_TORTCH_"? Сприт же просто не найдет звука с тэгом "AM_SOUND_TORTCH_1".
З.Ы. Aiwan, почему таг, а не тэг?

1. Скрипт писал давно, и коммент этот устарел. (IMG:style_emoticons/kolobok_light/pardon.gif)
2. Ну, пусть буит ТЭГ или ТЕГ. (IMG:style_emoticons/kolobok_light/yes3.gif)

Milfes, ты невнимательно читал и не понял о чем я говорю в описании. В принципе можно глянуть сам код, но боюсь ты не понимаешь еще кода в таком виде что он делает... Смотри. Перед удалением например, горящего факела, скрипт сперва считывает с него локальный стрин GetLocalString "NEW_ResRef", там написан ResRef НОВОГО ОБЪЕКТА который будет созда на месте этого. Как только он считал этот стринг, он удалет старый факел и создает новый. При таком подходе не бывает остаточных освещений от объектов. А если включать-выключать, даже делая пересчет света в локации то свет пересчитывается только там где видит его РС. Иначе надо войти выйти с локации, тогда глобально пересчет буит. Вот так. Короче слей патчик тут в нем два моих факела. Они в палитре. Забей их себе импортнув, расставь по локе и все проверь. Этот скрипт может делать все что угодно с ночи на день- включать мельницу, фонтан, костер, варить ночью котел и прочее. Если включишь пару своих извилин то поймешь...
NSS
string sResRef = GetLocalString(oTorch, "NEW_ResRef");
          SetLocalInt(oTorch, "DO", TRUE);
          DestroyObject(oTorch, f);
          CreateObject(OBJECT_TYPE_PLACEABLE,sResRef, GetLocation(oTorch));
          f=f+0.2; // Сделай паузу!

http://www.wrg.ru/TEMP/Aiwan/erf_torch.zip
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Milfes
сообщение Jul 13 2006, 00:27
Сообщение #2722


Level 5
**

Класс: Друид
Характер: Lawful Neutral
Раса: Человек



Вроде делаю как вы сказали, но теперь фонарь ночью просто пропадает.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jul 13 2006, 03:59
Сообщение #2723


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

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



QUOTE(Milfes @ Jul 13 2006, 03:27) [snapback]87718[/snapback]
Вроде делаю как вы сказали, но теперь фонарь ночью просто пропадает.

Тогда возьми у сестры или младшего брата точилку, разломай ее. Вытащи из нее острое лезвие и сделай себе харакири. На крайний случай просто прочитай все что я написал внимательно, перед этим спрятав журналы с голыми женщинами и не посещая порносайты как минимум пол часа, что бы кровь осталась в твоей голове, а не ушла странным образом в другие части тела. Тем самым затруднив твой мыслительный процесс.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Milfes
сообщение Jul 13 2006, 11:52
Сообщение #2724


Level 5
**

Класс: Друид
Характер: Lawful Neutral
Раса: Человек



Это я вставляю в OnHeartBeat модуля:

NSS
void main()
{
  int i=1;
  float f=0.5;
  string sSound = GetTag(OBJECT_SELF);
  object oTorch = GetFirstObjectInArea(OBJECT_SELF);
  object oSound = GetObjectByTag(sSound+IntToString(i));
  effect eLight = EffectVisualEffect(VFX_DUR_LIGHT_YELLOW_20);
  int nEvent = GetUserDefinedEventNumber();
//======================= USERDEINE EVENT 1000 =================================
if (GetIsDay() || GetIsDawn())
//---------------------------------- ДЕНЬ --------------------------------------
  {
  while (GetIsObjectValid(oTorch))
      {
      if (GetTag(oTorch) == "AM_PLS_TORCH_ON" && !GetLocalInt(oTorch, "DO"))
                  {
          string sResRef = GetLocalString(oTorch, "NewResRef");
          SetLocalInt(oTorch, "DO", TRUE);
          DestroyObject(oTorch, f);
          CreateObject(OBJECT_TYPE_PLACEABLE,sResRef, GetLocation(oTorch));
          f=f+0.2; // Сделай паузу!
          }
          if (GetIsObjectValid(oSound))
            {
            SoundObjectStop(oSound); // Выключаем звук
            i++;  // Присвоим объекту звука таг на единицу больше
            }
      oSound = GetObjectByTag(sSound+IntToString(i));
      oTorch = GetNextObjectInArea(OBJECT_SELF);
      }
    return;
  }
//======================= USERDEINE EVENT 3000 =================================
  else if (GetIsNight() || GetIsDusk())
//----------------------------- НОЧЬ -------------------------------------------
  {
  while (GetIsObjectValid(oTorch))
      {
      if (GetTag(oTorch) == "AM_PLS_TORCH_OFF" && !GetLocalInt(oTorch, "DO"))
        {
          string sResRef = GetLocalString(oTorch, "NewResRef");
          SetLocalInt(oTorch, "DO", TRUE);
          DestroyObject(oTorch, f);
          object oTorchNew = CreateObject(OBJECT_TYPE_PLACEABLE,sResRef, GetLocation(oTorch));
          DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLight, oTorchNew));
          f=f+0.2; // Сделай паузу!
          }
          if (GetIsObjectValid(oSound))
            {
            SoundObjectPlay(oSound); // Включаем звук
            i++; // Присвоим объекту звука таг на единицу больше
            }
      oSound = GetObjectByTag(sSound+IntToString(i));
      oTorch = GetNextObjectInArea(OBJECT_SELF);
      }
  }
}


А это в OnUserDefined:

NSS
void main()
{

  object oPC = GetFirstPC();
  if (GetArea(oPC) != OBJECT_SELF) return;

  if (GetIsDusk()||GetIsNight())
    {
    if (GetLocalInt(OBJECT_SELF, "Night") != 1)
        {
        SetLocalInt(OBJECT_SELF, "Day", 0);
        SetLocalInt(OBJECT_SELF, "Night", 1);
        SignalEvent(OBJECT_SELF, EventUserDefined(3000));
        SignalEvent(OBJECT_SELF, EventUserDefined(4000));
        return;
        }
    else return;
    }
if (GetIsDawn()||GetIsDay())
    {
    if (GetLocalInt(OBJECT_SELF, "Day") != 1)
        {
        SetLocalInt(OBJECT_SELF, "Night", 0);
        SetLocalInt(OBJECT_SELF, "Day", 1);
        SignalEvent(OBJECT_SELF, EventUserDefined(1000));
        SignalEvent(OBJECT_SELF, EventUserDefined(2000));
        return;
        }
    else return;
    }



int nEvent = GetUserDefinedEventNumber();
object oArea = OBJECT_SELF;

if (nEvent == 2000)
{
  {
    DelayCommand(5.0, ExecuteScript("am_exe_torch_del", OBJECT_SELF));
  }
}
//======================= USERDEINE EVENT 3000 =================================
if (nEvent == 3000)
  {

  }
//======================= USERDEINE EVENT 4000 =================================
if (nEvent == 4000)
{
  {
    DelayCommand(5.0, ExecuteScript("am_exe_torch_del", OBJECT_SELF));
  }
}
}


У не горящего факела Тег AM_PLS_TORCH_OFF, ResRef am_pls_torch_on, а у горящего наоборот.
Так где я намудил?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Симирель
сообщение Jul 13 2006, 14:53
Сообщение #2725


Level 2
*

Класс: Волшебник
Характер: Neutral Good
Раса: Эльф



Спасибо гомадное и извените, я только-только начал обучаться и сразу строить мод.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Jul 13 2006, 15:17
Сообщение #2726


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

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




Для новичка, наверное, трудно настроить систему освещения по Айву. Можно попробовать мою, она немного попроще, правда работает немного с задержкой при смене локаций героем в дневное время. Остается остаточное освещение объектов секунд на 7-8. Один скрипт вешается на ХБ факела или лампы, другой на вход области. Делаются синьки в палитре, для факела и для лампы с такими настройками:
Убираешь в свойствах "статик", вкл. галку «сюжет».
Улучшенный, Первичное состояние: «По умолчанию».
Ставишь скрипт ”ФОНАРЬ ОСВЕЩЕНИЯ” на ХБ синьки.

NSS
//:://////////////////////////////////////////////
//:: Created By:  Gennady   ФОНАРЬ ОСВЕЩЕНИЯ на ХБ
//:: Created On:  12.07.06
//:://////////////////////////////////////////////
void main()
{
  object oSelf = OBJECT_SELF;
  object oZvFak = GetNearestObjectByTag("ZV_FAKEL"); // Звук огонь
  if (GetIsNight())
   {
    if (GetLocalInt(oSelf,"NW_L_AMION") == 0)
    {
     PlayAnimation(ANIMATION_PLACEABLE_ACTIVATE);
     DelayCommand(0.4, SetPlaceableIllumination(oSelf, TRUE));
     SetLocalInt(oSelf,"NW_L_AMION",1);
     DelayCommand(0.5, RecomputeStaticLighting(GetArea(oSelf)));
     if (GetDistanceBetween(oZvFak, oSelf) < 2.0)
     SoundObjectSetVolume(oZvFak, 127); // уровень звука от 0 до 127
    }
   }
else
{
  if (GetLocalInt(oSelf,"NW_L_AMION") != 1) return;
  if (GetTag(oSelf) == "FAKEL") // ДЛЯ ФАКЕЛА
  {
   object oFon = CreateObject(OBJECT_TYPE_PLACEABLE, "new_fakel", GetLocation(oSelf));
   AssignCommand(oFon, PlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
   DelayCommand(0.4, SetPlaceableIllumination(oFon, FALSE));
   DelayCommand(0.5, RecomputeStaticLighting(GetArea(oFon)));
   SetLocalInt(oFon,"NW_L_AMION",0);
  }
  if (GetTag(oSelf) == "LAMPA") // ДЛЯ ЛАМПЫ
  {
   object oLam = CreateObject(OBJECT_TYPE_PLACEABLE, "new_lampa", GetLocation(oSelf));
   AssignCommand(oLam, PlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
   DelayCommand(0.4, SetPlaceableIllumination(oLam, FALSE));
   DelayCommand(0.5, RecomputeStaticLighting(GetArea(oLam)));
   SetLocalInt(oLam,"NW_L_AMION",0);
  }
  DestroyObject(oSelf, 0.6);
  if (GetDistanceBetween(oZvFak, oSelf) < 2.0)
  SoundObjectSetVolume(oZvFak, 0); // уровень звука от 0 до 127
}
}
/*            Синьки новых объектов в палитре
    Тэг нового факела "FAKEL"  ResRef  "new_fakel"
    Тэг новой лампы "LAMPA"    ResRef  "new_lampa"
    Тэг звукового объекта для факела "ZV_FAKEL"
    Для правильной работы на OnEnter области нужен скрипт управления fakel_upr
*/


fakel_upr скрипт вешается на вход области с факелами

NSS
void main()
{
object oFon = GetFirstObjectInArea(OBJECT_SELF);
if (GetIsNight()) return;
while (GetIsObjectValid(oFon))
{
  if (GetTag(oFon) == "LAMPA" || GetTag(oFon) == "FAKEL")
  SetLocalInt(oFon,"NW_L_AMION",1);
  oFon = GetNextObjectInArea(oFon);
}
}


Сообщение отредактировал gennady - Jul 13 2006, 22:51
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Milfes
сообщение Jul 13 2006, 18:09
Сообщение #2727


Level 5
**

Класс: Друид
Характер: Lawful Neutral
Раса: Человек



gennady, сделал всё в точносте как ты сказал, утром лампа потухает и звук пропадает. Но вечером звук не появляется и лампа не загорается.

И если создаёш не одну лампу то у второй звук проигрывается постоянно.

Сообщение отредактировал Milfes - Jul 13 2006, 18:19
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Jul 13 2006, 20:38
Сообщение #2728


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

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



QUOTE(Milfes @ Jul 13 2006, 19:09) [snapback]87772[/snapback]
gennady, сделал всё в точносте как ты сказал, утром лампа потухает и звук пропадает. Но вечером звук не появляется и лампа не загорается.

У тебя стоит скрипт только на ХБ лампы в локе. Поставь скрипт и на ХБ синьки в палитре. Днем все лампы сменяняются на новые, а работает каждая со свое скрипта на ХБ, как на свечение, так и на звук. Звуковые объекты нужно ставить в радиусе не более 2 метров от лампы.

Сообщение отредактировал gennady - Jul 13 2006, 20:49
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Симирель
сообщение Jul 13 2006, 21:00
Сообщение #2729


Level 2
*

Класс: Волшебник
Характер: Neutral Good
Раса: Эльф



Эээ...простите что вляпываюсь снова....(прочитал 45 страниц)
Подскажите как сделать
1) Чтоб игрок стал при одевании кольца постоянно невидим, а при снимании оного ставал видим?
2)Чтоб НеПиСь был постоянно "Неземного вида"
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jul 13 2006, 21:15
Сообщение #2730


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

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



Milfes, вот модуль в нем все стоит и работает. http://www.wrg.ru/TEMP/Aiwan/modules_torch.rar
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
azathoth
сообщение Jul 13 2006, 21:20
Сообщение #2731


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

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



QUOTE(Симирель @ Jul 13 2006, 22:00) [snapback]87780[/snapback]
1) Чтоб игрок стал при одевании кольца постоянно невидим, а при снимании оного ставал видим?
Отслежавай надевание кольца в собитие модуля OnPlayerEquipItem: проверяй тег надетого предмета, если это кольцо - накладывай нужный эффект:
NSS
effect eInvisibility = EffectInvisibility(INVISIBILITY_TYPE_NORMAL);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eInvisibility, oPC);

Для снимания - событие OnPlayerUnEquipItem, можешь использовать функцию RemoveSpecificEffect из библиотеки "nw_i0_spells".
QUOTE(Симирель @ Jul 13 2006, 22:00) [snapback]87780[/snapback]
2)Чтоб НеПиСь был постоянно "Неземного вида"
На OnSpawn cущества добавляешь ему нужный эффект (через EffectVisualEffect).
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Jul 13 2006, 23:01
Сообщение #2732


Вечно меняющийся
Иконки Групп

Класс: Монах
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]



QUOTE(Симирель @ Jul 13 2006, 23:00) [snapback]87780[/snapback]

Эээ...простите что вляпываюсь снова....(прочитал 45 страниц)
Подскажите как сделать
1) Чтоб игрок стал при одевании кольца постоянно невидим, а при снимании оного ставал видим?


Плохо читал. (IMG:style_emoticons/kolobok_light/wink3.gif)
Вотъ.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Симирель
сообщение Jul 14 2006, 02:04
Сообщение #2733


Level 2
*

Класс: Волшебник
Характер: Neutral Good
Раса: Эльф



Это опять я...
1.Проблема со фракциями. Когда после разговора непись должен на меня напасть он не нападает. На сколько процентов должна быть терпимость?
И такой воррросик
2.Можно всетаки довести героя до 60 уровня и более или нет?
Прочитал 64 страници, накопал стоолькоооо.... только запутался
3.можно присоеденять более одного помошника к герою? Если да, то как?
4.Можно ли сделать так, что б помошник умерал и его труп можно было воскресить, вместо того, чтоб он переносился и оживал?(просто сделал в мод камень возвращения)Прошу не сердиться и по возможности разжевать невигласу...

Сообщение отредактировал Симирель - Jul 14 2006, 02:39
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jul 14 2006, 04:57
Сообщение #2734


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

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



1. Вешай скрипт на диалог:
NSS
//:://////////////////////////////////////////////
//:: ActionTaken  am_at_attack
//:: Copyright © 2005 WRG!
//:://////////////////////////////////////////////
/*
    Стандартный скрипт аттаки игроком НПС.
    НПС переводится в НЕЙТРАЛЬНУЮ фракцию.
*/

//:://////////////////////////////////////////////
//:: Created By: Aiwan
//:: Created On: 24.05.2005
//:://///////////////////////////////////////////
#include "nw_i0_generic"
void main()
{
    object oPC = GetPCSpeaker();
    object oNeutral = GetObjectByTag("GLOBAL_TRUE_NEUTRAL"); // НПС нейтрал
    object oSelf = OBJECT_SELF; // НПС с которым диалог
    AssignCommand(oSelf, ClearAllActions());
    ChangeFaction(oSelf, oNeutral); // Меняем фракцию на нейтрала
    SetIsTemporaryEnemy(oPC, oSelf); // Делаем временнно враждебным
    AssignCommand(oSelf, DetermineCombatRound(oPC)); // Заставляем напасть по всем правилам
    DelayCommand(1.0, AssignCommand(oSelf, ActionAttack(oPC))); // Кричим "ФАС!"
}


Если тебе не надо временную фракцию то можешь просто убрать строки
NSS
object oNeutral = GetObjectByTag("GLOBAL_TRUE_NEUTRAL"); // НПС нейтрал
    ChangeFaction(oSelf, oNeutral); // Меняем фракцию на нейтрала

3. Читай тему про помощников, я писал и скрипты там выложил.
4. Почитай мой скрипт недавно писал на смерть помошника. Поправь под себя.
NSS
//:://////////////////////////////////////////////////
//:: X0_CH_HEN_DEATH
//:: Copyright © 2002 Floodgate Entertainment
//:://////////////////////////////////////////////////
/*
  OnDeath handler for henchmen ONLY. Causes them to respawn at
  (in order of preference) the respawn point of their master
  or their own starting location.
*/

//:://////////////////////////////////////////////////
//:: Created By: Naomi Novik
//:: Created On: 10/09/2002
//:://////////////////////////////////////////////////
#include "x0_i0_henchman"
#include "am_inc_debug"
#include "am_inc_cutscene"

void main()
{
    // Handle a bunch of stuff to keep us from running around,
    // dying again, etc.
    PreRespawnSetup();

    // Call for healing
    DelayCommand(0.5, VoiceHealMe(TRUE));

    // Get our last master
    object oPC = GetLastMaster();
    object oSelf = OBJECT_SELF;


    // Clear dialogue events
    ClearAllDialogue(oPC, OBJECT_SELF);
    ClearAllActions();

    SetLocalLocation(oSelf, "POINT_DEATH", GetLocation(oSelf));
    //--------------------------------------------------------------------------
    //  Если РС умер или у нас отключен дебаг, то помощник умрет. В противном
    //  случае воскреснет рядом.
    //--------------------------------------------------------------------------
    if(!GetIsObjectValid(oPC) || GetIsDead(oPC) == TRUE)
    {
    if(GetTag(GetItemInSlot(INVENTORY_SLOT_NECK,oSelf))=="AM_MNECK_AZUTH")
    {
        effect eEffect1 = EffectVisualEffect(VFX_FNF_SOUND_BURST_SILENT);
        AssignCommand(oSelf, ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect1, oSelf));
        DelayCommand(0.7, RespawnHenchman());
        DelayCommand(0.9, PostRespawnCleanup());
        DelayCommand(1.5, AddCutEffects(oSelf));
        DelayCommand(3.0, AssignCommand(oSelf, JumpToObject(GetWaypointByTag("AM_WP_AZUTH_RESPAWN"))));
        DelayCommand(6.0, RemoveCutEffects(oSelf));
        Debug("Алишан в храме Азута. Забирайте ее там.");
        return;
      }
      if(!GetLocalInt(GetModule(), "DEBAG_PC"))
      {
          DelayCommand(1.0, RespawnHenchman());
          DelayCommand(1.5, PostRespawnCleanup());
          DelayCommand(1.9, AssignCommand(oSelf, JumpToLocation(GetLocalLocation(oSelf, "POINT_DEATH"))));
          DelayCommand(2.1, AddHenchman(GetFirstPC(), oSelf));
          Debug("ВЫ В РЕЖИМЕ ТЕСТА. ВАШ ПОМОЩНИК НЕУБИВАЕМ.");
          return;
      }
    else
    //--------------------------------------------------------------------------
    //  Умерла, так умерла... =)
    //--------------------------------------------------------------------------
          {
            SetPlotFlag(OBJECT_SELF,FALSE);
            SetImmortal(OBJECT_SELF, FALSE);
            SetIsDestroyable(TRUE, FALSE, FALSE);
            DestroyObject(OBJECT_SELF, 0.2);
          }
    }
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Симирель
сообщение Jul 14 2006, 11:38
Сообщение #2735


Level 2
*

Класс: Волшебник
Характер: Neutral Good
Раса: Эльф



Спасибо Aivam большое.
Скажи только, я напутал с нейтральной фракцией, это надо поставить 50% терпимости к игроку или 11%?
А на второй кто-то знает ответ?( мучает все-таки)

Наверное я один такой сумашедший(взявшийся прочитать тему)... прочитал 89 страниц до трех ночи... снились скрипты... и диалоги с неизвесными..................................................

Сообщение отредактировал Симирель - Jul 14 2006, 13:29
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

205 страниц V  « < 108 109 110 111 112 > » 
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 27th July 2025 - 01:30