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

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


Апельсинов
Отправлено: Dec 10 2005, 02:12


Level 1


Группа: Newbie
Сообщений: 9
Регистрация: 07.12.2005
Пользователь №: 1,874


QUOTE (Nashman @ Dec 10 2005, 00:47)
Возможно очень лажный вопрос, но попробую задать...
- В какой "слот" прописывать скрипты анимации, например мне нужно ActionRandomMovie(), куда его лепить?(Обычные НПС). И можно как-то зацикоить что-то?

Если ты просто хочешь проиграть анимацию - вешай туда, где тебе нужно ее проигрывать.
Хочешь зациклить? Можно на хартбит повесить и дать длину 6 секунд - можно добиться эффекта зацикливания. Или удобно на юзердеф. А вообще по анимации почитай ссылку, которую мне Лекс давал тут же чуть раньше - очень хорошая статья по анимации персонажей!
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #62313 · Ответов: 5109 · Просмотров: 861,311

Апельсинов
Отправлено: Dec 9 2005, 19:19


Level 1


Группа: Newbie
Сообщений: 9
Регистрация: 07.12.2005
Пользователь №: 1,874


Очень странный эффект! Сделал так, чтобы можно было разговаривать сидя.
Человек сидит, а полурослик встает-садится.
Есть ли какие-то хитрости по отношению к анимации разных рас?

Сажу ПС первый раз по тому скрипту. (Только запоминаю в sitplace tag стула.
Снова сажу, когда с ним начинает говорить НПС
Neverwinter Script Source
void main()
{
   object oPC=GetPCSpeaker();
   object oChair = GetObjectByTag(GetLocalString(oPC,"sitplace"));

    if(GetIsObjectValid(oChair) && GetIsObjectValid(oPC))
    {
        object oSurf = GetLocalObject(oChair, "surf");


        AssignCommand(oPC, ActionSit(oSurf));
       // SetLocalString(oPC,"sitplace",GetTag(oChair));
    }
}

По этому садим ПС снова, чтобы не крутился за НПС
Neverwinter Script Source
void main()
{
object oPC=GetPCSpeaker();
SetLocalInt(OBJECT_SELF,"BUSY",0);
AssignCommand(oPC,ClearAllActions());

  object oChair = GetObjectByTag(GetLocalString(oPC,"sitplace"));

    if(GetIsObjectValid(oChair) && GetIsObjectValid(oPC))
    {
        object oSurf = GetLocalObject(oChair, "surf");

        DestroyObject(oSurf);
        vector vSurf = GetPosition(oChair);
        vSurf.z = 0.0;

        location lSurf = Location(GetArea(oChair), vSurf, GetFacing(oChair));

        object oNewSurf = CreateObject(OBJECT_TYPE_PLACEABLE, "sittingsurface", lSurf, FALSE);

        SetLocalObject(oChair, "surf", oNewSurf);

        AssignCommand(oPC, ActionSit(oNewSurf));
        SetLocalString(oPC,"sitplace",GetTag(oChair));
    }
}

2. На счет WAV - какие-то играют, какие-то нет, это зависит от размера? мой 38мб.




LEX: Устное предупреждение: все скрипты писать ТОЛЬКО в нсс тэгах.
Добавлено в [mergetime]1134148890[/mergetime]
Прошу прощения за теги, запарил вставить второй раз, а исправить уже не мог.
Пояснение к предидущему:
Хотя эффект интересный - если посадить ПС в разговоре - он следит взглядом за НПС даже по окончанию - крутится на стуле. Кто-нибудь сталкивался с таким?
Я ему СlearAllAxtions, сажу снова - иногда встает, иногда нет, похоже локалки парят.
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #62282 · Ответов: 5109 · Просмотров: 861,311

Апельсинов
Отправлено: Dec 8 2005, 20:47


Level 1


Группа: Newbie
Сообщений: 9
Регистрация: 07.12.2005
Пользователь №: 1,874


Ладно, сделаем так, впринципе ты прав - чего то я говорю полные глупости.
С сылочкой все решилось - я хочу сейчас сделать как там сказано, но официантку.

И все-таки можно WAV ставить как 3D звук? У меня его просто становится не слышно, какой формат использован для 3D звуков?
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #62189 · Ответов: 5109 · Просмотров: 861,311

Апельсинов
Отправлено: Dec 8 2005, 14:15


Level 1


Группа: Newbie
Сообщений: 9
Регистрация: 07.12.2005
Пользователь №: 1,874


QUOTE (Lex @ Dec 8 2005, 14:07)
не, юзабл это не то. В том скрипте, что ты привел уже все учтено и нормально сделано.

УУУУб спасибо за ссылочку. А юзебл, не юзебл - просто хочу хранить переменную сидит человек или нет (в человеке), когда садится выставляем 1 , а как выставить в 0 когда встает?
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #62140 · Ответов: 5109 · Просмотров: 861,311

Апельсинов
Отправлено: Dec 8 2005, 14:11


Level 1


Группа: Newbie
Сообщений: 9
Регистрация: 07.12.2005
Пользователь №: 1,874


QUOTE (NedWarN @ Dec 8 2005, 02:47)
Свойства Звуков/Позиционное/Воспроизведение в Оп. точке.
Я просто запихивал сырой WAV в Overred/

Прошу прощения, ставится то ставится, да не играет WAV при выставлении его как 3D, как и пишется в предупреждалке
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #62138 · Ответов: 5109 · Просмотров: 861,311

Апельсинов
Отправлено: Dec 8 2005, 13:48


Level 1


Группа: Newbie
Сообщений: 9
Регистрация: 07.12.2005
Пользователь №: 1,874


QUOTE (Lex @ Dec 8 2005, 09:49)
на волте глять TC Interior. Там есть пустые комнаты.
никуда от этого не денешься. (могу объяснить, откуда этот эффект вставания после того, как уже отошел)

расскажи чуток.
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #62135 · Ответов: 5109 · Просмотров: 861,311

Апельсинов
Отправлено: Dec 8 2005, 13:46


Level 1


Группа: Newbie
Сообщений: 9
Регистрация: 07.12.2005
Пользователь №: 1,874


QUOTE (NedWarN @ Dec 8 2005, 02:47)
Привет.
1.
Наскока я помню у меня багов небыло, значит немного.
Но с обьектов локалку удаляет вроде функцыя
3.
Свойства Звуков/Позиционное/Воспроизведение в Оп. точке.
Я просто запихивал сырой WAV в Overred/
//-------
ВОПРОС №1:
???
Баги игры или тормоза. Незнаю.
ВОПРОС №2:
Я непонел тебе надо, если на стуле ктото сидит то на него нельзя сесть?
Дак это помойму и без скриптов так. в крайнем случае снять галочку "Используемый" скриптом.

На счет WAV - ставится, но только не как 3D,а это не интересно.

На счет снимать Usebale - спасибо, за совет, вот только как выставлять обратно, когда персонажу кликаешь встать?
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #62134 · Ответов: 5109 · Просмотров: 861,311

Апельсинов
Отправлено: Dec 8 2005, 02:01


Level 1


Группа: Newbie
Сообщений: 9
Регистрация: 07.12.2005
Пользователь №: 1,874


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

1. Простой вопрос. Мало где описывается про то, как создаются-удаляются локальные переменные.
На сколько я понимаю есть чисто локальные переменные, которые удаляются после прохода скрипта (определяются int,float и т.д. , а есть такие, которые остаются с объектом (определяются SetLocalVar,SetLocalFloat и т.д.). Так вот на счет вторых: много ли места в ОЗУ могут занимать они при неправильном использовании? Если да, как и когда их нужно удалять.

2. Еще один простой вопрос:
Хотел создать ПУСТУЮ таверну со стенками, но как не стирай, все равно редактор добавляет галимую статику. А на нее очень трудно что-то весить.
Можно ли как-то создать пустую комнату со стенками?

3. И еще один:
Я поставил в таверне пару ребят: типа музыкальная группа.
В каком формате надо сделать музыкальный файл, чтобы сделать 3D звук на то место, где стоят эти перцы. Я пытался сжатый WAV - вообще не декодируется, сырой WAV - декодируется, но можно только звуком, заполняющим всю зону.(Я портировал в игру через подключение хака, который сам спакавал стандартной утилой).

4. Я делаю Минишард - такую демо-версию для опробования разных скриптов. Решил сделать реалистичную таверну. А что там самое главное? Нужно уметь правильно садиться и вставать со стульев. Использую следующий скрипт (опубликован в скриптах 2_advanced):
Neverwinter Script Source
void main()
{
    object oPC = GetLastUsedBy();
    object oChair = OBJECT_SELF;

    if(GetIsObjectValid(oChair) && GetIsObjectValid(oPC))
    {
        object oSurf = GetLocalObject(oChair, "surf");

        if(GetIsObjectValid(oSurf))
        {
            object oSitter = GetSittingCreature(oSurf);

            if(!GetIsObjectValid(oSitter) || GetArea(oSitter) != GetArea(oChair))
                DestroyObject(oSurf);
            else
                return;
        }

        vector vSurf = GetPosition(oChair);
        vSurf.z = 0.0;

        location lSurf = Location(GetArea(oChair), vSurf, GetFacing(oChair));

        object oNewSurf = CreateObject(OBJECT_TYPE_PLACEABLE, "sittingsurface", lSurf, FALSE);

        SetLocalObject(oChair, "surf", oNewSurf);

        AssignCommand(oPC, ActionSit(oNewSurf));
    }
}

Он поворачивает сидящего в то направление, куда смотрит стул.\
ВОПРОС №1:
НО как грамотно сделать, чтобы вставать с него? Когда встаешь - он просто появляется рядом со стулом, идет куда указал, а потом иногда все-же срабатывает анимация встать! Выгладит не очень.
ВОПРОС №2:
Нужно ли делать проверку, на то сидит ли кто-то на стуле? Если да, хранить переменную, как локальную стула? Если да, как сделать, что бы она меняла значение, когда ПС или НПС вставал?(эта переменная пригодилась бы и для других целей)
ВОПРОС №3:
surf - это чисто локальная переменная стула? Она надеюсь не создается дубликатами каждый раз, когда садишься?
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #62100 · Ответов: 5109 · Просмотров: 861,311


Есть новые сообщения  Открытая тема (есть новые ответы)
Нет новых сообщений  Открытая тема (нет новых ответов)
Горячая тема (есть новые сообщения)  Горячая тема (есть новые ответы)
Горячая тема (нет новых сообщений)  Горячая тема (нет новых ответов)
Опрос (есть новые голоса)  Опрос (есть новые голоса)
Опрос (нет новых голосов)  Опрос (нет новых голосов)
Тема закрыта  Закрытая тема
Тема перемещена  Тема перемещена
 

Текстовая версия Сейчас: 27th April 2024 - 12:12