Eanalysis

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск

Объект Eanalysis - предназначен для проведения экспертизы предмета по времени. Работа с объектом происходит с помощью создания задач на экспертизу предметов в taskorganizer. Объект экспертизы сохраняет себя в Options (везде первый %d - это id объекта экспертизы, второй - id предмета)

  • eanalysis%d.i%d.c - 1 если экспертиза завершена
  • eanalysis%d.i%d.t - если > 0 - экспертиза начата и, возможно завершена (см. предыдущий флаг)
Eanalysis .png

Общие настройки

  • taskorganizer - объект типа taskorganizer
  • таблица - объект типа таблица, в который мы сложим шаблоны

Настройки экземпляра

  • иконка - иконка предмета
  • название - название предмета
  • таймер - таймер
  • стоимость - стоимость
  • кнопка старт - кнопка старт
  • кнопка ускорить - кнопка ускорить
  • кнопка информации - кнопка информации

Эффекты

  • эффект завершения - эффект завершения, будет запущен в ячейке, где закончилась экспертиза
  • эффект готового - эффект готового, будет запущен в ячейке с завершенной экспертизой после refresh

Окошко предмета

Окошко вызывается по клику на ячейку экспертизы, если она уже закончена ранее.

  • окно - само окно, должно иметь состояние show
  • иконка - иконка предмета
  • описание - описание предмета

Окошко завершения

Окошко вызывается в момент завершения экспертизы в ячейке.

  • окно - само окно, должно иметь состояние show
  • иконка - иконка предмета
  • описание - описание предмета

Окошко предмета в процессе

Окошко вызывается по клику на ячейку экспертизы, если она находится в процессе анализа.

  • окно - само окно, должно иметь состояние show
  • иконка - иконка предмета
  • описание - описание предмета
  • таймер - время до конца экспертизы

Окошко экспертиза не начата

Окошко вызывается по клику на ячейку экспертизы, если она еще не начата.

  • окно - само окно, должно иметь состояние show
  • иконка - иконка предмета
  • описание - описание предмета

Дополнительные параметры

Добавляются нажатием правой кнопкой мыши на свойствах объекта Eanalysis.

Изменить состояние объекта - не хватает res3

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

Изменить состояние объекта - экспертиза закончена (при вызове проверочного состояния)

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

Состояния

  • start - начать экспертизу
  • boost - ускорить текущую экспертизу
  • boost all - ускорить все экспертизы
  • show - приводит к показу окошка для предмета из последней кликнутой ячейки в таблице экспертизы. Т.е. если show вызывается при клике на какую-то ячейку, то окошко будет для находящегося в ней предмета
  • refresh - обновляет данные по экспертизам
  • check - проверяется выполнение текущих экспертиз

Типы улик

Есть возможность делать ячейки экспертиз разных типов. Для этого в taskorganizer (подзадача экспертиза) заполнить поле "владелец" численным значением. Тип улик задавать в поле <property name="владелец" id="owner" hint="Владелец предмета для угадайки. -1 - предмет не участвует" type="int" label="владелец" value="-1" colname="comp_cond_added"/>

Считать можно:

  • из поля в опциях eanalysis%d.lastStartOwner, где вместо %d - id объекта-экспертизы.

Информация в нем будет сохраняться независимо от прочих факторов.

  • перед показом любого окна объект Eanalysis запишет себе (не в опции) currentOwner. Можно опираться и на это поле.

Параметры

start_analysis - Параметр, который содержит информацию "есть ли сейчас доступные экспертизы для старта".

В поле количество не начатых (и при этом невыполненных, само собой) экспертиз. Пишется в объект экспертизы. Обновляется при refresh и любом сохранении данных.

Уведомления

Можно отправлять уведомления игроку по завершению экспертизы. Уведомления шлются автоматически. Для этого используется поле в taskorganizer (подзадача экспертиза). Туда следует поместить текстовый id из текстовой базы.

Как найти уведомления в логах? Например, уведомление, которое установлено в два часа дня с задержкой 15минут (900 секунд) выглядит так:

19/01/18 13:59:47 00078341(2875268504:6804): I/GNotification state() state(ST_SET) getAccurateTime()/1000 = 1516363187 delay = 900

Если уведомления отключены в настройках проекта, то строка примет вид:

02-05 12:09:58.274 I/SDL/APP (11455): 05/02/18 12:09:58 00008978(2612762928:6508): I/GNotification state() state(ST_SET) - disabled

Статистика

При передаче состояния start отсылается ивент expert_start с параметрами:

  • stat_time_min - сколько времени будет длиться экспертиза в мин
  • stat_item_id - id исследуемого предмета

При окончании экспертизы отсылается ивент expert_end с параметрами:

  • stat_time_min - сколько времени будет длиться экспертиза в мин
  • stat_item_id - id исследуемого предмета
  • stat_speed_up - 0- ускорили; 1- само закончилось

Недостающие параметры будут записаны в GData самого объекта экспертизы перед вызовом событий, оттуда их можно прочитать. Поэтому нужно, чтобы соответствующие события и параметры для них были заведены в объекте статистики. "Имя объекта" для параметров этих событий - сам объект eanalysis.

Другое

Покупка ускорения всех экспертиз на некоторое время (например, 7 дней):
1) В экономику добавляем предмет eanalysis, и в нем указываем длительность действия в секундах (tm). 
2) Покупка осуществляется через объект Store.

Для примера использования представлено окно открытия экспертизы на отдельной сцене "экспертиза".

Wnd expertise.png