XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > StarCraft (только чтение)> Галактическая академия
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

 
Харгард
Epic
offline
Опыт: 7,829
Активность:
Пользовательские типы данных (User data)
Баловался кто нить с ними?
Можно ли их технично использовать в многоэтажных фреймах, для создания дерева талантов или магазина предметов?
И насколько это удобно?
Старый 10.08.2012, 21:32
H
hello world
offline
Опыт: 130,725
Активность:
Выглядит как садомазо. Магазины создаются итак очень легко, все предметы являются юнитами. Достаточно добавить способность "тренировка", ну и еще пару настроек. Посмотри теже видео от гампа на сайте. Зачем изобретать квадрацикл?)
На счет дерева талантов, то тут хз. Делать по старинки через триггера удобно и практично, хотя вполне возможно что есть более правильный способ через датаедитор.
Старый 11.08.2012, 11:00
Харгард
Epic
offline
Опыт: 7,829
Активность:
"Тренировка" бесполезна, если:
  1. Командная панель нестандартная. Особенно, если в ней всего 3-5 кнопок.
  2. Доступных предметов в карте много.
  3. Нужна мощная информативная панель покупок (как например в AoS)
По сути, у покупке юнитов через покупку лишь один плюс (кроме простоты реализации) - это гибкость работы с требованиями.
Не сказал бы, что если делать все триггерами то все гладко.
Во первых очень легко ошибиться при сопоставлении предмета, описания, иконки и стоимости предмета/таланта, триггера и прочего.
А во вторых - добавление новых/изменение старых превращается в ад.
Старый 11.08.2012, 13:28
Харгард
Epic
offline
Опыт: 7,829
Активность:
Нарыл минигайд смотрится все красиво. Но на практике выходит не все так радужно.
  1. Если в полях String и Text по умолчанию ввести хоть одну русскую букву, то после следующего открытия карты, редактор поругавшись на неверный xml токен, обнулит все значения по умолчанию для этого и всех последующих Instanc'ов.
  2. Указанные по умолчанию Imag'ы ни в какую не хотят показываться в игре.
  3. Поле типа String упорно не желает принимать русские символы -_-
В первых двух случаях помогает лишь ручное заполнение этого User Typ'а при помощи триггерного действия "Mofigy User Data(...)". Но это не столь изящно, как задание всех эти параметров по умолчанию. Хоть и удобней, чем если действовать по старинке.
А во. Достаточно запретить "Modifiable" и значения по умолчанию работают как часы.
Так убивается два зайца: и решаются проблемы с русскими символами, и текст при внесении изменений не нужно будет править в нескольких местах - достаточно отредактировать кнопку.

Отредактировано Харгард, 02.09.2012 в 10:11.
Старый 12.08.2012, 07:37
Харгард
Epic
offline
Опыт: 7,829
Активность:
В общем делать нужно так:
Все данные, не связанные с текстом, вбиваются в дата эдиторе. При этом эти поля не стоить помечать как "Modifiable". Если конечно, их не нужно менять в течении игры. Сюда относятся численные значения, юниты, апгрейды, способности, изображения, модели, звуки и многие другие данные игры.
А вот текстовые данные (названия, описания и тому подобное) лучше заполнять при помощи триггерного действия Modify User Data (text). Для этого поля пользовательского типа должны быть "Modifiable". Тут здорово помогает действие ConvertGameText. Указываем в нем путь, по которому хранится в карте нужная строка, и получаем идентичный текст.
Старый 02.09.2012, 10:11
Karp
Балалайка
offline
Опыт: 16,884
Активность:
Всё можно построить на диалоговых окнах
Старый 02.09.2012, 15:02
Харгард
Epic
offline
Опыт: 7,829
Активность:
Вздыхает
А я по-твоему на чем построил? На оленях или может в редакторе рельефа?
Или ты считаешь что в триггере создающем диалог держать текст, изображения, апгрейды и прочее - это великолепная мысль?
Что созданные таким образом триггеры будут короткими, понятными и свободно читаемыми?
А таланты и предметы в нем могу быть легко и непринужденно изменены, удалены или добавлены?
Даже если предметов/талантов несколько сотен?
Вот например мой триггер, который строит матрицу талантов 3х5 и заполняет все параметры для них на основе заранее созданного и заполненного пользовательского типа данных. Все переменные, кроме пользовательского Talents, локальные.
((код
General - For each integer Index from 1 to 15 with increment 1, do (Actions)
Actions
Variable - Set Instance = (User data instance Index for Talents)
Variable - Set x = (85 * (User Data (Talents, Instance, Col, 1)))
Variable - Set y = (85 * (User Data (Talents, Instance, Tier, 1)))
Dialog - Create a button for dialog TalentsFrame with the dimensions (80, 80)
anchored to Bottom Left with an offset of ((x - 80), (y - 80)) setting the tooltip to (User
Data (Talents, Instance, Tooltip, 1)) with button text and the hover image set to
Variable - Set TalentButton[Index] = (Last created dialog item)
Dialog - Create an image for dialog (Last created dialog) with the dimensions
(80, 80) anchored to Bottom Left with an offset of ((x - 80), (y - 80)) setting the tooltip
to {No Text} using the image (User Data (Talents, Instance, Icon, 1)) as a Normal
type with tiled set to False tint color White and blend mode Normal
Variable - Set TalentImage[Index] = (Last created dialog item)
))
А вот такое действие будет вызвано при нажатии на кнопку таланта
((код
Tech Tree - Set (User Data (Talents, Instance, Upgrade, 1)) upgrade level to 1 for player Player
))
А в твоих триггерах, с аналогичными функциями, сколько будет строк, насколько он будет читаем, насколько он будет редактируемым, и насколько легко будет избежать при этом ошибок?
Старый 02.09.2012, 18:15

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 23:30.