![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#2761
|
|
Level 1 Класс: Пьяный Мастер Характер: Chaotic Neutral Раса: Человек ![]() |
gennady
Цитата Такие скрипты нужно ставить на ХБ *опечаленно* На что?.. За ссылку спасибо огромное) azathoth Ыыы! Я вас люблю! ))) У меня таки стояла птичка на Plot, вот почему оно не работало, оказывается ))) Боже мой, счастье есть ))) Цитата onPerception черт его знает как работает при спавне и когда точка старта модуля около монстра Около монстра - это насколько близко? Метров 5 - это близко? shadowdweller Оно не работало из-за птички на Plot )) Сняла - все заработало ))) С триггером попробую, спасибо за помощь ) На потенциального хенчмэна его же можно вешать, да? Zirrex А сколько будет длиться такой эффект? (я так поняла, он нужен, чтобы нпс на глазах игрока не пикировал на пол умирающим лебедем, да?) |
![]()
Сообщение
#2762
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
С триггером попробую, спасибо за помощь ) На потенциального хенчмэна его же можно вешать, да? Да. Только триггер вешается не на хенчмена, а на земле рисуется. (IMG:style_emoticons/kolobok_light/smile.gif) А скрипт ставится на OnEnter в свойствах. |
![]()
Сообщение
#2763
|
|
Level 1 Класс: Пьяный Мастер Характер: Chaotic Neutral Раса: Человек ![]() |
Цитата Только триггер вешается не на хенчмена, а на земле рисуется *умиленно* Ну не болван ли я ))) |
![]()
Сообщение
#2764
|
|
Level 5 ![]() ![]() Класс: Тайный Лучник Характер: Chaotic Good Раса: Эльф ![]() |
Кто-нибудь пробовал делат скриптами предметы с аурой? Например, я года полтора назад делал плащик, который давал всем союзникам вокруг в радиусе 10 футов 10% magic resistance + визуальные эффекты. Получилось, только скрипт был очень громоздким и корявым, потому как практически идентичные строчки повторялись много раз. Можно ли с помощью циклов осуществить то же самое?
|
![]()
Сообщение
#2765
|
|
Level 4 ![]() Класс: Обыватель Характер: True Neutral Раса: Человек NWN2: Маппинг ![]() |
Мне пришел в голову вот такой вариант:
скрипт вешается на ХБ игрока ("default") и работает при надетом на персонаже плаще с тегом "auracloak": Neverwinter Script Source void main() { if (GetTag(GetItemInSlot(INVENTORY_SLOT_CLOAK))=="auracloak") { float fRadius = 10.0; object oFriend = GetFirstObjectInShape(SHAPE_SPHERE, fRadius, GetLocation(OBJECT_SELF)); while (GetIsObjectValid(oFriend)) { if (GetIsFriend(oFriend) && oFriend!=OBJECT_SELF) { effect eSpell = EffectDamageImmunityIncrease(DAMAGE_TYPE_MAGICAL, 10); effect eVisual = EffectVisualEffect(VFX_COM_HIT_DIVINE); effect eEffect = EffectLinkEffects(eVisual, eSpell); if (GetLocalInt(oFriend, "auracloak_affected")) ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSpell, oFriend, 6.0); else ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oFriend, 6.0); DelayCommand(4.0, SetLocalInt(oFriend, "auracloak_affected", 1)); DelayCommand(8.0, SetLocalInt(oFriend, "auracloak_affected", 0)); } oFriend = GetNextObjectInShape(SHAPE_SPHERE, fRadius, GetLocation(OBJECT_SELF)); } } } Если визуальный эффект должен висеть постоянно, а не применяться 1 раз, то скрипт будет еще проще: Neverwinter Script Source void main() { if (GetTag(GetItemInSlot(INVENTORY_SLOT_CLOAK))=="auracloak") { float fRadius = 10.0; object oFriend = GetFirstObjectInShape(SHAPE_SPHERE, fRadius, GetLocation(OBJECT_SELF)); while (GetIsObjectValid(oFriend)) { if (GetIsFriend(oFriend) && oFriend!=OBJECT_SELF) { effect eSpell = EffectDamageImmunityIncrease(DAMAGE_TYPE_MAGICAL, 10); effect eVisual = EffectVisualEffect(VFX_DUR_BLUR); effect eEffect = EffectLinkEffects(eVisual, eSpell); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oFriend, 6.0); } oFriend = GetNextObjectInShape(SHAPE_SPHERE, fRadius, GetLocation(OBJECT_SELF)); } } } Если нужно применять эффект ауры на самого игрока, то лучше это делать отдельно в событиях OnItemEquip/Unequip. |
![]()
Сообщение
#2766
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
я бы подругому сделал:
1. прописал кастомную ауру в 2дашке с нужными настроками (радиус, размер, имя скрипта onEnter, onExit) 2. В скрипте onEnter вешал бы нужные эффекты (проверяя, что входящий объект находится в партии игрока) 3. В скрипте onExit снимал бы эффект 4. Сам эффект ауры вешал бы на Equip. |
![]()
Сообщение
#2767
|
|
Level 1 Класс: Обыватель Характер: Neutral Good Раса: Человек ![]() |
я бы подругому сделал: 1. прописал кастомную ауру в 2дашке с нужными настроками (радиус, размер, имя скрипта onEnter, onExit) 2. В скрипте onEnter вешал бы нужные эффекты (проверяя, что входящий объект находится в партии игрока) 3. В скрипте onExit снимал бы эффект 4. Сам эффект ауры вешал бы на Equip. Разве эфект (визуальный) данный через Еквип слот модуля не исчезает при переходи в другую локацию? |
![]()
Сообщение
#2768
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Кстати да, спасибо что напомнили.
исчезает. Причем я уже не помню, только ли визуальный эффект слетает (IMG:style_emoticons/kolobok_light/smile.gif) Если только - не страшно, если аура сама - надо обновлять. Соотв. еще 1 маленький скриптик default. зы: а через что данный эффект - не важно. У меня слетали эффекты от применения спец. способностей, там завязки на эквип не было. |
![]()
Сообщение
#2769
|
|
Level 5 ![]() ![]() Класс: Тайный Лучник Характер: Chaotic Good Раса: Эльф ![]() |
я бы подругому сделал: 1. прописал кастомную ауру в 2дашке с нужными настроками (радиус, размер, имя скрипта onEnter, onExit) Проблема в том, что я не умел работать с 2da файлами (и сейчас не умею). (IMG:style_emoticons/kolobok_light/smile.gif) |
![]()
Сообщение
#2770
|
|
Level 1 Класс: Обыватель Характер: Neutral Good Раса: Человек ![]() |
Раскопал в x2_s0_cldbewld.nss (это спелл Cloud of Bewilderment), что для вызова тумана, там используется эфект VFX_IMP_DUST_EXPLOSION, который, как раз мне и был нужен.Теперь вопрос: Почему, в моём скрипте, этот визуальный эфект виден не, как поднимающийся туман, а как обычный раскат пыли по земле.Меня даже этот вариант более устраивает, т.к. выглядит реалистично, но вот узнать ответ на этот вопрос очень хочется. Сразу оговорюсь, что значения "длительности" эфекта я менял, результат - без изменений.
Neverwinter Script Source //:://////////////////////////////////////////////
//:: Created By: Taiko //:: Created On: 14.09.2007 //::////////////////////////////////////////////// void main() { //Объекты object oItem = GetItemActivated(); //предмет, который активировали object oPC = GetFirstPC(); //первый игрок в списке //Локации location lLoc = GetItemActivatedTargetLocation(); //точка-цель, активированного предмета location lPC_Loc = GetLocation(oPC); //точка на которой игрок стоит //Эфекты effect eFlyOut = EffectDisappearAppear(lLoc, 1); //игрок взлетает, чтобы приземлиться в lLoc effect eSmock = EffectVisualEffect(VFX_IMP_DUST_EXPLOSION); //визиуальный эфект "тумана" if (GetResRef(oItem)=="vn_drag_fly000") //если активирован нужный предмет { ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eFlyOut, oPC, 5.0); //игрок взлетает и приземляется в указанном месте через 5 секунд DelayCommand(1.2, ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSmock, lPC_Loc, 5.0)); //эфект взлета DelayCommand(6.5, ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSmock, lLoc, 5.0)); //эфект приземления } }
Причины изменения: На будущее сразу пишите нормально. Это не так трудно, как может показаться. (кнопочка редактирования постов появится после 10 постов на форуме). Lex
|
![]()
Сообщение
#2771
|
|
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
Rowan, чтобы НПС не "пикировал" на точку появления, необходимо у функции:
Neverwinter Script Source bject CreateObject(int nObjectType, string sTemplate, location lLocation, int bUseAppearAnimation=FALSE, string sNewTag="") не использовать опцию "bUseAppearAnimation". Тогда все НПС или монстры будут появляться сразу же на локации, а не "припархивать" (IMG:style_emoticons/kolobok_light/smile.gif) Эффект же нужен для того, чтобы НПС успел сделать то, что ты от него хочешь. И при этом игрок не видел, что НПС упал или сел на стул после создания. Сообщение отредактировал Zirrex - Sep 16 2007, 20:30 |
![]()
Сообщение
#2772
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
(IMG:style_emoticons/kolobok_light/rolleyes.gif) Можно ли при выполнении сего скрипта НПС сидели на пятых точках. Такой скрипт стоит у нпс, но из-за размещенного ниже скрипта они подымаются и начинают беседу.
Neverwinter Script Source //::///////////////////////////////////////////////
//:: Name lm_2speakers //:: Copyright © 2004 -=WRG!=- //::////////////////////////////////////////////// /* скрипт разговора 2-х НПС. Шаблон. */ //::////////////////////////////////////////////// //:: Created By: Lex //:: Created On: Agust 2004 //::////////////////////////////////////////////// void ANIMATION(object oD) /// Рандомная анимация во время разговора. настраивайте сами. { int A=0; float T,S; switch (Random(8)+1) { case 2: A=ANIMATION_FIREFORGET_PAUSE_SCRATCH_HEAD;T=3.0;S=1.0;break; case 3: A=ANIMATION_FIREFORGET_TAUNT;T=3.0;S=1.0;break; case 4: A=ANIMATION_FIREFORGET_PAUSE_BORED;S=1.0;break; case 5: A=ANIMATION_LOOPING_LISTEN;T=5.0;S=1.0;break; case 6: A=ANIMATION_LOOPING_LISTEN;T=5.0;S=1.0;break; } if (A==0) return; AssignCommand(oD,PlayAnimation(A,S,T)); } void DIALOG(object oD1,object oD2) { string s1="",s2=""; string ya = GetName(GetObjectByTag("ya")); // "+ya+" switch (Random(30)) { case 0: s1="Как дела, друг?";s2="Да идут по маленьку..";break; case 1: s1="И как она? Симпатична"+ya+"?";s2="А как же! Ты мен"+ya+" обижаешь!";break; /// и так далее 20 фраз типа вопрос-выссказывание и ответ на это дело } AssignCommand(oD1,SpeakString(s1)); /// первый НПС говорит фразу AssignCommand(oD2,DelayCommand(5.0,SpeakString(s2))); /// второй отвечает } void main() { object oPC = GetFirstPC(); if (GetArea(oPC)!=GetArea(OBJECT_SELF)) return; // если нет игрока, то молчим object oD1 = GetNearestObjectByTag("SPEAKING_NPC_1"); // первый НПС object oD2 = GetNearestObjectByTag("SPEAKING_NPC_1"); // второй НПС if (GetIsInCombat(oD1)) return; // если первый НПС дерется то молчим if (GetIsInCombat(oD2)) return; // если второй НПС дерется то молчим if ( (IsInConversation(oD1)) || (IsInConversation(oD2)) ) return; /// если один из НПС разговаривает с игроком if (GetDistanceToObject(oPC)>10.0) return; // если игрок далеко (больше 10 футов) то он как будто ничего не слышит. AssignCommand(oD1,SetFacingPoint(GetPosit ion(oD2))); // повернуться навтречу друг другу AssignCommand(oD2,SetFacingPoint(GetPosition(oD1)) ; DIALOG(oD1,oD2); ANIMATION(oD1); ANIMATION(oD2); } |
![]()
Сообщение
#2773
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
убрать анимацию, тогда подыматься не будут.
|
![]()
Сообщение
#2774
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
А как добавить свою озвучку? К диалогам? И как ее потом в этот скрипт запихнуть?.. э... сорри за такой, может, широкий вопрос... (IMG:style_emoticons/kolobok_light/vava.gif)
|
![]()
Сообщение
#2775
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
свою озвучку это в Контент (если по простому - музыка + 2дашка, там вроде бы просто, но я не делал никогда).
А в скрипт ее через PlaySound |
![]()
Сообщение
#2776
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
Хм... а это не заткнет фоновую музыку? (IMG:style_emoticons/kolobok_light/rolleyes.gif)
П.С. Можно ли каки-либо способом управлять цветом/количеством тумана? Дождем/молниями? С помощью скриптов, естественно... Хотелось бы написать скрипт с несколькими видами погоды, а потом, чтобы они воспроизводились в случайном порядке и на какое-то время... (IMG:style_emoticons/kolobok_light/declare.gif) Сообщение отредактировал Белатрис - Sep 27 2007, 10:17 |
![]()
Сообщение
#2777
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
а это не заткнет фоновую музыку? смотря как настроишь. П.С. Можно ли каки-либо способом управлять цветом/количеством тумана? Дождем/молниями? С помощью скриптов, естественно... Хотелось бы написать скрипт с несколькими видами погоды, а потом, чтобы они воспроизводились в случайном порядке и на какое-то время... скриптами можно. Все функции есть. (для тумана ищи по Fog, для погоды по weather) |
![]()
Сообщение
#2778
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
Хм... ну нашел... правда не очень помогло. Собственно, как объявить этот тумаН? Тут, нечто сложное... А цвет задавать в RGB(и, кстати, как, просто "=" )?
Заранее спасибо. (IMG:style_emoticons/kolobok_light/unsure.gif) |
![]()
Сообщение
#2779
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
есть контснты цвета, а дальше.. дома посмотрю библу для тумана, у меня есть, там вроде не совсем РГБ, а что-то хитрое.
|
![]()
Сообщение
#2780
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
Ждем-с...
П.С. А как проверить наличие определенного кол-ва золота? П.С. Где-то встречал такой вопрос, но ответ на него не помню... Как с помощью скриптов повысить силу/ловкость/ и т.д.? Заранее спасибо =) |
![]()
Сообщение
#2781
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
П.С. А как проверить наличие определенного кол-ва золота? фе, батенька, такие вещи впору уже самому знать. функция GetGold или что-то похожее. Поиск в фильтре функций по слову "gold" поможет. Как с помощью скриптов повысить силу/ловкость/ и т.д.? тоже баян. 2 способа: - эффектами. EffectAbilityIncrease (в правильности написания не слова "абилити" уверен). Наложение эффекта - ApplyEffectToObject - шкуркой. Создание в палитре шкурки (на нивидимый "животный" слот), одевание ее на игрока в начале модуля и добавление на нее свойств по мере необходимости. AddItemProperty - наложение свойства, а задачу самого свойства я не помню, поищи по "Property". |
![]()
Сообщение
#2782
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
Neverwinter Script Source фе, батенька, такие вещи впору уже самому знать. функция GetGold или что-то похожее. Поиск в фильтре функций по слову "gold" поможет. Ну, дать одно - проверить наличие... немного другое. МОжет, все же напишешь? Плз =) П.С. Вот у меня такая штука завелась... млин... в общем, в инвентаре волка есть когти, шкура и что-нибудь еще. Если, к примеру, переменная i равна нулю, а остальные(зависит от чего-то в инвентаре) 1, то шкурки в инвентаре не видно... О, в голову пришла идея... А что, если на onDeath поставить проверку. Типа, если переменная i равна нулю, то дестроить боъект?... гы... (IMG:style_emoticons/kolobok_light/crazy.gif) Сообщение отредактировал Белатрис - Sep 28 2007, 12:06 |
![]()
Сообщение
#2783
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Ну, дать одно - проверить наличие... немного другое. МОжет, все же напишешь? Плз =) Пжалуйста: Neverwinter Script Source void main() { object oPC = GetFirstPC(); int iGold = GetGold(oPC); effect eSTR = EffectAbilityIncrease(ABILITY_STRENGTH, 1); // Проверить золото if(iGold > 100) {/*Что делаем... */} // Накладываем эффекты ApplyEffectToObject(DURATION_TYPE_PERMANENT, eSTR, oPC); // или чтобы не снималсЯ ApplyEffectToObject(DURATION_TYPE_PERMANENT, SupernaturalEffect(eSTR), oPC); } |
![]()
Сообщение
#2784
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Ну, дать одно - проверить наличие... немного другое. МОжет, все же напишешь? Плз =) я ж тебе выше написал, функция GetGold П.С. Вот у меня такая штука завелась... млин... в общем, в инвентаре волка есть когти, шкура и что-нибудь еще. Если, к примеру, переменная i равна нулю, а остальные(зависит от чего-то в инвентаре) 1, то шкурки в инвентаре не видно... О, в голову пришла идея... А что, если на onDeath поставить проверку. Типа, если переменная i равна нулю, то дестроить боъект?... гы... crazy.gif проще на смерть волка определять что нужно и это создавать. |
![]()
Сообщение
#2785
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
gennady, спасибо! Огромное!
Цитата проще на смерть волка определять что нужно и это создавать. Спасибо, но я уже сделал. (IMG:style_emoticons/kolobok_light/rolleyes.gif) А вот еще вопрос. Я сколько не шарил в базе - не нашел. Я бы хотел сделать рассписание НПС. Что он будет делать, допустим, в два - пойдет к костру и будет сидеть до следующего действия... Но вот как это осуществить не представляю... |
![]() ![]() |
Текстовая версия | Сейчас: 30th April 2025 - 08:35 |