Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OSFM v1.2.0.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.49 Mб
Скачать

RemoveMe

Синтаксис:

[ItemID.]RemoveMe TargetContainerID (optional)

Пример:

RemoveMe

RemoveMe player

Вызов функции RemoveMe позволяет удалять вызывающий объект (ItemID) из инвентаря или контейнера, в котором он находится (если это возможно). Если указан необязательный параметр - целевой инвентарь или контейнер (TargetContainerID), то объект перемещается в него. Примечания:

  • Эта функция действует при вызове аналогично функции "Return" – т.е., строки скрипта, следующие непосредственно за ней, выполняться НЕ БУДУТ (так как объект просто уничтожает сам себя в процессе удаления из инвентаря).

  • Эта функция не выводит на экран сообщение "xxx был удален"

  • Когда вы используете функцию RemoveMe сразу же после того, как объект был добавлен в инвентарь, то такая операция может вызвать различные непредсказуемые вылеты из игры. Для предупреждения таких ситуаций есть простой способ - установить задержку для выполнения функции RemoveMe на время, превышающие один фрейм. Установив счетчик на 10, вы задержите выполнение функции RemoveMe, добавив один шаг при каждом вызове режимов MenuMode или GameMode, и достигнете таким образом необходимой цели.

  • Когда функция RemoveMe вызывается в меню обмена (barter-menu; например, в пределах блока OnAdd), могут происходить вылеты, когда предмет в скрипте суммирующийся и вы продаете более чем один из них, а затем переключаетесь с продажи на покупку. Чтобы это предотвратить, перед удалением предмета следует или дождаться закрытия диалогового окна меню обмена (Menumode=1009), или не использовать такой скрипт вообще в отношении суммирующихся неуникальных предметов (стрел, например).

См. также: DropMe, Drop Относится к типу: Object Functions

RemoveScriptPackage

Синтаксис:

[ActorID.]RemoveScriptPackage

Примеры: (Из скрипта MS45DarMaScript)

if getiscurrentPackage MS45DarMaPrisonerGreetPlayer == 1    If getinsamecell player == 0        removescriptpackage    endif endif

Функция RemoveScriptPackage исключает любой текущий выполняемый скриптовый пакет для вызывающего актера (ActorID). Это бывает иногда необходимо, если вы добавили скриптовый пакет, который был вызван для бессрочного выполнения. Примечание: Удаление скриптового пакета в случаях, когда у вызывающего актера скриптовых пакетов нет, может привести к прекращению работы скриптовых пакетов у всех копий данного персонажа, размещенных в игровом мире. Поэтому использовать данную функцию следует на актерах, у которых определены пакеты AI с одним или несколькими условиями. См. также: AddScriptPackage Относится к типу - AI Functions

RemoveSpell

Синтаксис:

[ActorID.]RemoveSpell SpellID

Примеры:

RemoveSpell DisTickleBritch

If Removespell WeirdAbility == 0; Toggle Ability on/off     Addspell WeirdAbility Endif

Функция RemoveSpell удаляет указанное заклинание SpellID из списка заклинаний вызывающего актера (ActorID). Функция возвращает "1", если заклинание успешно удалено, и "0" — если заклинание не может быть удалено (например, его просто нет в списке). См. также: AddSpell, List of existing scripts that use AddSpell (wiki)

Относится к типу: Magic Functions

Reset3Dstate

Синтаксис:

Reset3DState

Функция Reset3DState очищает любые сохраненные данные об анимации/физике объекта. Используется, в основном, для сброса ловушек после их использования. Относится к типу: Miscellaneous Functions

ResetFallDamageTimer

Синтаксис:

[ObjectID.]ResetFallDamageTimer

Функция ResetFallDamageTimer сбрасывает таймер падения. При сбросе таймера вызывающий объект (ObjectID) получает повреждения при падении так, как будто он начал падать только что. Относится к типу: Miscellaneous Functions

ResetHealth

Синтаксис:

[ActorID.]ResetHealth

Функция ResetHealth устанавливает здоровье вызывающего актера (ActorID) к его базовому значению (полностью здоров). Относится к типу: Statistics Functions

ResetInterior

Синтаксис:

ResetInterior CellID

Пример:

ResetInterior MyDungeon01

Функция ResetInterior помечает ячейку как истекшую (expired, т.е. давно не посещаемую), поэтому она при следующем вызове будет загружена очищенной, как будто прошло несколько дней. Игрок не может находиться в этой ячейке при выполнении этой команды. Относится к типу: Miscellaneous Functions

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]