Оболочка для Game Jolt API, выполняющая HTTP-запросы. Он содержит все конечные точки API Game Jolt и призван упростить его использование, где это возможно. Совместим с Годо 4.x. Версию Godot 3.x смотрите в этой ветке.
Примеры использования см. в документации ниже. В addons/gamejolt/example
также есть пример сцены, содержащий все конечные точки и параметры графического интерфейса.
Примечание. Любой параметр, за которым следует знак ?
является необязательным. Пример: sessions_ping(status?) -> GameJolt
.
Project Settings > Plugins
Project Settings > General > Game Jolt > Config > Global
.Project Settings > General > Game Jolt > Config > Debug
. После этой настройки вы можете выполнять запросы API, используя приведенные ниже методы для одноэлементного GameJolt
в вашем коде.
Каждый метод Game Jolt API излучает сигнал после завершения запроса, независимо от того, успешен он или нет. Вы можете подключить определенные сигналы для получения ответов на обратные вызовы методов:
func _ready () -> void :
GameJolt . time_completed . connect ( _on_GameJolt_time_completed )
GameJolt . time ()
func _on_GameJolt_time_completed ( result : Dictionary ) -> void :
# Do something with the request result...
Или вы можете await
результата сигнала в переменной:
func _onButtonTime_pressed () -> void :
GameJolt . time ()
var result : Dictionary = await GameJolt . time_completed
# Do something with the request result...
Примечание. Все сигналы возвращают response: Dictionary
.
Общий
user_name_changed
user_token_changed
game_id_changed
private_key_changed
Пользователи
users_fetch_completed(response: Dictionary)
users_auth_completed(response: Dictionary)
Сессии
sessions_open_completed(response: Dictionary)
sessions_ping_completed(response: Dictionary)
sessions_check_completed(response: Dictionary)
sessions_close_completed(response: Dictionary)
Результаты
scores_fetch_completed(response: Dictionary)
scores_tables_completed(response: Dictionary)
scores_add_completed(response: Dictionary)
scores_get_rank_completed(response: Dictionary)
Трофеи
trophies_fetch_completed(response: Dictionary)
trophies_add_achieved_completed(response: Dictionary)
trophies_remove_achieved_completed(response: Dictionary)
Хранение данных
data_store_set_completed(response: Dictionary)
data_store_update_completed(response: Dictionary)
data_store_remove_completed(response: Dictionary)
data_store_fetch_completed(response: Dictionary)
data_store_get_keys_completed(response: Dictionary)
Друзья
friends_completed(response: Dictionary)
Время
time_completed(response: Dictionary)
Пакетные вызовы
batch_completed(response: Dictionary)
Общие методы локальной настройки синглтона GameJolt
.
Задайте имя пользователя для аутентификации и других задач области действия пользователя. Выдает user_name_changed
.
value: String
-> Имя пользователя. Получить текущее имя пользователя.
Установите токен пользователя для аутентификации и других задач области действия пользователя. Выдает user_token_changed
.
value: String
-> Токен пользовательской игры. Получите игровой токен текущего пользователя.
Установите игровой идентификатор, необходимый для всех задач. Выдает game_id_changed
.
value: String
-> Идентификатор игры из вашего проекта Game Jolt. Получите текущий идентификатор игры.
Установите закрытый ключ, необходимый для всех задач. Выдает private_key_changed
.
value: String
-> Закрытый ключ игры из вашего проекта Game Jolt. Получите текущий приватный ключ игры.
Возвращает данные пользователя. Выдает users_fetch_completed
.
user_name: String
(необязательно) -> имя пользователя, данные которого вы хотите получить.user_ids: Array[String|int]
(необязательно) -> идентификаторы пользователей, данные которых вы хотите получить. Примечание. Параметры user_name
и user_ids
являются взаимоисключающими, вам следует использовать только один из них или ни одного. Если ничего не было указано, будет выбрано имя текущего пользователя, установленное в синглтоне GameJolt
.
Аутентифицирует информацию пользователя. Это следует сделать до того, как вы сделаете какие-либо вызовы для пользователя, чтобы убедиться, что учетные данные пользователя (имя пользователя и токен) действительны. Для успешной работы имя пользователя и токен должны быть установлены в синглтоне GameJolt
. Выдает users_auth_completed
.
Открывает игровую сессию для конкретного пользователя и позволяет вам сообщить Game Jolt, что пользователь играет в вашу игру. Вы должны проверить сеанс, чтобы он оставался активным, и закрыть его, когда вы закончите с ним. Выдает sessions_open_completed
.
Примечания:
GameJolt
. Проверяет открытый сеанс, чтобы сообщить системе, что он все еще активен. Если сеанс не был проверен в течение 120 секунд, система закроет сеанс, и вам придется открыть другой. Рекомендуется выполнять проверку связи каждые 30 секунд или около того, чтобы система не очищала ваш сеанс. Вы также можете сообщить системе, находится ли игрок в "active"
или "idle"
состоянии в вашей игре. Выдает sessions_ping_completed
.
status: String
(необязательно) -> Устанавливает статус сеанса: "active"
или "idle"
. Примечание. Требуется указать имя пользователя и токен в синглтоне GameJolt
.
Проверяет, существует ли открытый сеанс для пользователя. Может использоваться для проверки активности конкретной учетной записи пользователя в игре. Выдает sessions_check_completed
.
Примечания:
false
для поля "success"
, если открытого сеанса не существует. Такое поведение отличается от поведения других конечных точек, которые используют это поле для указания состояния ошибки.GameJolt
. Закрывает активный сеанс. Выдает sessions_close_completed
.
Примечание. Требуется указать имя пользователя и токен в синглтоне GameJolt
.
Возвращает список результатов либо для пользователя, либо для всей игры. Выдает scores_fetch_completed
.
limit: String|int
(необязательно) -> Количество баллов, которые вы хотите вернуть.table_id: String|int
(необязательно) -> Идентификатор таблицы результатов.guest: String
(необязательно) -> Имя гостя.better_than: String|int
(необязательно) -> Извлечение дает только оценки выше, чем это значение сортировки.worse_than: String|int
(необязательно) -> Извлечение результатов только хуже, чем это значение сортировки оценок.this_user: bool
(необязательно) -> Если true
, получить только оценки текущего пользователя. В противном случае получите оценки всех пользователей.Примечания:
GameJolt
если this_user
имеет true
.limit
— 10
баллов. Максимальное количество баллов, которое вы можете получить, составляет 100
.table_id
оставить пустым, будут возвращены оценки из основной таблицы оценок.this_user
как true
только в том случае, если вы хотите получить оценки только для пользователя, установленного в конструкторе класса. Оставьте для this_user
значение true
, а для guest
значение ""
чтобы получить все оценки.guest
позволяет получать результаты по определенному имени гостя. Передавайте только this_user
как true
или guest
(или ничего), но не то и другое. Возвращает список таблиц рекордов для игры. Выдает scores_tables_completed
.
Добавляет оценку пользователю или гостю. Выдает scores_add_completed
.
score: String
-> Это строковое значение, связанное со счетом. Пример: "500 Points"
.sort: String|int
-> Это числовое значение сортировки, связанное с оценкой. Вся сортировка будет основываться на этом числе. Пример: 500
.table_id: String|int
(необязательно) -> Идентификатор таблицы результатов, в которую необходимо отправить данные.guest: String
(необязательно) -> Имя гостя. Переопределяет имя пользователя синглтона GameJolt
.extra_data: String|int|Dictionary|Array
(необязательно) -> Если есть какие-либо дополнительные данные, которые вы хотите сохранить в виде строки, вы можете использовать эту переменную.Примечания:
GameJolt
и оставить guest
пустым. Если вы сохраняете данные для гостя, вам необходимо передать параметр guest
.extra_data
можно получить только через API и панель управления вашей игры. Он никогда не отображается публично для пользователей на сайте. Если со счетом связаны другие данные, такие как сыгранное время, собранные монеты и т. д., вам обязательно следует их включить. Это будет полезно в тех случаях, когда вы считаете, что игрок незаконно набрал высокий балл.table_id
оставить пустым, результат будет отправлен в основную таблицу рекордов. Возвращает рейтинг определенного результата в таблице результатов. Выдает scores_get_rank_completed
.
sort: String|int
-> Это числовое значение сортировки, которое представлено рангом в таблице результатов.table_id: String|int
(необязательно) -> Идентификатор таблицы результатов, из которой вы хотите получить рейтинг.Примечания:
table_id
оставить пустым, будут возвращены ранги из основной таблицы рекордов. Возвращает один или несколько трофеев, в зависимости от переданных параметров. Выдает trophies_fetch_completed
.
sort: bool|null
(необязательно) -> Введите true
, чтобы вернуть пользователю только полученные трофеи. Введите false
чтобы вернуть только трофеи, которых пользователь не получил. Передайте null
чтобы получить все трофеи.trophy_ids: Array[String|int]
(необязательно) -> Если вы хотите вернуть один или несколько трофеев, передайте здесь идентификаторы трофеев, если вы хотите вернуть подмножество всех трофеев.Примечания:
trophy_ids
будет игнорировать achieved
параметр, если он будет передан.GameJolt
. Устанавливает трофей, достигнутый для конкретного пользователя. Выдает trophies_add_achieved_completed
.
trophy_id: String|int
-> Идентификатор трофея, который нужно добавить для пользователя. Примечание. Требуется указать имя пользователя и токен в синглтоне GameJolt
.
Удалить ранее полученный трофей для конкретного пользователя. Выдает trophies_remove_achieved_completed
.
trophy_id: String|int
-> Идентификатор трофея, который нужно удалить у пользователя. Примечание. Требуется указать имя пользователя и токен в синглтоне GameJolt
.
Устанавливает данные в хранилище данных. Выдает data_store_set_completed
.
key: String
-> Ключ элемента данных, который вы хотите установить.data: String|Array|Dictionary
-> Данные, которые вы хотите установить.global_data: bool
(необязательно) -> Если установлено значение true
, игнорируется имя пользователя и токен, установленные в GameJolt
, и обрабатываются глобальные данные вместо пользовательских данных.Примечания:
global_data
имеет значение false
, необходимо указать имя пользователя и токен в синглтоне GameJolt
. Обновляет данные в хранилище данных. Выдает data_store_update_completed
.
key: String
-> Ключ элемента данных, который вы хотите обновить.operation: String
-> Операция, которую вы хотите выполнить.value: String|int
-> Значение, которое вы хотите применить к элементу хранилища данных.global_data: bool
(необязательно) -> Если установлено значение true
, игнорируется имя пользователя и токен, установленные в GameJolt
, и обрабатываются глобальные данные вместо пользовательских данных.Примечания:
operation
: "add"
, "subtract"
, "multiply"
, "divide"
, "append"
и "prepend"
.global_data
имеет значение false
, необходимо указать имя пользователя и токен в синглтоне GameJolt
. Удаляет данные из хранилища данных. Выдает data_store_remove_completed
.
key: String
-> Ключ элемента данных, который вы хотите удалить.global_data: bool
(необязательно) -> Если установлено значение true
, игнорируется имя пользователя и токен, установленные в GameJolt
, и обрабатываются глобальные данные вместо пользовательских данных.Примечания:
global_data
имеет значение false
, необходимо указать имя пользователя и токен в синглтоне GameJolt
. Возвращает данные из хранилища данных. Выдает data_store_fetch_completed
.
key: String
-> Ключ элемента данных, который вы хотите получить.global_data: bool
(необязательно) -> Если установлено значение true
, игнорируется имя пользователя и токен, установленные в GameJolt
, и обрабатываются глобальные данные вместо пользовательских данных.Примечания:
global_data
имеет значение false
, необходимо указать имя пользователя и токен в синглтоне GameJolt
. Возвращает либо все ключи из глобального хранилища данных игры, либо все ключи из хранилища данных пользователя. Выдает data_store_get_keys_completed
.
pattern: String
(необязательно) -> шаблон, который будет применяться к именам ключей в хранилище данных.global_data: bool
(необязательно) -> Если установлено значение true
, игнорируется имя пользователя и токен, установленные в GameJolt
, и обрабатываются глобальные данные вместо пользовательских данных.Примечания:
"*"
."key"
. Возвращаемое значение "key"
может появляться более одного раза.global_data
имеет значение false
, необходимо указать имя пользователя и токен в синглтоне GameJolt
. Возвращает список друзей пользователя. Выдает friends_completed
.
Примечание. Требуется указать имя пользователя и токен в синглтоне GameJolt
.
Возвращает время сервера Game Jolt. Выдает time_completed
.
Пакетный запрос — это набор подзапросов, который позволяет разработчикам отправлять несколько вызовов API с помощью одного HTTP-запроса. Чтобы использовать пакетные вызовы в своем коде, поместите вызовы запроса между batch_begin
и batch_end
. Например, используйте методы в следующем порядке:
func _onButtonBatch_pressed () -> void :
# Begin to gather batch requests
GameJolt . batch_begin ()
# Add the time request to the batch
GameJolt . time ()
# Add the scores_tables request to the batch
GameJolt . scores_tables ()
# Stop gathering batch requests
GameJolt . batch_end ()
# Perform the batch call with the two requests above (time and score_tables)
GameJolt . batch ()
var result : Dictionary = await GameJolt . batch_completed
Выполните пакетный запрос после сбора запросов с помощью batch_begin
и batch_end
. Выдает batch_completed
.
parallel: bool
(необязательно) -> По умолчанию каждый подзапрос обрабатывается на серверах последовательно. Если для этого параметра установлено значение true
, все подзапросы обрабатываются одновременно, не дожидаясь завершения предыдущего подзапроса перед запуском следующего.break_on_error: bool
(необязательно) -> Если для этого параметра установлено значение true
, то сбой одного подзапроса приведет к тому, что весь пакет прекратит обработку последующих подзапросов и вернет значение false
в случае успеха.Примечания:
parallel
и break_on_error
являются взаимоисключающими и не могут использоваться в одном запросе. Начинает собирать запросы на пакет. Методы не будут возвращать ответы после этого вызова. Вызовите batch_end
, чтобы завершить процесс сбора пакетных запросов.
Останавливает сбор запросов для пакета. После этого вызова методы снова будут возвращать ответы. Должен использоваться после batch_begin
.