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

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
(Основные параметры)
(Добавляемые параметры)
 
(не показано 35 промежуточных версии 12 участников)
Строка 1: Строка 1:
'''Options''' - тип объекта, который используется для хранения и управления глобальными параметрами приложения. Так же '''Options''' позволяет хранить и использовать параметры записанные в него другими объектами.
+
{{TOC right}}
 +
'''Options''' - [[Object|объект]], который используется для хранения и управления глобальными параметрами приложения. Также '''Options''' позволяет хранить и использовать параметры записанные в него другими объектами.
  
 
== Общие параметры ==
 
== Общие параметры ==
Строка 6: Строка 7:
 
== Основные параметры ==
 
== Основные параметры ==
 
[[Файл:opt2.jpg|right]]
 
[[Файл:opt2.jpg|right]]
*'''язык''' - Язык, принудительно используемый приложением
+
*'''язык''' ''(lang)'' - Язык, принудительно используемый приложением.
*'''url обновлений''' - url по которому ищем обновления опций
+
*'''url обновлений''' ''(surl)'' - url, по которому ищем обновления опций.
*'''sound''' - Громкость звука 1 - максимальный; 0 - отключен.
+
*'''sound''' ''(sound)'' - Громкость звука:
*'''music''' - Громкость музыки 1 - максимальная; 0 - отключена.
+
:'''1''' - максимальный,
*'''voice''' - Голос рассказчика 0 - отключен; не 0 - включен.
+
:'''0''' - отключен.
*'''курсор'' - Графический ресурс курсора по умолчанию для всего проэкта
+
*'''music''' ''(music)''- Громкость музыки:
*'''page''' - Номер страницы для книги.
+
:'''1''' - максимальная,
*'''fullScreen''' - Полноэкранный режим, используется в приложениях для PC: 1 - на весь экран, 0 - в окне.
+
:'''0''' - отключена.
*'''activity''' - Графический ресурс для индикатора загрузки. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования).
+
*'''voice''' ''(voice)'' - Голос рассказчика:
*'''first loading bg''' - Графический ресурс для индикатора загрузки. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования).
+
:'''0''' - отключен,
*'''first loading bar''' - Графический ресурс для индикатора загрузки. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования).
+
:'''не 0''' - включен.
*'''show progress''' - 1 - Отображать не только крутилку activity, но и прогрессбар (кастомный или беленький програмный).
+
*'''ambient''' ''(ambient)'' - Громкость окружающих звуков (шелест листьев, шум дождя, пения птиц и т.д.):
*'''loading bg''' - Графический ресурс для индикатора загрузки. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования).
+
:'''0''' - отключен,
*'''loading bar''' - Графический ресурс для индикатора загрузки. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования).
+
:'''не 0''' - включен.
*'''поле ввода''' - Объект, типа edit из которого будет браться имя при добавлении/редактировании профилей (состояние add у опций).
+
*'''курсор''' ''(curs)'' - Графический ресурс курсора по умолчанию для всего проекта.
*'''таблица''' - Объект, типа table в который мы будем складывать все профиля (состояние update у опций).
+
*'''page''' ''(page)'' - Номер страницы для книги.
*'''разрешить рекламу''' (''ad'') - разрешить или нет показ рекламы объектом [[Advertisement]]. 1 - разрешить, 0 - запретить
+
*'''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''' - запретить
  
 
== Добавляемые параметры ==
 
== Добавляемые параметры ==
Строка 32: Строка 48:
 
*'''объект''' - При попытке добавить пустое имя перевести объект в состояние из следующего поля.
 
*'''объект''' - При попытке добавить пустое имя перевести объект в состояние из следующего поля.
 
*'''состояние''' - Новое состояние для объекта из предыдущего поля.
 
*'''состояние''' - Новое состояние для объекта из предыдущего поля.
 +
 +
 +
[[Файл:+.png]] '''ввод существующего имени''' - Когда будет введено существующее имя, изменить состояние заданного объекта.
 +
*'''объект''' - Когда будет введено существующее имя, перевести объект в состояние из следующего поля.
 +
*'''состояние''' - Новое состояние для объекта из предыдущего поля.
 +
  
 
[[Файл:+.png]] '''Android - кнопка Back''' - При нажатии на кнопку перевести объект в новое состояние.
 
[[Файл:+.png]] '''Android - кнопка Back''' - При нажатии на кнопку перевести объект в новое состояние.
 
*'''объект''' - При клике на кнопку перевести объект в состояние из следующего поля.
 
*'''объект''' - При клике на кнопку перевести объект в состояние из следующего поля.
 
*'''состояние''' - Новое состояние для объекта из предыдущего поля.
 
*'''состояние''' - Новое состояние для объекта из предыдущего поля.
 +
  
 
[[Файл:+.png]] '''Android - кнопка Menu''' - При нажатии на кнопку перевести объект в новое состояние.
 
[[Файл:+.png]] '''Android - кнопка Menu''' - При нажатии на кнопку перевести объект в новое состояние.
 
*'''объект''' - При клике на кнопку перевести объект в состояние из следующего поля.
 
*'''объект''' - При клике на кнопку перевести объект в состояние из следующего поля.
 
*'''состояние''' - Новое состояние для объекта из предыдущего поля.
 
*'''состояние''' - Новое состояние для объекта из предыдущего поля.
 +
  
 
[[Файл:+.png]] '''Windows - кнопка ESC''' - При нажатии на кнопку перевести объект в новое состояние.
 
[[Файл:+.png]] '''Windows - кнопка ESC''' - При нажатии на кнопку перевести объект в новое состояние.
 
*'''объект''' - При клике на кнопку перевести объект в состояние из следующего поля.
 
*'''объект''' - При клике на кнопку перевести объект в состояние из следующего поля.
 
*'''состояние''' - Новое состояние для объекта из предыдущего поля.
 
*'''состояние''' - Новое состояние для объекта из предыдущего поля.
 +
  
 
[[Файл:+.png]] '''Обновление с сервера - успех''' - При успешном обновлении опций с сервера перевести объект в новое состояние.
 
[[Файл:+.png]] '''Обновление с сервера - успех''' - При успешном обновлении опций с сервера перевести объект в новое состояние.
*'''объект''' - объект  - состояние которого меняем.
+
*'''объект''' - Объект, состояние которого меняем.
 
*'''состояние''' - Новое состояние для объекта из предыдущего поля.
 
*'''состояние''' - Новое состояние для объекта из предыдущего поля.
 +
  
 
[[Файл:+.png]] '''Обновление с сервера - ошибка''' - При ошибочном обновлении опций с сервера перевести объект в новое состояние.
 
[[Файл:+.png]] '''Обновление с сервера - ошибка''' - При ошибочном обновлении опций с сервера перевести объект в новое состояние.
*'''объект''' - объект  - состояние которого меняем.
+
*'''объект''' - Объект, состояние которого меняем.
 
*'''состояние''' - Новое состояние для объекта из предыдущего поля.
 
*'''состояние''' - Новое состояние для объекта из предыдущего поля.
 +
 +
 +
[[Файл:+.png]] '''Возврат из паузы''' - При возврате из паузы перевести объект в новое состояние.
 +
*'''объект''' - При возврате из паузы перевести объект в состояние из следующего поля.
 +
*'''состояние''' - Новое состояние для объекта из предыдущего поля.
 +
 +
 +
[[Файл:+.png]] '''Переход в полноэкранный режим''' - При переходе в полноэкранный режим перевести объект в новое состояние.
 +
*'''объект''' - При переходе в полноэкранный режим перевести объект в состояние из следующего поля.
 +
*'''состояние''' - Новое состояние для объекта из предыдущего поля.
 +
 +
 +
[[Файл:+.png]] '''Возврат из полноэкранного режима''' - При выходе из полноэкранного режима перевести объект в новое состояние.
 +
*'''объект''' - При выходе из полноэкранного режима перевести объект в состояние из следующего поля.
 +
*'''состояние''' - Новое состояние для объекта из предыдущего поля
 +
 +
 +
[[Файл:+.png]] '''Смена разрешения''' - При смене разрешения перевести объект в новое состояние.
 +
*'''объект''' - При смене разрешения перевести объект в состояние из следующего поля.
 +
*'''состояние''' - Новое состояние для объекта из предыдущего поля
 +
 +
<pre>
 +
При смене разрешения объект переведётся в новое состояние уже после записи новых resh, resw, а не как при возврате из
 +
(переходе в) полноэкранный режим.
 +
</pre>
 +
 
<pre>
 
<pre>
 
!!! Если в машине, которая вызывается по нажатию на Android-кнопку, есть обращение к опциям, то это обращение нужно писать в другом
 
!!! Если в машине, которая вызывается по нажатию на Android-кнопку, есть обращение к опциям, то это обращение нужно писать в другом
 
состоянии, через команду '''wait'''
 
состоянии, через команду '''wait'''
 
</pre>
 
</pre>
 +
 
<pre>
 
<pre>
 
!!! Машину, которая вызывается по нажатию на Android-кнопку, нужно размещать на расшариной сцене, если в ней есть команда '''wait'''
 
!!! Машину, которая вызывается по нажатию на Android-кнопку, нужно размещать на расшариной сцене, если в ней есть команда '''wait'''
 
потому, что эта команда работает, если прописана на текущем экране, а не на фоновом (глобальном, не текущем).
 
потому, что эта команда работает, если прописана на текущем экране, а не на фоновом (глобальном, не текущем).
 +
</pre>
 +
 +
[[Файл:+.png]] '''одинаковые имена''' - Когда будет введено существующее имя (в поле edit), перевести объект в состояние из следующего поля.
 +
*'''объект''' - Когда будет введено существующее имя, перевести объект в состояние из следующего поля.
 +
*'''состояние''' - Новое состояние для объекта из предыдущего поля
 +
 +
[[Файл:+.png]] '''Необходим пак''' - Когда параметр в опциях совпадет тогда начнем фоновою загрузку нужного нам пака. (Пока только в бете)<br>
 +
*'''поле''' - имя параметра в опциях.<br>
 +
*'''значение''' - значения поля при котором начнем загрузку пака.<br>
 +
*'''пак''' - Номер пака который хотим загрузить.<br>
 +
<pre>
 +
!!! Важно до окончания фоновой загрузки у нас не должны вызываться текстуры с того пака который хотим загрузить
 
</pre>
 
</pre>
  
 
== Дополнительные стандартные параметры ==
 
== Дополнительные стандартные параметры ==
  
* '''rlang''' - Текущий язык устройства, если не указан принудительно какой либо язык(параметр ''lang'')
+
* '''rlang''' - Текущий язык устройства, если не указан принудительно какой-либо язык (параметр ''lang'').'''При каждом запуске вьювера этот параметр будет перебиваться, в зависимости от системной локализации'''.
 
* '''r_install''' - Дата и время установки в секундах.
 
* '''r_install''' - Дата и время установки в секундах.
 
* '''r_hours''' - Время прошедшее с момента установки в часах.
 
* '''r_hours''' - Время прошедшее с момента установки в часах.
Строка 70: Строка 135:
 
* '''r_days''' - Сколько дней подряд запускалась игра, если пропускается хотя бы день, то сбрасывается.  
 
* '''r_days''' - Сколько дней подряд запускалась игра, если пропускается хотя бы день, то сбрасывается.  
 
* '''r_lastlaunch''' - Дата и время последнего запуска в секундах.
 
* '''r_lastlaunch''' - Дата и время последнего запуска в секундах.
* '''downloadErrCode''' - Код ошибки возвращаемый при неудачной загрузке. 1 - неизвестная ошибка, возможно нет интернета. 2 - отключён wi-fi. 3 - недоступна карта памяти. 4 - недостаточно места на карте памяти для загрузки. 5 - ошибка при распаковке архива, чаще всего - не хватает места для распаковки архива.
+
* '''downloadErrCode''' - Код ошибки возвращаемый при неудачной загрузке:
* '''reloadScrID''' - id экрана на который мы перейдем после перегрузки лейаута. Перегрузка вызывается в команде init в машине состояний.
+
:'''1''' - неизвестная ошибка (возможно нет интернета),
* '''curScrID''' - id текущего экрана экрана
+
:'''2''' - отключён wi-fi,
* '''prevScrID''' -id предыдущего экрана экрана
+
:'''3''' - недоступна карта памяти,
 +
:'''4''' - недостаточно места на карте памяти для загрузки,
 +
:'''5''' - ошибка при распаковке архива (чаще всего, не хватает места для распаковки архива).
 +
* '''reloadScrID''' - id экрана, на который мы перейдем после перегрузки лейаута. Перегрузка вызывается в команде init в машине состояний.
 +
* '''curScrID''' - id текущего экрана.
 +
* '''prevScrID''' - id предыдущего экрана.
  
 
== Состояния ==
 
== Состояния ==
 
Объект '''Options''' обладает рядом состояний:
 
Объект '''Options''' обладает рядом состояний:
 
*'''init''' - Инициализация опций.
 
*'''init''' - Инициализация опций.
*'''add''' - Добавить новый профиль из заданного поля ввода, и сделать его текущим.
+
*'''add''' - Добавить новый профиль из заданного поля ввода и сделать его текущим.
 
*'''update''' - Заполнить заданную таблицу списком профилей.
 
*'''update''' - Заполнить заданную таблицу списком профилей.
 
*'''change''' - Сменить профиль на выбранный на данный момент в таблице.
 
*'''change''' - Сменить профиль на выбранный на данный момент в таблице.
*'''delete''' - Удалить выбранный профиль.
+
*'''delete''' - Удалить выбранный профиль (выбранный в таблице профилей).
 
*'''generate''' - Генерирует имя профиля по умолчанию при создании нового профиля.
 
*'''generate''' - Генерирует имя профиля по умолчанию при создании нового профиля.
 
*'''save''' - Сохранение всех параметров в опции. Это состояние вызывается автоматически при переходе между экранами, выгрузки и закрытии приложения. При его вызове приложение физически открывает файл options.xml и записывает туда данные. Частое обращение к этому файлу снизит быстродействие нашего приложения.
 
*'''save''' - Сохранение всех параметров в опции. Это состояние вызывается автоматически при переходе между экранами, выгрузки и закрытии приложения. При его вызове приложение физически открывает файл options.xml и записывает туда данные. Частое обращение к этому файлу снизит быстродействие нашего приложения.
Строка 88: Строка 158:
 
*'''clear_cur_player''' - Удаляет весь текущий прогресс по выбранному профилю, таким образом можно организовать прохождение игры заново для одного и того же профиля.
 
*'''clear_cur_player''' - Удаляет весь текущий прогресс по выбранному профилю, таким образом можно организовать прохождение игры заново для одного и того же профиля.
 
*'''delete_node''' - Удаляет ''ноду'' в опциях, вычитав ее название из поля ''param''.
 
*'''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''' - приходит, если нажали на таб "Лидеры".

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