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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 109 110 111 112 113 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
sKaa
сообщение Sep 8 2007, 22:00
Сообщение #2751


Level 4
**

Класс: Пьяный Мастер
Характер: True Neutral
Раса: Человек



попробуй так
Neverwinter Script Source
float fDelay;
nDam1 = d10(20);
nDam2 = d10(5);
fDelay = IntToFloat(Random(2+1));
eDam = EffectDamage(nDam1, DAMAGE_TYPE_FIRE);
eDam2 = EffectDamage(nDam2, DAMAGE_TYPE_MAGICAL);
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget));
fDelay = IntToFloat(Random(2+1));
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam2, oTarget));


Сообщение отредактировал Lex - Sep 10 2007, 08:26
Причины изменения: Neo: нет, ну я предупреждал? устное последнее китайское
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Rowan
сообщение Sep 11 2007, 00:26
Сообщение #2752


Level 1


Класс: Пьяный Мастер
Характер: Chaotic Neutral
Раса: Человек



Здравствуйте! Я в скриптинге совсем новичок, поэтому, возможно, спрошу глупость, но я пытаюсь разобраться с этим уже второй день и ничего не получается (IMG:style_emoticons/kolobok_light/crazy.gif) Гугл перерыла, туториалы перебрала, уже сил нет... короче, мне надо заставить непися (НВН1) спавниться с EffectKnockdown -

Код
effect eEffect;
eEffect = EffectKnockdown();

ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);


- как-то так.
Это вроде как-то можно сделать через опцию Variables (правой кнопкой по имени непися)? В конце дефолтного скрипта onSpawn я этот код пробовала дописывать, не срабатывает, непись появляется стоя. Надо user defined писать? Или как-то еще?..

То же самое и с сидением, кстати. Не могу заставить непися появиться сидя (IMG:style_emoticons/kolobok_light/sad.gif) У меня есть вот такой user defined скрипт

Код
//::///////////////////////////////////////////////
//:: Name x2_def_userdef
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
    Default On User Defined Event script
*/
//:://////////////////////////////////////////////
//:: Created By: Keith Warner
//:: Created On: June 11/03
//:://////////////////////////////////////////////
const int EVENT_USER_DEFINED_PRESPAWN = 1510;
const int EVENT_USER_DEFINED_POSTSPAWN = 1511;
void main()
{
    int nUser = GetUserDefinedEventNumber();
    if(nUser == EVENT_HEARTBEAT ) //HEARTBEAT
    {
    }
    else if(nUser == EVENT_PERCEIVE) // PERCEIVE
    {
    }
    else if(nUser == EVENT_END_COMBAT_ROUND) // END OF COMBAT
    {
    }
    else if(nUser == EVENT_DIALOGUE) // ON DIALOGUE
    {
    }
    else if(nUser == EVENT_ATTACKED) // ATTACKED
    {
    }
    else if(nUser == EVENT_DAMAGED) // DAMAGED
    {
    }
    else if(nUser == 1007) // DEATH  - do not use for critical code, does not fire reliably all the time
    {
    }
    else if(nUser == EVENT_DISTURBED) // DISTURBED
    {
    }
    else if (nUser == EVENT_USER_DEFINED_PRESPAWN)
    {
    ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS, 1.0, 99999.9);
    }
    else if (nUser == EVENT_USER_DEFINED_POSTSPAWN)
    {
    ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS, 1.0, 99999.9);
    }

}

Но один он тоже не срабатывает, неписи стоя спавнятся. Где-то что-то еще надо прописать?..
Спасибо большое!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
shadowdweller
сообщение Sep 11 2007, 07:09
Сообщение #2753


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

Класс: Вор
Характер: Chaotic Good
Раса: Эльф
МАСТЕР Переводов



Rowan, попробуй вот это на OnSpawn
Neverwinter Script Source
#include "x0_i0_corpses"

void main()
{
    effect eKnock = EffectKnockdown();
    ApplyEffectToObject(DURATION_TYPE_PERMANENT, eKnock, OBJECT_SELF);
}

Если при этом бухается на колени, а тебе нужно, чтобы лежал, просто поверни под другим углом.
Что касается спавна сидя, можно на OnPerception попробовать так:
Neverwinter Script Source
//Goes OnPerceived of a creature

void main()
{

object oPC = GetLastPerceived();

if (!GetIsPC(oPC)) return;

if (!GetLastPerceptionSeen()) return;
ClearAllActions();

ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS, 1.0f, 9000.0f);

}

Он все равно спавнится стоя, потом сразу садится. Но чтобы этого в игре не было видно, выстави ему в свойствах - вкладка Advanced - Perception Range - Long.

Сообщение отредактировал shadowdweller - Sep 11 2007, 07:19
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Rowan
сообщение Sep 11 2007, 21:45
Сообщение #2754


Level 1


Класс: Пьяный Мастер
Характер: Chaotic Neutral
Раса: Человек



Все протестила.
EffectKnockdown опять не отработал, непись спавнится стоя. Я подумала - это не может быть потому, что где-то еще у него прописан скрипт, который заставляет его стоять? На OnPerception у него, к примеру, стоит дефолтное x2_def_percept
Код
void main()
{
    ExecuteScript("nw_c2_default2", OBJECT_SELF);
}

Этот nw_c2_default2 не может перебивать те команды (лежать в данном случае), который пытаюсь назначить неписю я?

Кстати, #include "x0_i0_corpses" - это он не мертвым появиться должен? Мне нужен живым ))

И насчет сидячего нпс. Задумка такая, что при желании его можно выбрать в спутники. Perception Range - Long в таком случае будет ему лишним, нет?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
shadowdweller
сообщение Sep 11 2007, 22:27
Сообщение #2755


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

Класс: Вор
Характер: Chaotic Good
Раса: Эльф
МАСТЕР Переводов



Вот комплекс скриптов, которые стоят у меня на неписе, у которого эффект Knockdown прекрасно работает:
Код
OnBlocked - x2_def_onblocked
OnCombatRoundEnd - x2_def_endcombat
OnConversation - x2_def_onconv
OnDamaged - x2_def_ondamage
OnDeath - x2_def_ondeath
OnDisturbed - x2_def_ondisturb
OnHeartbeat - x2_def_heartbeat
OnPerception - x2_def_percept
OnPhysicalAttacked - x2_def_attacked
OnRested - x2_def_rested
OnSpawn - тот скрипт, который я тебе кинула
OnSpellcast - x2_def_spellcast
OnUserdefined - x2_def_userdef

При таком комплекте скриптов работает прекрасно. Попробуй те скрипты, которые стоят у непися, поменять на эти.
Код
#include "x0_i0_corpses"
- не будет он мертвым. У меня, во всяком случае, живехонек. (IMG:style_emoticons/kolobok_light/smile.gif)
Если НПС хенчмен в перспективе - попробуй усадить его на триггере. У хенчмена совершенно другой комплект скриптов, называется "set_xp1_henchmen", и менять дефолтный скрипт OnSpawn на другой не стоит, равно как и OnPerception.

Сообщение отредактировал shadowdweller - Sep 11 2007, 22:49
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Rowan
сообщение Sep 12 2007, 02:20
Сообщение #2756


Level 1


Класс: Пьяный Мастер
Характер: Chaotic Neutral
Раса: Человек



Цитата
Попробуй те скрипты, которые стоят у непися, поменять на эти.

Ничего не понимаю. У меня все тоже самое, но непись, зар-раза, спавнится стоя ((((

А почему неписю нельзя менять дефолтные скрипты, пока он не хенчмэн? Если я правильно тебя поняла, весь набор все равно заменится, когда непись перейдет в разряд спутников, нет?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Sep 12 2007, 08:01
Сообщение #2757


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

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



Цитата
А почему неписю нельзя менять дефолтные скрипты, пока он не хенчмэн? Если я правильно тебя поняла, весь набор все равно заменится, когда непись перейдет в разряд спутников, нет?

Набор скриптов не заменится, нужно хенчу все сразу ставить, + если хотите в дальнейшем поднимать уровни, то у хенча должен стоять только первый… И вообще что за дилемма со скриптами на загрузку? Зачем туда переть эффекты? При первом клике сидячий НПС поднимется и будет стоять все время… Кому это надо? Такие скрипты нужно ставить на ХБ, примеров было уже море. К тому же скрипты на загрузку имеют тенденцию не сработать при загрузке мода. Их лучше непосредственно использовать при вызове существа из палитре уже во время игры…

См. скрипты в этой теме по поиску, или откройте базу скриптов, или эту тему Монстры

Сообщение отредактировал gennady - Sep 4 2010, 16:51
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
shadowdweller
сообщение Sep 12 2007, 08:16
Сообщение #2758


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

Класс: Вор
Характер: Chaotic Good
Раса: Эльф
МАСТЕР Переводов



Спавнится стоя и потом так и стоит?? (IMG:style_emoticons/kolobok_light/shok.gif) Ничччего не понимаю. Он у меня спавнится стоя, признаюсь, но стоит какую-то долю секунды, потом падает, в принципе, даже не успеваешь ничего заметить.
Насчет хенча - это один из самых серьезных моментов игры. Хенча надо долго и тщательно настраивать. Комплект скриптов, необходимых для хенча, выставляется ему сразу же, вручную. Так что если ты хочешь, чтобы потенциальный хенч у тебя сидел, лучше сделай это как триггер. Попробуй так
Neverwinter Script Source
//Put this script OnEnter
void main()
{

object oPC = GetEnteringObject();

if (!GetIsPC(oPC)) return;

int DoOnce = GetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF));
if (DoOnce==TRUE) return;

SetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF), TRUE);
object oTarget;
oTarget = GetObjectByTag("HENCH");

AssignCommand(oTarget, ClearAllActions());
AssignCommand(oTarget, ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS, 1.0f, 6000.0f));

}

По идее, как только игрок будет входить на триггер, НПС будет садиться. А триггер тем и хорош, что его можно разместить в локации где угодно (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
azathoth
сообщение Sep 12 2007, 13:58
Сообщение #2759


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

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



пара подводных камней:

-- если на персонаже Plot флаг, то на него не действуют негативные эффекты, в т.ч Knockdown
-- onPerception черт его знает как работает при спавне и когда точка старта модуля около монстра.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Sep 13 2007, 15:32
Сообщение #2760


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

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



Стоит наложить эффект невидимости на НПС в момент его создания, и пока он будет невидим, успеет сесть на стул или свалиться на пол из-за эффекта "Сбивание с ног". Игроку такой персонаж предстанет уже в том действии, какого вы от него хотите. Эффект лучше брать из серии Кутсцен. Т.е. нужно использовать "VFX_DUR_CUTSCENE_INVISIBILITY", чтобы не сработало заклинание Истинное зрение или Видеть невидимое.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Rowan
сообщение Sep 13 2007, 16:09
Сообщение #2761


Level 1


Класс: Пьяный Мастер
Характер: Chaotic Neutral
Раса: Человек



gennady
Цитата
Такие скрипты нужно ставить на ХБ

*опечаленно* На что?..
За ссылку спасибо огромное)

azathoth
Ыыы! Я вас люблю! ))) У меня таки стояла птичка на Plot, вот почему оно не работало, оказывается ))) Боже мой, счастье есть )))
Цитата
onPerception черт его знает как работает при спавне и когда точка старта модуля около монстра

Около монстра - это насколько близко? Метров 5 - это близко?

shadowdweller
Оно не работало из-за птички на Plot )) Сняла - все заработало ))) С триггером попробую, спасибо за помощь ) На потенциального хенчмэна его же можно вешать, да?

Zirrex
А сколько будет длиться такой эффект? (я так поняла, он нужен, чтобы нпс на глазах игрока не пикировал на пол умирающим лебедем, да?)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
shadowdweller
сообщение Sep 13 2007, 23:26
Сообщение #2762


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

Класс: Вор
Характер: Chaotic Good
Раса: Эльф
МАСТЕР Переводов



Цитата(Rowan @ Sep 13 2007, 17:09) *
С триггером попробую, спасибо за помощь ) На потенциального хенчмэна его же можно вешать, да?

Да. Только триггер вешается не на хенчмена, а на земле рисуется. (IMG:style_emoticons/kolobok_light/smile.gif) А скрипт ставится на OnEnter в свойствах.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Rowan
сообщение Sep 14 2007, 03:44
Сообщение #2763


Level 1


Класс: Пьяный Мастер
Характер: Chaotic Neutral
Раса: Человек



Цитата
Только триггер вешается не на хенчмена, а на земле рисуется

*умиленно* Ну не болван ли я )))
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Corvin
сообщение Sep 14 2007, 10:20
Сообщение #2764


Level 5
**

Класс: Тайный Лучник
Характер: Chaotic Good
Раса: Эльф



Кто-нибудь пробовал делат скриптами предметы с аурой? Например, я года полтора назад делал плащик, который давал всем союзникам вокруг в радиусе 10 футов 10% magic resistance + визуальные эффекты. Получилось, только скрипт был очень громоздким и корявым, потому как практически идентичные строчки повторялись много раз. Можно ли с помощью циклов осуществить то же самое?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Jadent
сообщение Sep 14 2007, 13:53
Сообщение #2765


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

Класс: Обыватель
Характер: True Neutral
Раса: Человек
NWN2: Маппинг



Мне пришел в голову вот такой вариант:

скрипт вешается на ХБ игрока ("default") и работает при надетом на персонаже плаще с тегом "auracloak":
Neverwinter Script Source
void main()
{
    if (GetTag(GetItemInSlot(INVENTORY_SLOT_CLOAK))=="auracloak")
    {
        float fRadius = 10.0;
        object oFriend = GetFirstObjectInShape(SHAPE_SPHERE, fRadius, GetLocation(OBJECT_SELF));
        while (GetIsObjectValid(oFriend))
        {
            if (GetIsFriend(oFriend) && oFriend!=OBJECT_SELF)
            {
                effect eSpell = EffectDamageImmunityIncrease(DAMAGE_TYPE_MAGICAL, 10);
                effect eVisual = EffectVisualEffect(VFX_COM_HIT_DIVINE);
                effect eEffect = EffectLinkEffects(eVisual, eSpell);

                if (GetLocalInt(oFriend, "auracloak_affected"))
                    ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSpell, oFriend, 6.0);
                else
                    ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oFriend, 6.0);

                DelayCommand(4.0, SetLocalInt(oFriend, "auracloak_affected", 1));
                DelayCommand(8.0, SetLocalInt(oFriend, "auracloak_affected", 0));
            }
            oFriend = GetNextObjectInShape(SHAPE_SPHERE, fRadius, GetLocation(OBJECT_SELF));
        }
    }
}

Если визуальный эффект должен висеть постоянно, а не применяться 1 раз, то скрипт будет еще проще:
Neverwinter Script Source
void main()
{
    if (GetTag(GetItemInSlot(INVENTORY_SLOT_CLOAK))=="auracloak")
    {
        float fRadius = 10.0;
        object oFriend = GetFirstObjectInShape(SHAPE_SPHERE, fRadius, GetLocation(OBJECT_SELF));
        while (GetIsObjectValid(oFriend))
        {
            if (GetIsFriend(oFriend) && oFriend!=OBJECT_SELF)
            {
                effect eSpell = EffectDamageImmunityIncrease(DAMAGE_TYPE_MAGICAL, 10);
                effect eVisual = EffectVisualEffect(VFX_DUR_BLUR);
                effect eEffect = EffectLinkEffects(eVisual, eSpell);

                ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oFriend, 6.0);
            }
            oFriend = GetNextObjectInShape(SHAPE_SPHERE, fRadius, GetLocation(OBJECT_SELF));
        }
    }
}

Если нужно применять эффект ауры на самого игрока, то лучше это делать отдельно в событиях OnItemEquip/Unequip.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Sep 14 2007, 14:02
Сообщение #2766


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

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



я бы подругому сделал:
1. прописал кастомную ауру в 2дашке с нужными настроками (радиус, размер, имя скрипта onEnter, onExit)
2. В скрипте onEnter вешал бы нужные эффекты (проверяя, что входящий объект находится в партии игрока)
3. В скрипте onExit снимал бы эффект
4. Сам эффект ауры вешал бы на Equip.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Taiko
сообщение Sep 14 2007, 23:41
Сообщение #2767


Level 1


Класс: Обыватель
Характер: Neutral Good
Раса: Человек



Цитата(Lex @ Sep 14 2007, 15:02) *
я бы подругому сделал:
1. прописал кастомную ауру в 2дашке с нужными настроками (радиус, размер, имя скрипта onEnter, onExit)
2. В скрипте onEnter вешал бы нужные эффекты (проверяя, что входящий объект находится в партии игрока)
3. В скрипте onExit снимал бы эффект
4. Сам эффект ауры вешал бы на Equip.

Разве эфект (визуальный) данный через Еквип слот модуля не исчезает при переходи в другую локацию?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Sep 15 2007, 02:39
Сообщение #2768


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

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



Кстати да, спасибо что напомнили.
исчезает. Причем я уже не помню, только ли визуальный эффект слетает (IMG:style_emoticons/kolobok_light/smile.gif) Если только - не страшно, если аура сама - надо обновлять. Соотв. еще 1 маленький скриптик default.

зы: а через что данный эффект - не важно. У меня слетали эффекты от применения спец. способностей, там завязки на эквип не было.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Corvin
сообщение Sep 15 2007, 09:13
Сообщение #2769


Level 5
**

Класс: Тайный Лучник
Характер: Chaotic Good
Раса: Эльф



Цитата(Lex @ Sep 14 2007, 17:02) *
я бы подругому сделал:
1. прописал кастомную ауру в 2дашке с нужными настроками (радиус, размер, имя скрипта onEnter, onExit)

Проблема в том, что я не умел работать с 2da файлами (и сейчас не умею). (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Taiko
сообщение Sep 15 2007, 14:59
Сообщение #2770


Level 1


Класс: Обыватель
Характер: Neutral Good
Раса: Человек



Раскопал в x2_s0_cldbewld.nss (это спелл Cloud of Bewilderment), что для вызова тумана, там используется эфект VFX_IMP_DUST_EXPLOSION, который, как раз мне и был нужен.Теперь вопрос: Почему, в моём скрипте, этот визуальный эфект виден не, как поднимающийся туман, а как обычный раскат пыли по земле.Меня даже этот вариант более устраивает, т.к. выглядит реалистично, но вот узнать ответ на этот вопрос очень хочется. Сразу оговорюсь, что значения "длительности" эфекта я менял, результат - без изменений.
Neverwinter Script Source
//:://////////////////////////////////////////////
//:: Created By: Taiko
//:: Created On: 14.09.2007
//:://////////////////////////////////////////////
void main()
{   
//Объекты   
object      oItem    = GetItemActivated(); //предмет, который активировали   
object      oPC      = GetFirstPC(); //первый игрок в списке   
//Локации   
location    lLoc    = GetItemActivatedTargetLocation(); //точка-цель, активированного предмета   
location    lPC_Loc  = GetLocation(oPC); //точка на которой игрок стоит   
//Эфекты   
effect      eFlyOut  = EffectDisappearAppear(lLoc, 1);  //игрок взлетает, чтобы приземлиться в lLoc   
effect      eSmock  = EffectVisualEffect(VFX_IMP_DUST_EXPLOSION); //визиуальный эфект "тумана"   

if (GetResRef(oItem)=="vn_drag_fly000") //если активирован нужный предмет   
    {
      ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eFlyOut, oPC, 5.0); //игрок взлетает и приземляется в указанном месте через 5 секунд       
      DelayCommand(1.2, ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSmock, lPC_Loc, 5.0)); //эфект взлета       
      DelayCommand(6.5, ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSmock, lLoc, 5.0)); //эфект приземления   
    }
}
Причины изменения: На будущее сразу пишите нормально. Это не так трудно, как может показаться. (кнопочка редактирования постов появится после 10 постов на форуме). Lex
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
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
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

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

 



Текстовая версия Сейчас: 28th April 2025 - 07:41