Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 111 112 113 114 115 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
Lex
сообщение Sep 29 2007, 10:52
Сообщение #2786


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Цитата(Белатрис @ Sep 27 2007, 15:18) *
ут, нечто сложное... А цвет задавать в RGB(и, кстати, как, просто "=" )?
не нашел я функцию, где раскладывался RGB. В общем там да, цвет задается числом от 000000 до ffffff. Только в десятичном виде (те белый там что-то около 167к)
Цитата(Белатрис @ Sep 29 2007, 11:45) *
А вот еще вопрос. Я сколько не шарил в базе - не нашел. Я бы хотел сделать рассписание НПС. Что он будет делать, допустим, в два - пойдет к костру и будет сидеть до следующего действия... Но вот как это осуществить не представляю...
для базы это слишком сложные скрипты. Хотя фактически это просто система анимации с условиями на игровое время. О системе анимации читать тут: http://www.wrg.ru/index.php?method=reviews...d=14&sub=do (до половины идут принципе построения самой анимации, дальше разбор моей системы анимирования НПС)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Белатрис
сообщение Sep 29 2007, 11:11
Сообщение #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
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Sep 29 2007, 12:18
Сообщение #2788


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



лучше так:
Neverwinter Script Source
void main()
{   
  object oENTER = GetEnteringObject();   
  if GetTag(oENTER) == "dekar"
          SetLocalInt(oENTER, "RUN", 1);
}


Цитата(Белатрис @ Sep 29 2007, 12:11) *
Мда... А как насчет того, чтобы ответить на сий вопросик:

я ж тебе сказал, фильтр функций по слову FOG.
Neverwinter Script Source
// Sets the fog color in the area specified.
void SetFogColor(int nFogType,int nFogColor,object oArea = OBJECT_INVALID);
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Белатрис
сообщение Sep 29 2007, 13:56
Сообщение #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
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Sep 29 2007, 14:46
Сообщение #2790


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



омг.. Тебе тады в Вопросы Новичков.
Neverwinter Script Source
void main()
{
    object oArea = GetArea(GetFirstPC());
    SetFogColor(FOG_TYPE_ALL, FOG_COLOR_RED, oArea);
}

Этот скрипт сделает цвет тумана в локации красным. Можно поставить куда угодно.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Белатрис
сообщение Sep 29 2007, 15:28
Сообщение #2791


Level 11
***

Класс: Воин
Характер: Lawful Good
Раса: Человек



Спасибо, теперь я понял, наконец. (IMG:style_emoticons/kolobok_light/rolleyes.gif)

Сообщение отредактировал Белатрис - Sep 29 2007, 15:29
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Белатрис
сообщение Sep 30 2007, 03:54
Сообщение #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
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Sep 30 2007, 11:38
Сообщение #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));
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Белатрис
сообщение Sep 30 2007, 12:08
Сообщение #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
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Sep 30 2007, 12:52
Сообщение #2795


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Цитата(Белатрис @ Sep 30 2007, 13:08) *
Хм... Извини, я немного подкорректировал. Выглядит довольно реалистично.

да мне пофиг, я твой скрипт поменял чтобы он работал, а "красиво выглядит" это уже не моя забота, а твоя.
Цитата(Белатрис @ Sep 30 2007, 13:08) *
как перевести из float в int и наоборот?

IntToFloat, FloatToInt. Порабы знать.

зы: и начинай уже сам пользоваться фильтром функций для поиска нужных функций по ключевым словам.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Белатрис
сообщение Sep 30 2007, 13:24
Сообщение #2796


Level 11
***

Класс: Воин
Характер: Lawful Good
Раса: Человек



Не сердись. Спасибо.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Белатрис
сообщение Oct 2 2007, 11:42
Сообщение #2797


Level 11
***

Класс: Воин
Характер: Lawful Good
Раса: Человек



Млин, помогайте. Я уже запарился. Как сделать, чтобы в три часа, к примеру, выполнялись действия. Как проверить время?... (IMG:style_emoticons/kolobok_light/unsure.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Oct 2 2007, 13:29
Сообщение #2798


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Neverwinter Script Source
int GetTimeHour()


в любой периодическии исполняемый скрипт (например heartbeat модуля) ставишь проверку на время и нужные действия

зы: поиск функций по слову "Time"
зыы: функции работы с днем/месяцем/годом находятся по слову "calendar"
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Белатрис
сообщение Oct 2 2007, 14:04
Сообщение #2799


Level 11
***

Класс: Воин
Характер: Lawful Good
Раса: Человек



Так?
Neverwinter Script Source
........
int i;
i = GetTimeHour();
if( i == 12 )
{
    /* действия */
}
........
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Oct 2 2007, 14:49
Сообщение #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);
    /* действия */
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Белатрис
сообщение Oct 2 2007, 14:59
Сообщение #2801


Level 11
***

Класс: Воин
Характер: Lawful Good
Раса: Человек



мне надо, чтобы каждый день повторялось. спасибо.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Белатрис
сообщение Oct 5 2007, 12:28
Сообщение #2802


Level 11
***

Класс: Воин
Характер: Lawful Good
Раса: Человек



А для животных есть какая-нибудь анимация? Я что-то не нашел...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Oct 5 2007, 12:38
Сообщение #2803


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



есть. Где-то четверть от анимационных констант работают для животных. Лечь, головой вертеть.. не помню какие еще.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Shadenuat
сообщение Oct 16 2007, 15:00
Сообщение #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
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Oct 16 2007, 15:47
Сообщение #2805


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Neverwinter Script Source
void main( )
{
SetIsDestroyable( TRUE, FALSE, FALSE );
DestroyObject( OBJECT_SELF );
}

на строке диалога
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Shadenuat
сообщение Oct 16 2007, 18:06
Сообщение #2806


Level 5
**

Класс: Друид
Характер: True Neutral
Раса: Человек



Это если трупик говорящий?
А можно применить действие SetIsDestroyable к тегу трупа?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
azathoth
сообщение Oct 16 2007, 19:54
Сообщение #2807


Level 12
Иконки Групп

Класс: Оборотень
Характер: Chaotic Neutral
Раса: Нежить
NWN: Скриптинг [Sn]



Цитата
А можно применить действие SetIsDestroyable к тегу трупа?

вот так можно променять объект для функции по умолчанию работающие с OBJECT_SELF.
Neverwinter Script Source
AssignCommand( GetObjectByTag( "TAG" ), SetIsDestroyable( TRUE ));
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Shadenuat
сообщение Oct 17 2007, 12:20
Сообщение #2808


Level 5
**

Класс: Друид
Характер: True Neutral
Раса: Человек



Второй день мучаюсь, наконец получилось что надо. Спасибо Lex, огромное спасибо Azathoth.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Белатрис
сообщение Oct 17 2007, 13:36
Сообщение #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)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Oct 17 2007, 14:06
Сообщение #2810


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Цитата(Белатрис @ Oct 17 2007, 14:36) *
if( i > 23 && i < 7 )

у тебя не может быть число одновременно больше 23 и меньше 7. Ты бы проверил чтоли сам для начала (IMG:style_emoticons/kolobok_light/biggrin.gif)

Добавлено через 2 минуты 33 секунды

Цитата(Белатрис @ Oct 17 2007, 14:36) *
П.С. Ах, еще забыл. Как засечь время. К примеру, мне нужно, чтобы строка диалога появлялась каждые три дня. На heartbeat ставить проверку? Ну, допустим, прошел час - прибавили к переменной единицу. А потом, когда в диалоге строка была использована, переменная обнуляется... unsure.gif А как определить, прошел ли час? prankster2.gif

лучше всего юзать старый (хз кем запатентованный) способ: переводить все в часы. Вплоть до года. Соотв. в начальный момент запоминаешь это мега число. Сравниваешь в ХБ, как только разница между текущей датой (переведенной в часы) станет ровна или превысит 72 - значит прошло ровно 3 суток с момента запоминания. Выполняй действие, а момент запоминания ставь текущий и все начнется по новой. Осилишь написать скрипт по такому описанию? Это всего лишь 3 строки кода.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 111 112 113 114 115 > » 
Ответить в эту темуОткрыть новую тему
5 чел. читают эту тему (гостей: 5, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 30th April 2025 - 11:55