You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Расширения: VE (Viz Events) для изменяемого состояния; V (Голос) для социального слоя
Описание протокола: Открытый протокол для обратно-связанных JSON-объектов в блокчейне VIZ, созданный для детерминированных RPG-действий, записываемых как начертания в блокчейн.
Аккаунт создаёт операцию гибкого протокола и записывает JSON-объект с обратной ссылкой на предыдущий объект в истории. Каждое начертание ссылается на предыдущий блок, содержащий VM-операцию от того же аккаунта, формируя обратно-связанную цепочку всех игровых действий. Эта цепочка может быть прочитана с помощью плагина custom_protocol_api.
Пример: Аккаунт А выполнил VM-операции в блоках: 1000, 1500, 2000. Блокчейн хранит, что последняя гибкая операция аккаунта А находится в блоке 2000. Мы извлекаем операции из блока 2000, находим VM-начертание, которое ссылается на блок 1500 как предыдущее звено. Блок 1500, в свою очередь, ссылается на блок 1000. Это позволяет полностью восстановить игровую историю любого аккаунта.
URL-схема
Используется VIZ URL-схема:
viz://@account/block-number/*VM/
Обеспечивает прямой доступ к конкретному игровому начертанию аккаунта в заданном блоке.
Структура объектов
Операции гибкого протокола содержат данные в формате JSON. Короткие имена атрибутов минимизируют размер операций. Версия увеличивается при нарушении обратной совместимости. Атрибуты, отмеченные *, являются опциональными.
Атрибут коротко
Атрибут полный
Описание
p
protocol
Идентификатор протокола. Значение: VM
v*
version
Версия протокола. По умолчанию: 1. Увеличивается при нарушении обратной совместимости.
b
back-link
Номер блока предыдущей VM-операции от данного аккаунта.
class — класс персонажа (stonewarden, embercaster, moonrunner, bloomsage)
rest
Отдых для восстановления маны
(нет)
PvE — Охота
Тип действия
Описание
Поля данных
hunt
Охота на существо
creature — ID существа, zone — ID зоны, spell — используемое заклинание
PvP — Дуэли
Тип действия
Описание
Поля данных
challenge
Вызов другого игрока на дуэль
target — аккаунт противника, wager — опциональная ставка в VIZ
accept
Принятие вызова на дуэль
challenger — аккаунт бросившего вызов
commit
Отправка запечатанного намерения раунда
hash — SHA-256 от intent + salt
reveal
Раскрытие намерения раунда
intent — выбранное действие (strike/guard/weave/mend), salt — случайная соль
forfeit
Сдача в активной дуэли
(нет)
Создание предметов
Тип действия
Описание
Поля данных
craft
Создать предмет
recipe — ID рецепта, materials — массив ID расходуемых предметов
Предметы
Тип действия
Описание
Поля данных
item.transfer
Передать предмет другому аккаунту
item — ID предмета, to — аккаунт получателя
item.equip
Экипировать предмет
item — ID предмета, slot — слот экипировки
item.unequip
Снять предмет
item — ID предмета
Рынок
Тип действия
Описание
Поля данных
market.list
Выставить предмет на продажу
item — ID предмета, price — цена в Эссенции Виз
market.cancel
Отменить выставление
item — ID предмета
market.buy
Купить выставленный предмет
item — ID предмета, seller — аккаунт продавца
Гильдии
Тип действия
Описание
Поля данных
guild.create
Создать гильдию
name — название гильдии, tag — короткий тег (2–5 символов)
guild.invite
Пригласить игрока
target — приглашаемый аккаунт
guild.accept
Принять приглашение в гильдию
guild — тег гильдии
guild.leave
Покинуть текущую гильдию
(нет)
guild.promote
Повысить участника
target — аккаунт, role — новая роль
guild.war
Объявить войну другой гильдии
target — тег вражеской гильдии
guild.peace
Предложить мир
target — тег вражеской гильдии
Осады и территории
Тип действия
Описание
Поля данных
siege.declare
Объявить осаду территории
territory — ID территории
siege.commit
Запечатать действие осады
hash — хеш запечатанного намерения
territory.claim
Захватить незанятую территорию
territory — ID территории
Локации
Тип действия
Описание
Поля данных
loc.create
Создать игровую локацию
name — название, zone — ID зоны, type — тип локации
Квесты
Тип действия
Описание
Поля данных
quest.accept
Принять квест
quest — ID квеста
quest.complete
Завершить квест
quest — ID квеста, proof — данные подтверждения выполнения
Мировые боссы
Тип действия
Описание
Поля данных
boss.attack
Атаковать мирового босса
boss — ID босса, spell — используемое заклинание
Гримуар (данные персонажа)
Данные персонажа хранятся в json_metadata аккаунта под ключом vm. Это публичный лист персонажа (Гримуар), доступный для чтения любому клиенту. Обновляется на стороне клиента и записывается в блокчейн через операцию account_metadata.
Привязанная к душе сила; определяет базовые характеристики и мощь заклинаний
Ликвидный VIZ
Эссенция Виз
Торгуемая валюта для рынка и ставок
Энергия (0–10000 бп)
Мана
Ёмкость для направления силы; расходуется действиями; полное восстановление за 5 дней
Операция награждения
Заклинание
Атаки, исцеления, баффы — передача наград на основе энергии
custom_sequence (VM)
Начертания
Все игровые действия, записанные в блокчейн
json_metadata аккаунта
Гримуар
Публичный лист персонажа
Хеш блока
Энтропия Судьбы
Детерминированная случайность для исходов охоты, качества создания, добычи
Номер блока
Эфирный Тик
Единица игрового времени (1 тик ≈ 3 секунды)
Делегирование
Связь Покровителя
Передача силы другому игроку
Бенефициары
Ритуальные Круги
Распределение наград между участниками группы
Определение исходов
Все кажущиеся случайными исходы (успех охоты, выпадение добычи, качество создания) вычисляются детерминированно из хеша блока, содержащего действие. Это обеспечивает:
Отсутствие необходимости в серверной случайности.
Все клиенты независимо вычисляют одинаковый результат.
Результаты проверяемы любым, кто имеет доступ к блокчейну.
Формула комбинирует хеш блока с параметрами, специфичными для действия (тип существа, использованное заклинание, характеристики персонажа), для получения значений исхода.