![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#3386
|
|
Level 2 ![]() Класс: Воин Характер: Neutral Evil Раса: Человек ![]() |
Вопрос глупый, но тем не менее. Как зайти на локальный шард ДМ-ом, что такое ДМ, и как он ведет квесты?
|
![]()
Сообщение
#3387
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Вопрос глупый, но тем не менее. Как зайти на локальный шард ДМ-ом, что такое ДМ, и как он ведет квесты? Данжеон Мастер. В общем, это человек который ведет а попросту организовывает все в игре, в данном случае на шарде, модуле. Он отвечает за квесты, диалоги и все события вокруг игроков. Что то вроде админа Забыбтых Королевств (IMG:style_emoticons/kolobok_light/smile.gif) Искать их надо здесь или на шардах. Но хороший ДМ это редкость... |
![]()
Сообщение
#3388
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
Цитата Как зайти на локальный шард ДМ-ом Запускаешь NWN Launcher там выбираешь DM Client и коннектишься к шарду через стандартный интерфейс. Само собой если это твой шард. Если чужой - то у тебя просто не будет ДМ пасса, чтобы зайти. Сообщение отредактировал Leon PRO - Aug 22 2007, 14:58 |
![]()
Сообщение
#3389
|
|
Level 2 ![]() Класс: Воин Характер: Neutral Evil Раса: Человек ![]() |
Вот я и хотел бы узнать каким образом организовывать события, диалоги, квесты. Посредством каких-либо команд или специальной программы.
|
![]()
Сообщение
#3390
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Доброго времени суток всем!
Столкнулась с такой проблемой - хотела сделать светильник, который светит разными цветами и переключается с одного на другой в случайном порядке OnHeartbeat каждые 5 секунд. Подумала и написала вот что: Neverwinter Script Source int iRollTen = d10(1); // Action would be chosen at random from the 10 variants void main() { switch(iRollTen) // Generated number { case 1: effect eLight1 = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_GREEN); object oLight1 = GetObjectByTag("LIGHT1"); ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eLight oLight1, 5.0); break; case 2: effect eLight2 = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_RED); object oLight1 = GetObjectByTag("LIGHT1"); ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eLight oLight1, 5.0); break; case 3: effect eLight3 = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_WHITE); object oLight1 = GetObjectByTag("LIGHT1"); ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eLight oLight1, 5.0); break; case 4: effect eLight4 = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_BLUE); object oLight1 = GetObjectByTag("LIGHT1"); ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eLight oLight1, 5.0); break; case 5: effect eLight5 = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_ORANGE); object oLight1 = GetObjectByTag("LIGHT1"); ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eLight oLight1, 5.0); break; case 6: effect eLight6 = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_PURPLE); object oLight1 = GetObjectByTag("LIGHT1"); ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eLight oLight1, 5.0); break; case 7: effect eLight7 = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_YELLOW); object oLight1 = GetObjectByTag("LIGHT1"); ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eLight oLight1, 5.0); break; case 8: effect eLight8 = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_BROWN); object oLight1 = GetObjectByTag("LIGHT1"); ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eLight oLight1, 5.0); break; case 9: effect eLight1 = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_GREEN); object oLight1 = GetObjectByTag("LIGHT1"); ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eLight oLight1, 5.0); break; case 10: effect eLight4 = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_BLUE); object oLight1 = GetObjectByTag("LIGHT1"); ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eLight oLight1, 5.0); } } Ставлю на слот хартбит невидимого статичного объекта с соответствующим тэгом. Скрипт не компилируется, выдает Код ERROR: SKIPPING DECLARATION VIA "case" STATEMENT DISALLOWED. Что это за ошибка такая? Как от нее избавиться? Вообще, возможно ли в принципе то, что я задумала? Сообщение отредактировал shadowdweller - Aug 27 2007, 23:08 |
![]()
Сообщение
#3391
|
|
Level 17 ![]() Класс: Волшебник Характер: Neutral Good Раса: Человек NWN: Скриптинг [PW] Axistown SR 1.9 NWNX ![]() |
Где объявлен eLight?
Ещё советую определить переменные до case. |
![]()
Сообщение
#3392
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Virusman, сделала так, как вы посоветовали. Цифры после "eLight" упорно съедает редактор постов. (IMG:style_emoticons/kolobok_light/smile.gif)
Код int iRollTen = d10(1); // Action would be chosen at random from the 10 variants void main() { switch(iRollTen) // Generated number { effect eLight1 = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_GREEN); effect eLight2 = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_RED); effect eLight4 = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_BLUE); effect eLight5 = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_ORANGE); effect eLight6 = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_PURPLE); effect eLight7 = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_YELLOW); effect eLight8 = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_BROWN); object oLight1 = GetObjectByTag("LIGHT1"); case 1: ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eLight1,oLight1, 5.0); break; case 2: ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eLight2,oLight1, 5.0); break; case 3: ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eLight1,oLight1, 5.0); break; case 4: ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eLight4,oLight1, 5.0); break; case 5: ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eLight5,oLight1, 5.0); break; case 6: ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eLight6,oLight1, 5.0); break; case 7: ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eLight7,oLight1, 5.0); break; case 8: ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eLight8,oLight1, 5.0); break; case 9: ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eLight1,oLight1, 5.0); break; case 10: ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eLight4,oLight1, 5.0); } } Результат тот же - ERROR: SKIPPING DECLARATION VIA "case" STATEMENT DISALLOWED. Выдается прямо на case 1: (IMG:style_emoticons/kolobok_light/unknw.gif) Сообщение отредактировал shadowdweller - Aug 27 2007, 23:33 |
![]()
Сообщение
#3393
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
virusman, ты проще объясняй. Человек только начинает это вкуривать. Ей по пол литры не осилить каждый день. (IMG:style_emoticons/kolobok_light/declare.gif)
|
![]()
Сообщение
#3394
|
|
Level 17 ![]() Класс: Волшебник Характер: Neutral Good Раса: Человек NWN: Скриптинг [PW] Axistown SR 1.9 NWNX ![]() |
Да, в смысле до switch.
Neverwinter Script Source void main() Можно даже без свитча, но так понятнее.
{ object oLight = GetObjectByTag("LIGHT1"); effect eLight; int nEffectID; int iRollTen = d10(1); // Action would be chosen at random from the 10 variants switch(iRollTen) // Generated number { case 1: nEffectID = VFX_DUR_GLOW_LIGHT_GREEN; break; case 2: nEffectID = VFX_DUR_GLOW_LIGHT_RED; break; case 3: nEffectID = VFX_DUR_GLOW_LIGHT_WHITE; break; case 4: nEffectID = VFX_DUR_GLOW_LIGHT_BLUE; break; case 5: nEffectID = VFX_DUR_GLOW_LIGHT_ORANGE; break; case 6: nEffectID = VFX_DUR_GLOW_LIGHT_PURPLE; break; case 7: nEffectID = VFX_DUR_GLOW_LIGHT_YELLOW; break; case 8: nEffectID = VFX_DUR_GLOW_LIGHT_BROWN; break; case 9: nEffectID = VFX_DUR_GLOW_LIGHT_GREEN; break; case 10: nEffectID = VFX_DUR_GLOW_LIGHT_BLUE; } eLight = EffectVisualEffect(nEffectID); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLight, oLight, 5.0); } Сообщение отредактировал virusman - Aug 27 2007, 23:30 |
![]()
Сообщение
#3395
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Virusman, Aiwan, cпасибо (IMG:style_emoticons/kolobok_light/thank_you.gif)
Компилируется, а работать не хочет... (IMG:style_emoticons/kolobok_light/sad.gif) Сообщение отредактировал shadowdweller - Aug 27 2007, 23:42 |
![]()
Сообщение
#3396
|
|
Level 17 ![]() Класс: Волшебник Характер: Neutral Good Раса: Человек NWN: Скриптинг [PW] Axistown SR 1.9 NWNX ![]() |
Объект с тэгом LIGHT1 точно есть?
Кстати, вместо oLight можно использовать OBJECT_SELF, если этот скрипт висит на его Heartbeat. |
![]()
Сообщение
#3397
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Объект с тэгом LIGHT1 точно есть? Да, есть такой объект. Статичный невидимый объект с этим тэгом. (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif) |
![]()
Сообщение
#3398
|
|
Level 19 ![]() Класс: Обыватель Характер: True Neutral Раса: Дварф NWN: Контент ![]() |
Насколько я знаю, со статичными объектами нельзя проводить скриптовых (да и каких-либо) операций.
|
![]()
Сообщение
#3399
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
можно. Но попробуй сделать объекту другой апиранс, чтобы моделька была, ну стол например.
|
![]()
Сообщение
#3400
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Помогло, когда заменила невидимый объект вполне себе материальным и сняла флажок Static, не отмечая при этом Useable. Спасибо огромное всем.
|
![]()
Сообщение
#3401
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
shadowdweller, не будет лишним запретить работу скрипту, если это сингл и ГГ не находится в одной локе с объектом. Поставьте объекту сюжет и снимите статик, так будет работать стабильно, если скрипт весит на ХБ.
Neverwinter Script Source void main() { object oLight = OBJECT_SELF; int nEffectID; // Если сингл if(GetArea(GetFirstPC()) != GetArea(oLight)) return; // если ПС нет в локе switch(d10()) // Generated number или switch(Random(10)+1) { case 1: nEffectID = VFX_DUR_GLOW_LIGHT_GREEN; break; case 2: nEffectID = VFX_DUR_GLOW_LIGHT_RED; break; case 3: nEffectID = VFX_DUR_GLOW_LIGHT_WHITE; break; case 4: nEffectID = VFX_DUR_GLOW_LIGHT_BLUE; break; case 5: nEffectID = VFX_DUR_GLOW_LIGHT_ORANGE; break; case 6: nEffectID = VFX_DUR_GLOW_LIGHT_PURPLE; break; case 7: nEffectID = VFX_DUR_GLOW_LIGHT_YELLOW; break; case 8: nEffectID = VFX_DUR_GLOW_LIGHT_BROWN; break; case 9: nEffectID = VFX_DUR_GLOW_LIGHT_GREEN; break; case 10: nEffectID = VFX_DUR_GLOW_LIGHT_BLUE; break; } effect eLight = EffectVisualEffect(nEffectID); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLight, oLight, 5.0); } P.S. Звиняйте за тормоза… Сообщение отредактировал gennady - Aug 29 2007, 06:18 |
![]()
Сообщение
#3402
|
|
Level 19 ![]() Класс: Обыватель Характер: True Neutral Раса: Дварф NWN: Контент ![]() |
Лекс, я не спорю, но какие можно?
ЗЫ QUOTE Static
If true, this placeable can not be modified dynamically in game. It cannot have its inventory accessed, cannot be deleted, add cannot have dynamic collision. |
![]()
Сообщение
#3403
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
ну в этом скрипте эффекты рассматриваюца - их можно (что я и сказал). Про остальное надо отдельно разговаривать (IMG:style_emoticons/kolobok_light/smile.gif)
вариант в том, что нивидимый объект не имеет формы, и поэтому на него не кладется например эффект ГостВизаж.. по той причине, что мы результат эффекта просто не увидим. Есть мысль что со светом тоже самое, поэтому я и предложил сделать объект видимым. |
![]()
Сообщение
#3404
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Gennady, спасибо, попробую.
Что касается световых эффектов, то, если я правильно поняла, скрипты с ними не работают собственно на источниках света. На фонаре и на жаровне скрипт Virusman'a не работает, как не работает и немного измененный, где эффекты типа VFX_DUR_GLOW_LIGHT_ХХХ заменены на VFX_DUR_LIGHT_ХХХ_20. Зато прекрасно работают на всех остальных объектах (типа фонтана или алтаря), если отменить им Static. Сообщение отредактировал shadowdweller - Aug 28 2007, 12:32 |
![]()
Сообщение
#3405
|
|
Level 17 ![]() Класс: Волшебник Характер: Neutral Good Раса: Человек NWN: Скриптинг [PW] Axistown SR 1.9 NWNX ![]() |
У меня в системе освещения всё прекрасно зажигалось - и невидимые объекты, и источники света.
Кстати, дайсы d10 кидаются от 1 до 10, а вот Random - действительно с 0. |
![]()
Сообщение
#3406
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Цитата Кстати, дайсы d10 кидаются от 1 до 10, а вот Random - действительно с 0. Спасибо Вирь, что поправил. Сто лет уже скрипты не писал… забыл, да видно и не знал. (IMG:style_emoticons/kolobok_light/biggrin.gif) |
![]()
Сообщение
#3407
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
А вот еще такая проблема - нужно, чтобы НПС красивенько лежали бы на полу, но при этом не были бы мертвыми. И чтобы не вскакивали, когда перс пытается с ними разговаривать.
Признаюсь честно - сдула из Shadows of Undrentide вот такой скрипт: Neverwinter Script Source #include "x0_i0_corpses" void main() { effect eKnock = EffectKnockdown(); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eKnock, OBJECT_SELF); } Ставится на OnSpawn. В итоге все неписи стоят на коленях, ложиться не желает ни один. Почему так происходит? |
![]()
Сообщение
#3408
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
Если мне не изменяет память - кноки бывают разные - на спину и на колени, от чего зависит - уже не помню. От силы кнока кажется, или рандомно... (IMG:style_emoticons/kolobok_light/vava.gif)
|
![]()
Сообщение
#3409
|
|
Level 17 ![]() Класс: Волшебник Характер: Neutral Good Раса: Человек NWN: Скриптинг [PW] Axistown SR 1.9 NWNX ![]() |
EffectKnockdown всегда ставит на колени.
nwnlexicon.com - там советую поискать константу по её части "FALL". |
![]()
Сообщение
#3410
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
shadowdweller, вот вам два скрипта… Один с эффектом сна, значит с персом нельзя будет говорить. Другой с анимацией и возможностью разбудить перса и поговорить с ним. Сон будет ночью, ну можно и задать свое время сна, т.е. значение int T…
Neverwinter Script Source //::////////////////////////////////////////////////// //:: СКРИПТ ДЛЯ СПЯЩИХ (МОЖНО ГОВОРИТЬ) //:: File name: de_sleep //:: Слот: OnHeartBeat //::////////////////////////////////////////////////// void main() { object oSelf = OBJECT_SELF; if(GetArea(GetFirstPC()) != GetArea(oSelf)) return; // если ПС нет в локе int T = GetTimeHour(); effect eSL = EffectVisualEffect(VFX_IMP_SLEEP); if (GetIsInCombat(oSelf)) return; if (IsInConversation(oSelf)) return; if(T>=7 && T<21) // день { ExecuteScript("nw_c2_default1", oSelf); SetLocalInt(oSelf,"SLEEP_ANIM",0); return; } AssignCommand(oSelf, ClearAllActions(TRUE)); if(GetLocalInt(oSelf,"SLEEP_ANIM")==0) { if(d2()==1) SetLocalInt(oSelf,"SLEEP_ANIM",1); else SetLocalInt(oSelf,"SLEEP_ANIM",2); } if(GetLocalInt(oSelf,"SLEEP_ANIM")==1) ActionPlayAnimation(ANIMATION_LOOPING_DEAD_FRONT, 1.0, 10.0); else ActionPlayAnimation(ANIMATION_LOOPING_DEAD_BACK, 1.0, 10.0); ApplyEffectToObject(DURATION_TYPE_INSTANT, eSL, oSelf); } /* Для корректной работы, у ходячих удалить скрипты nw_c2_default9 и nw_c2_default2 */ Neverwinter Script Source //:://////////////////////////////////////////////////
//:: СКРИПТ ДЛЯ СПЯЩИХ (НЕЛЬЗЯ ГОВОРИТЬ) //:: File name: ef_sleep //:: Слот: OnHeartBeat //::////////////////////////////////////////////////// void main() { object oSelf = OBJECT_SELF; effect eSleep = EffectSleep(); effect eSL = EffectVisualEffect(VFX_IMP_SLEEP); if(GetArea(GetFirstPC()) != GetArea(oSelf)) return; // если ПС нет в локе if(GetIsDay()) // день {ExecuteScript("nw_c2_default1", oSelf); return;} AssignCommand(oSelf, ClearAllActions(TRUE)); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSleep, oSelf, 10.0); ApplyEffectToObject(DURATION_TYPE_INSTANT, eSL, oSelf); } /* Для корректной работы, у ходячих удалить скрипты nw_c2_default9 и nw_c2_default2 */ |
![]() ![]() |
Текстовая версия | Сейчас: 30th July 2025 - 20:55 |