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

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
(Параметры объекта Store)
Строка 21: Строка 21:
 
*'''Wild Tangent Site Name''' - имя сайта в маркете Wild Tangent(берётся из сайта Wild Tangent)
 
*'''Wild Tangent Site Name''' - имя сайта в маркете Wild Tangent(берётся из сайта Wild Tangent)
 
*'''Wild Tangent Game Name''' - имя игры в маркете Wild Tangent(берётся из сайта Wild Tangent)
 
*'''Wild Tangent Game Name''' - имя игры в маркете Wild Tangent(берётся из сайта Wild Tangent)
*'''Google Product ID''' - ID покупки на Google Play
+
*'''Google Product ID''' - ID покупки на Google Play [[http://ge.absolutist.com/index.php/Store#.D0.94.D0.BE.D0.BF.D0.BE.D0.BB.D0.BD.D0.B8.D1.82.D0.B5.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D1.81.D0.B2.D0.B5.D0.B4.D0.B5.D0.BD.D0.B8.D1.8F]]
 
*'''Расходуемая''' - 1 - покупка расходуемая, 0 - покупка раз и навсегда
 
*'''Расходуемая''' - 1 - покупка расходуемая, 0 - покупка раз и навсегда
 
*'''объект (restore)''' - объект - Слушатель восстановления покупки. Этому объекту будет сообщено об успехе восстановления этой покупки покупки.
 
*'''объект (restore)''' - объект - Слушатель восстановления покупки. Этому объекту будет сообщено об успехе восстановления этой покупки покупки.

Версия 06:09, 6 июня 2013

Необходим для описания InApp покупок(позволяют продавать отдельные бонусы, паки и т.п.) в игре.

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

  • service id - Идентификатор сервиса для Fortumo
  • app secret - Секретный ключ для Fortumo
  • group id ID - группы для Samsung
  • public key - лицензионный ключ приложения на Google Play


  • id покупки - внутренний id покупки
  • iOS id покупки - id покупки в магазине Apple для iOS версии приложения
  • Amazon id покупки - id покупки для Amazon версии приложения
  • Fortumo id покупки - id Fortumo покупки для Android версии приложения
  • Описание покупки Fortumo - отбражаемое описание покупки для Frotumo под Android
  • Fortumo service Id - берутся с сайта фортумо (их видно в свойствах покупки)
  • Fortumo appSecret - берутся с сайта фортумо (их видно в свойствах покупки)
  • Samsung Item ID - id покупки в самсунговском маркете
  • Wild Tangent Product Name - имя продукта в маркете Wild Tangent(берётся из сайта Wild Tangent)
  • Wild Tangent Partner Name - имя партнера в маркете Wild Tangent(берётся из сайта Wild Tangent)
  • Wild Tangent Site Name - имя сайта в маркете Wild Tangent(берётся из сайта Wild Tangent)
  • Wild Tangent Game Name - имя игры в маркете Wild Tangent(берётся из сайта Wild Tangent)
  • Google Product ID - ID покупки на Google Play [[1]]
  • Расходуемая - 1 - покупка расходуемая, 0 - покупка раз и навсегда
  • объект (restore) - объект - Слушатель восстановления покупки. Этому объекту будет сообщено об успехе восстановления этой покупки покупки.
  • состояние (restore) - Это состояние будет установлено объекту при успешном восстановлении этой покуки


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

Задание in-app идентификаторов

Прежде всего необходимо определить in-app идентификаторы. Для этого необходимо:

  • поместить на глобальное окно (например, там, где находятся options) объект store. Для этого, на сцену этого окна перетаскивается любая картинка или создаётся новый объект в сцене и у него меняется тип объекта на store.
  • в настройках свойств этого объекта нажимаем правую кнопку мыши и добавляем раздел "in-app покупка", кликая на который, в окне помечаем галочку у "внутренний id покупки" и необходимых полей(для ios - ios id покупки, для amazon - amazon id покупки и другие). Можно выбирать сразу несколько систем in-app покупок - при сборке в зависимости от платформы и целевого маркета на устройстве будут использованы соответствующие покупки.
  • В первом поле "id покупки" записываем текстовый идентификатор инапа. Это может быть любая строка, уникальная для каждого инапа. Если в строке встречаются точки, то информация о покупках будет сохранятся в поддиректориях опций. Эта строка будет использоваться в игре объектами для выяснения того, была ли уже проведена покупка или нет и для совершения покупки.
  • Во втором поле, в примере "iOS id покупки", записывается идентификатор этого инапа, в нашем случае на Apple Store. Аналогично для других систем.
  • Далее, таким же образом, добавляется следующий инап.

В результате, окно настроек объекта будет выглядеть примерно таким образом:

Store1.png

Для IOS также используется восстановление покупок. В полях "объект (restore)" и "состояние (restore)" in-app покупки указывается машина и состояние в которое её надо перевести, если придёт сообщение, о том, что данная покупка должна быть восстановлена.

Параметры "успех restore", "ошибка restore" и "пусто restore" используются в общем по приходу сообщений о восстановлении. Тесть если пришло сообщение в восстановлении 2-х покупок, то переведутся в указанные состояние 2 машины в покупках, которые необходимо восстановить, и переведётся машина в "успех restore" в указанное состояние. Если придёт сообщение о ошибке восстановления или о том что нет покупок для восстановления , то машины в "ошибка restore" и "пусто restore" переведутся в указанные состояние соответственно.

Использование InApp идентификаторов

Если из игры необходимо инициировать процесс покупки, в результате нажатия на кнопку, этой кнопки добавляется раздел "совершить in-app покупку" (как обычно, правой кнопкой мыши). В нем отмечаются галочками поля:

  • внутренний id покупки - тот же, что и "id покупки" в объекте store
  • объект - слушатель успеха
  • состояние успеха
  • объект - слушатель неудачи
  • состояние неудачи

После нажатия на эту кнопку произойдет обращение к магазину. В этот момент поверх экрана игры будет рисоваться клип прогресса, определяемый в options (такой же, как и при переходах между экранами).

Если игрок произвел покупку, объект, заданный в поле "объект (успех)" будет переведен в состояние "состояние (успех)" (третье поле). В этом объекте (обычно машина состояний) может быть активированы некоторые действия (например, спрятаны замочки, блокирующие продаваемый бонус). Одновременно с этим, в раздел опций который соответствует полю "внутренний id покупки" будет записана 1 (покупка совершена). Это поле может в дальнейшем вычитываться различными игровыми объектами.

Если покупка не была совершена (нет интернета, игрок не стал её делать и т.п.) спустя некоторое время "объект (провал)" будет переведен в "состояние (провал)". В этом объекте можно, например, открыть окно, сообщающее, что покупка не может быть произведена и инап не активирован.

Пример InApp-a

Предположим, что в игре puzzle есть бонус, ставящий ячейку на своё место. Игроку дается возможность использовать этот бонус 3 раза за игровую сессию, после чего появляется окно на подобное этому:

Store2.png

При нажатии на крестик окно закрывается, а при нажатии на замок активируется процесс покупки.

Голубая кнопка с белым ноликом является кнопкой запуска хинта. В ней есть раздел

  • изменить состояние объекта
    • объект = puzzle (идентификатор миниигры puzzle)
    • состояние = swap (состояние котором одна из ячеек становится на свое место).

Белая цифра поверх кнопки - это счетчик counter. Его идентификатор cnt_hnt сообщается пазле (она уменьшает его значение при выполнении этого хинта). Диапазон изменения счетчика задан в пределах min=0, max=3. Начальное значение val=3. Кроме этого в счетчик правой кнопкой мыши добавлены разделы:

  • min: изменить объект
    • объект = win_buy_hint
    • состояние = open
  • minIf: условие изменения min
    • куплено = buy.hint
    • not = 1

Эти разделы означают, что при достижении счетчиком минимальной границы будет открыто окно win_buy_hint если в опциях не (поле not) отмечена покупка "buy.hint".

Заметим, что пазла puzzle выполняет этот хинт (получив состояние от кнопки), если счетчика этих хинтов нет, или он не достиг минимума, или достиг, но в нем нет выполнившегося раздела "min: изменить объект".

Само окно win_buy_hint (желтый прямоугольник) является машиной состояний в которой может быть выключен счётчик, открывается окно, закрывается окно.

У машины состояний есть 2 подобъекта - кнопки с замочком и крестиком. Крестик имеет добавленный раздел, который закрывает окно. Замок запускает процесс покупки и также закрывает окно:

  • изменить состояние объекта
    • объект = win_buy_hint
    • состояние = close
  • совершить in-app покупку
    • id покупки = buy.hint
    • объект (успех) = win_buy_hint
    • состояние (успех) = hide
    • объект (провал) = win_error
    • состояние (провал) = open

В случае успешной покупки счетчик становится невидимым (состояние hide окна). При неудаче открывается окно win_error, аналогичное win_buy_hint сообщающее об ошибке покупки хинта.

Обратим внимание, что выполнение состояний "успех" и "провал" является отложенными во времени. Они вызываются магазином, когда соответствующие события (покупка или отказ от неё) возникнут.

Дополнительные сведения

  • Для работы покупок на Google Play необходимо добавить разрешение

<uses-permission android:name="com.android.vending.BILLING" />

  • Для получения ID покупки на Google Play необходимо сначала загрузить apk с разрешением покупок