Options — различия между версиями
Shejko (обсуждение | вклад) |
Vryabovol (обсуждение | вклад) (→Добавляемые параметры) |
||
(не показана 91 промежуточная версия 17 участников) | |||
Строка 1: | Строка 1: | ||
− | '''Options''' - объект используется для управления глобальными | + | {{TOC right}} |
+ | '''Options''' - [[Object|объект]], который используется для хранения и управления глобальными параметрами приложения. Также '''Options''' позволяет хранить и использовать параметры записанные в него другими объектами. | ||
+ | == Общие параметры == | ||
+ | Смотреть описание [[Object|Object]]. | ||
− | *'''sound''' - Громкость звука 1 - максимальный | + | == Основные параметры == |
− | *'''music''' - Громкость музыки 1 - максимальная | + | [[Файл:opt2.jpg|right]] |
− | *'''voice''' - Голос рассказчика 0 - отключен | + | *'''язык''' ''(lang)'' - Язык, принудительно используемый приложением. |
− | ** ( | + | *'''url обновлений''' ''(surl)'' - url, по которому ищем обновления опций. |
− | *'''page''' - Номер страницы для книги | + | *'''sound''' ''(sound)'' - Громкость звука: |
− | *''' | + | :'''1''' - максимальный, |
− | '''activity''' | + | :'''0''' - отключен. |
− | '''first loading bg''' | + | *'''music''' ''(music)''- Громкость музыки: |
− | '''first loading bar''' | + | :'''1''' - максимальная, |
− | '''show progress''' | + | :'''0''' - отключена. |
− | '''loading bg''' | + | *'''voice''' ''(voice)'' - Голос рассказчика: |
− | '''loading bar''' | + | :'''0''' - отключен, |
− | '''поле ввода''' | + | :'''не 0''' - включен. |
− | '''таблица''' | + | *'''ambient''' ''(ambient)'' - Громкость окружающих звуков (шелест листьев, шум дождя, пения птиц и т.д.): |
− | '''ввод пустого имени''' | + | :'''0''' - отключен, |
− | '''объект''' | + | :'''не 0''' - включен. |
− | '''состояние''' | + | *'''курсор''' ''(curs)'' - Графический ресурс курсора по умолчанию для всего проекта. |
− | '''Android - кнопка Back''' | + | *'''page''' ''(page)'' - Номер страницы для книги. |
− | '''объект''' | + | *'''fullScreen''' ''(fullScreen)'' - Полноэкранный режим, используется в приложениях для PC: |
− | '''состояние''' | + | :'''1''' - на весь экран, |
− | '''Android - кнопка Menu''' | + | :'''0''' - в окне. |
− | '''объект''' | + | *'''immersive mode''' ''(immersive)'' - |
− | '''состояние''' | + | *'''activity''' ''(activity)'' - Графический ресурс для индикатора загрузки. Перетаскивается мышкой из редактора ресурсов (поле должно находиться в состоянии редактирования). |
+ | *'''first loading bg''' ''(fl_bg)'' - Графический ресурс для индикатора загрузки. Перетаскивается мышкой из редактора ресурсов (поле должно находиться в состоянии редактирования). | ||
+ | *'''first loading bar''' ''(fl_bar)'' - Графический ресурс для индикатора загрузки. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования). | ||
+ | *'''аниматор загрузки''' - аниматор загрузки динамических ресурсов для flash. Должен иметь состояния ''start'' и ''progress'', а также графический ресурс аниматора ('''он обязательно должен быть статическим!!!'''), который будет рисоваться в месте загружаемого динамического ресурса. | ||
+ | *'''show progress''' ''(progr)'' - 1 - Отображать не только крутилку activity, но и прогрессбар (кастомный или беленький программный). | ||
+ | *'''loading bg''' ''(res_bg)'' - Графический ресурс для индикатора загрузки. Перетаскивается мышкой из редактора ресурсов (поле должно находиться в состоянии редактирования). | ||
+ | *'''loading bar''' ''(res_bar)'' - Графический ресурс для индикатора загрузки. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования). | ||
+ | *'''поле ввода''' ''(edit)'' - Объект типа edit, из которого будет браться имя при добавлении/редактировании профилей (состояние add у опций). | ||
+ | *'''таблица''' ''(table)'' - Объект типа table, в который мы будем складывать все профиля (состояние update у опций). | ||
+ | *'''разрешить рекламу''' ''(ad)'' - Разрешить или нет показ рекламы объектом [[Advertisement]]: | ||
+ | :'''1''' - разрешить, | ||
+ | :'''0''' - запретить | ||
+ | |||
+ | == Добавляемые параметры == | ||
+ | [[Файл:opt.jpg|right]] | ||
+ | Меню выбора ''Добавляемые параметры'' к объектам активируется по нажатию правой кнопки мыши. | ||
+ | |||
+ | |||
+ | [[Файл:+.png]] '''ввод пустого имени''' - При попытке добавить пустое имя состоянием add будет изменено состояние заданного объекта. | ||
+ | *'''объект''' - При попытке добавить пустое имя перевести объект в состояние из следующего поля. | ||
+ | *'''состояние''' - Новое состояние для объекта из предыдущего поля. | ||
+ | |||
+ | |||
+ | [[Файл:+.png]] '''ввод существующего имени''' - Когда будет введено существующее имя, изменить состояние заданного объекта. | ||
+ | *'''объект''' - Когда будет введено существующее имя, перевести объект в состояние из следующего поля. | ||
+ | *'''состояние''' - Новое состояние для объекта из предыдущего поля. | ||
+ | |||
+ | |||
+ | [[Файл:+.png]] '''Android - кнопка Back''' - При нажатии на кнопку перевести объект в новое состояние. | ||
+ | *'''объект''' - При клике на кнопку перевести объект в состояние из следующего поля. | ||
+ | *'''состояние''' - Новое состояние для объекта из предыдущего поля. | ||
+ | |||
+ | |||
+ | [[Файл:+.png]] '''Android - кнопка Menu''' - При нажатии на кнопку перевести объект в новое состояние. | ||
+ | *'''объект''' - При клике на кнопку перевести объект в состояние из следующего поля. | ||
+ | *'''состояние''' - Новое состояние для объекта из предыдущего поля. | ||
+ | |||
+ | |||
+ | [[Файл:+.png]] '''Windows - кнопка ESC''' - При нажатии на кнопку перевести объект в новое состояние. | ||
+ | *'''объект''' - При клике на кнопку перевести объект в состояние из следующего поля. | ||
+ | *'''состояние''' - Новое состояние для объекта из предыдущего поля. | ||
+ | |||
+ | |||
+ | [[Файл:+.png]] '''Обновление с сервера - успех''' - При успешном обновлении опций с сервера перевести объект в новое состояние. | ||
+ | *'''объект''' - Объект, состояние которого меняем. | ||
+ | *'''состояние''' - Новое состояние для объекта из предыдущего поля. | ||
+ | |||
+ | |||
+ | [[Файл:+.png]] '''Обновление с сервера - ошибка''' - При ошибочном обновлении опций с сервера перевести объект в новое состояние. | ||
+ | *'''объект''' - Объект, состояние которого меняем. | ||
+ | *'''состояние''' - Новое состояние для объекта из предыдущего поля. | ||
+ | |||
+ | |||
+ | [[Файл:+.png]] '''Возврат из паузы''' - При возврате из паузы перевести объект в новое состояние. | ||
+ | *'''объект''' - При возврате из паузы перевести объект в состояние из следующего поля. | ||
+ | *'''состояние''' - Новое состояние для объекта из предыдущего поля. | ||
+ | |||
+ | |||
+ | [[Файл:+.png]] '''Переход в полноэкранный режим''' - При переходе в полноэкранный режим перевести объект в новое состояние. | ||
+ | *'''объект''' - При переходе в полноэкранный режим перевести объект в состояние из следующего поля. | ||
+ | *'''состояние''' - Новое состояние для объекта из предыдущего поля. | ||
+ | |||
+ | |||
+ | [[Файл:+.png]] '''Возврат из полноэкранного режима''' - При выходе из полноэкранного режима перевести объект в новое состояние. | ||
+ | *'''объект''' - При выходе из полноэкранного режима перевести объект в состояние из следующего поля. | ||
+ | *'''состояние''' - Новое состояние для объекта из предыдущего поля | ||
+ | |||
+ | |||
+ | [[Файл:+.png]] '''Смена разрешения''' - При смене разрешения перевести объект в новое состояние. | ||
+ | *'''объект''' - При смене разрешения перевести объект в состояние из следующего поля. | ||
+ | *'''состояние''' - Новое состояние для объекта из предыдущего поля | ||
+ | |||
+ | <pre> | ||
+ | При смене разрешения объект переведётся в новое состояние уже после записи новых resh, resw, а не как при возврате из | ||
+ | (переходе в) полноэкранный режим. | ||
+ | </pre> | ||
+ | |||
+ | <pre> | ||
+ | !!! Если в машине, которая вызывается по нажатию на Android-кнопку, есть обращение к опциям, то это обращение нужно писать в другом | ||
+ | состоянии, через команду '''wait''' | ||
+ | </pre> | ||
+ | |||
+ | <pre> | ||
+ | !!! Машину, которая вызывается по нажатию на Android-кнопку, нужно размещать на расшариной сцене, если в ней есть команда '''wait''' | ||
+ | потому, что эта команда работает, если прописана на текущем экране, а не на фоновом (глобальном, не текущем). | ||
+ | </pre> | ||
+ | |||
+ | [[Файл:+.png]] '''одинаковые имена''' - Когда будет введено существующее имя (в поле edit), перевести объект в состояние из следующего поля. | ||
+ | *'''объект''' - Когда будет введено существующее имя, перевести объект в состояние из следующего поля. | ||
+ | *'''состояние''' - Новое состояние для объекта из предыдущего поля | ||
+ | |||
+ | [[Файл:+.png]] '''Необходим пак''' - Когда параметр в опциях совпадет тогда начнем фоновою загрузку нужного нам пака. (Пока только в бете)<br> | ||
+ | *'''поле''' - имя параметра в опциях.<br> | ||
+ | *'''значение''' - значения поля при котором начнем загрузку пака.<br> | ||
+ | *'''пак''' - Номер пака который хотим загрузить.<br> | ||
+ | <pre> | ||
+ | !!! Важно до окончания фоновой загрузки у нас не должны вызываться текстуры с того пака который хотим загрузить | ||
+ | </pre> | ||
+ | |||
+ | == Дополнительные стандартные параметры == | ||
+ | |||
+ | * '''rlang''' - Текущий язык устройства, если не указан принудительно какой-либо язык (параметр ''lang'').'''При каждом запуске вьювера этот параметр будет перебиваться, в зависимости от системной локализации'''. | ||
+ | * '''r_install''' - Дата и время установки в секундах. | ||
+ | * '''r_hours''' - Время прошедшее с момента установки в часах. | ||
+ | * '''r_playtime''' - Время нахождения в игре в минутах. | ||
+ | * '''r_launches''' - Количество запусков игры. | ||
+ | * '''r_days''' - Сколько дней подряд запускалась игра, если пропускается хотя бы день, то сбрасывается. | ||
+ | * '''r_lastlaunch''' - Дата и время последнего запуска в секундах. | ||
+ | * '''downloadErrCode''' - Код ошибки возвращаемый при неудачной загрузке: | ||
+ | :'''1''' - неизвестная ошибка (возможно нет интернета), | ||
+ | :'''2''' - отключён wi-fi, | ||
+ | :'''3''' - недоступна карта памяти, | ||
+ | :'''4''' - недостаточно места на карте памяти для загрузки, | ||
+ | :'''5''' - ошибка при распаковке архива (чаще всего, не хватает места для распаковки архива). | ||
+ | * '''reloadScrID''' - id экрана, на который мы перейдем после перегрузки лейаута. Перегрузка вызывается в команде init в машине состояний. | ||
+ | * '''curScrID''' - id текущего экрана. | ||
+ | * '''prevScrID''' - id предыдущего экрана. | ||
+ | |||
+ | == Состояния == | ||
+ | Объект '''Options''' обладает рядом состояний: | ||
+ | *'''init''' - Инициализация опций. | ||
+ | *'''add''' - Добавить новый профиль из заданного поля ввода и сделать его текущим. | ||
+ | *'''update''' - Заполнить заданную таблицу списком профилей. | ||
+ | *'''change''' - Сменить профиль на выбранный на данный момент в таблице. | ||
+ | *'''delete''' - Удалить выбранный профиль (выбранный в таблице профилей). | ||
+ | *'''generate''' - Генерирует имя профиля по умолчанию при создании нового профиля. | ||
+ | *'''save''' - Сохранение всех параметров в опции. Это состояние вызывается автоматически при переходе между экранами, выгрузки и закрытии приложения. При его вызове приложение физически открывает файл options.xml и записывает туда данные. Частое обращение к этому файлу снизит быстродействие нашего приложения. | ||
+ | *'''edit''' - С текущего поля ввода считывает имя и устанавливает его для текущего профиля. | ||
+ | *'''reset''' - Заменяет файл Options файлом Options_default, то есть сбрасываются все параметры и устанавливаются все параметры по умолчанию | ||
+ | *'''clear_cur_player''' - Удаляет весь текущий прогресс по выбранному профилю, таким образом можно организовать прохождение игры заново для одного и того же профиля. | ||
+ | *'''delete_node''' - Удаляет ''ноду'' в опциях, вычитав ее название из поля ''param''. | ||
+ | *'''readCursor''' - Считать новый ресурс курсора из объекта опций. | ||
+ | *'''updateCursor''' - Обновить курсор над объектом, который под мышкой. | ||
+ | *'''invariantCursor''' - Курсор не изменяется при наведении над объектами с переопределенным курсором. | ||
+ | *'''variableCursor''' - Курсор меняется при наведении над объектами с переопределенным курсором. | ||
+ | *'''disableCursor''' - Курсор отключается полностью. | ||
+ | *'''check_server''' - Запросить обновление опций с сервера. | ||
+ | *'''send_options''' - Отправить опции на сервер. | ||
+ | *'''sendExtCommand''' - Отправить внешнюю команду. | ||
+ | *'''updateVolumes''' - Обновить уровень громкости музыки и звуков. | ||
+ | *'''setGroupMember''' - устанавливаем группе ( id из поля '''groupID'''), единственного члена группы ( id из поля '''groupMemID'''), важно: к группе не должен быть подвязан ни один объект [[Group#Ручное управление группой|Детальнее]]. | ||
+ | *'''checkInternet''' - проверяет подключение к интернету, вызывает обработчики '''internetYES''' при наличии интернета и '''internetNO''' при его отсутствии. | ||
+ | *'''calculateDate''' - вычисляет календарную дату времени (текущее игровое время + добавляет время из поля param (в секундах)), выводит информацию в параметры "dateDay", "dateMonth", "dateYear". | ||
+ | |||
+ | == Испольозвание опций для хранения настроек == | ||
+ | |||
+ | Рассмотрим маленькие примеры, которые часто встречаются в окнах с настройками игры. | ||
+ | |||
+ | [[Файл:Opt 4.jpg|right]] | ||
+ | |||
+ | 1. Отправить письмо <br> | ||
+ | |||
+ | Для объекта типа ''"button"'' следует прописать следующее: | ||
+ | |||
+ | [[Файл:Opt 5.jpg]] | ||
+ | |||
+ | 2. Сменить язык <br> | ||
+ | Организовывается с помощью объектов типа ''"groupbox"'' и ''"checkbox"'':<br> | ||
+ | |||
+ | [[Файл:Opt 6.jpg]] | ||
+ | |||
+ | Благодаря такой конструкции при выборе одного (в данном случае) языка снимается галочка со второго. В самом чекбоксе следует прописать следующее:<br> | ||
+ | |||
+ | [[Файл:Opt 7.jpg]] | ||
+ | |||
+ | Изначально следует проверить язык устройства и установить соответствующий чекбокс:<br> | ||
+ | |||
+ | [[Файл:Opt 8.jpg]] | ||
+ | |||
+ | == Использование Options == | ||
+ | |||
+ | Options могут быть использованы, чтобы записывать переменные и опции игрока, которые будут использоваться между сессиями. | ||
+ | Чтобы записать переменную в Options, нужно сделать set с галочками obj, par и val. | ||
+ | В obj мы заносим наш обьект Options, в par - название переменной, а в val - ее значение. | ||
+ | |||
+ | [[Файл:Setopt.JPG]] | ||
+ | |||
+ | Переменные хранятся в файле options.xml в папке, которая находится по пути C:\Users\agava\AppData\Roaming\Absolutist\(название игры). | ||
+ | Можно записывать переменные через точки - они определяют вложенность переменной в xml-файле. | ||
+ | Например, запись p0.tutorial.tutorial_all будет означать XML-атрибут tutorial_all, который лежит в XML-теге tutorial, который в свою очередь лежит в теге p0. | ||
+ | В файле это выглядит так: | ||
+ | <p0> | ||
+ | <tutorial tutorial_all="1"/> | ||
+ | </p0> | ||
+ | |||
+ | Эту переменную можно в любой момент изменить с помощью команды set, или же вытащить для использования с помощью команды var. Например, чтобы увеличить ее на некоторое значение. | ||
+ | |||
+ | [[Файл:Setopt2.JPG]] | ||
+ | |||
+ | Также в опции пишут свои данные некоторые обьекты, такие как economics, eitems, taskorganizer и другие в виде (название обьекта)(ID в проекте). | ||
+ | Данные, которые они пишут, удобно использовать, например, в счетчиках, или в if-ах для проверки достижения значений. | ||
+ | |||
+ | [[Файл:Setopt3.JPG]] | ||
+ | |||
+ | Здесь можно понять, что счетчик берет свое значение из тега eitems22 (это автополе, создаваемое обьектом eitems c objID=22), из атрибута i10773 (автоматически созданный атрибут, который означает предмет экономики с txtID=10773). | ||
+ | Такой счетчик будет обновлять свое значение каждый раз, когда мы будем передавать ему состояние read/read_anim. | ||
+ | |||
+ | [[Category:Options|*]] | ||
+ | |||
+ | == Внешние команды == | ||
+ | Используются для общения с Flash вьювером в web версиях приложений. Могут приходить из flash или отправляться во флеш. | ||
+ | |||
+ | Реакция на внешнюю команду настраивается через объект options: | ||
+ | |||
+ | [[Файл:Options cmd 1.jpeg]] | ||
+ | |||
+ | |||
+ | Если мы хотим отправить команду, мы указываем её имя и передаём состояние sendExtCommand: | ||
+ | |||
+ | [[Файл:Options cmd 2.jpg]] | ||
+ | |||
+ | |||
+ | Список команд: | ||
+ | |||
+ | * '''cmdShowMenu''' - отправляем, если хотим поднять табы ( по умолчанию табы выключены). | ||
+ | * '''cmdLevel''' - отправляем, при повышении уровня игрока ( в extCommandParam - указываем текущий уровень). | ||
+ | * '''cmdScore''' - отправляем, при при закрытиях окон "после монстра" и "после локации" ( в extCommandParam - указываем текущее значение общих очков - public.EconomicsTotalScore). | ||
+ | * '''cmdFullscreenDisabled''' - команда приходит, если нужно спрятать кнопки перехода фулскрина ( в связи с багами в версии флеша и браузера), приходить один раз за сессию. | ||
+ | * '''cmdFullscreenFailed''' - команда приходит каждый раз, при показе системного окна о том, что мы не можем перейти в полноэкранный режим ( в связи с багами в версии флеша и браузера). | ||
+ | |||
+ | Общие для экономических проектов: | ||
+ | |||
+ | * '''cmdShowGame''' - приходит, если нажали на таб "игра". | ||
+ | * '''cmdShowInvite''' - приходит, если нажали на таб "Друзья". | ||
+ | * '''cmdShowBank''' - приходит, если нажали на таб "Банк". | ||
+ | * '''cmdShowGifts''' - приходит, если нажали на таб "Лидеры". |
Текущая версия на 07:47, 18 июня 2019
Options - объект, который используется для хранения и управления глобальными параметрами приложения. Также Options позволяет хранить и использовать параметры записанные в него другими объектами.
Общие параметры
Смотреть описание Object.
Основные параметры
- язык (lang) - Язык, принудительно используемый приложением.
- url обновлений (surl) - url, по которому ищем обновления опций.
- sound (sound) - Громкость звука:
- 1 - максимальный,
- 0 - отключен.
- music (music)- Громкость музыки:
- 1 - максимальная,
- 0 - отключена.
- voice (voice) - Голос рассказчика:
- 0 - отключен,
- не 0 - включен.
- ambient (ambient) - Громкость окружающих звуков (шелест листьев, шум дождя, пения птиц и т.д.):
- 0 - отключен,
- не 0 - включен.
- курсор (curs) - Графический ресурс курсора по умолчанию для всего проекта.
- page (page) - Номер страницы для книги.
- fullScreen (fullScreen) - Полноэкранный режим, используется в приложениях для PC:
- 1 - на весь экран,
- 0 - в окне.
- immersive mode (immersive) -
- activity (activity) - Графический ресурс для индикатора загрузки. Перетаскивается мышкой из редактора ресурсов (поле должно находиться в состоянии редактирования).
- first loading bg (fl_bg) - Графический ресурс для индикатора загрузки. Перетаскивается мышкой из редактора ресурсов (поле должно находиться в состоянии редактирования).
- first loading bar (fl_bar) - Графический ресурс для индикатора загрузки. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования).
- аниматор загрузки - аниматор загрузки динамических ресурсов для flash. Должен иметь состояния start и progress, а также графический ресурс аниматора (он обязательно должен быть статическим!!!), который будет рисоваться в месте загружаемого динамического ресурса.
- show progress (progr) - 1 - Отображать не только крутилку activity, но и прогрессбар (кастомный или беленький программный).
- loading bg (res_bg) - Графический ресурс для индикатора загрузки. Перетаскивается мышкой из редактора ресурсов (поле должно находиться в состоянии редактирования).
- loading bar (res_bar) - Графический ресурс для индикатора загрузки. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования).
- поле ввода (edit) - Объект типа edit, из которого будет браться имя при добавлении/редактировании профилей (состояние add у опций).
- таблица (table) - Объект типа table, в который мы будем складывать все профиля (состояние update у опций).
- разрешить рекламу (ad) - Разрешить или нет показ рекламы объектом Advertisement:
- 1 - разрешить,
- 0 - запретить
Добавляемые параметры
Меню выбора Добавляемые параметры к объектам активируется по нажатию правой кнопки мыши.
ввод пустого имени - При попытке добавить пустое имя состоянием add будет изменено состояние заданного объекта.
- объект - При попытке добавить пустое имя перевести объект в состояние из следующего поля.
- состояние - Новое состояние для объекта из предыдущего поля.
ввод существующего имени - Когда будет введено существующее имя, изменить состояние заданного объекта.
- объект - Когда будет введено существующее имя, перевести объект в состояние из следующего поля.
- состояние - Новое состояние для объекта из предыдущего поля.
Android - кнопка Back - При нажатии на кнопку перевести объект в новое состояние.
- объект - При клике на кнопку перевести объект в состояние из следующего поля.
- состояние - Новое состояние для объекта из предыдущего поля.
Android - кнопка Menu - При нажатии на кнопку перевести объект в новое состояние.
- объект - При клике на кнопку перевести объект в состояние из следующего поля.
- состояние - Новое состояние для объекта из предыдущего поля.
Windows - кнопка ESC - При нажатии на кнопку перевести объект в новое состояние.
- объект - При клике на кнопку перевести объект в состояние из следующего поля.
- состояние - Новое состояние для объекта из предыдущего поля.
Обновление с сервера - успех - При успешном обновлении опций с сервера перевести объект в новое состояние.
- объект - Объект, состояние которого меняем.
- состояние - Новое состояние для объекта из предыдущего поля.
Обновление с сервера - ошибка - При ошибочном обновлении опций с сервера перевести объект в новое состояние.
- объект - Объект, состояние которого меняем.
- состояние - Новое состояние для объекта из предыдущего поля.
Возврат из паузы - При возврате из паузы перевести объект в новое состояние.
- объект - При возврате из паузы перевести объект в состояние из следующего поля.
- состояние - Новое состояние для объекта из предыдущего поля.
Переход в полноэкранный режим - При переходе в полноэкранный режим перевести объект в новое состояние.
- объект - При переходе в полноэкранный режим перевести объект в состояние из следующего поля.
- состояние - Новое состояние для объекта из предыдущего поля.
Возврат из полноэкранного режима - При выходе из полноэкранного режима перевести объект в новое состояние.
- объект - При выходе из полноэкранного режима перевести объект в состояние из следующего поля.
- состояние - Новое состояние для объекта из предыдущего поля
Смена разрешения - При смене разрешения перевести объект в новое состояние.
- объект - При смене разрешения перевести объект в состояние из следующего поля.
- состояние - Новое состояние для объекта из предыдущего поля
При смене разрешения объект переведётся в новое состояние уже после записи новых resh, resw, а не как при возврате из (переходе в) полноэкранный режим.
!!! Если в машине, которая вызывается по нажатию на Android-кнопку, есть обращение к опциям, то это обращение нужно писать в другом состоянии, через команду '''wait'''
!!! Машину, которая вызывается по нажатию на Android-кнопку, нужно размещать на расшариной сцене, если в ней есть команда '''wait''' потому, что эта команда работает, если прописана на текущем экране, а не на фоновом (глобальном, не текущем).
одинаковые имена - Когда будет введено существующее имя (в поле edit), перевести объект в состояние из следующего поля.
- объект - Когда будет введено существующее имя, перевести объект в состояние из следующего поля.
- состояние - Новое состояние для объекта из предыдущего поля
Необходим пак - Когда параметр в опциях совпадет тогда начнем фоновою загрузку нужного нам пака. (Пока только в бете)
- поле - имя параметра в опциях.
- значение - значения поля при котором начнем загрузку пака.
- пак - Номер пака который хотим загрузить.
!!! Важно до окончания фоновой загрузки у нас не должны вызываться текстуры с того пака который хотим загрузить
Дополнительные стандартные параметры
- rlang - Текущий язык устройства, если не указан принудительно какой-либо язык (параметр lang).При каждом запуске вьювера этот параметр будет перебиваться, в зависимости от системной локализации.
- r_install - Дата и время установки в секундах.
- r_hours - Время прошедшее с момента установки в часах.
- r_playtime - Время нахождения в игре в минутах.
- r_launches - Количество запусков игры.
- r_days - Сколько дней подряд запускалась игра, если пропускается хотя бы день, то сбрасывается.
- r_lastlaunch - Дата и время последнего запуска в секундах.
- downloadErrCode - Код ошибки возвращаемый при неудачной загрузке:
- 1 - неизвестная ошибка (возможно нет интернета),
- 2 - отключён wi-fi,
- 3 - недоступна карта памяти,
- 4 - недостаточно места на карте памяти для загрузки,
- 5 - ошибка при распаковке архива (чаще всего, не хватает места для распаковки архива).
- reloadScrID - id экрана, на который мы перейдем после перегрузки лейаута. Перегрузка вызывается в команде init в машине состояний.
- curScrID - id текущего экрана.
- prevScrID - id предыдущего экрана.
Состояния
Объект Options обладает рядом состояний:
- init - Инициализация опций.
- add - Добавить новый профиль из заданного поля ввода и сделать его текущим.
- update - Заполнить заданную таблицу списком профилей.
- change - Сменить профиль на выбранный на данный момент в таблице.
- delete - Удалить выбранный профиль (выбранный в таблице профилей).
- generate - Генерирует имя профиля по умолчанию при создании нового профиля.
- save - Сохранение всех параметров в опции. Это состояние вызывается автоматически при переходе между экранами, выгрузки и закрытии приложения. При его вызове приложение физически открывает файл options.xml и записывает туда данные. Частое обращение к этому файлу снизит быстродействие нашего приложения.
- edit - С текущего поля ввода считывает имя и устанавливает его для текущего профиля.
- reset - Заменяет файл Options файлом Options_default, то есть сбрасываются все параметры и устанавливаются все параметры по умолчанию
- clear_cur_player - Удаляет весь текущий прогресс по выбранному профилю, таким образом можно организовать прохождение игры заново для одного и того же профиля.
- delete_node - Удаляет ноду в опциях, вычитав ее название из поля param.
- readCursor - Считать новый ресурс курсора из объекта опций.
- updateCursor - Обновить курсор над объектом, который под мышкой.
- invariantCursor - Курсор не изменяется при наведении над объектами с переопределенным курсором.
- variableCursor - Курсор меняется при наведении над объектами с переопределенным курсором.
- disableCursor - Курсор отключается полностью.
- check_server - Запросить обновление опций с сервера.
- send_options - Отправить опции на сервер.
- sendExtCommand - Отправить внешнюю команду.
- updateVolumes - Обновить уровень громкости музыки и звуков.
- setGroupMember - устанавливаем группе ( id из поля groupID), единственного члена группы ( id из поля groupMemID), важно: к группе не должен быть подвязан ни один объект Детальнее.
- checkInternet - проверяет подключение к интернету, вызывает обработчики internetYES при наличии интернета и internetNO при его отсутствии.
- calculateDate - вычисляет календарную дату времени (текущее игровое время + добавляет время из поля param (в секундах)), выводит информацию в параметры "dateDay", "dateMonth", "dateYear".
Испольозвание опций для хранения настроек
Рассмотрим маленькие примеры, которые часто встречаются в окнах с настройками игры.
1. Отправить письмо
Для объекта типа "button" следует прописать следующее:
2. Сменить язык
Организовывается с помощью объектов типа "groupbox" и "checkbox":
Благодаря такой конструкции при выборе одного (в данном случае) языка снимается галочка со второго. В самом чекбоксе следует прописать следующее:
Изначально следует проверить язык устройства и установить соответствующий чекбокс:
Использование Options
Options могут быть использованы, чтобы записывать переменные и опции игрока, которые будут использоваться между сессиями. Чтобы записать переменную в Options, нужно сделать set с галочками obj, par и val. В obj мы заносим наш обьект Options, в par - название переменной, а в val - ее значение.
Переменные хранятся в файле options.xml в папке, которая находится по пути C:\Users\agava\AppData\Roaming\Absolutist\(название игры). Можно записывать переменные через точки - они определяют вложенность переменной в xml-файле. Например, запись p0.tutorial.tutorial_all будет означать XML-атрибут tutorial_all, который лежит в XML-теге tutorial, который в свою очередь лежит в теге p0. В файле это выглядит так:
<p0> <tutorial tutorial_all="1"/> </p0>
Эту переменную можно в любой момент изменить с помощью команды set, или же вытащить для использования с помощью команды var. Например, чтобы увеличить ее на некоторое значение.
Также в опции пишут свои данные некоторые обьекты, такие как economics, eitems, taskorganizer и другие в виде (название обьекта)(ID в проекте). Данные, которые они пишут, удобно использовать, например, в счетчиках, или в if-ах для проверки достижения значений.
Здесь можно понять, что счетчик берет свое значение из тега eitems22 (это автополе, создаваемое обьектом eitems c objID=22), из атрибута i10773 (автоматически созданный атрибут, который означает предмет экономики с txtID=10773). Такой счетчик будет обновлять свое значение каждый раз, когда мы будем передавать ему состояние read/read_anim.
Внешние команды
Используются для общения с Flash вьювером в web версиях приложений. Могут приходить из flash или отправляться во флеш.
Реакция на внешнюю команду настраивается через объект options:
Если мы хотим отправить команду, мы указываем её имя и передаём состояние sendExtCommand:
Список команд:
- cmdShowMenu - отправляем, если хотим поднять табы ( по умолчанию табы выключены).
- cmdLevel - отправляем, при повышении уровня игрока ( в extCommandParam - указываем текущий уровень).
- cmdScore - отправляем, при при закрытиях окон "после монстра" и "после локации" ( в extCommandParam - указываем текущее значение общих очков - public.EconomicsTotalScore).
- cmdFullscreenDisabled - команда приходит, если нужно спрятать кнопки перехода фулскрина ( в связи с багами в версии флеша и браузера), приходить один раз за сессию.
- cmdFullscreenFailed - команда приходит каждый раз, при показе системного окна о том, что мы не можем перейти в полноэкранный режим ( в связи с багами в версии флеша и браузера).
Общие для экономических проектов:
- cmdShowGame - приходит, если нажали на таб "игра".
- cmdShowInvite - приходит, если нажали на таб "Друзья".
- cmdShowBank - приходит, если нажали на таб "Банк".
- cmdShowGifts - приходит, если нажали на таб "Лидеры".