пасибки,буду химичить
Добавлено в [mergetime]1138949613[/mergetime]
mamuc у меня два вопроса:
1)как сделать Cast Spell - Unique Power
2)при компиляции твоего первого скрипта пишет Error undefined identifier(CreateEvilCircle)
Тоже самое и с DelayCommand(10.0, CreateEvilCircle(oPC))
что это значит?
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 .
сеньки dumbo
Добавлено в [mergetime]1139042269[/mergetime] мля не компилируется
пишет invalid declaration type void CreateEvilCircle(oPc)
из-за чего?
Добавлено в [mergetime]1139042452[/mergetime] мля не компилируется
пишет invalid declaration type void CreateEvilCircle(oPc)
из-за чего?
-fenix-
Feb 4 2006, 11:58
rakoth, юзай.
Neverwinter Script Source |
void CreateEvilCircle(object oPC)//надо обязательно указывать тип переменной!!! { location lLoc = GetLocation(oPC);
CreateObject(OBJECT_TYPE_PLACEABLE, "plc_evilcircle", lLoc); //+ vizualnij efekt dljapolnogo schastja  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)); } |
спасибо,всё фурычит,но как сделать чтобы пентаграмма изчезала через некоторое время?
-fenix-
Feb 4 2006, 16:55
Замени вот эту часть.
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));//удаляем } |
QUOTE |
CreateEvilCircle(oPC)
|
QUOTE |
void CreateEvilCircle(object oPC) |

( вах ....как это я опростоволосился

) звиняюсь
mamuc,
не ты один...

QUOTE (dumbo @ Feb 3 2006, 11:14) |
void CreateEvilCircle(oPC) |
Archangel
Feb 10 2006, 19:51
Подскажите, как сделать так, чтобы когда игрок стоял на триггере ему наносились повреждения, а после того, как он сойдет с триггера, нанесение повреждений прекращалось?
Dik Morris
Feb 10 2006, 20:35
2ArchangelСкрипт к сожаления привести не смогу. (времени нема

)
Но идея есть.
Попробуй скажем на
onEnter вешать скрипт с временным EffectDamage, а на
onExit снимать эффект.
(Например RemoveEffect)
PS: в общем думаю идея ясна.
QUOTE (Archangel @ Feb 10 2006, 19:51) |
Подскажите, как сделать так, чтобы когда игрок стоял на триггере ему наносились повреждения, а после того, как он сойдет с триггера, нанесение повреждений прекращалось? |
есть в базе скриптов. Я когда-то давно писал для Айвана.
Archangel
Feb 13 2006, 11:41
Подкиньте пожалуйста скриптик для открытия карты всей локации. Заранее спасибо.
дожили..
Neverwinter Script Source |
// Expose the entire map of oArea to oPlayer. void ExploreAreaForPlayer(object oArea, object oPlayer) |
Archangel
Feb 13 2006, 13:40
Цитата
дожили..
Да я уже сам допер. Просто подходящую функцию найти не мог.
Если надо, то можете удалить мой пост.
Прошу прощения за флуд. Больше такого не повторится, чесно слово...
Приветствую... !
Извините, всю тему не изучил, но сколько успел, таких вопросов небыло:
1. как избавиться от Linken Boy'a, который появляется когда ложишься спать в сингле ?
2. скрипт массового телепорта на определенный WP. Ну к примеру на портал зашли 2 персонажа, один использовал его, и телепортировались вместе...
3. Если есть скрипт, который удоляет все вещи при первом входе в модуль, подчеркну при первом !
Скажем проверка при входе по имени чара...
Пока все.. Еще раз извините если повторился...
Цитата
3. Если есть скрипт, который удоляет все вещи при первом входе в модуль, подчеркну при первом !
у тебя походу шард. Юзай базу персонажей, а если пока лень заморачиваться, то при входе проверяй, если 0 опыта, все забирай (есть такое в базе) и давай 1 пункт опыта.
Цитата
2. скрипт массового телепорта на определенный WP. Ну к примеру на портал зашли 2 персонажа, один использовал его, и телепортировались вместе...
второй определяется как? все персы в радиусе 15 метров, все партийцы? или все партийцы рядом? Собсна условие переноса определяет то, как это будет написано.
Цитата
1. как избавиться от Linken Boy'a, который появляется когда ложишься спать в сингле ?
ты про полоску?? Если просто и тебе не критично, что видно не будет ничего, то юзай BlackScreen или FadeToBlack в начале и FadeFromBlack в конце отдыха. Будет черный экран просто.
Нет, шарда у меня нет, и я не про полоску, я про пацана который носится за тобой с факелом !
А массовый телепорт, ну да, к примеру в радиусе 15 м. чтоб все тпкались !
если не шард, тебе достаточно просто написать удалялку вещей в событии onClientEnter. Ну для достоверности сделать локалку. Те если вошел и локалка = 0, удаляем и локалку ставим = 1.

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

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); } } |
тока если у тя такие запросы, то явно это шард или мульти-модуль.

не сингл.
Zirrex
Feb 23 2006, 00:30
Lex, не знаю, зачем телепортировать именно всех. Гм... Не проще ли сделать проверку именно на игрока, если конечно телепортировать нужно лишь его.
Chess, у меня на шарде работает отличный скрипт телепортации партии. Активировать портал может любой, а перемещается вся партия. Нужен такой?
Цитата
Lex, не знаю, зачем телепортировать именно всех.
ну что надо было, то и написал. Имхо партию надо и то не всю, а тех, что на этой локе например.
(про игрока - я тока игроков кидаю. А если нужно именно того, кто кликнул, то вообще вопрос отпадает, стандартный скрипт)
Zirrex
Feb 23 2006, 01:28
Lex, перемещаются только те персонажи, которые на одной локации с тем, кто активирует портал. Причем, перемешает только тех, кто в радиусе портала

Ну а сам портал произведение искусства.
надо:
Цитата
А массовый телепорт, ну да, к примеру в радиусе 15 м. чтоб все тпкались !
получилось:
Цитата
перемещаются только те персонажи, которые на одной локации с тем, кто активирует портал. Причем, перемешает только тех, кто в радиусе портала
не понимаю суть комментариев..
Lex, шарда у меня нет, поверте я совсем еще нуб, просто очень это уж интересное дело !
А скрипты мне эти нужны для модуля, чтоб по локалке побегать когда совсем делать нечего, короче
что-то типа хобби ! Учусь и отдыхаю в одном флаконе !
Zirrex, знаю твой шард ! Видел этот телепорт ! Приму скрипт с большим удовольствием !
Вообще с твоего шарда взял бы кучу скриптов ! Может можно еще что-нибудь выпросить у тебя ?
Илларен
Feb 25 2006, 08:43
Здраствуйте. Вот задался вопросом, как сделать чтобы когда у NPC hp становилось ниже чем 25-30%, он выполнял какое-либо действие в частности изменял фракцию. Доскажите, как сделать такую проверку?
[MoF]Darth_Nick
Feb 25 2006, 09:10
проверяеш где-нибудь фракцию
если не такая, какая нужна, то
// ChangeFaction действует только на 2х неписей
// локалками можно к примеру на pc.
береш хп делиш на 3-4 (GetHitDice)
делаеш дамаг (EffectDamage)
Zirrex
Feb 25 2006, 16:25
Илларен, загрузи "Chapter4.nwm" в редактор, и посмотри скрипты Арибет, когда ты с ней встречаешься второй раз. Если вспомнишь, когда с ней сражаешься, то в последний момент она просит пощады, атака что с твоей стороны, что с ее стороны прерывается. На примере этого скрипта и делай у себя теже действия.
Griffon
Feb 26 2006, 10:54
Подскажите, где можно найти таверну с выступающими на сцене музыкантами?
-fenix-
Feb 26 2006, 12:32
Цитата
Подскажите, где можно найти таверну с выступающими на сцене музыкантами?
Ты про ПЛ? Если да, то там кажись хак, который добавляет эту сцену. Посмотри в модуле.
есть на волте хак такой, там инструменты и несколько людей, на них играющих (На пианино и на арфе. Анимированные плейсы).
maximal_up
Feb 26 2006, 14:40
Можно из CEP вырезать их. Там инструменты сделаны как оружие и доп предмет(факел, щит и т.п.). Подгоняется под любых людей. А вот пианист только вместе с роялем, плейсовый.
Griffon
Feb 26 2006, 15:54
Lex, Max,
Спасибо.
В моём модуле - Нашнствие Драконов - так я его назвал, главный персоонаж (женского пола) встречаеться с охотниками на драконов (мужского и женского пола, кол - во 7 человек, эльфы, паладины, нейтральные). К 4 - ым я диалоги уже напсал. К тому времени, как главный герой их встретит, он убьёт уже 4 - ых драконов (Красного, Синего, Золотого и Серебранного) и у каждого заберёт чешую, её надо будет отдать главному Убице на драконов, который даёт квест в начале модуля убить Чёрного дракона. Но у одного из семи охотников на драконов есть чешуя Чёрного дракона. Вопрос как сделать так, что - бы этот охотник в замен на четыре чешуи, дал чешую Чёрного дракона.
AliceDiren
Feb 26 2006, 19:05
Том, я могу быть не права, но, по-моему, тебе с этим вопросом
в тему скриптов. А сделать это можно только удалив четыре чешуи из инвентаря игрока и вложив ему туда новую чешуйку.
Функции:
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
Mar 1 2006, 14:41
Можно ли сделать так, чтобы нужную мне броню смог надеть любой перс, т. е. без всяких там ограничений на навыки?
Vitalist
Mar 1 2006, 18:32
Vhall, а, вообще, броню?
Имеется телепорт, который ведет в другую локацию Мне хотелось бы, чтобы им можно было воспользоваться, только поговорив с одним NPC (типа, до диалога он не "используется" - не активен) Как сие сделать?
Цитата(Vitalist @ Сегодня, 16:41) [snapback]71327[/snapback]
Можно ли сделать так, чтобы нужную мне броню смог надеть любой перс, т. е. без всяких там ограничений на навыки?
В принципе можно, но опять же это ковырять 2Да. Посомтри какие шмотки были в ПЛ. Там один плащ "Покровительства Селун" чего стоит. Таскать такую шмотку мона с 40 левела наверное. А в ПЛ может любой даже комманер. И тапорик +4 Ледяной Вампир, тоже... Посмотри свойства, из Айс редактировал. Там просто как магические св-ва добавляешь в предмет и вся цена сбрасывается на 0. Соотвесвенно и левел для использования.
Цитата(Vitalist @ Сегодня, 20:32) [snapback]71350[/snapback]
Имеется телепорт, который ведет в другую локацию Мне хотелось бы, чтобы им можно было воспользоваться, только поговорив с одним NPC (типа, до диалога он не "используется" - не активен) Как сие сделать?
Насмешил

Neverwinter Script Source |
if(!GetLocalInt(oNpc, "ТИПА_ПОБАЗАРИЛ")) return; |
2Vitalist
Смотря какие ограничения имеются в виду. Если уровень, то это проще простого - есть такие 2da, как сказал Айв, - iprp_<параметр_вещи>.2da. В каждой из них есть столбец Cost. Он в десятичной вычисляет требуемый уровень вещи (Value смотри не меняй).
Если не уровень, а какой либо фит - смотри baseitems.2da, столбцы ReqFeat#.
Но это относится не к конкретной вещи, а к параметрам (в первом случае) и ее типу (во втором).
Daemonix
Mar 3 2006, 23:45
Небольшой вопрос. Точнее, два.
1. Наверное, все видели в списке плейсов такой предмет - Круг Призыва. Но если его поставить на мапу, он не виден. В комментариях написано, что для того, чтобы его увидеть, его нужно активировать. Скорее всего, это выполняется с помощью функции EventActivateObject, но я никак не могу настроить эту функцию.. Никак не компилируется. Поясните пожалуйста, кто нибудь, за что отвечает каждый параметр, ибо в хэлпе не написано...
2. Как бы создать такой эффект, чтобы над определённым местом постоянно летали огненные черепушки (в НвН есть такое заклинание)?
-fenix-
Mar 4 2006, 01:07
Цитата
2. Как бы создать такой эффект, чтобы над определённым местом постоянно летали огненные черепушки (в НвН есть такое заклинание)?
Находишь в "Секретные объекты" "труп"(он невидимый) и накладываешь на него EffectVisualEffect(VFX_DUR_MIND_AFFECTING_FEAR).
Цитата
1. Наверное, все видели в списке плейсов такой предмет - Круг Призыва.
Неа, не видел
Daemonix
Mar 4 2006, 01:28
-fenix-
Извини за наитупейший вопрос, но каким образом можно наложить на предмет такой эффект? На хартбит, что ли?
-fenix-
Mar 4 2006, 02:21
Цитата
каким образом можно наложить на предмет такой эффект? На хартбит, что ли?
Не на предмет, а на плейс! Можешь вот так на хертбит.
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 укажи объект на который накладывается эффект.
А что там с кругом призыва, уже разобрался? Мож ты портал какой так обозвал, я че та не помню такого?
Daemonix
Mar 4 2006, 02:23
Спасибо большущее.
А круг призыва - это такая бошльшая пентограмма, которую, можно расположить на земле. Расположен в группе "визуальные эффекты".
-fenix-
Mar 4 2006, 02:42
А..., усе, вспомнил.

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, тебе надо в скрипте обработки опыта создать формулу, по которой проверять опыт персонажа. Если он равен следующему уровню, то не давать опыт вообще. Например, персонаж поднялся до 3-го уровня, берем формулу:
((((Уровень + 1) * Уровень) / 2 * 1000) - 1)
и подставляем в нее текущий уровень персонажа. В расчете у нас получится цифра 2999. Далее делаем условие:
NSS
if (GetXP(oPlayer) > ((((nLevel + 1) * nLevel) / 2 * 1000) - 1))
{
SetXP(oPlayer, (((nLevel + 1) * nLevel) / 2 * 1000) - 1);
}
QUOTE(Zirrex @ Mar 5 2006, 03:08) [snapback]71718[/snapback]
Dana, тебе надо в скрипте обработки опыта создать формулу, по которой проверять опыт персонажа.
Спасибо. А где именно написать? на OnDeath мобов? если да, то как быть с другими участниками пати?
Похожий скрипт я видела на Амене

там кааааак раз Зирекс заправляет ))
Dana, да, именно там. Опыт распределяется по всей партии! У кого опыт выше уровня, те опыт получат, а у кого он равен 2999, то не получат. На Амене выводится сообщение, дескать, вы достигли предела, обратитесь к мастеру тренировки.
З.Ы. Так это я и есть
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.