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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 90 91 92 93 94 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
dumbo
сообщение May 24 2006, 15:22
Сообщение #2276


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

Класс: Фея
Характер: Chaotic Evil
Раса: Тварь
NWN: Скриптинг [PW]



QUOTE(DarkDeivel @ May 24 2006, 15:44) [snapback]82630[/snapback]
В игре максимум 20 лвл. Как сделать чтобы был максимальный 100. Если скрипт скажите плиз.

начнем с того, что "в игре" уже давно(начиная с hotu) левел-кап для игроков - 40. это зашито в движок. чтобы сделать больше 40 нужно делать довольно нетривиальную систему, суть которой - куча скриптов + custom 2da + nwnx + leto.
забудь вобщем. во всяком случае до тех пор, пока не повысишь свой скилл в нвн-строительстве на несколько порядков. (IMG:style_emoticons/kolobok_light/pardon.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
..::SERGO::..
сообщение May 28 2006, 08:05
Сообщение #2277


Level 3
*

Класс: Паладин
Характер: Lawful Good
Раса: Человек



Ну все, блин, здаюсь. Все перепробывал(наверно не все, раз пишу сюда). Мне надо, чтобы можно было заговорить с дверью, чтобы одна ветка появлялась вслучае определенного предмета в инвенатре, чтобы после отдачи этого предмета двери, дверь уничтажалась. ух, все.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение May 28 2006, 08:24
Сообщение #2278


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

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



В диалоге делай проверку, на определенный предмет. (Используя скрипт визард)
Разрушай дверь либо дестроем, либо нужным эффектом.

NSS
// Text Appears When
int StartingConditional()
{
   if (GetItemPossessor(GetObjectByTag("таг_айтема")) == GetPCSpeaker())
     {return TRUE;}

    return FALSE;
}

NSS
// ActionTakens
void main(){DestroyObject(OBJECT_SELF);}


Сообщение отредактировал Dik Morris - May 28 2006, 09:00
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
..::SERGO::..
сообщение May 28 2006, 08:33
Сообщение #2279


Level 3
*

Класс: Паладин
Характер: Lawful Good
Раса: Человек



как не странно, но визардский скрипт мне немного другое дал, поэтому я припер сюды
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение May 28 2006, 09:06
Сообщение #2280


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

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



Этот скрипт не имеет особых различий с визардским, там используется фун-ция HasItem, которая схожа с GetItemPossessor.

PS: просто в HasItem, есть проверка на валидность объекта. (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Noah
сообщение May 28 2006, 23:13
Сообщение #2281


Level 5
**

Класс: Убийца
Характер: Chaotic Neutral
Раса: Полуэльф



Lex спасибо за помощь!Советую всем строителям добавить в локи триги с бонусами и т.П.Разнобразие боя!Теперь по делу,проблема слeдующая:в катсцене я сажу npc на стул(ActionSit),далее npc с него не встает,(а он должен идти на wp1) даже если стул убить!Катсцена становится вечной.Как сделать чтоб npc встал и пошел.

Сообщение отредактировал Noah - May 28 2006, 23:19
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
kreon
сообщение May 29 2006, 01:00
Сообщение #2282


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

Класс: Некромант
Характер: Chaotic Evil
Раса: Дракон
NWN: Скриптинг [PW]



NSS
SetCutsceneMode(oPC, TRUE);
DelayCommand(1.0f, AssignCommand(oNPC, ClearAllActions(TRUE)));
DelayCommand(1.1f AssignCommand(oNPC, ActionMoveToObject(GetObjectByTag("wp1"))));
DelayCommand(3.0f, SetCutsceneMode(oPC, FALSE));

1 строка - катсцена
2 - очистить стек (встанет со стула)
3 - пойдет к обьекту с тегом wp1
4 - конец катсцены
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение May 29 2006, 01:44
Сообщение #2283


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

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



..::SERGO::.., не пользуйся визардовскими скриптами, как правило, они пишут не совсем то, что хотелось бы, и часто в них больше мусора, чем нужного кода. Стоит учиться самому писать скрипты.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение May 29 2006, 08:07
Сообщение #2284


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

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



Noah, тебе неплохо было бы прочесть мои статьи по авроре, я там разбирал такой аспект, как акция и просто действие. Возможно твой НПС выполняет не акцию сидения, а воспроизводит анимацию но не как акцию. И он может седеть так оооочень долго.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Noah
сообщение May 29 2006, 21:41
Сообщение #2285


Level 5
**

Класс: Убийца
Характер: Chaotic Neutral
Раса: Полуэльф



Спасибо,теперь она встает.Айван,кинь ссылку на статьи,я с этого и начинал скриптинг,но мог что-то пропустить.А нет ли анимаций сидячим нпс?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение May 30 2006, 07:11
Сообщение #2286


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

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



http://download.wrg.ru/public_wrg/toolset/...ra_tutorial.exe


QUOTE(Noah @ May 30 2006, 00:41) [snapback]83142[/snapback]
А нет ли анимаций сидячим нпс?

Вот скрипт, думаю разберешься.
NSS
//:://////////////////////////////////////////////
//:: OnUserDefaine  am_cud_sit
//:: Copyright © 2005 WRG!
//:://////////////////////////////////////////////
/*
  Скрипт садит НПС на стул или на землю.
    SIT_CHAIR - таг стула для сидения.
*/

//:://////////////////////////////////////////////
//:: Created By: Aiwan
//:: Created On: 07.07.2005
//:://///////////////////////////////////////////


void main()
{
  object oPC = GetFirstPC();
  if (GetIsDead(OBJECT_SELF)==TRUE) return; // Если он помер, то пусть молчит
  if (GetArea(OBJECT_SELF)!=GetArea(oPC)) return;
  if (GetLocalInt(OBJECT_SELF, "STOP")) return; // Отключаем если нам это надо
  if (GetIsInCombat(OBJECT_SELF))  return;
  if (IsInConversation(OBJECT_SELF)) return;
  int nEvent = GetUserDefinedEventNumber();
//=========================== HEARTBEAT EVENT ==================================
if (nEvent == EVENT_HEARTBEAT) // Сигнал поступает с HeartBeat слота.
  {
//------------------------------------------------------------------------------
  if (GetLocalInt(OBJECT_SELF, "FLAG_SIT_CROSS") == TRUE)
      {
      if (GetLocalInt(OBJECT_SELF, "DISTURBED")) return;

          ClearAllActions();
          SetLocalInt(OBJECT_SELF, "DISTURBED", TRUE);
          ActionMoveToLocation(GetLocalLocation(OBJECT_SELF, "initLoc"));
          ActionDoCommand(SetFacing(GetLocalFloat(OBJECT_SELF, "initFacing")));
          ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS, 1.0, 99999.9);
          return;
      }
//------------------------------------------------------------------------------
  if (GetLocalInt(OBJECT_SELF, "FLAG_SIT_CHAIR") == TRUE)
      {
      if (GetLocalInt(OBJECT_SELF, "FLAG_SIT_CHAIR") == 2)
          return;

    if (GetCurrentAction() == ACTION_SIT) return;
    if (GetCurrentAction() == ACTION_MOVETOPOINT) return;

          object oChair = GetNearestObjectByTag("SIT_CHAIR");
          if (GetIsObjectValid(oChair))
          {
              ClearAllActions();
              ActionSit(oChair);
              ActionDoCommand(SetLocalLocation(OBJECT_SELF, "initFacing", GetLocation(OBJECT_SELF)));
          }
      }
  }
//============================= DIALOGUE EVENT =================================
  if (nEvent == EVENT_DIALOGUE)  // Стандартный сигнал
    {
      SetLocalInt(OBJECT_SELF, "DISTURBED", FALSE);
    }
//============================= PERCIEVE EVENT =================================
  if (nEvent == EVENT_PERCEIVE)  // Стандартный сигнал
    {
    if (GetIsPC(GetLastPerceived()))
      {
        SetLocalInt(OBJECT_SELF, "DISTURBED", FALSE);
      }
    }
//========================== END COMBAT ROUND EVENT ============================
  if (nEvent == EVENT_END_COMBAT_ROUND)  // Стандартный сигнал
    {
    SetLocalInt(OBJECT_SELF, "DISTURBED", FALSE);
    }
//------------------------------------------------------------------------------
}


Скрипт ставится на слот UserDef
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Jun 1 2006, 06:07
Сообщение #2287


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

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



QUOTE(Noah @ May 29 2006, 22:41) [snapback]83142[/snapback]
А нет ли анимаций сидячим нпс?


Если я правильно понял вопрос, то вам нужна дополнительная анимация сидящим персам? Недавно этот вопрос обсуждался, читайте статью Лекса ЗДЕСЬ.
Если задействована ActionSit, то наложение анимации поднимет перса со стула. Можно совместить с ANIMATION_LOOPING_SIT_CHAIR кое-что из анимаций, но вот стул под перса не подставишь (или я это тупо делал). А вот на CROSS, можно все свободно вешать. Вот простой скрипт на ХБ-ит перса. Если нужно, чтобы перс смотрел в определенную сторону, то задайте точку "V_ + тэг перса."

NSS
void main()
{
  object oWay = GetWaypointByTag("V_" + GetTag(OBJECT_SELF));
  vector vFace = GetPosition(oWay);
if(GetArea(GetFirstPC()) != GetArea(OBJECT_SELF)) return; // если ПС нет локе
if (!IsInConversation(OBJECT_SELF))
  {
   SetFacingPoint(vFace);
   switch (Random(3)+1)
   {
    case 1:
    if(Random(100) >= 50)
    ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS);
    else
    ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK);
    break;
    case 2:
    if(Random(100) >= 50)
    ActionPlayAnimation(ANIMATION_FIREFORGET_PAUSE_SCRATCH_HEAD);
    else
    ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK);
    break;
    case 3:
    if(Random(100) >= 50 && GetAbilityScore(OBJECT_SELF, ABILITY_INTELLIGENCE) >= 17)
    ActionPlayAnimation(ANIMATION_FIREFORGET_READ);
    else
    {
     if (GetGender(OBJECT_SELF)==GENDER_MALE)
     PlaySound("as_pl_yawningm1");
     else
     PlaySound("as_pl_yawningf1");
     ActionPlayAnimation(ANIMATION_FIREFORGET_PAUSE_SCRATCH_HEAD);
    }
    break;
   }
   ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS, 1.0, 6.0);
  }
}
/* Персонаж сидит на земле, пьет и чешет голову.
Если интеллект выше 17, то еще и читает. Слот HB */


Спасибо метрам за подсказку! Учту в дальнейшем. (IMG:style_emoticons/kolobok_light/thank_you.gif)

Сообщение отредактировал gennady - Jun 1 2006, 12:41
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 1 2006, 08:23
Сообщение #2288


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

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



gennady, есть смысл добавить проверку РС в локации. Что бы НПС все это делал только если в локации есть игрок.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Jun 1 2006, 11:49
Сообщение #2289


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

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




QUOTE(Aiwan @ Jun 1 2006, 09:23) [snapback]83448[/snapback]
gennady, есть смысл добавить проверку РС в локации. Что бы НПС все это делал только если в локации есть игрок.


Aiwan, если можно киньте оную. Вообще я подметил, что ХБ начинает работать в определенном радиусе от героя, или я не прав? Тут у меня назрел вопрос по скриптам на OnSpawn, ведь насколько я понял локалки в вышеприведенном вами скрипте, вешаются именно там. Просто у меня было несколько проколов. Все работает 10-20 раз, а на тридцатом, бах висяк! Пришлось переписать и бросить все ХБ, т.к. с сюжетным персам это непозволительно. Теперь трижды думаю, стоит ли ставить что на OnSpawn. Непонятно…, или это только у меня такие приколы? (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jun 1 2006, 11:57
Сообщение #2290


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

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



QUOTE(gennady @ Jun 1 2006, 12:49) [snapback]83468[/snapback]
Вообще я подметил, что ХБ начинает работать в определенном радиусе от героя, или я не прав?

хб работают везде, во всех локациях. Но там, где нет игрока - чуть медленнее (бывает 7-8-9 секунд 1 такт)
NSS
// если игрок не в одной локе с НПС - выйти из скрипта
if( GetArea(GetFirstPC())!=GetArea(OBJECT_SELF)) return;
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 1 2006, 21:15
Сообщение #2291


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

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



QUOTE(gennady @ Jun 1 2006, 14:49) [snapback]83468[/snapback]
Тут у меня назрел вопрос по скриптам на OnSpawn, ведь насколько я понял локалки в вышеприведенном вами скрипте, вешаются именно там. Просто у меня было несколько проколов. Все работает 10-20 раз, а на тридцатом, бах висяк! Пришлось переписать и бросить все ХБ, т.к. с сюжетным персам это непозволительно.

Ни разу не произошло ни одного сбоя. (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif) приведи код скрипта сюда.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Jun 2 2006, 06:13
Сообщение #2292


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

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




QUOTE(Aiwan @ Jun 1 2006, 22:15) [snapback]83524[/snapback]
Ни разу не произошло ни одного сбоя. приведи код скрипта сюда.


Коды как мои, так и базовые, в том числе Леворовские. Неверский я видно тупо использовал, ребята спавнили перса в процессе игры, у меня же перс при загрузке уже находился в локе. Т.ч. есть рифы, и о них надо помнить. Да, забыл, были банальные баги при раздачи уровня. (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif)

Доморощенный код (последний баг, сработал 50/50, стал только сюжетным)
NSS
void main()
{
DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_PERMANENT,
SupernaturalEffect(EffectPetrify()), OBJECT_SELF));
DelayCommand(1.5, SetPlotFlag(OBJECT_SELF, TRUE)); // сюжет
}


os_died (кусок кода из скрипта Левора, стоял полный код)
NSS
void main()
{
    SetLocalInt(OBJECT_SELF, "SPAWNED_DEAD", 1);
    SetIsDestroyable(FALSE, FALSE, FALSE);
    effect eDeath = EffectDeath();
    ApplyEffectToObject(DURATION_TYPE_INSTANT, eDeath, OBJECT_SELF);
}


nw_c2_j_assvict1 (базовый неверский код)
NSS
#include "NW_I0_GENERIC"
void main()
{
    SetSpawnInCondition(NW_FLAG_PERCIEVE_EVENT); 
    SetSpawnInCondition(NW_FLAG_DAMAGED_EVENT);
    SetListeningPatterns();    // Goes through and sets up which shouts  the NPC will listen to.
    WalkWayPoints();          // Optional Parameter: void WalkWayPoints(int nRun = FALSE, float fPause = 1.0)
                              // 1. Looks to see if any Way Points in the module have the tag "WP_" + NPC TAG + "_0X", if so walk them
                              // 2. If the tag of the Way Point is  "POST_" + NPC TAG the creature will return this way point after
                              //    combat.
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 2 2006, 10:38
Сообщение #2293


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

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



Команда Делей не всегда корректно, а скажем почти всегда неккоректно работает с OBJECT_SELF. Делай так:
NSS
object oSelf = OBJECT_SELF;


NSS
void main()
{
    object oNpc = OBJECT_SELF;
    SetIsDestroyable(FALSE,FALSE,FALSE);
    ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDeath(TRUE,TRUE), oNpc);
}

Вообще не рекомендую тереть скрипты спавновские полностью, если НПС должен что то делать. Если он мертвый то три. Код выше.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jun 2 2006, 18:15
Сообщение #2294


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

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [Sn]



Делай лучше вообще не использовать в спауне, как раз всякие баги и 50/50 и вылезают.
Особенно, когда мод грузится, при загрузке лок либо нет такого, либо баги реже/меньше, но при загрузке мода 100% бяки вылезают.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Kavin
сообщение Jun 2 2006, 18:56
Сообщение #2295


Level 8
***

Класс: Паладин
Характер: Lawful Good
Раса: Полуэльф
ПОДМАСТЕРЬЕ



Возникла следующая проблема:
На одну из ветвей диалога вешаю вот такой скрипт:
NSS
const float SND_DURATION=5.0;

void main()
{
ClearAllActions();
ActionWait(1.5);
ActionDoCommand(PlaySound("sound_2"));
ActionWait(SND_DURATION);
ActionStartConversation(GetPCSpeaker(), "dialog_name", FALSE, FALSE);

}

По идее, NPC должен чуть подождать (1.5 сек), проиграть звук, а потом начать диалог.
А он ждет 5 секунд (SND_DURATION), а затем начинает диалог и параллельно проигрывает звук. Где у меня неправильно?..
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
kreon
сообщение Jun 2 2006, 20:27
Сообщение #2296


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

Класс: Некромант
Характер: Chaotic Evil
Раса: Дракон
NWN: Скриптинг [PW]



NSS
const float SND_DURATION=5.0;

void main()
{
ClearAllActions();
DelayCommand(1.5, ActionDoCommand(PlaySound("sound_2")));
DelayCommand(SND_DURATION+1.5, ActionStartConversation(GetPCSpeaker(), "dialog_name", FALSE, FALSE));
}

Ждет полторы секунды, играет звук, ждет 5 секунд, начинает диалог.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Kavin
сообщение Jun 2 2006, 20:43
Сообщение #2297


Level 8
***

Класс: Паладин
Характер: Lawful Good
Раса: Полуэльф
ПОДМАСТЕРЬЕ



kreon, прикинь - не работает!
А вот что написано в лексиконе:
QUOTE
This might not be an actual bug, but though PlaySound isn't an action (you don't get the little yellow square on the screen), if you assign a PlaySound to someone, it will wait for their current action queue to finish before playing.


Сейчас буду извращаться на тему...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
kreon
сообщение Jun 2 2006, 20:45
Сообщение #2298


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

Класс: Некромант
Характер: Chaotic Evil
Раса: Дракон
NWN: Скриптинг [PW]



Гмм.. ща тоже чего-нить попробую... Я думал что ошибка в ActionWait(), т.к. действия воспроизведения звука не вейтятся вроде...
.
А, идея повяилась... Сделать SetCommandable(FALSE) (нечего будет ждать), воспроизвести звук и потом дать команду диалога.

Сообщение отредактировал kreon - Jun 2 2006, 20:47
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Kavin
сообщение Jun 2 2006, 20:56
Сообщение #2299


Level 8
***

Класс: Паладин
Характер: Lawful Good
Раса: Полуэльф
ПОДМАСТЕРЬЕ



Итак, злобно извратившись, я добился того, чего хотел.
Вот так:

Родительский скрипт:
NSS
void main()
{
object oSelf=OBJECT_SELF;

ClearAllActions();
DelayCommand(1.5, PlaySound("sound_1"));
DelayCommand(1.5, ExecuteScript("play1", oSelf));

}


Скрипт play1:
NSS
const float SND_DURATION=3.0;

void main()
{
ActionWait(SND_DURATION);
ActionStartConversation(GetPCSpeaker(), "dialog_1", FALSE, FALSE);
}


Сообщение отредактировал Kavin - Jun 2 2006, 20:56
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jun 2 2006, 21:01
Сообщение #2300


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

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



а нафига так то?
NSS
void main()
{
ClearAllActions();
DelayCommand(1.5, PlaySound("sound_1"));
ActionWait(SND_DURATION + 1.5);
ActionStartConversation(GetPCSpeaker(), "dialog_1", FALSE, FALSE);
}

те звук через делей, остальное в стек.
ну или взять вариант Креона и выкинуть там ActionDoCommand, ибо в том варианте под задержкой он нафиг не нужен.
В стек стремно по 1 причине - можно сбить. Поэтому можно подстраховаться и стек закрыть (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 90 91 92 93 94 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 28th March 2024 - 14:10