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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
205 страниц V  « < 54 55 56 57 58 > »   
Ответить в эту темуОткрыть новую тему
> Вопросы новичков, Абсолютные глупости
Dark@ngel
сообщение Jun 8 2005, 17:52
Сообщение #1376


Level 1


Класс: Друид
Характер: Lawful Neutral
Раса: Полуэльф



1.Как сделать чтобы НПС лежал/спал?
2.Как сделать чтобы на столе можно было смешивать определенные предметы и из этого получался какой-нибудь предмет или зелье. Если я не ошибаюсь, то для этого нужны скрипты?
3.Не могу разобраться с анимационными константами.В функцию сначала надо вводить:
Neverwinter Script Source
// Cause the action subject to play an animation
// - nAnimation: ANIMATION_*
// - fSpeed: Speed of the animation
// - fDurationSeconds: Duration of the animation (this is not used for Fire and
// Forget animations)
void ActionPlayAnimation(int nAnimation, float fSpeed=1.0, float fDurationSeconds=0.0)

а потом вставлять анимацию?Например:
ANIMATION_FIREFORGET_DRINK
ANIMATION_PLACEABLE_OPEN и т.д. Верно? И ещё-куда вообще вставлять анимацию, в OnSpawn?
4.И последнее, как сделать,чтобы НПС превращался например в оборотня и наоборот? :DB:
Заранее премного благодарна!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Jun 8 2005, 18:01
Сообщение #1377


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



QUOTE (Garou @ Jun 8 2005, 17:50)
И есть ли разница, поставить этот скрипт в конец диалога на ActionTaken или на Normal завершение диалога?

Без разницы. Если на ActionTaken последней строки, то все равно, что на EndNormal.
QUOTE (Garou @ Jun 8 2005, 17:50)
Как заставить его сказать фразу (ее я предварительно записал в вавовском файле и добавил в свой хак), для этого будет использоваться PlayVoiceChat? PlaySound? Или что-то другое! За синтаксис извините.

PlaySound("имя файла");
Еще есть такая особенность для звуков. Он должен быть ПРЕОБРАЗОВАН из wav в mp3, затем этот mp3 ПРЕОБРАЗОВАН утилиткой в формат bmu, а уже в самом конце ПЕРЕИМЕНОВАН в wav. :swoon: Вот так это делается.
Добавлено в [mergetime]1118243330[/mergetime]
QUOTE (Dark@ngel @ Jun 8 2005, 17:52)
1.Как сделать чтобы НПС лежал/спал?

На heartbeat непися вешай ActionPlayAnimation(ANIMATION_LOOPING_DEADFRONT, 1.0, 9999.0); - будет долго спать. ;)
Dark@ngel Слишком много вопросов, на которые ты хочешь получить ответы СРАЗУ. Большинство из них простым тычком не решаются. Скачай и почитай документацию Айвана у нас на сайте, много вопросов отпадет и в целом многие вопросы ты станешь задавать более конкретно. ;)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Garou
сообщение Jun 8 2005, 18:08
Сообщение #1378


Level 3
*

Класс: Оборотень
Характер: Chaotic Good
Раса: Человек



Как из bmu в wav переименовать? Расширение изменить (только не бейте :)!!) или? DBColl а как в конечном итоге будет выглядеть этот скрипт? Плиииз!!!
Добавлено в [mergetime]1118244242[/mergetime]
Вот еще что: Убо-Сатло мне описал, как сделать встречу с неписью через 20 дней, там есть
&& GetTimeHour() == xz // во сколько непись придет (х - это часы, а z - минуты? такой формат 0100 значит час ночи?) Дальше:
void main()
{
object oPC = GetFirstPC();
SetLocalInt(oPC, "RAZBORKA", TRUE);
}
Это можно ставить на начало разговора в ActionTaken?
И как можно проверить, работает ли вся эта конструкция? Ждать 20 дней проблемно...
Добавлено в [mergetime]1118244448[/mergetime]
Да, а если разные скрипты поставить в ActionTaken и EndNormal они оба работать будут? Или из-за противоречий вообще не будет ничего происходить?

Сообщение отредактировал Garou - Jun 8 2005, 18:10
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 8 2005, 18:39
Сообщение #1379


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

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



Dark@ngel.
1. Ответил ДБ.
2. Это КРАФТ. Жутко сложно для новичков. Но если есть желание поищи тут или на Валуте системы крафтовые. Но ИМХО не рекомендую.
3.
Neverwinter Script Source
void ActionPlayAnimation(int nAnimation, float fSpeed=1.0, float fDurationSeconds=0.0)
void ActionPlayAnimation(Константа Анимации, скорость, продолжительность)

Neverwinter Script Source
4. Скрипт на OnDamge НПС. Превращал его в оборотня (Злые языки утверждают, что иногда он попросту сбегал с локации. =) Я им не верю. Мой мальчик хороший, если его не бить...
void main()
{
    effect eMind = EffectVisualEffect(VFX_COM_BLOOD_CRT_GREEN); // Немного зеленой крови
    effect eShape = EffectPolymorph(POLYMORPH_TYPE_WEREWOLF); // Выбираем себе костюм на рождество...
    object oPC = GetFirstPC(); // Тут сам решай, кто это оРС.
    object oBoy = OBJECT_SELF; // Этот скрипт стоит на НПС мальчик, у меян в ПЛ

    if (GetLocalInt(OBJECT_SELF, "WERWOLF_YES") == 1)
      return; // если он сработал то больше не запустится код
    {
    SetLocalInt(OBJECT_SELF, "WERWOLF_YES", 1);
    ChangeToStandardFaction(oBoy, STANDARD_FACTION_HOSTILE); // Даем команду мальчику, А НУ СТАНЬ ЗЛОЙ!
    AssignCommand(oBoy, ClearAllActions());
    // Трем ему все что он задумал сделать (в носу поковырять или еще где...)
    ApplyEffectToObject(DURATION_TYPE_INSTANT, eShape, oBoy);
    ApplyEffectToObject(DURATION_TYPE_INSTANT, eMind, oBoy);
    SetImmortal(oBoy, FALSE); // Это он у меня типа бессмертный был. Щас он нормальный (если можно сказать)
    AssignCommand(oBoy, ActionAttack(oPC, FALSE)); // ФАС! Натравим на игрока
    }
}

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jun 8 2005, 18:44
Сообщение #1380


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

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



QUOTE (Dark@ngel @ Jun 8 2005, 18:52)
2.Как сделать чтобы на столе можно было смешивать определенные предметы и из этого получался какой-нибудь предмет или зелье. Если я не ошибаюсь, то для этого нужны скрипты?

нужны. Тебе для примера накатать простенький вариант?
QUOTE (Dark@ngel @ Jun 8 2005, 18:52)
3.Не могу разобраться с анимационными константами.

Мм... я бы посоветовал сначала:
- http://www.wrg.ru/old/stat_anim_npc1.htm мое мыло в начале статьи уже другое. Слать туда что-то бесполезно.
потом
- http://www.wrg.ru/old/stat_anim_npc2.htm
после этого пости вопросы по этому направлению.
Добавлено в [mergetime]1118245713[/mergetime]
QUOTE (Garou @ Jun 8 2005, 19:08)
Да, а если разные скрипты поставить в ActionTaken и EndNormal они оба работать будут? Или из-за противоречий вообще не будет ничего происходить?

если фраза со скриптом ActionTaken последняя, то сначала запустится этот скрипт, потом конец диалога. Почти одновременно.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Агрессинг
сообщение Jun 8 2005, 19:25
Сообщение #1381


Level 5
**

Класс: Убийца
Характер: True Neutral
Раса: Чудовище



Вещи в двадцать раз сложнее у мя получаются, а вот фигня всякая... Помогите пожалста..
Какой скрипт ставится на ветку диалога, чтобы она появилась при повторном начинании диалога?
Какой скрипт ставится на ветку диалога, чтобы она появилась при определенной записи в дневнике?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Garou
сообщение Jun 8 2005, 19:33
Сообщение #1382


Level 3
*

Класс: Оборотень
Характер: Chaotic Good
Раса: Человек



Aiwan!!! Вижу ты на форуме... Если не сильно занят, посмотри на мой сегодняшний пост в 17:50 (...Сел в лужу!!! Непись после...) Нужна помщь. Сам никак...:(
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Archangel
сообщение Jun 8 2005, 20:36
Сообщение #1383


Восставший из пепла
***

Класс: Бледный Мастер
Характер: Neutral Evil
Раса: Человек
ПОДМАСТЕРЬЕ



Здравствуйте, я тут уже 2й час мучаю ф-ию AdjustAlignment(). И вот, что у меня получилось:
Neverwinter Script Source
void main()
{
object oPC = GetPCSpeaker();
object oNPC1 = GetObjectByTag("P_M41");
int nShift = -60
AdjustAlignment(oPC, oNPC1);
}

Сразу видно, что последняя строчка - это не ф-ия, а ошибка природы. Исправьте пожалуйста, сам я
не допираю... :this:

QUOTE
Вещи в двадцать раз сложнее у мя получаются, а вот фигня всякая... Помогите пожалста..

У меня такая же фигня... Вон, видишь над какой шнягой мучаюсь... :swoon:
QUOTE
Какой скрипт ставится на ветку диалога, чтобы она появилась при повторном начинании диалога?

Посмотри в теме "Часто задаваемые вопросы" там это есть. Сам оттуда брал. ;)

Сообщение отредактировал Archangel - Jun 8 2005, 20:37
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Auren
сообщение Jun 8 2005, 21:47
Сообщение #1384


Сивоха
***

Класс: Некромант
Характер: Lawful Evil
Раса: Человек



void AdjustAlignment(object oSubject, int nAlignment, int nShift)


oSubject - объект, алигмент каторава миняицца
nAligment - собсна сам алигмент(памари в константах, как они там пишуцца. Что-то вроде ALIGNMENT_LAWFUL, ALIGNMENT_GOOD и т.д. Какой нужен ставь)
nShift - эт я думаю пнятна

Далее не пнятна, что ты хочешь. Каму что поменять?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Tiger Greyhawk
сообщение Jun 9 2005, 03:00
Сообщение #1385



Иконки Групп

Класс: Обыватель
Характер: Chaotic Good
Раса: Человек
NWN: Скриптинг [Sn]



To Garou
QUOTE (Garou @ Jun 8 2005, 19:08)
Вот еще что: Убо-Сатло мне описал, как сделать встречу с неписью через 20 дней, там есть && GetTimeHour() == xz // во сколько непись придет (х - это часы, а z - минуты? такой формат 0100 значит час ночи?)

GetTimeHour(); вернет только час. Без всяких минут. Это тот час, в который твой непись должен встретиться с игроком.
QUOTE (Garou @ Jun 8 2005, 19:08)
void main() { object oPC = GetFirstPC(); SetLocalInt(oPC, "RAZBORKA", TRUE); } Это можно ставить на начало разговора в ActionTaken?

Проще, имо, добавить это в скрипт начала разборки. Например, после атаки или начала разговора. Это переменная, которая не даст неписю (скрипту) еще раз начать разборку или диалог. А то он у тебя в течении часа (GetTimeHour(); ) каждые шесть секунд (у тебя на хертбите модуля скрипт) будет начинать все сначала.
QUOTE (Garou @ Jun 8 2005, 19:08)
И как можно проверить, работает ли вся эта конструкция? Ждать 20 дней проблемно...

Дык, замени GetCalendarDay(); на GetTimeHour(); и поставь на один-два часа вперед. Вот и проверишь.
QUOTE (Garou @ Jun 8 2005, 19:08)
Как из bmu в wav переименовать? Расширение изменить (только не бейте smile.gif!!) или? DBColl а как в конечном итоге будет выглядеть этот скрипт?

Сначала конвертнуть два раза, а потом просто заменить расширение.
Скрипт будет выглядеть:
Neverwinter Script Source
void main()
{
PlaySound("имя файла");
}

еще главный (насколько я понял) момент. Файл ОБЯЗАТЕЛЬНО должен быть моно.



To Archangel
QUOTE (Auren @ Jun 8 2005, 22:47)
nShift - эт я думаю пнятна

Судя по скрипту Archangel`а ему как раз это-то и непонятно... Это на какую позицию ты хочешь поставить элаймент. пример: AdjustAlignment(oPC, ALIGNMENT_LAWFUL, 100) - сдвинет элаймент по оси LAWFUL/EVIL на отметку LAWFUL 100% (вроде так)
Добавлено в [mergetime]1118281784[/mergetime]
Эмс... сорри, пропустил:
QUOTE (Garou @ Jun 8 2005, 18:50)
Непись после разговора должна идти к вейпоинту, там постоять несколько секунд, потом сказать фразу(при этом над ее головой появится эта фраза) и исчезнуть.


вот:
Neverwinter Script Source
void main()
{
object oNPC = GetObjectByTag("NPC");
object oWayPoint = GetWaypointByTag("WP");
ActionMoveToObject(oWayPoint);
ActionWait(3.0);
ActionSpeakString("текст фразы");
ActionDoCommand(PlaySound("имя_файла")); // <-- не проверял
ActionDoCommand(DestroyObject(oNPC, 3.0));
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Убо-Сатло
сообщение Jun 9 2005, 08:06
Сообщение #1386


Level 5
**

Класс: Маг
Характер: True Neutral
Раса: Человек



QUOTE (Garou @ Jun 8 2005, 19:08)
&& GetTimeHour() == xz // во сколько непись придет (х - это часы, а z - минуты?

xz - по русски "хз" это самая неопределенная переменная какую я знаю. В своем скрипте вместо этого вставь цифру от 0 до 23, во сколько хочешь, чтоб непись пришел.
QUOTE (Garou @ Jun 8 2005, 19:08)
SetLocalInt(oPC, "RAZBORKA", TRUE);

А это можно вставить в разные места, я не знаю как у тебя в модуле развиваются события. Я бы, чтоб не писать отдельный скрипт, вставил в ХБ модуля вот так:
Neverwinter Script Source
void main()
{
  object oPC = GetFirstPC();
  object oNPC = GetObjectByTag("ТВОЙ NPC");
  int S = GetLocalInt(OBJECT_SELF, "STRELKA");
  if(S == GetCalendarDay()
  && GetTimeHour() == xz;
  && GetLocalInt(oPC, "RAZBORKA")!= TRUE)
{
    AssignCommand(oNPC, ActionJumpToObject(oPC));
    AssignCommand(oNPC, ActionAttack(oPC));
    //или
    AssignCommand(oNPC, ActionStartConversation(oPC));
    if(GetDistanceBetween(oPC, oNPS)<=2.0)//когда непись будет
    // в 2 или  меньше(метрах или футах? точно не знаю от PC)
    {
    SetLocalInt(oPC, "RAZBORKA", TRUE);
    }
}
}

QUOTE (Garou @ Jun 8 2005, 19:08)
И как можно проверить, работает ли вся эта конструкция? Ждать 20 дней

Я для проверки таких скриптов использую вот такую "машину времени":
Делаю любой юзабельный плэйс, рычаг, например и на онюзе ставлю скрипт:
Neverwinter Script Source
void main()
{
SetCalendar(GetCalendarYear(), int  /*какой нужен месяц*/ ),  int  /*какое нужно число*/));
SetTime(int nHour(/*какой нужен час*/), 0, 0, 0);
}

И у тебя сразу в игре наступает нужное время
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Garou
сообщение Jun 9 2005, 08:44
Сообщение #1387


Level 3
*

Класс: Оборотень
Характер: Chaotic Good
Раса: Человек



Низкий Вам поклон, Убо-Сатло, Auren и TigerGrayhawk :good: !!!
Вчера создал книгу (item) с квестовой инфой. Как сделать обновление дневника игрока при ее чтении? Куда ставится этот скрипт?
Добавлено в 08:47
Да, сори, а ...int /*какой нужен месяц*/ ), int /*какое нужно число*/))...*какой нужен месяц* и *какое нужно число* - числа?

Сообщение отредактировал Garou - Jun 9 2005, 09:06
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Auren
сообщение Jun 9 2005, 09:53
Сообщение #1388


Сивоха
***

Класс: Некромант
Характер: Lawful Evil
Раса: Человек



QUOTE (Garou @ Jun 9 2005, 08:44)
Вчера создал книгу (item) с квестовой инфой. Как сделать обновление дневника игрока при ее чтении? Куда ставится этот скрипт?



Должно быть на OnActivateItem в свойствах модуля. Вылгядеть должно примерно так:


Neverwinter Script Source
void main()
{
    object oPC = GetItemActivator();
    object oBook = GetItemActivated();
    string sBookTag = GetTag( oBook );
    if ( sBookTag == "BOOK_TAG" )
    {
        AddJournalQuestEntry("JC_TAG", k, oPC, FALSE, FALSE, FALSE);//три последних параметра ставь, как те нуна
    }
}

//k - integer. Это ID dfkjwhjg
//BOOK_TAG - тэг книги
//JK_TAG - тэг категории журнала


Сообщение отредактировал Auren - Jun 9 2005, 09:56
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Агрессинг
сообщение Jun 9 2005, 14:02
Сообщение #1389


Level 5
**

Класс: Убийца
Характер: True Neutral
Раса: Чудовище



Хмхмхмх. посмотрел в часто задаваемых вопросах как сделать, чтобы при повторном подходе Непись говорил другую фразу. Там написанно так
Neverwinter Script Source
1. d_st_firsttalk

Neverwinter Script Source
void main()
{
SetLocalInt(OBJECT_SELF,"FirstTalk",TRUE);
}


2. d_ch_firsttalk

Neverwinter Script Source
int StartingConditional()
{
return GetLocalInt(OBJECT_SELF,"FirstTalk");
}

Но у меня нпс все равно говорит первоначальную фразу! Я ставил скрипты и на фразу героя и на фразу НПСа, но ничего не выходит! В чем может быть проблема, подскажите пожалуйста.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Auren
сообщение Jun 9 2005, 14:11
Сообщение #1390


Сивоха
***

Класс: Некромант
Характер: Lawful Evil
Раса: Человек



2Агрессинг

Скажи подробней, что тибе надо, плиз.

Сообщение отредактировал Auren - Jun 9 2005, 14:12
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Агрессинг
сообщение Jun 9 2005, 14:18
Сообщение #1391


Level 5
**

Класс: Убийца
Характер: True Neutral
Раса: Чудовище



Auren
Ну как вот ты это делаешь? На чью реплику ставишь 2ой скрипт? А первый? В этом скрипте точно все верно? "FirstTalk" можно назвать, например "FirstTalkNPC"?
Ответь пожалуйста, а я проверю и отпишусь об результате. Мне бы модуль с этой ф-ней, я бы сравнил, но тут на форуме привязывать файлы только админы имеют право..
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Auren
сообщение Jun 9 2005, 14:22
Сообщение #1392


Сивоха
***

Класс: Некромант
Характер: Lawful Evil
Раса: Человек



Переменную мона обзывать практически как угодно, не в ней дело.
Я прошу тебя описать ситуацию, чтобы понять, что тебе нужно.
Тебе нужно чтобы типа когда разговариваешь с неписем первый раз, он гварил адну фразу, а птом все время вторую? Или у тебя список этих фраз(10 например) и непись должен говорить их поочереди или рандомна?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jun 9 2005, 14:26
Сообщение #1393


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

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



QUOTE (Агрессинг @ Jun 9 2005, 15:02)
Но у меня нпс все равно говорит первоначальную фразу! Я ставил скрипты и на фразу героя и на фразу НПСа, но ничего не выходит! В чем может быть проблема, подскажите пожалуйста.

Я писал не так давно о том, как там правильно ставить проверки. Повторю наверное:
ВЫБОР ФРАЗЫ НПС:
берет первую. Если подходит условие, то НИЖЕ НЕ ИДЕТ И ВЫДАЕТ ЕЕ. (те если условия там нет, то фразы под ней НИКОГДА не вылезут)
Если условие не подошло, то берет слуд. фразу. и так до тех пор, пока не выполнится условие или не кончатся фразы (в этом случае диалог оборвется).
ВЫБОР ФРАЗ-ВАРИАНТОВ ИГРОКА:
проверка условия. Если выполняется, то фразу можно выбрать. Иначе - нельзя.


А теперь смотри, что ты там у себя в диалоге наворотил.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Агрессинг
сообщение Jun 9 2005, 15:30
Сообщение #1394


Level 5
**

Класс: Убийца
Характер: True Neutral
Раса: Чудовище



Я взялLex

Ну это понятно. У меня две корневые фразы. 1-ая вылезает при первом начале диалога. На Actions ей я ставлю 1ый скрипт
2-ая должна вылезать при условии, заданной первой фразой. На text appears when ставлю 2ой скрипт. Все вроде правильно, но НПС всегда говорит одну фразу.
может дело в глючном toolsetе ? Я для проверки встроенным визардом сделал скрипт на текст, чтобы он появлялся при вещи в инвентаре, но текст опять же не появился! :swoon:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jun 9 2005, 15:38
Сообщение #1395


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

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



Эх..... ты читаешь недостаточно внимательно (думая наверное, что сам это отлично знаешь).
ПЕРВАЯ фраза должна быть с ПРОВЕРКОЙ
ВТОРАЯ фраза с УСТАНОВКОЙ локалки.

диалог. Начало. Фразы НПС.
>> Привет, снова ты? Что тебе нужно? (ТУТ СКРИПТ d_ch_firsttalk в закладке text appears when )
>> Привет, я тебя тут раньше не видел...... (ТУТ СКРИПТ d_st_firsttalk в закладке Actions)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Archangel
сообщение Jun 9 2005, 19:19
Сообщение #1396


Восставший из пепла
***

Класс: Бледный Мастер
Характер: Neutral Evil
Раса: Человек
ПОДМАСТЕРЬЕ



Есть вопросик... А сколько можно вешать локальных переменных на Игрока за один скрипт? А то уменя есть скрипт:
Neverwinter Script Source
void main()
{
SetLocalInt(OBJECT_SELF,"10",TRUE);
SetLocalInt(OBJECT_SELF,"11",TRUE);
SetLocalInt(OBJECT_SELF,"12",TRUE);
}

Но так получается, что работает только самая верхняя пременная, а другие нет. Я уже по 5-6 раз
проверил правильность скриптов, вызывающих лок. перменные '11' и '12'. Все верно. Каждая пременная
служит для разных диалогов с разными НПС. Но работает только та, которая вызывает другой диалог у НПС, на ветке которого этот скрипт и стоит. И что же делать? :swoon:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jun 9 2005, 19:42
Сообщение #1397


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

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



если это скрипт в диалоге, то ты вешаешь локалки на НПС, с которым НАЧАЛ диалог. (не важно на чьей фразе стоит скрипт)
Если тебе нужен игрок, юзай
Neverwinter Script Source
object oPC = GetPCSpeaker();
SetLocalInt(oPC,"LOCAL",1); // и тд
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 9 2005, 19:45
Сообщение #1398


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

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



Агрессинг иди как сливай мой мануал и смотри. Там это все разжевано, только в рот клади.
Archangel во первых, мы тут видим только один из четырех скриптов. Во вторых не знаем структуру твоего диалога. Подумай своей тыковкой, если у тебя стоит три строки в ряд и ВСЕ ТРИ СРАБАТЫВАЮТ? Ну? И на какой он будет работать? На самой верхней, верно. К тому же OBJECT_SELF это чаще всего НПС на которм стоит диалог. Игрока лови так: GetPCSpeaker(); И если ты скажешь что нет примера такого сложного диалога в моей статье, то я тебе влеплю второй пред. :this:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Garou
сообщение Jun 9 2005, 20:39
Сообщение #1399


Level 3
*

Класс: Оборотень
Характер: Chaotic Good
Раса: Человек



QUOTE (Tiger Greyhawk @ Jun 9 2005, 03:00)
Сначала конвертнуть два раза, а потом просто заменить расширение.

Может это глюк, но я сегодня вставил в хак файл WAV без двойных конвертаций... (правда сделал его изначально моно) и он PlaySound() воспроизвелся. Кому я "открыл Америку" проверте плиз, а то я начинаю думать, что достал свой тулсет настолько, что он уже на все согласен :bad:
Добавлено в 21:47
Теперь к проблемам, у меня их всегда много...
Этот скрипт я поставил в ActionTaken на последней реплике PC в ветке диалога
Neverwinter Script Source
void main()
{
object oPC = GetPCSpeaker();
int d = GetLocalInt(oPC, "data");
SetLocalInt(oPC, "data", GetCalendarDay());
if(d<=8)
{
  SetLocalInt(GetModule(), "STRELKA", d+20);
}
else
{
  SetLocalInt(GetModule(), "STRELKA", (d+20)-28);
}
}


Этот – стоит на хартбите модуля
Neverwinter Script Source
void main()
{
  object oPC = GetFirstPC();
  object oNPC = GetObjectByTag("моя непись");
  int S = GetLocalInt(OBJECT_SELF, "STRELKA");
  if(S == GetCalendarDay()
  && GetTimeHour() == 14
  && GetLocalInt(oPC, "RAZBORKA")!= TRUE)
{
    AssignCommand(oNPC, ActionJumpToObject(oPC));
    AssignCommand(oNPC, ActionStartConversation(oPC));
    if(GetDistanceBetween(oPC, oNPC)<=2.0)
    {
    SetLocalInt(oPC, "RAZBORKA", TRUE);
    }
}
}


А этим рычагом я прокручиваю время, дабы проверить эту конструкцию в работе:
Neverwinter Script Source
void main()
{
SetCalendar(GetCalendarYear(), GetCalendarMonth(), GetCalendarDay()+19); /Странно, но если поставить 20, то при узании с 1го числа идет переход в 22?!/
SetTime(13, 0, 0, 0);
}


Но в модуле ничего не происходит. Где моя ошибка?:(
Также пробовал
Neverwinter Script Source
void main()
{
object oPC = GetPCSpeaker();
int d = GetLocalInt(oPC, "data");
SetLocalInt(oPC, "data", GetTimeHour());
if(d==13)
{
  SetLocalInt(GetModule(), "STRELKA", d+1);
}
}

Neverwinter Script Source
void main()
{
  object oPC = GetFirstPC();
  object oNPC = GetObjectByTag("моя непись");
  int S = GetLocalInt(OBJECT_SELF, "STRELKA");
  if(S == GetTimeHour()
  && GetLocalInt(oPC, "RAZBORKA")!= TRUE)
{
    AssignCommand(oNPC, ActionJumpToObject(oPC));
    AssignCommand(oNPC, ActionStartConversation(oPC));
        if(GetDistanceBetween(oPC, oNPC)<=2.0)
    {
    SetLocalInt(oPC, "RAZBORKA", TRUE);
    }
}
}


Результкт тот же :shout:




LEX: ЕЩЕ РАЗ УВИЖУ СКРИПТЫ, НАПИСАННЫЕ НЕ В NSS - СРАЗУ ПРЕД.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dark@ngel
сообщение Jun 9 2005, 22:37
Сообщение #1400


Level 1


Класс: Друид
Характер: Lawful Neutral
Раса: Полуэльф



Добрый вечер всем! Хотела поинтересоваться какой скрипт надо вешать, чтобы НПС дал НП определенный предмет. И если не затруднит-не подкинете пару скриптиков на головоломку (скачала уже одну-где на плиты нажимаешь и слово составляешь, а потом дергаешь за рычаг и дверь открывается). :dirol:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

205 страниц V  « < 54 55 56 57 58 > » 
Ответить в эту темуОткрыть новую тему
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 29th March 2024 - 16:00