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

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

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


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

Класс: Волшебник
Характер: Neutral Good
Раса: Человек
NWN: Скриптинг [PW]
Axistown SR 1.9
NWNX



QUOTE(Aiwan @ Jun 26 2007, 22:48) [snapback]109930[/snapback]
Neverwinter Script Source
if(sArea != "AREA1" || sArea != "AREA2")

Попробуй так.
Не ||, а &&.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 27 2007, 08:54
Сообщение #2742


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

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



Цитата(virusman @ Jun 27 2007, 03:42) [snapback]109938[/snapback]
Не ||, а &&.

Тогда не будет работать никогда, ведь будет поиск двух лок одновременно, а это всегда будет FALSE.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jun 27 2007, 09:48
Сообщение #2743


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

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



Цитата(Aiwan @ Jun 27 2007, 09:54) [snapback]109953[/snapback]
Тогда не будет работать никогда, ведь будет поиск двух лок одновременно, а это всегда будет FALSE.

нет.
Neverwinter Script Source
if(sArea != "AREA1" && sArea != "AREA2")

будет выдавать TRUE для всех локаций, тэг который не АРЕНА1 И не АРЕНА2. (те будет делать как раз то, что нужно)

ps: легко заметить, что условия, данные тобой и Вирусманом эквивалентны. Достаточно применить базовые принципы дискретной математики (ну или логики)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение Jun 27 2007, 12:21
Сообщение #2744


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

Класс: Волшебник
Характер: Neutral Good
Раса: Человек
NWN: Скриптинг [PW]
Axistown SR 1.9
NWNX



QUOTE(Lex @ Jun 27 2007, 10:48) [snapback]109956[/snapback]
ps: легко заметить, что условия, данные тобой и Вирусманом эквивалентны. Достаточно применить базовые принципы дискретной математики (ну или логики)
То, что у Айвана, всегда возвращает TRUE.
Я просто применил закон Де Моргана:
QUOTE
not (P and Q) = (not P) or (not Q)
not (P or Q) = (not P) and (not Q)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 27 2007, 14:11
Сообщение #2745


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

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



Да, я пропустил то что там два &&. Законы никакие не применял извините (IMG:style_emoticons/kolobok_light/pardon.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jun 27 2007, 14:14
Сообщение #2746


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

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



Цитата(virusman @ Jun 27 2007, 13:21) [snapback]109957[/snapback]
Я просто применил закон Де Моргана:

ага, я именно про него и говорил (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Leon PRO
сообщение Aug 19 2007, 16:56
Сообщение #2747


Ушедший на войну
Иконки Групп

Класс: Маг
Характер: Chaotic Good
Раса: Человек
NWN: Контент



Задача такая. НПС бежит к цели по "коридору", и в конце атакует ее (это его единственная цель для атаки, и он направлен на нее через скрипт).
По обоим сторонам коридора стоят "орудия" которые непрерывно атакуют НПС. Это могут быть плейсы или кричи. Что и как необходимо изменить, чтобы бегущий НПС ни при каких случаях не стал бы атаковать или отвлекаться на стреляющих, даже если конечная цель будет недоступна (например заблокирован проход).

Не знаю даже с чего начать.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Aug 19 2007, 17:53
Сообщение #2748


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

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



хм.. как вариант - переписать этому НПС скрипт onAttack и onDamage, чтобы НПС не атаковал в ответ тех, кто бьет его, если это не игрок или кто-то из партии игрока.
другой вариант - эти по краям корридора атакуют через FakeSpell, а дамаг кладется скриптом отдельно - тут нужно прописать для этих НПС ХБ скрипт свой.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
r1Stranger
сообщение Aug 26 2007, 12:18
Сообщение #2749


Level 4
**

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



а можно я ляпну? (IMG:style_emoticons/kolobok_light/ph34r.gif) (IMG:style_emoticons/kolobok_light/unsure.gif) (IMG:style_emoticons/kolobok_light/unsure.gif)
Цитата(Lex @ Aug 19 2007, 17:53) *
хм.. как вариант - переписать этому НПС скрипт onAttack и onDamage, чтобы НПС не атаковал в ответ тех, кто бьет его, если это не игрок или кто-то из партии игрока.

я бы наверно в этих скриптах делал проверку на текущее действие (бой) и если игрок в бою (GetIsInCombat (что то такое (IMG:style_emoticons/kolobok_light/unsure.gif) )) и последняя цель живая и/или действительная, чтоб он вообще ни на какие атаки и ущерб не реагировал (return) а добивал бы это до упора (если не надо делать проверку на собственные хп если не камикадзе), если нет списка приоритетов. Ну и в On perception поставил бы на дверь больший проиритет...

сори если че..

Сообщение отредактировал r1Stranger - Aug 26 2007, 12:20
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
drago
сообщение Sep 8 2007, 21:03
Сообщение #2750


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

Класс: Маг
Характер: Lawful Evil
Раса: Дракон
NWN: Скриптинг [PW]



делал спел, вроде все работает нормально, однако дамажит криво - то 3 раза, то 1.


Neverwinter Script Source
#include "X0_I0_SPELLS"
#include "x2_inc_spellhook"


void DoArmageddon()
{
vector vSelf = GetPosition(OBJECT_SELF);
vector v1 = Vector(vSelf.x+10.0f, vSelf.y+10.0f, 0.0f);
vector v2 = Vector(vSelf.x-10.0f, vSelf.y+10.0f, 0.0f);
vector v3 = Vector(vSelf.x+10.0f, vSelf.y-10.0f, 0.0f);
vector v4 = Vector(vSelf.x-10.0f, vSelf.y-10.0f, 0.0f);
//вокруг чара 4 точки создаются, куда эффекты налагаются
object oArea = GetArea(OBJECT_SELF);

location Loc1 = Location(oArea, v1, GetFacing(OBJECT_SELF));
location Loc2 = Location(oArea, v2, GetFacing(OBJECT_SELF));
location Loc3 = Location(oArea, v3, GetFacing(OBJECT_SELF));
location Loc4 = Location(oArea, v4, GetFacing(OBJECT_SELF));


ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_METEOR_SWARM), Loc1);
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_METEOR_SWARM), Loc2);
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_METEOR_SWARM), Loc3);
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_METEOR_SWARM), Loc4);

}

void main()
{
int nDam1, nDam2;
effect eDam, eDam2;
DoArmageddon();
object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, 20.0f, GetLocation(OBJECT_SELF), OBJECT_TYPE_CREATURE || OBJECT_TYPE_PLACEABLE);
while (GetIsObjectValid(oTarget))
    {
    if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF) && oTarget != OBJECT_SELF)
        {
            nDam1 = d10(20);
            nDam2 = d10(5);
            eDam = EffectDamage(nDam1, DAMAGE_TYPE_FIRE);
            eDam2 = EffectDamage(nDam2, DAMAGE_TYPE_MAGICAL);
                ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget);
                ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam2, oTarget);
        }
        oTarget = GetNextObjectInShape(SHAPE_SPHERE, 20.0f, GetLocation(OBJECT_SELF), OBJECT_TYPE_CREATURE || OBJECT_TYPE_PLACEABLE);
    }


}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
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.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

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

 



Текстовая версия Сейчас: 2nd May 2025 - 18:48