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

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
(Добавляемые параметры)
(parse друзья и подарки)
 
(не показано 28 промежуточных версий 4 участников)
Строка 20: Строка 20:
 
*'''очки''' - Очки для отправки. Валидное целое число!
 
*'''очки''' - Очки для отправки. Валидное целое число!
 
*'''таблица''' - объект-таблица, в который сложим очки. Должна иметь три колонки (место-имя-очки), заполнение по строкам - в случае если не указан "шаблон".
 
*'''таблица''' - объект-таблица, в который сложим очки. Должна иметь три колонки (место-имя-очки), заполнение по строкам - в случае если не указан "шаблон".
*'''шаблон''' - объект типа leaderboardsitem для помещения в таблицу
+
*'''шаблон''' - объект типа [[Leaderboardsitem]] для помещения в таблицу
 
*'''свое место''' - каунтер в котором будет место игрока
 
*'''свое место''' - каунтер в котором будет место игрока
 
*'''свои очки''' - каунтер в котором будут очки игрока
 
*'''свои очки''' - каунтер в котором будут очки игрока
Строка 33: Строка 33:
 
*'''(периодический) таблица''' - объект-таблица, в который сложим очки за текущий период. Должна иметь три колонки (место-имя-очки), заполнение по строкам - в случае если не указан "шаблон"
 
*'''(периодический) таблица''' - объект-таблица, в который сложим очки за текущий период. Должна иметь три колонки (место-имя-очки), заполнение по строкам - в случае если не указан "шаблон"
 
*'''(периодический) таблица предыдущая''' - объект-таблица, в который сложим очки предыдущего периода. Должна иметь три колонки (место-имя-очки), заполнение по строкам - в случае если не указан "шаблон"
 
*'''(периодический) таблица предыдущая''' - объект-таблица, в который сложим очки предыдущего периода. Должна иметь три колонки (место-имя-очки), заполнение по строкам - в случае если не указан "шаблон"
*'''(периодический) шаблон''' - объект типа leaderboardsitem для помещения в таблицу текущего лидерборда
+
*'''(периодический) шаблон''' - объект типа [[Leaderboardsitem]] для помещения в таблицу текущего лидерборда
*'''(периодический) шаблон предыдущий''' - объект типа leaderboardsitem для помещения в таблицу предыдущего лидерборда
+
*'''(периодический) шаблон предыдущий''' - объект типа [[Leaderboardsitem]] для помещения в таблицу предыдущего лидерборда
 
*'''(периодический) свое место''' - каунтер в котором будет место игрока
 
*'''(периодический) свое место''' - каунтер в котором будет место игрока
 
*'''(периодический) свои очки''' - каунтер в котором будут очки игрока
 
*'''(периодический) свои очки''' - каунтер в котором будут очки игрока
Строка 42: Строка 42:
 
*'''(периодический) анимация смены мест''' - Анимация смены мест игроком (нет=0, да=1)
 
*'''(периодический) анимация смены мест''' - Анимация смены мест игроком (нет=0, да=1)
 
*'''(периодический) в предыдущую таблицу только себя''' - в предыдущую таблицу только себя (нет=0, да=1)
 
*'''(периодический) в предыдущую таблицу только себя''' - в предыдущую таблицу только себя (нет=0, да=1)
 +
*'''(периодический) таблица наград''' - объект-таблица, в который сложим шаблоны наград
 +
*'''(периодический) шаблон награды''' - объект типа rewarditem
  
== Добавляемые параметры ==
+
==parse голосовалка==
  
 +
*'''таблица''' - объект-таблица, в который сложим ответы;
 +
*'''шаблон''' - объект типа pollitem для помещения в таблицу;
 +
*'''название''' - текстовый объект, куда мы сложим название опроса;
 +
*'''таблица пред.''' - объект-таблица, в который сложим ответы;
 +
*'''шаблон пред.''' - объект типа pollitem для помещения в таблицу;
 +
*'''название пред.''' - текстовый объект, куда мы сложим название опроса;
 +
*'''время''' - объект типа таймер, куда мы сложим оставшееся время опроса;
 +
*'''текст шаринга''' - текст шаринга.
  
[[Файл:+.png]] '''ошибка загрузки данных из cloud: изменить состояние объекта''' - сейчас не применяется, т.к. используем ErrorManager.
+
==parse друзья и подарки==
 +
 
 +
*'''таблица''' - объект-таблица, в который сложим шаблон [[Leaderboardsitem]];
 +
*'''шаблон''' - объект типа [[Leaderboardsitem]] для помещения в таблицу;
 +
*'''добавить приглашаемых''' - "сколько приглашаемых друзей добавить к играющим друзьям;
 +
*'''прятать одаренных''' - нет - в таблице все друзья; да - в таблице скрыты те, кому дарили подарок.  !!! если выбрано "да", то параметр опций parse_friends_num учитывает только неодаренных друзей; чтобы узнать общее количество друзей, использовать parse_friends_all
 +
*'''сохранять первых ячеек''' - сколько первых ячеек таблицы сохранять при очистке
 +
 
 +
==parse запросы дружбы==
 +
 
 +
*'''текст запроса дружбы''' - Текстовый айди для исходящего запроса дружбы;
 +
*'''окно''' - Само окно. Должно иметь состояние show;
 +
*'''иконка''' - Портрет приглашающего;
 +
*'''имя''' - Имя приглашающего;
 +
*'''таблица инвайтов''' - таблица, в которую сложим все инвайты;
 +
*'''шаблон инвайта (inviteitem)''' - Шаблон инвайта для помещения в таблицу.
 +
 
 +
==parse окно обгона в таблице лидеров==
 +
 
 +
*'''кого leaderboardsitem''' - кого leaderboardsitem
 +
*'''кто leaderboardsitem''' - кто leaderboardsitem
 +
*'''машина''' - собственно машина окна (или просто обработчик обгона). Должна иметь состояния show_up и show_down, соответственно при обгоне вверх и вниз.
 +
 
 +
==parse окно обгона для периодических лидербордов==
 +
 
 +
*'''кого leaderboardsitem''' - кого leaderboardsitem
 +
*'''кто leaderboardsitem''' - кто leaderboardsitem
 +
*'''машина''' - собственно машина окна (или просто обработчик обгона). Должна иметь состояния show_up и show_down, соответственно при обгоне вверх и вниз.
 +
 
 +
==Приглашение в мультиплеер==
 +
*'''multiplayer''' - объект мультиплеера
 +
*'''информация''' - информация о приглашающем, объект типа leaderboardsitem
 +
 
 +
==Боты для лидербордов==
 +
*'''конфиг''' - файл с настройками ботов
 +
*'''имена ботов в оффлайне''' - имена ботов, если они генерятся в оффлайне
 +
*'''имена игрока в оффлайне''' - имя игрока в оффлайне
 +
 
 +
Файл конфига умеет создавать "economicalCycle" (пока только боты для локаций, ModeWorkEconomicalCycle="2" + указываем нужное количество ботов - "bot_loc=k_sc0=1.077#k_scMax=0.71#name=bot1").
 +
 
 +
=Добавляемые свойства=
 +
 
 +
==Обработчики для синхронизации==
 +
 
 +
 
 +
[[Файл:+.png]] '''параметр, синхронизируемый параметр между приложениями устройства''' - позволяет синхронизировать конкретный параметр между разными приложениями через parse.
 +
*'''группа''' - имя группы, общее для различных приложений, которые синхронизируют данный параметр
 +
*'''параметр''' - имя параметра в группе, общее для различных приложений
 +
*'''объект''' - объект у которого синхронизируем параметр.
 +
*'''параметр объекта''' - параметр который синхронизируем.
 +
 
 +
 
 +
[[Файл:+.png]] '''нечего загружать из cloud: изменить состояние объекта''' - обработчик успеха ''parse_load'' в случае отсутствия данных на сервере, не требует дополнительных запросов.
 
*'''объект''' - объект у которого мы меняем состояние.
 
*'''объект''' - объект у которого мы меняем состояние.
 
*'''состояние''' - Значение нового состояния.
 
*'''состояние''' - Значение нового состояния.
  
  
[[Файл:+.png]] '''нечего загружать из cloud: изменить состояние объекта''' - обработчик неуспеха ''parse_load'' в случае отсутствия данных на сервере.
+
[[Файл:+.png]] '''в cloud опции хуже, не применям их: изменить состояние объекта''' - обработчик успеха ''parse_load'' в случае, когда данные на сервере хуже, чем на текущем устройстве, не требует дополнительных запросов.
*'''объект''' - объект у которого мы меняем состояние.
+
*'''объект''' - объект, состояние которого меняем.
*'''состояние''' - Значение нового состояния.
+
*'''состояние''' - новое состояние для объекта из предыдущего поля.
  
  
[[Файл:+.png]] '''подтверждение применения данных из cloud: изменить состояние объекта'''  - обработчик успеха ''parse_load'' в случае наличия данных на сервере с таким же ''device_id''
+
[[Файл:+.png]] '''подтверждение применения данных из cloud: изменить состояние объекта'''  - обработчик успеха ''parse_load'' в случае наличия данных на сервере с таким же ''device_id'', показываем игроку окно с предложением синхронизироваться. В окне 2 кнопки: синхронизировать - ''parse_apply'', не синхронизировать - ''parse_isolate''.
 
*'''объект''' - объект у которого мы меняем состояние.
 
*'''объект''' - объект у которого мы меняем состояние.
 
*'''состояние''' - Значение нового состояния.
 
*'''состояние''' - Значение нового состояния.
  
  
[[Файл:+.png]] '''применены данные из cloud: изменить состояние объекта''' - обработчик успеха ''parse_apply'', желательно перегрузить лайаут.
+
[[Файл:+.png]] '''применены данные из cloud: изменить состояние объекта''' - обработчик успеха ''parse_apply'', необходимо перегрузить лайаут.
 
*'''объект''' - объект у которого мы меняем состояние.
 
*'''объект''' - объект у которого мы меняем состояние.
 
*'''состояние''' - Значение нового состояния.
 
*'''состояние''' - Значение нового состояния.
  
[[Файл:+.png]] '''подтверждение применения данных из cloud при наличии двух комплектов данных в сети: изменить состояние объекта''' - обработчик успеха ''parse_load'' в случае наличия двух комплектов данных на сервере (например, по facebook_id)
+
 
 +
[[Файл:+.png]] '''подтверждение применения данных из cloud при наличии двух комплектов данных в сети: изменить состояние объекта''' - обработчик успеха ''parse_load'' в случае наличия двух комплектов данных на сервере (например, по facebook_id), показываем игроку окно с предложением синхронизироваться. В окне 2 кнопки: синхронизировать - ''parse_apply_server'', не синхронизировать - ''parse_isolate''.
 
*'''объект''' - объект, состояние которого меняем.
 
*'''объект''' - объект, состояние которого меняем.
 
*'''состояние''' - новое состояние для объекта из предыдущего поля.
 
*'''состояние''' - новое состояние для объекта из предыдущего поля.
[[Файл:+.png]] '''в cloud опции хуже, не применям их: изменить состояние объекта''' - обработчик неуспеха ''parse_load'' в случае, когда данные на сервере хуже, чем на текущем устройстве.
+
 
 +
 
 +
[[Файл:+.png]] '''успешно проведен серверный resolve''' - обработчик успеха ''parse_apply_server'', необходимо перезагрузить лэйаут.
 
*'''объект''' - объект, состояние которого меняем.
 
*'''объект''' - объект, состояние которого меняем.
 
*'''состояние''' - новое состояние для объекта из предыдущего поля.
 
*'''состояние''' - новое состояние для объекта из предыдущего поля.
+
 
+
 
[[Файл:+.png]] '''голосование загружено: изменить состояние объекта'''
+
[[Файл:+.png]] '''успешно проведена изоляция''' - обработчик успеха ''parse_isolate'', необходимо вызывать ''parse_save''.
 
*'''объект''' - объект, состояние которого меняем.
 
*'''объект''' - объект, состояние которого меняем.
*'''состояние''' - новое состояние для объекта из предыдущего поля.
+
*'''состояние'''- новое состояние для объекта из предыдущего поля.
 +
 
  
+
[[Файл:+.png]] '''успешно проведена разизоляция''' - обработчик успеха ''parse_un_isolate'', необходимо вызывать ''parse_load''.
[[Файл:+.png]] '''успешно проголосовали: изменить состояние объекта'''
 
 
*'''объект''' - объект, состояние которого меняем.
 
*'''объект''' - объект, состояние которого меняем.
 
*'''состояние''' - новое состояние для объекта из предыдущего поля.
 
*'''состояние''' - новое состояние для объекта из предыдущего поля.
  
+
 
[[Файл:+.png]] '''запрос в парсе успешно выполнен (любой)''' - обработчик успеха любого запроса.
+
[[Файл:+.png]] '''ошибка, нужно обновить приложение''' - обработчик успеха ''parse_load'', когда версия текущего приложения ниже, чем версия опциях на сервере, показываем окно с кнопкой, ведущей на стор для обновления приложения.
 
*'''объект''' - объект, состояние которого меняем.
 
*'''объект''' - объект, состояние которого меняем.
 
*'''состояние''' - новое состояние для объекта из предыдущего поля.
 
*'''состояние''' - новое состояние для объекта из предыдущего поля.
  
+
 
[[Файл:+.png]] '''ошибка, нужно обновить приложение''' - обработчик неуспеха ''parse_load'', когда версия текущего приложения ниже, чем версия опциях на сервере.
+
[[Файл:+.png]] '''ошибка загрузки данных из cloud: изменить состояние объекта''' - сейчас не применяется, т.к. используем '''ErrorManager'''.
 +
*'''объект''' - объект у которого мы меняем состояние.
 +
*'''состояние''' - Значение нового состояния.
 +
 
 +
==Обработчики голосования==
 +
 +
 +
[[Файл:+.png]] '''голосование загружено: изменить состояние объекта''' - обработчик успеха ''parse_poll''
 
*'''объект''' - объект, состояние которого меняем.
 
*'''объект''' - объект, состояние которого меняем.
*'''состояние''' - новое состояние для объекта из предыдущего поля.
+
*'''состояние''' - новое состояние для объекта из предыдущего поля.
  
 
 
[[Файл:+.png]] '''успешно проведен серверный resolve''' - обработчик успеха ''parse_apply_server'', желательно перезагрузить лэйаут.
+
[[Файл:+.png]] '''успешно проголосовали: изменить состояние объекта''' - обработчик успеха ''parse_vote''
 
*'''объект''' - объект, состояние которого меняем.
 
*'''объект''' - объект, состояние которого меняем.
 
*'''состояние''' - новое состояние для объекта из предыдущего поля.
 
*'''состояние''' - новое состояние для объекта из предыдущего поля.
  
  
[[Файл:+.png]] '''успешно проведена изоляция''' - обработчик успеха ''parse_isolate''.
+
==Обработчики для лидербордов==
*'''объект''' - объект, состояние которого меняем.
+
 
*'''состояние'''- новое состояние для объекта из предыдущего поля.
+
 
 +
[[Файл:+.png]] '''успешно загружены лидерборды''' - обработчик успеха ''parse_leaderboards'', ''parse_leaderboards_friends'' и ''parse_leaderboards_friends_param'', выключаем "крутилку"
 +
*'''объект''' - объект  - состояние которого меняем,
 +
*'''состояние''' - состояние - значение нового состояния.
 +
 
 +
 
 +
[[Файл:+.png]] '''невозможно загрузить лидерборды из-за objectId''' - обработчик неуспеха ''parse_leaderboards'', ''parse_leaderboards_friends'' и ''parse_leaderboards_friends_param'', которая происходит из-за неуспешного ''parse_load'' (в этом случае ''parse_load'' необходимо повторить)
 +
*'''объект''' - объект, состояние которого меняем,
 +
*'''состояние''' - состояние - значение нового состояния.
 +
 
 +
 
 +
[[Файл:+.png]] '''добавляемые лидерборды''' - дополнительная группа настроек визуализации лидербордов, используется для смены таблиц при вызове лидербордов по локациям, монстрам и т.д.
 +
*'''id''' - Идентификатор набора интерфейсных элементов, указывать нужно '''default''' для таблицы, в которую помещаются общие лидеры, для остальных не нужно
 +
*'''имя лидербордов''' - Имя лидербордов, соотв. конфигу. Будет применено, если строка не пустая. Это имя задается в param при вызове ''parse_leaderbords_friends_param''
 +
*'''таблица''' - объект-таблица, в который сложим очки
 +
*'''шаблон''' - объект типа [[Leaderboardsitem]] для помещения в таблицу
 +
*'''свое место''' - каунтер в котором будет место игрока
 +
*'''свои очки''' - каунтер в котором будут очки игрока
 +
*'''своя иконка''' - иконка игрока
 +
*'''кого leaderboardsitem''' - кого leaderboardsitem" hint="кого leaderboardsitem
 +
*'''кто leaderboardsitem''' - кто leaderboardsitem"  hint="кто leaderboardsitem
 +
*'''машина''' - собственно машина окна. Должна иметь состояние show
 +
*'''анимация смены мест''' - Анимация смены мест игроком (нет=0, да=1)
 +
 
 +
==Обработчики для друзей и подарков==
 +
 
 +
 
 +
[[Файл:+.png]] '''успешно загружены друзья''' - обработчик успеха ''parse_friends'', выключаем "крутилку"
 +
*'''объект''' - объект  - состояние которого меняем,
 +
*'''состояние''' - состояние - значение нового состояния.
 +
 
 +
 
 +
[[Файл:+.png]] '''отправлен запрос дружбы''' - обработчик успеха ''parse_friend_request_lb'', ''parse_friend_request_public'', ''parse_friend_request_param'', показываем информационное окно
 +
*'''объект''' - объект  - состояние которого меняем,
 +
*'''состояние''' - состояние - значение нового состояния.
 +
 
 +
 
 +
[[Файл:+.png]] '''отправлен подарок''' - обработчик успеха всех состояний отправки подарков через Cloud, показываем информационное окно
 +
*'''объект''' - объект  - состояние которого меняем,
 +
*'''состояние''' - состояние - значение нового состояния.
  
  
[[Файл:+.png]] '''успешно проведена разизоляция''' - обработчик успеха ''parse_un_isolate''.
+
==Обработчики для временных лидербордов (соревнований)==
*'''объект''' - объект, состояние которого меняем.
 
*'''состояние''' - новое состояние для объекта из предыдущего поля.
 
  
  
[[Файл:+.png]] '''синхронизируемый параметр между приложениями устройства''' - позволяет синхронизировать конкретный параметр между разными приложениями через parse.
+
[[Файл:+.png]] '''загружена информация о всех лидербордах - соревнования сменились''' - обработчик успеха ''parse_all_leaderboards'', вызываем ''parse_leaderboards_temporary'' и ''parse_leaderboards_temporary_prev''
*'''группа''' - имя группы, общее для различных приложений, которые синхронизируют данный параметр
+
*'''объект''' - объект - состояние которого меняем,
*'''параметр''' - имя параметра в группе, общее для различных приложений
+
*'''состояние''' - состояние - значение нового состояния.
*'''объект''' - объект у которого синхронизируем параметр.
 
*'''параметр объекта''' - параметр который синхронизируем.
 
  
  
[[Файл:+.png]] '''невозможно загрузить лидерборды из-за objectId''' - обработчик ошибки загрузки лидербордов, которая происходит при неуспехе parse_load (в этом случае parse_load желательно повторить)
+
[[Файл:+.png]] '''загружена информация о всех лидербордах - соревнования НЕ сменились''' - обработчик успеха ''parse_all_leaderboards'', вызываем ''parse_leaderboards_temporary'' и ''parse_leaderboards_temporary_prev'' при условии, что находимся не в окне соревнований
*'''объект''' - объект, состояние которого меняем,
+
*'''объект''' - объект - состояние которого меняем,
 
*'''состояние''' - состояние - значение нового состояния.
 
*'''состояние''' - состояние - значение нового состояния.
  
  
[[Файл:+.png]] '''успешно загружены лидерборды''' - успешно загружены лидерборды
+
[[Файл:+.png]] '''игрок потенциально попал в лидерборды прошлого периода''' - обработчик успеха ''parse_all_leaderboards'' - неинформативный, решили не использовать
 
*'''объект''' - объект  - состояние которого меняем,
 
*'''объект''' - объект  - состояние которого меняем,
 
*'''состояние''' - состояние - значение нового состояния.
 
*'''состояние''' - состояние - значение нового состояния.
  
[[Файл:+.png]] '''успешно загружены друзья''' - успешно загружены друзья"
+
 
 +
[[Файл:+.png]] '''у игрока призовое место в лидербордах прошлого периода и не забрана награда''' - обработчик успеха ''parse_all_leaderboards'', можно повести игрока забрать награду за предыдущий период соревнований
 
*'''объект''' - объект  - состояние которого меняем,
 
*'''объект''' - объект  - состояние которого меняем,
 
*'''состояние''' - состояние - значение нового состояния.
 
*'''состояние''' - состояние - значение нового состояния.
+
 
[[Файл:+.png]] '''игрок потенциально попал в лидерборды прошлого периода''' - игрок потенциально попал в лидерборды прошлого периода
+
 
 +
[[Файл:+.png]] '''завершились лидерборды предыдущего периода''' - обработчик успеха ''parse_leaderboards_temporary'', вызываем ''parse_all_leaderboards'', показываем информационное окно с информацией о том, что идет подсчет результатов
 
*'''объект''' - объект  - состояние которого меняем,
 
*'''объект''' - объект  - состояние которого меняем,
 
*'''состояние''' - состояние - значение нового состояния.
 
*'''состояние''' - состояние - значение нового состояния.
  
[[Файл:+.png]] '''индикатор награды за временные лидерборды''' - индикатор награды за временные лидерборды
+
 
 +
[[Файл:+.png]] '''невозможно загрузить лидерборды из-за levelId''' - обработчик неуспеха ''parse_leaderboards_temporary'', которая происходит из-за неуспеха ''parse_all_leaderboards'' (в этом случае ''parse_all_leaderboards'' желательно повторить)
 +
*'''объект''' - объект, состояние которого меняем,
 +
*'''состояние''' - состояние - значение нового состояния.
 +
 
 +
 
 +
[[Файл:+.png]] '''индикатор награды за временные лидерборды''' - визуализация награды за временные лидерборды
 
*'''res1''' - счетчик - награда за лидерство в res1,
 
*'''res1''' - счетчик - награда за лидерство в res1,
 
*'''res2''' - счетчик - награда за лидерство в res2,
 
*'''res2''' - счетчик - награда за лидерство в res2,
Строка 139: Строка 254:
  
  
[[Файл:+.png]] '''лидеры предыдущего этапа временных лидербордов''' - лидеры предыдущего этапа временных лидербордов
+
[[Файл:+.png]] '''лидеры предыдущего этапа временных лидербордов''' - визуализация лидеров предыдущего этапа временных лидербордов (пъедестал)
*'''leaderboardsitem''' - объект типа leaderboardsitem.
+
*'''leaderboardsitem''' - объект типа [[Leaderboardsitem]].
 +
 
 +
 
 +
[[Файл:+.png]] '''периодические лидерборды''' - добавляемые периодические лидерборды используются для разделения игроков по группам в соответствии с уровнем опыта из экономики
 +
*'''имя''' - Периодический лидерборд в parse (название таблицы)
 +
*'''min''' - Минимальный уровень экономики
 +
*'''max''' - Максимальный уровень экономики
 +
 
 +
==Общие обработчики==
 +
 
 +
 +
[[Файл:+.png]] '''запрос в парсе успешно выполнен (любой)''' - обработчик успеха любого запроса.
 +
*'''объект''' - объект, состояние которого меняем.
 +
*'''состояние''' - новое состояние для объекта из предыдущего поля.
 +
 
  
==Особенности использования==
+
==Обработчики для мультиплеера==
 +
 +
[[Файл:+.png]] '''приглашение в мультиплеер''' - когда мы получили приглашение поиграть.
 +
*'''объект''' - объект, состояние которого меняем.
 +
*'''состояние''' - новое состояние для объекта из предыдущего поля.
 +
 
 +
[[Файл:+.png]] '''подтверждение приглашения в мультиплеер''' - когда приняли наше приглашение поиграть.
 +
*'''объект''' - объект, состояние которого меняем.
 +
*'''состояние''' - новое состояние для объекта из предыдущего поля.
  
Есть несколько платформ, которые не поддерживают работу с фейсбуком. Это blackberry, win 8.1, windows phone 8.
+
=Особенности использования=
При этом эти устройства могут взаимодействовать с клаудом. При этом есть ряд проблем с этими платформами: каждый пользователь будет отправлять свои результаты в лидерборды под ником new_user (или другим дефолтным); не до конца прозрачна ситуация с включением/отключением изоляции игроков.
 
Для того, что бы отключить сохранение в клауд для этих платформ нужно установить в опциях флаг disable_cloud_save = 1.
 
Опросник при этом работает нормально.
 
  
 +
Для пользователей, которые не логиняться в социальные сети и соответственно не сохраняют в игре свои имя и аватарку, существует система присвоения дефолтных имен и иконок. Это происходит при вызове ''parse_load''. В этом случае человек попадает в таблицы лидербордов (ранее игроки без имени и без иконки отфильтровывались).
  
 
=Состояния=
 
=Состояния=
  
*'''parse_load''' - загружает из облака опции
+
*'''0  - local_device_synchronization''' - синхронизация параметров между приложениями одного устройства;
*'''parse_save''' - сохраняет опции в клауд. Автоматически сохраняется при переходе с экрана на экран и при выходе из приложения.
+
 
*'''parse_apply''' - применяет загруженные опции при условии совпадения по device_id.
+
*'''1  - parse_resolve''' - ресолвим конфликт и ждем подтверждения;
*'''parse_apply_server''' - выбирает лучшие и применяет опции при условии наличии на сервере двух наборов.
+
 
*'''parse_isolate''' - проводит изоляцию опций (сохраняет 2 набора).
+
*'''2  - parse_idle''' - состояние простоя, означает, что мы не ждем ответа ни на один запрос;
*'''parse_un_isolate''' - проводит объединение опций.
+
 
*'''parse_leaderboards''' - заполняет таблицу глобальных лидербордов.
+
*'''3  - parse_load''' - загрузить опции из парса (вызываться должно снаружи, после ввода имени) ;
*'''parse_leaderboards_friends''' - заполняет таблицу лидербордов-друзей.
+
 
*'''parse_friends''' - заполняет таблицу парсовых друзей для отправки подарков.
+
*'''4  - parse_save''' - сохранить опции в парс c учетом предохранительной задержки SAVE_DELAY_SEC (на 2014-09-17 вызывается из единственного места - GOptions::save);
*'''parse_submit''' - отправляет очки в клауд. Предварительно нужно записать кол-во очков в параметр score.
+
       
*'''parse_get_public_lb''' - показывает информацию о друге из таблицы лидербордов.
+
*'''5  - parse_leaderboards''' - загрузить лидерборды из парса и сложить в соответствующую таблицу;
*'''parse_poll''' - загружает опросник.
+
 
*'''parse_vote''' - отправляет голос в опроснике.
+
*'''6  - parse_leaderboards_friends''' - загрузить лидерборды из парса и сложить в соответствующую таблицу;
*'''parse_poll_prev''' - загружает результаты предыдущего опросника.
+
 
 +
*'''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 лидерборда;
I/GCloud GCloud::state() state val = 2 state = 3
 
  
 +
*'''31 - parse_leaderboards_temporary_prev''' - получение таблицы результатов предыдущего периода в temporary лидерборде;
  
Где val = 2 - это состояние в которое хотим перейти в дальнейшем ( в зависимости от текущего состояния, или сстанет в очередь или выполниться следующим тиком).
+
*'''32 - parse_leaderboards_claim''' - начисление награды по кнопке получения награды в шаблоне лидерборда за предыдущий период в temporary лидерборде;
:state = 3 - это состояние в котором сейчас находиться объект;
 
  
 +
*'''33 - parse_leaderboards_animation''' - старт анимации перемещения ячеек таблицы в temporary лидерборде;
  
==Номера состояний:==
+
*'''34 - parse_friend_request_param''' - приглашение дружить, в param указать object_id;
  
*'''- ST_LOCAL_DEVICE_SYNCHRONIZATION'''     //!< синхронизация параметров между приложениями одного устройства;
+
*'''35 - parse_friend_request_lb''' - приглашение дружить по кнопке пригласить в друзья из шаблона лидербордов;
  
*'''- ST_PARSE_RESOLVE'''                   //!< ресолвим конфликт и ждем подтверждения;
+
*'''36 - parse_friend_confirm''' - подтверждение дружбы из окна ''parse запросы дружбы'';
  
*'''- ST_PARSE_IDLE'''                       //!< состояние простоя, означает, что мы не ждем ответа ни на один запрос;
+
*'''37 - parse_friend_cancel''' - отмена дружбы из окна ''parse запросы дружбы'';
  
*'''- ST_PARSE_LOAD'''                       //!< загрузить опции из парса (вызываться должно снаружи, после ввода имени) ;
+
*'''38 - parse_friend_confirm_table''' - подтверждение дружбы из таблицы инвайтов ''parse запросы дружбы'';
  
*'''- ST_PARSE_SAVE'''                       //!< сохранить опции в парс c учетом предохранительной задержки SAVE_DELAY_SEC (на 2014-09-17 вызывается из единственного места - GOptions::save);
+
*'''39 - parse_friend_cancel_table''' - отмена дружбы из таблицы инвайтов ''parse запросы дружбы'';
       
 
*'''5  -  ST_PARSE_LEADERBOARDS'''               //!< загрузить лидерборды из парса и сложить в соответствующую таблицу;
 
  
*'''- ST_PARSE_LEADERBOARDS_FRIENDS'''       //!< загрузить лидерборды из парса и сложить в соответствующую таблицу;
+
*'''40 - parse_friend_request_public''' - запрос дружбы из окна Инфо (parse_get_public_lb), проверять параметр ''selected_public.cloud_is_friend'' у объекта cloud: 0 - я сам, 1 - не друг, 2 - друг (для показа-прятания кнопок);
  
*'''- ST_PARSE_SUBMIT'''                     //!< заслать очки в парс взяв очки из поля score и уровень из поля level;
+
*'''41 - parse_friend_delete_public''' - запрос на отмену дружбы из окна Инфо (parse_get_public_lb), проверять параметр ''selected_public.cloud_is_friend'' у объекта cloud: 0 - я сам, 1 - не друг, 2 - друг (для показа-прятания кнопок);
  
*'''- ST_PARSE_APPLY'''                     //!< применить скачанные опции;
+
*'''42 - parse_friend_check_requests''' - проверить входящие запросы (инвайты, подарки...);
  
*'''- ST_GET_PUBLIC_LB'''                   //!< скопировать паблик данные кликнутого юзера из лидербордов в доступную область;
+
*'''43 - parse_leaderboards_friends_param''' -  показать лидерборд по друзьям, предварительно изменив контролы для отображения таблицы лидербордов и т.п.;
  
*'''10 - ST_PARSE_POLL'''                       //!< получить данные о текущем опроснике от клауда. Заполнить таблицу ответов;
+
*'''44 - parse_get_public_fr''' - скопировать паблик данные кликнутого юзера из таблицы парсовых друзей из лидербордов в доступную область;
  
*'''11 - ST_PARSE_POLL_PREV'''                 //!< получить данные о предыдущем опроснике от клауда. Заполнить таблицу ответов №2;
+
*'''45 - parse_scroll_temporary_on_me''' - промотка таблицы периодических лидербордов на ячейку с моим результатом до указателя (если он задан);
  
*'''12 - ST_PARSE_VOTE'''                       //!< проголосовать в текущем опроснике (номер ответа возьмем из таблицы) TODO - не нужно ли состояний против и за?;
+
*'''46 - parse_bots_info''' - получить информацию о ботах отдельно от периодических лидербордов.
  
*'''13 - ST_PARSE_SHARE_POLL'''                 //!< зашарить результаты текущего опроса;
+
*'''47 - get_country''' - получить страну
  
*'''14 - ST_PARSE_FORCED_SAVE'''               //!< сохранить опции в парс незамедлительно (на 2014-09-17 вызывается из единственного места - GOptions::save);
+
*'''48 - parse_scroll_default_on_me''' - промотать таблицу default на меня
  
*'''15 - ST_PARSE_APPLY_SERVER'''               //!< применить опции и отправить ресолв;
+
*'''49 - parse_info''' - получить инфо о пользователе взяв objectId из param
  
*'''16 - ST_PARSE_CLEAR_NOTIFICATIONS'''       //!< отписаться от уведомлений;
+
*'''50 - parse_invitable''' - заполнить таблицу приглашаемых друзей
  
*'''17 -  ST_PARSE_ADD_NOTIFICATION'''          //!< добавить уведомление (не требует действий с сетью, реальная отправка - по потере фокуса);
+
=Сообщения в лог=
  
*'''18 -  ST_PARSE_TIME'''                      //!< запросить время;
+
Объект пишет в опции строки:
 +
I/GCloud GCloud::state() state val = 2 state = 3
  
*'''19 -  ST_PARSE_FRIENDS'''                    //!< заполнить таблицу всех друзей (новые подарки);
 
 
 
*'''20 -  ST_PARSE_ISOLATE'''                    //!< отказаться от слияния аккаунтов;
 
  
*'''21 - ST_PARSE_UN_ISOLATE'''                //!< отменить изоляцию
+
Где val = 2 - это состояние в которое хотим перейти в дальнейшем ( в зависимости от текущего состояния, или станет в очередь или выполниться следующим тиком), state = 3 - это состояние в котором сейчас находиться объект.
  
  
Строка 234: Строка 407:
 
Дополнительно клауд будет отправлять коды ошибок по таймауту ( превышению времени ответа - сейчас равен 60 сек):
 
Дополнительно клауд будет отправлять коды ошибок по таймауту ( превышению времени ответа - сейчас равен 60 сек):
 
'''4000 + номер состояния''', т.е. для запроса лидербордов, например ошибка будет 4000 + 5 = 4005 ( глобальные) или 4000 + 6 = 4006 (друзья)
 
'''4000 + номер состояния''', т.е. для запроса лидербордов, например ошибка будет 4000 + 5 = 4005 ( глобальные) или 4000 + 6 = 4006 (друзья)
 +
 +
Для обработки ошибок использовать [[Errormanager|ErrorManager]].
  
 
[[Category:Options|*]]
 
[[Category:Options|*]]

Текущая версия на 14:39, 23 мая 2018

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

Параметры объекта 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)
  • (периодический) таблица наград - объект-таблица, в который сложим шаблоны наград
  • (периодический) шаблон награды - объект типа rewarditem

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

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

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

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

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

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

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

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

parse окно обгона для периодических лидербордов

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

Приглашение в мультиплеер

  • multiplayer - объект мультиплеера
  • информация - информация о приглашающем, объект типа leaderboardsitem

Боты для лидербордов

  • конфиг - файл с настройками ботов
  • имена ботов в оффлайне - имена ботов, если они генерятся в оффлайне
  • имена игрока в оффлайне - имя игрока в оффлайне

Файл конфига умеет создавать "economicalCycle" (пока только боты для локаций, ModeWorkEconomicalCycle="2" + указываем нужное количество ботов - "bot_loc=k_sc0=1.077#k_scMax=0.71#name=bot1").

Добавляемые свойства

Обработчики для синхронизации

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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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

Обработчики голосования

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

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


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

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


Обработчики для лидербордов

+.png успешно загружены лидерборды - обработчик успеха parse_leaderboards, parse_leaderboards_friends и parse_leaderboards_friends_param, выключаем "крутилку"

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


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

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


+.png добавляемые лидерборды - дополнительная группа настроек визуализации лидербордов, используется для смены таблиц при вызове лидербордов по локациям, монстрам и т.д.

  • id - Идентификатор набора интерфейсных элементов, указывать нужно default для таблицы, в которую помещаются общие лидеры, для остальных не нужно
  • имя лидербордов - Имя лидербордов, соотв. конфигу. Будет применено, если строка не пустая. Это имя задается в param при вызове parse_leaderbords_friends_param
  • таблица - объект-таблица, в который сложим очки
  • шаблон - объект типа Leaderboardsitem для помещения в таблицу
  • свое место - каунтер в котором будет место игрока
  • свои очки - каунтер в котором будут очки игрока
  • своя иконка - иконка игрока
  • кого leaderboardsitem - кого leaderboardsitem" hint="кого leaderboardsitem
  • кто leaderboardsitem - кто leaderboardsitem" hint="кто leaderboardsitem
  • машина - собственно машина окна. Должна иметь состояние show
  • анимация смены мест - Анимация смены мест игроком (нет=0, да=1)

Обработчики для друзей и подарков

+.png успешно загружены друзья - обработчик успеха parse_friends, выключаем "крутилку"

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


+.png отправлен запрос дружбы - обработчик успеха parse_friend_request_lb, parse_friend_request_public, parse_friend_request_param, показываем информационное окно

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


+.png отправлен подарок - обработчик успеха всех состояний отправки подарков через Cloud, показываем информационное окно

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


Обработчики для временных лидербордов (соревнований)

+.png загружена информация о всех лидербордах - соревнования сменились - обработчик успеха parse_all_leaderboards, вызываем parse_leaderboards_temporary и parse_leaderboards_temporary_prev

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


+.png загружена информация о всех лидербордах - соревнования НЕ сменились - обработчик успеха parse_all_leaderboards, вызываем parse_leaderboards_temporary и parse_leaderboards_temporary_prev при условии, что находимся не в окне соревнований

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


+.png игрок потенциально попал в лидерборды прошлого периода - обработчик успеха parse_all_leaderboards - неинформативный, решили не использовать

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


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

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


+.png завершились лидерборды предыдущего периода - обработчик успеха parse_leaderboards_temporary, вызываем parse_all_leaderboards, показываем информационное окно с информацией о том, что идет подсчет результатов

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


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

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


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

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


+.png лидеры предыдущего этапа временных лидербордов - визуализация лидеров предыдущего этапа временных лидербордов (пъедестал)


+.png периодические лидерборды - добавляемые периодические лидерборды используются для разделения игроков по группам в соответствии с уровнем опыта из экономики

  • имя - Периодический лидерборд в parse (название таблицы)
  • min - Минимальный уровень экономики
  • max - Максимальный уровень экономики

Общие обработчики

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

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


Обработчики для мультиплеера

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

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

+.png подтверждение приглашения в мультиплеер - когда приняли наше приглашение поиграть.

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

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

Для пользователей, которые не логиняться в социальные сети и соответственно не сохраняют в игре свои имя и аватарку, существует система присвоения дефолтных имен и иконок. Это происходит при вызове parse_load. В этом случае человек попадает в таблицы лидербордов (ранее игроки без имени и без иконки отфильтровывались).

Состояния

  • 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 - получить информацию о ботах отдельно от периодических лидербордов.
  • 47 - get_country - получить страну
  • 48 - parse_scroll_default_on_me - промотать таблицу default на меня
  • 49 - parse_info - получить инфо о пользователе взяв objectId из param
  • 50 - parse_invitable - заполнить таблицу приглашаемых друзей

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

Объект пишет в опции строки: 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.