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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
> Скрипты, Все вопросы и ответы по скриптам
Lex
сообщение Mar 27 2004, 21:58
Сообщение #1


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

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



Все, что связанно со скриптами, постить СЮДА.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
147 страниц V   1 2 3 > »   
Открыть новую тему
Ответов (1 - 24)
Plut
сообщение Apr 8 2004, 19:41
Сообщение #2


Стилспатер
**

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



Вот бы мне кто разъяснил как катсцены писать... Если будут желающие - пришлю пример с описанием... Интересно очень...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Apr 8 2004, 21:08
Сообщение #3


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Хм... Что именно ты хочешь узнать, Plut ?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
LexSuS
сообщение Apr 9 2004, 04:24
Сообщение #4


Level 9
***

Класс: Теневой Танцор
Характер: True Neutral
Раса: Человек
NWN: Контент



вот у меня вопрос: (уже зажовал)
можно ли с помощю скрипта сделать такую фичу:
когда герой вынимает из инветаря определенный итем в руки должен появлятся источник непрерывного звука от героя, а при уберании предмета - должен пропадать звук.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Apr 9 2004, 04:29
Сообщение #5


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Можно сделать ОДИН звук на всю арену и кретить его в каждой новой арене, такой что бы гонялся за РС с оружием можно, но ужасно геморно, дестрой-креет.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Bot
сообщение Apr 9 2004, 14:44
Сообщение #6


Level 3
*

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



Прива. Как сделать рельную проклятую вещь(которая не снимается вообще, а не снимается и тут же ождивается. Пртмер- в кампании друид , превращаясь в минотавра, получает топорик, а снять его не може ВООБЩе). Пока есть вот что:
Neverwinter Script Source
//вставить в onUnequip
int isCursed(object oItem)
{
    if (!GetIsObjectValid(oItem))
    { return FALSE; }
    if (GetLocalInt(oItem,"ImmediateUncursed"))
    { return FALSE; }
    else if (GetLocalInt(oItem,"Cursed"))
    { return TRUE; }
    else if (GetStringRight(GetTag(oItem),6) == "Cursed")
    { return TRUE; }
    else
    { return FALSE; }
}

void main()
{
    object oItem = GetPCItemLastUnequipped();
    object oPC = GetPCItemLastUnequippedBy();
    if (isCursed(oItem))
    {

        object oCopy = CopyItem(oItem,oPC,TRUE);
        int nSlot = GetLocalInt(oItem,"InventorySlot");
        if (nSlot != -1)
        {
            if (nSlot == INVENTORY_SLOT_RIGHTHAND)
            {
                object oRightHand = GetItemInSlot(nSlot,oPC);
                object oLeftHand = GetItemInSlot(INVENTORY_SLOT_LEFTHAND,oPC);
                if (isCursed(oRightHand))
                {
                    if (isCursed(oLeftHand))
                    {
                        SetLocalInt(oRightHand,"ImmediateUncursed",1);
                        DelayCommand(0.05, AssignCommand(oPC, ActionEquipItem(oCopy, INVENTORY_SLOT_RIGHTHAND)));
                        DelayCommand(0.1, SetLocalInt(oRightHand, "ImmediateUncursed", 0));
                    }
                    else
                    {
                        DelayCommand(0.05, AssignCommand(oPC, ActionEquipItem(oCopy, INVENTORY_SLOT_LEFTHAND)));
                    }
                }
                else
                {
                    DelayCommand(0.05, AssignCommand(oPC, ActionEquipItem(oCopy, nSlot)));
                }
            }
            else
            {
                object oCurrent = GetItemInSlot(nSlot,oPC);
                if (isCursed(oCurrent))
                {
                    SetLocalInt(oCurrent,"ImmediateUncursed",1);
                    DelayCommand(0.1, SetLocalInt(oCurrent, "ImmediateUncursed", 0));
                }
                DelayCommand(0.05, AssignCommand(oPC, ActionEquipItem(oCopy, nSlot)));
            }
        }
         DestroyObject(oItem,0.01);
    }
}






//вставить в onEquip

void main()
{
    object oItem = GetPCItemLastEquipped();
    object oPC = GetPCItemLastEquippedBy();
    //AssignCommand(oPC,SpeakString("Item Equipped!",TALKVOLUME_SILENT_SHOUT));
    if ((GetLocalInt(oItem,"Cursed") == 1) || (GetStringRight(GetTag(oItem),6) == "Cursed"))
    {
        effect eCurse = EffectLinkEffects(EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE), EffectCurse(2, 2, 2, 2, 4, 2));
        ApplyEffectToObject(DURATION_TYPE_PERMANENT,eCurse,oPC);
        ApplyEffectToObject(DURATION_TYPE_INSTANT, SupernaturalEffect(EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY)), oPC);
        int nSlot = 0;
        int nSlotEquipped = -1;
        while ((nSlot < 18) && (nSlotEquipped == -1))
        {
            if (GetItemInSlot(nSlot,oPC) == oItem)
            {
                nSlotEquipped = nSlot;
            }
            nSlot++;
        }
        SetLocalInt(oItem,"InventorySlot",nSlotEquipped);
        FloatingTextStringOnCreature(GetName(oPC) + " equipped a cursed item.",oPC);
    }
}

//а этот файл сохраните под именем nw_s0_remeffect

#include "X0_I0_SPELLS"
#include "x2_inc_spellhook"
void main()
{
if (!X2PreSpellCastCode()){}
    int nSpellID = GetSpellId();
    object oTarget = GetSpellTargetObject();
    int nEffect1;
    int nEffect2;
    int nEffect3;
    int bAreaOfEffect = FALSE;
    effect eVis = EffectVisualEffect(VFX_IMP_REMOVE_CONDITION);
  if(nSpellID == SPELL_REMOVE_BLINDNESS_AND_DEAFNESS)
    {
        nEffect1 = EFFECT_TYPE_BLINDNESS;
        nEffect2 = EFFECT_TYPE_DEAF;
        bAreaOfEffect = TRUE;
    }
    else if(nSpellID == SPELL_REMOVE_CURSE)
    {
        nEffect1 = EFFECT_TYPE_CURSE;
        int nSlot = 0;
        object oItem;
        object oUncursed;
        string sUncursedForm;
        while (nSlot < 18)
        {
            oItem = GetItemInSlot(nSlot,oTarget);
            if ((GetLocalInt(oItem,"Cursed") == 1) || (GetStringRight(GetTag(oItem),6) == "Cursed"))
            {
                sUncursedForm = GetLocalString(oItem,"UncursedVersion");
                if (sUncursedForm == "")
                {
                    sUncursedForm = GetStringLeft(GetStringLowerCase(GetTag(oItem)),GetStringLength(GetTag(oItem)) - 6);
                }
                oUncursed = CreateItemOnObject(sUncursedForm,oTarget);
                if (GetIdentified(oItem))
                {
                    SetIdentified(oUncursed,TRUE);
                }
                SetLocalInt(oItem,"ImmediateUncursed",1);
                DestroyObject(oItem,0.1);
                FloatingTextStringOnCreature(GetName(oItem) + " is no longer cursed.",oTarget,FALSE);
                ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_PULSE_HOLY_SILENT), oTarget);
                ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_PULSE_HOLY_SILENT), oTarget);
            }
            nSlot++;
        }
    }
    else if(nSpellID == SPELL_REMOVE_DISEASE || nSpellID == SPELLABILITY_REMOVE_DISEASE)
    {
        nEffect1 = EFFECT_TYPE_DISEASE;
        nEffect2 = EFFECT_TYPE_ABILITY_DECREASE;
    }
    else if(nSpellID == SPELL_NEUTRALIZE_POISON)
    {
        nEffect1 = EFFECT_TYPE_POISON;
        nEffect2 = EFFECT_TYPE_DISEASE;
        nEffect3 = EFFECT_TYPE_ABILITY_DECREASE;
    }

    if (bAreaOfEffect == TRUE)
    {
        effect eImpact = EffectVisualEffect(VFX_FNF_LOS_HOLY_30);
        effect eLink;
        spellsGenericAreaOfEffect(OBJECT_SELF, GetSpellTargetLocation(), SHAPE_SPHERE, RADIUS_SIZE_MEDIUM,
            SPELL_REMOVE_BLINDNESS_AND_DEAFNESS, eImpact, eLink, eVis,
            DURATION_TYPE_INSTANT, 0.0,
            SPELL_TARGET_ALLALLIES, FALSE, TRUE, nEffect1, nEffect2);
        return;
    }
     SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, nSpellID, FALSE));
     RemoveSpecificEffect(nEffect1, oTarget);
    if(nEffect2 != 0)
    {
        RemoveSpecificEffect(nEffect2, oTarget);
    }
    if(nEffect3 != 0)
    {
        RemoveSpecificEffect(nEffect3, oTarget);
    }
    ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
}

// чтобы создать проклЯтую(неснимаемую) вещь, надо просто присвоить ей тэг &#39;XCursed&#39;, где Х - уникальное имя //шмотки. Авторство - CelestialRyan.

<small>Добавлено в 14:47</small>
LexSuS , можно попробовать на онХертбит мода, но это не есть гут, ибо ресурсы жрет. Попытайся вставалять цикл в онЭкьюп мода(не забудь добавить гетИзОбъектВалид(чтоб пропадал при снимании, хотя можно эзать и онАнэкьюп)).

Сообщение отредактировал Twin - Jan 5 2005, 14:21
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Tomb
сообщение Apr 16 2004, 08:57
Сообщение #7


Светлый лорд Корелии
Иконки Групп

Класс: Тайный Лучник
Характер: Lawful Good
Раса: Полуэльф
NWN: Тестер



2All: как вы уже наверное прочитали мы сейчас начали внутренее тестирование мультиплеерного модуля... и вылез очень наприятный баг... в начале модуля камера глючит и как будто привязана к НПС... короче говоря она не привязана к перцу... А это сами понимаете черевато...
ПОМОГИТЕ НАРОД... (IMG:style_emoticons/kolobok_light/help.gif) А то блин этот глюк ваще не к месту..
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Apr 18 2004, 17:51
Сообщение #8


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

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



С мультискриптами никто из нас не работал (IMG:style_emoticons/kolobok_light/cray.gif) (IMG:style_emoticons/kolobok_light/cray.gif)
Рамна или Вирус могут помочь.
__________________________________
с катсценами: уже ОЧЕНЬ мого раз поднималась эта тема. Более того, на рельсах лежит скрипт ДБ начального мультика. (не в базе, а где-то еще)
__________________________________
о проклятых вещах: знаю только снял - тут-же оделась. Чтобы вообще не снималось..незнаю.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Auren
сообщение Apr 19 2004, 12:00
Сообщение #9


Сивоха
***

Класс: Некромант
Характер: Lawful Evil
Раса: Человек



Вообщем описываю ситуацию. Это про с-му смерти. Предположим ПС умирает и на сервере случается рестарт. После него он опять заходит и должен телепортнуться со стартовой зоны на кладбище например. У меня он заходит и лежит мертвый сразу на старте. Ничаво не получается. Я стока уже вариантов перепробывал и ничего=(( Как сделать? Еще вопрос: когда ставлю на он клентер вот такое условие:

if (GetArea(oPC)==GetObjectByTag("lc_startzone"))

Возвращает ли GetArea локацию, где стоит точка старта?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Bot
сообщение Apr 19 2004, 17:33
Сообщение #10


Level 3
*

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



Насчет мульта ДБ: он там хитренько запрятан (IMG:style_emoticons/kolobok_light/dirol.gif) даже не помню где нашел его... Кому надо - могу выложить... хотя смысл: если ДБ против-все равно удалит, если за-может выложитьб и целый(там только первых строчек 60)
Добавлено в [mergetime]1082385478[/mergetime]
Auren[LFL] Зачем тебе это? Не проще ли создать локэйшн на месте старта ПС(через ГетЛокэйшН)? А если так, то зачем проверка?

Добавлено в [mergetime]1082385697[/mergetime]
про прокляты вещицы: на рилмсах добрый человек(Каа вроде) подсказал, что можно не скриптово, а 2да-шно- полиморфить в ПС но в графе веапн писать нужное оружие. Попробую, хотя времени нет ни... вообще нет, короче
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Auren
сообщение Apr 19 2004, 17:43
Сообщение #11


Сивоха
***

Класс: Некромант
Характер: Lawful Evil
Раса: Человек



Сенк, я уже разобрался=)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Apr 19 2004, 19:17
Сообщение #12


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

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



Tarre Talliorne, дай ссылку на тот пост Каа, пожалуйста
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Apr 19 2004, 20:28
Сообщение #13


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Tarre Talliorne я могу выложить мульты в теме наших скриптов, если надо. Но они не влазят, там например в финале 600 строк кода, а сколько знаков (IMG:style_emoticons/kolobok_light/wacko.gif) так что кусок могу выложить, вернее два варианта как можно писать.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Bot
сообщение Apr 20 2004, 11:58
Сообщение #14


Level 3
*

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



Aiwan, неа, мне зачем-то, я сам могу катсцену написать (сейчас кстати пишу одну.... шедевр - уже 22000(!) символов). Лучше, чтоли, статью напиши(иногда поражаюсь своей наглости (IMG:style_emoticons/kolobok_light/lol.gif) ). Что-тто типа Основы Создания КатСцен.

Lex Извини, ссылку кинуть не могу, поищи в теме скрипты на стр. 19(рельсы, конечно).

И парочка моих вопрософф:
1. Можно ли определять момент кражи как-нибудь иначе, чем через хертбитные проверки наличия итема в инвентор НПС?
2. Можно ли определять уровень ПС проще, чем суммируя все его уровни в разных областях?
3. Точно ли в НВН воспроизведены правила 3 редакции относительно возраста ПС?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Apr 21 2004, 18:21
Сообщение #15


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

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



1. если ворует Игрок то можно. Модульные скрипты - получение предмета. (не помню, как на инглиш)
2. Имхо, самый простой способ это просумировать левелы по классам (их всего-то три. Слот 1, Слот 2, Слот 3)
3. Нет. Там вообще возраст нафиг не нужен. Даже функции нет GetAge()
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Tomb
сообщение Apr 22 2004, 08:13
Сообщение #16


Светлый лорд Корелии
Иконки Групп

Класс: Тайный Лучник
Характер: Lawful Good
Раса: Полуэльф
NWN: Тестер



Lex (IMG:style_emoticons/kolobok_light/help.gif) помоги со скриптами для AI бота...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Apr 22 2004, 08:33
Сообщение #17


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Tomb у Лекса работы по ... (IMG:style_emoticons/kolobok_light/unsure.gif) Лучше Баал попроси (IMG:style_emoticons/kolobok_light/good.gif) Он помогет, наверняка.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Elven king
сообщение May 4 2004, 00:19
Сообщение #18


Level 12
****

Класс: Мастер Оружия
Характер: Lawful Good
Раса: Эльф
NWN: Маппинг



На рельсах уже просил такой скрипт, но попрашу и тут (IMG:style_emoticons/kolobok_light/smile.gif)
Нужен такой скриптик:
Когда нпц ведет игрока он должен останавливатся если игрок находится от него в четырех метрах и подгонять игрока.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение May 4 2004, 08:31
Сообщение #19


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Могу дать свой код, где Стинки ведет игрока к пролому в стене. Годится?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Elven king
сообщение May 4 2004, 09:45
Сообщение #20


Level 12
****

Класс: Мастер Оружия
Характер: Lawful Good
Раса: Эльф
NWN: Маппинг



Годится. (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение May 4 2004, 13:08
Сообщение #21


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



2Tarre Talliorne.
Цитата
1. Можно ли определять момент кражи как-нибудь иначе, чем через хертбитные проверки наличия итема в инвентор НПС?
2. Можно ли определять уровень ПС проще, чем суммируя все его уровни в разных областях?


Лекс, теск, я тебя исправлю (IMG:style_emoticons/kolobok_light/wink3.gif) .
1. Момент кражи. Есть событие OnDisturb - по нему можно смотреть момент изъятия-приема предмета (плэйсэблом, неписью)...
2. Можно. GetHitDice(oPC).
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение May 4 2004, 13:08
Сообщение #22


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Вейпов должно быть столько сколько я нарисовал, но либо меньше 10 ли бо больше чем у меня. Почему? Не знаю, неделю гонял Стинки по вейпам и он гад прыгал на некоторые из них при количестве 10, а так нет. Идет как миленький.
и расчитай скорость так, что бы НПС НЕ ЗАСТРЯЛ и не опаздал на 15 сек до точки. Иначе вы просто прыгнете на следующий вейп и диалог прервется. А так он остановится и продолжите диалог.

Neverwinter Script Source
//:://////////////////////////////////////////////
//:: Copyright © 2004 WRG!  www.wrg.ru
//:: am_pc_stinki_go2
//:://////////////////////////////////////////////
/*
  ПЕРЕДВИЖЕНИЕ оРС ЗА НПС, СКРИПТ СТАВИТСЯ
    НА СТРОКУ В ДИАЛОГЕ oPC (!)

*/

//:://////////////////////////////////////////////
//:: Created By: Aiwan    Aiwan@e-mail.ru
//:: Created On: 20.03.2004
//:://////////////////////////////////////////////
void main()
{
    object oPC = GetPCSpeaker();
    object oStinki = GetObjectByTag("MM_STINKI");
    object oWp01 = GetObjectByTag("WP_STINKI_01");
    object oWp02 = GetObjectByTag("WP_STINKI_02");
    object oWp03 = GetObjectByTag("WP_STINKI_03");
    object oWp04 = GetObjectByTag("WP_STINKI_04");
    object oWp05 = GetObjectByTag("WP_STINKI_05");
    object oWp06 = GetObjectByTag("WP_STINKI_06");
    object oWp07 = GetObjectByTag("WP_STINKI_07");
    object oWp08 = GetObjectByTag("WP_STINKI_08");
    object oWp09 = GetObjectByTag("WP_STINKI_09");
    object oWp10 = GetObjectByTag("WP_STINKI_10");
    object oWp11 = GetObjectByTag("WP_STINKI_11");
    object oDoor = GetObjectByTag("AM_DOOR_FLEG_NO");
    effect eHaste = EffectHaste(); // ЧТО БЫ ИГРОК НЕ ОТСТАВАЛ!

    SetLocalInt(oPC, "STINKI", 3);
    AssignCommand(oStinki, ActionPauseConversation());
    AssignCommand(oPC, ActionForceFollowObject(oStinki, 4.0f));
    ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eHaste, oPC, 9999.0);
    AssignCommand(oStinki, ActionDoCommand(SetCommandable(FALSE, oPC)));
    AssignCommand(oStinki, ActionForceMoveToObject(oWp02, TRUE, 4.0));
    AssignCommand(oStinki, ActionDoCommand(SetFacingPoint(GetPosition(oPC))));
    AssignCommand(oStinki, ActionDoCommand(SpeakString("Не отставай!")));
    AssignCommand(oStinki, ActionWait(1.0));
    AssignCommand(oStinki, ActionForceMoveToObject(oWp03, TRUE, 4.0));
    AssignCommand(oStinki, ActionWait(2.0));
    AssignCommand(oStinki, ActionForceMoveToObject(oWp04, TRUE, 4.0));
    AssignCommand(oStinki, ActionDoCommand(SetFacingPoint(GetPosition(oPC))));
    AssignCommand(oStinki, ActionDoCommand(SpeakString("Не сильно быстро?")));
    AssignCommand(oStinki, ActionWait(2.0));
    AssignCommand(oStinki, ActionForceMoveToObject(oWp05, TRUE, 4.0));
    AssignCommand(oStinki, ActionWait(2.0));
    AssignCommand(oStinki, ActionForceMoveToObject(oDoor, TRUE, 4.0));
    AssignCommand(oStinki, ActionDoCommand(SpeakString("Не обращай внимание, нас никто не тронет.")));
    AssignCommand(oStinki, ActionForceMoveToObject(oWp06, TRUE, 4.0));
    AssignCommand(oStinki, ActionWait(2.0));
    AssignCommand(oStinki, ActionForceMoveToObject(oWp07, TRUE, 4.0));
    AssignCommand(oStinki, ActionWait(2.0));
    AssignCommand(oStinki, ActionForceMoveToObject(oWp08, TRUE, 1.0));
    AssignCommand(oStinki, ActionDoCommand(SpeakString("Мы почти пришли!")));
    AssignCommand(oStinki, ActionForceMoveToObject(oWp09, TRUE, 1.0));
    AssignCommand(oStinki, ActionWait(2.0));
    AssignCommand(oStinki, ActionForceMoveToObject(oWp10, TRUE, 1.0));
    AssignCommand(oStinki, ActionWait(2.0));
    AssignCommand(oStinki, ActionForceMoveToObject(oWp11, TRUE, 1.0));
    AssignCommand(oStinki, ActionDoCommand(SetFacingPoint(GetPosition(oPC))));
    AssignCommand(oStinki, ActionDoCommand(RemoveEffect(oPC, eHaste)));
    AssignCommand(oStinki, ActionDoCommand(SetCommandable(TRUE, oPC)));
    AssignCommand(oStinki, ActionResumeConversation());
}


Сообщение отредактировал Twin - Jan 5 2005, 14:23
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Elven king
сообщение May 4 2004, 15:20
Сообщение #23


Level 12
****

Класс: Мастер Оружия
Характер: Lawful Good
Раса: Эльф
NWN: Маппинг



Ну спасибо! (IMG:style_emoticons/kolobok_light/good.gif)
Теперь опять вопросик, даже два (IMG:style_emoticons/kolobok_light/smile.gif)
1. Как сделать так чтобы когда все враги в локе будут мертвы, в журнале появляется запись... это наверное просто, но я не догоняю.
2. Непись стоит в хайде, но когда ПК отходит на пять метров, то НПЦ подкрадывается к нему и атакует, как это реализовать?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение May 4 2004, 17:35
Сообщение #24


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



2Elven king
1. Сделать всех врагов в локе в какой-нить пометкой допустим в поле Deity. Проверить всех существ с наличием этой метки GetDeity.
Можно вообще по всякому, и фракцию проверить и еще че-нить... (IMG:style_emoticons/kolobok_light/wink3.gif)
2. Это сложно. Надо писать скрипт поведения в UserDefined событии. Сейчас нет времени его написать, правлю баги первой части Левора... А вообще если сам прорвешься, то научишься кой-чему в скриптинге AI. Кстати, самая сложная часть скриптинга... Попробуй начать сам. Когда появятся более детальные вопросы - с удовольствием ответим (IMG:style_emoticons/kolobok_light/wink3.gif) .
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение May 4 2004, 18:55
Сообщение #25


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Цитата
1. Как сделать так чтобы когда все враги в локе будут мертвы, в журнале появляется запись... это наверное просто, но я не догоняю

На OnDeath поставь переменную
Neverwinter Script Source
SetLocalInt(oPC, "KILL", GetLocalInt(oPC, "KILL") + 1); // На каждом НПС при смерти будет для оРС +1 переменная
Как только она будет равна количеству твоих враггов, например их 10 в локации...

if (GetLocalInt(oPC, "KILL") >= 10)
{
  AddJournalQuestEntry("TAG_JRNALA", 1, оPC);
}

Это для одиночной компании.

Для крутого шарда сделай так: Поставь в закрытой локе СУПЕР МАНЬЧКИНА НПС с фракцией врага.

И дальше проверка на наличие в локации этих врагов путем сравнивания с Боссом:
Neverwinter Script Source
{
    object oNPC = GetFirstObjectInShape(SHAPE_CUBE, 250.0, GetLocation(GetFirstPC()));
    object oBOSS = GetObjectByTag("KRUSHIMORDA_FACTION_LEADER");
    while (GetIsObjectValid(oNPC))
    {
      if (GetFactionEqual(oNPC, oBOSS))
      {
        return FALSE;
      }
      oNPC = GetNextObjectInShape(SHAPE_CUBE, 250.0, GetLocation(GetFirstPC()));
    }
    return TRUE;
}

// КОД DBColl-a

Можешь вместо

Neverwinter Script Source
// GetFirstObjectInShape
// ВЗЯТЬ
GetFirstObjectInArea
object oArea= GetArea(OBJECT_SELF);  // ТИПА ТУТА (IMG:style_emoticons/kolobok_light/smile.gif)


В общем кумекай... (IMG:style_emoticons/kolobok_light/blum3.gif)

Сообщение отредактировал Twin - Jan 5 2005, 14:25
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

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

 



Текстовая версия Сейчас: 28th March 2024 - 16:16