Сейчас 16:02:05 Пятница, 22 ноября, 2024 год
Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я

Меню сайта

Категории

Наш опрос
Ваша любимая раса?
Проголосовало: 177949

Сейчас на сайте
На сайте всего: 247
Гостей: 247
Пользователей: 0

Реклама

Главная » Статьи по 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 переменных, из рандомного значения между которыми и будет выдаваться награда.


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

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

Всего комментариев: 5
07 Ноября 2014
Лучше бы было с скриноми.

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

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

05 Мая 2011
2. Владимир (Keeper_of_the_Life) [Материал]
Хорошо

09 Января 2011
1. Антон (Kartoha) [Материал]
Хорошая статья.

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

Форма входа

Поиск

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

Случайный файл
[01 Июня 2008]
[Карты · Другое]
Апостол -
Ты играешь за апостола огня, тебе надо уничтожить всех эльфов.

Новые карты
[07 Февраля 2016]
Переезжаем на другой сайт, господа![Dota]
[18 Октября 2015]
Duel of Gods PreV[Другое]
[18 Октября 2015]
Hero of The Empire v1.18g[RPG]
[17 Октября 2015]
Servant War v1.05[Другое]
[17 Октября 2015]
Age of Vikings Edited v1.6[Другое]
[17 Октября 2015]
Strife of the Champions Beta v1.2[Arena]
[17 Октября 2015]
VirusBoll (rus)[Другое]
[17 Октября 2015]
Exterminators v1[AoS]
[17 Октября 2015]
The Lord Heroes v1.2[Другое]
[17 Октября 2015]
Versus heroe Arena 1.0 AI[Arena]

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

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

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

Статистика

Материалы:
Новости: 1010
Файлы: 8668
Статьи: 680
Картинки: 8256
Форум: 30520/954989
Комментарии: 58094
Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz