![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#2811
|
|
Level 3 ![]() Класс: Обыватель Характер: Chaotic Good Раса: Человек ![]() |
QUOTE(windhover @ Aug 19 2006, 13:50) [snapback]89988[/snapback] Такой вот глупый вопрос: После перехода на 1.67 перестал работать в Тулсете Ctrl+C/Ctrl+V, только через меню копировать получаеться. Может ктото сталкивался с подобной проблемой? Или это у меня локально... (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif) QUOTE(Leon PRO @ Aug 19 2006, 15:16) [snapback]90029[/snapback] Обычно этио случается иногда, если у тебя не инсталлированый НВН а просто копированый. ПО крайней мере у меня это замечалось. QUOTE(Lex @ Aug 20 2006, 01:12) [snapback]90093[/snapback] ты это.. запусти апдейт или nwn.exe. Пусть определит твою версию и что-то помимо этого запишет в реестр. тады заработает. nwupdate.exe действительно помог. Спасибо. |
![]() ![]()
Сообщение
#2812
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Neutral Good Раса: Человек ![]() |
У меня проблема при установки модуля Equilibrium.
При установки он не может найти место распаковки. |
![]()
Сообщение
#2813
|
|
Level 1 Класс: Мастер Оружия Характер: Lawful Good Раса: Человек ![]() |
Помогите кто нибудь! (IMG:style_emoticons/kolobok_light/shout.gif) Вот я, например, хочу написать скрипт, чтобы когда игрок заходит в модуль 1 раз, то он сразу начинал разговор с НПС, который введет его в курс дела.
Для этого я создаю тригер на месте появления игрока, и вешаю на вкладу OnEnter такой скрипт: NSS void main () {object oBeren = GetObjectByTag("beren"); ActionStartConversation(object oBeren, string sDialogResRef="vvedenie", int bPrivateConversation=FALSE, int bPlayHello=FALSE); //vvedenie - это файл диалога у НПС с которвым буду говорить , а "beren" - тэг НПС// } Но мастер выдает, что скрипт не првавильный... объясните плиз в чем ошибка Сообщение отредактировал Форлонг - Aug 25 2006, 11:56 |
![]()
Сообщение
#2814
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Lawful Neutral Раса: Человек ![]() |
(IMG:style_emoticons/kolobok_light/swoon.gif)
Ненеадо писать string sDialogResRef="vvedenie", int bPrivateConversation=FALSE, int bPlayHello=FALSE(и object не надо). Параметры пишуться так: NSS ActionStartConversation(oBeren,"vvedenie", FALSE, FALSE); Но это работать тоже не будет. А что бы работало напиши: NSS void main ()
{ object oBeren = GetObjectByTag("beren"); object oPC =GetEnteringObject(); AssignCommand(oBeren, ActionStartConversation(oPC,"vvedenie")); } Сообщение отредактировал Milfes - Aug 25 2006, 12:43 |
![]()
Сообщение
#2815
|
|
Level 4 ![]() ![]() Класс: Некромант Характер: Chaotic Evil Раса: Нежить ![]() |
2 Форлонг
тебы сначала мануалы прочитать.. Погляди на сайте там все есть. |
![]()
Сообщение
#2816
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Lawful Neutral Раса: Человек ![]() |
Кстати добавь перед AssignCommand строки:
NSS if (GetLocalInt(oPC, "START") == 1) return; SetLocalInt(oPC, "START", 1); Что бы сработало один раз. |
![]()
Сообщение
#2817
|
|
Level 1 Класс: Мастер Оружия Характер: Lawful Good Раса: Человек ![]() |
Спасиб всем (IMG:style_emoticons/kolobok_light/declare.gif)
Особенено Milfes'у |
![]() ![]()
Сообщение
#2818
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Neutral Good Раса: Человек ![]() |
Простите за повторение, но мне скрипт для прибавления нужного количество мне жизней. (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif)
|
![]()
Сообщение
#2819
|
|
Level 4 ![]() ![]() Класс: Некромант Характер: Chaotic Evil Раса: Нежить ![]() |
Как вариант, мона наложить эффект увеличения ХП. (IMG:style_emoticons/kolobok_light/smile.gif)
NSS ApplyEffectToObject(DURATION_TYPE_*, EffectTemporaryHitpoints(НУЖНОЕ_КОЛ_ВО_ХП), ЧУВАК); |
![]() ![]()
Сообщение
#2820
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Neutral Good Раса: Человек ![]() |
Понятно (IMG:style_emoticons/kolobok_light/biggrin.gif)
Спасибо! Прибавка дополнительных жизней это конечно хорошо но мне надо было чтобы скрипт лечил игрока а не давал бонусы. (IMG:style_emoticons/kolobok_light/unsure.gif) Но за скрипт спасибо он мне ещё пригодится. Может, кто знает другой способ прибавки жизней. Сообщение отредактировал Артём - Aug 29 2006, 15:26 |
![]()
Сообщение
#2821
|
|
![]() Класс: Пьяный Мастер Характер: Lawful Good Раса: Тварь MySQL, PHP, JavaScript Порядок Времени ![]() |
NSS // Create a Heal effect. This should be applied as an instantaneous effect. // * Returns an effect of type EFFECT_TYPE_INVALIDEFFECT if nDamageToHeal < 0. effect EffectHeal(int nDamageToHeal) (IMG:style_emoticons/kolobok_light/rtfm.gif) |
![]()
Сообщение
#2822
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Артём, ДЫК, так бы и сказал, что лечение нужно, а то прибавка.
Юзай EffectHeal |
![]() ![]()
Сообщение
#2823
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Neutral Good Раса: Человек ![]() |
Прошу прощение за неточность. (IMG:style_emoticons/kolobok_light/biggrin.gif) У меня ёщё один вопрос. В своём модуле я сделал людей со своими действиями. Мне надо чтобы днём работал один скрипт, а ночью другой. |
![]()
Сообщение
#2824
|
|
Level 4 ![]() ![]() Класс: Некромант Характер: Chaotic Evil Раса: Нежить ![]() |
мда... Подобное уже раз сто, тока за мое присутствие на форуме разбиралось.... (А я относительно недавно тут =))
http://www.city-of-masters.ru/forums/index...ost&p=89629 |
![]()
Сообщение
#2825
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Neutral Good Раса: Человек ![]() |
Понятно (IMG:style_emoticons/kolobok_light/biggrin.gif)
У непися скрипт ночью наработает, я нечего не изменял только подставил свои значения? NSS void main()
{ int nUser = GetUserDefinedEventNumber(); object oNPC = GetObjectByTag("NPC_sh_1"); 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) //HEARTBEAT { if (GetIsDay() || GetIsDawn() && !GetLocalInt(OBJECT_SELF, "day")) { SetLocalInt(OBJECT_SELF, "day", 1); SetLocalInt(OBJECT_SELF, "night", 0); ClearAllActions(); ActionDoCommand(AssignCommand(oNPC, JumpToObject(oWPpc1))); ActionDoCommand(AssignCommand(oNPC, ActionMoveToObject(oWPpc2))); ActionDoCommand(AssignCommand(oNPC, ActionPlayAnimation(ANIMATION_FIREFORGET_HEAD_TURN_LEFT, 1.0, 3.0))); ActionDoCommand(AssignCommand(oNPC, ActionPlayAnimation(ANIMATION_FIREFORGET_HEAD_TURN_RIGHT, 1.0, 3.0))); ActionDoCommand(AssignCommand(oNPC, ActionMoveToObject(oWPpc3))); ActionDoCommand(AssignCommand(oNPC, ActionMoveToObject(oWPpc4))); ActionDoCommand(AssignCommand(oNPC, ActionPlayAnimation(ANIMATION_FIREFORGET_HEAD_TURN_LEFT, 1.0, 3.0))); ActionDoCommand(AssignCommand(oNPC, ActionMoveToObject(oWPpc5))); ActionDoCommand(AssignCommand(oNPC, ActionMoveToObject(oWPpc6))); ActionDoCommand(AssignCommand(oNPC, ActionMoveToObject(oWPpc7))); } else if (GetIsNight() && !GetLocalInt(OBJECT_SELF, "night")) { SetLocalInt(OBJECT_SELF, "day", 0); SetLocalInt(OBJECT_SELF, "night", 1); ClearAllActions(); ActionDoCommand(AssignCommand(oNPC, ActionMoveToObject(oWPpc5))); ActionDoCommand(AssignCommand(oNPC, ActionMoveToObject(oWPpc4))); ActionDoCommand(AssignCommand(oNPC, ActionMoveToObject(oWPpc3))); ActionDoCommand(AssignCommand(oNPC, ActionMoveToObject(oWPpc1))); ActionDoCommand(AssignCommand(oNPC, JumpToObject(oWPpc))); } } } |
![]()
Сообщение
#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)); } Должно работать. |
![]() ![]() |
Текстовая версия | Сейчас: 27th July 2025 - 13:43 |