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

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
(Уведомления)
 
(не показано 7 промежуточных версий 1 участника)
Строка 1: Строка 1:
 
{{TOC right}}
 
{{TOC right}}
 
[[Object|Объект]] Eanalysis - предназначен для проведения экспертизы предмета по времени. Работа с объектом происходит с помощью создания задач на экспертизу предметов в [[Taskorganizer#Подзадача экспертиза|taskorganizer]].
 
[[Object|Объект]] Eanalysis - предназначен для проведения экспертизы предмета по времени. Работа с объектом происходит с помощью создания задач на экспертизу предметов в [[Taskorganizer#Подзадача экспертиза|taskorganizer]].
Объект экспертизы сохраняет себя в опции (везде первый %d - это id объекта экспертизы, второй - id предмета)
+
Объект экспертизы сохраняет себя в [[Options|Options]] (везде первый %d - это id объекта экспертизы, второй - id предмета)
 
*'''eanalysis%d.i%d.c''' - 1 если экспертиза завершена  
 
*'''eanalysis%d.i%d.c''' - 1 если экспертиза завершена  
 
*'''eanalysis%d.i%d.t'''  - если > 0 - экспертиза начата и, возможно завершена (см. предыдущий флаг)
 
*'''eanalysis%d.i%d.t'''  - если > 0 - экспертиза начата и, возможно завершена (см. предыдущий флаг)
Строка 71: Строка 71:
 
*'''refresh''' - обновляет данные по экспертизам
 
*'''refresh''' - обновляет данные по экспертизам
 
*'''check''' - проверяется выполнение текущих экспертиз
 
*'''check''' - проверяется выполнение текущих экспертиз
 +
 +
== Типы улик ==
 +
 +
Есть возможность делать ячейки экспертиз разных типов. Для этого в [[Taskorganizer#Подзадача экспертиза|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#Подзадача экспертиза|taskorganizer (подзадача экспертиза)]]. Туда следует поместить текстовый id из текстовой базы.
 +
 +
'''Как найти уведомления в логах?'''
 +
Например, уведомление, которое установлено в два часа дня с задержкой 15минут (900 секунд) выглядит так:
 +
<pre>
 +
19/01/18 13:59:47 00078341(2875268504:6804): I/GNotification state() state(ST_SET) getAccurateTime()/1000 = 1516363187 delay = 900
 +
</pre>
 +
Если уведомления отключены в настройках проекта, то строка примет вид:
 +
<pre>
 +
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
 +
</pre>
 +
 +
== Статистика ==
 +
При передаче состояния 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.
 +
 +
== Другое ==
  
 
<pre>
 
<pre>
Строка 77: Строка 122:
 
2) Покупка осуществляется через объект Store.
 
2) Покупка осуществляется через объект Store.
 
</pre>
 
</pre>
== Типы улик ==
 
 
Есть возможность делать ячейки экспертиз разных типов. Для этого в [[Taskorganizer#Подзадача экспертиза|taskorganizer]] (подзадача экспертиза) заполнить поле "владелец" численным значением. Тип улик задавать в поле
 
<property name="владелец" id="owner" hint="Владелец предмета для угадайки. -1 - предмет не участвует" type="int" label="владелец" value="-1" colname="comp_cond_added"/>
 
 
Считать можно из поля в опциях '''eanalysis%d.lastStartOwner''', где вместо %d - id объекта-экспертизы.
 
Информация в нем будет сохраняться независимо от прочих факторов.
 
Перед показом любого окна объект Eanalysis запишет себе (не в опции) '''currentOwner'''. Можно опираться и на это поле.
 
  
 
Для примера использования представлено окно открытия экспертизы на отдельной сцене "экспертиза".
 
Для примера использования представлено окно открытия экспертизы на отдельной сцене "экспертиза".
 
[[Файл:Wnd_expertise.png|600px|thumb|left]]
 
[[Файл:Wnd_expertise.png|600px|thumb|left]]

Текущая версия на 07:50, 4 мая 2018

Объект 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