![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#2826
|
|
Level 4 ![]() ![]() Класс: Некромант Характер: Chaotic Evil Раса: Нежить ![]() |
1. Не: object oNPC = GetObjectByTag("NPC_sh_1"); а object oNPC = OBJECT_SELF;
2. ActionDoCommand(AssignCommand(oNPC,... - ActionDoCommand нафиг здесь не нужно. 3. Мобу нужно на всяк пожарный забить стек, чтобы его не прервали по пути. (SetCommondable(FALSE & TRUE) 4. Проверь таги вайпоинтов. 5. Самое важно... Ты в скрипте на onSpawn, моба раскомментировал 239 строку (SetSpawn...(NW_FLAG_HEARTBEAT…)) ??? ЗЫ: может еще ошибки есть, смотрел бегло. Сообщение отредактировал Waromon - Aug 29 2006, 20:10 |
![]() ![]()
Сообщение
#2827
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Neutral Good Раса: Человек ![]() |
Насчёт 1, 2 и 4 это я понял, а вот 3 и 5 пункта не понимаю?
Если нетрудно разбери поподробней. |
![]()
Сообщение
#2828
|
|
Level 4 ![]() ![]() Класс: Некромант Характер: Chaotic Evil Раса: Нежить ![]() |
Разбераю,
3. Когда НПЦ идет по вайпоинтам - игрок его может прервать (например банальным желанием начать разговор) тогда непись тупо встанет и продолжит так стоять, до утра/ночи. Шобы етого избежать нужно забить стек комманд непися, то есть просто напросто запретить добавление новых команд в его стек. Делаем это так: NSS // добавь в конец проверок день & ночь DelayCommand(0.6, SetCommandable(FALSE)); ActionDoCommand(SetCommandable(TRUE)); 5. Тут все просто (IMG:style_emoticons/kolobok_light/smile.gif) открываешь стандартный скрипт с onSpawn, и удаляешь знак // с 239 строки. (SetSpawn...(NW_FLAG_HEARTBEAT…)) Сообщение отредактировал Waromon - Aug 29 2006, 22:14 |
![]()
Сообщение
#2829
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Neutral Good Раса: Человек ![]() |
Спасибо
Насчёт первого до меня дошло ещё после первого твоего замечания (правда, после того как я тебе ответил) а вот второй щяс будим тыкать. (IMG:style_emoticons/kolobok_light/biggrin.gif) |
![]()
Сообщение
#2830
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Ребята, что вы маятесь? У Биовар есть система скриптов. Пишете нпс ходить по вейпоинтам. Настраиваете ему ходить по ночным - дневным поинтам. Дальше, рисуете дневные и ночные. И все. Хотите что бы он чесал жопу, нарисуйте на вейпах триггер. Если зашел НПС, очистили все акции. Почесали задницу. Пошел дальше...
То что я тут вижу жуть... (IMG:style_emoticons/kolobok_light/unknw.gif) |
![]() ![]()
Сообщение
#2831
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Neutral Good Раса: Человек ![]() |
Не получается, исправти ошибки.
Плиз (IMG:style_emoticons/kolobok_light/sad.gif) NSS object oWPpc = GetWaypointByTag("NW_pradovec_1_0"); object oWPpc1 = GetWaypointByTag("NW_pradovec_1_1"); object oWPpc2 = GetWaypointByTag("NW_pradovec_1_2"); object oWPpc3 = GetWaypointByTag("NW_pradovec_1_3"); object oWPpc4 = GetWaypointByTag("NW_pradovec_1_4"); object oWPpc5 = GetWaypointByTag("NW_pradovec_1_5"); object oWPpc6 = GetWaypointByTag("NW_pradovec_1_6"); object oWPpc7 = GetWaypointByTag("NW_pradovec_1_7"); if(nUser == 1001) { if (GetIsDay() || GetIsDawn() && !GetLocalInt(OBJECT_SELF, "day")) { SetLocalInt(OBJECT_SELF, "day", 1); SetLocalInt(OBJECT_SELF, "night", 0); ClearAllActions(); DelayCommand(3.0, AssignCommand(oNPC, JumpToObject(oWPpc1))); DelayCommand(6.0, AssignCommand(oNPC, ActionMoveToObject(oWPpc2))); DelayCommand(7.0, AssignCommand(oNPC, ActionPlayAnimation(ANIMATION_FIREFORGET_HEAD_TURN_LEFT, 1.0, 3.0))); DelayCommand(8.5, AssignCommand(oNPC, ActionPlayAnimation(ANIMATION_FIREFORGET_HEAD_TURN_RIGHT, 1.0, 3.0))); DelayCommand(10.0, AssignCommand(oNPC, ActionMoveToObject(oWPpc3))); DelayCommand(12.0, AssignCommand(oNPC, ActionMoveToObject(oWPpc4))); DelayCommand(14.0, AssignCommand(oNPC, ActionPlayAnimation(ANIMATION_FIREFORGET_HEAD_TURN_LEFT, 1.0, 3.0))); DelayCommand(17.0, AssignCommand(oNPC, ActionMoveToObject(oWPpc5))); DelayCommand(19.0, AssignCommand(oNPC, ActionMoveToObject(oWPpc6))); DelayCommand(20.0, AssignCommand(oNPC, ActionMoveToObject(oWPpc7))); DelayCommand(30.0, AssignCommand(oNPC, ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_TIRED , 1.0, 3.0))); DelayCommand(35.0, AssignCommand(oNPC, SpeakString("Текст") )); DelayCommand(100.0, AssignCommand(oNPC, ActionPlayAnimation(ANIMATION_FIREFORGET_SPASM , 1.0, 3.0))); DelayCommand(140.0, AssignCommand(oNPC, ActionPlayAnimation(ANIMATION_FIREFORGET_HEAD_TURN_LEFT, 1.0, 3.0))); DelayCommand(143.0, AssignCommand(oNPC, SpeakString("Текст") )); DelayCommand(174.0, AssignCommand(oNPC, ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_TIRED , 1.0, 3.0))); DelayCommand(200.0, AssignCommand(oNPC, ActionPlayAnimation(ANIMATION_FIREFORGET_SPASM , 1.0, 3.0))); DelayCommand(240.0, AssignCommand(oNPC, ActionPlayAnimation(ANIMATION_FIREFORGET_HEAD_TURN_LEFT, 1.0, 3.0))); DelayCommand(242.0, AssignCommand(oNPC, SpeakString("Текст") )); ActionDoCommand(SetCommandable(TRUE)); DelayCommand(0.3, SetCommandable(FALSE)); } else if (GetIsNight() && !GetLocalInt(OBJECT_SELF, "night")) { SetLocalInt(OBJECT_SELF, "day", 0); SetLocalInt(OBJECT_SELF, "night", 1); ClearAllActions(); DelayCommand(3.0, AssignCommand(oNPC, ActionMoveToObject(oWPpc5))); DelayCommand(6.0, AssignCommand(oNPC, ActionMoveToObject(oWPpc4))); DelayCommand(8.0, AssignCommand(oNPC, ActionMoveToObject(oWPpc3))); DelayCommand(10.0, AssignCommand(oNPC, ActionMoveToObject(oWPpc1))); DelayCommand(14.0, AssignCommand(oNPC, JumpToObject(oWPpc))); ActionDoCommand(SetCommandable(TRUE)); DelayCommand(0.3, SetCommandable(FALSE)); } } } QUOTE(Aiwan @ Aug 30 2006, 08:55) [snapback]90741[/snapback] Ребята, что вы маятесь? У Биовар есть система скриптов. Пишете нпс ходить по вейпоинтам. Настраиваете ему ходить по ночным - дневным поинтам. Дальше, рисуете дневные и ночные. И все. Хотите что бы он чесал жопу, нарисуйте на вейпах триггер. Если зашел НПС, очистили все акции. Почесали задницу. Пошел дальше... То что я тут вижу жуть... (IMG:style_emoticons/kolobok_light/unknw.gif) Хотелось бы с эти разобраться…! |
![]()
Сообщение
#2832
|
|
Level 4 ![]() ![]() Класс: Некромант Характер: Chaotic Evil Раса: Нежить ![]() |
NSS DelayCommand(242.0, AssignCommand(oNPC, SpeakString("Текст") )); ActionDoCommand(SetCommandable(TRUE)); DelayCommand(0.3, SetCommandable(FALSE)); Ты через три секунды стек забиваешь, а потом команды ему кидаешь... Просты выкинь DelayCommand из скрипта - она там нафиг не нужна. (если необходима задержка - используй ActionWait) ЗЫ: Артем, те просто НЕОБХОДИМО (!) (IMG:style_emoticons/kolobok_light/rtfm.gif) (IMG:style_emoticons/kolobok_light/rtfm.gif) ЗЫЫ: Айван, насчет жути согласен. (IMG:style_emoticons/kolobok_light/smile.gif) Сообщение отредактировал Waromon - Aug 30 2006, 09:51 |
![]()
Сообщение
#2833
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Neutral Good Раса: Человек ![]() |
Понял (IMG:style_emoticons/kolobok_light/biggrin.gif)
|
![]()
Сообщение
#2834
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Доброго времени суток всем!
Думаю, здесь такие проблемы, как у меня, уже обсуждались неоднократно, заранее прошу прощения, но все же рискну. В общем, сюжет такой: РС заходит в комнату и видит там спящего NPC, который спит в течение 30 секунд, затем просыпается и, если РС еще в комнате, атакует. Это получается. Но есть одна проблема: я не хочу, чтобы игроки, пойдя по пути наименьшего сопротивления, просто прикончили спящего. Чтобы помешать, назначаю NPC исходную фракцию "защитник", а по прошествии 30 секунд делаю AdjustReputation. Но дело в том, то в скрипте не получается сделать DelayCommand, т.е. скрипт компилится, но при тестировании AdjustReputation происходит не через 30 секунд, а практически сразу. То есть, вот это вставляю в обычный скрпит OnSpawn как 4 последние строчки: NSS effect eLieDown = EffectSleep(); effect eSnore = EffectVisualEffect(VFX_IMP_SLEEP); effect eSleep = EffectLinkEffects(eLieDown,eSnore); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSleep, OBJECT_SELF,30.0); А этот скрипт - OnPercevied NSS //Goes OnPerceived of a creature #include "nw_i0_generic" void main() { object oPC = GetLastPerceived(); if (!GetIsPC(oPC)) return; if (!GetLastPerceptionSeen()) return; object oTarget; oTarget = OBJECT_SELF; AdjustReputation(oPC, oTarget, -100); DelayCommand(30.0,AdjustReputation(oPC, oTarget, -100)); SetIsTemporaryEnemy(oPC, oTarget); ActionAttack(oPC); DetermineCombatRound(oPC); } Что я делаю неправильно? Как можно сделать по-другому? |
![]()
Сообщение
#2835
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Lawful Neutral Раса: Человек ![]() |
Сделай нейтральную фракцию и на OnPercevied
NSS void main() { object oPC = GetLastPerceived(); if (!GetIsPC(oPC)) return; if (!GetLastPerceptionSeen()) return; SetIsTemporaryEnemy(OBJECT_SELF, oPC); AssignCommand(OBJECT_SELF, ActionAttack(oPC)); } Должно работать. |
![]()
Сообщение
#2836
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
QUOTE(shadowdweller @ Sep 4 2006, 01:33) [snapback]91002[/snapback] Но дело в том, то в скрипте не получается сделать DelayCommand, т.е. скрипт компилится, но при тестировании AdjustReputation происходит не через 30 секунд, а практически сразу. NSS AdjustReputation(oPC, oTarget, -100); DelayCommand(30.0,AdjustReputation(oPC, oTarget, -100)); Вот ошибка. Сразу две строки одинаковые. Одна выполняется через 30 сек. Другая сразу. |
![]()
Сообщение
#2837
|
|
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
Можно еще сделать рядом с кроватью НПС триггер, и написать, когда игрок войдет на триггер "Вы наделали много шума, когда подходили к кровати. Спящий проснулся от шума, увидел вас, и схватился за меч". В этом случае достаточно НПС сделать по отношению к игроку только врагом. Т.е. хватит 3-х строчек:
NSS SetIsTemporaryEnemy(oPC, oTarget);
ActionAttack(oPC); DetermineCombatRound(oPC); |
![]()
Сообщение
#2838
|
|
Level 12 ![]() Класс: Оборотень Характер: Chaotic Neutral Раса: Нежить NWN: Скриптинг [Sn] ![]() |
Даже дружественного НПС можно убить, если, конечно, сложность в настройках не минимальная - так что лучше действительно через триггер или что-либо подобное - хотя почему бы не позволить игроку прирезать кого-нибудь во сне, многих такая возможность обрадует. Либо сделать НПС достаточно сильным, чтобы не возникало желания с ним сражаться, пускай даже с уже раненым - хорошо, что Coup de Grace перестает работать, если спящий больше 4го уровня.
|
![]()
Сообщение
#2839
|
|
Level 3 ![]() Класс: Волшебник Характер: Neutral Evil Раса: Человек ![]() |
NSS //:://///////////////////////////////////////////////// //:: X0_O2_ANYUNIQ.NSS //:: OnOpened/OnDeath script for a treasure container. //:: Treasure type: Any, random selection from whatever is in base container //:: Treasure level: TREASURE_TYPE_UNIQUE //:: //:: Copyright © 2002 Floodgate Entertainment //:: Created By: Naomi Novik //:: Created On: 11/21/2002 //:://///////////////////////////////////////////////// #include "x0_i0_treasure" void main() { CTG_CreateTreasure(TREASURE_TYPE_UNIQUE, GetLastOpener(), OBJECT_SELF); } Скрипт на ящиках, где появляются разные сокровища, подскажите пожалуйста, какой функцией заставить спавниться сокровища, скажем через каждые 10 минут в этом ящике. |
![]()
Сообщение
#2840
|
|
Вечно меняющийся ![]() Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] ![]() |
Mandrake
Как вариант, можно вешать переменную, а потом проверять ее в скрипте. (ХБ) но ИМХО, все же лучше посмотреть что нибуть подобное на ваулте. (IMG:style_emoticons/kolobok_light/smile.gif) |
![]()
Сообщение
#2841
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
А зачем в ящике сокровища каждые 10 минут и монстры?
|
![]()
Сообщение
#2842
|
|
Level 2 ![]() Класс: Оборотень Характер: True Neutral Раса: Эльф ![]() |
У меня такая проблема: хотим поиграть по сети в мой модуль, но никто не видит сервера, который я создаю.Видит все модули кроме моего. Вот у меня и вопрос - может надо было обязательно писать что-то в модульных свойствах=>События? Подскажите что может мешать.
|
![]()
Сообщение
#2843
|
|
Level 1 Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
QUOTE(Lordeath @ Sep 4 2006, 19:22) [snapback]91051[/snapback] У меня такая проблема: хотим поиграть по сети в мой модуль, но никто не видит сервера, который я создаю.Видит все модули кроме моего. Вот у меня и вопрос - может надо было обязательно писать что-то в модульных свойствах=>События? Подскажите что может мешать. Название модуля скажи. Какой сервак - вин\линь? Сам-то зайти в свой модуль можешь? |
![]()
Сообщение
#2844
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Milfes
Спасибо. Пробую - работает. Zirrex Через триггер - тоже отличная идея, только мне надо, чтобы NPC просыпался сам, т.е. если игрок не уложился во времени, не забрал из сундука нужный предмет и не смотался, его атакуют. Можно это как-то на триггер поставить? Aiwan QUOTE NSS AdjustReputation(oPC, oTarget, -100); DelayCommand(30.0,AdjustReputation(oPC, oTarget, -100)); Вот ошибка. Сразу две строки одинаковые. Одна выполняется через 30 сек. Другая сразу. А как исправить? Вообще, огромное спасибо всем за помощь. Можно, спрошу еще? Есть такой скрипт, который на входе в область уничтожает весь инвентарь, все золото и все Equipped Items. Но мне нужно, чтобы ы инвентаре игрока появилась какая-нибудь одежда. В общем, возникает такая проблема: если две последние строчки скрпита выглядят так: NSS TakeGoldFromCreature(GetGold(oEnter), oEnter, TRUE); object oClothes = CreateItemOnObject("NW_CLOTH004", oEnter); } РС остается при всем своем золоте, а если так: NSS AssignCommand(oEnter, TakeGoldFromCreature(GetGold(oEnter),oEnter,TRUE)); object oClothes = CreateItemOnObject("NW_CLOTH004", oEnter); } То никакая одежда в инвентаре не появляется. Почему? Как с этим бороться? |
![]()
Сообщение
#2845
|
|
Вечно меняющийся ![]() Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] ![]() |
QUOTE(shadowdweller @ Sep 5 2006, 12:56) [snapback]91077[/snapback] А как исправить? Просто удалить ненужную строку, в этом случае - AdjustReputation(oPC, oTarget, -100);. QUOTE(shadowdweller @ Sep 5 2006, 12:56) [snapback]91077[/snapback] Есть такой скрипт, который на входе в область уничтожает весь инвентарь, все золото и все Equipped Items. Но мне нужно, чтобы ы инвентаре игрока появилась какая-нибудь одежда. В последнем примере кода, золото должно уничтожатся. (В первом не работает по той простой причине, что эта функция не применима к эвентам локаций и модуля) Предметы не создаются, т.к нужно указывать не ТАГ предмета, а РесРеф. PS: Кстати рекомендую почитaть следующею тему, думаю будет достаточно полезной. Сообщение отредактировал Dik Morris - Sep 5 2006, 14:55 |
![]()
Сообщение
#2846
|
|
Level 2 ![]() Класс: Тайный Лучник Характер: True Neutral Раса: Эльф ![]() |
Доброго времени суток!!!
Ща наверно задам очеть сложный ( и тупо-сформулированный вопрос). Я делаю модуль про воров и есть проблема можно ли сделать так что непись 1 не ощущает тебя когда ты подкрадываешся со спины (а когда повернется сразу замечает) 2 плохо видит когда темно ( а когда день то видит прекрасно) 3 лучше слышит тебя когда бежиш ( а когда в крысу шкеришся вообще не замечает) Заранее благодарен!!! |
![]()
Сообщение
#2847
|
|
Level 17 ![]() Класс: Волшебник Характер: Neutral Good Раса: Человек NWN: Скриптинг [PW] Axistown SR 1.9 NWNX ![]() |
Простых или очевидных методов решения этих задач нет.
|
![]()
Сообщение
#2848
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
QUOTE(Misty Archer @ Sep 5 2006, 18:26) [snapback]91106[/snapback] 1 не ощущает тебя когда ты подкрадываешся со спины (а когда повернется сразу замечает) Я сделал свою функцию обнаружения для такого случая, включающую в себя угол обзора (220 градусов, те подходить можно сзади намана) QUOTE(Misty Archer @ Sep 5 2006, 18:26) [snapback]91106[/snapback] 2 плохо видит когда темно ( а когда день то видит прекрасно) зависит от того, что значит видит.. если это отражается на скиловых бросках - без проблем. Если просто GetIsSeen, то придется еще поизвращаться. QUOTE(Misty Archer @ Sep 5 2006, 18:26) [snapback]91106[/snapback] 3 лучше слышит тебя когда бежиш ( а когда в крысу шкеришся вообще не замечает) бег вроде нет, а форму можно. имхо: ты щас в этом увязнешь, если начнешь делать. гемора много, толку для МОДУЛЯ мало. Эти примочки луже потом, если решишься, делай. |
![]()
Сообщение
#2849
|
|
Level 2 ![]() Класс: Обыватель Характер: Chaotic Neutral Раса: Полуэльф ![]() |
Простите, не сможет ли кто объяснить доступно такому чайнику, как я, что такое хакпак с моделями и зачем он? У меня Проклятье Левора на 2 CD от Neogame, из трёх модулей на диске был первый. у вас скачал и поставил два остальных, работают, только в опции меню "Другие модули", там таких ещё 15. Нужны ли хакпаки? И как модули 2 и 3 поставить в главном меню в Прок Левора? Не судите строго ! Спасибо.
Простите, не сможете ли объяснить доступно такому чайнику, как я, что такое хакпак с моделями и зачем он? У меня Проклятье Левора на 2 CD от Neogame, из трёх модулей на диске был первый. у вас скачал и поставил два остальных, работают, только в опции меню "Другие модули", там таких ещё 15. Нужны ли хакпаки? И как модули 2 и 3 поставить в главном меню в Прок Левора, чтобы загружались из Прокл Левора, а не из Других модулей? Не судите строго ! Спасибо за хорошую игру! |
![]()
Сообщение
#2850
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Я уже ответил два раза. Или на все посты копировать свои ответы? Как тут не осерчать...
Вот тут на сайте ответил. Хак пак - это дополнительные ресурсы к игре. Если не будет хватать что-то то модули не запустятся. Если работают, то значит все нормально. Модули в главное меню можно поставить пропатчив патчами для СД версии. |
![]() ![]() |
Текстовая версия | Сейчас: 29th April 2025 - 00:25 |