![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#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. Порабы знать. зы: и начинай уже сам пользоваться фильтром функций для поиска нужных функций по ключевым словам. |
![]()
Сообщение
#2796
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
Не сердись. Спасибо.
|
![]()
Сообщение
#2797
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
Млин, помогайте. Я уже запарился. Как сделать, чтобы в три часа, к примеру, выполнялись действия. Как проверить время?... (IMG:style_emoticons/kolobok_light/unsure.gif)
|
![]()
Сообщение
#2798
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Neverwinter Script Source int GetTimeHour() в любой периодическии исполняемый скрипт (например heartbeat модуля) ставишь проверку на время и нужные действия зы: поиск функций по слову "Time" зыы: функции работы с днем/месяцем/годом находятся по слову "calendar" |
![]()
Сообщение
#2799
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
Так?
Neverwinter Script Source ........
int i; i = GetTimeHour(); if( i == 12 ) { /* действия */ } ........ |
![]()
Сообщение
#2800
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
почти.
2 момента: - у тебя исполняться будет в течении игрового часа каждые 6 секунд - у тебя это исполняться будет каждый игровой день в это время решается просто (если день не важен. Если важен, надо заюзать проверку дня) Neverwinter Script Source int i;
i = GetTimeHour(); if( i == 12 ) && (!GetLocalInt(OBJECT_SELF,"do_once_12_hours")) { SetLocalInt(OBJECT_SELF,"do_once_12_hours",TRUE); /* действия */ } |
![]()
Сообщение
#2801
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
мне надо, чтобы каждый день повторялось. спасибо.
|
![]()
Сообщение
#2802
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
А для животных есть какая-нибудь анимация? Я что-то не нашел...
|
![]()
Сообщение
#2803
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
есть. Где-то четверть от анимационных констант работают для животных. Лечь, головой вертеть.. не помню какие еще.
|
![]()
Сообщение
#2804
|
|
Level 5 ![]() ![]() Класс: Друид Характер: True Neutral Раса: Человек ![]() |
Как уничтожить "декоративный трупик" скриптом (например через опцию в диалоге), созданный
Neverwinter Script Source object oNpc = OBJECT_SELF; SetIsDestroyable( FALSE, FALSE, FALSE ); ApplyEffectToObject( DURATION_TYPE_INSTANT, EffectDeath( TRUE, TRUE ), oNpc ); скриптом, который стоит на OnAppear (ну или на OnDeath)? Сообщение отредактировал Shadenuat - Oct 16 2007, 15:01 |
![]()
Сообщение
#2805
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Neverwinter Script Source void main( ) { SetIsDestroyable( TRUE, FALSE, FALSE ); DestroyObject( OBJECT_SELF ); } на строке диалога |
![]()
Сообщение
#2806
|
|
Level 5 ![]() ![]() Класс: Друид Характер: True Neutral Раса: Человек ![]() |
Это если трупик говорящий?
А можно применить действие SetIsDestroyable к тегу трупа? |
![]()
Сообщение
#2807
|
|
Level 12 ![]() Класс: Оборотень Характер: Chaotic Neutral Раса: Нежить NWN: Скриптинг [Sn] ![]() |
Цитата А можно применить действие SetIsDestroyable к тегу трупа? вот так можно променять объект для функции по умолчанию работающие с OBJECT_SELF. Neverwinter Script Source AssignCommand( GetObjectByTag( "TAG" ), SetIsDestroyable( TRUE ));
|
![]()
Сообщение
#2808
|
|
Level 5 ![]() ![]() Класс: Друид Характер: True Neutral Раса: Человек ![]() |
Второй день мучаюсь, наконец получилось что надо. Спасибо Lex, огромное спасибо Azathoth.
|
![]()
Сообщение
#2809
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
Я вот думал, думал... как сделать, чтобы анимация проигрывалась постоянно? Пока условие не станет ложным.
И, правильно ли это: Neverwinter Script Source i = GetTimeHour( ); // Типа, если время между 11 вечера и семи утра, то выполняется то-то и то-то. if( i > 23 && i < 7 ) { ...... } Заранее спасибо! П.С. Ах, еще забыл. Как засечь время. К примеру, мне нужно, чтобы строка диалога появлялась каждые три дня. На heartbeat ставить проверку? Ну, допустим, прошел час - прибавили к переменной единицу. А потом, когда в диалоге строка была использована, переменная обнуляется... (IMG:style_emoticons/kolobok_light/unsure.gif) А как определить, прошел ли час? (IMG:style_emoticons/kolobok_light/prankster2.gif) |
![]()
Сообщение
#2810
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
if( i > 23 && i < 7 ) у тебя не может быть число одновременно больше 23 и меньше 7. Ты бы проверил чтоли сам для начала (IMG:style_emoticons/kolobok_light/biggrin.gif) Добавлено через 2 минуты 33 секунды П.С. Ах, еще забыл. Как засечь время. К примеру, мне нужно, чтобы строка диалога появлялась каждые три дня. На heartbeat ставить проверку? Ну, допустим, прошел час - прибавили к переменной единицу. А потом, когда в диалоге строка была использована, переменная обнуляется... unsure.gif А как определить, прошел ли час? prankster2.gif лучше всего юзать старый (хз кем запатентованный) способ: переводить все в часы. Вплоть до года. Соотв. в начальный момент запоминаешь это мега число. Сравниваешь в ХБ, как только разница между текущей датой (переведенной в часы) станет ровна или превысит 72 - значит прошло ровно 3 суток с момента запоминания. Выполняй действие, а момент запоминания ставь текущий и все начнется по новой. Осилишь написать скрипт по такому описанию? Это всего лишь 3 строки кода. |
![]() ![]() |
Текстовая версия | Сейчас: 30th April 2025 - 11:55 |