Cloud — различия между версиями

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
м
(Коды ошибок:)
Строка 300: Строка 300:
 
Дополнительно клауд будет отправлять коды ошибок по таймауту ( превышению времени ответа - сейчас равен 60 сек):
 
Дополнительно клауд будет отправлять коды ошибок по таймауту ( превышению времени ответа - сейчас равен 60 сек):
 
'''4000 + номер состояния''', т.е. для запроса лидербордов, например ошибка будет 4000 + 5 = 4005 ( глобальные) или 4000 + 6 = 4006 (друзья)
 
'''4000 + номер состояния''', т.е. для запроса лидербордов, например ошибка будет 4000 + 5 = 4005 ( глобальные) или 4000 + 6 = 4006 (друзья)
 +
 +
Для обработки ошибок использовать [[Errormanager|ErrorManager]].
  
 
[[Category:Options|*]]
 
[[Category:Options|*]]

Версия 12:25, 18 апреля 2017

Объект необходим для синхронизации приложения с облаком.

Параметры объекта Cloud

parse general

  • app - Код приложения из parse
  • key - Ключ приложения из parse
  • имя игры - Наше внутреннее имя игры в parse
  • имя игрока - Имя игрока. Заполнить до любых вызовов состояний
  • cloud major field - Главное поле в опциях, по которому будет выбираться версия опций в cloud при кофликте (наибольшее из значений будет приоритетнее)
  • автоприменение - Применять лучшие опции автоматически. Если "нет" то нужно подтверждение пользователя.
  • esocial - объект типа esocial для получения списка друзей.
  • повторять лоад раз - количество повторов parse_load при неуспехе, если не отсутствие интернета.
  • автолоад - автоматически вызывать parse_load при логине в социальной сети.

parse leaderboards

  • лидерборд - id таблицы на сервере, в которую будет засылать очки. Начинается с латинской буквы! Не содержит левых символов!
  • очки - Очки для отправки. Валидное целое число!
  • таблица - объект-таблица, в который сложим очки. Должна иметь три колонки (место-имя-очки), заполнение по строкам - в случае если не указан "шаблон".
  • шаблон - объект типа leaderboardsitem для помещения в таблицу
  • свое место - каунтер в котором будет место игрока
  • свои очки - каунтер в котором будут очки игрока
  • своя иконка - иконка игрока
  • запрашивать записей - сколько записей запросить из таблицы
  • всегда запрашивать - запрашивать лидерборды даже если есть кешированные данные (нет=0, да=1)
  • дефолтное имя - если у нас все еще нет имени человека, вместо него будет эта строка
  • специальная сортировка ( special_sort ) - специальная сортировка, по лвлу ( задаём "1" когда открываем лидерборды глобальные/ друзей; ставим "0" в лидерах монстров/локаций)
  • анимация смены мест - анимация смены мест игроком (нет=0, да=1)
  • периодический лидерборд - Периодический лидерборд в parse
  • (периодический) таблица - объект-таблица, в который сложим очки за текущий период. Должна иметь три колонки (место-имя-очки), заполнение по строкам - в случае если не указан "шаблон"
  • (периодический) таблица предыдущая - объект-таблица, в который сложим очки предыдущего периода. Должна иметь три колонки (место-имя-очки), заполнение по строкам - в случае если не указан "шаблон"
  • (периодический) шаблон - объект типа leaderboardsitem для помещения в таблицу текущего лидерборда
  • (периодический) шаблон предыдущий - объект типа leaderboardsitem для помещения в таблицу предыдущего лидерборда
  • (периодический) свое место - каунтер в котором будет место игрока
  • (периодический) свои очки - каунтер в котором будут очки игрока
  • (периодический) своя иконка - иконка игрока
  • (периодический) таймер - иконка игрока
  • (периодический) запрашивать записей - сколько записей запросить из таблицы
  • (периодический) анимация смены мест - Анимация смены мест игроком (нет=0, да=1)
  • (периодический) в предыдущую таблицу только себя - в предыдущую таблицу только себя (нет=0, да=1)

parse голосовалка

  • таблица - объект-таблица, в который сложим ответы;
  • шаблон - объект типа pollitem для помещения в таблицу;
  • название - текстовый объект, куда мы сложим название опроса;
  • таблица пред. - объект-таблица, в который сложим ответы;
  • шаблон пред. - объект типа pollitem для помещения в таблицу;
  • название пред. - текстовый объект, куда мы сложим название опроса;
  • время - объект типа таймер, куда мы сложим оставшееся время опроса;
  • текст шаринга - текст шаринга.

parse друзья и подарки

  • таблица - объект-таблица, в который сложим шаблон leaderbordsitem;
  • шаблон - объект типа leaderboardsitem для помещения в таблицу;
  • добавить приглашаемых - "сколько приглашаемых друзей добавить к играющим друзьям;
  • прятать одаренных - нет - в таблице все друзья; да - в таблице скрыты те, кому дарили подарок.

parse запросы дружбы

  • текст запроса дружбы - Текстовый айди для исходящего запроса дружбы;
  • окно - Само окно. Должно иметь состояние show;
  • иконка - Портрет приглашающего;
  • имя - Имя приглашающего;
  • таблица инвайтов - таблица, в которую сложим все инвайты;
  • шаблон инвайта (inviteitem) - Шаблон инвайта для помещения в таблицу.

parse окно обгона в таблице лидеров

  • кого leaderboardsitem - кого leaderboardsitem
  • кто leaderboardsitem - кто leaderboardsitem
  • машина - собственно машина окна (или просто обработчик обгона). Должна иметь состояния show_up и show_down, соответственно при обгоне вверх и вниз.


Добавляемые параметры

+.png ошибка загрузки данных из cloud: изменить состояние объекта - сейчас не применяется, т.к. используем ErrorManager.

  • объект - объект у которого мы меняем состояние.
  • состояние - Значение нового состояния.


+.png нечего загружать из cloud: изменить состояние объекта - обработчик неуспеха parse_load в случае отсутствия данных на сервере.

  • объект - объект у которого мы меняем состояние.
  • состояние - Значение нового состояния.


+.png подтверждение применения данных из cloud: изменить состояние объекта - обработчик успеха parse_load в случае наличия данных на сервере с таким же device_id

  • объект - объект у которого мы меняем состояние.
  • состояние - Значение нового состояния.


+.png применены данные из cloud: изменить состояние объекта - обработчик успеха parse_apply, желательно перегрузить лайаут.

  • объект - объект у которого мы меняем состояние.
  • состояние - Значение нового состояния.

+.png подтверждение применения данных из cloud при наличии двух комплектов данных в сети: изменить состояние объекта - обработчик успеха parse_load в случае наличия двух комплектов данных на сервере (например, по facebook_id)

  • объект - объект, состояние которого меняем.
  • состояние - новое состояние для объекта из предыдущего поля.

+.png в cloud опции хуже, не применям их: изменить состояние объекта - обработчик неуспеха parse_load в случае, когда данные на сервере хуже, чем на текущем устройстве.

  • объект - объект, состояние которого меняем.
  • состояние - новое состояние для объекта из предыдущего поля.


+.png голосование загружено: изменить состояние объекта

  • объект - объект, состояние которого меняем.
  • состояние - новое состояние для объекта из предыдущего поля.


+.png успешно проголосовали: изменить состояние объекта

  • объект - объект, состояние которого меняем.
  • состояние - новое состояние для объекта из предыдущего поля.


+.png запрос в парсе успешно выполнен (любой) - обработчик успеха любого запроса.

  • объект - объект, состояние которого меняем.
  • состояние - новое состояние для объекта из предыдущего поля.


+.png ошибка, нужно обновить приложение - обработчик неуспеха parse_load, когда версия текущего приложения ниже, чем версия опциях на сервере.

  • объект - объект, состояние которого меняем.
  • состояние - новое состояние для объекта из предыдущего поля.


+.png успешно проведен серверный resolve - обработчик успеха parse_apply_server, желательно перезагрузить лэйаут.

  • объект - объект, состояние которого меняем.
  • состояние - новое состояние для объекта из предыдущего поля.


+.png успешно проведена изоляция - обработчик успеха parse_isolate.

  • объект - объект, состояние которого меняем.
  • состояние- новое состояние для объекта из предыдущего поля.


+.png успешно проведена разизоляция - обработчик успеха parse_un_isolate.

  • объект - объект, состояние которого меняем.
  • состояние - новое состояние для объекта из предыдущего поля.


+.png синхронизируемый параметр между приложениями устройства - позволяет синхронизировать конкретный параметр между разными приложениями через parse.

  • группа - имя группы, общее для различных приложений, которые синхронизируют данный параметр
  • параметр - имя параметра в группе, общее для различных приложений
  • объект - объект у которого синхронизируем параметр.
  • параметр объекта - параметр который синхронизируем.


+.png невозможно загрузить лидерборды из-за objectId - обработчик ошибки загрузки лидербордов, которая происходит при неуспехе parse_load (в этом случае parse_load желательно повторить)

  • объект - объект, состояние которого меняем,
  • состояние - состояние - значение нового состояния.


+.png успешно загружены лидерборды - успешно загружены лидерборды

  • объект - объект - состояние которого меняем,
  • состояние - состояние - значение нового состояния.

+.png успешно загружены друзья - успешно загружены друзья"

  • объект - объект - состояние которого меняем,
  • состояние - состояние - значение нового состояния.

+.png игрок потенциально попал в лидерборды прошлого периода - игрок потенциально попал в лидерборды прошлого периода

  • объект - объект - состояние которого меняем,
  • состояние - состояние - значение нового состояния.

+.png индикатор награды за временные лидерборды - индикатор награды за временные лидерборды

  • res1 - счетчик - награда за лидерство в res1,
  • res2 - счетчик - награда за лидерство в res2,
  • item - иконка предмета - награды за лидерство,
  • item num - счетчик предмета - награды за лидерство.


+.png лидеры предыдущего этапа временных лидербордов - лидеры предыдущего этапа временных лидербордов

  • leaderboardsitem - объект типа leaderboardsitem.

Особенности использования

Есть несколько платформ, которые не поддерживают работу с фейсбуком. Это blackberry, win 8.1, windows phone 8. При этом эти устройства могут взаимодействовать с клаудом. При этом есть ряд проблем с этими платформами: каждый пользователь будет отправлять свои результаты в лидерборды под ником new_user (или другим дефолтным); не до конца прозрачна ситуация с включением/отключением изоляции игроков. Для того, что бы отключить сохранение в клауд для этих платформ нужно установить в опциях флаг disable_cloud_save = 1. Опросник при этом работает нормально.

Состояния

  • 0 - local_device_synchronization - синхронизация параметров между приложениями одного устройства;
  • 1 - parse_resolve - ресолвим конфликт и ждем подтверждения;
  • 2 - parse_idle - состояние простоя, означает, что мы не ждем ответа ни на один запрос;
  • 3 - parse_load - загрузить опции из парса (вызываться должно снаружи, после ввода имени) ;
  • 4 - parse_save - сохранить опции в парс c учетом предохранительной задержки SAVE_DELAY_SEC (на 2014-09-17 вызывается из единственного места - GOptions::save);
  • 5 - parse_leaderboards - загрузить лидерборды из парса и сложить в соответствующую таблицу;
  • 6 - parse_leaderboards_friends - загрузить лидерборды из парса и сложить в соответствующую таблицу;
  • 7 - parse_submit - заслать очки в парс взяв очки из поля score и уровень из поля level;
  • 8 - parse_apply - применить скачанные опции;
  • 9 - parse_get_public_lb - скопировать паблик данные кликнутого юзера из лидербордов в доступную область;
  • 10 - parse_poll - получить данные о текущем опроснике от клауда. Заполнить таблицу ответов;
  • 11 - parse_poll_prev - получить данные о предыдущем опроснике от клауда. Заполнить таблицу ответов №2;
  • 12 - parse_vote - проголосовать в текущем опроснике (номер ответа возьмем из таблицы) TODO - не нужно ли состояний против и за?;
  • 13 - parse_share_poll - зашарить результаты текущего опроса;
  • 14 - parse_forced_save - сохранить опции в парс незамедлительно (на 2014-09-17 вызывается из единственного места - GOptions::save);
  • 15 - parse_apply_server - применить опции и отправить ресолв;
  • 16 - parse_clear_notifications - отписаться от уведомлений;
  • 17 - parse_add_notification - добавить уведомление (не требует действий с сетью, реальная отправка - по потере фокуса);
  • 18 - parse_time - запросить время;
  • 19 - parse_friends - заполнить таблицу всех друзей (новые подарки);
  • 20 - parse_isolate - отказаться от слияния аккаунтов;
  • 21 - parse_un_isolate - отменить изоляцию;
  • 22 - parse_cancel_apply - отменить синхронизацию и разрешить сейвы;
  • 23 - scroll_friends_to_lb - проскролить таблицу друзей на юзера кликнутого в таблице лидербордов;
  • 24 - номер зарезервирован
  • 25 - номер зарезервирован
  • 26 - номер зарезервирован
  • 27 - parse_flush_notifications - принудительно зафлушить нотификейшены, если мы этого не делали ранее;
  • 28 - parse_all_leaderboards - получение информации по всем лидербордам, возможное обнуление текущих очков.
  • 29 - parse_submit_temporary - сабмит очков в temporary лидерборд;
  • 30 - parse_leaderboards_temporary - получение таблицы temporary лидерборда;
  • 31 - parse_leaderboards_temporary_prev - получение таблицы результатов предыдущего периода в temporary лидерборде;
  • 32 - parse_leaderboards_claim - начисление награды по кнопке получения награды в шаблоне лидерборда за предыдущий период в temporary лидерборде;
  • 33 - parse_leaderboards_animation - старт анимации перемещения ячеек таблицы в temporary лидерборде;
  • 34 - parse_friend_request_param - приглашение дружить, в param указать object_id;
  • 35 - parse_friend_request_lb - приглашение дружить по кнопке пригласить в друзья из шаблона лидербордов;
  • 36 - parse_friend_confirm - подтверждение дружбы из окна parse запросы дружбы;
  • 37 - parse_friend_cancel - отмена дружбы из окна parse запросы дружбы;
  • 38 - parse_friend_confirm_table - подтверждение дружбы из таблицы инвайтов parse запросы дружбы;
  • 39 - parse_friend_cancel_table - отмена дружбы из таблицы инвайтов parse запросы дружбы;
  • 40 - parse_friend_request_public - запрос дружбы из окна Инфо (parse_get_public_lb), проверять параметр selected_public.cloud_is_friend у объекта cloud: 0 - я сам, 1 - не друг, 2 - друг (для показа-прятания кнопок);
  • 41 - parse_friend_delete_public - запрос на отмену дружбы из окна Инфо (parse_get_public_lb), проверять параметр selected_public.cloud_is_friend у объекта cloud: 0 - я сам, 1 - не друг, 2 - друг (для показа-прятания кнопок);
  • 42 - parse_friend_check_requests - проверить входящие запросы (инвайты, подарки...);
  • 43 - parse_leaderboards_friends_param - показать лидерборд по друзьям, предварительно изменив контролы для отображения таблицы лидербордов и т.п.;
  • 44 - parse_get_public_fr - скопировать паблик данные кликнутого юзера из таблицы парсовых друзей из лидербордов в доступную область;
  • 45 - parse_scroll_temporary_on_me - промотка таблицы периодических лидербордов на ячейку с моим результатом до указателя (если он задан);
  • 46 - parse_bots_info - получить информацию о ботах отдельно от периодических лидербордов.


Сообщения в лог

Объект пишет в опции строки: I/GCloud GCloud::state() state val = 2 state = 3


Где val = 2 - это состояние в которое хотим перейти в дальнейшем ( в зависимости от текущего состояния, или станет в очередь или выполниться следующим тиком), state = 3 - это состояние в котором сейчас находиться объект.


Коды ошибок:

  • 6 - опрос закончился;
  • 7 - ошибка версионности;
  • 1000 - отсутсвие интернета.

В прочих случаях код ошибки будет 2000 + номер состояния, т.е. для лоада, например ошибка будет 2000 + 3 = 2003

Дополнительно клауд будет отправлять коды ошибок по таймауту ( превышению времени ответа - сейчас равен 60 сек): 4000 + номер состояния, т.е. для запроса лидербордов, например ошибка будет 4000 + 5 = 4005 ( глобальные) или 4000 + 6 = 4006 (друзья)

Для обработки ошибок использовать ErrorManager.