Помощь - Поиск - Пользователи - Календарь
Полная версия: Скрипты
Город Мастеров > РЕДАКТОРЫ > Neverwinter Nights Aurora Toolset
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74
Aiwan
На вскидку, что нашел...
Neverwinter Script Source
if (GetLastPerceptionSeen())
        SetLocalInt(OBJECT_SELF, "Whisper", 1) // Set
      else if (GetLastPerceptionVanished())
        SetLocalInt(OBJECT_SELF, "Whisper", 0)
    } else
    if (nEvent == 1001)
    {
        if (GetLocalInt(OBJECT_SELF, "Whisper")) // Второая скобка

Chimeric
Вот весь скрипт целиком в настоящем виде с учетом второй скобки. Понятия не исею, почему теперь-то не компилируется. Может, стоит скопировать его и попробовать в редакторе? Вдруг это у меня файл глючит, был же этот внезапный фокус с нечитаемой "р".

Neverwinter Script Source
void main()
{
  string ya = GetName(GetWaypointByTag("ya"));
  string yac = GetName(GetWaypointByTag("yac"));
int nEvent = GetUserDefinedEventNumber();
    if (nEvent == 1002)
    {

      if (GetLastPerceptionSeen())
        GetLocalInt(OBJECT_SELF, "Whisper", 1);
      else if (GetLastPerceptionVanished())
        GetLocalInt(OBJECT_SELF, "Whisper", 0);
    } else
    if (nEvent == 1001)
    {
        if (GetLocalInt(OBJECT_SELF, "Whisper"))
{
            int iSpk = GetLocalInt(OBJECT_SELF, "chloe");
            switch (iSpk) {
            case 0:
                SpeakString("Ìåðçàâåö! Îí ïðåäïî÷åë ïîëó÷èòü íîæ â ñïèíó, ÷åì ïîöåëîâàòü ìåí"+ya+".");
                break;
            case 1:
                SpeakString("Ñòîëüêî ëåò âîêðóã äà îêîëî.");
                break;
            case 2:
                SpeakString("Êàëëèñòà ãîí"+ya+"ëà íàñ îáîèõ áåç êîíöà çà ïðîäóêòàìè íà Íîâûé ðûíîê, êàê áû îíè ñ Ïîëèêðàòîì óïðàâèëèñü â ëàâêå áåç íàñ?");
                break;
            case 3:
                SpeakString("Åìó ïðèõîäèëîñü ÷èòàòü óðûâêàìè.");
                break;
            case 4:
                SpeakString(""+yac+" âñå-òàêè äîáèëàñü îò íåãî êîëüöà è êë"+ya+"òâû â Õðàìå Êðîéëè. Êàê ðàç çà òðè äí"+ya+" äî ýòîãî óæàñà.");
                break;
            case 5:
                SpeakString(""+yac+" ñêàçàëà åìó, ÷òî õî÷ó ñíà÷àëà ìàëü÷èêà, à ïîòîì äåâî÷êó.");
                break;



            default:
            iSpk = -1;

                break;
            }
            ;
            SetLocalInt(OBJECT_SELF, "chloe", iSpk+1);
          }
    }
}

}
-fenix-
Chimeric, учись чистоскриптописанию, а то понять и разобрать сложно smile.gif

Сравни, правдо нагляднее?
Neverwinter Script Source
void main()
{
string ya = GetName(GetWaypointByTag("ya"));
string yac = GetName(GetWaypointByTag("yac"));
int nEvent = GetUserDefinedEventNumber();


    if (nEvent == 1002)
    {

      if (GetLastPerceptionSeen())
        GetLocalInt(OBJECT_SELF, "Whisper");//тут у тебя Get использовался, как Set
      else
        if (GetLastPerceptionVanished())
        GetLocalInt(OBJECT_SELF, "Whisper");//тут у тебя Get использовался, как Set
    }
    else
    if (nEvent == 1001)
    {
        if (GetLocalInt(OBJECT_SELF, "Whisper"))
            {
                int iSpk = GetLocalInt(OBJECT_SELF, "chloe");

                switch (iSpk)
                {
                case 0:
                  SpeakString("");
                    break;
                case 1:
                    SpeakString("");
                    break;
                case 2:
                    SpeakString("");
                    break;
                case 3:
                    SpeakString("");
                    break;
                case 4:
                    SpeakString("");
                    break;
                case 5:
                    SpeakString("");
                    break;
                default:
                    iSpk = -1;
                    break;
                }
            SetLocalInt(OBJECT_SELF, "chloe", iSpk+1);
            }
    }
}

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

(Блин, ну я фанат. Плэйсеблы таскал последние 8 часов подряд. mamba.gif Время на часах - 4:23 утра. mamba.gif)
Добавлено в [mergetime]1129107515[/mergetime]

Проверил твой вариант, заменив реплики просто на 1, 2 и 3. Компилируется, но не работает.
Aiwan
Если хочешь скопировать с тулсета русский текст, переключи раскладку на русский и тогда скопируется не твои крякозябра и нормальный, пацанский базар. yes.gif
Добавлено в [mergetime]1129107970[/mergetime]
QUOTE (Chimeric @ Oct 12 2005, 14:21)
Проверил твой вариант, заменив реплики просто на 1, 2 и 3. Компилируется, но не работает.

А ты мой верхний пост смотрел? Если не видишь разницы то закинь скриптинг, сядь мапить. Я же указал ошибку и пометил в скобках.
Chimeric
Вижу я, нечего грубить. Как будто не ясно, что я прошу о помощи только потому, что сам не разбираюсь в скриптах и не особенно горю желанием разбираться. Скрипты - это логика, а логика и математика мне попендикулярны. От фигурных скобок хочется лечь на землю. Диалоги - другое дело, маппинг тоже ничего, но я не могу заняться только им, потому что должен доделать модуль, а работаю над ним сам, один, это временный и проходной проект. Для большинства вещей достаточно сиреневого генератора, кое-какие функции я знаю, но часто торможу, поэтому и спрашиваю совета. Зато вам, мастерам, это ничего не стоит, и я вам благодарен. К тому же другие уже указали на Set/Get, и я услышал.

Да, я исправил это дело, где подписано, и заменил фразы на обычные цифры, чтобы безо всяких там букв "я", каракулей и прочего. Пусть хотя бы простые номера бормочут. Результат: скрипт компилируется, а непись молчит.
dumbo
измучили гуманитария уже... drag.gif

а вот некоторым товарищам, которые пропагандируют использование OnUserDefined слота и не упоминают про то, что его надо "активизировать", все таки надо дать коленом, надо... yes.gif
в скрипте OnSpawn раскомментируй эти строки:
Neverwinter Script Source
...
//SetSpawnInCondition(NW_FLAG_HEARTBEAT_EVENT);
//SetSpawnInCondition(NW_FLAG_PERCIEVE_EVENT);
...


правильный(вроде) скрипт, который теперь должен начать шевелиться в OnUserDefined:
Neverwinter Script Source
void main()
{
  string ya = GetName(GetWaypointByTag("ya"));
  // большая Я не вызывает ошибок.
  //string yac = GetName(GetWaypointByTag("yac"));
  int nEvent = GetUserDefinedEventNumber();
  if (nEvent == EVENT_PERCEIVE) // EVENT_PERCEIVE
  {
    object oPerceived = GetLastPerceived();
    if (GetLastPerceptionSeen() && GetIsPC(oPerceived))
      SetLocalObject(OBJECT_SELF, "PC", oPerceived);
  }
  else
    if (nEvent == EVENT_HEARTBEAT) // EVENT_HEARTBEAT
    {
      object oPC = GetLocalObject(OBJECT_SELF, "PC");
      if (oPC == OBJECT_INVALID) return;
      if (!GetObjectSeen(oPC))
      {
        DeleteLocalObject(OBJECT_SELF, "PC");
        return;
      }
      int iSpk = GetLocalInt(OBJECT_SELF, "chloe");
      switch (iSpk)
      {
      case 0:
        SpeakString("");
        break;
      case 1:
        SpeakString("");
        break;
      // ...
      default:
        iSpk = -1;
        break;
      }
      SetLocalInt(OBJECT_SELF, "chloe", iSpk+1);
    }
}
Chimeric
Гуманитарий гуманно гутарит. Пробую твой вариант. А вот то, что я вымучил с алисиной помощью во втором случае, с веревкой. Кое-что запускает, удары, тычки, но только никого не телепортирует куда нужно, даже если ловкость позволяет, и звука не издает. Короче:

Neverwinter Script Source
void main()
{
string ya = GetName(GetWaypointByTag("ya"));
object oPC = GetLastUsedBy();
object oTarget = GetWaypointByTag("winter1");

if (!GetIsPC(oPC))
return;

if

(GetAbilityScore(oPC, ABILITY_DEXTERITY)>= 15)
{

location lTarget = GetLocation(oTarget);
if (GetAreaFromLocation(lTarget)==OBJECT_INVALID)
  return;

oTarget=GetWaypointByTag("winter1");
AssignCommand(oPC, ClearAllActions());

AssignCommand(oPC, ActionJumpToLocation(lTarget));
}

else




  FadeToBlack(oPC, FADE_SPEED_MEDIUM);
  DelayCommand(4.0, ActionJumpToObject(GetWaypointByTag("ropefall")));
  DelayCommand(4.0, SetCameraHeight(oPC, 6.0));

  effect eEffect = EffectDamage(3, DAMAGE_TYPE_BLUDGEONING, DAMAGE_POWER_NORMAL);
  DelayCommand(4.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect, oPC));
  eEffect = EffectDazed();
  DelayCommand(4.0, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oPC, 30.0f));
  eEffect = EffectKnockdown();
  ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oPC, 10.0f);

  if (GetGender(oPC)==GENDER_MALE)
  AssignCommand(oPC, PlaySound("vs_nbeggam2_hit2"));
  else
  {
  AssignCommand(oPC, PlaySound("vs_nbeggam2_hit2"));
  }


  DelayCommand(6.0, FadeFromBlack(oPC, FADE_SPEED_MEDIUM));
  DelayCommand(7.0, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SCREEN_SHAKE), GetLocation(oPC)));

DelayCommand(8.0, FloatingTextStringOnCreature("1", oPC));
DelayCommand(10.0, FloatingTextStringOnCreature("2", oPC));

}


В-общем, ловкачи телепортируются куда надо, в winter1, а для кривопалых должно сначала наступать затемнение на несколько секунд, потом (пока темно) крик - разный, в принципе, для мужчин и женщин - и тогда же KnockDown, Daze, 3 очка урона и телепорт на соседнюю точку ropefall. Все это в течение 5 или около того темных секунд. Потом свет, экран сотрясается и выплывают с небольшим интервалом два сообщения над головой.

Еще вот что - почему вот этот скрипт полностью обездвиживает персонажа? Поставил на вход в зону и ни с места сойти не могу, ни заклинания наложить, ни мечом махнуть, вообще ноль.

Neverwinter Script Source
void main()
{

object oPC = GetEnteringObject();
string ya = GetName(GetWaypointByTag("ya"));


if (!GetIsPC(oPC)) return;

SetCameraFacing(270.0, 3.0, 20.0, CAMERA_TRANSITION_TYPE_SNAP);

if (GetLocalInt(oPC, "bedroomfirstenter")== 0)
  {


  SetLocalInt(oPC, "bedroomfirstenter", 1);

  object oTarget;
  oTarget = oPC;

  effect eEffect;
  eEffect = EffectFrightened();

  ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oTarget, 180.0f);

  eEffect = EffectMovementSpeedDecrease(60);

  ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oTarget, 180.0f);

  DelayCommand(3.0, FloatingTextStringOnCreature("Где это я?", oPC));

  DelayCommand(5.0, FloatingTextStringOnCreature("Как здесь страшно и т.п.", oPC));

  DelayCommand(7.0, FloatingTextStringOnCreature("Надо выбираться!", oPC));


  }
}



Добавлено в 06:07
Проверил. "Раскомментировал" те строчки, вставил твой скрипт в OnUsedDefined. Не работает-с.

Ой, я не могу. lol.gif lol.gif lol.gif Сколько уже? Пять дней подряд лучшие Мастера Скриптов бьются над этой задачкой и никак не могут ее решить. Как говорится, были выдвинуты различные теории. lol.gif Нет, я очень всем благодарен за усилия, серьёзно, народ. Хотя я ничего и не добился за эти дни, зато начал какие-то азы скриптовые усваивать. Но неужели же никто, никогда и ни в одном модуле не делал NPC, бубнящих фразы через интервал времени? Куда уж зауряднее идея! Я еще в Торменте помню таутов, рекламировавших свои услуги, и проституток, и уличного поэта-декламатора, и бог знает кого еще. А то ведь была Infinity Engine, я немножко её помню изнутри, колупался в скриптах в свое время, потом забыл и забросил... И там все было чуть ли не один к одному, только возможностей, понятно, меньше (с другой стороны, как помнится, что-то было доступно там, чего нельзя здесь - диалоги на расстоянии, например). Короче, при таком сходстве мне остаётся только удивляться.
_kaa_
QUOTE (Chimeric @ Oct 13 2005, 06:41)
Ой, я не могу. lol.gif lol.gif lol.gif Сколько уже? Пять дней подряд лучшие Мастера Скриптов бьются над этой задачкой и никак не могут ее решить. Как говорится, были выдвинуты различные теории. lol.gif Нет, я очень всем благодарен за усилия, серьёзно, народ. Хотя я ничего и не добился за эти дни, зато начал какие-то азы скриптовые усваивать. Но неужели же никто, никогда и ни в одном модуле не делал NPC, бубнящих фразы через интервал времени?

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

ps. учи мат.часть diablo.gif
Aiwan
QUOTE (Chimeric @ Oct 13 2005, 08:41)
Проверил. "Раскомментировал" те строчки, вставил твой скрипт в OnUsedDefined. Не работает-с.

То ли лыжи не едут... То ли одно из двух. rofl.gif
QUOTE (Chimeric @ Oct 13 2005, 08:41)
Ой, я не могу.    Сколько уже? Пять дней подряд лучшие Мастера Скриптов бьются над этой задачкой и никак не могут ее решить. Как говорится, были выдвинуты различные теории.  Нет, я очень всем благодарен за усилия, серьёзно, народ. Хотя я ничего и не добился за эти дни, зато начал какие-то азы скриптовые усваивать. Но неужели же никто, никогда и ни в одном модуле не делал NPC, бубнящих фразы через интервал времени?

Это задачка для первого класса. И многие надеялись, что ты допетришь сам, в почти готовом скрипте, что тебе дали. Надо всего-то понять присвоение переменных и скобки позакрывать было. Сказал бы сразу, я туп. Напишите мне готовый код и все. Вот тебе код...

Neverwinter Script Source
//:://////////////////////////////////////////////
//:: OnUserDefined
//:: Copyright © 2005 WRG!
//:://////////////////////////////////////////////
//:: Created By: Aiwan
//:: Created On: 13.10.2005
//:://///////////////////////////////////////////
void main()
{
  int nEvent = GetUserDefinedEventNumber();
  if (GetArea(OBJECT_SELF)!=GetArea(GetFirstPC())) return;
  if (GetIsDead(OBJECT_SELF)==TRUE) {return;} // Если он помер, то пусть молчит

/* Открой спавн скрипт объекта и разкомментируй эту строку:
   SetSpawnInCondition(NW_FLAG_HEARTBEAT_EVENT)         */


if (nEvent == EVENT_HEARTBEAT) // Сигнал поступает с HeartBeat слота.
   {
//------------------------------------------------------------------------------
   if (GetLocalInt(OBJECT_SELF, "SPEAK") == FALSE)
      {
      if (GetIsInCombat() || IsInConversation(OBJECT_SELF)
                          || GetLocalInt(OBJECT_SELF, "SPEAK"))
         {
            return;
         }
        SetLocalInt(OBJECT_SELF, "SPEAK", TRUE);
        ClearAllActions();

        /* f - Промежутки между фразами. Учитывай что хертбит срабатывает раз
         в шесть секунд. Соотвественно к цифре задержки прибавляй в уме 6 сек */

        float f = IntToFloat(Random(30)); // Тут выпадает число из 30.

        switch(Random(9)+1) // Генерирует случайную фразу
        {
        case 1: {DelayCommand(f, SpeakString("Фраза #1")); break;}
        case 2: {DelayCommand(f, SpeakString("Фраза #2")); break;}
        case 3: {DelayCommand(f, SpeakString("Фраза #3")); break;}
        case 4: {DelayCommand(f, SpeakString("Фраза #4")); break;}
        case 5: {DelayCommand(f, SpeakString("Фраза #5")); break;}
        case 6: {DelayCommand(f, SpeakString("Фраза #6")); break;}
        case 7: {DelayCommand(f, SpeakString("Фраза #7")); break;}
        case 8: {DelayCommand(f, SpeakString("Фраза #8")); break;}
        case 9: {DelayCommand(f, SpeakString("Фраза #9")); break;}
        case 10: {DelayCommand(f, SpeakString("Фраза #10")); break;}
       }
       DelayCommand(f, SetLocalInt(OBJECT_SELF, "SPEAK", FALSE));
      }
    }
//------------------------------------------------------------------------------
}

Добавлено в [mergetime]1129197871[/mergetime]
QUOTE (Chimeric @ Oct 13 2005, 04:37)
Как будто не ясно, что я прошу о помощи только потому, что сам не разбираюсь в скриптах и не особенно горю желанием разбираться.

biggrin.gif Все просто выстроились в очередь после таких строк и мечтают помочь тебе. Скрипт форума не успевает обрабатывать запросы к базе, все пишут тебе скрипты. biggrin.gif
Белатрис
У меня есть диалог в котором ты выбираешь что даст тебе официантка: Вино или Эль, я взял готовые скрипты: Берет Эль и отдает 250 золота, Берет Вино платит 200 золота. Но кагда начинается диалог то после вопроса что будешь пить диалог обрывается black eye.gif , что делать
-fenix-
QUOTE (Белатрис @ Oct 13 2005, 14:10)
У меня есть диалог в котором ты выбираешь что даст тебе официантка: Вино или Эль, я взял готовые скрипты: Берет Эль и отдает 250 золота, Берет Вино платит 200 золота. Но кагда начинается диалог то после вопроса что будешь пить диалог обрывается black eye.gif , что делать

Наверное у тебя на следующих ветках стоит условие появления?!
Chimeric
QUOTE (Aiwan @ Oct 13 2005, 12:59)
biggrin.gif  Все просто выстроились в очередь после таких строк и мечтают помочь тебе. Скрипт форума не успевает обрабатывать запросы к базе, все пишут тебе скрипты.  biggrin.gif


И что тут такого? Если у меня барахлит машина и я могу позволить себе отвезти ее в ремонтный центр к специалистам, то я так и делаю. Я не надеваю промасленную робу и не забираюсь под днище с гаечным ключом. Отчего же? Уж конечно, помытарившись вволю, я бы как следует освоил всю механику и почувствовал бы себя куда умнее. Но меня не интересует такого рода "умность", и по той же самой причине ты (пример наугад) не бежишь изучать культуры Полинезии или когнитивную нейропсихологию. Мог бы, но нет дела. Точно так же и я стараюсь обходить стороной все эти переменные и константы двух типов. Знать все не просто нельзя, это никому сто лет и не нужно. И я бы не стал и беспокоиться со скриптами, тем более о чем-то просить тут на форуме, если бы без этого было возможно построить модуль. Как будто мне самому больше нечем заняться, чем переписывать их самому без конца и отвлекать других. У меня, между прочим, два доклада на носу, так что комментарии про тупость оставь при себе.

Aiwan: Если у тебя барахлит машина, ты идешь в центр к спецам ПЛАТИШЬ деньги и тебе делают. Можешь попросить соседа механика, он тебе ПОДСКАЖЕТ какой болт открутить. Но никто не будет за тебя делать твою работу. Даже если ты прийдешь в мастерскую и скажешь: "Е-мае! Пятый день стою у ворот и никто не может мою машину сделать, что бы она поехала!" Если человек говорит ПОМОГИТЕ с написанием скрипта, это одно. Если он говорит НАПИШИТЕ мне скрипт - это совсем другое. Ты попытался сам написать, у тебя не вышло. Ты решил наехать на всех скриптеров в посте, с иронией, что они все дураки. Если уж _каа_ не выдержал твоей наглости, то что говорить про остальных... Тебе тут никто ничего не должен. Хочешь помощи попросить, попроси по человечески. Если обостренное самолюбие не дает покоя, то займись тем, в чем ты специалист. Даже если бы ты в нормальной форме написал, мол ребята, я совсем не умею скриптить и мне нужен РАБОЧИЙ код для конкурса. Напишите! Написали бы, без вопросов. Я вот сел и не смотря на твой пост написал тебе код, хотя Думбо уже дал тебе ссылку НА РАБОЧИЙ СКРИПТ фраз (смотри ниже).
OnHeartBeat:
Neverwinter Script Source
void main()
{
  string sStr = "";
  switch (Random(4))
  {
  case 0: sStr = "Просто как пирог из гоблинов"; break;
  case 1: sStr = "Ну что гады, еше хотите"; break;
  //...
  }
  if (sStr != "") ActionSpeakString(sStr);
}
Diamond
Здрасьте все. У меня такой вопрос: есть ветка в диалоге, по которой PC садиться на диван, а после тоже по диалогу PC должен встать с него. Так вот садиться то он нормально, но вставать по скрипту отказывается, только принудительно по клику... Подскажите что можно сделать плз
Chimeric
Да я пробовал уже код dumbo. Что-то где-то еще не так, видно, может, какие-то другие скрипты не в порядке. Но я сейчас буду тестировать последние предложенные варианты, может, твой сработает. Что же до того, что мне никто ничего не должен, то это и так понятно, на этом вообще построен интернет с его анонимностью и группировкам по интересам. Никто не обязяан на этом форуме помогать другим, наши пути-дороги пересеклись вполне случайно, думаю, ни к чему отдельно заострять на этом внимание. Если бы мастер не получал какого-то удовольствия от помощи и добрых дел, он бы ими и не занимался, поэтому я вежливо просил и прошу о помощи, а не кидаюсь в ноги, раз такие отношения "ведущий-ведомый" приятны обеим сторонам. Если неприятны, то нечего и отвечать. Но коли уж кто-то решается и говорит "вот тебе ответ", то обнадеживает ищущего помощи человека, и хотя это по прежнему свободное сотрудничество, у другой стороны есть теперь законное право высказать недовольство, если ее подвели. Взялся за гуж - не говори, что не дюж, и так далее. Понятно, вообще надо радоваться, что помогают, с другой стороны, лично у меня есть такое правило: если я не совершенно уверен, что знаю какой-то ответ, то сижу тихо. А факт тот, что пока все варианты были с глюками. Если окажется, что дело не в скриптах или в скриптах, но не в этих, и, короче, что я сам кругом виноват, то я принесу извинения всему коллективу.
Tiger Greyhawk
DiamondЯ думаю, спасет ClearAllAction(); тебя. Но на будущее: наверное хочется текст скрипта видеть.

Chimeric
QUOTE (Tiger Greyhawk @ Oct 11 2005, 08:53)
+ называй лучше переменные осмысленно. А то у тебя счас все переменные типа effect названы eEffect переменные типа Int - iInt и т.п. Оно, конечно, может работать нормально, но запутаться проще простого. Ты же меняешь в процессе значение переменной:

осмысленно и уникально.
Chimeric

Проверено - вариант dumbo работает! Не знаю, в чем было дело раньше, видимо, я в самом деле что-то недоглядел. Выходит, это моя вина, и виноват в потере времени тоже я. Принощу свои извинения Aiwan, dumbo, fenix, kaa, AliceDiren и всем прочим.
Aiwan
Chimeric, МОЙ СКРИПТ РАБОЧЧИЙ. Я его тестил специально. Но без СПАВН скрипта настроенного он не будет пахать.
QUOTE (Chimeric @ Oct 14 2005, 10:39)
Принощу свои извинения

good.gif Говори что надо конкоретно, напишем. yes.gif

п.с. Вообще, когда-то была идея отдельной темы, где конкурсанты ппросят скрипты им для конкурса, типа как ты. Так что, можешь создать ее и постить там. Думаю конкурс не последний...
Diamond
Tiger Greyhawk Пасиб (ClearAllAction) помог yes.gif
Chimeric
Да я не говорил, что твой скрипт не работает, просто у dumbo попроще, есть и еще один вариант. Тему сейчас создам.

А пока - почему же все-таки глючит тот скрипт (выше) с bedroomenter? Паралич устраивает персонажу.
AliceDiren
QUOTE
почему же все-таки глючит тот скрипт (выше) с bedroomenter? Паралич устраивает персонажу.

Из-за эффекта страха. Используй какой-нибудь другой эффект. EffectDaze(), например.
Chimeric
Что же, страх всегда глючит?
-fenix-
QUOTE (Chimeric @ Oct 15 2005, 11:45)
Что же, страх всегда глючит?

У него такие последствия!
Когда тебя челы пугают, то ты от них забеваешься в угол и не можешь ни чего делать. А тут эффект на вход в локу ставется, вот перс и дрожит в начале не шевелится biggrin.gif
Chimeric
Да-а... Так это парализующий ужас, что ли? Я-то думал, это что-то вроде настольного эффекта Shaken или там Nauseated от гастов. Игра вообще упразднила все эти тонкости. nea.gif
L33t
Доброе время суток! Господа, имеется следующая проблема:

Есть некая локация. Рисую вокруг стартовой точки триггер, окружающий ее так, чтобы игрок не мог не войти в триггер. На ОнЭнтер вешаю скрипт разговора с персонажем по имени Нелор. Скрипт работает, диалог запускается. В диалоге есть возможность послать этого Нелора в далекое путешествие в страну гениталий, после чего он и все неписи, что находятся на локации, очень не любят игрока и стараются его убить. При обычном разговоре это работает, но когда диалог вызывается скриптом, повешенным на триггер (принутельно), то он просто на этой точке обрывается, игра выдает сообщение об ошибке и пишет чего-то про деление на ноль с упоминанием названия скрипта. И никто никого не атакует. У меня была мысль, что это вызвано тем, что персонаж при разговоре все еще стоит в поле триггера и игра пытается опять завести разговор одновременно с его окончанием. Что это может быть?
Lex
QUOTE (L33t @ Oct 15 2005, 23:00)
У меня была мысль, что это вызвано тем, что персонаж при разговоре все еще стоит в поле триггера и игра пытается опять завести разговор одновременно с его окончанием.

нет. Если игрок не шевелится, то нет.
А вот если кто-то еще на триггер войдет, а скрипт написан не сильно умно, то может случиться проблема, но не та, что ты описал.
Вообще ставя вопрос, выклыдывай исходники. Те скрипт триггера и скрипт посылания непися далеко и на долго.
NedWarN
Очень нужен скрипт(Именно Скрипт), чтобы в определённой локации, была именно ночь независимо от времени игры. Сам немогу обездолен помогите.
Ghost
QUOTE (NedWarN @ Oct 16 2005, 17:56)
Очень нужен скрипт(Именно Скрипт), чтобы в определённой локации, была именно ночь независимо от времени игры. Сам немогу обездолен помогите.

В настройках локации.. в визуальных эффектах выбираешь "всегда ночь"...
_kaa_
QUOTE (NedWarN @ Oct 16 2005, 17:56)
Очень нужен скрипт(Именно Скрипт), чтобы в определённой локации, была именно ночь независимо от времени игры. Сам немогу обездолен помогите.

Если только скриптом - то смотри на функцию
Neverwinter Script Source
void DayToNight(
    object oPlayer,
    float fTransitionTime = 0.0f
);
и обратную к ней
Neverwinter Script Source
void NightToDay(
    object oPlayer,
    float fTransitionTime = 0.0f
);
На этой локации проверяй локальное время, если ночь - ничего не делай, если не ночь - вызывай DayToNight(). При входе на локацию нужно принудительно проверять, при выходе - принудительно снимать.
Функция действует на одного игрока и делает не "реальную" ночь, а просто потемнение экрана до уровня ночного освещения.
Лито
Может я не по теме. Но по-моему 66 страниц для темы это много. Нельзя сделать как с вопросами новичков?
LEX: к Айву.
NedWarN
_kaa_
Я так и делал, но мне нужна реальная ночь! для проверки зомбиков.
у меня скрипт таков, зомбики нападают и нужно сдерживать абарону до рассвета, и как первые лучи солнца каснутся земли зомбям канец. и это всё с кутсценкой, где всё начинается ночью, вот такой замес, незнаю что и делать. Попробую на онСвемп проверку на день поставить, но нериально ибо у якобы меня день наступает функцией DayToNight(), может посаветуете что делать!
Ghost
Нереально ибо не сработает функция DayToNight()
AliceDiren
NedWarN, ИМХО попробуй функцию SetTime
Neverwinter Script Source
// Set the time to the time specified.
// - nHour should be from 0 to 23 inclusive
// - nMinute should be from 0 to 59 inclusive
// - nSecond should be from 0 to 59 inclusive
// - nMillisecond should be from 0 to 999 inclusive
// 1) Time can only be advanced forwards; attempting to set the time backwards
//    will result in the day advancing and then the time being set to that
//    specified, e.g. if the current hour is 15 and then the hour is set to 3,
//    the day will be advanced by 1 and the hour will be set to 3.
// 2) If values larger than the max hour, minute, second or millisecond are
//    specified, they will be wrapped around and the overflow will be used to
//    advance the next field, e.g. specifying 62 hours, 250 minutes, 10 seconds
//    and 10 milliseconds will result in the calendar day being advanced by 2
//    and the time being set to 18 hours, 10 minutes, 10 milliseconds.
void SetTime(int nHour,int nMinute,int nSecond,int nMillisecond)

И делай так, как сказал _kaa_, только устанавливай именно время.
Добавлено в [mergetime]1129567414[/mergetime]
Я, наверное, непонятно написала. Я однажды делала локацию, на которой всегда была ночь. При входе на локацию запоминала время, а при выходе из неё устанавливала обратно. А на этой локации всегда устанавливала ночь. И именно с помощью SetTime. queen.gif
Aiwan
QUOTE (Лито @ Oct 16 2005, 20:39)
Может я не по теме. Но по-моему 66 страниц для темы это много. Нельзя сделать как с вопросами новичков?

Реально, человек никогда не читает темы. Даже если мы разделим ее на куски, то все полезут сюда а отправят их в тему скриптов порезанную. 70% вопросов новичков разбиралсь десят раз. Но когда тема одна, то можно будет после перехода на версию форума 2.1, ВКЛЮЧАТЬ ПОИСК ПО ТЕМЕ. Так что, когда все вопросы в одном месте это лучше чем 20 тем с пометками ТОМ1, ТОМ2 бла бла. Вопрос закрыт.
Alian REXis
QUOTE (AliceDiren @ Oct 17 2005, 17:44)
NedWarN, ИМХО попробуй функцию SetTime

Если ее использовать в катсцене, где есть DelayCommand, то сцена рухнет! Но может я не прав.
AliceDiren
Alian REXis, конечно рухнет, но NedWarN'у, насколько я поняла, нужна не катсцена, а постоянная ночь на локации dntknw.gif Поэтому я и написала про SetTime.
NedWarN
Спасибо я уже сам зделал.
проверкой если, сейчас день то применим DayToNight() без float, а если ночь то оставим без изменений, блин как всё просто, пасиба всем.
-fenix-
Не могу найти функцию для проверки типа локи: лес, город, деревня... Она вообще есть?
Я сейчас пишу тип локи в ее теге: FOREST_***, CITY_***...
AliceDiren
-fenix-, я нашла только функции
Neverwinter Script Source
GetIsAreaAboveGround
GetIsAreaInterior
GetIsAreaNatural


А вообще, когда делала систему отдыха, завязанную на тип локи, то писала такую функцию:
Neverwinter Script Source
int GetAreaType(object oArea)
{ return GetLocalInt(oArea, "nAreaType"); }

Правда если забудешь указать переменную, будут глюки smile.gif
-fenix-
AliceDiren, помойму через ТАГ удобнее. Просто потом проверяешь
Neverwinter Script Source
if (GetStringLeft(sTagArea, 7) == "FOREST_")
AliceDiren
Так я же не спорю. Просто я делала так. А через таг не догадалась.
Но с другой стороны, я смогла поделить подземелья на влажные, сырые и т.п. А в таг длинную строку не запихаешь.
dumbo
-fenix-, при ограничении в 16 символов такую расточительность можно позволить, только если у тебя не больше 10 лок. в крупных проектах не хиляет.
Lex
Имхо локалки рулят. А их же моно в тулсете сразу делать, так что занос инфы в тэг - анахронизм. smile.gif
Daemonix
Пожалуйста, расскажите о скриптах смерти перса. Каким его убить, каким - возвратить на место смерти и т.д и т.п. Может я и повторяюсь, но в проштудированной мной информации я ничего об этом не нашёл, так что не сочтите за спам, пжст. swoon.gif
Добавлено в [mergetime]1129669153[/mergetime]
Я имею в виду как воспроизвести систему храмов Тира в НвН, ну вы же понимаете, о чём я?
AliceDiren
QUOTE
Каким его убить

Neverwinter Script Source
object oPC = GetFirstPC();
effect eDeath = EffectDeath();
ApplyEffectToObject(DURATION_TYPE_INSTANT, eDeath, oPC);

Только зачем тебе это в системе храмов?
QUOTE
каким - возвратить на место смерти

Я делала так - в локальную переменную перса запоминала место его смерти, а потом возвращала на эту локацию. В модульных свойствах на OnPlayerDeath
Neverwinter Script Source
object oPC = GetLastPlayerDied();
//...
SetLocalLocation(oPC, "I_DIE_HERE", GetLocation(oPC));
//...

А потом в разговоре с каким-нибудь священником
Neverwinter Script Source
object oPC = GetPCSpeaker();
location lTarget = GetLocalLocation(oPC, "I_DIE_HERE");
AssignCommand(oPC, JumpToLocation(lTarget));
DeleteLocalLocation(oPC, "I_DIE_HERE");

Последняя строчка для того, чтобы священник не тупил и не телепортировал игрока, если он сам вернется в храм и снова попросит его переместить в место последней смерти.
mamuc
*дикий порыв флудизма*
QUOTE
Я имею в виду как воспроизвести систему храмов Тира в НвН, ну вы же понимаете, о чём я?

а очем это ты? dntknw.gif нэ понимаю biggrin.gif

*щас меня пнут* biggrin.gif yes.gif buba.gif diablo.gif ..я blush.gif

п.с. лучше возвращать назад не просто так, а за прогресирующую плату зависящую от лвлв чара
..за сервис нужно платить, да священникам тоже нужно кушать...не одним святым духом, как говориться живут... biggrin.gif
Daemonix
AliceDiren
Спасибо огромное. я энто и искал! yes.gif
Добавлено в [mergetime]1129808014[/mergetime]
А как после смерти телепортировать тело игрока куда-нить?
Archangel
QUOTE
А как после смерти телепортировать тело игрока куда-нить?

Если игрок умер во время разговора:
Neverwinter Script Source
object oPC = GetPCSpeaker();
if (!GetIsPC(oPC))return;
object oPCWP= GetWaypointByTag("Тэг_вейпонта_к_кторому_ты_хочешь_джампнуть_ПС");
DelayCommand(8.0, AssignCommand(oPC, ActionJumpToObject(oPCWP)));

В других случаях:
Neverwinter Script Source
object oPC = GetEnteringObject();
if (!GetIsPC(oPC))return;
object oPCWP= GetWaypointByTag("Тэг_вейпонта_к_кторому_ты_хочешь_джампнуть_ПС");
DelayCommand(8.0, AssignCommand(oPC, ActionJumpToObject(oPCWP)));

8.0 - это время, через которое игрок телепортируется к вейпоинту.
Lex
QUOTE (Archangel @ Oct 20 2005, 16:03)
В других случаях

и
QUOTE (Archangel @ Oct 20 2005, 16:03)
object oPC = GetEnteringObject();

плохо состыковываются.
И вообще - наф такие сложности.
В скрипте onPCDeath в свойствах модуля пиши.
-fenix-
QUOTE (dumbo @ Oct 18 2005, 19:22)
-fenix-, при ограничении в 16 символов такую расточительность можно позволить, только если у тебя не больше 10 лок. в крупных проектах не хиляет.

Это КАК shok.gif
Ты наверное с РесРефом перепутал!!!? У тага ограничение 32 символа!
И как нужно давать ТАГ локи, чтобы не осталось 3 знака на тип локи, я не понимаю. Лично мне проще заносить это в ТАГ, а не работать с локалками.

У меня еще не большой комплекс к локалкам, уж и не знаю почему dntknw.gif
Может, потому что их в модуле тьма и тьма и каждая занимает место. Я почти преучил себя удалять более не нужную локалку.

Дайте мне линейкой по голове smile.gif
AliceDiren
-fenix-, локалки удобнее в том случае, если у тебя деление областей очень тонкое. Я ведь правильно написала в своем посте, я делила, например подземелья, на сухие, влажные, сырые, лес на сухой, влажный, болотистый и т.д. и т.п. Можно было бы замучаться все это описывать в тагах.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Invision Power Board © 2001-2025 Invision Power Services, Inc.