Eanalysis — различия между версиями
Mlipa (обсуждение | вклад) |
Vgolob (обсуждение | вклад) (→Уведомления) |
||
(не показано 17 промежуточных версий 1 участника) | |||
Строка 1: | Строка 1: | ||
{{TOC right}} | {{TOC right}} | ||
− | [[Object|Объект]] Eanalysis - предназначен для проведения экспертизы предмета по времени. | + | [[Object|Объект]] Eanalysis - предназначен для проведения экспертизы предмета по времени. Работа с объектом происходит с помощью создания задач на экспертизу предметов в [[Taskorganizer#Подзадача экспертиза|taskorganizer]]. |
+ | Объект экспертизы сохраняет себя в [[Options|Options]] (везде первый %d - это id объекта экспертизы, второй - id предмета) | ||
+ | *'''eanalysis%d.i%d.c''' - 1 если экспертиза завершена | ||
+ | *'''eanalysis%d.i%d.t''' - если > 0 - экспертиза начата и, возможно завершена (см. предыдущий флаг) | ||
[[Файл:Eanalysis_.png|400px|thumb|right]] | [[Файл:Eanalysis_.png|400px|thumb|right]] | ||
− | + | == Общие настройки == | |
*'''taskorganizer''' - объект типа [[Taskorganizer|taskorganizer]] | *'''taskorganizer''' - объект типа [[Taskorganizer|taskorganizer]] | ||
*'''таблица''' - объект типа [[Table|таблица]], в который мы сложим шаблоны | *'''таблица''' - объект типа [[Table|таблица]], в который мы сложим шаблоны | ||
+ | === Настройки экземпляра === | ||
+ | |||
*'''иконка''' - иконка предмета | *'''иконка''' - иконка предмета | ||
*'''название''' - название предмета | *'''название''' - название предмета | ||
Строка 13: | Строка 18: | ||
*'''кнопка ускорить''' - кнопка ускорить | *'''кнопка ускорить''' - кнопка ускорить | ||
*'''кнопка информации''' - кнопка информации | *'''кнопка информации''' - кнопка информации | ||
+ | === Эффекты === | ||
+ | |||
*'''эффект завершения''' - эффект завершения, будет запущен в ячейке, где закончилась экспертиза | *'''эффект завершения''' - эффект завершения, будет запущен в ячейке, где закончилась экспертиза | ||
*'''эффект готового''' - эффект готового, будет запущен в ячейке с завершенной экспертизой после refresh | *'''эффект готового''' - эффект готового, будет запущен в ячейке с завершенной экспертизой после refresh | ||
+ | === Окошко предмета === | ||
+ | |||
+ | Окошко вызывается по клику на ячейку экспертизы, если она уже закончена ранее. | ||
+ | |||
+ | *'''окно''' - само окно, должно иметь состояние show | ||
+ | *'''иконка''' - иконка предмета | ||
+ | *'''описание''' - описание предмета | ||
+ | === Окошко завершения === | ||
+ | |||
+ | Окошко вызывается в момент завершения экспертизы в ячейке. | ||
+ | |||
*'''окно''' - само окно, должно иметь состояние show | *'''окно''' - само окно, должно иметь состояние show | ||
*'''иконка''' - иконка предмета | *'''иконка''' - иконка предмета | ||
*'''описание''' - описание предмета | *'''описание''' - описание предмета | ||
+ | === Окошко предмета в процессе === | ||
+ | |||
+ | Окошко вызывается по клику на ячейку экспертизы, если она находится в процессе анализа. | ||
+ | |||
*'''окно''' - само окно, должно иметь состояние show | *'''окно''' - само окно, должно иметь состояние show | ||
*'''иконка''' - иконка предмета | *'''иконка''' - иконка предмета | ||
*'''описание''' - описание предмета | *'''описание''' - описание предмета | ||
+ | *'''таймер''' - время до конца экспертизы | ||
+ | === Окошко экспертиза не начата === | ||
+ | Окошко вызывается по клику на ячейку экспертизы, если она еще не начата. | ||
+ | |||
+ | *'''окно''' - само окно, должно иметь состояние show | ||
+ | *'''иконка''' - иконка предмета | ||
+ | *'''описание''' - описание предмета | ||
=== Дополнительные параметры === | === Дополнительные параметры === | ||
Строка 34: | Строка 63: | ||
*'''состояние''' - новое состояние для объекта из предыдущего поля | *'''состояние''' - новое состояние для объекта из предыдущего поля | ||
− | + | == Состояния == | |
*'''start''' - начать экспертизу | *'''start''' - начать экспертизу | ||
*'''boost''' - ускорить текущую экспертизу | *'''boost''' - ускорить текущую экспертизу | ||
*'''boost all''' - ускорить все экспертизы | *'''boost all''' - ускорить все экспертизы | ||
− | *'''show''' - | + | *'''show''' - приводит к показу окошка для предмета из последней кликнутой ячейки в таблице экспертизы. Т.е. если show вызывается при клике на какую-то ячейку, то окошко будет для находящегося в ней предмета |
*'''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> | ||
+ | Покупка ускорения всех экспертиз на некоторое время (например, 7 дней): | ||
+ | 1) В экономику добавляем предмет eanalysis, и в нем указываем длительность действия в секундах (tm). | ||
+ | 2) Покупка осуществляется через объект Store. | ||
+ | </pre> | ||
Для примера использования представлено окно открытия экспертизы на отдельной сцене "экспертиза". | Для примера использования представлено окно открытия экспертизы на отдельной сцене "экспертиза". | ||
− | [[Файл:Wnd_expertise.png|600px|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 - экспертиза начата и, возможно завершена (см. предыдущий флаг)
Общие настройки
- 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.
Для примера использования представлено окно открытия экспертизы на отдельной сцене "экспертиза".