Eanalysis — различия между версиями
Mlipa (обсуждение | вклад) |
Vgolob (обсуждение | вклад) (→Уведомления) |
||
(не показана 1 промежуточная версия 1 участника) | |||
Строка 93: | Строка 93: | ||
Можно отправлять уведомления игроку по завершению экспертизы. Уведомления шлются автоматически. Для этого используется поле в [[Taskorganizer#Подзадача экспертиза|taskorganizer (подзадача экспертиза)]]. Туда следует поместить текстовый id из текстовой базы. | Можно отправлять уведомления игроку по завершению экспертизы. Уведомления шлются автоматически. Для этого используется поле в [[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. | ||
== Другое == | == Другое == |
Текущая версия на 07:50, 4 мая 2018
Объект Eanalysis - предназначен для проведения экспертизы предмета по времени. Работа с объектом происходит с помощью создания задач на экспертизу предметов в taskorganizer. Объект экспертизы сохраняет себя в Options (везде первый %d - это id объекта экспертизы, второй - id предмета)
- eanalysis%d.i%d.c - 1 если экспертиза завершена
- eanalysis%d.i%d.t - если > 0 - экспертиза начата и, возможно завершена (см. предыдущий флаг)
Общие настройки
- 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.
Для примера использования представлено окно открытия экспертизы на отдельной сцене "экспертиза".