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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
205 страниц V  « < 179 180 181 182 183 > »   
Ответить в эту темуОткрыть новую тему
> Вопросы новичков, Абсолютные глупости
StasMokos
сообщение Feb 21 2011, 17:02
Сообщение #4496


Level 3
*

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



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

Может быть сделать скрипт, типо, если происходить смена для ночью, то НПС должен находиться в определенном месте? Это можно как-то сделать?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Feb 22 2011, 08:04
Сообщение #4497


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

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



На вход области (или ХВ объекта) я могу предложить скрипт перемещения для НПС, которые должны менять локацию в зависимости от смены дня и ночи. Я подключаю для этих целей инклюду, и использую копирование НПС, т.к. это более быстрая функция, чем прыжок.
Neverwinter Script
// КОПИЯ ОБЪЕКТА
void CopyObjectN(object oSource,location locLocation,
    object oOwner = OBJECT_INVALID, string sNewTag = "")
{CopyObject(oSource, locLocation, oOwner, sNewTag);}
// Перемещаем создание к точкам днем и ночью
// object oWPD - Точка день
// object oWPN - Точка ночь
// object oPS - Существо перемещаемое
void pLudey(object oWPD, object oWPN, object oPS);

//***** Перемещение день-ночь *****
void pLudey(object oWPD, object oWPN, object oPS)
{
  if (oPS==OBJECT_INVALID||oWPD==OBJECT_INVALID||oWPN==OBJECT_INVALID) return;
  int T = GetTimeHour();
  if(T>=7 && T<21// день
  {
    if (GetLocalInt(OBJECT_SELF, "PEREMESH") != 1)
      {
      AssignCommand(oPS, ClearAllActions());
      DelayCommand(0.1, CopyObjectN(oPS, GetLocation(oWPD)));
      DestroyObject(oPS, 0.3);
      DelayCommand(5.0, SetLocalInt(OBJECT_SELF,"PEREMESH",1));
      }
    }
  else if (GetLocalInt(OBJECT_SELF, "PEREMESH") != 2// ночь
      {
      AssignCommand(oPS, ClearAllActions());
      DelayCommand(0.1, CopyObjectN(oPS, GetLocation(oWPN)));
      DestroyObject(oPS, 0.3);
      DelayCommand(5.0, SetLocalInt(OBJECT_SELF,"PEREMESH",2));
      }
}
  // Перемещение существа к точке маршрута
void main()
{
  object oPC = GetEnteringObject();
  if (!GetIsPC(oPC)) return;
  object oPointD = GetObjectByTag("WP_TAG_1");
  object oPointM = GetObjectByTag("WP_TAG_2");
  object oPoint1 = GetObjectByTag("WP_TAG_3");
  pLudey(oPoint1, oPointD, GetObjectByTag("TAG_1"));
  pLudey(oPoint1, oPointM, GetObjectByTag("TAG_2"));
}

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Feb 22 2011, 13:42
Сообщение #4498


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

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



Цитата
использую копирование НПС, т.к. это более быстрая функция, чем прыжок.
Это как так? (IMG:style_emoticons/kolobok_light/shok.gif) Пересоздание объекта - операция намного более затратная, чем джамп.
Я уже не говорю о том, что при копировании существа не копируются эффекты.

Сообщение отредактировал Ilerien - Feb 22 2011, 13:42
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Feb 22 2011, 16:11
Сообщение #4499


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

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



Цитата(Ilerien @ Feb 22 2011, 13:42) *
Это как так? Пересоздание объекта - операция намного более затратная, чем джамп.

Могет быть, могет быть... Но факт, что джам одновременно пары десятков НПС, при входе в локу, повиснет, а создание копий нет.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
StasMokos
сообщение Mar 1 2011, 15:04
Сообщение #4500


Level 3
*

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



Спасибо большое (IMG:style_emoticons/kolobok_light/rolleyes.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Keks
сообщение Mar 8 2011, 09:39
Сообщение #4501


Level 3
*

Класс: Теневой Танцор
Характер: Lawful Neutral
Раса: Человек



Цитата(gennady @ Feb 22 2011, 16:11) *
Могет быть, могет быть... Но факт, что джам одновременно пары десятков НПС, при входе в локу, повиснет, а создание копий нет.

О_о с чего это вдруг???
Первый раз такое слышу, делал кастом сцену с парадом, толпа гоблов маршировала из локи в локу перемещались рядами по 5 гоблов в колонне и ничего
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
StasMokos
сообщение Mar 9 2011, 15:45
Сообщение #4502


Level 3
*

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



И все-таки у меня все глючит.. Половина телепортируется, а половина - нет. Плюс жестко все глючит. Вот мой скрипт на HeartBeat

Neverwinter Script
#include "x0_i0_anims"

void main()
{
object oWP= GetWaypointByTag("NO_" + GetTag(OBJECT_SELF));
object oWPD= GetWaypointByTag("DE_" + GetTag(OBJECT_SELF));
ExecuteScript("nw_c2_default1", OBJECT_SELF);
if (GetTimeHour()<=6 && GetLocalInt(OBJECT_SELF,"PeN")!=1)
  {
   AssignCommand(OBJECT_SELF, ActionJumpToObject(oWP));
   SetLocalInt(OBJECT_SELF,"PeN",1);
  }
  if (GetTimeHour()>6 && GetLocalInt(OBJECT_SELF,"PeN")!=2)
  {
   AssignCommand(OBJECT_SELF, ActionJumpToObject(oWPD));
   SetLocalInt(OBJECT_SELF,"PeN",2);
  }
}




И еще один вопрос. Как отключить функцию хождения по вейпоинтам?

Сообщение отредактировал StasMokos - Mar 9 2011, 15:46
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
denis0k
сообщение Mar 9 2011, 16:58
Сообщение #4503


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

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



Цитата
Половина телепортируется, а половина - нет.
Попробуй перед прыжком clearallactions сделать.
Цитата
Как отключить функцию хождения по вейпоинтам?
Самое изящное - не ставить неписю вейпоинты. Если надо динамически регулировать, то придётся копать скрипты аи и искать там функцию ходьбы. Можно добавить, к примеру, в неё какой-нить флаг, при котором она не срабатывает.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Mar 9 2011, 17:30
Сообщение #4504


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

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



Цитата(denis0k @ Mar 9 2011, 16:58) *
Попробуй перед прыжком clearallactions сделать

Это само-собой. Плюс еще нужно опустить в конец скрипта... И все же я рекомендую копирование НПС...
Neverwinter Script
ExecuteScript("nw_c2_default1", OBJECT_SELF);


Про функцию WalkWayPoints читай здесь:
http://www.city-of-masters.ru/forums/index...?showtopic=5123
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
StasMokos
сообщение Mar 10 2011, 09:12
Сообщение #4505


Level 3
*

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



Спасибо, теперь все работает)
Но только для тех, кто не по вейпам ходит..

А есть такой вариант типо отправить НПС куда нибудь и запереть за ним дверь?
Просто у меня сначала он ходит по точкам, а потом после разговора с игроком должен удалиться в свою комнату и там и остаться.
Может еще какие-нибудь лучше варианты есть?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
StasMokos
сообщение Mar 16 2011, 16:34
Сообщение #4506


Level 3
*

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



Еще одна вещь.. Если не очень сложно, кто-нибудь может объяснить мне как оперировать скриптом для сидения НПС на стуле с проигрыванием анимации (скрипт с заниженным стулом, что выложен на сайте http://remmgen.narod.ru в разделе монстры)?
Во-первых, я не понимаю какую роль там играет этот стул, а во-вторых, мне просто нормально никого не посадить, все съезжают..

Сообщение отредактировал StasMokos - Mar 21 2011, 08:44
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lorendroll
сообщение Mar 20 2011, 04:01
Сообщение #4507


Level 9
***

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



Цитата
после разговора с игроком должен удалиться в свою комнату и там и остаться.

Нарисуй триггер в комнате, а на OnEnter проверку на то, вошел ли туда нужный НПС, и команду чтобы запереть дверь.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
StasMokos
сообщение Mar 21 2011, 08:46
Сообщение #4508


Level 3
*

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



Я так делал, но это очень плохо выглядит, когда кто-то изнутри рубит дверь..Впрочем, я уже разобрался, я просто после ухода НПС удалил все его предыдущие точки маршрута.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
StasMokos
сообщение Apr 26 2011, 22:57
Сообщение #4509


Level 3
*

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



Я понимаю, что я, наверное, до такой степени уже всех задолбал, что мне уже не отвечают, но появился еще один вопрос.. и не знаю, как решить его самостоятельно.
Дело вот в чем, существует триггер, когда на него попадаешь, то заражаешься болезнью (снижаются хар-ки) и совершается анимация. Тестирую.. Если заходишь на него и останавливаешься, все работает как надо, но стоит просто пробежать мимо, так показываются только анимации и больше ничего не происходит. С чем это может быть связано и как это исправить?
Буду очень признатален, если кто-нибудь уделит моему вопросу хоть минутку внимания.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Apr 27 2011, 06:38
Сообщение #4510


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

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



Давай сюда свой скрипт.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
StasMokos
сообщение Apr 27 2011, 09:51
Сообщение #4511


Level 3
*

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



Neverwinter Script
void CheckItem(object oPC, object oItem)
{
    itemproperty ipItem = GetFirstItemProperty(oItem);
    while(GetIsItemPropertyValid(ipItem))
    {
        if(GetItemPropertyType(ipItem) == ITEM_PROPERTY_IMMUNITY_MISCELLANEOUS)
        {
            if(GetItemPropertySubType(ipItem) == IP_CONST_IMMUNITYMISC_LEVEL_ABIL_DRAIN)
                AssignCommand(oPC, ActionUnequipItem(oItem));

        }
        ipItem = GetNextItemProperty(oItem);
    }

}

void HandleItems(object oTarget)
{
    object oItem;
    oItem = GetItemInSlot(INVENTORY_SLOT_ARMS, oTarget);
    CheckItem(oTarget, oItem);
    oItem = GetItemInSlot(INVENTORY_SLOT_BELT, oTarget);
    CheckItem(oTarget, oItem);
    oItem = GetItemInSlot(INVENTORY_SLOT_BOOTS, oTarget);
    CheckItem(oTarget, oItem);
    oItem = GetItemInSlot(INVENTORY_SLOT_CHEST, oTarget);
    CheckItem(oTarget, oItem);
    oItem = GetItemInSlot(INVENTORY_SLOT_CLOAK, oTarget);
    CheckItem(oTarget, oItem);
    oItem = GetItemInSlot(INVENTORY_SLOT_HEAD, oTarget);
    CheckItem(oTarget, oItem);
    oItem = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oTarget);
    CheckItem(oTarget, oItem);
    oItem = GetItemInSlot(INVENTORY_SLOT_LEFTRING, oTarget);
    CheckItem(oTarget, oItem);
    oItem = GetItemInSlot(INVENTORY_SLOT_NECK, oTarget);
    CheckItem(oTarget, oItem);
    oItem = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oTarget);
    CheckItem(oTarget, oItem);
    oItem = GetItemInSlot(INVENTORY_SLOT_RIGHTRING, oTarget);
    CheckItem(oTarget, oItem);
}

void AdvanceDisease(object oEnter)
{
    ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_HEAD_NATURE), oEnter);
    ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_WAIL_O_BANSHEES), oEnter);
    ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_GAS_EXPLOSION_NATURE), oEnter);

    int Wis_Ch = 5;
    int Int_Ch = 5;
    ApplyEffectToObject(DURATION_TYPE_PERMANENT, SupernaturalEffect( EffectAbilityDecrease(ABILITY_WISDOM, Wis_Ch)), oEnter);
    ApplyEffectToObject(DURATION_TYPE_PERMANENT, SupernaturalEffect( EffectAbilityDecrease(ABILITY_INTELLIGENCE, Int_Ch)), oEnter);

    int Str_Ch;
    int Dex_Ch;
    int Cha_Ch;
    int Con_Ch;
    switch (Random(3))
    {
        case 0: Str_Ch = 0; break;
        case 1: Str_Ch = 3; break;
        case 2: Str_Ch = 5; break;
    }
    switch (Random(3))
    {
        case 0: Dex_Ch = 0; break;
        case 1: Dex_Ch = 3; break;
        case 2: Dex_Ch = 5; break;
    }
    switch (Random(3))
    {
        case 0: Cha_Ch = 0; break;
        case 1: Cha_Ch = 3; break;
        case 2: Cha_Ch = 5; break;
    }
    switch (Random(3))
    {
        case 0: Con_Ch = 0; break;
        case 1: Con_Ch = 3; break;
        case 2: Con_Ch = 5; break;
    }
    ApplyEffectToObject(DURATION_TYPE_PERMANENT, SupernaturalEffect( EffectAbilityDecrease(ABILITY_STRENGTH, Str_Ch)), oEnter);
    ApplyEffectToObject(DURATION_TYPE_PERMANENT, SupernaturalEffect( EffectAbilityDecrease(ABILITY_DEXTERITY, Dex_Ch)), oEnter);
    ApplyEffectToObject(DURATION_TYPE_PERMANENT, SupernaturalEffect( EffectAbilityDecrease(ABILITY_CONSTITUTION, Con_Ch)), oEnter);
    ApplyEffectToObject(DURATION_TYPE_PERMANENT, SupernaturalEffect( EffectAbilityDecrease(ABILITY_CHARISMA, Cha_Ch)), oEnter);

    SetLocalInt (oEnter, "Wis_Change", Wis_Ch);
    SetLocalInt (oEnter, "Int_Change", Int_Ch);
    SetLocalInt (oEnter, "Str_Change", Str_Ch);
    SetLocalInt (oEnter, "Dex_Change", Dex_Ch);
    SetLocalInt (oEnter, "Con_Change", Con_Ch);
    SetLocalInt (oEnter, "Cha_Change", Cha_Ch);

}
void main()
{
    object oEnter = GetEnteringObject();
    if(!GetIsPC(oEnter))
        return;
    int once =  GetLocalInt(oEnter, "once");
    if(once != 1)
    {
        HandleItems(oEnter);
        DelayCommand(1.0, AdvanceDisease(oEnter));
        SetLocalInt(oEnter, "once", 1);
    }
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Apr 27 2011, 13:30
Сообщение #4512


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

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



Предполагаю, что дело в том, что не снимается какой-нибудь предмет с иммуном к уменьшению абилок.
Neverwinter Script
void HandleItems(object oTarget)
{
    object oItem;
    AssignCommand(oTarget, ClearAllActions(TRUE)); //чистим стек действий
    oItem = GetItemInSlot(INVENTORY_SLOT_ARMS, oTarget);
    ...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
StasMokos
сообщение Apr 27 2011, 14:52
Сообщение #4513


Level 3
*

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



Нет, все снимается.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
kiruhs
сообщение Apr 27 2011, 23:16
Сообщение #4514


Level 6
**

Класс: Клерик
Характер: Chaotic Neutral
Раса: Животное



Цитата(StasMokos @ Apr 27 2011, 13:52) *
Нет, все снимается.

Проведем эксперимент. Раздень чара и пробеги по триггеру. Если все норм - таки действительно итемы не снимаются
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
StasMokos
сообщение Apr 28 2011, 17:31
Сообщение #4515


Level 3
*

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



Кажется, да, проблема с этим.
Все снимается, но видимо с задержкой и эффекты не успевают сработать.

Я еще отсрочил AdvanceDisease и все вроде работает..

Большое спасибо (IMG:style_emoticons/kolobok_light/rolleyes.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dragon1996
сообщение May 2 2011, 21:19
Сообщение #4516


Level 1


Класс: Ученик Дракона
Характер: Lawful Good
Раса: Человек



народ, помогите пожалуйста, я начал создавать модуль, а для героя в этом модуле нужна нестандартная профессия! можно ли создавать в nwn новые профессии???
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Keks
сообщение May 3 2011, 19:23
Сообщение #4517


Level 3
*

Класс: Теневой Танцор
Характер: Lawful Neutral
Раса: Человек



а какие "стандартные " профессии есть в нвн? (IMG:style_emoticons/kolobok_light/wacko.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dragon1996
сообщение May 3 2011, 21:15
Сообщение #4518


Level 1


Класс: Ученик Дракона
Характер: Lawful Good
Раса: Человек



keks, ну а подумать никак? (IMG:style_emoticons/kolobok_light/rtfm.gif) Воин, варвар, друид, маг, волшебник, плут, и т.д. Это всё стандартные профессии!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение May 3 2011, 21:30
Сообщение #4519


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

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



Классы это, классы.
Делать кастомные можно, но сложно, долго и муторно.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
StasMokos
сообщение May 23 2011, 13:55
Сообщение #4520


Level 3
*

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



Я уже задавал этот вопрос, но.. задам еще раз, ибо ответа я не получил.
Добавление портретов в сеповский 2da, по-моему, гиблое дело, все портреты исчезают и все, что бы я не делал.
Создаю свой хак, засовываю туда нормальный 2da с сепом и стандартными портретами + одна строчка с новым портретом.
Туда же (в хак) засовываю этот самый новый портрет в пяти экземплярах (разного размера).
ПОЧЕМУ НИЧЕГО НЕ РАБОТАЕТ?
Что я не так делаю? (IMG:style_emoticons/kolobok_light/suicide2.gif)

Сообщение отредактировал StasMokos - May 30 2011, 15:11
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

205 страниц V  « < 179 180 181 182 183 > » 
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 19th August 2025 - 16:50