Харгард
Epic
offline
Опыт:
7,829Активность: |
Пользовательские типы данных (User data)
Баловался кто нить с ними? Можно ли их технично использовать в многоэтажных фреймах, для создания дерева талантов или магазина предметов? И насколько это удобно? |
10.08.2012, 21:32 | #1
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
H
hello world
offline
Опыт:
130,725Активность: |
Выглядит как садомазо. Магазины создаются итак очень легко, все предметы являются юнитами. Достаточно добавить способность "тренировка", ну и еще пару настроек. Посмотри теже видео от гампа на сайте. Зачем изобретать квадрацикл?)
На счет дерева талантов, то тут хз. Делать по старинки через триггера удобно и практично, хотя вполне возможно что есть более правильный способ через датаедитор. |
11.08.2012, 11:00 | #2
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Харгард
Epic
offline
Опыт:
7,829Активность: |
"Тренировка" бесполезна, если:
По сути, у покупке юнитов через покупку лишь один плюс (кроме простоты реализации) - это гибкость работы с требованиями.
Не сказал бы, что если делать все триггерами то все гладко. Во первых очень легко ошибиться при сопоставлении предмета, описания, иконки и стоимости предмета/таланта, триггера и прочего. А во вторых - добавление новых/изменение старых превращается в ад. |
11.08.2012, 13:28 | #3
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Харгард
Epic
offline
Опыт:
7,829Активность: |
Нарыл минигайд смотрится все красиво. Но на практике выходит не все так радужно.
В первых двух случаях помогает лишь ручное заполнение этого User Typ'а при помощи триггерного действия "Mofigy User Data(...)". Но это не столь изящно, как задание всех эти параметров по умолчанию. Хоть и удобней, чем если действовать по старинке.
А во. Достаточно запретить "Modifiable" и значения по умолчанию работают как часы.
Так убивается два зайца: и решаются проблемы с русскими символами, и текст при внесении изменений не нужно будет править в нескольких местах - достаточно отредактировать кнопку. Отредактировано Харгард, 02.09.2012 в 10:11. |
12.08.2012, 07:37 | #4
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Харгард
Epic
offline
Опыт:
7,829Активность: |
В общем делать нужно так:
Все данные, не связанные с текстом, вбиваются в дата эдиторе. При этом эти поля не стоить помечать как "Modifiable". Если конечно, их не нужно менять в течении игры. Сюда относятся численные значения, юниты, апгрейды, способности, изображения, модели, звуки и многие другие данные игры.
А вот текстовые данные (названия, описания и тому подобное) лучше заполнять при помощи триггерного действия Modify User Data (text). Для этого поля пользовательского типа должны быть "Modifiable". Тут здорово помогает действие ConvertGameText. Указываем в нем путь, по которому хранится в карте нужная строка, и получаем идентичный текст. |
02.09.2012, 10:11 | #5
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Karp
Балалайка
offline
Опыт:
16,884Активность: |
Всё можно построить на диалоговых окнах |
02.09.2012, 15:02 | #6
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Харгард
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 | #7
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|