Помощь - Поиск - Пользователи - Календарь
Полная версия: Скрипты
Город Мастеров > РЕДАКТОРЫ > 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
Lex
это к чему?
object oItem = GetItemInSlot(Random(14),oPC);
Мы берем атем из рандомного слота. Тебе вроде это надо было. (можето оказаться и стрела... а может ничего не оказаться, кстати. smile.gif Ну это просто циклом правится)
Neverwinter Script Source
void main()
{
object oPlayer = GetLastPlayerDied();
object oItem = GetItemInSlot(Random(14),oPC);

while (!GetIsObjectValid(oItem))
        oItem = GetItemInSlot(Random(14),oPC);

CopyObject(oItem,GetLocation(oPC));
DestroyObject(oItem);
}


Опять же это все весьма СЫРОЕ. Если на РС 1-2 вещи, то цикл это очень неоптимальный вариант. А если почти все слоты заняты, то нормально. Но думать я думаю ясно в какую сторону.



object oItem = GetPCItemLastEquipped()
Это последний одетый айтем. Причем корректо будет работать только в слоте onItemEquipped
Tarron
не я к тому что я 0 в скриптах а на эту строку он пишет что неправильно продекларирован тип.Мои мозги думают что просто айтем не описан но они часто ошибаються-)
Lex
Короче если у вас хороший скриптер, то ждите его, он сам все напишет. То, что ты спрашивал это довольно просто.

И в любом случае посылай его сюда. Думаю он найдет, чему тут поучиться и мы по возможности чего-нить новое узнаем.
Хэнтан
QUOTE (Lex @ Mar 21 2005, 16:38)


дамми. Все просто. Для начала дамми должен быть creature, а не placeable. Есть у кричей такой внешний вид.
На дамаж объекта написать скрипт дачи экспы и наложение heal (чтоб не убили). И естественно поставить флаг immortale

Извините за мою тупость и лаймерство,но немогли бы вы мне объяснить что такое:creature,placeable,кричей,флаг immortale? unsure.gif

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


А теперь собсна по теме:
- эти вопросы в раздел новичков.
- почитай статью (тема Вопросы и Ответы, 2-ой пост.) После этого многие вопросы такого рода отпадут.
- и читайте ПРАВИЛА РАЗДЕЛА.

епрть..
Aiwan
QUOTE (Хэнтан @ Mar 22 2005, 00:12)
Извините за мою тупость и лаймерство,но немогли бы вы мне объяснить что такое:creature,placeable,кричей,флаг immortale? 
Еще раз извините!!!

Объясни подробно ЗАЧЕМ тебе это знать?
][umepa
тут вопросик появился, поставил эту команду на непися:
void main()
{
object oPC = GetPCSpeaker();
ActionForceFollowObject(oPC, 1.0);
}
он за мной идёт все нормально, но если начинается бой то непись за мной уже не идёт . Как сделать что бы и после окончания боя он следовал за мной? bad.gif
Aiwan
Поставь проверку, на хербит или на юзер деф. Твой НПС идет за тобой акцией, она сбилась и он отстал. Можно забить ему стек команд и тогда он ничего делать не будет только тупо бежать за тобой.
Ketcalkoatl
Повесь скрипт на диалог NPC.
Tarron
О народ вот тут давно хотели реализовать но не смогли ибо не имеем даже представления как.Мб ОТЦЫ помогутpardon.gif
Приходишь в темный город и говоришь дескать вот я такой растакой крутан дайте мне отряд и тебе в подчинение выдают отряд гоблинов ну или орков там от уровня.Но главное требование чтобы они бегали за мной и атакили того кто атакит меня или кого атакю я .МБ вы поможите.ЕСли слодно с группой то можно и с одним но конечно важно группу.
Заранее спасибо.
][umepa
айв а как проверку например на heartbeat поставить swoon.gif я мало ещё чё знаю
Friedrich
Одного - это просто. Сделай его хенчманом (пояснения нужны?).

Группу - это сложно. В принципе, можно сделать главаря группы хенчманом ПС. Второго - хенчманом главаря, третьего - хенчманом второго и т.д.
При этом нужно отслеживать смерть каждого гоблина и соответствующим образом перестраивать цепочку. Т.е.
убили командира - назначаем 2-го гоблина хенчманом ПС.
Убили 2-го гоблина. Подчиняем 3-го командиру. и т.д.

По идее, они будут бегать за игроком а ля бойцы в Rainbow Six. biggrin.gif
lДобавлено в 23:22
][umepa
айв а как проверку например на heartbeat поставить я мало ещё чё знаю

В скрипте onSpawn раскомментируешь строчкуSetSpawnInCondition(NW_FLAG_HEARTBEAT_EVENT);
Сохраняешь скрипт под другим именем.

Теперь скрипт onUserDefined будет вызываться как "хербит". Т.е. каждые 6 сек. (каждый раунд). Туда пишешь:
Neverwinter Script Source
void main()
{
int nEvent = GetUserDefinedEventNumber();

if (nEvent == EVENT_HEARTBEAT)
{
   object oPC = GetLocalObject(OBJECT_SELF, "PC_TO_FOLLOW");
 
   // если ПС не определен ИЛИ идет бой -> прервать сценарий
   if(!GetIsObjectValid(oPC) || GetIsInCombat() ) return;
  
   ActionForceFollowObject(oPC, 1.0);
}
}

В свой скрипт в диалоге добавляешь
SetLocalObject(OBJECT_SELF, "PC_TO_FOLLOW", oPC);

Чтобы отпустить НПС удали локалку:
DeleteLocalObject(OBJECT_SELF, "PC_TO_FOLLOW");

З.Ы. Вместо хербита, пожалуй, лучше испольщыват КомбатРаундЭнд.
][umepa
спасибо ,Friedrich yahoo.gif а чё значит расоментировать?
Добавлено в [mergetime]1111554341[/mergetime]
тьфу diablo.gif раскоментировать?
Tiger Greyhawk
QUOTE (Хumepa @ Mar 23 2005, 08:04)
а чё значит расоментировать?

знак // - это комментарий. Все, что находится в этой строчке после него не воспринимается компилятором. Убрать эти знаки и значит раскоментировать.
Лови ссылки: первая и вторая
Вопросы типа "что значит" проще, имхо, на канале (первая ссылка). Здесь большие темы. То, что никак в чате.
][umepa
Friedrich млин чё то не фурычит можешь описать весь процесс по подробней плз shout.gif shout.gif
Добавлено в [mergetime]1111576693[/mergetime]
памаги плз нужно очень а то я с горя swoon.gif
Aiwan
Этот кусок вставишь в конце скрипта на heartbeat:
Neverwinter Script Source
if(GetLocalInt(OBJECT_SELF, "PC_TO_FOLLOW") == TRUE)
    {
        SignalEvent(OBJECT_SELF, EventUserDefined(2001));
    }


На UserDefined поставь такой: (скрипты сырой и я его не тестил, учись сам)

Neverwinter Script Source
//:://////////////////////////////////////////////
//:: Created By: WRG! Aiwan aiwan@e-mail.ru
//:: Created On: 23.03.2005
//:://////////////////////////////////////////////
//::
//:://////////////////////////////////////////////

void main()
{
if (GetArea(OBJECT_SELF) != GetArea(GetFirstPC()) || !GetIsObjectValid(oPC) || GetIsInCombat())
      return; // Если НПС не влокации вместе с РС или идет бой или РС базарит то возврат
    object oPC = GetFirstPC();
    object oNPC = OBJECT_SELF;
    int nEvent = GetUserDefinedEventNumber();
    float fDist = GetDistanceBetween(oPC, oNPC); // Расстояние между РС и НПС
    if (nEvent == 2001 && fDist > 20.f) // Если дальше 20 метров, т.е двух тайлов
    {
    AssignCommand(oNPC, ActionForceFollowObject(oPC, 1.0));
              int iRand = Random(4);
              switch (iRand)
              {
                    case 0:
                    {
                        SpeakString("Подожди!");
                    }
                    case 1:
                    {
                        SpeakString("Я не успеваю!");break;
                    }
                    case 2:
                    {
                        SpeakString("Стооой!");break;
                    }
                    case 3:
                    {
                        SpeakString("Не убегай!");break;
                    }
              }
          }
    return;
}

Добавлено в [mergetime]1111585465[/mergetime]
Удалить локалку и не идти за РС в диалоге:
Neverwinter Script Source
SetLocalInt(OBJECT_SELF, "PC_TO_FOLLOW", FALSE)
][umepa
айв, спасибки я всё вставил как ты сказал токо неписи всё равно за мной после боя не идут тут вот из-за этого может: else if ( GetWalkCondition(NW_WALK_FLAG_CONSTANT))
error : no right bracket on expression
и вот ещё
float fDist = GetDistanceBetween(oPC, oNPC); // Расстояние между РС и НПС
error :unexpected end compund statement
не компилируются можешь скажешь как исправить если я тя ещё не достал с нубскими вопросами swoon.gif
Добавлено в [mergetime]1111656990[/mergetime]
вот ещё млин че он не компилируется айв подскажи
if (GetArea(OBJECT_SELF) != GetArea(GetFirstPC()) || !GetIsObjectValid(oPC) || GetIsInCombat())
пишет error variable defined without type
Lex
поставь это:
[QUOTE=Aiwan, Mar 23 2005, 16:42]object oPC = GetFirstPC();[/QUOTE]
выше этого:
[QUOTE=Aiwan, Mar 23 2005, 16:42]if (GetArea(OBJECT_SELF) != GetArea(GetFirstPC()) || !GetIsObjectValid(oPC) || GetIsInCombat())
return; // Если НПС не влокации вместе с РС или идет бой или РС базарит то возврат[/QUOTE]



[QUOTE=][umepa, Mar 24 2005, 12:17]токо неписи всё равно за мной после боя не идут тут вот из-за этого может: else if ( GetWalkCondition(NW_WALK_FLAG_CONSTANT))
error : no right bracket on expression[/QUOTE]
код приводи полностью
Friedrich
Химера! Открой файл Chapter1 оригинальной кампании НВН. Там на полуострове (Penisula) были НПС которых нужно было проводить (н.п.: Master Johns.) Посмотри как это сделали1 Биовары и успокойся.
Aiwan
][umepa эти скрипты я компелили в авроре, только не проверял на деле. Сам проверяй.
Neverwinter Script Source
object oPC = GetFirstPC();
if (GetArea(OBJECT_SELF) != GetArea(GetFirstPC()) || !GetIsObjectValid(oPC) || GetIsInCombat(oPC))
      return; // Если НПС не влокации вместе с РС или идет бой или РС базарит то возврат

Попробуй так, Лекс прав. biggrin.gif А ВЕДЬ Я КОМПЕЛИЛ! Видать патч что то косячит...
][umepa
Friedrich и Aiwan огроменное вам спасибо я всё сделал усе работает biggrin.gif biggrin.gif lol.gif lol.gif
спасибо и ещё раз спасибо помогли . я лоханулся просто а ща усе работает благодарю!!! biggrin.gif
Добавлено в [mergetime]1111688928[/mergetime]
lex и тебе спасибо biggrin.gif
Aiwan
Расскажи как сделал? Может в набор скриптов кинешь скриптик. Новичкам понадобится.
dumbo
Aiwan
QUOTE (Aiwan @ Mar 24 2005, 17:53)
Попробуй так, Лекс прав. biggrin.gif А ВЕДЬ Я КОМПЕЛИЛ! Видать патч что то косячит...

я подозревал, что во всех тяжких будут винить, но не настолько же! такое ни под каким соусом не может компилиться, ни с патчем, ни без него. yes.gif
][umepa
лана aiwan попотаюсь токо ша нет времени может завтра вечером
Chimeric
Вопрос: как создать следующий спецэффект? Внешность персонажа мгновенно, неуловимо изменяется множество раз подряд, то есть обличья мелькают одно за другим, потом какое-то одно устанавливается? Я имею в виду что-то вроде быстрого перелистывания книги, где на каждой странице - какое-то существо. Вот он - человек, вот (через треть секунды) - гном, вот - эльф...
Friedrich
Я бы сказал, что штатными средствами - это сделать не возможно, хотя, могу и ошибаться.
Можно, конечно, сделать что-то с полиморфами, или через дестрой/креэйт разных объектов на одной локации, но не уверен, что это будет то, что нужно...

Может у других есть идеи?
QUOTE (Chimeric @ Mar 26 2005, 00:58)
Вот он - человек, вот (через треть секунды) - гном, вот - эльф...
slavaz
QUOTE (Aiwan @ Mar 24 2005, 18:53)
опробуй так, Лекс прав. biggrin.gif А ВЕДЬ Я КОМПЕЛИЛ! Видать патч что то косячит...

Айв, в примере после GetFirstPC() одна закрывающая скобка лишняя.
Archangel
Я придерживаюсь версии Friedrich`a. Но чтоб это все смотрелось хорошо моно на НеПиСя, котрый будет превращаться, наложить какой-нить эффект (заморозку или че-нить похожее). Затем быстренько дейстройтнуть его и криэйтить на это же место другого НеПиСя, затем на него наложить эффект, потом его дейстройтнуть.... вообщем я думаю идея понятна. wink.gif
Vhall
Chimeric
Придется делать собственную анимацию крича =(
Lex
??? А чем вас не устраивает SetCreatureAppearanceType(object, int) ?

SetCreatureAppearanceType(object, int)
Change a creature's appearance
Neverwinter Script Source
void SetCreatureAppearanceType(
    object oCreature,
    int nAppearanceType
);

Parameters
oCreature
Creature to change appearance of nAppearanceType
APPEARANCE_TYPE_*
Description
Sets the creature's appearance type to the value specified (uses the APPEARANCE_TYPE_XXX constants).
Remarks
This will alter a creature's appearance. Unlike EffectPolymorph, most stats do not change with this command. Cirtain ones (creature size, default speed) do, if they are in the appearance.2da file. Will not change race. Also see known bugs.
There may be appearance types you can use with this command which don't have associated constants. Look in your appearance.2da file - for instance, in version 1.61, there's no APPEARANCE_TYPE_BEHOLDER, but using the row number (401) should do the trick, if you have the correct expansion pack installed, that is.
Known Bugs
If your creature has, for example, a speed setting of "DM Speed" (super-fast!) and then is turned into a golem (or some other normally slow creature) it then uses the new appearance's speed. It keeps that speed even if it is changed back into its original form.
Version
1.64
Example
Neverwinter Script Source
// script to change us into an Adamantium Golem.
void main()
{
    SetCreatureAppearanceType(OBJECT_SELF,
APPEARANCE_TYPE_GOLEM_ADAMANTIUM);
}



Лексикон вам для того, чтобы забить хард? biggrin.gif biggrin.gif biggrin.gif
Chimeric
Я вообще-то думал как раз о ряде SetCreatureAppearanceType, только разделёнными DelayCommand на 200 миллисекунд или около того. Как считаете?
][umepa
товарищи а можно ли сдлеать чтобы NPC всё время стоял и молился ( по моему это workship называется)
и ещё я у в туториале AIWAN'а на скрине видел статую гнома. Так вот эта статую из хака како-нить или это
на скриптах объясните плз
Archangel
QUOTE
товарищи а можно ли сдлеать чтобы NPC всё время стоял и молился ( по моему это workship называется)

Конечно! Вставь это в OnHearBeat НеПиСя:
Neverwinter Script Source
void main()
{
ClearAllActions();
ActionPlayAnimation(ANIMATION_LOOPING_WORSHIP);
}
wink.gif
QUOTE
Так вот эта статую из хака како-нить или это
на скриптах объясните плз

Хаки... biggrin.gif
][umepa
спасибо biggrin.gif biggrin.gif biggrin.gif
Добавлено в [mergetime]1111921316[/mergetime]
ещё вопрос уже по части диалогов.
допустим стоит группа наёмников. я говорю с главарём и после завершения диалога вся группа начиает меня бить.как это сделать?
p.s. если такое возможно biggrin.gif
Archangel
Просто вставь скрипт, который бы менял отношение НеПиСей к игроку...
Вот:

Neverwinter Script Source
#include "nw_i0_generic"
void main()
{
AdjustReputation(GetPCSpeaker(), OBJECT_SELF, -100);
DetermineCombatRound(GetPCSpeaker());
}
biggrin.gif
BoB4ik
Ребята, у меня вот шард, там много животных, после того, как установил один скрипт, каждый представитель класса "анимал", выкидывает шкуру. в Итоге - почи все магазины переполнены, и когда по 7 страниц магазина забито такими шкурами, и кто-то пытаеться что-либо продать, лагует весь серв, причем хорошо так лагует. Не можете подсказать скриптик и куда его вешать, который бы уничтожал вещь после того как она была бы продана в магазин? Или какое-нибудь другое решение этой проблемы, чтобы не лагало и проданных вещей не оставалось в магазине.(Ограничивать вендора в денгях в данном случае не выход, так-что прошу этот вариант не предлогать.)
Жду вашей помощи, с уважением БоБ4ик.
Lex
я бы сделал для скупщиков отдельный merchant, чтобы не париться в выявлении, что удалать а что нет.
И тогда удаление вещей это стандартный цикл
Neverwinter Script Source
void main()
{
object oItem = GetFirstItemInInventory(OBJECT_SELF);
while (GetIsObjectValid(oItem))
      {
      DestroyObject(oItem);
      oItem = GetNextItemInInventory(OBJECT_SELF);
      }
}

Я у себя ставил на открытие (так как другого слота в merchantе не было)
BoB4ik
Спасибо тебе огромное.
][umepa
2 archangel а куда вставить и что будет происходить?
Archangel
QUOTE
2 archangel а куда вставить и что будет происходить?

Ставь в ветку разговора(а точнее в "Совершено действие"). И эти уроды нападут на ПС... wink.gif
][umepa
biggrin.gif biggrin.gif ПАСИБКИ
Добавлено в [mergetime]1111948954[/mergetime]
млин archangel тут понимаешь чё: главарь на меня нападает а все остальные для меня становятся врагами но не атакуют чё делать? this.gif
Добавлено в [mergetime]1111949064[/mergetime]
мне надо чтобы с одним главарём поговорил а потом он и все остальные после определённой ветки диалога нападали. я всё сделал как ты сказал. подскажи чё делать
Nokoll
Арх, Как не стыдно суёшь, чужой скрипт(помойму Айва), и даже не понимая вопроса.
][umepa Вот мой вариант. также в диалоге.
Neverwinter Script Source
object oNpc1 = GetObjectByTag("NP1");
object oNpc2 = GetObjectByTag("NP2");
object oNpc3 = GetObjectByTag("NP3");
object oNpc4 = GetObjectByTag("NP4");
object oNpc5 = GetObjectByTag("NP5");
object oNpc6 = GetObjectByTag("NP6");
DelayCommand(0.0, AdjustReputation(oPC,oNpc1,-100));
DelayCommand(0.5, AdjustReputation(oPC,oNpc2,-100));
DelayCommand(1.0, AdjustReputation(oPC,oNpc3,-100));
DelayCommand(1.5, AdjustReputation(oPC,oNpc4,-100));
DelayCommand(1.0, AdjustReputation(oPC,oNpc5,-100));


За место моих oNpc1, поставиш миниимя своих персов.
][umepa
спасибо nokoll
Lemegeton
По поводу SetCreatureAppearanceType(object, int).

Средняя скорость "срабатывания" 0.7 - 1.5 СЕКУНДЫ. Сначала проверял на человеко-лошади Тигер_СерыйЯстреб hi.gif . У него получилось 1 - 1.5. Я проверял с "человек-полуорк". У меня "разброс" еще хуже - 0,7 - 2,0 секунд. Это, видимо, зависит от мощности техники. Реализовано, наверно, так: мол, "меньше 6 секунд - и ОК". Но нам сие не подходит. dntknw.gif
Archangel
QUOTE
Арх, Как не стыдно суёшь, чужой скрипт(помойму Айва), и даже не понимая вопроса.

Не... Скрипт стандартный визарда из редактора... И вообще моно и саму докатить, что надо каждому челу такую байду впоять... biggrin.gif
А, я понял о чем ты... Ты имеешь ввиду почему я вставил GetPCSpeaker, дык моно было просто другим вставит DelayCommand(16.0,AssignCommand(oNPC, ActionAttack(oPC, FALSE)));...
Я подумал, что Химера сам по анологии допрет... ОШИБАЛСЯ swoon.gif
Lex
QUOTE (Archangel @ Mar 28 2005, 11:14)
Я подумал, что Химера сам по анологии допрет... ОШИБАЛСЯ 

а теперь немного подумай над тем, что бы было если бы на твои вопросы мастера отвечали бы так же как ты сейчас. А на встречные вопросы говорили бы "подумали, что Archangel сам по анологии допрет... ОШИБАЛИСЬ "
Kondor
Lex А можешь дать скрипт, чтобы при появлении все оружие и доспехи дестроились, в инвентаре.
И я не могу после разговора заставить чела покупать вещи, то есть открыть окно купли/продажи.
И последнее, надо чтобы уровень приравнивался к 20 и только. Нет то было не последнее, как сделать чтобы в ящиках все уничтожалось, а осталось только то что сделал Я.
][umepa
эээ появилась несколько вопросов:
1)как заставить непися сесть на стул
2)какая команда отвечает за то что неписяь умолял игрока
3)какая команда что бы непись мотал головой(типа не согласен)
Добавлено в [mergetime]1112081854[/mergetime]
2 archangel млин команда работает но непися нападают наверное через минуту после окончания диалого. нельзя ли как-нить по быстрее yes.gif
Archangel
QUOTE
как заставить непися сесть на стул

Есть такая анимация:
Neverwinter Script Source
ActionPlayAnimation(ANIMATION_LOOPING_SIT_CHAIR);

QUOTE
какая команда отвечает за то что неписяь умолял игрока

Опять же анимация:
Neverwinter Script Source
ActionPlayAnimation(ANIMATION_LOOPING_TALK_PLEADING);

QUOTE
какая команда что бы непись мотал головой(типа не согласен)

Такой вроде нет, но есть похожая:
Neverwinter Script Source
ActionPlayAnimation(ANIMATION_LOOPING_TALK_NORMAL);

QUOTE
2 archangel млин команда работает но непися нападают наверное через минуту после окончания диалого. нельзя ли как-нить по быстрее

Замени число 16 другим, более меньшим...
QUOTE
а теперь немного подумай над тем, что бы было если бы на твои вопросы мастера отвечали бы так же как ты сейчас. А на встречные вопросы говорили бы "подумали, что Archangel сам по анологии допрет... ОШИБАЛИСЬ "

Мда... ИЗВИНЯЮСЬ.
][umepa
biggrin.gif да лана че там я не обиделся biggrin.gif
и спсибо
Добавлено в [mergetime]1112119703[/mergetime]
а когда непись на стул садиться на чё эту команду повесить?

Добавлено в [mergetime]1112119945[/mergetime]
ты имел ввиду -100 поменять на -16 и ниже?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Invision Power Board © 2001-2025 Invision Power Services, Inc.