![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#2771
|
|
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
Rowan, чтобы НПС не "пикировал" на точку появления, необходимо у функции:
Neverwinter Script Source bject CreateObject(int nObjectType, string sTemplate, location lLocation, int bUseAppearAnimation=FALSE, string sNewTag="") не использовать опцию "bUseAppearAnimation". Тогда все НПС или монстры будут появляться сразу же на локации, а не "припархивать" (IMG:style_emoticons/kolobok_light/smile.gif) Эффект же нужен для того, чтобы НПС успел сделать то, что ты от него хочешь. И при этом игрок не видел, что НПС упал или сел на стул после создания. Сообщение отредактировал Zirrex - Sep 16 2007, 20:30 |
![]()
Сообщение
#2772
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
(IMG:style_emoticons/kolobok_light/rolleyes.gif) Можно ли при выполнении сего скрипта НПС сидели на пятых точках. Такой скрипт стоит у нпс, но из-за размещенного ниже скрипта они подымаются и начинают беседу.
Neverwinter Script Source //::///////////////////////////////////////////////
//:: Name lm_2speakers //:: Copyright © 2004 -=WRG!=- //::////////////////////////////////////////////// /* скрипт разговора 2-х НПС. Шаблон. */ //::////////////////////////////////////////////// //:: Created By: Lex //:: Created On: Agust 2004 //::////////////////////////////////////////////// void ANIMATION(object oD) /// Рандомная анимация во время разговора. настраивайте сами. { int A=0; float T,S; switch (Random(8)+1) { case 2: A=ANIMATION_FIREFORGET_PAUSE_SCRATCH_HEAD;T=3.0;S=1.0;break; case 3: A=ANIMATION_FIREFORGET_TAUNT;T=3.0;S=1.0;break; case 4: A=ANIMATION_FIREFORGET_PAUSE_BORED;S=1.0;break; case 5: A=ANIMATION_LOOPING_LISTEN;T=5.0;S=1.0;break; case 6: A=ANIMATION_LOOPING_LISTEN;T=5.0;S=1.0;break; } if (A==0) return; AssignCommand(oD,PlayAnimation(A,S,T)); } void DIALOG(object oD1,object oD2) { string s1="",s2=""; string ya = GetName(GetObjectByTag("ya")); // "+ya+" switch (Random(30)) { case 0: s1="Как дела, друг?";s2="Да идут по маленьку..";break; case 1: s1="И как она? Симпатична"+ya+"?";s2="А как же! Ты мен"+ya+" обижаешь!";break; /// и так далее 20 фраз типа вопрос-выссказывание и ответ на это дело } AssignCommand(oD1,SpeakString(s1)); /// первый НПС говорит фразу AssignCommand(oD2,DelayCommand(5.0,SpeakString(s2))); /// второй отвечает } void main() { object oPC = GetFirstPC(); if (GetArea(oPC)!=GetArea(OBJECT_SELF)) return; // если нет игрока, то молчим object oD1 = GetNearestObjectByTag("SPEAKING_NPC_1"); // первый НПС object oD2 = GetNearestObjectByTag("SPEAKING_NPC_1"); // второй НПС if (GetIsInCombat(oD1)) return; // если первый НПС дерется то молчим if (GetIsInCombat(oD2)) return; // если второй НПС дерется то молчим if ( (IsInConversation(oD1)) || (IsInConversation(oD2)) ) return; /// если один из НПС разговаривает с игроком if (GetDistanceToObject(oPC)>10.0) return; // если игрок далеко (больше 10 футов) то он как будто ничего не слышит. AssignCommand(oD1,SetFacingPoint(GetPosit ion(oD2))); // повернуться навтречу друг другу AssignCommand(oD2,SetFacingPoint(GetPosition(oD1)) ; DIALOG(oD1,oD2); ANIMATION(oD1); ANIMATION(oD2); } |
![]()
Сообщение
#2773
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
убрать анимацию, тогда подыматься не будут.
|
![]()
Сообщение
#2774
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
А как добавить свою озвучку? К диалогам? И как ее потом в этот скрипт запихнуть?.. э... сорри за такой, может, широкий вопрос... (IMG:style_emoticons/kolobok_light/vava.gif)
|
![]()
Сообщение
#2775
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
свою озвучку это в Контент (если по простому - музыка + 2дашка, там вроде бы просто, но я не делал никогда).
А в скрипт ее через PlaySound |
![]()
Сообщение
#2776
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
Хм... а это не заткнет фоновую музыку? (IMG:style_emoticons/kolobok_light/rolleyes.gif)
П.С. Можно ли каки-либо способом управлять цветом/количеством тумана? Дождем/молниями? С помощью скриптов, естественно... Хотелось бы написать скрипт с несколькими видами погоды, а потом, чтобы они воспроизводились в случайном порядке и на какое-то время... (IMG:style_emoticons/kolobok_light/declare.gif) Сообщение отредактировал Белатрис - Sep 27 2007, 10:17 |
![]()
Сообщение
#2777
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
а это не заткнет фоновую музыку? смотря как настроишь. П.С. Можно ли каки-либо способом управлять цветом/количеством тумана? Дождем/молниями? С помощью скриптов, естественно... Хотелось бы написать скрипт с несколькими видами погоды, а потом, чтобы они воспроизводились в случайном порядке и на какое-то время... скриптами можно. Все функции есть. (для тумана ищи по Fog, для погоды по weather) |
![]()
Сообщение
#2778
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
Хм... ну нашел... правда не очень помогло. Собственно, как объявить этот тумаН? Тут, нечто сложное... А цвет задавать в RGB(и, кстати, как, просто "=" )?
Заранее спасибо. (IMG:style_emoticons/kolobok_light/unsure.gif) |
![]()
Сообщение
#2779
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
есть контснты цвета, а дальше.. дома посмотрю библу для тумана, у меня есть, там вроде не совсем РГБ, а что-то хитрое.
|
![]()
Сообщение
#2780
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
Ждем-с...
П.С. А как проверить наличие определенного кол-ва золота? П.С. Где-то встречал такой вопрос, но ответ на него не помню... Как с помощью скриптов повысить силу/ловкость/ и т.д.? Заранее спасибо =) |
![]()
Сообщение
#2781
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
П.С. А как проверить наличие определенного кол-ва золота? фе, батенька, такие вещи впору уже самому знать. функция GetGold или что-то похожее. Поиск в фильтре функций по слову "gold" поможет. Как с помощью скриптов повысить силу/ловкость/ и т.д.? тоже баян. 2 способа: - эффектами. EffectAbilityIncrease (в правильности написания не слова "абилити" уверен). Наложение эффекта - ApplyEffectToObject - шкуркой. Создание в палитре шкурки (на нивидимый "животный" слот), одевание ее на игрока в начале модуля и добавление на нее свойств по мере необходимости. AddItemProperty - наложение свойства, а задачу самого свойства я не помню, поищи по "Property". |
![]()
Сообщение
#2782
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
Neverwinter Script Source фе, батенька, такие вещи впору уже самому знать. функция GetGold или что-то похожее. Поиск в фильтре функций по слову "gold" поможет. Ну, дать одно - проверить наличие... немного другое. МОжет, все же напишешь? Плз =) П.С. Вот у меня такая штука завелась... млин... в общем, в инвентаре волка есть когти, шкура и что-нибудь еще. Если, к примеру, переменная i равна нулю, а остальные(зависит от чего-то в инвентаре) 1, то шкурки в инвентаре не видно... О, в голову пришла идея... А что, если на onDeath поставить проверку. Типа, если переменная i равна нулю, то дестроить боъект?... гы... (IMG:style_emoticons/kolobok_light/crazy.gif) Сообщение отредактировал Белатрис - Sep 28 2007, 12:06 |
![]()
Сообщение
#2783
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Ну, дать одно - проверить наличие... немного другое. МОжет, все же напишешь? Плз =) Пжалуйста: Neverwinter Script Source void main() { object oPC = GetFirstPC(); int iGold = GetGold(oPC); effect eSTR = EffectAbilityIncrease(ABILITY_STRENGTH, 1); // Проверить золото if(iGold > 100) {/*Что делаем... */} // Накладываем эффекты ApplyEffectToObject(DURATION_TYPE_PERMANENT, eSTR, oPC); // или чтобы не снималсЯ ApplyEffectToObject(DURATION_TYPE_PERMANENT, SupernaturalEffect(eSTR), oPC); } |
![]()
Сообщение
#2784
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Ну, дать одно - проверить наличие... немного другое. МОжет, все же напишешь? Плз =) я ж тебе выше написал, функция GetGold П.С. Вот у меня такая штука завелась... млин... в общем, в инвентаре волка есть когти, шкура и что-нибудь еще. Если, к примеру, переменная i равна нулю, а остальные(зависит от чего-то в инвентаре) 1, то шкурки в инвентаре не видно... О, в голову пришла идея... А что, если на onDeath поставить проверку. Типа, если переменная i равна нулю, то дестроить боъект?... гы... crazy.gif проще на смерть волка определять что нужно и это создавать. |
![]()
Сообщение
#2785
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
gennady, спасибо! Огромное!
Цитата проще на смерть волка определять что нужно и это создавать. Спасибо, но я уже сделал. (IMG:style_emoticons/kolobok_light/rolleyes.gif) А вот еще вопрос. Я сколько не шарил в базе - не нашел. Я бы хотел сделать рассписание НПС. Что он будет делать, допустим, в два - пойдет к костру и будет сидеть до следующего действия... Но вот как это осуществить не представляю... |
![]()
Сообщение
#2786
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
ут, нечто сложное... А цвет задавать в RGB(и, кстати, как, просто "=" )? не нашел я функцию, где раскладывался RGB. В общем там да, цвет задается числом от 000000 до ffffff. Только в десятичном виде (те белый там что-то около 167к)А вот еще вопрос. Я сколько не шарил в базе - не нашел. Я бы хотел сделать рассписание НПС. Что он будет делать, допустим, в два - пойдет к костру и будет сидеть до следующего действия... Но вот как это осуществить не представляю... для базы это слишком сложные скрипты. Хотя фактически это просто система анимации с условиями на игровое время. О системе анимации читать тут: http://www.wrg.ru/index.php?method=reviews...d=14&sub=do (до половины идут принципе построения самой анимации, дальше разбор моей системы анимирования НПС)
|
![]()
Сообщение
#2787
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
Цитата не нашел я функцию, где раскладывался RGB. В общем там да, цвет задается числом от 000000 до ffffff. Только в десятичном виде (те белый там что-то около 167к) Т.е. из 16-ой просто перевести в 10-ую?.. Мда... А как насчет того, чтобы ответить на сий вопросик:Цитата Собственно, как объявить этот тумаН? Тут, нечто сложное... Хм... подправьте кто-нибудь: Neverwinter Script Source void main()
{ object oENTER = GetEnteringObject(); object oDEKAR = GetObjectByTag("dekar"); if ( oENTER != oDEKAR ) return; else SetLocalInt(oDEKAR, "RUN", 1); } Сообщение отредактировал Белатрис - Sep 29 2007, 11:33 |
![]()
Сообщение
#2788
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
лучше так:
Neverwinter Script Source void main() { object oENTER = GetEnteringObject(); if GetTag(oENTER) == "dekar" SetLocalInt(oENTER, "RUN", 1); } Мда... А как насчет того, чтобы ответить на сий вопросик: я ж тебе сказал, фильтр функций по слову FOG. Neverwinter Script Source // Sets the fog color in the area specified.
void SetFogColor(int nFogType,int nFogColor,object oArea = OBJECT_INVALID); |
![]()
Сообщение
#2789
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
Цитата лучше так: Спасибки =) Э... извини... я, если честно, плохо понимаю эти "подсказки"... в комментариях написанно для чего, а чем помогает эта строчка: Neverwinter Script Source void SetFogColor(int nFogType,int nFogColor,object oArea = OBJECT_INVALID); я пока не понимаю. Объяснишь? Еще раз прошу прощения за назойливость... (IMG:style_emoticons/kolobok_light/unsure.gif) Сообщение отредактировал Белатрис - Sep 29 2007, 13:57 |
![]()
Сообщение
#2790
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
омг.. Тебе тады в Вопросы Новичков.
Neverwinter Script Source void main() { object oArea = GetArea(GetFirstPC()); SetFogColor(FOG_TYPE_ALL, FOG_COLOR_RED, oArea); } Этот скрипт сделает цвет тумана в локации красным. Можно поставить куда угодно. |
![]()
Сообщение
#2791
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
Спасибо, теперь я понял, наконец. (IMG:style_emoticons/kolobok_light/rolleyes.gif)
Сообщение отредактировал Белатрис - Sep 29 2007, 15:29 |
![]() ![]()
Сообщение
#2792
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
Собственно, я хочу, чтобы туман увеличивался постепенно. А он сразу - БАХ и много =( и дождь вместе с ним сразу начинает лить... А звук задерживается... вот...
Neverwinter Script Source void main()
{ int i; object oArea = GetArea(GetFirstPC()); // Цвет тумана SetFogColor(FOG_TYPE_ALL, FOG_COLOR_GREY, oArea); // Постепенное увеличение тумана for( i = 5; i < 91; i++ ) { SetFogAmount(FOG_TYPE_SUN, i, oArea); ActionWait(0.5); } // Сейчас пойдет дождик =) ActionWait(5.0); SetWeather(oArea, WEATHER_RAIN); } Сообщение отредактировал Белатрис - Sep 30 2007, 04:39 |
![]()
Сообщение
#2793
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
мдя... ессно он сразу и много.
через DelayCommand делать нужно. Да и даже если бы работало, полсекунды - мало. зы: Actions идут в стек и выполняются по очереди и имеют некую длительность, а команды (в тч и SetColorFog) исполняются почти сразу и все. зыы: и грузить акшн-лист игрока для переключения тумана - не фонтан (IMG:style_emoticons/kolobok_light/smile.gif) Neverwinter Script Source void main()
{ int i; object oArea = GetArea(GetFirstPC()); // Цвет тумана SetFogColor(FOG_TYPE_ALL, FOG_COLOR_GREY, oArea); // задержка float fDelay = 0.0; // Постепенное увеличение тумана for( i = 5; i < 91; i++ ) { DelayCommand(fDelay,SetFogAmount(FOG_TYPE_SUN, i, oArea)); fDelay = fDelay + 1.0; } // Сейчас пойдет дождик DelayCommand(fDelay,SetWeather(oArea, WEATHER_RAIN)); } |
![]()
Сообщение
#2794
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
Хм... Извини, я немного подкорректировал. Выглядит довольно реалистично. (IMG:style_emoticons/kolobok_light/rolleyes.gif)
Neverwinter Script Source void main() { int i; object oArea = GetArea(GetFirstPC()); // Цвет тумана SetFogColor(FOG_TYPE_ALL, FOG_COLOR_GREY, oArea); // задержка float fDelay = 0.0; // Постепенное увеличение тумана for( i = 5; i < 61; i++ ) { DelayCommand(fDelay,SetFogAmount(FOG_TYPE_SUN, i, oArea)); fDelay = fDelay + 0.2; if( i == 18 ) { // Сейчас пойдет дождик DelayCommand(fDelay,SetWeather(oArea, WEATHER_RAIN)); } } } Из-за большого значения туман мигает. Т.е. пропадает, появляется(больше на единицу), пропадает, появляет и т.д. П.С. А как перевести из float в int и наоборот? Сообщение отредактировал Белатрис - Sep 30 2007, 12:09 |
![]()
Сообщение
#2795
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Хм... Извини, я немного подкорректировал. Выглядит довольно реалистично. да мне пофиг, я твой скрипт поменял чтобы он работал, а "красиво выглядит" это уже не моя забота, а твоя. как перевести из float в int и наоборот? IntToFloat, FloatToInt. Порабы знать. зы: и начинай уже сам пользоваться фильтром функций для поиска нужных функций по ключевым словам. |
![]() ![]() |
Текстовая версия | Сейчас: 28th July 2025 - 05:27 |