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

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
(Состояния машины-обработчика акций)
(Состояния машины-обработчика акций)
Строка 34: Строка 34:
 
**'''click''' - переход при вызове '''show''', используется для показа окна акции, например.
 
**'''click''' - переход при вызове '''show''', используется для показа окна акции, например.
  
**'''Важно!''' В машине-обработчике нельзя делать переходы в дополнительные состояния - работать не будут.
+
'''Важно!''' В машине-обработчике нельзя делать переходы в дополнительные состояния - работать не будут.
  
 
==Окно групп пользователей==
 
==Окно групп пользователей==

Версия 13:31, 16 августа 2016

Объект Salesmaneger предназначается для управления всплывающими окошками с различными акциями: скидками, выгодными предложениями и т. д. Для того, чтобы наиболее выгодным образом показывать человеку акции, этот объект будет сам определяет категорию пользователя, и в зависимости от нее показывает игроку различные события. За основу взято окно настройки локации из объекта Economics.


Свойства

Так сложилось, что основные свойства salesmanager'а как объекта не используются, но для визуализации временных эффектов можно использовать параметры группы таблица

Таблица

  • таблица - таблица в которую сложим заготовки для информации об акциях,
  • элемент - элемент для помещения в таблицу. В первый встреченный подобъект таймер будет помещено время. В первый встреченный подобъект картинка будет помещена иконка. Элемент желательно сделать машиной, которая по тапу (клику) будет вызывать salesmanager'у show для показа окна акции. Иконка, по традиции, берется из текстового id акции.


Окно акций

SM Actions.png

В данном окне добавляются и редактируются акции, которые потом включаются в сценарии. Каждая запись слева представляет одну акцию. Справа расположены настройки акции. Некоторые из них оставлены для совместимости с предыдущей версией менеджера акций.

Используемые параметры

  • id события - id акции, берется из текстовой базы ресурсов.
  • объект - Машина-обработчик акции, ее состояния описаны ниже.
  • Длительность акции - время в секундах, в течении которого, акция активна.
  • Количество показов - сколько раз акция будет показана игроку (для акции будет вызвано show и show_first)
  • Показывать в таблице - галка, определяющая, нужно ли данную акцию выводить в таблицу временных эффектов.

Также можно добавить произвольное количество условий окончания акции. Все условия объединяются логическим "И".

Состояния машины-обработчика акций

    • show_first - машина переходит в это состояние при первом вызове check / check_multiple,
    • show - переход при последующих вызовах check / check_multiple,
    • delete - переход при вызове ok, cancel_scenario, смене активной юзерской группы,
    • hide - переход при вызове cancel; также в эту машину пишется id сценария, в который входит акция, как параметр sales_scenario,
    • expired - переход при окончании акции по времени или количеству показов,
    • click - переход при вызове show, используется для показа окна акции, например.

Важно! В машине-обработчике нельзя делать переходы в дополнительные состояния - работать не будут.

Окно групп пользователей

SM Groups.png

Есть 6 групп пользователей, в зависимости от их действий в игре:

  • 1. Не платившие, покинувшие игру;
  • 2. Платившие, но переставшие платить, продолжающие играть;
  • 3. Платившие, покинувшие игру;
  • 4. Не платившие, продолжающие играть;
  • 5. Платящие, играющие;
  • 6. Сломали игру.

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

Важно! Данные параметры нужно подобрать таким образом, что бы группы не имели пересечений, т.е. в один момент времени игрок может попасть только в одну группу. Иначе сценарии будут отрабатывать некорректно.

SM Switch.png

Параметры группы:

  • от последней сессии мин (t_last_ses_min) - Время от последней сессии в полных сутках.
  • от последней сессии макс (t_last_ses_max) - Время от последней сессии в полных сутках.
  • от последней покупки мин (t_last_buy_min) - Время от последней покупки в полных сутках.
  • от последней покупки макc (t_last_buy_max) - Время от последней покупки в полных сутках.
  • wallet_total_usd мин - Минимальное значение wallet_total_usd (его пишет в опции объект Wallet, если в покупке задать поле эталонная цена)
  • wallet_total_usd макс - Максимальное значение wallet_total_usd
  • суток в игре мин (t_days_min) - Количество проведенных в игре полных суток.
  • суток в игре макс (t_days_max) - Количество проведенных в игре полных суток.

Для каждой группы мы можем добавлять произвольное количество сценариев. Сценарий может включать произвольное количество акций. Для добавления акций в сценарий нужно переключить вид окна групп (кнопка "Switch") и выбрать нужные акции для сценария.

Для активации сценария должны быть выполнены все его условия. Каждый сценарий имеет следующие параметры (описаны только актуальные параметры):

  • id сценария - id сценария, берется из текстовой базы ресурсов.
  • события сценария - список акций, которые входят в этот сценарий.
  • поле в опциях - Поле в опциях, откуда будет взят прогресс игрока.
  • min уровень - Минимальный уровень при котором срабатывает событие.
  • уровни - Через запятую значения для предыдущего поля, при которых сработает событие.
  • события до - События, которые должны были сработать до этого.
  • время от инсталла min - Время от инстала в секундах.
  • время от покупки min - Время от последней покупки в секундах.
  • время от события min - Время от последнего события в секундах.
  • время от инсталла max - Время от инстала в секундах.
  • время от покупки max - Время от последней покупки в секундах.
  • время от события max - Время от последнего события в секундах.
  • использовать дату - 0 - не использовать, 1 - проверять месяц и день, 2 - проверять и год тоже.
  • год - Год, когда сработает оповещение.
  • месяц - Месяц, когда сработает оповещение.
  • день - День, когда сработает оповещение.
  • повторяемое - Повторяемое ли событие нет=0, да=1.

Также для сценария можно добавить произвольное количество условий начала сценария.

Состояния

  • check - определяется группа игрока, проверяет есть ли сценарии, которые можно запустить (доходит до первого выполнения условий и останавливается);
  • check_multiple - определяется группа игрока, проверяет есть ли сценарии, которые можно запустить (выполняет все совпавшие условия);
  • check_keep_group - проверяет сценарии, акции (до первого совпадения); после вызова можно смотреть group_changed у salesmanager'а: 1 - группа на самом деле уже должна меняться; was_scenario: 1 - есть активный сценарий в активной группе (пользователь еще не перешел в другую группу), 0 - нет активных сценариев;
  • check_multiple_keep_group - проверяет все сценарии, акции; после вызова можно смотреть group_changed у salesmanager'а: 1 - группа на самом деле уже должна меняться; was_scenario: 1 - есть активный сценарий в активной группе (пользователь еще не перешел в другую группу), 0 - нет активных сценариев;
  • ok - сценарий завершился успехом(покупкой), перед вызовом состояния Salesmamnager'у нужно установить в param id сценария (пишется в машину-обработчик акции, как sales_scenario);
  • cancel - завершить текущую акцию в сценарии, перед вызовом указать id сценария;
  • cancel_scenario - завершить сценарий, указанный в param Salesmamnager'у.
  • show - показать окно акции (вызывает click обработчику акции).


Параметры

  • group_changed - определение смены группы: 1 - группа на самом деле уже должна меняться;
  • was_scenario - наличие активных сценариев: 1 - есть активный сценарий в активной группе, 0 - нет;
  • show_ev_id - id текущей акции;
  • n_discount - количество активных акций у игрока.


Статистика

Salesmanager может отправлять 3 события в статистику при условии, что эти события присутствуют в объекте Statistic с нужными параметрами (о многих параметрах Salesmanager не знает, поэтому придется считать их самостоятельно).

  • wnd_discount_1st_show - отправляется при вызове show_first Обработчику акции;
  • wnd_discount_show - отправляется при вызове show Обработчику акции;
  • wnd_discount_click - отправляется при вызове click Обработчику акции.



Принцип работы

При вызове объекту состояния "check_multiple" сначала определяется группа игрока, после чего проверяются все сценарии этой группы. Если есть сценарий, для которого выполнились условия, то он активируется. При этом машина-обработчик первой акции в сценарии переходит в "show_first". В этом состоянии обработчика настраиваем первый показ акции. Если на момент вызова состояния "check_multiple" были активные акции, то информация о них будет обновлена а машина-обработчик акции перейдет в "show". В этом состоянии настраиваем обновление акции (оставшееся время и т.д.). Если акция закончилась (по времени или количеству показов), то при следующей проверке будет показана следующая акция из данного сценария. Сценарий может закончиться 3 способами:

  1. Закончились все акции сценария
  2. Отменой сценария
  3. Покупкой акции

При отмене/покупки акции ее обработчик перейдет в состояние "delete", если будет корректно вызвано соответствующее состояние.

Запись в опции

объект пишет опции в текущего пользователя, в следующем виде:

 <salesmanager%d ev3="1" act_group="4" last_ev="1459770112">
    <ev3 tl="915" skip="0" aen="-1" aes="1459770112" ae="0"/>
 </salesmanager%d>

В теге salesmanager%d:

  • ev%d - число активаций сценария (отдельно от прочей информации по сценарию из-за обратной совместимости);
  • act_group - номер группы пользователя (начиная с 0) по последней проверке;
  • last_ev - время активации последнего сценария;

В теге ev%d:

  • tl - оставшееся время;
  • skip - 1 - событие отменено, при следующей проверке попытаемся перейти на следующее;
  • aen - оставшееся число его показов;
  • aes - дата старта текущего события;
  • ae - текущее событие для активного сценария, -1 для неактивного;

Пример

S:\!MOBILE\!!!EditorGames\Wiki_sample

salesmanager_test.zip