![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]() ![]()
Сообщение
#2686
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Neutral Good Раса: Человек ![]() |
Я тут набрел на прикольный модуль, (так мне кажется) "Eye of the Beholder", но скачать боюсь.
Кто-нибудь знает, идет этот модуль и его дополнение на пиратский диск? |
![]()
Сообщение
#2687
|
|
Вечно меняющийся ![]() Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] ![]() |
Нет, я лично не видел.
|
![]()
Сообщение
#2688
|
|
Level 1 Класс: Страж Тьмы Характер: Chaotic Evil Раса: Гном ![]() |
Помогите плиз написать простинький скрипт на респаун NPS пи их смерти
и подскажите плиз почему не работает скрипт уборщика все зделал как написано , а в игре пишет : Ошибка скрипта, слишком много инструкций (IMG:style_emoticons/kolobok_light/shout.gif) |
![]()
Сообщение
#2689
|
|
Вечно меняющийся ![]() Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] ![]() |
|
![]()
Сообщение
#2690
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Lawful Neutral Раса: Человек ![]() |
QUOTE подскажите плиз почему не работает скрипт уборщика все зделал как написано , а в игре пишет : Ошибка скрипта, слишком много инструкций В скрипте лишняя строка ClearAllActions(); Вцелом скрипт выгледит так CODE void main()
{ object oItem = GetFirstObjectInArea(GetArea(OBJECT_SELF)); while (GetIsObjectValid(oItem) == TRUE) { if (GetObjectType(oItem) == OBJECT_TYPE_ITEM) { ActionPickUpItem(oItem); } oItem = GetNextObjectInArea(GetArea(OBJECT_SELF)); } } |
![]()
Сообщение
#2691
|
|
Вечно меняющийся ![]() Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] ![]() |
Milfes, желательно включить в скрипт проверку на диалог + сначала подойти к предмету, а потом уже подбирать, и чистить акции, NPC ведь может быть занят.
NSS void main()
{ object oItem = GetFirstObjectInArea(GetArea(OBJECT_SELF)); if (IsInConversation(OBJECT_SELF)) return; while (GetIsObjectValid(oItem) == TRUE) { if (GetObjectType(oItem) == OBJECT_TYPE_ITEM) { ClearAllActions(); ActionMoveToObject(oItem); ActionPickUpItem(oItem); } oItem = GetNextObjectInArea(GetArea(OBJECT_SELF)); } } |
![]()
Сообщение
#2692
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Lawful Neutral Раса: Человек ![]() |
QUOTE желательно включить в скрипт проверку на диалог + сначала подойти к предмету, а потом уже подбирать, и чистить акции, NPC ведь может быть занят Dik Morris, с этим я согласен, но есть не большая проблемка! Так как это действие происходит раз в 6 секунд, может возникнуть проблема если NPS находиться в движение! Он просто пройдёт мимо. Есть идеи, как это исправаить? |
![]()
Сообщение
#2693
|
|
Mystery ![]() Класс: Маг Характер: Lawful Evil Раса: Тварь NWN: Контент Амен ![]() |
QUOTE(Артём @ Jul 10 2006, 19:03) [snapback]87503[/snapback] Я тут набрел на прикольный модуль, (так мне кажется) "Eye of the Beholder", но скачать боюсь. Это - полный аналог оригинального Eye of the Beholder. QUOTE(Артём @ Jul 10 2006, 19:03) [snapback]87503[/snapback] Кто-нибудь знает, идет этот модуль и его дополнение на пиратский диск? Нет. |
![]()
Сообщение
#2694
|
|
Level 5 ![]() ![]() Класс: Убийца Характер: Chaotic Neutral Раса: Полуэльф ![]() |
У меня лексикон перевод leх'а,но там нет про флаги.Качал его весной, может разбирали где про это?Киньте ссылку,плс!
|
![]()
Сообщение
#2695
|
|
Вечно меняющийся ![]() Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] ![]() |
Milfes, например с помощью локальных переменных, еще М/Б GetCurrentAction подойдет.
Noah, про какие флаги ? М/б NW_FLAG_* ? Если да: QUOTE Used to cause events to fire various numeric signals to OnUserDefined and set other attributes of a creature during the OnSpawn script using SetSpawnInCondition. The OnUserDefined event can thus be used to customize the behavior of an object without actually modifying the default behavior. PS: Перевод Lex'a ? Первый раз слышу. Сообщение отредактировал Dik Morris - Jul 11 2006, 18:06 |
![]()
Сообщение
#2696
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
QUOTE(Dik Morris @ Jul 11 2006, 18:59) [snapback]87598[/snapback] PS: Перевод Lex'a ? Первый раз слышу. я тоже. о каких флагах речь? если те, что в спавне ставятся типа *_FLAG_*, то они все там в коментах и описаны. + почитай в топике..Готовые скрипты или Скрипты для хенчей, там есть Айвановские варианты спавна с русскими комментариями. |
![]()
Сообщение
#2697
|
|
Level 5 ![]() ![]() Класс: Убийца Характер: Chaotic Neutral Раса: Полуэльф ![]() |
Да?А я где-то читал,что он твой...Спасиб,за подсказку(о флагах)
|
![]()
Сообщение
#2698
|
|
Level 2 ![]() Класс: Волшебник Характер: Neutral Good Раса: Эльф ![]() |
я ДИКО извеняюсь, но у меня вопрос как можно чтобы после разговора существо ушло к двери и изчезло?
|
![]()
Сообщение
#2699
|
|
Level 4 ![]() ![]() Класс: Маг Характер: Chaotic Neutral Раса: Танар'ри ![]() |
Симирель, здесь на форуме, в теме "Скрипты для новичков" есть скрипт с уходом Nps на WP(где он и дестроится), сам WP_EXSIT можно где угодно поставить. У меня, с помощью этого скрипта одно чудо даже в озере утопилось.
|
![]()
Сообщение
#2700
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Lawful Neutral Раса: Человек ![]() |
Подскажите, как сделать что бы фонарь включался в 20 и выключался в 8 часов?
И ещё кто-нибудь знает скрипт, что бы если ты берёш что-то из контейнера, а рядом стоит NPC, то он к тебе подбегал и что-то говорил? |
![]()
Сообщение
#2701
|
|
Вечно меняющийся ![]() Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] ![]() |
На OnHeartBeat фонаря:
NSS void RemoveEffectType(object oTarger, int nEffect) { effect eEffect = GetFirstEffect(oTarger); while (GetIsEffectValid(eEffect)) { if (GetEffectType(eEffect) == nEffect) { RemoveEffect(oTarger, eEffect); } eEffect = GetNextEffect(oTarger); }} void main() { if (GetArea(GetFirstPC()) != GetArea(OBJECT_SELF)) return; if (GetTimeHour() == 8 && GetLocalInt(OBJECT_SELF, "Day") == FALSE) { SetLocalInt(OBJECT_SELF, "Day", TRUE); SetLocalInt(OBJECT_SELF, "Night", FALSE); ActionPlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE); RemoveEffectType(OBJECT_SELF, EFFECT_TYPE_VISUALEFFECT); return; } if (GetTimeHour() == 20 && GetLocalInt(OBJECT_SELF, "Night") == FALSE) { SetLocalInt(OBJECT_SELF, "Night", TRUE); SetLocalInt(OBJECT_SELF, "Day", FALSE); effect eLight = EffectVisualEffect(170); ActionPlayAnimation(ANIMATION_PLACEABLE_ACTIVATE); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLight, OBJECT_SELF); return; } // Вообще, проще использовать: GetDay, GetNight. } По поводу второго вопроса, посмотри в ПЛ там это было реализовано. (IMG:style_emoticons/kolobok_light/wink3.gif) Сообщение отредактировал Dik Morris - Jul 12 2006, 13:02 |
![]()
Сообщение
#2702
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Lawful Neutral Раса: Человек ![]() |
Где-то в скрипте ошибка, фонари горят круглосуточно.
|
![]()
Сообщение
#2703
|
|
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
Milfes, у меня есть подобная система проверки. Сам делал. Вообще, чтобы проверить, что будет делать НПС, когда ты возьмешь вещь из сундука, достаточно изменить поле фракции у сундука на фракцию НПС. По умолчанию, как это прописано в скрипте "nw_o2_coninclude", функция "ShoutDisturbed", НПС лишь нападает на того, кто взял вещь из сундука. Посмотри данную функцию. При небольшой сноровке в скриптах, ее легко можно изменить, чтобы НПС не бил вора, а говорил с ним.
В моей системе НПС подбегает к вору, и предлагает ему выбор: заплатить штраф, пойти в тюрьму или сразиться. В диалоге есть проверка умений блеф и убеждение. Если НПС их проваливает, то вор уходит с вещью, а если наоборот, то НПС забирает у вора вещь и сажает его в тюрьму (IMG:style_emoticons/kolobok_light/smile.gif) Dik Morris, а зачем на фонарь эффект вешать? (IMG:style_emoticons/kolobok_light/smile.gif) Есть же функция "SetPlaceableIllumination". Когда ночь, ее надо делать: NSS SetPlaceableIllumination(oLight, TRUE); А когда день: NSS SetPlaceableIllumination(oLight, FALSE); Далее, не надо использовать "ActionPlayAnimation". Фонари же стоят, и вообще ничего не делают (IMG:style_emoticons/kolobok_light/smile.gif) Зачем им действие? Достаточно, когда ночь: NSS AssignCommand(OBJECT_SELF, PlayAnimation(ANIMATION_PLACEABLE_ACTIVATE)); А когда день: NSS AssignCommand(OBJECT_SELF, PlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE)); Вообще, есть очень хороший скрипт, правда, изначально необходимо изменить под скрипт тэги фонарей, чтобы он мог их обрабатывать. Если интересно, могу добавить в базу скриптов. Скрипт старый, но работает хорошо. Также он вешается не на хартбит фонаря, упаси боже, а на хартбит локации. Сообщение отредактировал Zirrex - Jul 12 2006, 13:42 |
![]()
Сообщение
#2704
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Lawful Neutral Раса: Человек ![]() |
QUOTE В моей системе НПС подбегает к вору, и предлагает ему выбор: заплатить штраф, пойти в тюрьму или сразиться. В диалоге есть проверка умений блеф и убеждение. Если НПС их проваливает, то вор уходит с вещью, а если наоборот, то НПС забирает у вора вещь и сажает его в тюрьму Zirrex, хорошо придумал! Может быть воспользуюсь чем-нибудь в этом роде. Но интересно после того как тебя сажают в тюрьму ты оттуда просто сбегаешь или просто проходит несколько игровых часов и тебя отпускают? |
![]()
Сообщение
#2705
|
|
![]() Класс: Пьяный Мастер Характер: Lawful Good Раса: Тварь MySQL, PHP, JavaScript Порядок Времени ![]() |
Dik Morris, жжошь (IMG:style_emoticons/kolobok_light/biggrin.gif) ставишь порядка 30-40 фонарей и лока на средней машинке начинает тормозить (IMG:style_emoticons/kolobok_light/wink3.gif)
нах на каждый фонарь такое вешать? 1 объект, который пробежицца по всем объектам с заданными тегами и выполнит нужные действия гораздо эффективнее |
![]()
Сообщение
#2706
|
|
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
Milfes, учитывая то, что есть еще система репутации, то вор в тюрьме сидит ровно столько, сколько у него значение репутации. Т.е., каждые, например, 6 секунд, у него репутация поднимается на 5 единиц (можно меньше; зависит от того, как настроишь). Когда репутация становится равной нулю, то вора перемещает на свободу в одну точку. На самом деле это не очень реалистично, в будущем переделаю, чтобы вора перемещало напротив камеры, в которой он сидел.
|
![]()
Сообщение
#2707
|
|
Level 2 ![]() Класс: Волшебник Характер: Neutral Good Раса: Эльф ![]() |
Люди, просто не могу прочитать 100страниц,блин.
Прошу, может знает кто как сделать так, что 1.когда герой дергает за рычаг, или хотя бы дотронулся до предмета его шарахнуло молнией и перенесло в другое место? 2.После разговора существо изчезает с каким нибудь финтом(диспелс итд.) 3.Существо после разговора раздвоивается и нападает? Если сможете, то подскажите плииииз, только с обьяснением если можно... |
![]()
Сообщение
#2708
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Lawful Neutral Раса: Человек ![]() |
QUOTE Вообще, есть очень хороший скрипт, правда, изначально необходимо изменить под скрипт тэги фонарей, чтобы он мог их обрабатывать. Если интересно, могу добавить в базу скриптов. Скрипт старый, но работает хорошо. Также он вешается не на хартбит фонаря, упаси боже, а на хартбит локации. Zirrex, если не трудно помети в базу скриптов, а то никак неполучается с фонарями. (IMG:style_emoticons/kolobok_light/unknw.gif) |
![]()
Сообщение
#2709
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Создаешь в палитре два объекта фонаря. Убираешь в свйствах "статик". У одного делаешь без анимации и света модель. Второй нормально. На каждый объект вешаешь стринг "NEW_ResRef" ResRefa объекта другого. Напримере у горящего будет таг PLC_ON и на нем будет стинг NEW_ResRef - PLC_OFF который создается на его месте. Все варианты включать-выключать не канают. Работает не всегда верно. Этот вариант пашет круто и проверен сто раз. Звук обычно должен БЫТ ЬУНИКАЛЬНЫЙ КАЖДЫЙ. Соотвественно что бы не ошибиться я приравниваю его к тегу локации и добавляю номер порядковый. Ошибешься на один номер остальные не будут включаться.
NSS //::////////////////////////////////////////////// //:: OnEnter am_exe_torch_del //:: Copyright © 2005 WRG! //::////////////////////////////////////////////// /* ВКЛЮЧАЕМ ОГОНЬ ФАКЕЛОВ И ЗВУК К НИМ НОЧЬЮ. Таг факела = "AM_PLS_TORCH_OFF". Он должен быть с в палитре с моделью факела без амбиент анимации. Именно его и надо расставить в локации. Иначе будет свет от факела гореть над ним. Его ResRef "am_pls_torchoff" Таг горящего факела = "AM_PLS_TORCH_ON" ResRef "am_pls_torchon" Звуковой объект ставим рядом с факелом, помните его таг ДОЛЖЕН БЫТЬ УНИКАЛЬНЫМ ВО ВСЕМ МОДУЛЕ. Иначе не сработает. К примеру таг моего звука, равен тагу триггера плюс порядковый номер, начиная с еденицы: AM_SOUND_TORTCH_(порядковый номер = i). Расставляйте на локации факела и звуки рядом. "NEW_ResRef" Локальный стринг ResRef-а объекта, который создаем на месте этого. Все готово! */ //::////////////////////////////////////////////// //:: Created By: Aiwan //:: Created On: 08.06.2005 //::///////////////////////////////////////////// void main() { int i=1; // Первый порядковый номер тага звука float f=0.5; // Задержка дестроя string sSound = GetTag(OBJECT_SELF); // Приравнял таг Локации к звуовому object oTorch = GetFirstObjectInArea(OBJECT_SELF); object oSound = GetObjectByTag(sSound+IntToString(i)); // Звуковой объект effect eLight = EffectVisualEffect(VFX_DUR_LIGHT_YELLOW_20); // Свет факела int nEvent = GetUserDefinedEventNumber(); //======================= USERDEINE EVENT 1000 ================================= if (GetIsDay() || GetIsDawn()) //---------------------------------- ДЕНЬ -------------------------------------- { while (GetIsObjectValid(oTorch)) { if (GetTag(oTorch) == "AM_PLS_TORCH_ON" && !GetLocalInt(oTorch, "DO")) /* Проверяем все объекты на локации, берем с нужным тегом и без локальной переменной, что с объектом уже выключен. */ { string sResRef = GetLocalString(oTorch, "NEW_ResRef"); SetLocalInt(oTorch, "DO", TRUE); DestroyObject(oTorch, f); CreateObject(OBJECT_TYPE_PLACEABLE,sResRef, GetLocation(oTorch)); f=f+0.2; // Сделай паузу! } if (GetIsObjectValid(oSound)) { SoundObjectStop(oSound); // Выключаем звук i++; // Присвоим объекту звука таг на единицу больше } oSound = GetObjectByTag(sSound+IntToString(i)); oTorch = GetNextObjectInArea(OBJECT_SELF); } return; } //======================= USERDEINE EVENT 3000 ================================= else if (GetIsNight() || GetIsDusk()) //----------------------------- НОЧЬ ------------------------------------------- { while (GetIsObjectValid(oTorch)) { if (GetTag(oTorch) == "AM_PLS_TORCH_OFF" && !GetLocalInt(oTorch, "DO")) { string sResRef = GetLocalString(oTorch, "NEW_ResRef"); SetLocalInt(oTorch, "DO", TRUE); DestroyObject(oTorch, f); object oTorchNew = CreateObject(OBJECT_TYPE_PLACEABLE,sResRef, GetLocation(oTorch)); DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLight, oTorchNew)); f=f+0.2; // Сделай паузу! } if (GetIsObjectValid(oSound)) { SoundObjectPlay(oSound); // Включаем звук i++; // Присвоим объекту звука таг на единицу больше } oSound = GetObjectByTag(sSound+IntToString(i)); oTorch = GetNextObjectInArea(OBJECT_SELF); } } } Запускат скрипт можно хоть где. И хоть как. Обычно я юзаю хертбит с пометкой что наступил день. NSS //::////////////////////////////////////////////// //:: OnEnter am_ahb_day_night //:: Copyright © 2005 WRG! //::////////////////////////////////////////////// /* Скрипт локаций День/Ночь. Запускает OnUserDefined */ //::////////////////////////////////////////////// //:: Created By: Aiwan //:: Edit By: Lex //:: Created On: 24.05.2005 //::///////////////////////////////////////////// void main() { object oPC = GetFirstPC(); if (GetArea(oPC) != OBJECT_SELF) return; if (GetIsDusk()||GetIsNight()) { if (GetLocalInt(OBJECT_SELF, "Night") != 1) { SetLocalInt(OBJECT_SELF, "Day", 0); SetLocalInt(OBJECT_SELF, "Night", 1); SignalEvent(OBJECT_SELF, EventUserDefined(3000)); SignalEvent(OBJECT_SELF, EventUserDefined(4000)); return; } else return; } if (GetIsDawn()||GetIsDay()) { if (GetLocalInt(OBJECT_SELF, "Day") != 1) { SetLocalInt(OBJECT_SELF, "Night", 0); SetLocalInt(OBJECT_SELF, "Day", 1); SignalEvent(OBJECT_SELF, EventUserDefined(1000)); SignalEvent(OBJECT_SELF, EventUserDefined(2000)); return; } else return; } } Вот этот кусок на Юзер Деф локации. NSS int nEvent = GetUserDefinedEventNumber();
object oArea = OBJECT_SELF; if (nEvent == 2000) { { DelayCommand(5.0, ExecuteScript("am_exe_torch_del", OBJECT_SELF)); } } //======================= USERDEINE EVENT 3000 ================================= if (nEvent == 3000) { } //======================= USERDEINE EVENT 4000 ================================= if (nEvent == 4000) { { DelayCommand(5.0, ExecuteScript("am_exe_torch_del", OBJECT_SELF)); } } |
![]()
Сообщение
#2710
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Lawful Neutral Раса: Человек ![]() |
Я маленько не вник, какой звук надо ставить?
|
![]() ![]() |
Текстовая версия | Сейчас: 26th July 2025 - 16:19 |