![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#111
|
|
Level 18 ![]() Класс: Страж Тьмы Характер: True Neutral Раса: Человек МАСТЕР D&D ![]() |
Цитата(r1Stranger @ May 15 2007, 19:01) [snapback]108263[/snapback] Может надо было вписывать в имя тэг существа? Именно. |
![]()
Сообщение
#112
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Вот два скрипта, которые делают любого НПС полностью неподвижным (на случай, если нужна статуя, игрушка и т.д.)
Первый ставится на слот OnConversation: Neverwinter Script Source // empty to avoid default behaviour void RemoveEffects(object oObject) { effect eEffect = GetFirstEffect(oObject); while(GetIsEffectValid(eEffect)) { RemoveEffect(oObject, eEffect); eEffect = GetNextEffect(oObject); } } void main() { PlaySound("as_cv_winch1"); /*SetPlotFlag(OBJECT_SELF, FALSE); RemoveEffects(OBJECT_SELF); ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK, 0.5); effect eHold = EffectVisualEffect(VFX_DUR_FREEZE_ANIMATION); ActionDoCommand(ApplyEffectToObject(DURATION_TYPE_PERMANENT, eHold, OBJECT_SELF)); ActionDoCommand(SetPlotFlag(OBJECT_SELF, TRUE));*/ } Второй - на слот OnSpawn: Neverwinter Script Source void main() { effect eHold = EffectVisualEffect(VFX_DUR_FREEZE_ANIMATION); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eHold, OBJECT_SELF); SetLocalInt(OBJECT_SELF, "X1_L_IMMUNE_TO_DISPEL", 10); } Оба взяты из SoU, но прекрасно работают и в НВН2. Наслаждайтесь! (IMG:style_emoticons/kolobok_light/rolleyes.gif) ВАЖНО: Чтобы НПС оставался действительно неподвижным, не забудьте убить все остальные скрипты. Должны остаться только эти два. (IMG:style_emoticons/kolobok_light/smile.gif) Сообщение отредактировал shadowdweller - Jun 26 2007, 12:56 |
![]()
Сообщение
#113
|
|
Level 18 ![]() Класс: Страж Тьмы Характер: True Neutral Раса: Человек МАСТЕР D&D ![]() |
Скриптование вэйпойнтов:
Neverwinter Script Source #include "ginc_wp" void main() { int iCurrentWP = GetCurrentWaypoint(); int iNextWP; switch (iCurrentWP) { case 1: iNextWP = Random(GetNumWaypoints()-1) + 2; SetNextWaypoint(iNextWP); ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS, 1.0, 7.0); break; case 2: SetNextWaypoint(1); ActionPlayAnimation(ANIMATION_LOOPING_GET_LOW, 1.0, 4.0); break; case 3: SetNextWaypoint(1); break; } } Neverwinter Script Source #include "ginc_wp" const int REDIRECTOR_WP = 1; void main() { int iCurrentWP = GetCurrentWaypoint();// where we are int iNextWP; switch (iCurrentWP) { case 1: // Node 1 should be placed off somewhere out of the way. This is where the creatures // will hang out in between reaching the end of the path and starting on a new path. // Creatures will change their appearance in between travels. // 1st param is the list of nodes they may reappear at. Must follow the pattern XX,YY,ZZ... // 2nd param is the length of time to wait before reappearing. StandardRedirectorNode("02,03", 5.0f); break; case 2: // Nodes 2 on up define the network the road walkers travel. They will never return to the node // they just came from. When they reach an end node (typically a door or a route out of the area) // they will be be "redirector node" - typically node 1. // 1st param is the list of nodes they may travel to. Must follow the pattern XX,YY,ZZ... // (end nodes are those with only 1 element in the list) // 2nd param is the redirector WP StandardRoadNetworkNode("03", REDIRECTOR_WP); break; case 3: StandardRoadNetworkNode("02", REDIRECTOR_WP); break; } } Статья. |
![]()
Сообщение
#114
|
|
Epic Level ![]() Класс: Бард Характер: Chaotic Neutral Раса: Животное МАСТЕР Пера ![]() |
В одной из локаций модуля присутствует жаровня. Жаровня - это такая фиговина при нажимании на которую оружие игрока воспламеняется.\
Для действия жаровни был написан скрипт: Neverwinter Script Source void main() { ActionCastSpellAtObject(SPELL_FLAME_WEAPON,GetLast sedBy()); } Однако в работающем скрипте есть недостаток. Воспламенение оружия не прекращается ни через минуту, ни через 2 часа. Что делать? Воспламенение должно длиться 30-40 секунд. |
![]()
Сообщение
#115
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
делать не через магию, а через добавление временного эффекта на предмет.
Что-то типа: Neverwinter Script Source void main() { object oWeapon = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,GetLastUsedBy()); if (!GetIsObjectValid(oWeapon)) return; AddItemProperty(DURATION_TYPE_TEMPORARY,ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_FIRE,IP_CONST_DAMAGEBONUS_1d6),oWeapon,40.0); } насчет работы под НВН2 не знаю, не могу проверить. Но по идее проблем быть не должно. |
![]()
Сообщение
#116
|
|
Epic Level ![]() Класс: Бард Характер: Chaotic Neutral Раса: Животное МАСТЕР Пера ![]() |
ERROR: UNDEFINED IDENTIFIER
|
![]()
Сообщение
#117
|
|
Вечно меняющийся ![]() Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] ![]() |
2 Валеско, я подправил:
Neverwinter Script Source void main() { object oWeapon = GetItemInSlot (INVENTORY_SLOT_RIGHTHAND, GetLastUsedBy()); if (!GetIsObjectValid(oWeapon)) return; AddItemProperty(DURATION_TYPE_TEMPORARY, ItemPropertyDamageBonus (IP_CONST_DAMAGETYPE_FIRE,IP_CONST_DAMAGEBONUS_1d6) ,oWeapon,40.0); } PS: дело было в том, что при абзатце, функции "делились", на несколько частей, соответственно скрипт и не составлялся. Сообщение отредактировал Dik Morris - Jul 15 2007, 13:48 |
![]()
Сообщение
#118
|
|
Level 6 ![]() ![]() Класс: Бледный Мастер Характер: Lawful Good Раса: Эльф ![]() |
Как лучше всего скриптом сделать непися невидимым. В смысле не эффект невидимости, а чтобы непися не было видно в тру сии.
|
![]()
Сообщение
#119
|
|
Вечно меняющийся ![]() Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] ![]() |
2 Drow, эх, жаль NWN-2 на компьютере нет (и не горю желанием ее устанавливать) но думаю, EffectVisualEffect и константа VFX_DUR_CUTSCENE_INVISIBILITY, все-таки остались. Так что попробуй использовать их.
Никакие "штатные" средства (ака трусинг или си-инвиз) этот эффект не берут. |
![]()
Сообщение
#120
|
|
Светлый лорд Корелии ![]() Класс: Тайный Лучник Характер: Lawful Good Раса: Полуэльф NWN: Тестер ![]() |
Ребят а кто нить может помочь со скриптом на сундуки для шарда...
Сундук привязан на акк |
![]()
Сообщение
#121
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Tomb, если ты о генерации лута, то можно почитать статью Игроделу. Правда там пробиты шмотки для 1 Невера...
|
![]()
Сообщение
#122
|
|
Level 18 ![]() Класс: Страж Тьмы Характер: True Neutral Раса: Человек МАСТЕР D&D ![]() |
Рандомный генератор лута - подходит как для модуля, так и для шарда. Правда, он написан на выпадение лута с монстров.
|
![]()
Сообщение
#123
|
|
Светлый лорд Корелии ![]() Класс: Тайный Лучник Характер: Lawful Good Раса: Полуэльф NWN: Тестер ![]() |
Неа я про сундуки чтобы хранить свой шмот....
|
![]()
Сообщение
#124
|
|
Level 9 ![]() ![]() ![]() Класс: Волшебник Характер: Neutral Good Раса: Эльф ![]() |
Ну так ты расскажи как именно хочешь чтобы работала твоя система. Если сундук на каждого игрока свой, привязывай SetLocalObject на нужного oPC, а чтобы после рестарта восстанавливать лежащие в сундуке вещи нужно на попадание в сундук вещи запоминать вещь по тегу (StrRef'у? не знаю точно), привязывая SetLocalString на игрока. Но здесь без БД трудно будет, не знаю, есть уже НВНх для НВН2 или нет...
Да или вот пришло в голову интересное решение - завести отдельный модуль-"хранилище". Который просто SaveGame'ить время от времени. Есть ведь возможность переместить игрока в другой модуль скриптом онлайн? Я честно говоря с этим еще не экспериментировал, но должно работать... |
![]()
Сообщение
#125
|
|
Светлый лорд Корелии ![]() Класс: Тайный Лучник Характер: Lawful Good Раса: Полуэльф NWN: Тестер ![]() |
Насколько я помню Ванес писал скрипт с внешней БД
Она работал так Сундук привязывается к акку шмот по тегу сохраняется во внешней БД Положил шмот нажал на рычаг и счастье |
![]()
Сообщение
#126
|
|
Level 2 ![]() Класс: Рейнджер Характер: Chaotic Good Раса: Человек ![]() |
Люди, помогите чайнику... Я тут где-то напоролся на тему где было упоминание про то как посадить перса на стул, к примеру. Но там было сказано, что скрипты x2_am_sit и еще какой-то, x2_plc_sit кажется, короче они кривые, и их надо дорабатывать. Не могли бы вы мне на пальцах объяснить, что именно с ними надо сделать? и желательно с подробными коменнтариями. А то блин, сделал две табуреточки и пенек, повесил скрипт, помучался, а перс, собака такая, не садится! Стоит около него, на панельке действий висит действие "сесть", и все!!! (IMG:style_emoticons/kolobok_light/vava.gif)
*Ушел в кому* И такой вопрос: а есть скрипт на действие "Лечь"? Чтобы и на пол, и на кровать, допустим... Я просто сейчас делаю маленький тренировочный модуль, в котором будет все включено, но при этом хочу сделать его максимально качественно и реалистично. Стиль, обстановка, нпсы уже готовы, остались эффекты, диалоги, и вот самая больная тема - скрипты... Хелп... (IMG:style_emoticons/kolobok_light/sad.gif) |
![]()
Сообщение
#127
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Сложно что то говорить если человек не понимает. Тебе надо попробовать с азов самому... Скриптинг нужен всем, если ты не рисуешь локации и больше ничего.
Лечь... Ты видел лежащего НПС в игре? |
Guest_NWNmaster_* |
![]()
Сообщение
#128
|
![]() |
BAN ME
Сообщение отредактировал NWNmaster - Aug 26 2011, 04:11 |
![]()
Сообщение
#129
|
|
Level 19 ![]() Класс: Обыватель Характер: True Neutral Раса: Дварф NWN: Контент ![]() |
Конечно можно.
Только если анимация колеса будет предварительно прописана в максе и подготовлена для обращения через скрипт. (IMG:style_emoticons/kolobok_light/biggrin.gif) |
![]()
Сообщение
#130
|
|
Level 18 ![]() Класс: Страж Тьмы Характер: True Neutral Раса: Человек МАСТЕР D&D ![]() |
|
![]()
Сообщение
#131
|
|
Level 2 ![]() Класс: Рейнджер Характер: Chaotic Good Раса: Человек ![]() |
Если бы я знал с чего начинать, то начал бы. А так, никакого руководства под руками нет, чтобы азы какие-нибудь получить... Блин... Нырять то в бездну, не зная что там ох как не хочется...
|
Guest_NWNmaster_* |
![]()
Сообщение
#132
|
![]() |
BAN ME
Сообщение отредактировал NWNmaster - Aug 26 2011, 04:11 |
![]()
Сообщение
#133
|
|
Level 2 ![]() Класс: Рейнджер Характер: Chaotic Good Раса: Человек ![]() |
Цитата Лечь... Ты видел лежащего НПС в игре? Я специально еще раз прошел игру, чтобы убедиться, что глаза меня не обманули, и понял, что лежащий нпс в игре есть. Обычно это спящие орки и багберы, в пещерах. Скрин сделать не успел, потому что они вскакивают, и хотят меня побить. (IMG:style_emoticons/kolobok_light/vava.gif) В редакторе визуальных эффектов обнаружил действие лечь. (LAYDOWN, кажется.) Нпс там берет и реально ложится, правда только на пол, но все равно прогресс. А вот скрипт не нашел. Его реально сделать? Цитата Зачем тебе скрипт если есть анимация смерти и НПС падает на пол. Не катит, мне надо чтобы нпс после того как его растолкают не сваливался с ног как пьяный, а тихо уходил и ложился обратно. Там где лежал. Цитата Если бы я знал с чего начинать, то начал бы. А так, никакого руководства под руками нет, чтобы азы какие-нибудь получить... Блин... Нырять то в бездну, не зная что там ох как не хочется... Беру свои слова обратно, прочитал вики. (IMG:style_emoticons/kolobok_light/prankster2.gif) Нырнул в бездну. Мне кто-нить объяснит, что со скиптом "сесть" делать? (IMG:style_emoticons/kolobok_light/shout.gif) Сообщение отредактировал FreemanD - Aug 16 2007, 10:17 |
![]()
Сообщение
#134
|
|
Epic Level ![]() Класс: Бард Характер: Chaotic Neutral Раса: Животное МАСТЕР Пера ![]() |
Возможно, тут помогут разобраться. Есть скрипт:
Neverwinter Script Source #include "mf_hench" #include "c_animations" void C_GoDown(object oTarget) { float fTiming; fTiming = C_CustomAnimationLength(oTarget, "laydownb"); PlayCustomAnimation(oTarget, "laydownb", 0, 1.0); DelayCommand(fTiming, C_PlayCustomAnimation(oTarget, "proneb", 1, 1.0)); } void main() { object oPoint = GetObjectByTag("WP_RIV_AWAY"); object oBoy = GetObjectByTag("RIV_NPC_YOR"); object oBoy2 = GetObjectByTag("RIV_NPC_DAN"); object oMrin = GetHenchmanByTag("DRW_HEN_MRE01"); effect eEffect = EffectSleep(); if (GetHenchValid("DRW_HEN_MRE01")) { DestroyObject(GetObjectByTag("T_MISC_TAVERN")); int i = 0; object oObject = GetObjectByTag("T_ALCO_SLEEP",i); while (GetIsObjectValid(oObject)) { DestroyObject(oObject); i++; oObject = GetObjectByTag("T_ALCO_SLEEP",i); } } else { int i = 0; object oObject = GetObjectByTag("RIV_NPC_ALR",i); while (GetIsObjectValid(oObject)) { AssignCommand(oObject, ActionDoCommand(ApplyEffectToObject(EFFECT_TYPE_SL EP, eEffect, oObject,99999.0))); C_GoDown(oObject); i++; oObject = GetObjectByTag("RIV_NPC_ALR",i); } } DelayCommand(6.0,SetCutsceneMode(GetFirstPC(),FALS )); AssignCommand(oBoy2, ClearAllActions()); AssignCommand(oBoy, ClearAllActions()); DelayCommand(0.1,AssignCommand(oBoy2, ActionForceMoveToObject(oPoint))); DelayCommand(0.1,AssignCommand(oBoy, ActionForceMoveToObject(oPoint))); DelayCommand(20.0, DestroyObject(oBoy)); DelayCommand(20.0, DestroyObject(oBoy2)); } Помимо всего прочего отвечающий за то, чтобы персы с тегом RIV_NPC_ALR лежали на полу и не двигались. Все бы хорошо, но скрипт этот работает только в пределах одной локации, в то время как "дрова" лежат на другой... Есть варианты, как это можно поправить? |
![]()
Сообщение
#135
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Цитата Возможно, тут помогут разобраться. Есть скрипт: Уходя – уходи! Цитата Я не жалею что потратил столько времени на такое бесперспективное и неблагодарное дело как модульмейкинг на НВН2, но жалею, что потратил его в русском комьюнити. Оскорбив все русское комьюнити, вылив кучу грязи на модмейкеров и скриптеров - просить о помощи???… Вытри слюни и сопли, и будь мужчиной! P.S. Западло такому человеку помогать… За 3 года мог бы хоть кодами NSS научиться пользоваться… |
![]() ![]() |
Текстовая версия | Сейчас: 16th July 2025 - 17:11 |