Помощь - Поиск - Пользователи - Календарь
Полная версия: Вопросы новичков
Город Мастеров > РЕДАКТОРЫ > 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, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103
rakoth
пасибки,буду химичить
Добавлено в [mergetime]1138949613[/mergetime]
mamuc у меня два вопроса:
1)как сделать Cast Spell - Unique Power
2)при компиляции твоего первого скрипта пишет Error undefined identifier(CreateEvilCircle)
Тоже самое и с DelayCommand(10.0, CreateEvilCircle(oPC))
что это значит?

dumbo
QUOTE (rakoth @ Feb 3 2006, 10:05)
2)при компиляции твоего первого скрипта пишет Error undefined identifier(CreateEvilCircle)

слово void вставь.
Neverwinter Script Source
void CreateEvilCircle(oPC)
{
...

Добавлено в [mergetime]1138951142[/mergetime]
в редакторе свойств предмета (item) вкладка Properties -> Cast Spell -> Unique Power .
rakoth
сеньки dumbo biggrin.gif
Добавлено в [mergetime]1139042269[/mergetime]
мля не компилируется this.gif
пишет invalid declaration type void CreateEvilCircle(oPc)
из-за чего?
Добавлено в [mergetime]1139042452[/mergetime]
мля не компилируется this.gif
пишет invalid declaration type void CreateEvilCircle(oPc)
из-за чего?
-fenix-
rakoth, юзай.

Neverwinter Script Source
void CreateEvilCircle(object oPC)//надо обязательно указывать тип переменной!!!
{
location lLoc = GetLocation(oPC);

CreateObject(OBJECT_TYPE_PLACEABLE, "plc_evilcircle", lLoc);
//+ vizualnij efekt dljapolnogo schastja pardon.gif
DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_EVIL_HELP), oPC));
}


void main()
{
object oPC = GetItemActivator();

AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_GET_LOW, 1.0, 10.0));
DelayCommand(10.0, CreateEvilCircle(oPC));
}
rakoth
спасибо,всё фурычит,но как сделать чтобы пентаграмма изчезала через некоторое время?
-fenix-
Замени вот эту часть.
Neverwinter Script Source
void CreateEvilCircle(object oPC)//надо обязательно указывать тип переменной!!!
{
location lLoc = GetLocation(oPC);
object oOb = CreateObject(OBJECT_TYPE_PLACEABLE, "plc_evilcircle", lLoc);

//+ vizualnij efekt dljapolnogo schastja pardon.gif
DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_EVIL_HELP), oPC));
//10.0 - это через сколько удалить. Ставь сколько нужно
DelayCommand(10.0, DestroyObject(oOb));//удаляем
}

rakoth
благодарствую
mamuc
QUOTE
CreateEvilCircle(oPC)

QUOTE
void CreateEvilCircle(object oPC)


blush.gif ( вах ....как это я опростоволосился biggrin.gif ) звиняюсь dntknw.gif
dumbo
mamuc,
не ты один... blush.gif
QUOTE (dumbo @ Feb 3 2006, 11:14)
void CreateEvilCircle(oPC)

Archangel
Подскажите, как сделать так, чтобы когда игрок стоял на триггере ему наносились повреждения, а после того, как он сойдет с триггера, нанесение повреждений прекращалось?
Dik Morris
2Archangel
Скрипт к сожаления привести не смогу. (времени нема diablo.gif )
Но идея есть.
Попробуй скажем на onEnter вешать скрипт с временным EffectDamage, а на onExit снимать эффект.
(Например RemoveEffect)
PS: в общем думаю идея ясна. wink.gif
Lex
QUOTE (Archangel @ Feb 10 2006, 19:51)
Подскажите, как сделать так, чтобы когда игрок стоял на триггере ему наносились повреждения, а после того, как он сойдет с триггера, нанесение повреждений прекращалось?

есть в базе скриптов. Я когда-то давно писал для Айвана.
Archangel
Подкиньте пожалуйста скриптик для открытия карты всей локации. Заранее спасибо.
Lex
дожили..
Neverwinter Script Source
// Expose the entire map of oArea to oPlayer.
void ExploreAreaForPlayer(object oArea, object oPlayer)
Archangel
Цитата
дожили..

Да я уже сам допер. Просто подходящую функцию найти не мог.
Если надо, то можете удалить мой пост.
Прошу прощения за флуд. Больше такого не повторится, чесно слово... scout.gif
Chess
Приветствую... !
Извините, всю тему не изучил, но сколько успел, таких вопросов небыло:
1. как избавиться от Linken Boy'a, который появляется когда ложишься спать в сингле ?
2. скрипт массового телепорта на определенный WP. Ну к примеру на портал зашли 2 персонажа, один использовал его, и телепортировались вместе...
3. Если есть скрипт, который удоляет все вещи при первом входе в модуль, подчеркну при первом !
Скажем проверка при входе по имени чара...

Пока все.. Еще раз извините если повторился...
Lex
Цитата
3. Если есть скрипт, который удоляет все вещи при первом входе в модуль, подчеркну при первом !

у тебя походу шард. Юзай базу персонажей, а если пока лень заморачиваться, то при входе проверяй, если 0 опыта, все забирай (есть такое в базе) и давай 1 пункт опыта.
Цитата
2. скрипт массового телепорта на определенный WP. Ну к примеру на портал зашли 2 персонажа, один использовал его, и телепортировались вместе...

второй определяется как? все персы в радиусе 15 метров, все партийцы? или все партийцы рядом? Собсна условие переноса определяет то, как это будет написано.
Цитата
1. как избавиться от Linken Boy'a, который появляется когда ложишься спать в сингле ?

ты про полоску?? Если просто и тебе не критично, что видно не будет ничего, то юзай BlackScreen или FadeToBlack в начале и FadeFromBlack в конце отдыха. Будет черный экран просто.
Chess
Нет, шарда у меня нет, и я не про полоску, я про пацана который носится за тобой с факелом !
А массовый телепорт, ну да, к примеру в радиусе 15 м. чтоб все тпкались !
Lex
если не шард, тебе достаточно просто написать удалялку вещей в событии onClientEnter. Ну для достоверности сделать локалку. Те если вошел и локалка = 0, удаляем и локалку ставим = 1. smile.gif

Цитата
я про пацана который носится за тобой с факелом !

Не гамал в хоту, не знаю, но вроде никто НОВЫЙ не появляется, когда ты отдыхаешь..
Цитата
А массовый телепорт, ну да, к примеру в радиусе 15 м. чтоб все тпкались !

зло smile.gif
Neverwinter Script Source
void main()
{
object oWP = GetObjectByTag(GetLocalString(OBJECT_SELF,"TARGET")); // в локальную переменную TARGET портала вписывай через тулсет ТЭГ поинта-назначения
location lCenter = GetLocation(OBJECT_SELF);
object oPC = GetFirstObjectInShape(SHAPE_SPHERE,15.0,lCenter,FALSE,OBJECT_TYPE_CREATURE);
while (GetIsObjectValid(oPC))
    {
    if (GetIsPC(oPC))
        {
        AssignCommand(oPC,ClearAllActions());
        AssignCommand(oPC,JumpToObject(oWP));
        }
    oPC = GetNextObjectInShape(SHAPE_SPHERE,15.0,lCenter,FALSE,OBJECT_TYPE_CREATURE);
    }
}

тока если у тя такие запросы, то явно это шард или мульти-модуль. smile.gif не сингл.
Zirrex
Lex, не знаю, зачем телепортировать именно всех. Гм... Не проще ли сделать проверку именно на игрока, если конечно телепортировать нужно лишь его.

Chess, у меня на шарде работает отличный скрипт телепортации партии. Активировать портал может любой, а перемещается вся партия. Нужен такой?
Lex
Цитата
Lex, не знаю, зачем телепортировать именно всех.

ну что надо было, то и написал. Имхо партию надо и то не всю, а тех, что на этой локе например.
(про игрока - я тока игроков кидаю. А если нужно именно того, кто кликнул, то вообще вопрос отпадает, стандартный скрипт)
Zirrex
Lex, перемещаются только те персонажи, которые на одной локации с тем, кто активирует портал. Причем, перемешает только тех, кто в радиусе портала smile.gif Ну а сам портал произведение искусства.
Lex
надо:
Цитата
А массовый телепорт, ну да, к примеру в радиусе 15 м. чтоб все тпкались !

получилось:
Цитата
перемещаются только те персонажи, которые на одной локации с тем, кто активирует портал. Причем, перемешает только тех, кто в радиусе портала

не понимаю суть комментариев.. unsure.gif
Chess
Lex, шарда у меня нет, поверте я совсем еще нуб, просто очень это уж интересное дело !
А скрипты мне эти нужны для модуля, чтоб по локалке побегать когда совсем делать нечего, короче
что-то типа хобби ! Учусь и отдыхаю в одном флаконе !

Zirrex, знаю твой шард ! Видел этот телепорт ! Приму скрипт с большим удовольствием !
Вообще с твоего шарда взял бы кучу скриптов ! Может можно еще что-нибудь выпросить у тебя ? smile.gif
Илларен
Здраствуйте. Вот задался вопросом, как сделать чтобы когда у NPC hp становилось ниже чем 25-30%, он выполнял какое-либо действие в частности изменял фракцию. Доскажите, как сделать такую проверку?
[MoF]Darth_Nick
проверяеш где-нибудь фракцию
если не такая, какая нужна, то
// ChangeFaction действует только на 2х неписей
// локалками можно к примеру на pc.
береш хп делиш на 3-4 (GetHitDice)
делаеш дамаг (EffectDamage)
Zirrex
Илларен, загрузи "Chapter4.nwm" в редактор, и посмотри скрипты Арибет, когда ты с ней встречаешься второй раз. Если вспомнишь, когда с ней сражаешься, то в последний момент она просит пощады, атака что с твоей стороны, что с ее стороны прерывается. На примере этого скрипта и делай у себя теже действия.
Griffon
Подскажите, где можно найти таверну с выступающими на сцене музыкантами?
-fenix-
Цитата
Подскажите, где можно найти таверну с выступающими на сцене музыкантами?


Ты про ПЛ? Если да, то там кажись хак, который добавляет эту сцену. Посмотри в модуле.
Lex
есть на волте хак такой, там инструменты и несколько людей, на них играющих (На пианино и на арфе. Анимированные плейсы).
maximal_up
Можно из CEP вырезать их. Там инструменты сделаны как оружие и доп предмет(факел, щит и т.п.). Подгоняется под любых людей. А вот пианист только вместе с роялем, плейсовый.
Griffon
Lex, Max,

Спасибо.
Том
В моём модуле - Нашнствие Драконов - так я его назвал, главный персоонаж (женского пола) встречаеться с охотниками на драконов (мужского и женского пола, кол - во 7 человек, эльфы, паладины, нейтральные). К 4 - ым я диалоги уже напсал. К тому времени, как главный герой их встретит, он убьёт уже 4 - ых драконов (Красного, Синего, Золотого и Серебранного) и у каждого заберёт чешую, её надо будет отдать главному Убице на драконов, который даёт квест в начале модуля убить Чёрного дракона. Но у одного из семи охотников на драконов есть чешуя Чёрного дракона. Вопрос как сделать так, что - бы этот охотник в замен на четыре чешуи, дал чешую Чёрного дракона.
AliceDiren
blush.gif Том, я могу быть не права, но, по-моему, тебе с этим вопросом в тему скриптов. А сделать это можно только удалив четыре чешуи из инвентаря игрока и вложив ему туда новую чешуйку.

Функции:
Neverwinter Script Source
// Destroy oObject (irrevocably).
// This will not work on modules and areas.
void DestroyObject(object oDestroy, float fDelay=0.0f)

// Create an item with the template sItemTemplate in oTarget's inventory.
// - nStackSize: This is the stack size of the item to be created
// * Return value: The object that has been created.  On error, this returns
//  OBJECT_INVALID.
// If the item created was merged into an existing stack of similar items,
// the function will return the merged stack object. If the merged stack
// overflowed, the function will return the overflowed stack that was created.
object CreateItemOnObject(string sItemTemplate, object oTarget=OBJECT_SELF, int nStackSize=1)

А чтобы проверить есть ли предмет в инвентаре можно использовать, например вот:
Neverwinter Script Source
int GetHasItem(string sItemTag, object oPC = OBJECT_SELF)
{
return GetIsObjectValid(GetItemPossessedBy(oPC, sItemTag));
}
Том
Большое спасибо!!!
Vitalist
Можно ли сделать так, чтобы нужную мне броню смог надеть любой перс, т. е. без всяких там ограничений на навыки?
Vhall
конкретную броню - нет
Vitalist
Vhall, а, вообще, броню?
Имеется телепорт, который ведет в другую локацию Мне хотелось бы, чтобы им можно было воспользоваться, только поговорив с одним NPC (типа, до диалога он не "используется" - не активен) Как сие сделать?
Aiwan
Цитата(Vitalist @ Сегодня, 16:41) [snapback]71327[/snapback]
Можно ли сделать так, чтобы нужную мне броню смог надеть любой перс, т. е. без всяких там ограничений на навыки?

В принципе можно, но опять же это ковырять 2Да. Посомтри какие шмотки были в ПЛ. Там один плащ "Покровительства Селун" чего стоит. Таскать такую шмотку мона с 40 левела наверное. А в ПЛ может любой даже комманер. И тапорик +4 Ледяной Вампир, тоже... Посмотри свойства, из Айс редактировал. Там просто как магические св-ва добавляешь в предмет и вся цена сбрасывается на 0. Соотвесвенно и левел для использования.

Цитата(Vitalist @ Сегодня, 20:32) [snapback]71350[/snapback]
Имеется телепорт, который ведет в другую локацию Мне хотелось бы, чтобы им можно было воспользоваться, только поговорив с одним NPC (типа, до диалога он не "используется" - не активен) Как сие сделать?


Насмешил smile.gif
Neverwinter Script Source
if(!GetLocalInt(oNpc, "ТИПА_ПОБАЗАРИЛ")) return;
Vhall
2Vitalist

Смотря какие ограничения имеются в виду. Если уровень, то это проще простого - есть такие 2da, как сказал Айв, - iprp_<параметр_вещи>.2da. В каждой из них есть столбец Cost. Он в десятичной вычисляет требуемый уровень вещи (Value смотри не меняй).
Если не уровень, а какой либо фит - смотри baseitems.2da, столбцы ReqFeat#.

Но это относится не к конкретной вещи, а к параметрам (в первом случае) и ее типу (во втором).
Daemonix
Небольшой вопрос. Точнее, два.
1. Наверное, все видели в списке плейсов такой предмет - Круг Призыва. Но если его поставить на мапу, он не виден. В комментариях написано, что для того, чтобы его увидеть, его нужно активировать. Скорее всего, это выполняется с помощью функции EventActivateObject, но я никак не могу настроить эту функцию.. Никак не компилируется. Поясните пожалуйста, кто нибудь, за что отвечает каждый параметр, ибо в хэлпе не написано...

2. Как бы создать такой эффект, чтобы над определённым местом постоянно летали огненные черепушки (в НвН есть такое заклинание)? bad.gif
-fenix-
Цитата
2. Как бы создать такой эффект, чтобы над определённым местом постоянно летали огненные черепушки (в НвН есть такое заклинание)?

Находишь в "Секретные объекты" "труп"(он невидимый) и накладываешь на него EffectVisualEffect(VFX_DUR_MIND_AFFECTING_FEAR).
Цитата
1. Наверное, все видели в списке плейсов такой предмет - Круг Призыва.

Неа, не видел unknw.gif
Daemonix
-fenix-
Извини за наитупейший вопрос, но каким образом можно наложить на предмет такой эффект? На хартбит, что ли?
-fenix-
Цитата
каким образом можно наложить на предмет такой эффект? На хартбит, что ли?

Не на предмет, а на плейс! Можешь вот так на хертбит.
Neverwinter Script Source
void main()
{
if(GetLocalInt(OBJECT_SELF, "fear") !=1)
{
ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectVisualEffect(VFX_DUR_MIND_AFFECTING_FEAR), OBJECT_SELF);
SetLocalInt(OBJECT_SELF, "fear", 1);
}
}

Ну а можешь откуда угодно наложить эффект с помощью
Neverwinter Script Source
ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectVisualEffect(VFX_DUR_MIND_AFFECTING_FEAR), OBJECT_SELF);

Только тогда вместо OBJECT_SELF укажи объект на который накладывается эффект.

А что там с кругом призыва, уже разобрался? Мож ты портал какой так обозвал, я че та не помню такого? unknw.gif
Daemonix
Спасибо большущее.
А круг призыва - это такая бошльшая пентограмма, которую, можно расположить на земле. Расположен в группе "визуальные эффекты".
-fenix-
А..., усе, вспомнил. smile.gif

1)Снимаешь галку "статик".
2)Ставешь первичное состояние "деактивировано".
3) Включаешь/отключаешь анимацию с помощью функции
NSS
// 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)


QUOTE
Скорее всего, это выполняется с помощью функции EventActivateObject, но я никак не могу настроить эту функцию.. Никак не компилируется.

Откуда ты вообще это взял?
Dana
Доброго всем времени суток.
У меня на повестке вопрос. Ситуация: чар набрал опыта для левел апа. Мне надо сделать так, что бы ему больше не давалась экспа, пока он не сделает ап. Что и де мне надо написать?
Заранее спасибо.
Zirrex
Dana, тебе надо в скрипте обработки опыта создать формулу, по которой проверять опыт персонажа. Если он равен следующему уровню, то не давать опыт вообще. Например, персонаж поднялся до 3-го уровня, берем формулу:

((((Уровень + 1) * Уровень) / 2 * 1000) - 1)

и подставляем в нее текущий уровень персонажа. В расчете у нас получится цифра 2999. Далее делаем условие:
NSS
if (GetXP(oPlayer)  > ((((nLevel + 1) * nLevel) / 2 * 1000) - 1))
{
    SetXP(oPlayer, (((nLevel + 1) * nLevel) / 2 * 1000) - 1);
}
Dana
QUOTE(Zirrex @ Mar 5 2006, 03:08) [snapback]71718[/snapback]

Dana, тебе надо в скрипте обработки опыта создать формулу, по которой проверять опыт персонажа.

Спасибо. А где именно написать? на OnDeath мобов? если да, то как быть с другими участниками пати?
Похожий скрипт я видела на Амене smile.gif там кааааак раз Зирекс заправляет ))
Zirrex
Dana, да, именно там. Опыт распределяется по всей партии! У кого опыт выше уровня, те опыт получат, а у кого он равен 2999, то не получат. На Амене выводится сообщение, дескать, вы достигли предела, обратитесь к мастеру тренировки.

З.Ы. Так это я и есть wink3.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Invision Power Board © 2001-2025 Invision Power Services, Inc.