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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 30 31 32 33 34 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
Grazzt, Dark Pri...
сообщение Feb 21 2005, 16:45
Сообщение #766


Level 5
**

Класс: Маг
Характер: Chaotic Evil
Раса: Танар'ри



Вопрос из области cut-сцен. Каким образом можно быстро убрать накастованые на область заклинания типа кислотного тумана? Смысл преблизительно следующий - после "мажеского" поединка включается cut-сцена. Эффекты от накастованых во время боя заклинаний просто заполняют собой экран и мешают правильному визуальному восприятию сцены. Причем надо учитывать тот факт, что на некоторых объктах области висят перманентные эффекты, которые весьма желательно сохранить.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Nokoll
сообщение Feb 21 2005, 17:04
Сообщение #767


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

Класс: Волшебник
Характер: Neutral Evil
Раса: Человек



СЛУШАЙ ВРОДЕ ТАК ПОПРОБУЙ EffectAbilityDecrease, ИЛИ EffectAbilityIncrease, ПРОСТО СЕЙЧАС ГОЛОВА ЕДЕТ немогу сосредоточится!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Tarre Talliorne
сообщение Feb 21 2005, 20:09
Сообщение #768


Level 8
***

Класс: Псионик
Характер: Chaotic Good
Раса: Человек
NWN: Скриптинг [Sn]



Перебери циклом все эффекты.
effect eE=GetFirstEffect ...
потом посмотри, если их криатер - маг1 или маг2, удаляй их.
GetEffectCreater();
цикл while (GetIsEffectValid(eE))
Добавлено в [mergetime]1109005998[/mergetime]
QUOTE (Oksivarus @ Feb 21 2005, 12:35)

В разделе скриптов есть скрипт на умирание в котором (насколько я понял) есть строчька которая должна создавать пятно крови возле игрока - как ее создать, а вернее в каком разделе предметов. Я нашел в стандартной политре это пятно поставил в тут строчьку ее тег но пятно не появляется. Подскажите что нетак.

Дело в том, что объекты создаются не по тэгу, а по ресрефу. Поэтому 2 выхода:
1. или заменяй в скрипте ресреф(в CreateObject) на ресреф пятна стандатрного, либо
2. создавай новый обжект с нужным (скрипту) ресрефом
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Grazzt, Dark Pri...
сообщение Feb 22 2005, 10:06
Сообщение #769


Level 5
**

Класс: Маг
Характер: Chaotic Evil
Раса: Танар'ри



>Tarre Talliorne
Нечто в этом роде я и предполагал. Громаднейшее спасибо :crazy:
Добавлено в [mergetime]1109056973[/mergetime]
А еще один мааленький вопросик: GetEffectCreater(); - насколько я пронимаю выдает объекта-криэйтора эффекта. То бишь условно говоря мага2. А если к примеру маг2 уже подох, и соответственно функция вернет INVALID'а (ну насколько я понимаю - или нет?). Надо ли onDeath мага2 к примеру вешать функцию криэйта его копии в закрытой локации или вешать какой нибудь EffectRespawn() и т.д, и только после этого удалять эффекты?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Nokoll
сообщение Feb 22 2005, 11:11
Сообщение #770


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

Класс: Волшебник
Характер: Neutral Evil
Раса: Человек



Я считаю что надо я так и делаю вешаю onDeath мага2 и только после этого удаляю эффекты. :V:
Добавлено в [mergetime]1109060073[/mergetime]
А зачем ващще EffectRespawn(), здесь незнаю :xz:
Возможно я опозорюсь но я думал что INVALID это фракцыя как и OBJECT_SELF.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Grazzt, Dark Pri...
сообщение Feb 22 2005, 11:34
Сообщение #771


Level 5
**

Класс: Маг
Характер: Chaotic Evil
Раса: Танар'ри



QUOTE (Nokoll @ Feb 22 2005, 11:11)
А зачем ващще EffectRespawn(), здесь незнаю :xz:


Респаун просто не даст задестроится объекту маг2, после чего его можно пихать в цикл, где будет GetEffectCreater(), после выполнения цикла дать EffectDeath() или DestroyObject() на мага2. При этом надо учитывать, что при десторое onDeath выполнится еще раз. Следовательно надо сделать еще один цикл, в котором на первом шаге снимаются эффекты, а на втором собственно маг и дохнет. Видимо как-то так. В меру моего понимания данной реализации конечно и не имея под руками Лексикона...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Nokoll
сообщение Feb 22 2005, 11:42
Сообщение #772


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

Класс: Волшебник
Характер: Neutral Evil
Раса: Человек



QUOTE
Следовательно надо сделать еще один цикл, в котором на первом шаге снимаются эффекты, а на втором собственно маг и дохнет. Видимо как-то так. В меру моего понимания данной реализации конечно и не имея под руками Лексикона...

Попробуй так EffectDeath(), будет лучше смотреца, и поставь мою выдуманную но рабочую функцыю
DestroyEffect, иба маг умрёт со звучком даже, эффекты исчезнут. :oh:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Feb 22 2005, 13:28
Сообщение #773


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

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



QUOTE (Nokoll @ Feb 22 2005, 10:11)
Возможно я опозорюсь но я думал что INVALID это фракцыя как и OBJECT_SELF.

:swoon: :D
QUOTE (Grazzt @ Dark Prince, Feb 22 2005, 09:06)
А еще один мааленький вопросик: GetEffectCreater(); - насколько я пронимаю выдает объекта-криэйтора эффекта. То бишь условно говоря мага2. А если к примеру маг2 уже подох, и соответственно функция вернет INVALID'а (ну насколько я понимаю - или нет?). Надо ли onDeath мага2 к примеру вешать функцию криэйта его копии в закрытой локации или вешать какой нибудь EffectRespawn() и т.д, и только после этого удалять эффекты?

Копия объекта-креатора не будет являться креатором эффекта. Это не выход.
Выход тогда:
1. Делать TEMPORARY эффект. Подстраивать его длительность ручками.
2. Сделать креатора SetIsDestroyable(FALSE); и не бояться, что креатор дестроится, когда загнется.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Nokoll
сообщение Feb 22 2005, 15:22
Сообщение #774


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

Класс: Волшебник
Характер: Neutral Evil
Раса: Человек



ДБ нет ты не отом подумал, я мимел в виде не то что INVALID тоже самое что и
OBJECT_SELF.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Grazzt, Dark Pri...
сообщение Feb 22 2005, 15:42
Сообщение #775


Level 5
**

Класс: Маг
Характер: Chaotic Evil
Раса: Танар'ри



QUOTE (DBColl @ Feb 22 2005, 13:28)
Копия объекта-креатора не будет являться креатором эффекта. Это не выход.

Тут я немножко хочу прояснить для себя c точки зрения теории: если последовательно обьект маг2 был в какой-то момент задестроен, а потом в локации был создан другой точно такой-же объект маг2. Например:
DestroyObject(bla-bla-bla);
DelayCommand(0.1,CreateObject(bla-bla-bla)); То почему с точки зрения функционирования системы он не будет являтся креатором эффекта? Ведь фактически он в конкретный момент вемени уникален -т.е. никаких других обьектов с такими тэгом и ресцефом на локации (да и во всем модуле) не присутствует. Я понимаю так, что существует некий стэк обьектов, и у обьекта, если он присутствует в локации, кроме тэга и ресцефа существует еще некий int-идентификатор. Это видно например из функции, возвращающей ближайший к объекту oPC объект: object oMage=GetNearestObjectByTag("oMage2",oPC,i); - где i - насколько я понимаю и является этим идентификатором. Следовательно, если предположить существуют 2 объекта oMage2, то у одного условно говоря в конкретный момент времени i=0, а у другого i=1 - очевидно, что объекты разные. Но если объект в конкретный момент времени ОДИН, то и значение i для него будет всегда условно говоря равно 0. Так почему для функции GetEffectCreater(); он будет ДРУГИМ объектом? Непонятно? Или у обьектов есть еще какой-то скрытый идентифицирующий их признак? Или я что-то неправильно понимаю?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Friedrich
сообщение Feb 22 2005, 18:46
Сообщение #776


Level 5
**

Класс: Рейнджер
Характер: Neutral Good
Раса: Человек



QUOTE (DBColl)
Копия объекта-креатора не будет являться креатором эффекта. Это не выход.

QUOTE (Grazzt @ Dark Prince, Feb 22 2005, 15:42)
Например:
DestroyObject(bla-bla-bla);
DelayCommand(0.1,CreateObject(bla-bla-bla)); То почему с точки зрения функционирования системы он не будет являтся креатором эффекта? Ведь фактически он в конкретный момент вемени уникален -т.е. никаких других обьектов с такими тэгом и ресцефом на локации (да и во всем модуле) не присутствует.

Рес-реф и тэг тут не причем.
А что такое object?
object - это 32 битное целое, которое указывает на определенный объект в модуле (что это - адрес в памяти или просто абсолютный номер объекта, точно не знаю, скорее второе). Имеется функция
string ObjectToString(object), возвращающая (как строку) значение идентификатора объекта в виде шестнадцатиричного числа.

Соответственно, GetEffectCreater() вернет значение указателя на объект-креатор, предположительно, просто достав его из соответствующего поля эффекта (effect - это, кажется, по сути struct такой). Проверки на существование объекта с таким идентификатором при этом, происходить не должно (хотя ХЗ, чего там на самом деле происходит :xz: ). Видимо для подобных ситуаций, когда значение объекта не равно OBJECT_INVALID но самого объекта в модуле уже нет, и написана функция GetIsObjectValid(..).

Когда же ты создаешь новый объект, он получает новый идентификатор, который, естественно, не будет соответствовать идентификатору объекта, созданного когда-то по тому же рес-рефу и имевшему тот же тэг (а жив он сейчас или нет - не важно).

Исходя из вышесказанного можно предложить следующие.
Накладывая эффект мы одновременно сохраняем в локалке идентификатор объекта-креатора:
SetLocalObject(oTarget, "effect_creator", OBJECT_SELF);
А потом, будем проверять соответствие креатора эффекта этой локалке, а не вновь найденному по тэгу объекту.
Правда, нет никакой уверенности в том, что это будет работать, но можно попробовать. Заодно проверить истинность моих домыслов.

Сообщение отредактировал Friedrich - Feb 22 2005, 20:47
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Friedrich
сообщение Feb 23 2005, 01:36
Сообщение #777


Level 5
**

Класс: Рейнджер
Характер: Neutral Good
Раса: Человек



Да. Усе работает. :yahoo:
Если сохранить креатора эффекта в локалку, то потом можно использывать это значение, независимо от бытия самого креатора.
Фрагмент лога:
CODE
[Wed Feb 23 01:08:03] Loading Module: TEST_Lair_02
.*** Effect creator is :OID: 0x4, Name: Altar, Tag: TL_ALTAR, ResRef: plc_altrneutral ***
..*** -= xx_altar_ouexe run =- ***
.*** -= removeEffectByStoredCreator(7fffffff, effector) called =- ***
*** Effect creator was: OID: 0x4, Name: n/a, Tag: n/a, ResRef: n/a ***
*** GetIsObjectValid(oCreator) return: 0 ***
*** 1 effects was removed. ***
***  -------------  ***
..................................[Wed Feb 23 01:14:33] Server Shutting Down

Объекта с oСreator == 0x04 уже не существует (причем oCreator != OBJECT_INVALID), но созданный им эфект удаляется.
0x7FFFFFFF - это первый игрок.
OBJECT_INVALID, кажется, равен 0x7F000000 (хотя это и не важно)
Neverwinter Script Source
void removeEffectByStoredCreator(object oTarget, string sVarName)
{
  object oCreator = GetLocalObject(oTarget, sVarName);
  effect eRemove = GetFirstEffect(oTarget);
  while (GetIsEffectValid(eRemove))
  {
    if (GetEffectCreator(eRemove) == oCreator)
    {
      RemoveEffect(oTarget, eRemove);
    }
    eRemove = GetNextEffect(oTarget);
  }
}

вот функция - в общем виде.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Grazzt, Dark Pri...
сообщение Feb 24 2005, 10:40
Сообщение #778


Level 5
**

Класс: Маг
Характер: Chaotic Evil
Раса: Танар'ри



>Friedrich
Thanks :D :D :D
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Nokoll
сообщение Feb 25 2005, 13:09
Сообщение #779


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

Класс: Волшебник
Характер: Neutral Evil
Раса: Человек



Дайте плизз ктонибудь скрипт, чтобы любой Непись сделался статуей, я видел такой скрипт в 1 Аддоне.
Но ево у меня уже нет!
Стереть все эктион у Непися и Наложить Камень в Плоть! тоюеж чтобы он недвигался и покрылся камнем!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Tarre Talliorne
сообщение Feb 25 2005, 17:13
Сообщение #780


Level 8
***

Класс: Псионик
Характер: Chaotic Good
Раса: Человек
NWN: Скриптинг [Sn]



Тут надо юзать эффекты катсцен: CutsceneParalyse и еще что-нибудь (я б кинул для верности все, кроме инвизбла)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Friedrich
сообщение Feb 25 2005, 18:25
Сообщение #781


Level 5
**

Класс: Рейнджер
Характер: Neutral Good
Раса: Человек



QUOTE (Nokoll @ Feb 25 2005, 13:09)
Дайте плизз ктонибудь скрипт, чтобы любой Непись сделался статуей

Окаменение - это, вроде EffectPetrify()
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lexey aka Hawk
сообщение Feb 25 2005, 18:52
Сообщение #782


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

Класс: Фея
Характер: Chaotic Good
Раса: Элементаль
NWN: Маппинг
Gem of the North



Вставить в скрипт OnSpawn Creature.

// * If Statue, apply statue visual effect
if (GetCreatureFlag(OBJECT_SELF, "STATUE") == TRUE)
{
effect eStatue = EffectPetrify();
eStatue = ExtraordinaryEffect(eStatue);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eStatue, OBJECT_SELF);
SetPlotFlag(OBJECT_SELF, TRUE);
}

В Тулсете на монстер-статуе прописать переменную тип int, имя STATUE, значение TRUE.

В теории надо еще спелл Stone to Flesh слегка отредактировать, чтобы такую статую нельзя было раскаменить.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Nokoll
сообщение Feb 26 2005, 01:23
Сообщение #783


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

Класс: Волшебник
Характер: Neutral Evil
Раса: Человек



Lexey aka Hawk
Спасибо Сделаю!

QUOTE
В теории надо еще спелл Stone to Flesh слегка отредактировать, чтобы такую статую нельзя было раскаменить
.
Можно чуть по подробнее как сделать!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lexey aka Hawk
сообщение Feb 28 2005, 03:02
Сообщение #784


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

Класс: Фея
Характер: Chaotic Good
Раса: Элементаль
NWN: Маппинг
Gem of the North



В SoU это было сделано так. На событии OnSpellCastAt моба-статуи стоит такой скрипт
Neverwinter Script Source
//reapply stone effect

void Stone()
{
    SetPlotFlag(OBJECT_SELF, FALSE);
    effect eStone = EffectPetrify();
    ApplyEffectToObject(DURATION_TYPE_PERMANENT, eStone, OBJECT_SELF);
    SetPlotFlag(OBJECT_SELF, TRUE);
}

void main()
{
    int nSpell = GetLastSpell();
    if(nSpell == SPELL_DISPEL_MAGIC || nSpell == SPELL_GREATER_DISPELLING || nSpell ==SPELL_MORDENKAINENS_DISJUNCTION)
    {
        DelayCommand(2.1, Stone());
    }
}


Я бы в соответствующие спеллы просто вставил такую строчку.
Neverwinter Script Source
if (GetCreatureFlag(GetSpellTargetObject(), "STATUE") == TRUE) return;


В любом случае это лишь один из многочисленных вариантов.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Proydoha
сообщение Feb 28 2005, 18:47
Сообщение #785


Level 4
**

Класс: Маг
Характер: Chaotic Good
Раса: Эльф



Как выглядит скрипт из начала компании ХоТУ, который обдирал игрока как липку и переносил все его вещи в отдаленный сундук в Андердарке. Я искал, но не нашел.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lexey aka Hawk
сообщение Feb 28 2005, 20:09
Сообщение #786


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

Класс: Фея
Характер: Chaotic Good
Раса: Элементаль
NWN: Маппинг
Gem of the North



1-я глава XP1
Локация Waterdeep - Yawning Portal - Second Floor
Событие OnEnter локации. Скрипт q2a_enter_rooms.
Neverwinter Script Source
object oContainer = GetObjectByTag("x2_chapter1pcequip"); //NEW CONTAINER -
        // This container is in the final area of Chapter 1!

        // * pick up any equipment lying on the ground
        // * Thanks Mr. Cheater!
        object oArea = OBJECT_INVALID;
        object oItem = GetFirstObjectInArea(oArea);
        while (GetIsObjectValid(oItem) == TRUE)
        {
            if (GetObjectType(oItem) == OBJECT_TYPE_ITEM)
            {
                CopyItem(oItem, oContainer);
                SetPlotFlag(oItem, FALSE);
                DestroyObject(oItem, 0.1);
            }
            oItem = GetNextObjectInArea(oArea);
        }

        //if this is the main PC - who has had the dream
        if (GetLocalInt(oPC, "nPCNumber") == 1)
        {

            //if this is the case, strip PC of all equipment, place
            //it on the weapons rack ("q2a_pc_equip" and
            //spawn in the assassin ("q2adrowassassin")
            // Removing PC's equipment.
            object oGear = GetItemInSlot(INVENTORY_SLOT_ARMS, oPC);
            object oGear2;
            //object oContainer = GetObjectByTag("q2a_pc_equip");//OLD CONTAINER - IN PC START ROOM
            int nGold = 0;

            if(GetIsObjectValid(oGear))
            {
                nGold = nGold + GetGoldPieceValue(oGear);
                oGear2 = CopyItem(oGear, oContainer);
                SetPlotFlag(oGear, FALSE);
                DestroyObject(oGear);
            }
            oGear = GetItemInSlot(INVENTORY_SLOT_BELT, oPC);
            if(GetIsObjectValid(oGear))
            {
                nGold = nGold + GetGoldPieceValue(oGear);
                oGear2 = CopyItem(oGear, oContainer);
                SetPlotFlag(oGear, FALSE);
                DestroyObject(oGear);
            }
            oGear = GetItemInSlot(INVENTORY_SLOT_BOLTS, oPC);
            if(GetIsObjectValid(oGear))
            {
                nGold = nGold + GetGoldPieceValue(oGear);
                oGear2 = CopyItem(oGear, oContainer);
                SetPlotFlag(oGear, FALSE);
                DestroyObject(oGear);
            }

... и т.д. Весь скрипт приводить не буду, т.к. найти его теперь не составит проблем, а форум не резиновый.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение Feb 28 2005, 20:24
Сообщение #787


Level 9
***

Класс: Страж Тьмы
Характер: Chaotic Evil
Раса: Нежить



Прошу помочь скриптом. Чтобы при воскрешении и райз дэде снимался опыт -50 за уровень(как при респауне). Я понимаю что я задавал этот вопрос, но тогда мне сказали как просто снять с игрока определенное кол-во опыта.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Nokoll
сообщение Feb 28 2005, 20:28
Сообщение #788


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

Класс: Волшебник
Характер: Neutral Evil
Раса: Человек



Народ помогайте вот сделал скрипт просто не могу сёйчас с катушек съеду
Вот скрипт.
Neverwinter Script Source
//::///////////////////////////////////////////////
//:: Name: PIVI_ATTAC
//:: Copyright © 2001 WRG Corp.
//:://////////////////////////////////////////////
/*
    Piviga Attacuet? CutScena Nachalo Bitva/
*/

//:://////////////////////////////////////////////
//:: Created By: Nokoll
//:: Created On: Feb 25, 2005
//:://////////////////////////////////////////////

#include "x2_inc_cutscene"
//Include dobovlaet plavnost camere i novie deistvia!
void main()
{
object oPC = GetEnteringObject();
object oPIVI = GetObjectByTag("PIVI_GIVI");//BIG BOSS....
object oNpc1 = GetObjectByTag("NPC1");
object oNpc2 = GetObjectByTag("NPC2");
object oNpc3 = GetObjectByTag("NPC3");
object oNpc4 = GetObjectByTag("NPC4");
object oNpc5 = GetObjectByTag("NPC5");
object oNpc6 = GetObjectByTag("NPC6");
object oNpc7 = GetObjectByTag("NPC7");
object oNpc8 = GetObjectByTag("NPC8");
object oNpc9 = GetObjectByTag("NPC9");
object oNpc10 = GetObjectByTag("NPC10");
//------------------------------------------------------------------|
effect eCutIn = EffectVisualEffect(VFX_DUR_CUTSCENE_INVISIBILITY);//|:CutSchene:
//------------------------------------------------------------------|
effect on = EffectDazed();
effect eVis = EffectAreaOfEffect(VFX_DUR_DARKNESS);
object oNpc11 = GetObjectByTag("NPC11");
object oNpc12 = GetObjectByTag("NPC12");
object oNpc13 = GetObjectByTag("NPC13");
object oNpc14 = GetObjectByTag("NPC14");
object oNpc15 = GetObjectByTag("NPC15");
object oNpc16 = GetObjectByTag("NPC16");
object oNpc17 = GetObjectByTag("NPC17");
object oNpc18 = GetObjectByTag("NPC18");
object oNpc19 = GetObjectByTag("NPC19");
object oNpc20 = GetObjectByTag("NPC20");
//======================================================================
//Get Waypoint by teg!--------------------------------------------------
object oPIVIWP = GetWaypointByTag("PIVIWP");//BIG BOSS WP!
object oWP1 = GetWaypointByTag("WP1");
object oWP2 = GetWaypointByTag("WP2");
object oWP3 = GetWaypointByTag("WP3");
object oWP4 = GetWaypointByTag("WP4");
object oWP5 = GetWaypointByTag("WP5");
object oWP6 = GetWaypointByTag("WP6");
object oWP7 = GetWaypointByTag("WP7");
object oWP8 = GetWaypointByTag("WP8");
object oWP9 = GetWaypointByTag("WP9");
object oWP10 = GetWaypointByTag("WP10");
object oWP11 = GetWaypointByTag("WP11");
object oWP12 = GetWaypointByTag("WP12");
object oWP13 = GetWaypointByTag("WP13");
object oWP14 = GetWaypointByTag("WP14");
object oWP15 = GetWaypointByTag("WP15");
object oWP16 = GetWaypointByTag("WP16");
object oWP17 = GetWaypointByTag("WP17");
object oWP18 = GetWaypointByTag("WP18");
object oWP19 = GetWaypointByTag("WP19");
object oWP20 = GetWaypointByTag("WP20");
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
object oDrc1 = GetWaypointByTag("DARC1");
object oDrc2 = GetWaypointByTag("DARC2");
object oDrc3 = GetWaypointByTag("DARC3");
object oDrc4 = GetWaypointByTag("DARC4");
//.......................................................................
object oCm1 = GetWaypointByTag("Camera1");
object oCm2 = GetWaypointByTag("Camera2");
object oCm3 = GetWaypointByTag("Camera3");
    AssignCommand(oNpc1, ClearAllActions());
    AssignCommand(oNpc2, ClearAllActions());
    AssignCommand(oNpc3, ClearAllActions());
    AssignCommand(oNpc4, ClearAllActions());
    AssignCommand(oNpc5, ClearAllActions());
    AssignCommand(oNpc6, ClearAllActions());
    AssignCommand(oNpc7, ClearAllActions());
    AssignCommand(oNpc8, ClearAllActions());
    AssignCommand(oNpc9, ClearAllActions());
    AssignCommand(oNpc10, ClearAllActions());
    AssignCommand(oNpc11, ClearAllActions());
    AssignCommand(oNpc12, ClearAllActions());
    AssignCommand(oNpc13, ClearAllActions());
    AssignCommand(oNpc14, ClearAllActions());
    AssignCommand(oNpc15, ClearAllActions());
    AssignCommand(oNpc16, ClearAllActions());
    AssignCommand(oNpc17, ClearAllActions());
    AssignCommand(oNpc18, ClearAllActions());
    AssignCommand(oNpc19, ClearAllActions());
    AssignCommand(oNpc20, ClearAllActions());
//=============================***SCRIPT***==============================
DelayCommand(0.5, FadeToBlack(oPC, FADE_SPEED_FASTEST));
SetCutsceneMode(oPC);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eCutIn, oPC, 20.0);
DelayCommand(2.0, FadeFromBlack(oPC, FADE_SPEED_MEDIUM));
DelayCommand(3.0, AssignCommand(oPC, SetCameraFacing(90.0, 5.0, 79.0, CAMERA_TRANSITION_TYPE_SNAP)));
//.......................................................................
DelayCommand(6.7, AssignCommand(oPC, SetCameraFacing(90.0, 5.0, 79.0, CAMERA_TRANSITION_TYPE_SNAP)));
DelayCommand(8.5, AssignCommand(oPIVI, ActionMoveToObject(oPIVIWP)));
DelayCommand(14.0, AssignCommand(oPIVI, PlayVoiceChat(VOICE_CHAT_GOODBYE)));
DelayCommand(15.0, AssignCommand(oPIVI, ActionCastSpellAtObject(SPELL_HEALING_STING,oPC, METAMAGIC_ANY, 1)));
DelayCommand(16.5, AssignCommand(oPC, ActionJumpToObject(oCm1)));
DelayCommand(17.7, AssignCommand(oPC, SetCameraFacing(90.0, 5.0, 79.0, CAMERA_TRANSITION_TYPE_SNAP)));
//=======================Go Go Go========================================
DelayCommand(20.5, AssignCommand(oNpc1, ActionMoveToObject(oWP1)));
DelayCommand(21.5, AssignCommand(oNpc2, ActionMoveToObject(oWP2)));
DelayCommand(23.5, AssignCommand(oNpc3, ActionMoveToObject(oWP3)));
DelayCommand(24.5, AssignCommand(oNpc4, ActionMoveToObject(oWP4)));
DelayCommand(25.5, AssignCommand(oNpc5, ActionMoveToObject(oWP5)));
DelayCommand(27.5, AssignCommand(oNpc6, ActionMoveToObject(oWP6)));
DelayCommand(28.5, AssignCommand(oNpc7, ActionMoveToObject(oWP7)));
DelayCommand(29.5, AssignCommand(oNpc8, ActionMoveToObject(oWP8)));
DelayCommand(31.5, AssignCommand(oNpc9, ActionMoveToObject(oWP9)));
DelayCommand(33.5, AssignCommand(oNpc10,ActionMoveToObject(oWP10)));
//________________________________________________________________________
DelayCommand(36.5, AssignCommand(oNpc11, ActionMoveToObject(oWP11)));
DelayCommand(37.5, AssignCommand(oNpc12, ActionMoveToObject(oWP12)));
DelayCommand(38.5, AssignCommand(oNpc13, ActionMoveToObject(oWP13)));
DelayCommand(39.5, AssignCommand(oNpc14, ActionMoveToObject(oWP14)));
DelayCommand(40.5, AssignCommand(oNpc15, ActionMoveToObject(oWP15)));
DelayCommand(41.5, AssignCommand(oNpc16, ActionMoveToObject(oWP16)));
DelayCommand(43.5, AssignCommand(oNpc17, ActionMoveToObject(oWP17)));
DelayCommand(45.5, AssignCommand(oNpc18, ActionMoveToObject(oWP18)));
DelayCommand(47.5, AssignCommand(oNpc19, ActionMoveToObject(oWP19)));
DelayCommand(49.5, AssignCommand(oNpc20, ActionMoveToObject(oWP20)));
//,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
DelayCommand(50.0, AssignCommand(oNpc10, ActionPlayAnimation(ANIMATION_LOOPING_WORSHIP, 13.2, 2.0)));
DelayCommand(52.0, AssignCommand(oNpc20, ActionPlayAnimation(ANIMATION_LOOPING_WORSHIP, 15.4, 2.0)));
DelayCommand(56.0, AssignCommand(oPIVI, ActionPlayAnimation(ANIMATION_LOOPING_TALK_LAUGHING, 12.1, 3.0)));
DelayCommand(57.0, AssignCommand(oPIVI, PlayVoiceChat(VOICE_CHAT_LAUGH)));
DelayCommand(59.5, AssignCommand(oPC, ActionJumpToObject(oCm2)));
DelayCommand(62.6, AssignCommand(oPC, SetCameraFacing(180.0, 5.0, 180.0, CAMERA_TRANSITION_TYPE_SNAP)));
DelayCommand(63.0, SetCutsceneMode(oPC, FALSE));
DelayCommand(64.5, AssignCommand(oPC, ActionJumpToObject(oCm3)));
DelayCommand(65.5,RemoveEffect(oPC,eCutIn));
}

Дело в том что я хотел показать прибытие армии..
Сделал локу с трамплином завышением..
И задумал что первый пойдёт босс, а потом он засмеётся и с обоих сторон армия наваливает..
Но бос не идёт а мигом телепортируется армия вабще в премешку Пк раньше времени появляется, жуть одним словом помогите народ!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Friedrich
сообщение Feb 28 2005, 21:28
Сообщение #789


Level 5
**

Класс: Рейнджер
Характер: Neutral Good
Раса: Человек



QUOTE (Лито @ Feb 28 2005, 20:24)
Прошу помочь скриптом. Чтобы при воскрешении и райз дэде снимался опыт -50 за уровень(как при респауне). Я понимаю что я задавал этот вопрос, но тогда мне сказали как просто снять с игрока определенное кол-во опыта.

Об этом уже говорили где-то...
В общем, самый постой способ, снимать экспу сразу при смерти героя, но онПлеерДес, а не на онРеспавн.

Ноколл,
если скрипт на триггере, то он будет срабатывать многократно, как только на него наступит какой-нибудь НПС.

Добавь
object oPC = GetEnteringObject();
if (!GetIsPC(oPC)) return;

И вешай локалку (или стирай триггер), чтобы скрипт запускался только один раз.
Глубже копать твои скрипты вряд ли кто-нибудь отважится. :)


Сообщение отредактировал Friedrich - Feb 28 2005, 21:33
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение Feb 28 2005, 21:37
Сообщение #790


Level 9
***

Класс: Страж Тьмы
Характер: Chaotic Evil
Раса: Нежить



Friedrich Я вообще не о том...Вот например: игрок и умер и ждет пока его товарищ не реснет его. И вот когда этот товарищ скастует на труп райз или воскрешение, должно пройти пенальти
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

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

 



Текстовая версия Сейчас: 15th May 2025 - 23:40