Сейчас 17:31:55 Четверг, 17 июля, 2014 год
Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я

Меню сайта

Категории

Наш опрос
Какой тип карт вам нравится больше всего?
Проголосовало: 140781

Сейчас на сайте
На сайте всего: 31
Гостей: 27
Пользователей: 4

Реклама

Главная » Статьи по WarCraft 3 » Создание карт » Триггеры
[СТАТЬЯ] Снихронизация Данных

Приветствую тебя, мой читатель.

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




Итак, самый простой способ решить все вышеперечисленные проблемы, как понятно из названия темы, создание синхронизации данных, проще говоря - базы данных.

К любому объекту можно привязать неограниченное количество данных, но мы, в нашем примере, ограничимся синхронизацией двух показателей, типа юнита и строки к иконке.




Итак, как сказанно в предисловии - синхронизировать мы будем иконки по типу юнита.

Создаем в редакторе переменных следующие строки.

DB_Heroes[array] - Переменная по типу "тип объекта" с пометкой "массив"
DB_HeroesIcons[array] - Переменная по типу "строка" с пометкой "массив"

далее, в триггер, можно при инициализации карты, можно в отдельный триггер на прошествие времени - инициализировать базу данных следующим образом.

К примеру, у нас будет всего четыре героя, а именно: Lich, Tauren Chieftan, Paladin, Demon Hunter

В триггер добавляем следующие строки.

set DB_Heroes[1] = Lich
set DB_Heroes[2] = Tauren Chieftan
set DB_Heroes[3] = Paladin
set DB_Heroes[4] = Demon Hunter

Для удобства ставим пустую коммент строку.
set DB_HeroesIcons[1] = ReplaceableTextures\CommandButtons\BTNLichVersion2.blp
set DB_HeroesIcons[2] = ReplaceableTextures\CommandButtons\BTNHeroTaurenChieftain.blp
set DB_HeroesIcons[3] = ReplaceableTextures\CommandButtons\BTNHeroPaladin.blp
set DB_HeroesIcons[4] = ReplaceableTextures\CommandButtons\BTNHeroDemonHunter.blp

Принципиально важно лишь то, что числа массива должны совпадать, это и служит синхронизацией данных.

Теперь, допустим, можно развить тему и, например, добавить в ники игроков имена нужных героев, но не те, что есть по умолчанию (ссылка "Hero Name") а, сокращенные варианты или, допусим, раскрашенные.
Потребуется еще одна переменная

DB_HeroesNames[array] -переменная по типу "Строка", с пометкой "массив".

Раздаем значения:


set DB_HeroesNames[1] = Леденец
set DB_HeroesNames[2] = Рогатый
set DB_HeroesNames[3] = Cвятоша
set DB_HeroesNames[4] = Илидашко


В таком случае мы синхронизируем все иконки и запишем основной аттрибут каждого героя.


Теперь о работе с базами данных.
В основном это делается с помощью циклов
(For loop integer DB from 1 to HeroDatabaseSize) где HeroDatabaseSize целочисленная переменная, ссылается на максимальный размер базы героев, для нейтральных крипов - отдельное значение, для предемтов - отдельное и так далее.
DB - так же, целочисленная переменная.

На примере с иконками героев и добавлением их в мультибоард:[/color][/b]

Generic unit продает боевую единицу

Boolean Comparison: Sold unit is Герой = да.

Actions:

For Each Integer DB from 1 to HeroesDatabaseSize do actions:
if\then\else:
Unit-type of sold unit = DB_Heroes[DB]
then:
Меню Паузы: установить значение для строки (нужная строка) в столбце (нужный столбец) = DB_HeroesIcons[DB]

Теперь, в этом же триггере - добавим к имени игрока - зарезервированное "условное" имя героя следующей строкой:

Игрок: Установить имя игрока: (имя игрока) + DB_HeroesNames[DB]

К одному объекту можно привязать хоть две сотни разнообразных значений.
Например что бы зарезервировать награду за всех нейтралов к каждому базе нейтралов добавляется по 2 переменных, из рандомного значения между которыми и будет выдаваться награда.


Благодарю за внимание, читатель. До скорых встреч.

Просмотров: 1287 Добавил: FkoFF Добавлено: 01 Июль 2010 в 00:24:50
Комментариев: 4 |

Всего комментариев: 4
26 Апрель 2013 Спам
4. Николай (VampirismNewGen)
Мне кажется, уместней было бы назвать статью "Параллельные массивы".
Синхронизация данных - это совсем другое.

14 Сентябрь 2011 Спам
3. Артём (Artem3123)
леденец, рогатый, святоша, илидашко - ухаха :D

05 Май 2011 Спам
2. Владимир (Keeper_of_the_Life)
Хорошо

09 Январь 2011 Спам
1. Антон (Kartoha)
Хорошая статья.

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Форма входа
Логин:
Пароль:

Поиск

Случайная картинка

Случайный файл
[13 Декабрь 2012]
[Карты · RPG]
History One Hero -
Перед вами карта "История Одного Героя.Жанр РПГ.В этой истории вы узнаете о человеке который изменил свою жизнь.Подробности внутри.

Новые карты

5 лучших по кол-ву добавленных статей
[ Duosora ] [ 58 ]
[ Messenger ] [ 52 ]
[ Bru ] [ 39 ]
[ Pand@ ] [ 35 ]
[ OrcRider ] [ 27 ]

Наша кнопка
Warcraft3FT.info - Всё для Warcraft 3 и DotA

Другие варианты

Статистика

Материалы:
Новости: 1022
Файлы: 8309
Статьи: 763
Картинки: 8210
Форум: 29850/972168
Комментарии: 58229
Copyright © 2006 - 2014 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©