Игроделу |Скрипты 2 | Neverwinter Nights
По сайту
Главная
Рыцарская сага
Файлы
Neverwinter Nights
Гостевая книга
Форум сайта

По теме
Игроделу
Редактор фракций
Редактор журнала
Редактор диалога
Редактор скрипта
Модуль и области
Двери
Монстры
Встречи
Предметы
Торговцы
Объекты
Триггеры
Звуки
Тайлы
Хак файлы
Скриптинг
Neverwinter NightsскриптыИгроделу

Скрипты - Neverwinter Nights

Страница: 1 2 3

action (действие)

Этот оператор не используется как ключевое слово. Тип action используется как параметр в функциях DelayCommand, AssignCommand, ActionDoCommand. К этому типу могут относиться только функции void. Вы не можете определять переменные этого типа или свои функции с параметрами action.

const (константа)

Константа - не изменяемое значение. Константа является символом (меткой), чтобы представить величину, которая не должна меняться в течение выполнения программы. Константы делают скрипт более читабельным и позволяют проще и быстрее редактировать тот. Они очень полезны, когда величина изменяется в некоторой точке, можно просто изменить константу, вместо исправления значения по всему коду. Для обозначения констант применяется служебное слово const. Есть три типа констант, которые вы можете использовать: int - целое число, float - число с плавающей точкой и string - строка (текст).

Целая константа (int) - это десятичное число, которое представляет целую величину.
Константа с плавающей точкой (float) - это действительное десятичное число.
Строковый литерал (string) - это последовательность букв, цифр и символов, заключенная в двойные кавычки.

По правилу переменные и константы должны располагаться в верхней части скрипта, но это не является жестким правилом. Если в include (включенные файлы) помещены константы, то все файлы, включившие его, будут использовать константы.

   const int MYINT = 3;           // целое число
   const float MYFLOAT = 3.00;    // число с плавающей точкой
   const string MYSTRING = "три"; // строка (текст)

effect (эффект)

Этот тип используется для определения некоего эффекта, как визуального, так и невизуального. Каждый эффект создается с помощью конструктора – функции создающей определенный эффект. Потом этот эффект накладывается с помощью функций ApplyEffectToObject() и ApplyEffectAtLocation() на объект или локацию.

По длительности эффекты можно разделить на три вида:

  1. Мгновенные (DURATION_TYPE_INSTANT) – не имеющие длительности, например повреждение, лечение или смерть, после наложения сразу же исчезают.
  2. Временные (DURATION_TYPE_TEMPORARY) – длящиеся некоторое время, эффект присутствует все время действия.
  3. Постоянные (DURATION_TYPE_PERMANENT) – длящиеся вечно, либо до тех пор, пока их не снимут.
  //вот наш эффект. Он не визуальный, этим эффектом мы уменьшим выносливость на 1 
  effect eConPenalty = EffectAbilityDecrease(ABILITY_CONSTITUTION, 1);

  //функцией  ApplyEffectToObject мы применяем наш эффект к объекту 
  ApplyEffectToObject(DURATION_TYPE_PERMANENT, eConPenalty, oTargetPC);

Эффекты можно разделить на три подтипа:

  1. Магические (Magical) – могут быть развеяны с помощью заклинания и автоматически заканчиваются при начале отдыха, это подтип по умолчанию.
    effect eMag = MagicalEffect(eEffect);
  2. Экстраординарные (Extraordinary) – не могут быть сняты с помощью заклинания, автоматически снимаются в конце отдыха.
    effect eExt = ExtraordinaryEffect(eEffect);
  3. Сверхъестественные (Supernatural) – не могут быть сняты ни заклинанием, ни с помощью отдыха.
    effect eSup = SupernaturalEffect(eEffect);

Можно создать один эффект состоящий сразу из нескольких, для этого есть функция EffectLinkEffects, соединяющая два назначеных ей эффекта в один, причем если у цели есть иммунитет к одному из объединенных эффектов, то другие эффекты ею тоже игнорируются. С помощью нее можно соединить сколь угодно эффектов в один.
effect eSostav = EffectLinkEffects(eEffect, EffectHaste(20));

Чтобы снять нужный эффект или эффекты нужно перебрать все эффекты на объекте, для каждого эффекта проверять тот ли это эффект, и если это нужный, то удалять. Для этого используем оператор цикла while и вспомогательные операторы:
GetFirstEffect(oObject) - первый эффект
GetNextEffect(oObject) - следующий эффект
RemoveEffect(oObject, eEffect) - снять эффект
Ниже, в библиотеке визуальных эффектов, приведены две функции для снятия эффектов.

event (событие)

В свойствах почти каждого объекта Тулсета (NPC, триггера, локации, модуля, двери…) Есть закладка с событиями, запускаемыми при определенных условиях – эвентами. Например, эвент OnDeath стработает при уничтожении данного объекта.

Используя тип event и определенные функции, можно запустить эвент в ручную. Было бы хорошо, если бы для каждого эвента была своя вызывающая функция, но на практике есть только четыре: EventActivateItem(), EventConversation(), EventSpellCastAt(), EventUserDefined(). Первые три работают только по определенным событиям, а четвертая более универсальна.

  event evEvent =  EventUserDefined (1); //назначили эвент
  SignalEvent(oldTarget, evEvent); //сигнализировали на запуск

float (число с плавающей точкой)

Этот тип представляет 32-битное число с плавающей точкой. Максимальное значение 3.402823e38, минимальное значение -3.402823e38, по умолчанию 0.0.

Во всех переменных типа float нужно обязательно ставить десятичную точку и хотя бы одну цифру после нее, а также букву f. .

   float fZero = 0.0f;
   float fOne = 1.0f;
   float fHundred = 100.0f;

int (целое число)

Этот тип представляет 32-битное целое число. Максимальное значение 2,147,483,647, минимальное значение -2,147,483,648, по умолчанию 0.

   int iAge = 23;
   int iResult = 2 + 2;

Itemproperty (свойство элемента)

Itemproperty содержит информацию, которая определяет различные свойства, которыми обладает предмет. Например, свойство рубашки, дающее бонус к броне.

  // в этой переменной у нас записано св-во увеличивающее броню на 1
  itemproperty itemACBonus = ItemPropertyACBonus(1);
  //это объект, к которому будет добавлено свойство
  object oRoba = GetObjectByTag("ROBA");
  //этой функцией мы добавляем св-во к объекту
  AddItemProperty(DURATION_TYPE_TEMPORARY, itemACBonus, oRoba);

location (локация, местоположение)

Локация определяется тремя параметрами: областью, в которой нужно определить локацию, вектором, который по трем координатам (x, y, z) определяет точную позицию в области и направлением, числом с плавающей точкой от 0.0 до 360.0, которое определяет направление. Проще говоря, это место, точка и поворот. Если мы кинем игрока на локацию, то он появится в указанной области, в указанной точки и будет смотреть в указанном направлении.

Важно: не путайте понятия локация и область. Область – это карта. А локация – это точка на этой карте.

   location locLocation = Location(oArea, vPosition, fFacing);

object (объект)

Этим типом обозначаются все объекты: NPC, триггеры, размещаемые предметы, инвентарь, вейпоинты… В обще, вся палитра, PC и DM.

  object oSucks = GetLastPlayerDied(); //в этой переменной будет последний умерший PC
  object oNew = GetObjectByTag("TAG"); //в этой переменной будет объект с тагом "TAG"

string (строка)

Это строчный тип переменной, в которой содержится любой текст. В тексте могут быть не только буквы, но и цифры, знаки, символы. Чтобы отнести написанное к тексту, его заключают в кавычки. Строка не ограничена по длине. Строки можно соединять, используя, оператор соединения "+". Так же можно сравнивать две строки с помощью операторов "= =" и "! = ". По умолчанию, пустая строка равна "".

Важно: при сравнении строк учитывается их регистр.

  //Все это воспринимается компилятором, как строка, благодаря кавычкам ""
  string sString = "Один, One, 1, =, -, %, «», @...";

  //Для компилятора это две разные строки
  string sStr = "string";
  string sSTR = "STRING";

struct (структура)

Структура переменных различных типов, объединенных в одну переменную. Удобна для возврата множества значений, облегчает код.

  struct Name
   {
     string First;
     string Last;
   }

talent (талант)

Этот тип представляет фиты, скиллы и спелы.

   talent tFeat = TalentFeat(FEAT_ARMOR_PROFICIENCY_HEAVY);
   talent tSkill = TalentSkill(SKILL_APPRAISE);
   talent tSpell = TalentSpell(SPELL_DAZE);

vector (вектор)

Вектор состоит из трех чисел с плавающей точкой, которые обозначают положение по трем координатам (X, Y, Z). Вы можете сами задать вектор, а можете получить его специальной функцией. По умолчанию значение вектора {0, 0, 0} (или x = 0, y = 0, z = 0).

  //в этой переменной будет содержаться вектор разности векторов объектов: OBJECT_SELF 
  //и oidTargetObject
  vector v1 = GetPosition(OBJECT_SELF) - GetPosition(oidTargetObject);

  //тут мы сами задали вектор
  vector v2 = Vector(1.0f, 2.0f, 3.0f);

  //выводим x координату из вектора v2
  PrintFloat(v2.x);

  //квадратный корень из данной суммы
  float fDistanceToTarget = sqrt(v1.x * v1.x + v1.y * v1.y + v1.z * v1.z);

void (пусто )

Нулевой тип данных. Им обозначаются функции, которые не возвращают значений. Только такие функции могут быть поставлены в очередь действия.

  void DeductXP(object oPC)
   {
	// Тут вычисляется XP
   }

return (возврат с присваиванием)

Когда оператор обратного утверждения будет запущен в ходе выполнения кода, то он остановит выполнение и передаст обратную величину кодового блока, вызываемой функции. Если возвращаемое значение не соответствует типу данных функции, то компилятор выдаст ошибку о несоответствии типа. Если функция return возвращает пустое значение, то она может быть использована для преждевременной остановки выполнения кодового блока, если возвращаемая величина определена после функции return, то компилятор выдаст ошибку о несовпадении типа.

  // возвратит число с плавающей точкой с величиной 1.0
  float someFunction()
   {
     return 1.0f;
   }
  // НОВАЯ ФУНКЦИЯ
  void Text(int iString)
  {
   if(iString==1) SpeakString("Начало скрипта");
     return; // выход 
   if(iString==2) SpeakString("Конец скрипта");
     return; // выход 
  }
  void main() 
  {
    Text(1);
    Text(2);
    return; // выход из скрипта 
    Text(1); // Эту строку программа не прочтет…
  }

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

break (оператор прерывания)

Используйте оператор break, для выхода из циклов и условий (из фигурных скобок "обрамляющих" тело текущего блока кода) if, else, while, и for или в одном из case оператора switch.

Если оператор прерывания выполняется в теле цикла, то выполнение цикла прекращается, не зависимо от условия управляющего циклом. Любые операторы находящиеся после оператора break не будут восприняты.

Если оператор прерывания выполнен в одном из case оператора switch, то все последующие case не будут восприняты.

switch (оператор переключения)

Оператор switch действует подобно серии операторов if. Это делает код более удобным и ясным, он поддерживает в одном условии несколько случаев.

Важно: Только целые могут быть использованы как условие в операторе switch.

  // оператор switch 
  switch (x) 
  {
  case 0:
     // операторы ...
     // без прерывания проверка продолжится
     // in this example if we didn't use a break, the default
     // condition would also evaluate as true if x == 0
     break; // прерывание
  case 1:
     // операторы ...
     break;
  case 2:
     // операторы ...
     break;
  default:
     // операторы ...
     break;
}

Значение переменной x устанавливается в операторе switch, далее значение этой переменной сравнивается со значениями в операторах case. Если ни один из операторов case не равен x, тогда запускается дополнительный кодовый блок default.

Важно: оператор прерывания (break) должен быть включен в каждый блок оператора case, чтобы закончить выполнение оператора switch. Еще одним поводом является то, что отсутствие оператора break в конце блока кода одного оператора case приведет к тому, что начнут выполняться все остальные case (иногда это желаемый эффект). Оператор default необязателен, может не использоваться.
Вы не можете объявлять или инициализировать переменные в пределах оператора case.

Библиотека визуальных эффектов (с буквой "i" только DURATION_TYPE_INSTANT)

////////////////////////////////////////////////////////////
// *** БИБЛИОТЕКА ЭФФЕКТОВ ***    #include "effect_one"
////////////////////////////////////////////////////////////

// Воронка синего тумана 1
 effect e1i = EffectVisualEffect(VFX_FNF_DISPEL);
// Воронка синего тумана 2
 effect e2i = EffectVisualEffect(VFX_FNF_DISPEL_DISJUNCTION);
// Воронка синего тумана 3
 effect e3i = EffectVisualEffect(VFX_FNF_DISPEL_GREATER);
// ЖелтаЯ воронка
 effect e4i = EffectVisualEffect(VFX_FNF_IMPLOSION);
// НегативнаЯ энергиЯ Красный круг 1
 effect e5i = EffectVisualEffect(VFX_FNF_LOS_EVIL_10);
// НегативнаЯ энергиЯ Красный круг 2
 effect e6i = EffectVisualEffect(VFX_FNF_LOS_EVIL_20);
// НегативнаЯ энергиЯ Красный круг 3
 effect e7i = EffectVisualEffect(VFX_FNF_LOS_EVIL_30);
// круг желтый 1
 effect e8i = EffectVisualEffect(VFX_FNF_LOS_HOLY_10);
// круг желтый 2
 effect e9i = EffectVisualEffect(VFX_FNF_LOS_HOLY_20);
// круг желтый 3
 effect e10i = EffectVisualEffect(VFX_FNF_LOS_HOLY_30);
// Зеленый круг животных
 effect e11i = EffectVisualEffect(VFX_FNF_NATURES_BALANCE);
// Красный круг пентаграммы
 effect e12i = EffectVisualEffect(VFX_FNF_PWKILL);
// ФиолетоваЯ спираль и круг
 effect e13i = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_2);
// Страх синий круг
 effect e14i = EffectVisualEffect(VFX_FNF_HOWL_MIND);
// Страх фиолетовый круг
 effect e15i = EffectVisualEffect(VFX_FNF_HOWL_ODD);
// Страх белый круг
 effect e16i = EffectVisualEffect(VFX_FNF_HOWL_WAR_CRY);
// Огненный импульсный круг
 effect e17i = EffectVisualEffect(VFX_IMP_PULSE_FIRE);
// синий импульсный круг
 effect e18i = EffectVisualEffect(VFX_IMP_PULSE_COLD);

// ***********  ИНТЕРЕСНЫЕ  ****************************************************
// ГолубаЯ  звезда под ногами
 effect e19i = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_3);
// БольшаЯ желтаЯ звезда под ногами
 effect e20i = EffectVisualEffect(VFX_FNF_WORD);
// Врата Ада синий луч
 effect e21i = EffectVisualEffect(VFX_FNF_SUMMON_CELESTIAL);
// Врата Ада огненный взрыв
 effect e22i = EffectVisualEffect(VFX_FNF_SUMMON_GATE);
// Девка
 effect e23i = EffectVisualEffect(VFX_FNF_WAIL_O_BANSHEES);
// Змей двуглавый
 effect e24i = EffectVisualEffect(VFX_FNF_WEIRD);
// Голубое облако
 effect e25i = EffectVisualEffect(VFX_IMP_DISPEL);
// Глазастое синие облако
 effect e26 = EffectVisualEffect(VFX_DUR_PROT_PREMONITION);
// Черные мошки ДЛЯ ЛОКАЦИИ
 effect e27 = EffectAreaOfEffect(AOE_PER_CREEPING_DOOM);
// Большой зеленый дождь ДЛЯ ЛОКАЦИИ
 effect e28 = EffectAreaOfEffect(AOE_PER_STORM);

// ***********  ВЗРЫВНЫЕ  ******************************************************
// Большой огненный взрыв
 effect e29i = EffectVisualEffect(VFX_FNF_FIREBALL);
// Взрыв газа зеленый
 effect e30i = EffectVisualEffect(VFX_FNF_GAS_EXPLOSION_ACID);
// Взрыв газа красный
 effect e31i = EffectVisualEffect(VFX_FNF_GAS_EXPLOSION_EVIL);
// Огненный взрыв
 effect e32i = EffectVisualEffect(VFX_FNF_GAS_EXPLOSION_FIRE);
// Взрыв газа черный
 effect e33i = EffectVisualEffect(VFX_FNF_GAS_EXPLOSION_GREASE);
// Взрыв газа синий
 effect e34i = EffectVisualEffect(VFX_FNF_GAS_EXPLOSION_MIND);
// Большой серебристый взрыв
 effect e35i = EffectVisualEffect(VFX_FNF_BLINDDEAF);
// Взрыв газа болотный
 effect e36i = EffectVisualEffect(VFX_FNF_GAS_EXPLOSION_NATURE);
// Звуковой взрыв 1
 effect e37i = EffectVisualEffect(VFX_FNF_LOS_NORMAL_10);
// Звуковой взрыв 2
 effect e38i = EffectVisualEffect(VFX_FNF_LOS_NORMAL_20);
// Звуковой взрыв 3
 effect e39i = EffectVisualEffect(VFX_FNF_LOS_NORMAL_30);
// Большой звуковой взрыв
 effect e40i = EffectVisualEffect(VFX_FNF_SOUND_BURST);
// Серебристый взрыв
 effect e41i = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_1);
// Серебристый малый взрыв и голос страха
 effect e42i = EffectVisualEffect(VFX_FNF_SUMMON_UNDEAD);
// Большой взрыв красные кости
 effect e43i = EffectVisualEffect(VFX_COM_CHUNK_RED_LARGE);
// взрыв красные кости
 effect e44i = EffectVisualEffect(VFX_COM_CHUNK_RED_MEDIUM);
// взрыв красные кости
 effect e45i = EffectVisualEffect(VFX_COM_CHUNK_RED_SMALL);
// Взрыв зеленые кости
 effect e46i = EffectVisualEffect(VFX_COM_CHUNK_GREEN_MEDIUM);
// Взрыв зеленые кости
 effect e47i = EffectVisualEffect(VFX_COM_CHUNK_GREEN_SMALL);
// Взрыв желтые кости
 effect e48i = EffectVisualEffect(VFX_COM_CHUNK_YELLOW_MEDIUM);
// Взрыв желтые кости
 effect e49i = EffectVisualEffect(VFX_COM_CHUNK_YELLOW_SMALL);
// Взрыв костей нежить
 effect e50i = EffectVisualEffect(VFX_COM_CHUNK_BONE_MEDIUM);
// Малый зеленый взрыв
 effect e51i = EffectVisualEffect(VFX_COM_HIT_ACID);
// МалаЯ огненнаЯ вспышка
 effect e52i = EffectVisualEffect(VFX_COM_HIT_FIRE);
// Взрыв ежиков
 effect e53i = EffectVisualEffect(VFX_DUR_CALTROPS);

// ***********  ЗАКЛИНАНИЕ  ****************************************************
// Увeдание Аб-ма
 effect e54i = EffectVisualEffect(VFX_FNF_HORRID_WILTING);
// Ледeной шторм
 effect e55i = EffectVisualEffect(VFX_FNF_ICESTORM);
// Метеорный дождь
 effect e56i = EffectVisualEffect(VFX_FNF_METEOR_SWARM);
// Огненный шторм
 effect e57i = EffectVisualEffect(VFX_FNF_FIRESTORM);
// Часы
 effect e58i = EffectVisualEffect(VFX_FNF_TIME_STOP);
// Рука Бигли
 effect e59 = EffectVisualEffect(VFX_DUR_BIGBYS_CLENCHED_FIST);
// Захват Бигли
 effect e60 = EffectVisualEffect(VFX_DUR_BIGBYS_CRUSHING_HAND);
// Вращ рука Бигли
 effect e61 = EffectVisualEffect(VFX_DUR_BIGBYS_INTERPOSING_HAND);
// Паутина удержание
 effect e62 = EffectVisualEffect(VFX_DUR_WEB);
// Паутина удержание под ногами
 effect e63 = EffectVisualEffect(VFX_DUR_WEB_MASS);
// Кожа кора
 effect e64 = EffectVisualEffect(VFX_DUR_PROT_BARKSKIN);
// КаменнаЯ кожа
 effect e65 = EffectVisualEffect(VFX_DUR_PETRIFY);
// ЧернаЯ кожа
 effect e66 = EffectVisualEffect(VFX_DUR_PROT_SHADOW_ARMOR);
// Теневой режим
 effect e67 = EffectVisualEffect(VFX_DUR_GHOSTLY_PULSE);
// Призрачный вид
 effect e68 = EffectVisualEffect(VFX_DUR_GHOSTLY_VISAGE);
// Фиолетовый вид
  effect e69 = EffectVisualEffect(VFX_DUR_ETHEREAL_VISAGE);
// Телесное мерцание
  effect e70 = EffectVisualEffect(VFX_DUR_BLUR);
// Толчки 1
 effect e71i = EffectVisualEffect(VFX_FNF_SCREEN_BUMP);
// Толчки 2
 effect e72i = EffectVisualEffect(VFX_FNF_SCREEN_SHAKE);
// ПульсирующаЯ голубаЯ звезда  (взлом замка)
 effect e73i = EffectVisualEffect(VFX_IMP_KNOCK);
// Отзыв животного, голубой круг
 effect e74i = EffectVisualEffect(VFX_IMP_UNSUMMON);

// ***********  ЛУЧИ  **********************************************************
// Большой желтый луч
 effect e75i = EffectVisualEffect(VFX_FNF_SUNBEAM);
// Огненный луч
 effect e76i = EffectVisualEffect(VFX_IMP_DIVINE_STRIKE_FIRE);
// Синий луч
 effect e77i = EffectVisualEffect(VFX_IMP_HEALING_X);
// Молнии луч
 effect e78i = EffectVisualEffect(VFX_IMP_LIGHTNING_M);
// Красный луч
 effect e79i = EffectVisualEffect(VFX_IMP_HARM);

// ***********  ПОД НОГАМИ  ****************************************************
// Доспехи супер героЯ
 effect e80i = EffectVisualEffect(VFX_IMP_SUPER_HEROISM);
// Чернота под ногами (тьма)
 effect e81 = EffectVisualEffect(VFX_DUR_ANTI_LIGHT_10);
// Огненный круг под ногами
 effect e82 = EffectVisualEffect(VFX_DUR_ELEMENTAL_SHIELD);
// Синий круг под ногами
 effect e83 = EffectVisualEffect(VFX_DUR_SPELLTURNING);
// Зеленый круг под ногами
 effect e84 = EffectVisualEffect(VFX_DUR_FREEDOM_OF_MOVEMENT);
// Искры у ног
 effect e85i = EffectVisualEffect(VFX_COM_SPARKS_PARRY);
// Малый взрыв электричества под ногами
 effect e86i = EffectVisualEffect(VFX_IMP_LIGHTNING_S);
// Черные нити
 effect e87 = EffectVisualEffect(VFX_DUR_TENTACLE);
// Папоротник
 effect e88 = EffectVisualEffect(VFX_DUR_ENTANGLE);
// Пар
 effect e89i = EffectVisualEffect(VFX_FNF_SMOKE_PUFF);
// Флаг синий
 effect e90 = EffectVisualEffect(VFX_DUR_FLAG_BLUE);
// Флаг фиолетовый
 effect e91 = EffectVisualEffect(VFX_DUR_FLAG_GOLD);
// Флаг желтый
 effect e92 = EffectVisualEffect(VFX_DUR_FLAG_PURPLE);
// Флаг красный
 effect e93 = EffectVisualEffect(VFX_DUR_FLAG_RED);
// Облако болотное малое ДЛЯ ЛОКАЦИИ
 effect e94 = EffectAreaOfEffect(AOE_MOB_TYRANT_FOG);
// Облако болотное малое ДЛЯ ЛОКАЦИИ
 effect e95 = EffectAreaOfEffect(AOE_PER_FOGGHOUL);
// Облако болотное ДЛЯ ЛОКАЦИИ
 effect e96 = EffectAreaOfEffect(AOE_PER_FOGSTINK);
// Облако зеленое  ДЛЯ ЛОКАЦИИ
 effect e97 = EffectAreaOfEffect(AOE_PER_FOGACID);
// Облако огненное ДЛЯ ЛОКАЦИИ
 effect e98 = EffectAreaOfEffect(AOE_PER_FOGFIRE);
// Облако красное  ДЛЯ ЛОКАЦИИ
 effect e99 = EffectAreaOfEffect(AOE_PER_FOGKILL);
// Облако синее    ДЛЯ ЛОКАЦИИ
 effect e100 = EffectAreaOfEffect(AOE_PER_FOGMIND);
// Облако черное   ДЛЯ ЛОКАЦИИ
 effect e101 = EffectAreaOfEffect(AOE_PER_GREASE);
// Много щупальцы болтные ДЛЯ ЛОКАЦИИ
 effect e102 = EffectAreaOfEffect(AOE_PER_ENTANGLE);
// Много щупальцы черные  ДЛЯ ЛОКАЦИИ
 effect e103 = EffectAreaOfEffect(AOE_PER_EVARDS_BLACK_TENTACLES);

// ***********  У ГОЛОВЫ  ******************************************************
// Музыка и ноты
 effect e104i = EffectVisualEffect(VFX_DUR_BARD_SONG);
// Гроза над головой
 effect e105i = EffectVisualEffect(VFX_IMP_DOOM);
// Зеленый взрыв над головой
 effect e106i = EffectVisualEffect(VFX_IMP_HEAD_ACID);
// Голубой взрыв над головой
 effect e107i = EffectVisualEffect(VFX_IMP_HEAD_COLD);
// Электрический взрыв над головой
 effect e108i = EffectVisualEffect(VFX_IMP_HEAD_ELECTRICITY);
// Красный взрыв над головой
 effect e109i = EffectVisualEffect(VFX_IMP_HEAD_EVIL);
// Огненный взрыв над головой
 effect e110i = EffectVisualEffect(VFX_IMP_HEAD_FIRE);
// Сине-желтый взрыв над головой
 effect e111i = EffectVisualEffect(VFX_IMP_HEAD_HEAL);
// Желтый взрыв над головой
 effect e112i = EffectVisualEffect(VFX_IMP_HEAD_HOLY);
// Фиолетовый взрыв над головой
 effect e113i = EffectVisualEffect(VFX_IMP_HEAD_MIND);
// Желто-зеленый взрыв над головой
 effect e114i = EffectVisualEffect(VFX_IMP_HEAD_NATURE);
// Малый oгненный взрыв у головы
 effect e115i = EffectVisualEffect(VFX_COM_HIT_FIRE);
// Радужные брызги у головы
 effect e116i = EffectVisualEffect(VFX_COM_BLOOD_SPARK_LARGE);
// Радужные брызги
 effect e117i = EffectVisualEffect(VFX_COM_BLOOD_SPARK_MEDIUM);
// Красный шар взрыв у головы
 effect e118i = EffectVisualEffect(VFX_COM_BLOOD_CRT_RED);
// Желтый шар взрыв у головы
 effect e119i = EffectVisualEffect(VFX_COM_BLOOD_CRT_YELLOW);
// Ледeной взрыв над головой
 effect e120i = EffectVisualEffect(VFX_IMP_STUN);
// Маг радужное облако
 effect e121i = EffectVisualEffect(VFX_IMP_HEALING_G);
// Замешательство облако
 effect e122 = EffectVisualEffect(VFX_DUR_MAGICAL_SIGHT);
// Замешательство птички
 effect e123 = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED);
// Замешательство нимб голубой
 effect e124 = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DOMINATED);
// Страх
 effect e125 = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_FEAR);
// Замешательство спираль
 effect e126 = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_NEGATIVE);
// Замешательство круг кинжалов
 effect e127 = EffectVisualEffect(VFX_DUR_PARALYZED);

// ***********  ПРОЧИЕ  ********************************************************
// КраснаЯ спираль
 effect e128i = EffectVisualEffect(VFX_FNF_PWSTUN);
// БольшаЯ белаЯ спираль
 effect e129 = EffectVisualEffect(VFX_DUR_PARALYZE_HOLD);
// Аура голубаЯ
 effect e120 = EffectVisualEffect(VFX_DUR_AURA_COLD);
// ОгненнаЯ спираль
 effect e131i = EffectVisualEffect(VFX_IMP_DIVINE_STRIKE_HOLY);
// Фонтан голубой спиральный
 effect e132i = EffectVisualEffect(VFX_IMP_HEALING_L);
// Малый столб света
 effect e133i = EffectVisualEffect(VFX_IMP_HEALING_M);
// МалаЯ голубаЯ спираль
 effect e134i = EffectVisualEffect(VFX_IMP_HEALING_S);
// МалаЯ тьма
 effect e135 = EffectVisualEffect(VFX_DUR_DARKNESS);
// БОЛЬШАЯ ТЬМА
 effect e136 = EffectVisualEffect(AOE_PER_DARKNESS);
// Маг сфера
 effect e137 = EffectVisualEffect(VFX_DUR_GLOBE_INVULNERABILITY);
// ПризрачнаЯ маг сфера
 effect e138 = EffectVisualEffect(VFX_DUR_GLOBE_MINOR);
// Маг рваннаЯ сфера
 effect e139 = EffectVisualEffect(VFX_DUR_MAGIC_RESISTANCE);
// Красный дождь
 effect e140 = EffectVisualEffect(VFX_DUR_PROTECTION_EVIL_MAJOR);
// Малый красный дождь
 effect e141 = EffectVisualEffect(VFX_DUR_PROTECTION_EVIL_MINOR);
// Желтый дождь
 effect e142 = EffectVisualEffect(VFX_DUR_PROTECTION_GOOD_MAJOR);
// Малый желтый дождь
 effect e143 = EffectVisualEffect(VFX_DUR_PROTECTION_GOOD_MINOR);
// БольшаЯ синеЯ спираль
 effect e144 = EffectVisualEffect(VFX_DUR_SANCTUARY);
// Желтый маг дождь
 effect e145 = EffectVisualEffect(VFX_DUR_PROTECTION_ELEMENTS);
// Свет желтый
 effect e146 = EffectVisualEffect(VFX_DUR_LIGHT_YELLOW_10);
// Свет белый
 effect e147 = EffectVisualEffect(VFX_DUR_LIGHT_WHITE_10);
// Свет красный
 effect e148 = EffectVisualEffect(VFX_DUR_LIGHT_RED_10);
// Свет голубой
 effect e149 = EffectVisualEffect(VFX_DUR_LIGHT_BLUE_10);
// Окаменение - статуЯ
 effect e150 = EffectPetrify();
// Прыжок с неба
 effect e151 = EffectAppear();
// Прыжок в небо и уничтожение объекта
 effect e152 = EffectDisappear();
// Эффект зачаровывает цель - (не может говорить)
 effect e153 = EffectCharmed();
// Эффект парализации
 effect e154 = EffectCutsceneParalyze();
// ПолнаЯ невидимость
 effect e155 = EffectVisualEffect(VFX_DUR_CUTSCENE_INVISIBILITY);
// Эффект смерти
 effect e156i = EffectDeath();
// Эффект ускорение
 effect e157 = EffectHaste();
// Эффект запутывание
 effect e158 = EffectEntangle();
// Эффект воскрешениe
 effect e159i = EffectResurrection();
// Эффект сон
 effect e160 = EffectSleep();
// Эффект сон
 effect e161 = EffectVisualEffect(VFX_IMP_SLEEP);
// Эффект замедление - цель затормаживает на 50%
 effect e162 = EffectSlow();
// ПРОКЛЯТИЕ
 effect e163 = EffectCurse(3,3,3,3,3);
// Эффект падение на колени, PC полностью обездвижен
 effect e164 = EffectKnockdown();
//************************** 164
//=============== НАЛОЖИТЬ ЭФФЕКТ ==============================================
void EffectOnPC(object oObject, effect eOne, float iTime, int iNUB)
{
 location lEffect = GetLocation(oObject);
 if (iNUB == 1) ApplyEffectToObject(DURATION_TYPE_INSTANT, eOne, oObject);
 if (iNUB == 2) ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eOne, oObject, iTime);
 if (iNUB == 3) ApplyEffectToObject(DURATION_TYPE_PERMANENT, eOne, oObject);
 if (iNUB == 4) ApplyEffectToObject(DURATION_TYPE_TEMPORARY,
                SupernaturalEffect(eOne), oObject, iTime);
 if (iNUB == 5) ApplyEffectToObject(DURATION_TYPE_PERMANENT,
                SupernaturalEffect(eOne), oObject);
 if (iNUB == 6) ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eOne, lEffect);
 if (iNUB == 7) ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eOne, lEffect, iTime);
}
//=============== СНЯТЬ ВСЕ ЭФФЕКТЫ ============================================
void DelEffectOnPC(object oObject)
{
 effect eOne = GetFirstEffect(oObject);
 while (GetIsEffectValid(eOne))
 {
  RemoveEffect(oObject, eOne);
  eOne = GetNextEffect(oObject);
 }
}
//=============== СНЯТЬ ЭФФЕКТ =================================================
void DelOneEffectOnPC(object oObject, int iOne)
{
 effect eEffect = GetFirstEffect(oObject);
 while (GetIsEffectValid(eEffect))
 {
  if (GetEffectType(eEffect) == iOne)
  RemoveEffect(oObject, eEffect);
  eEffect = GetNextEffect(oObject);
 }
//  int iOne -  EFFECT_TYPE_...
}

Страница: 1 2 3
Обновление: Rambler's Top100