Tool

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск

Объект Tool - "применение" - объект, который можно применить для других игровых объектов.

Описание для чего используется объект Tool

Объект Tool — это игровой объект, который мы можем добавить в инвентарь, извлечь из инвентаря, применять на другие объекты, изменять им состояние, вернуть в инвентарь и удалить из инвентаря. При этом не требуется описание сложных машин, где задавались состояния для инвентаря: add (добавление в инвентарь), extract (извлечение из инвентаря и последующего его использования), return (возвращение в инвентарь), remove (удаление объекта и удаление из инвентаря). Объект Tool существует и имеет область применения в рамках всех существующих (или заданных) экранов.

Например:

Tt.PNG


Общие параметры (см. описание Object)

  • прокликиваемая - Если 1, то кнопка прозрачна для клика мышкой (пропускает объектам под ней). Если 2, то кнопка сама обрабатывает клик, но и пропускает его дальше;
  • память - Если 1, то при повторном открытии экрана объект не обновляет свое состояние (помнит текущие параметры, оставшиеся от предыдущего посещения экрана);
  • курсор - Графический ресурс курсора текущего и всех дочерних объектов.
  • сохранение параметров - Сохранение параметров" regexp="нет=0, только объект=1, объект с подобъектами=2, только подобъекты=3.
  • состояние - Начальное состояние инструмента. Если его нет будет установлено состояние add - по клику добавляться в инвентарь.
Пример подписи при drag

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

Настройки подписи
  • Инвентарь - обязательно в свойствах должен быть указан инвентарь с которым связан объект, а с инвентарем — таблица, в ячейках которой хранятся объекты (см. свойства объекта Inventory)
  • Флаер - Флаер, который тул будет использовать для подсветки при состоянии hint.
  • Машина для полета в инвентарь - Машина для реализации кастомной анимации полета. Должна иметь состояния beg - начать полет, будет вызвано инвентарем и end - полет завершен, будет проверяться инвентарем.
  • Приклеивать - "нет"- не приклеивать (по умолчанию), "если есть move" - приклеивать при клике к мышкой, "всегда" - разрешит ему приклеиваться, даже если отключено получение событий движения мыши при отпущенной кнопке (в app.icf должен быть прописан mouseOver=1).
  • В центр при дропе - Ставить в центр при дропе.
  • Хранить масштаб - Сохранять масштаб при добавлении в инвентарь и восстанавливать после извлечения.
  • Подпись - Текстовый объект, который тул будет отображать при таскании.
  • Текст - Айди текстового ресурса, который будет отображаться при таскании.
  • Время - Время видимости текстового хинта. 0 - хинт не исчезает.

Группа - Положение подписи

  • txt_x - Положение по оси х объекта с подписью. Отсчитывается от точки пивота тула.
  • txt_y - Положение по оси y объекта с подписью. Отсчитывается от точки пивота тула.

Группа - Статистика

  • id_item - ID тула для статистики.
  • событие на add - Имя события на добавления тула в инвентарь.
  • add один раз - Посылать событие добавления предмета только один раз.
  • событие на успешный дроп - Событие на успешный дроп.
  • вкл. выкл. хинта кликом - да/нет - включить/выключить по клику на тул текстовую подпись.

Например: необходимо, чтобы при клике мышкой на объект Tool выводилось текстовое сообщение от этом объекте. Для этого необходимо сначала создать текстовый объект (см. рисунок - txt_ax) и текстовый id в базе ресурсов с текстом, открыть его в параметре "Подпись" (1), перетянуть текстовый id из базы ресурсов в параметр "Текст"(2) и указать время отображения и положение относительно точки пивота объекта Tool.

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

+.png Add - состояние объекта, в котором он по клику на него добавит себя в инвентарь. В этом состоянии можно изменить другой объект:

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

+.png Fail drop - неудачный дроп, т.е. объект Tool применили не к тому объекту. При этом можно можно изменить другой объект:

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

+.pngDrag- если на объект наступили мышкой, и не отпуская его, начали перемещать, то при наличии этой команды, объект "прилипнет" к мышке, и будет за ней таскаться. Параметры команды:

  • x1 - разрешено таскать, когда координата объекта правее;
  • x2 - разрешено таскать, когда координата объекта левее;
  • y1 - разрешено таскать, когда координата объекта ниже;
  • y2 - разрешено таскать, когда координата объекта выше;
  • obj -у какого объекта надо изменить состояние st (следующее поле);
  • st - на какое надо изменить состояние объекта obj (предыдущее поле);
  • за пивот - таскать объект за пивот, 0 - за ту точку, за которую схватили.

+.png Drop - если нажатая кнопка мышки отпускается, вызывается эта команда, используется вместе с командой drop. Параметры команды:

  • obj - объект, на который надо уронить таскаемый;
  • obj2go - объект, который в результате дропа изменит состояние;
  • go — состояние в которое нужно перейти после окончания времени, т.е. новое состояние объекта obj2go;
  • свойство — параметр, который мы изменяем;
  • значение — новое значение параметра;
  • del — если 1 — объект Tool удаляется из инвентаря сразу после применения на объект obj, т.е. при использовании объект сам себе установит состояние remove, если 0 - объект Tool не удаляется из инвентаря после применения на объект obj.
Примечание: Если Tool не удаляется после применения, то он остается лежать поверху объекта, на который был совершен дроп. Если Tool перетащить за пределы объекта, на который был дроп, то при отпускании Tool вернется в инвентарь. Чтобы после применения Tool самостоятельно вернулся в инвентарь, нужно передать объекту Tool состояние return или в поле del указать значение 1. Если в дальнейшем Tool нужно будет удалить, то его необходимо перевести в состояние remove.

Состояния объекта Tool

У объекта Tool есть 6 состояний, которые можно задавать машиной:

  • idle - дефолтное состояние, объект на клики, драг, дроп не реагирует;
  • add - объект лежит, но по клику на него добавит себя в инвентарь;
  • hint - подсветить себя. Если объект находится в таблице - то пролистает таблицу к этому объекту и подсветит его;
  • forced_add - объект добавляет себя в инвентарь (сразу по вызову состояния, безо всяких кликов), при этом срабатывает обработчик add, который может переводить различные объекты в другое состояние.

После любого из этих двух состояний объект переходит в состояние:

  • extract - объект лежит в инвентаре и ждет пока его вытащат;
  • return - объект возвращается в инвентарь, где бы он ни был;
  • remove - объект удаляется из инвентаря навсегда, но при этом остается на сцене.
  • delete - объект удаляется из инвентаря навсегда и при этом становится невидимым.

Пример использования объекта Tool

В данном примере используется объект Топор, который имеет тип Tool, со следующими параметрами.

Tool3.png Tool8.png

По клику на объект (Топор) - в машине ax_clone вызывается состояние off, где объект Tool (ах) переходит в состояние forced_add, т.е. добавляется в инвентарь.

Tool4 1.jpg Tool5.jpg

Если мы вытаскиваем объект из инвентаря (т.е. выполняем Drag) и никуда не применяем (т.е. не выполняем команду Drop), объект автоматически возвращается в инвентарь. Когда объект (Топор) роняем на объект Стул (машина Maska_stul2), то объект Maska_stul2 принимает новое состояние: 1) потащили Топор на Стул; 2) вызвали новое состояние объекта Maska_stul2 (топор стал рубить стул).

Tool6.jpg Tool7 1.jpg