Действия (Action)

Действия (Actions)

(num) = (num) - (num)
(num) = (num)
(num) = (num) * (num)
(num) = (num) / (num)
(num) = (num) + (num)
(obj) = (obj)
add blessing (num) to (obj)
add curse (num) to (obj)
area of (obj): store in (num)
armor coverage of item (obj): store in (num)
armor of (obj): get in (num)
autolevel scheme for (obj): change to (num)
call script (num) at line (num) with triggerer (obj) and attachee (obj)
call script (num) at line (num) with triggerer (obj) and attachee (obj) in (num) seconds
call script (num) at line (num) with triggerer (obj) and attachee (obj) at seconds (num)
call script attached to (obj) at point (num) at line (num) with triggerer (obj)
change art num of (obj) to (num)
change script attached to (obj) at point (num) to script (num)
change this script to script (num)
clear global flag (num)
clear local flag (num)
combat: (obj) attacks (obj)
combat: force (obj) to stop attacking
create item with basic prototype (num) inside (obj)
create object with basic prototype (num) near (obj)
damage (obj) for (num) points of type (num) damage
damage (obj) unresistably for (num) points of type (num) damage
day: store days since startup in (num)
destroy (obj)
destroy item named (num) in inventory of (obj)
dialog (num)
distance between (obj) and (obj): get in (num)
do nothing
drain (num) charges from (obj)
end game and play slides
faction of npc (obj): set to (num)
faction of npc (obj): store in (num)
fade and teleport: pass (num) seconds, play (num) sound, play (num) movie, and teleport (obj) to map (num) at X:(num) Y:(num)
fade: pass (num) seconds, play (num) sound, and play (num) movie, with (num) seconds during fade
fatigue of critter (obj): store current in (num) and maximum in (num) )
float line (num) above (obj)
get location of (obj) and store X in (num) and Y in (num)
give (obj) spell mastery in college (num)
give (obj) the effect (num) with cause (num)
give (obj) xps for a quest level (num)
gold of (obj): adjust by (num)
goto line (num)
grant one fate point to (obj)
have (obj) instantly become prone
have (obj) perform animation (num)
have (obj) try to steal 100 coins from (obj)
have (obj) use (obj) on (obj) using skill (num) with modifier (num)
have critter (obj) become a follower of (obj)
have critter (obj) run to X:(num) Y:(num)
have critter (obj) stop following his leader
have critter (obj) wait for his leader
have critter (obj) walk to X:(num) Y:(num)
heal (obj) for (num) fatigue points
heal (obj) for (num) points
heal (obj) for (num) poison points
hit points of (obj): store current in (num) and maximum in (num)
hour: store current game hour in (num)
hour: store hours since startup in (num)
kill (obj)
lock state of (obj): set to (num)
loop break
loop end
loop for (obj)
magic/tech: adjust (num) by item (obj) used by (obj) on (obj): store in (num)
magic/tech: adjust (num) by item (obj) used by (obj): store in (num)
mark map location (num) of pc (obj) as known
minute: store current game minute in (num)
newspaper: float current headline over (obj)
newspaper: queue (num) with priority (num)
object type of (obj): store in (num)
origin of npc (obj): store in (num)
play sound (num)
play sound (num) at (obj)
play sound scheme (num) and (num)
print line (num) with a message class of (num)
random number (num) to (num): store in (num)
reaction of npc (obj) to pc (obj): adjust by (num)
reaction of npc (obj) to pc (obj): set to (num)
reaction of npc (obj) to pc (obj): store in (num)
remove blessing (num) from (obj)
remove curse (num) from (obj)
remove from (obj) the effect (num)
remove from time queue the call to script (num) with attachee (obj)
remove this script
rename (obj) as (num)
reputation: give (obj) the reputation (num)
reputation: remove from (obj) the reputation (num)
return and RUN default
return and SKIP default
rotation of (obj): set to (num)
rumor: quell rumor (num) for pc (obj)
rumor: set rumor (num) for pc (obj)
schematic UI start: display for (obj)
script eye candy: play (num) on (obj)
script eye candy: stop (num) on (obj)
scroll distance: store in (num)
set day standpoint of critter (obj) to X:(num) Y:(num)
set day standpoint of critter (obj) to X:(num) Y:(num) on map (num)
set global flag (num) to true
set local flag (num) to true
set night standpoint of critter (obj) to X:(num) Y:(num)
set night standpoint of critter (obj) to X:(num) Y:(num) on map (num)
set PC (obj) quest (num) to state (num)
set PC (obj) quest (num) to state unbotched
set quest (num) to global state (num)
skill (num) of (obj): store in (num)
slideshow: queue slide (num)
social class of npc (obj): store in (num)
spell eye candy: play (num) on (obj)
spell eye candy: stop (num) on (obj)
spells: cast spell (num) on (obj)
spells: cast unresistable spell (num) on (obj)
spells: have (obj) cast free and unresistable spell (num) on (obj)
spells: have (obj) cast free spell (num) on (obj)
spells: have (obj) cast spell (num) on (obj)
spells: have (obj) cast unresistable spell (num) on (obj)
spells: stop spell (num) on (obj)
stat (num) of (obj): adjust by (num)
stat (num) of (obj): store in (num)
story state: set to (num)
story state: store in (num)
teleport (obj) to map (num) at X:(num) Y:(num)
toggle (obj) invulnerability
toggle (obj) open/closed
toggle (obj) state on/off
toggle item (obj) inventory display on/off
toggle monster generator (num) on/off
toggle the blocked state of sector at location X:(num) and Y:(num)
touch art (num)
transfer item named (num) from (obj) to (obj)
transform Attachee into basic prototype (num)
unfog townmap (num)
weapon of (obj): get in (num)
written start in (obj) set to (num)
written UI start: book (num) for reader (obj)
written UI start: image (num) for reader (obj)
written UI start: plaque (num) for reader (obj)

(num) = (num) - (num)
Вычитание двух правых значений, и сохранение результата в левом значении.

(num) = (num)
Установить левое значение равным правому значению.

(num) = (num) * (num)
Умножить два правых значения, и сохранить результат в левом значении.

(num) = (num) / (num)
Поделить два правых значения, и сохранить результат в левом значении.

(num) = (num) + (num)
Сложить два правых значения, и сохранить результат в левом значении.

(obj) = (obj)
Установить левый объект равным правому объекту.

add blessing (num) to (obj)
Добавить благословение (num) объекту (obj). Вы можете создавать благословения в файле gamebless.mes в папке mes.

add curse (num) to (obj)
Добавить проклятие (num) объекту (obj). Вы можете создавать проклятия в файле gamecurse.mes в папке mes.

area of (obj): store in (num)
Определить область, в которой находится объект, и сохранить её номер в (num). Вы можете создавать области в файле gamearea.mes в папке mes.

armor coverage of item (obj): store in (num)
Запомнить тип слота для которого предназначен предмет. Доступные значения:

0 - туловище
1 - щит
2 - шлем
3 - перчатки
4 - обувь
5 - кольцо
6 - медальон

armor of (obj): get in (num)
Запомнить тип одежды (num), которую носит объект (obj). Доступные значения (num):

0 - нижнее бельё
1 - сельская одежда
2 - кожаная броня
3 - кольчуга
4 - пластинчатая броня 		5 - роба
6 - классическая пластинчатая
7 - варварская
8 - городская одежда

autolevel scheme for (obj): change to (num)
Сменить схему autolevel объекта-NPC на указанный номер. Только для внутреннего использования.

call script (num) at line (num) with triggerer (obj) and attachee (obj)
Запустить определённый скрипт с требуемыми параметрами, используя ту же точку присоединения скрипта как и текущий скрипт. Когда его работа будет завершена, текущий скрипт продолжит работу.

call script (num) at line (num) with triggerer (obj) and attachee (obj) in (num) seconds
Запустить определённый скрипт с требуемыми параметрами, используя ту же точку присоединения скрипта как и текущий скрипт. Скрипт будет запущен не сразу, а через определённое кол-во реальных секунд.

call script (num) at line (num) with triggerer (obj) and attachee (obj) at seconds (num)
То же, что и предыдущий, но скрипт будет запущен через определённое кол-во реальных секунд после полуночи в игре.

call script attached to (obj) at point (num) at line (num) with triggerer (obj)
Запуск скрипта, присоединённого к определённому объекту через указанную точку присоединения. Доступные номера точек присоединения скриптов перечислены в соответствующем разделе.

change art num of (obj) to (num)
Изменить внешний вид объекта (art). Это можно сделать только в пределах группы объекта. Т.е. нельзя сменить большое дерево на маленькое. Таким образом, можно создавать изменяющиеся элементы пейзажа или уникальных NPC. Для предметов эта команда меняет только их внешний вид когда они лежат на земле.

Вот список доступных номеров art в пределах их типов:

Элементы пейзажа (scenery):

0-39: projectiles
0-45: large trees
0-41: medium trees
0-12: small trees and bushes
0-20: dead trees
0-70: plants
0-67: small metal objects
0-150: medium-sized metal objects
0-103: large metal objects
0-35: small stone objects
0-74: medium stone objects
0-123: large stone objects
0-48: small wooden objects
0-175: medium-sized wooden objects
0-72: large wooden objects
0-102: small misc objects
0-88: medium-sized misc objects
0-24: large misc objects
0-5: large machinery
1-2: medium-sized machinery
0-72: teleport facades
0-34: lights
0-11: beds

Уникальные NPC:

0-39: variant npcs

Предметы:

0-7: boomerangs
0-18: daggers
0-19: one-handed swords
0-15: axes
0-17: maces and hammers
0-15: pistols
0-13: two-handed swords
0-11: bows
0-22: rifles and hi tech guns
0-11: staves
0-17: villager clothes
0-19: leather
0-17: chain
0-6: tech plate
0-7: robes
0-19: classic plate
0-4: barbarian armor
0-15: city dweller clothes
0-12: shields
0-19:helmets
0-10: gauntlets
0-10: boots
0-14: rings
0-24: necklaces
0-88: food
0-2: keys
0-2: key rings
0-9: written items
0-193: generic items

Все другие типы либо недоступны, либо не должны использоваться из-за непредвиденных побочных эффектов.

change script attached to (obj) at point (num) to script (num)
Заменить скрипт, присоединённый к определённому объекту в указанной точке присоединения скрипта, на другой скрипт. Новый скрипт НЕ будет запущен.

change this script to script (num)
Заменить этот скрипт на другой скрипт (num). Текущий скрипт будет продолжать работать до завершения.

clear global flag (num)
Сбросить указанный глобальный флаг (т.е. установить его равным 0). Номера глобальных флагов указываются в файле globalflags.mes в папке semes.

clear local flag (num)
Сбросить указанный локальный флаг (т.е. установить его равным 0). Доступные номера: от 0 до 31.

combat: (obj) attacks (obj)
Приказать объекту атаковать указанный объект.

combat: force (obj) to stop attacking
Приказать объекту прекратить атаку.

create item with basic prototype (num) inside (obj)
Создать определённый предмет внутри контейнера/существа (obj). Если в инвентаре объекта нет места, то предмет будет брошен на землю рядом с объектом (obj).

create object with basic prototype (num) near (obj)
Cоздать определённый предмет рядом (на расстоянии до 3 тайлов) с объектом (obj).

damage (obj) for (num) points of type (num) damage
Нанести определёный урон объекту (obj). Сопротивления могут уменьшить это число. Доступные типы урона:

0 - нормальный
1 - яд
2 - электричество
3 - огонь
4 - усталость

damage (obj) unresistably for (num) points of type (num) damage
Нанести определёный урон объекту (obj) игнорируя ВСЕ его сопротивления. Доступные типы урона пречислены выше.

day: store days since startup in (num)
Сохранить в (num), сколько прошло дней с начала игры.

destroy (obj)
Уничтожить объект.

destroy item named (num) in inventory of (obj)
Найти предмет с указанным внутренним именем (num) внутри объекта (obj) и уничтожить этот предмет. Внутренние имена указываются в файле oname.mes (для модуля Arcanum) или gameoname.mes (для всех остальных модулей) в папке oemes.

dialog (num)
Начать диалог с указанной строки (num) в файле диалога. Этот скрипт завершит работу по команде RETURN AND SKIP DEFAULT.

distance between (obj) and (obj): get in (num)
Определить расстояние (в тайлах) между двумя объектами и сохранить его в (num).

do nothing
Это пустая строка.

drain (num) charges from (obj)
забрать определённое кол-во батарей у объекта (если они у него есть).

end game and play slides
Закончить игру победой и запустить слайды указанные в скрипте 997.

faction of npc (obj): set to (num)
Установить фракцию для NPC. Создать фракции можно в файле gamefaction.mes в папке oemes.

faction of npc (obj): store in (num)
Определить фракцию NPC и сохранить её в (num).

fade and teleport: pass (num) seconds, play (num) sound, play (num) movie, and teleport (obj) to map (num) at X:(num) Y:(num)
Затемнить экран на определённое время игры, воспроизвести указанный звук (необязательно), показать указанный видеоролик (необязательно), и затем телепортировать объект на указанную карту, в определённую точку (координаты точки).

fade: pass (num) seconds, play (num) sound, and play (num) movie, with (num) seconds during fade
Затемнить экран на определённое время игры, воспроизвести указанный звук (необязательно), показать указанный видеоролик (необязательно), и затем удерживать экран тёмным указанное время (реальные секунды).

fatigue of critter (obj): store current in (num) and maximum in (num) )
Определить текущий/максимальный уровень усталости существа (obj) и сохранить его.

float line (num) above (obj)
Отобразить указанную строку (num) из файла диалога в виде всплывающего текста над объектом.

get location of (obj) and store X in (num) and Y in (num)
Определить координаты объекта и сохранить их.

give (obj) spell mastery in college (num)
Дать указанному существу (obj) звание мастера в определённой школе магии. Звание мастера даст существу возможность тратить вдвое меньше энергии на заклинания этой школы. Существо может быть мастером только в одной школе магии.

Номера школ магии:
0 - conveyance
1 - divination
2 - air
3 - earth
4 - fire
5 - water 		6 - force
7 - mental
8 - meta
9 - morph
10 - nature
11 - necro evil 		12 - necro good
13 - phantasm
14 - summoning
15 - temporal

give (obj) the effect (num) with cause (num)
Применить к объекту определённый эффект в указанной категории:

0 - раса
1 - предистория
2 - класс
3 - благословение
4 - проклятие 		5 - предмет
6 - заклинание
7 - урон
8 - техно
9 - пол

give (obj) xps for a quest level (num)
Дать существу кол-во очков опыта равное выполнению квеста указанного уровня (от 1 до 50).

gold of (obj): adjust by (num)
Дать объекту указанную сумму денег.

goto line (num)
Переход на указанную строку (num) в этом скрипте

grant one fate point to (obj)
Дать игроку (obj) одно очко судьбы.

have (obj) instantly become prone
Заставляет существо (obj) немедленно лечь на землю. Существо будет постоянно лежать, и встанет только если его атакуют.

have (obj) perform animation (num)
Показ определённой анимации (num) для указанного объекта (obj). Доступные значения:
0 stand
1 walk
3 stealth walk
5 conceal fidget
6 run
7 fall down 		8 get up
12 pickpocket
13 vault
14 throw
17 decapitation
18 blown out chunk 		19 severed leg
20 attack
21 attack low
23 stunned
24 explode

have (obj) try to steal 100 coins from (obj)
Приказать существу попытаться украсть 100 монет у указанного существа.

have (obj) use (obj) on (obj) using skill (num) with modifier (num)
Приказать существу использовать определённый предмет на другом существе, используя указанный навык с (num) модификатором (бонусы при положительных числах, и пенальти при отрицательных).

have critter (obj) become a follower of (obj)
Сделать указанное существо спутником другого существа, игнорируя обаяние и другие ограничения (это называется принудительный спутник в игре).

have critter (obj) run to X:(num) Y:(num)
Приказать указанному существу бежать к определённой точке на карте (координаты точки). Существо будет выполнять этот приказ если это возможно и если его действия не будут прерваны (например, если его атакуют).

have critter (obj) stop following his leader
Приказать существу прекратить следовать за лидером (обаяние и убеждение при этом игнорируются).

have critter (obj) wait for his leader
Перевести существо в режим ожидания, как если бы его лидер сказал ему подождать.

have critter (obj) walk to X:(num) Y:(num)
Приказать указанному существу идти к определённой точке на карте (координаты точки). Существо будет выполнять этот приказ если это возможно и если его действия не будут прерваны (например, если его атакуют).

heal (obj) for (num) fatigue points
Излечить (obj) на указанное кол-во очков усталости. Это заставит потерявших сознание существ (из-за отрицательного значения усталости) очнуться. Эта команда не может повысить уровень усталости выше его максимума.

heal (obj) for (num) points
Излечить (obj) на указанное кол-во очков здоровья. Эта команда не может повысить уровень здоровья выше его максимума и не может воскресить мёртвых существ.

heal (obj) for (num) poison points
Уменьшить уровень отравления существа на определённое кол-во очков (num).

hit points of (obj): store current in (num) and maximum in (num)
Определить текущий и максимальный уровень здоровья указанного объекта и сохранить эти значения.

hour: store current game hour in (num)
Сохранить текущий час игры в (num). От 0 до 23.

hour: store hours since startup in (num)
Определить сколько прошло часов в игре с момента её начала, и сохранить это число в (num).

kill (obj)
Убить указанное существо, оставив его труп.

lock state of (obj): set to (num)
Установить контейнер/дверь/окно (obj) в указанное состояние (num). Доступные значения:

0 - открыт
1 - закрыт
2 - открыт постоянно

loop break
Прервать цикл и перейти на следующую строку после loop end.

loop end
Конец цикла и возврат к его началу - строке loop for (obj). Или переход на следующую строку, если не осталось подходящих объектов.

loop for (obj)
Начать цикл (loop).

Примечание.
Найденные объекты называются Current Looped Object, и этот идентификатор сохраняется за ними до следующего цикла (или до перезапуска скрипта, если больше циклов нет).

magic/tech: adjust (num) by item (obj) used by (obj) on (obj): store in (num)
Эта инструкция корректирует первый номер, основанный на магическо-технической сложности/способностях всех связанных объектов.

magic/tech: adjust (num) by item (obj) used by (obj): store in (num)
Корректировать номер, основанный на магической сложности предмета и магической склонности существа, и сохранить результат.

mark map location (num) of pc (obj) as known
Отметить локацию (num) на карте мира как известную для этого игрока. Номера локаций находятся в файле gamearea.mes в папке mes.

minute: store current game minute in (num)
Определить и сохранить текущую игроваю минуту. От 0 до 59.

newspaper: float current headline over (obj)
Всплывающая строка над указанным объектом с текстом заголовка поставленной в очередь газетой.

newspaper: queue (num) with priority (num)
Поставить газетную статью (num) в очередь для продажи у продавцов газет с указанием её приоритета:

0 - обычная газета.
1 - приоритетная.

Номера газет указываются в файле gamenewspaper.mes в папке mes.

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

object type of (obj): store in (num)
Определить тип объекта (obj) и сохранить в (num). Доступные типы:

0 - wall
1 - portal
2 - container
3 - scenery
4 - projectile
5 - weapon 		6 - ammo
7 - armor
8 - gold
9 - food
10 - scroll
11 - key 		12 - key ring
13 - written
14 - generic item
15 - pc
16 - npc
17 - trap

origin of npc (obj): store in (num)
Определить происхождение NPC и сохранить в (num). Номера хранятся в файле gamearea.mes в папке mes.

play sound (num)
Воспроизвести звуковой файл (num).

play sound (num) at (obj)
Воспроизвести звуковой файл (num) на определённом объекте, как будто он является его источником.

play sound scheme (num) and (num)
Воспроизвести звуковую схему.

print line (num) with a message class of (num)
Показать определённую строку (num) из файла диалога в информационном окне игры, используя NPC как Attachee, а игрока как Triggerer. При этом можно выбрать, какой значок (num) будет слева от текста. Доступные значки:

0 - level
1 - poison
2 - curse
3 - bless
4 - exclamation
5 - question
6 - feedback (чаще всего) 		7 - skill
8 - spell
9 - spell college
10 - tech discipline
11 - tech degree
12 - stat
13 - schematic

Примечание: ОБЯЗАТЕЛЬНО завершайте скрипт строкой return and SKIP default, иначе ваш текст не появится.

random number (num) to (num): store in (num)
Генератор случайных чисел в указанном диапазоне, и сохранение полученного результата.

reaction of npc (obj) to pc (obj): adjust by (num)
Добавить число (num) к текущей реакции существа.

reaction of npc (obj) to pc (obj): set to (num)
Установить реакцию существа.

reaction of npc (obj) to pc (obj): store in (num)
Определить текущую реакцию указанного существа (obj) и сохранить её в (num).

remove blessing (num) from (obj)
Убрать с игрока (obj) благословение (num), если оно у него было. Благословения находятся в файле gamebless.mes в папке mes.

remove curse (num) from (obj)
Убрать с игрока (obj) проклятие (num), если оно у него было. Проклятия находятся в файле gamecurse.mes в папке mes.

remove from (obj) the effect (num)
Убрать с указанного объекта определённый эффект (num), если он был у объекта. Только для внутреннего использования.

remove from time queue the call to script (num) with attachee (obj)
Найти первый вызов скрипта (num) с указанным attachee, и удалить его из очереди.

remove this script
Удалить этот скрипт из текущей точки присоединения. Текущий скрипт будет действовать до завершения. Примечание: эта команда не работает на тайл-скриптах!

Примечание: скрипт не будет удалён вообще из игры, он будет убран только из данной точки присоединения на данном объекте. Это не повлияет на этот скрипт на других объектах.

rename (obj) as (num)
Изменить внутреннее имя объекта на другое имя (num). Внутренние имена указываются в файле oname.mes (для модуля Arcanum) или gameoname.mes (для всех остальных модулей) в папке oemes.

reputation: give (obj) the reputation (num)
Дать указанному существу определённую репутацию (num). Номера каждой репутации находятся в файле gamereplog.mes в папке mes.

reputation: remove from (obj) the reputation (num)
Убрать у существа определённую репутацию (num). Номера каждой репутации находятся в файле gamereplog.mes в папке mes.

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

return and RUN default
Завершение работы скрипта, и выполнение заданного по умолчанию действия для текущей точки присоединения.

return and SKIP default
Завершение работы скрипта, и НЕ выполнение заданного по умолчанию действия для текущей точки присоединения.

rotation of (obj): set to (num)
Повернуть объект в определённую сторону, от 0 до 7. Где 0 - прямо, и каждое увеличение цифры - поворот на 45 градусов по часовой стрелке.

rumor: quell rumor (num) for pc (obj)
Вычеркнуть указанную заметку (num) из дневника игрока, если она есть. Главный файл заметок - game_rd_npc_m2m.mes в папке mes.

rumor: set rumor (num) for pc (obj)
Добавить указанную заметку (num) в дневник игрока. Главный файл заметок - game_rd_npc_m2m.mes в папке mes.

schematic UI start: display for (obj)
Показать экран схем, которые доступны указанному существу (obj).

script eye candy: play (num) on (obj)
Запустить определённый спецэффект (num) на объекте (obj). Номера спецэффектов находятся в разделе "Спецэффекты".

script eye candy: stop (num) on (obj)
Остановить определённый спецэффект (num) на объекте (obj), если он запущен. Номера спецэффектов находятся в разделе "Спецэффекты".

scroll distance: store in (num)
Определить и сохранить в (num) максимальное расстояние от игрока, на которое прокручивается экран. Это значение зависит от параметра Восприятия у игрока, и вычисляется по формуле: (Восприятие/2) + 3.

set day standpoint of critter (obj) to X:(num) Y:(num)
Установить существу (obj) координаты его дневной точки (daytime standpoint). Т.е. где существо будет стоять днём.

set day standpoint of critter (obj) to X:(num) Y:(num) on map (num)
Установить существу (obj) координаты его дневной точки (daytime standpoint) на определённой карте (num).

set global flag (num) to true
Установить определённый глобальный флаг (num). Т.е. установить его значение равным 1. Номера глобальных флагов находятся в файле globalflags.mes в папке semes.

set local flag (num) to true
Установить определённый локальный флаг (num). Т.е. установить его значение равным 1. Номера локальных от 0 до 31 и существут отдельно для каждого скрипта.

set night standpoint of critter (obj) to X:(num) Y:(num)
Установить существу (obj) координаты его ночной точки (night time standpoint). Т.е. где существо будет находиться ночью.

set night standpoint of critter (obj) to X:(num) Y:(num) on map (num)
Установить существу (obj) координаты его ночной точки (night time standpoint) на определённой карте (num).

set PC (obj) quest (num) to state (num)
Изменить для указанного игрока (obj) состояние определённого квеста (num). Номера квестов находятся в файле gamequestlog.mes в папке mes. Доступные состояния квеста:

0 - неизвестен (unknown)
1 - известен (mentioned)
2 - принят (active)
3 - выполнен (achieved)
4 - пройден (completed)
5 - пройден другим игроком (other)
6 - провален (botched).

set PC (obj) quest (num) to state unbotched
Если игрок (obj) провалил указанный квест (num), то эта команда восстановит прежнее состояние, каким оно было до провала. Доступные состояния квеста см. выше.

set quest (num) to global state (num)
Установить глобальное состояние для указанного квеста. Доступные состояния квеста см. выше.

skill (num) of (obj): store in (num)
Определить уровень определённого навыка (num) у указанного существа (obj) и сохранить в (num). Номера навыков:

0 - лук
1 - уклонение
2 - рукопашная
3 - метание
4 - удар в спину
5 - воровство
6 - скрытность
7 - ловушки 		8 - игра
9 - торговля
10 - лечение
11 - убеждение
12 - ремонт
13 - огнестрельное оружие
14 - открытие замков
15 - обезвреживание ловушек

slideshow: queue slide (num)
Добавить в очередь указанный слайд (num). Номера слайдов находятся в файле slide.mes в папке rules. Эта команда работает только в трёх скриптах:

997 - конец игры
998 - смерть игрока
999 - список разработчиков

social class of npc (obj): store in (num)
Определить социальный класс указанного NPC (obj) и сохранить в (num). Номера классов:

0 - благородный
1 - священник
2 - маг
3 - технолог 		4 - торговец
5 - стражник
6 - городской житель
7 - сельский житель 		8 - нищий
9 - вор
10 - бандит

spell eye candy: play (num) on (obj)
Воспроизвести определённый спецэффект (num) на указанном объекте. Номера спецэффектов см. в разделе "Спецэффекты".

spell eye candy: stop (num) on (obj)
Остановить определённый спецэффект (num) на указанном объекте, если он был запущен. Номера спецэффектов см. в разделе "Спецэффекты".

spells: cast spell (num) on (obj)
Применить определённое заклинание (num) на указанный объект. Заклинание не имеет источника и потому не потребляет энергию. Номера заклинаний см. в разделе "Заклинания".

spells: cast unresistable spell (num) on (obj)
Применить определённое заклинание (num) на указанный объект. Все сопротивления цели полностью игнорируются. Номера заклинаний см. в разделе "Заклинания".

spells: have (obj) cast free and unresistable spell (num) on (obj)
Приказать объекту применить определённое заклинание (num) на указанный объект. Все сопротивления цели полностью игнорируются. Заклинатель НЕ тратит энергию на это заклинание. Номера заклинаний см. в разделе "Заклинания".

spells: have (obj) cast free spell (num) on (obj)
Приказать объекту применить определённое заклинание (num) на указанный объект. Заклинатель НЕ тратит энергию на это заклинание. Номера заклинаний см. в разделе "Заклинания".

spells: have (obj) cast spell (num) on (obj)
Приказать объекту применить определённое заклинание (num) на указанный объект. Заклинатель будет тратить на это заклинание свою энергию или энергию предмета. Номера заклинаний см. в разделе "Заклинания".

spells: have (obj) cast unresistable spell (num) on (obj)
Приказать объекту применить определённое заклинание (num) на указанный объект. Все сопротивления цели полностью игнорируются. Заклинатель будет тратить на это заклинание свою энергию или энергию предмета. Номера заклинаний см. в разделе "Заклинания".

spells: stop spell (num) on (obj)
Прекратить поддержку определённого заклинания (num) на указанном объекте (obj), если она есть. Номера заклинаний см. в разделе "Заклинания".

stat (num) of (obj): adjust by (num)
Изменить параметр (num) указанного существа (obj) на число (num). При положительном числе параметр будет увеличен, а при отрицательном - уменьшен. Номера параметров см. ниже.

stat (num) of (obj): store in (num)
Определить значение параметра (num) указанного существа (obj) и сохранить в (num). Номера параметров:
0 - сила
1 - ловкость
2 - телосложение
3 - красота
4 - интеллект
5 - восприятие
6 - сила воли
7 - обаяние
8 - макс. вес
9 - бонус удара
10 - модиф. КБ
11 - скорость
12 - скорость лечения 		13 - лечение от яда
14 - модиф. реакции
15 - макс. спутников
16 - магия/техно уклон
17 - уровень
18 - очки опыта
19 - характер
20 - очки судьбы
21 - неисп. очки
22 - уровень магии
23 - уровень технологии
24 - уровень яда
25 - возраст 		26 - пол
0 женщина
1 мужчина
27 - раса
0 человек
1 дварф
2 эльф
3 полуэльф
4 гном
5 хоббит
6 полуорк
7 полуогр
8 тёмный эльф
9 огр
10 орк

story state: set to (num)
Установить текущее состояние истории равным (num). Номера состояний истории находятся в файле StoryState.mes в папке mes.

story state: store in (num)
Определить текущее состояние истории и сохранить его в (num). Номера состояний истории находятся в файле StoryState.mes в папке mes.

teleport (obj) to map (num) at X:(num) Y:(num)
Телепортировать объект (и всех его спутников, если объект - лидер группы) на указанную карту в определённую точку. Номера карт находятся в файле MapList.mes в папке rules.

toggle (obj) invulnerability
Включить/Отключить неуязвимость объекта. Неуязвимое существо никогда не будет нападать.

toggle (obj) open/closed
Открыть/Закрыть указанный контейнер/дверь/окно.

toggle (obj) state on/off
Включить/Отключить указанный объект. Отключённые объекты абсолютно невидимы и неуязвимы. Они лишены большинства функций, но используют heartbeat и first heartbeat.

toggle item (obj) inventory display on/off
Включить/Отключить отображение предмета в инвентаре.

toggle monster generator (num) on/off
Включить/Отключить указанный генератор существ.

toggle the blocked state of sector at location X:(num) and Y:(num)
Включить/Отключить блокирование сектора в указанных координатах. Игрок не может использовать карту мира, чтобы пройти через блокированные секторы. Он должен пройти этот сектор без использования карты мира.

touch art (num)
Загрузить указанный art-файл в кэш. Только для внутреннего использования.

transfer item named (num) from (obj) to (obj)
Найти предмет с указанным внутренним именем (num) внутри одного существа/контейнера, и переместить этот предмет в другое существо/контейнер. Внутренние имена указываются в файле oname.mes (для модуля Arcanum) или gameoname.mes (для всех остальных модулей) в папке oemes.

transform Attachee into basic prototype (num)
Превратить объект Attachee в другой объект, взяв за основу указанный прототип (num). Изменяемый объект может стать объектом другого типа (например, предметы могут превращаться в NPC). Полученные повреждения и направление объекта сохраняются, и если существо превращается в другое существо, то также сохраняется и уровень усталости.

Примечание:
Все присоединённые к объекту скрипты НЕ сохраняются!
Номер прототипа - это не номер в имени файла, а номер по формуле = (номер в имени файла) - 20

unfog townmap (num)
Отметить указанную городскую карту (townmap) как полностью открытую. Номера городских карт находятся в файле TownMap.mes в папке rules.

weapon of (obj): get in (num)
Определить тип оружия у существа (obj) и сохранить его в (num). Доступные значения:

1 - нет оружия
2 - кинжал
3 - меч
4 - топор
5 - молот

6 - пистолет
7 - двуручный меч
8 - лук
10 - технологическая пушка
13 - посох

written start in (obj) set to (num)
Изменить стартовую линию в указанном письменном объекте (obj) на (num). Номера находятся в разных файлах, в зависимости от типа объекта. Все эти файлы в папке mes.

Книги - gamebook.mes
Записки - gamenote.mes
Телеграммы - gametelegram.mes
Газеты - gamenewspaper.mes

written UI start: book (num) for reader (obj)
Открыть интерфейс книги, используя определённый номер линии (num). Номера линий находятся в файле gamebook.mes в паке mes.

written UI start: image (num) for reader (obj)
Открыть интерфейс книги и показать рисунок, используя определённый номер art-файла (num). Только для внутреннего использования.

written UI start: plaque (num) for reader (obj)
Открыть интерфейс мемориальной доски, используя определённый номер линии (num). Номера линий находятся в файле gameplaque.mes в паке mes.

Примечание.
Прописывать команду завершения в конце скрипта не обязательно, хотя обычно все скриптеры все равно её прописывают. Но если её не будет, то, по умолчанию, скрипт будет работать как будто там есть команда return and RUN default.

Также нужно обратить внимание, что использование команд на неправильных объектах просто не будет работать. Например, изменение схемы развития у дерева не даст никакого эффекта.

Перевод и примечания © gamer_777


Условия (Condition)

(num) <= (num)
(num) == (num)
(obj) can hear (obj)
(obj) can open the container (obj)
(obj) can open the portal (obj) in direction (num)
(obj) can see (obj)
(obj) has a body spell
(obj) has at least (num) gold
(obj) has bad associates
(obj) has bless (num)
(obj) has curse (num)
(obj) has item named (num)
(obj) has mastered spell college (num)
(obj) has maximum followers
(obj) has mirror image
(obj) has reputation (num)
(obj) has surrendered
(obj) is an animal
(obj) is at location X:(num) Y:(num)
(obj) is busted
(obj) is dead
(obj) is identified
(obj) is in combat
(obj) is in dialog
(obj) is invisible
(obj) is invulnerable
(obj) is named (num)
(obj) is open
(obj) is polymorphed
(obj) is prowling
(obj) is shrunk
(obj) is switched off
(obj) is undead
(obj) is under the influence of spell (num)
(obj) is waiting for leader's return
(obj) is wielding item named (num)
(obj) is within (num) tiles of location X:(num) Y:(num)
(obj) knows spell (num)
(obj) was jilted by a PC
global flag (num) is set
it is daytime
items are being rewielded
local flag (num) is set
monster generator (num) is disabled
npc (obj) has met pc (obj) before
npc (obj) is a follower of pc (obj)
npc (obj) is a monster of specie (num)
PC (obj) has quest (num) in state (num)
pc (obj) knows rumor (num)
quest (num) in global state (num)
rumor (num) has been quelled
sector at location X:(num) and Y:(num) is blocked

(num) <= (num)
левое число меньше или равно правому. (или наоборот, правое число больше или равно левому).

(num) == (num)
левое число равно правому.

(obj) can hear (obj)
левый объект может слышать правый объект.

(obj) can open the container (obj)
левый объект способен открыть контейнер (obj) (если контейер закрыт - у существа должен быть ключ).

(obj) can open the portal (obj) in direction (num)
левый объект способен открыть дверь/окно (obj) в указанном направлении. NPC не в группе игрока могут открыть любую дверь/окно, не отмеченные как OPF_ALWAYS_LOCKED. Также, любой может открыть дверь/окно без флага OPF_ALWAYS_LOCKED, когда выходит из помещения.

(obj) can see (obj)
левый объект видит правый объект.

(obj) has a body spell
объект находится под действием заклинаний: "Тело из Воды", Тело из Огня", "Тело из Камня" или "Тело из Воздуха".

(obj) has at least (num) gold
объект имеет как минимум указанную сумму денег.

(obj) has bad associates
объект имеет любого из вызываемых спутников (кроме животных или familiars).

(obj) has bless (num)
объект имеет указанное благословение. Благословения находятся в файле gamebless.mes в папке mes.

(obj) has curse (num)
объект имеет указанное проклятие. Проклятия находятся в файле gamecurse.mes в папке mes.

(obj) has item named (num)
объект имеет в инвентаре предмет с указанным внутренним именем (num). Внутренние имена указываются в файле oname.mes (для модуля Arcanum) или gameoname.mes (для всех остальных модулей) в папке oemes.

(obj) has mastered spell college (num)
объект является мастером в указанной школе магии (num). Номера школ магии:

0 - conveyance
1 - divination
2 - air
3 - earth
4 - fire
5 - water
6 - force
7 - mental 		8 - meta
9 - morph
10 - nature
11 - necro evil
12 - necro good
13 - phantasm
14 - summoning
15 - temporal

(obj) has maximum followers
объект имеет максимально возможное (зависит от его обаяния) кол-во спутников.

(obj) has mirror image
объект под действием заклинания зеркального отражения (не поддерживается).

(obj) has reputation (num)
объект имеет указанную репутацию. Номера каждой репутации находятся в файле gamereplog.mes в папке mes.

(obj) has surrendered
существо в режиме сдачи (если существо убежало достаточно далеко, чтобы прекратить бежать).

(obj) is an animal
объект является животным (флаг OCF_ANIMAL).

(obj) is at location X:(num) Y:(num)
объект находится в точке с указанными координатами.

(obj) is busted
объект сломан (как сломанный предмет), но не уничтожен.

(obj) is dead
указанное существо мертво.

(obj) is identified
предмет опознан.

(obj) is in combat
существо находится в режиме боя.

(obj) is in dialog
существо находится в режиме диалога с игроком.

(obj) is invisible
объект невидим.

(obj) is invulnerable
объект неуязвим (флаг OF_INVULNERABLE).

(obj) is named (num)
объект имеет указанное внутреннее имя (num). Внутренние имена указываются в файле oname.mes (для модуля Arcanum) или gameoname.mes (для всех остальных модулей) в папке oemes.

(obj) is open
контейнер/дверь/окно открыты.

(obj) is polymorphed
объект находится под действием заклинания полиморфа.

(obj) is prowling
существо использует навык Скрытность (Prowling).

(obj) is shrunk
объект находится под действием заклинания уменьшения (Shrink).

(obj) is switched off
объект отключён (флаг OF_OFF).

(obj) is undead
существо является нежитью (флаг OCF_UNDEAD).

(obj) is under the influence of spell (num)
объект находится под влиянием указанного заклинания (num). Номера заклинаний находятся в разделе "Заклинания".

(obj) is waiting for leader's return
существо находится в режиме ожидания возвращения своего лидера.

(obj) is wielding item named (num)
существо владеет или носит предмет с указанным внутренним именем (num). Внутренние имена указываются в файле oname.mes (для модуля Arcanum) или gameoname.mes (для всех остальных модулей) в папке oemes.

(obj) is within (num) tiles of location X:(num) Y:(num)
расстояние от объекта до точки с указанными координатами (X,Y) менее или равно (num) тайлов.

(obj) knows spell (num)
существо знает указанное заклинание. Номера заклинаний находятся в разделе "Заклинания".

(obj) was jilted by a PC
существо не дождалось возвращения своего лидера, и отправилось домой.

global flag (num) is set
указанный глобальный флаг установлен (т.е. его значение равно 1). Номера глобальных флагов находятся в файле globalflags.mes в папке semes.

it is daytime
дневное время по часам игры (от 6 часов утра до 18 часов вечера).

items are being rewielded
предмет был снят с существа, а затем надет снова.

local flag (num) is set
указанный локальный флаг установлен (его значение равно 1). У каждого скрипта есть свои локальные флаги под номерами от 0 до 31.

monster generator (num) is disabled
указанный генератор существ отключён.

npc (obj) has met pc (obj) before
указанный NPC встречал игрока (PC) раньше (они разговаривали, или игрок сделал что-то что изменило реакцию NPC).

npc (obj) is a follower of pc (obj)
указанный NPC является спутником игрока (PC) (не спутником спутника).

npc (obj) is a monster of specie (num)
указанное существо является монстром определённого типа. Типы монстров:

0 wolf
1 spider
2 orc
3 earth elemental
4 lesser demon
5 lesser skeleton
6 lesser zombie
7 lesser mummy
8 greater demon
9 bunny
10 mech spider 		11 automaton
12 lizard man
13 phantom knight
14 wererat
15 snake man
16 ape
17 bear
18 chicken
19 couga
20 sheep
21 tiger 		22 pig
23 cow
24 wisp
25 mutant pig
26 fire elemental
27 water elemental
28 air elemental
29 death knight
30 spider queen
31 werewolf

PC (obj) has quest (num) in state (num)
игрок имеет квест в указанном состоянии. Номера квестов находятся в файле gamequestlog.mes в папке mes. Доступные состояния квеста:

0 - неизвестен (unknown)
1 - известен (mentioned)
2 - принят (active)
3 - выполнен (achieved)
4 - пройден (completed)
5 - пройден другим игроком (other)
6 - провален (botched).

pc (obj) knows rumor (num)
игрок имеет указанную заметку/слух в своём дневнике. Главный файл заметок/слухов - game_rd_npc_m2m.mes в папке mes.

quest (num) in global state (num)
квест находится в указанном глобальном состоянии. Номера квестов находятся в файле gamequestlog.mes в папке mes. Доступные состояния квеста см. выше.

rumor (num) has been quelled
указанная заметка/слух была вычеркнута (через скрипт или через диалог). Главный файл заметок/слухов - game_rd_npc_m2m.mes в папке mes.

sector at location X:(num) and Y:(num) is blocked
сектор с указанными координатами отмечен как заблокированный (игрок не может пересекать такие секторы с помощью карты мира; он может пересечь их только в обычном режиме).


Точки Присоединения Скриптов (Script Attachment Points)

Точки Присоединения Скриптов

0 - Examine
1 - Use
2 - Destroy
3 - Unlock
4 - Get
5 - Drop
6 - Throw
7 - Hit
8 - Miss
9 - Dialog
10 - First Heartbeat
11 - Catching Thief PC
12 - Dying
13 - Enter Combat
14 - Exit Combat
15 - Start Combat 		16 - End Combat
17 - Buy Object
18 - Resurrect
19 - Heartbeat
20 - Leader Killing
21 - Insert Item
22 - Will Kill on Sight
23 - Taking Damage
24 - Wield On
25 - Wield Off
26 - Critter Hits Target
27 - New Sector
28 - Remove Item
29 - Leader Sleeping
30 - Bust
31 - Dialog Override 		32 - Transfer
33 - Caught Thief
34 - Critical Hit
35 - Critical Miss

Тайл-скрипт

EXAMINE
 условие запуска: когда игрок наведёт курсор на объект.
triggerer: игрок (pc).
attachee: целевой объект.
extra object: ---
эффект от return and SKIP default: в информационном окне не отображается стандартная информация об объекте.

Примечание: ОБЯЗАТЕЛЬНО нужно указывать такое завершение скрипта при использовании действия: print line (num) with a message class of (num).

USE
 условие запуска: когда существо использует объект.
triggerer: пользователь
attachee: используемый объект (может отсутствовать если это тайл-скрипт).
extra object: цель на которую используется объект (только если одно существо использует предмет на другом существе).
эффект от return and SKIP default: отмена использования объекта. Например, контейнер не откроется.

DESTROY
 условие запуска: когда объект полностью уничтожается и удаляется из игры.
triggerer: объект
attachee: объект
extra object: ---
эффект от return and SKIP default: объект НЕ будет уничтожен. Хит-пойнты объекта не будут восстановлены, но он все равно останется в игре.

UNLOCK
 условие запуска: когда закрытый объект (контейнер, дверь или окно) пытаются открыть. Обратите внимание, что двери и окна проверяются функцией определения пути для существ, так что этот скрипт может многократно запускаться даже когда дверью или окном никто не пользуется. Достаточно, чтобы любое существо попыталось определить свой путь.
triggerer: существо
attachee: закрытый объект
extra object: ---
эффект от return and SKIP default: игра будет считать, что объект нельзя открыть.

GET
условие запуска: когда существо поднимает предмет с земли. Примечание: этот скрипт не будет запускаться при передаче предмета от одного существа к другому (см. пункт TRANSFER)
triggerer: существо
attachee: предмет
extra object: ---
эффект от return and SKIP default: существо не сможет подобрать предмет, который останется лежать на земле.

DROP
условие запуска: когда предмет выбрасывается из инвентаря на землю.
triggerer: существо.
attachee: предмет.
extra object: ---
эффект от return and SKIP default: предмет остнется в инвентаре.

THROW
условие запуска: когда существо пытается метнуть предмет в цель.
triggerer: существо.
attachee: предмет.
extra object: цель (может отсутствовать если предмет бросается просто на землю)
эффект от return and SKIP default: отмена метания предмета. Никаких сообщений при этом не создаётся.

HIT
условие запуска: когда существо провело успешную атаку и попало в цель.
triggerer: существо.
attachee: предмет.
extra object: цель (может отсутствовать, если предмет бросается просто на землю).
эффект от return and SKIP default: нет эффекта. Это только информационный скрипт. Он не может предотвратить попадание. Если вы хотите отменить урон, то используйте Taking Damage.

MISS
условие запуска: когда существо промахнулось и не попало в цель. Примечание: для неудачных бросков, это происходит, когда снаряд достиг его максимальной дальности.
triggerer: существо.
attachee: предмет.
extra object: цель (может отсутствовать если предмет бросается просто на землю).
эффект от return and SKIP default: нет эффекта. Это только информационный скрипт. Он не может предотвратить промах.

DIALOG
условие запуска: когда игрок щёлкает мышью на NPC.
triggerer: игрок (pc).
attachee: targeted pc
extra object: ---
эффект от return and SKIP default: NPC не будет показывать всплывающее приветствие.

Примечание: ОБЯЗАТЕЛЬНО нужно указывать такое завершение скрипта когда используется действие: dialog (num).

FIRST HEARTBEAT
условие запуска: когда сектор, где находится существо, впервые загружен в память (т.е. этот скрипт будет запущен только один раз за игру!).
triggerer: существо.
attachee: существо.
extra object: ---
эффект от return and SKIP default: полное отключение искусственного интеллекта, т.е. существо превратится в живую статую.

Примечание: First Heartbeat работает ТОЛЬКО у живых существ и только, если они находятся на загруженном секторе! На других объектах (камни, деревья, сундуки и т.д.) скрипт запускаться не будет!

CATCHING THIEF PC
условие запуска: когда игрок допустит ошибку или критическую ошибку при воровстве (кража или подкладывание). Или когда контейнер, дверь или окно, которые охраняет NPC, будут повреждены или взломаны игроком.
triggerer: игрок (pc).
attachee: NPC.
extra object: украденный предмет или открытый объект.
эффект от return and SKIP default: NPC не будет атаковать игрока.

DYING
 условие запуска: когда убийца убивает свою жертву
triggerer: убийца.
attachee: жертва.
extra object: ---
эффект от return and SKIP default: жертва не умирает, а убийца не получает очки опыта за убийство. Примечание: здоровье жертвы не восстанавливается - она просто продолжает жить с нулевым уровнем здоровья.

ENTER COMBAT
 условие запуска: когда NPC переключается в боевой режим и нападает на противника.
triggerer: противник.
attachee: NPC.
extra object: ---
эффект от return and SKIP default: нет эффекта. Это только информационный скрипт. Он не может предотвратить бой.

EXIT COMBAT
 условие запуска: когда NPC прекращает борьбу.
triggerer: последний доступный противник (может быть мертв или отсутствовать).
attachee: NPC.
extra object: ---
эффект от return and SKIP default: нет эффекта. Это только информационный скрипт. Он не может предотвратить окончание боя.

START COMBAT
условие запуска: в начале хода NPC (в пошаговом бою), или перед атакой (в реальном времени).
triggerer: противник.
attachee: NPC.
extra object: ---
эффект от return and SKIP default: нет эффекта. Это только информационный скрипт. Он не может предотвратить начало боя.

END COMBAT
условие запуска: в конце хода NPC (в пошаговом бою), или после атаки (в реальном времени).
triggerer: противник.
attachee: NPC.
extra object: ---
эффект от return and SKIP default: нет эффекта. Это только информационный скрипт. Он не может предотвратить окончание боя.

BUY OBJECT
условие запуска: когда NPC покупает предмет у игрока.
triggerer: предмет.
attachee: NPC.
extra object: игрок (pc).
эффект от return and SKIP default: NPC не будет покупать предлагаемый предмет.

RESURRECT
условие запуска: когда мёртвое существо воскрешается заклинателем (неважно каким способом: заклинанием или предметом).
triggerer: заклинатель.
attachee: существо.
extra object: предмет (может отсутствовать).
эффект от return and SKIP default: существо не воскрешается.

HEARTBEAT
условие запуска: 4 раза/секунду на NPC, к которому был присоединён этот скрипт. Имеются в виду реальные секунды (1 реальная секунда = 8 "игровых" секунд).
triggerer: npc.
attachee: npc.
extra object: ---
эффект от return and SKIP default: полное отключение искусственного интеллекта, т.е. существо превратится в живую статую.

Примечание: Heartbeat работает ТОЛЬКО у живых существ и только, если они находятся на загруженном секторе! На других объектах (камни, деревья, сундуки и т.д.) скрипт запускаться не будет!

LEADER KILLING
условие запуска: когда лидер NPC убивает жертву.
triggerer: жертва.
attachee: NPC.
extra object: лидер.
эффект от return and SKIP default: нет эффекта. Это только информационный скрипт. Он не может предотвратить смерть жертвы.

INSERT ITEM
условие запуска: когда предмет добавлен в инвентарь объекта.
triggerer: объект.
attachee: предмет.
extra object: ---
эффект от return and SKIP default: нет эффекта. Это только информационный скрипт. Он не может предотвратить добавление предмета в инвентарь.

WILL KILL ON SIGHT
условие запуска: когда NPC принимает решение атаковать противника.
triggerer: противник.
attachee: NPC.
extra object: ---
эффект от return and SKIP default: NPC не будет атаковать противника. Примечание: NPC будет защищаться если его атакуют.

TAKING DAMAGE
условие запуска: когда объект получает повреждение от противника.
triggerer: противник.
attachee: объект.
extra object: ---
эффект от return and SKIP default: объект не получит никаких повреждений, но отреагирует на атаку и вступит в бой.

WIELD ON
условие запуска: когда существо надевает предмет.
triggerer: существо.
attachee: предмет.
extra object: ---
эффект от return and SKIP default: нет эффекта. Это только информационный скрипт. Он не может предотвратить надевания предмета.

WIELD OFF
условие запуска: когда существо снимает предмет.
triggerer: существо.
attachee: предмет.
extra object: ---
эффект от return and SKIP default: нет эффекта. Это только информационный скрипт. Он не может предотвратить снятие предмета.

CRITTER HITS TARGET
условие запуска: когда существо провело успешную атаку на цель.
triggerer: цель.
attachee: существо.
extra object: ---
эффект от return and SKIP default: нет эффекта. Это только информационный скрипт. Он не может предотвратить попадание.

NEW SECTOR
условие запуска: когда лидер NPC заходит на новый сектор.
triggerer: лидер
attachee: NPC.
extra object: ---
эффект от return and SKIP default: нет эффекта. Это только информационный скрипт.

REMOVE ITEM
условие запуска: когда предмет забран из инвентаря объекта.
triggerer: объект
attachee: предмет.
extra object: НЕТ
эффект от return and SKIP default: нет эффекта. Это только информационный скрипт. Он не может предотвратить потерю предмета.

LEADER SLEEPING
условие запуска: когда игрок-лидер спит.
triggerer: игрок-лидер (PC leader).
attachee: NPC.
extra object: OBJ_HANDLE_НЕТ
эффект от return and SKIP default: нет эффекта. Это только информационный скрипт.

BUST
условие запуска: когда объект взломан нападающим (обычно это означает, что хит-пойнты объекта уменьшаются до нуля, но объект не уничтожается. Не все объекты можно взломать).
triggerer: нападающий.
attachee: объект.
extra object: ---
эффект от return and SKIP default: нет эффекта. Это только информационный скрипт. Он не может предотвратить взлом объекта.

TRANSFER
условие запуска: когда владелец предмета передает его цели (другому существу или контейнеру).
triggerer: владелец.
attachee: цель.
extra object: предмет.
эффект от return and SKIP default: цель не получает предмет, и он остается у владельца.

CAUGHT THIEF
 условие запуска: когда вор допустит ошибку или критическую ошибку при воровстве (кража или подкладывание) предмета у цели.
triggerer: цель.
attachee: вор.
extra object: украденый предмет.
эффект от return and SKIP default: нет эффекта. Это только информационный скрипт. Он не может предотвратить кражу предмета.

CRITICAL HIT
условие запуска: когда существо нанесёт оружием критический удар по цели ИЛИ когда цель нанесёт критический удар по броне существа.
triggerer: существо.
attachee: оружие или броня.
extra object: цель (может отсутствовать если предмет бросается просто на землю).
эффект от return and SKIP default: нет эффекта. Это только информационный скрипт. Он не может предотвратить попадание.

CRITICAL MISS
условие запуска: когда существо выполнило критический промах на цели, используя своё оружие. Примечание: для неудачных бросков, это происходит, когда снаряд достиг его максимальной дальности. Или когда существо критически промахнулось и попало в себя.
triggerer: существо.
attachee: оружие или броня.
extra object: цель (может отсутствовать если предмет бросается просто на землю) или существо (в случае критического промаха и попадония в себя)
эффект от return and SKIP default: нет эффекта. Это только информационный скрипт. Он не может предотвратить промах.

ТАЙЛ-СКРИПТ
условие запуска: когда любое существо наступит на выбранный тайл.
triggerer: существо.
attachee: ---
extra object: ---
эффект от return and SKIP default: нет эффекта.

Примечание: у тайл-скриптов есть свои особенности:

  • Команда remove this script - не работает.

  • Счётчики (Counters) - не работают.


Переменные NUM

  • Counters

  • Local flags

  • Local variables

  • Global variables

  • Global flags

  • PC variables

  • PC flags

Самое важное:

  • Все переменные, флаги, и счетчики по умолчанию равны 0

  • Локальные переменные (Local variables) НЕ сохраняют свои значения после завершения работы скрипта или его перезапуска.

  • Переменные могут хранить значения от -2 миллиарда до 2 миллиарда.

  • Флаги могут быть хранить только два значения: 0 или 1.

  • Счётчик может быть равен от 0 до 255

Counters (Счётчики)

У каждой точки присоединения скрипта есть 4 специальных счётчика (под номерами от 0 до 3), доступ к которым может получить ТОЛЬКО данный скрипт. По умолчанию, значения каждого счётчика равны 0. Они могут меняться от 0 до 255. Значения счётчиков хранятся постоянно между запусками скрипта и сохраняются в сейвах игры.

Если вас не устраивают ограниченные возможности счётчиков - вы можете вместо них использовать глобальные переменные (global variables), чьи возможности значительно шире.

Local flags (Локальные флаги)

Локальные флаги также как и счётчики есть отдельно у каждого скрипта. Точно также доступ к ним может получить ТОЛЬКО данный скрипт. По умолчанию, каждый флаг равен 0.
У каждого скрипта есть только 32 локальных флага, под номерами от 0 до 31.

Local variables (Локальные переменные)

Локальные переменные существуют отдельно у каждого скрипта, и играют роль оперативной памяти скрипта. Они временно хранят данные данные до завершения работы скрипта и полностью стираются после выполнения команд Return and RUN default или Return and SKIP default.

Так что использовать их для постоянного хранения данных нельзя. Для этой цели подходят глобальные переменные (Global variables).

У каждого скрипта есть 10 локальных переменных под номерами от 0 до 9. Каждая из которых может хранить номер: от -2 миллиарда до 2 миллиарда.

Global variables (Глобальные переменные)

Глобальные переменные используются для постоянного хранения данных, они сохраняются в сейвах игры и доступны всегда и везде. Любой скрипт/диалог имеет свободный доступ к любой глобальной переменной в игре (чтение текущего значение и его изменение). Глобальные переменные могут легко играть роль таймеров, подсчитывать кол-во убитых монстров и многое другое.

Имеется 1000 глобальных переменных, каждая из которых может хранить номер от - 2 миллиарда до 2 миллиарда.
Диапазон номеров:

  • от 1000 до 1999 для модуля Arcanum.

  • от 0 до 999 для всех остальных модулей.

Global flags (Глобальные флаги)

Глобальные флаги отличаются от глобальных переменных только доступными значениями каждого флага (0 или 1) (см. выше).
Диапазон номеров:

  • от 1000 до 3199 для модуля Arcanum.

  • от 0 до 999 для всех остальных модулей.

PC variables (Переменные игрока)

Переменные игрока - это практически то же самое что и глобальные переменные. Отличие только в том, что они существуют отдельно для каждого игрока. Т.е. они предназначены для сетевой игры, но их можно использовать и в одиночной игре. Доступно 1000 переменных игрока, каждая из которых может хранить номер.
Диапазон номеров:

  • от 1000 до 1999 для модуля Arcanum.

  • от 0 до 999 для всех остальных модулей.

PC flags (Флаги игрока)

Флаги игрока - это практически то же самое что и глобальные флаги. Отличие только в том, что они существуют отдельно для каждого игрока. Т.е. они предназначены для сетевой игры, но их можно использовать и в одиночной игре.
Диапазон номеров:

  • от 1000 до 3199 для модуля Arcanum.

  • от 0 до 999 для всех остальных модулей.


Переменные OBJ

Attachee | Объект, к которому прицеплен этот скрипт.
Triggerer | Объект, который запустил скрипт (зависит от точки присоединения данного скрипта).
Player | Игрок (локальный, если это сетевая игра).
Current Looped Object | Найденный в текущем цикле (loop) объект.
Extra Object | Дополнительный объект, определяемый точкой присоединения скрипта.

Примечание.
Следует различать ANY (любой) и EVERY (каждый). Так-как первый касается лишь одного объекта, а второй - всех объектов.

Всё это касается только объектов вокруг Attachee. Поскольку тайл-скрипты не имеют Attachee, вы не сможете использовать в них подобные переменные, пока не укажете, какой объект использовать в роли Attachee. Чаще всего используется Triggerer:

Attachee = Triggerer

Также имейте в виду, что областью вблизи объекта считается весь экран игры, как если бы объект был в центре.

Anyone in Vicinity | Любое существо рядом с attachee.
Everyone in Vicinity | Каждое существо рядом с attachee.

Any Item in Vicinity | Любой предмет рядом с attachee.
Every Item in Vicinity | Каждый предмет рядом с attachee.

Any Container in Vicinity | Любой контейнер рядом с attachee.
Every Container in Vicinity | Каждый контейнер рядом с attachee.

Any Portal in Vicinity | Любая дверь или окно рядом с attachee.
Every Portal in Vicinity | Каждая дверь и окно рядом с attachee.

Any Follower (single player) | Triggerer или любой его NPC спутник.
Every Follower (single player) | Triggerer и каждый его NPC спутник.

Any Scenery in Vicinity | Любой элемент пейзажа (scenery) на экране рядом с attachee
Every Scenery in Vicinity | Каждый элемент пейзажа (scenery) на экране рядом с attachee

Anyone in Group (PC and NPC, single player) | Кто угодно в группе (triggerer и любой его NPC-спутник)
Everyone in Group (PC and NPC, single player) | Вся группа (triggerer и каждый его NPC-спутник)

Local Object Локальный объект, индексированный связанным номером.

Только для сетевой игры

Anyone in Party (PC only, multiplayer) | Любой игрок (PC) в группе triggerer (в том числе и triggerer)
Everyone in Party (PC only, multiplayer) | Каждый игрок (PC) в группе triggerer (в том числе и triggerer)

Anyone in Team (PC and NPC, multiplayer) | Кто угодно в команде существа (PC and NPC, в том числе и triggerer)
Everyone in Team (PC and NPC, multiplayer) | Каждое существо в команде triggerer (PC и NPC, в том числе и triggerer)


Arcanum: Справочник по скриптам

 Для просмотра этой страницы необходим браузер с поддержкой фреймов.


Arcanum Scripts

Действия | Условия | Точки присоединения | Переменные NUM | Переменные OBJ