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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 110 111 112 113 114 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
Zirrex
сообщение Sep 15 2007, 23:26
Сообщение #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
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Белатрис
сообщение Sep 26 2007, 12:07
Сообщение #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);
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Sep 26 2007, 13:31
Сообщение #2773


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

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



убрать анимацию, тогда подыматься не будут.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Белатрис
сообщение Sep 27 2007, 04:10
Сообщение #2774


Level 11
***

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



А как добавить свою озвучку? К диалогам? И как ее потом в этот скрипт запихнуть?.. э... сорри за такой, может, широкий вопрос... (IMG:style_emoticons/kolobok_light/vava.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Sep 27 2007, 08:26
Сообщение #2775


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

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



свою озвучку это в Контент (если по простому - музыка + 2дашка, там вроде бы просто, но я не делал никогда).
А в скрипт ее через PlaySound
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Белатрис
сообщение Sep 27 2007, 10:14
Сообщение #2776


Level 11
***

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



Хм... а это не заткнет фоновую музыку? (IMG:style_emoticons/kolobok_light/rolleyes.gif)

П.С. Можно ли каки-либо способом управлять цветом/количеством тумана? Дождем/молниями? С помощью скриптов, естественно... Хотелось бы написать скрипт с несколькими видами погоды, а потом, чтобы они воспроизводились в случайном порядке и на какое-то время... (IMG:style_emoticons/kolobok_light/declare.gif)

Сообщение отредактировал Белатрис - Sep 27 2007, 10:17
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Sep 27 2007, 14:10
Сообщение #2777


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

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



Цитата(Белатрис @ Sep 27 2007, 11:14) *
а это не заткнет фоновую музыку?

смотря как настроишь.
Цитата(Белатрис @ Sep 27 2007, 11:14) *
П.С. Можно ли каки-либо способом управлять цветом/количеством тумана? Дождем/молниями? С помощью скриптов, естественно... Хотелось бы написать скрипт с несколькими видами погоды, а потом, чтобы они воспроизводились в случайном порядке и на какое-то время...

скриптами можно. Все функции есть. (для тумана ищи по Fog, для погоды по weather)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Белатрис
сообщение Sep 27 2007, 14:18
Сообщение #2778


Level 11
***

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



Хм... ну нашел... правда не очень помогло. Собственно, как объявить этот тумаН? Тут, нечто сложное... А цвет задавать в RGB(и, кстати, как, просто "=" )?
Заранее спасибо. (IMG:style_emoticons/kolobok_light/unsure.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Sep 27 2007, 17:06
Сообщение #2779


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

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



есть контснты цвета, а дальше.. дома посмотрю библу для тумана, у меня есть, там вроде не совсем РГБ, а что-то хитрое.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Белатрис
сообщение Sep 28 2007, 06:22
Сообщение #2780


Level 11
***

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



Ждем-с...

П.С. А как проверить наличие определенного кол-ва золота?
П.С. Где-то встречал такой вопрос, но ответ на него не помню... Как с помощью скриптов повысить силу/ловкость/ и т.д.?
Заранее спасибо =)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Sep 28 2007, 08:10
Сообщение #2781


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

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



Цитата(Белатрис @ Sep 28 2007, 07:22) *
П.С. А как проверить наличие определенного кол-ва золота?

фе, батенька, такие вещи впору уже самому знать. функция GetGold или что-то похожее. Поиск в фильтре функций по слову "gold" поможет.

Цитата(Белатрис @ Sep 28 2007, 07:22) *
Как с помощью скриптов повысить силу/ловкость/ и т.д.?

тоже баян. 2 способа:
- эффектами. EffectAbilityIncrease (в правильности написания не слова "абилити" уверен). Наложение эффекта - ApplyEffectToObject
- шкуркой. Создание в палитре шкурки (на нивидимый "животный" слот), одевание ее на игрока в начале модуля и добавление на нее свойств по мере необходимости. AddItemProperty - наложение свойства, а задачу самого свойства я не помню, поищи по "Property".
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Белатрис
сообщение Sep 28 2007, 08:29
Сообщение #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
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Sep 29 2007, 07:00
Сообщение #2783


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

Класс: Обыватель
Характер: Lawful Good
Раса: Человек
NWN: Модмейкер
Рыцарская Сага



Цитата(Белатрис @ Sep 28 2007, 09:29) *
Ну, дать одно - проверить наличие... немного другое. МОжет, все же напишешь? Плз =)

Пжалуйста:
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);
}


Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Sep 29 2007, 09:56
Сообщение #2784


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

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



Цитата(Белатрис @ Sep 28 2007, 09:29) *
Ну, дать одно - проверить наличие... немного другое. МОжет, все же напишешь? Плз =)

я ж тебе выше написал, функция GetGold

Цитата(Белатрис @ Sep 28 2007, 09:29) *
П.С. Вот у меня такая штука завелась... млин... в общем, в инвентаре волка есть когти, шкура и что-нибудь еще. Если, к примеру, переменная i равна нулю, а остальные(зависит от чего-то в инвентаре) 1, то шкурки в инвентаре не видно... О, в голову пришла идея... А что, если на onDeath поставить проверку. Типа, если переменная i равна нулю, то дестроить боъект?... гы... crazy.gif

проще на смерть волка определять что нужно и это создавать.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Белатрис
сообщение Sep 29 2007, 10:45
Сообщение #2785


Level 11
***

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



gennady, спасибо! Огромное!

Цитата
проще на смерть волка определять что нужно и это создавать.

Спасибо, но я уже сделал. (IMG:style_emoticons/kolobok_light/rolleyes.gif)

А вот еще вопрос. Я сколько не шарил в базе - не нашел. Я бы хотел сделать рассписание НПС. Что он будет делать, допустим, в два - пойдет к костру и будет сидеть до следующего действия... Но вот как это осуществить не представляю...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
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. Порабы знать.

зы: и начинай уже сам пользоваться фильтром функций для поиска нужных функций по ключевым словам.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

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

 



Текстовая версия Сейчас: 28th July 2025 - 05:27