Собственно, прошу любить и жаловать. Версия пока что больше для статичных сцен, хотя при желании большинство динамичных тоже реализуемы уже сейчас. Кому это нужно? ГМ для иллюстрации сцен, диалогов, отображения планов, карт, подземелий, полей сражния. Игрок свои идеи может тоже визуализировать с помощью скриптов.
Скачать
Архив необходимо распаковать в пустую папку, после чего запускать ARpgPlayer.html. В архиве также есть два примера скрипта.
Краткий справочник для новичков.
Скрипт делится на строки, каждая из которых обрабатывается отдельно. Команды в рамках одной строки отделяются друг от символом ";". "// текст" - комментарий до конца строки.
В рамках одной строки может быть произвольный яваскрипт, но для простых скриптов он не нужен. Простые скрипты состоят из вызовов команд (функций). Вот эти команды кратко и рассмотрим. Прошу обратить внимание, что если аргументы заключены в {} - то они не обязательные. Если их опустить, будут взяты значения по умолчанию. Иногда часть аргументов нужно передаватьв массиве. Такие аргументы заключаются в [].
Пример: Функция(ОбычныйАргумент, [АргументМассива1, АргументМассива2]).
Строки и любые названия в качестве аргументов функции должны быть заключены в двойные или ординарные кавычки.
// [DESC] Создаёт новое поле боя, очищая старое
function CreateBattlefield (Width, Height, CellW, CellH, BarW, BarH, LineW)
Ширина и высота поля в клетках, ширина и высота клетки в пикселях, ширина и высота полосок (жизни, маны и энергии), толщина линий сетки.
// [DESC] Осуществляет целочисленное деление одного числа на другое
function DIV (Value, By)
// [DESC] Снимает клеточное выделение
function Unselect ()
// [DESC] Выделяет указанную клетку
function Select (X, Y)
// [DESC] Ожидание (1000 = секунда)
function Sleep (Time)
// [DESC] Устанавливает новую особую подсказку для ячейки
function SetCellHint (X, Y, NewHint)
// [DESC] Функция регистрации нового типа почвы
function RegisterTerrain (Name, {Hint, Col, Img})
Кодовое имя почвы, подсказка, цвет, адрес картинки.
// [DESC] Устанавливает новую почву для клетки
function SetCellTerrain (X, Y, Name)
// [DESC] Заполняет указанный прямоугольник поля боя указанной почвой
function FillTerrain (X1, Y1, X2, Y2, Name)
Левый верхний и правый нижний углы прямоугольника, кодовое имя почвы.
// [DESC] Регистрирует новый класс объектов
function RegisterObjClass (Name, Title, {Img, TitleCol, TitleBack, FontSize, MaxHealth, MaxMana, MaxStamina})
Кодовое имя класса, отображаемое имя членов класса по умолчанию, адрес картинки, цвет и фон надписи имени объекта, размер шрифта надписи ('75%', например), максимальные значения для здоровья, маны, энергии или -1 там, где этого поля у объекта нет.
// [DESC] Осуществляет перерисовку ячейки
function RedrawCell (X, Y)
Эта функция нужна только если вы яваскриптом меняете внутренние структуры ячеек, то есть новичкам не нужна.
// [DESC] Создаёт новый объект в указанной клетке
function CreateObject (X, Y, ClassName, {Title, Health, Mana, Stamina})
Координаты, имя класса, отображаемое имя (например, в блоке подсказки), текущие значения параметров жизни, маны и энергии.
// [DESC] Перемещает объект в другую клетку, затираяя её прежнего хозяина
function MoveObject (SrcX, SrcY, DstX, DstY)
// [DESC] Заполняет указанный прямоугольник поля боя объектами
function FillObject (X1, Y1, X2, Y2, [Args])
Args такие же, как и у CreateObject
// [DESC] Заполняет клетку и все премыкающие к ней такого же типа почвы новой почвой
function MagicFillTerrain (X, Y, NewTerr)
Координаты и название почвы, которой нужно заполнить область.
// [DESC] Заполняет клетку и все премыкающие к ней с такого же типа почвой без объектов объектом
function MagicFillObject (X, Y, [Params])
Params - такие же, как и у CreateObject
// [DESC] Отображает особое сообщение в блоке подсказок в течение некоторого промежутка времени
function Msg (Mes, Time)
// [DESC] Отображает особое сообщение в блоке подсказок в течение некоторого промежутка времени от указанного объекта
function Say (X, Y, Mes, Time)
// [DESC] Ждёт, пока экран не будет полностью отрисован
function Wait ()
Продвинутые фичи управления скриптом. ~ИмяМетки объявляет метку. Jmp(LabelName) - переходит к указанной метке. Call(LabelName) - вызывает метку как подпрограмму. Ret() - возврат из подпрограммы.