API
Сервер Годвилля предоставляет программный доступ к большинству данных героя, который можно использовать для написания сторонних программ.
API доступен в двух форматах (JSON и XML):
godville.net/gods/api/<username>.json
или (менее предпочтительно)
godville.net/gods/api/<username>.xml
По умолчанию в нем доступен только базовый набор сведений о герое, примерно совпадающий с содержимым персональной страницы. Если за героем хочется наблюдать в реальном времени, то необходимо включить в профиле игры галочку "Оперативные данные в API", добавляющую десять с лишним часто меняющихся полей наподобие инвентаря. При этом нужно учитывать, что любой желающий тоже сможет подглядывать за личной жизнью вашего героя.
Данные обновляются раз в минуту, поэтому дергать сервер чаще смысла нет. При слишком частых запросах (существует ограничение “не больше 30 запросов за 10 минут в связке (бог+ip)”) данные героя перестают возвращаться, выводя соответствующее уведомление.
| Список ключей JSON[1] | |||
|---|---|---|---|
| Ключ | Тип | Описание | Только с галочкой "Оперативные данные" |
| arena_fight | Bool | Находится ли герой на арене, в заплыве или под землёй. (см. fight_type) | Да |
| ark_completed_at | Строка | Время окончания ковчега (Есть только у тех, кто достроил ковчег) | Нет |
| alignment | Строка | Характер героя | Нет |
| aura | Строка | Название ауры на герое, без времени(Если ауры нет, то ключа тоже нет) | Да |
| bricks_cnt | Число | Количество кирпичей (не в процентах, показывается даже если храм окончен или ещё не начат) | Нет |
| clan | Строка | Название гильдии героя, пустая строка если её нет | Нет |
| clan_position | Строка | Звание в гильдии (если гильдии нет, то пустая строка) | Нет |
| diary_last | Строка | Последняя запись в дневнике | Да |
| distance | Число | Расстояние до столицы (при нахождении в любом городе 0) | Да |
| exp_progress | Число | Количество опыта | Да |
| expired | Bool | показатель неактуальности данных (ключ есть только если данные неактуальны)[2] | Да |
| fight_type | Строка | Тип боя (sail - морской поход, arena - арена (ЗПГ в том числе), challenge - тренировка, dungeon - подземелье) | Да |
| godpower | Число | Количество праны (для пенсионеров 0-200) | Да |
| gold_approx | Строка | Приблизительное количество золота | Нет |
| gender | Строка | Пол героя | Нет |
| godname | Строка | Имя бога | Нет |
| health | Число | Здоровье героя | Да |
| inventory_max_num | Число | Максимальный размер инвентаря | Нет |
| inventory_num | Число | Количество вещей в инвентаре | Да |
| inventory | Объект | Объект, содержащий список вещей в инвентаре (подробности ниже) | Да[3] |
| level | Число | Уровень героя | Нет |
| max_health | Число | Максимальный запас здоровья | Нет |
| motto | Строка | Девиз (может быть пустой строкой) | Нет |
| name | Строка | Имя героя | Нет |
| pet | Объект | Объект, содержащий описание питомца (подробности ниже) | Нет |
| quest_progress | Число | % выполнения квеста | Да |
| quest | Строка | Квест | Да |
| savings_completed_at | Строка | Дата окончания сбора пенсии (только у пенсионеров) | Нет |
| temple_completed_at | Строка | Дата окончания храма (только у храмовладельцев) | Нет |
| town_name | Строка | Город, в котором герой (пустая строка, если в поле и нет ключа если в бою) | Да |
| wood_cnt | Число | Количество поленьев (пока нет храма, ключ отсутствует) | Нет |
| Состояние питомца | ||
|---|---|---|
| Ключ | Тип | Описание |
| pet_class | Строка | Вид, к которому относится животное |
| pet_level | Число | Уровень животного (пустая строка если питомец лишился уровня) |
| pet_name | Строка | Имя животного (Например, 'Пуха «Беспечный»')[4] |
| wounded | Bool | Контужен ли питомец (Есть только у контуженого) |
| Описание предметов | ||
|---|---|---|
| Ключ | Тип | Описание |
| cnt | Число | Количество экземпляров данного предмета |
| pos | Число | Позиция в инвентаре |
| price | Число | "Цена" (0 для простых трофеев, 101 для жирных) |
| type | Строка | Тип (есть только у лечилок, всегда 'heal_potion') |
| activate_by_user | Bool | Активируемый (Есть только у активируемых) |
| needs_godpower | Число | Стоимость активации (Есть только у активируемых) |
| description | Строка | Описание эффекта предмета (Есть только у активируемых) |
Кроме того, существует расширенное API, позволяющее писать полноценные клиенты с возможностью влияния на героя.
Примечания
- ↑ Список неофициальный, а значит может быть неполным или ошибочным. Уточнения приветствуются.
- ↑ Для того, чтобы данные подавались в реальном времени, требуется периодическое (раз в час) посещение страницы героя, любая активность пользователя на ней или посещение героя одним из полноценных клиентов. Если expired = true, то герой не посещался слишком давно и остальные данные уже не актуальны (знаем, что неудобно, но пока только так).
- ↑ Формально, данный ключ есть всегда, но без галочки он всегда пустой
- ↑ У контуженного питомца имя содержит "❌".