![]() |
| ![]() |
МагияОграничение использования телепортацииDisableTeleporting Функции включают и выключают возможность телепортироваться соответственно. Удобны для того, чтобы эти назойливые маги могли уйти из вашего подземелья только через дверь :). В оригинальной версии игры они использовались только в логове Дагот Ура. Я не буду показывать весь скрипт, так как это было бы спойлером. Вот небольшая его часть: short teleportDisabled Позже возможность вновь включается в скрипте “EndGame”. Заметьте: после установки Трибунала эта функция перестаёт работать. Один из начальных скриптов включает возможность телепортироваться везде кроме определённого места в Мурнхолде. Я уверен, что эту погрешность можно легко исправить. Вот тот скрипт: Begin TribunalMain Begin TribunalMain Проверка и создание камней душHasSoulgem, "ID Существа" Функция проверяет, находится ли в инвентаре игрока камень с душой определённого монстра. Практически нигде не используется, однако позволяет создать довольно забавные квесты. Пример: часть скрипта “StrongSoulCheck”. if ( Player->HasSoulGem "atronach_storm" > 1 ) RemoveSoulgem, "ID Существа" Удаляет из инвентаря камень с душой какого-либо определённого монстра. Пример: часть скрипта “RemoveStrongSoul”. if ( counter > 0 ) Учтите, что игроку вряд ли понравится, если Вы заберёте у него подобным образом звезду Азуры. Вот возможное решение этой проблемы: short StarCount ;у игрока может быть больше одной попытки AddSoulGem "ID Существа", "ID Камня" Функция добавляет в инвентарь игрока определённый камень с заданной душой. DropSoulgem, "ID Существа" Я ещё не тестировал эту функция. Возможно, она заставляет персонажа уронить камень с определённой душой. OnPCSoulGemUse (переменная типа short) Объект является камнем души и был использован в целях перезарядки или создания зачарованного предмета. Камни душ бывают следующих типов:
Добавление и удаление заклятий. ПроклятьяAddSpell, "ID заклинания" Первая функция применит заклинание к вызываемому объекту. Это может означать две вещи: персонаж запоминает обычные заклинания, в то время как болезни и проклятия влияют на него стандартным образом. То же касается и функции RemoveSpell. Учтите: Вы не можете удалять расовые возможности. КолдовствоCast, “ID заклинания”, "ID цели" “Cast” заставляет персонажа скастовать заклинание, направленное на некую цель. Учтите: раньше считалось, что функция действует только на игрока. Возможно, это не так. В любом случае, в Трибунале с её помощью можно заставлять активатор кастовать заклинание на любого NPC. Возможно, другие комбинации также будут работать. Пример: последняя функция может быть использована для установки ловушки на контейнер. Здесь обязательно должно стоять одноразовое условие, иначе заклинание будет вновь и вновь накладываться на игрока: Begin Trap_script Следующий пример иллюстрирует использование функции “AddSpell”: begin Item_Cast Добавляемое заклинание – проклятье, наносящее урон огнём. Прошу обратить особое внимание на наличие одноразового условия – без него игра «вылетит»! К тому же, если существо было убито проклятьем, то все особи того же вида будут иметь на себе именно это заклинание. Для избежания этого можно использовать функцию “RemoveSpell” в секции, где обрабатывается ситуация смерти существа. GetSpell, "ID Заклинания" (возвращает Boolean/short) Возвращает 1, если объект «знает» необходимое заклинание. Функция, однако, не работает с заклинаниями и возможностями, которые появляются в результате выбора расы и знака зодиака – только с теми, которые находятся в «книге заклинаний». GetSpellEffects, "ID Заклинания" (возвращает Boolean/short) Возвращает ИСТИНУ, если заклинание в данный момент воздействует на вызываемый объект. if ( Player -> GetSpellEffects, "flame" == 1 ) Возможное использование функции смотрите в примере ниже. Функция, вроде бы, также работает со специальными возможностями и заболеваниями. Управление эффектами заклинанийGetEffect, “ID Эффекта” (возвращает Boolean/short) Функция возвращает 1, если на вызываемого NPC воздействует определённый эффект заклинания. Отмечу, что эффекты являются лишь частью, из которых состоят заклинания. RemoveEffects, ID_Эффекта#_числ Снимает с объекта все заклинания, содержащие необходимый эффект. Учтите, что здесь в качестве аргумента нужен порядковый номер эффекта, в то время как функции GetEffect необходим его ID (Браво, Bethesda!). И то, и другое Вы найдёте в приложении. Пример: скрипт проверяет, наложено ли заклинания на игрока, знает ли он его, воздействует ли на него его эффект. После этого заклинание снимается. Для тестирования в консоле напишите “StartScript Magictest”. Begin Magictest Проверка на заражениеGetBlightDisease (возвращает Boolean/short) Обе функции возвращают 1, если объект подцепил моровую или обычную болезнь соответственно. Используются в скриптах, накладывающих на заражённых животных их болезнь. Пример: Begin diseaseBlackHeart |
![]() |
| ![]() | ||
![]() |