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

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
(Добавляемые параметры)
(Добавляемые параметры)
 
Строка 122: Строка 122:
 
*'''значение''' - значения поля при котором начнем загрузку пака.<br>
 
*'''значение''' - значения поля при котором начнем загрузку пака.<br>
 
*'''пак''' - Номер пака который хотим загрузить.<br>
 
*'''пак''' - Номер пака который хотим загрузить.<br>
 +
<pre>
 +
!!! Важно до окончания фоновой загрузки у нас не должны вызываться текстуры с того пака который хотим загрузить
 +
</pre>
  
 
== Дополнительные стандартные параметры ==
 
== Дополнительные стандартные параметры ==

Текущая версия на 08:47, 18 июня 2019

Options - объект, который используется для хранения и управления глобальными параметрами приложения. Также Options позволяет хранить и использовать параметры записанные в него другими объектами.

Общие параметры

Смотреть описание Object.

Основные параметры

Opt2.jpg
  • язык (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 - запретить

Добавляемые параметры

Opt.jpg

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


+.png ввод пустого имени - При попытке добавить пустое имя состоянием add будет изменено состояние заданного объекта.

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


+.png ввод существующего имени - Когда будет введено существующее имя, изменить состояние заданного объекта.

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


+.png Android - кнопка Back - При нажатии на кнопку перевести объект в новое состояние.

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


+.png Android - кнопка Menu - При нажатии на кнопку перевести объект в новое состояние.

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


+.png Windows - кнопка ESC - При нажатии на кнопку перевести объект в новое состояние.

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


+.png Обновление с сервера - успех - При успешном обновлении опций с сервера перевести объект в новое состояние.

  • объект - Объект, состояние которого меняем.
  • состояние - Новое состояние для объекта из предыдущего поля.


+.png Обновление с сервера - ошибка - При ошибочном обновлении опций с сервера перевести объект в новое состояние.

  • объект - Объект, состояние которого меняем.
  • состояние - Новое состояние для объекта из предыдущего поля.


+.png Возврат из паузы - При возврате из паузы перевести объект в новое состояние.

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


+.png Переход в полноэкранный режим - При переходе в полноэкранный режим перевести объект в новое состояние.

  • объект - При переходе в полноэкранный режим перевести объект в состояние из следующего поля.
  • состояние - Новое состояние для объекта из предыдущего поля.


+.png Возврат из полноэкранного режима - При выходе из полноэкранного режима перевести объект в новое состояние.

  • объект - При выходе из полноэкранного режима перевести объект в состояние из следующего поля.
  • состояние - Новое состояние для объекта из предыдущего поля


+.png Смена разрешения - При смене разрешения перевести объект в новое состояние.

  • объект - При смене разрешения перевести объект в состояние из следующего поля.
  • состояние - Новое состояние для объекта из предыдущего поля
При смене разрешения объект переведётся в новое состояние уже после записи новых resh, resw, а не как при возврате из 
(переходе в) полноэкранный режим.
!!! Если в машине, которая вызывается по нажатию на Android-кнопку, есть обращение к опциям, то это обращение нужно писать в другом
состоянии, через команду '''wait'''
!!! Машину, которая вызывается по нажатию на Android-кнопку, нужно размещать на расшариной сцене, если в ней есть команда '''wait'''
потому, что эта команда работает, если прописана на текущем экране, а не на фоновом (глобальном, не текущем).

+.png одинаковые имена - Когда будет введено существующее имя (в поле edit), перевести объект в состояние из следующего поля.

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

+.png Необходим пак - Когда параметр в опциях совпадет тогда начнем фоновою загрузку нужного нам пака. (Пока только в бете)

  • поле - имя параметра в опциях.
  • значение - значения поля при котором начнем загрузку пака.
  • пак - Номер пака который хотим загрузить.
!!! Важно до окончания фоновой загрузки у нас не должны вызываться текстуры с того пака который хотим загрузить

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

  • 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".

Испольозвание опций для хранения настроек

Рассмотрим маленькие примеры, которые часто встречаются в окнах с настройками игры.

Opt 4.jpg

1. Отправить письмо

Для объекта типа "button" следует прописать следующее:

Opt 5.jpg

2. Сменить язык
Организовывается с помощью объектов типа "groupbox" и "checkbox":

Opt 6.jpg

Благодаря такой конструкции при выборе одного (в данном случае) языка снимается галочка со второго. В самом чекбоксе следует прописать следующее:

Opt 7.jpg

Изначально следует проверить язык устройства и установить соответствующий чекбокс:

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.

Внешние команды

Используются для общения с 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 - приходит, если нажали на таб "Лидеры".