Уроки по триггерам - Форум


Правила форума ·

  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Уроки по триггерам

Alex-elf

#1
Здесь я буду обьяснять триггеры,давать задания,проверять и указывать на ошибки.
Участвовать могут все желающие.

[marquee]Век живи,век учись! [/marquee]
Скромные люди живут тихо и стреляют из пистолета с глушителем.
Война Эльфов(AoS)
Лига героев(тренировочный лагерь)
Одинокий орк(Ролик)

Alex-elf

#2
УРОК 1
Начнем с простой функции Pick every unit.Эта функция позволяет выбрать и выполнить действие сразу с несколькими воинами(Отрядом),но хочу заметить что эта функция не применима к воинам со способностью "москиты".При выборе этой функции требуеться выбрать отряд над которым будет производиться действие.
(Last created unit group) - используеться для выбора последней созданой группы с помощью триггеров.
(Random 4 units from (Units in (Playable map area)))- используеться для выбора определеного числа воинов в области,группе,типа и т.д.(Когда требуеться поделить отряд,наложить случайно заклинание и т.д.)
(Units in (Playable map area))- используеться для выбора всех воинов в определённой области.
(Units in (Playable map area) owned by Игрок 1 (Красный)) - используеться для выбора всех воинов одного игрока в определённой области.
(Units in (Playable map area) matching (Condition) - используеться для более точного(конкретного) выбора воинов в определённой области.При использовании условий обязательно надо указывать не Triggering Unit, а Matching Unit.
(Units within 512.00 of (Center of (Playable map area))) - используеться для выбора всех воинов в радиусе от точки(По кругу).
(Units within 512.00 of (Center of (Playable map area))) matching (Condition) - используеться для более точного(конкретного) выбора воинов в радиусе от точки(По кругу).При использовании условий обязательно надо указывать не Triggering Unit, а Matching Unit.
(Units owned by Игрок 1 (Красный))- используеться для выбора всех воинов одного игрока по всей карте.
(Units owned by Игрок 1 (Красный) of type Воин) - используеться для выбора воинов определённого типа одного игрока по всей карте.
(Units owned by Игрок 1 (Красный) matching (Condition) - используеться для более точного(конкретного) выбора воинов одного игрока по всей карте.При использовании условий обязательно надо указывать не Triggering Unit, а Matching Unit
(Units of type Воин) - используеться для выбора воинов определённого типа по всей карте
(Units currently selected by Игрок 1 (Красный))- используеться для выбора воинов которые в даный момент выбраны определёным игроком.
Задание:Сделать карту с 9 областями например так и в одной области поставить по 2-3 воина каждого вида наземных войск Альянса(Без героев только воины)
Используя только функцию Pick every unit (События на ваше усмотрение(например chat message))
№1.Разделите всех воинов по типу в каждую область
№2.Сделайте чтобы в каждой области небыло 2 одинаковых воина
Прикрепления: 1519053.jpg (2.5 Kb)
Скромные люди живут тихо и стреляют из пистолета с глушителем.
Война Эльфов(AoS)
Лига героев(тренировочный лагерь)
Одинокий орк(Ролик)

Alex-elf

#3
УРОК 2
Каждый кто хочет сделать компанию должен уметь пользоваться буфером игры.Функции управляющие буфером игры позволяют сохранять данные и использовать их в другой карте или в этойже карте в нужный для нас момент.
Create a game cache from Карта1.w3х- используеться для создания нового буфера игры(куда все данные будут сохроняться).
Save (Last created game cache) - используеться для сохранения внесеных данных в буфер игры.
Store (Воин) as (Название файла для сохранения) of (Название категории для сохранения) in (Last created game cache) - используеться для сохранения воина со всеми параметрами(Опыт,предметы,магии и т.д.).
Store (Реальное число) as (Название файла для сохранения) of (Название категории для сохранения) in (Last created game cache) - используеться для сохранения реальных числовых параметров(Здоровье,мана и т.д).
Store (Целое число) as (Название файла для сохранения) of (Название категории для сохранения) in (Last created game cache) - используеться для сохранения целых числовых параметров(Уровень,золото,дерево и т.д.).
Store (Условия(Да,Нет)) as (Название файла для сохранения) of (Название категории для сохранения) in (Last created game cache) - используеться для сохранения определеного условия(Фора,союз,владение чем-то и т.д.).
Store (Строка) as (Название файла для сохранения) of (Название категории для сохранения) in (Last created game cache) - используеться для сохранения тестовых параметров(Имя воина,введеная строка и т.д.).
Restore (Название файла в которой был сохранен воин) of (Название категории в которой был сохранен воин) from (Last created game cache) for Игрок 1 (красный) at (Center of (Playable map area)) facing 0.00- используеться для загрузки ранее сохраненого воина для определенного игрока в определенной области повернутым на определенный градус.
Store (Строка) as (Название файла для сохранения) of (Название категории для сохранения) in (Last created game cache) - используеться для сохранения тестовых параметров(Имя воина,введеная строка и т.д.).
Restore (Название файла в которой был сохранен воин) of (Название категории в которой был сохранен воин) from (Last created game cache) for Игрок 1 (красный) at (Center of (Playable map area)) facing (Position of (Triggering unit))- используеться для загрузки ранее сохраненого воина для определенного игрока в определенной области повернутым лицом к определенной точке.
Reload all game cache data from disk- используеться для перезагрузки всех буферов игры на диске.
Clear (Last created game cache) - используеться для очистки всего буфера игры.
Clear all labels of Category in (Last created game cache) - используеться для очистки определеной категории буфера игры.
Важно:
Для того чтобы использовать данные в другой карте необходимо в Карте1 создать новый буфер игры(с названием самой карты(Карта1.w3х)),с помощью функций Store сохраняем все что нам необходимо,затем сохраняем сам буфер Save.В Карте2 создаём новый буфер игры(с названием прошлой карты(Карта1.w3х)) и всё.Теперь все данные кроме воина можно загружать в условиях,переменных и т.д.(Воин с помощью Restore).
Задание:Сделать 2 карты Карта1 с 1 героем 1 лавкой и кучей (штук 10-15) разбросаных предметов,Карта2 пустая с удаленными триггерами сражения.
Используя функции Буфера игры (События на ваше усмотрение(например chat message))
№1.Сохраните героя (Вначале подняв часть предметов) и загрузите его в Карте2
№2.Сохраните золто (Вначале продавв часть предметов) и загрузите его в Карте2
Скромные люди живут тихо и стреляют из пистолета с глушителем.
Война Эльфов(AoS)
Лига героев(тренировочный лагерь)
Одинокий орк(Ролик)

Alex-elf

#5
УРОК 3
Если вы хотите сделать RPG вам точно не обойтись без заданий,да и в других картах тоже не повредит.
Display to (All players) the Задание изменилось message: (Сообщение) - используеться для вывода сообщения о задании для игрока или группы игроков
Create a Основной quest titled (Название задания) with the description (Описание Задания) using icon path (Иконка залания) - используеться для создания нового задания
Destroy (Last created quest) - используеться для удаления задания
Заблокировать (Last created quest) - используеться для открытия(Закрытия) задания чтобы игрок смог его увидеть(Иначе будет просто ?(Задание не получено))
Mark (Last created quest) as Выполнено - используеться для метки задания(Выполнено,не выполнено)
Mark (Last created quest) as Неудачно - используеться для метки задания(Удачно,Неудачно)
Mark (Last created quest) as Получено - используеться для метки задания(Получено,Не получено))
Change the title of (Last created quest) to (Название задания) - используеться для смены названия задания
Change the description of (Last created quest) to (Описание задания) - используеться для смены описания задания
Create a quest requirement for (Last created quest) with the description (Описание) - используеться для создания требования к заданию
Mark (Last created quest requirement) as Выполнено - используеться для метки требования(Выпонено,не выполнено)
Change the description of (Last created quest requirement) to (Описание требования)
- используеться для смены описания требования
Create a defeat condition with the description (Описание условия поражения) - Используеться для установки условия поражения(Кто-то не должен умереть и т.д.)
Destroy (Last created defeat condition) - Используеться для удаления условия поражения
Change the description of (Last created defeat condition) to (Описание условия поражения) - Используеться для изменения описания условия поражения
Flash the quest dialog button - ипользуеться для анимирования кнопки задания(Эфект типа авто каста)
Задание:Поставить на карте 3 воина(Вражеских) и 1 героя (Себе)
№1.Задание ваш герой(????)не должен умереть
№2.После запуска карты -"задание изменилось - убейте 3 воинов" с условием скольео воинов осталось убить
Скромные люди живут тихо и стреляют из пистолета с глушителем.
Война Эльфов(AoS)
Лига героев(тренировочный лагерь)
Одинокий орк(Ролик)

Alex-elf

#6
УРОК 4
Если вы хотите сделать не сложную "Мили"(Карта сражения(Обычная)) вам не нужно волноваться о триггерах ведь для режима сражения они сразу создаються при открытии новой карты,но если вы хотите чтобы ваша карта отличалась от других "Мили" то они вам могут пригодиться.Да и в картах других жанров они тоже могут пригодиться.
Use melee time of day (for all players) - Устанавливает стандартное время дня для всех игроков(Тоесть стандартное(Установленое) значение длительности дня в настоящих секундах)
Limit Heroes to 1 per Hero-type (for all players) - Используеться для ограничения тренировки героев(Тоесть не должно быть одинаковых героев)
Give trained Heroes a Scroll of Town Portal (for all players) - Используеться для того чтобы когда герой закончил подготовку(Тренеровку) он получил 1 свиток телепорта
Set starting resources (for all players) - Дает в начале игры всем игрокам золото и древесину(Стандартное кол-во)
Remove creeps and critters from used start locations (for all players) - Используеться для удаления всех монстров со стартовой позиции игрока
Create starting units (for all players) - Создает каждому игроку несколько рабочих
Run melee AI scripts (for computer players) - Используеться для запуска работы стандартного ИИ(Если это действие не включить,то компьютер ничего не будет делать)
Enforce victory/defeat conditions (for all players) - Устанавливает стандартные условия победы и поражения
Create (Расса) starting units for Игрок 1 (Красный) at (Игрок 1 (Красный) start location) (Включить Heroes) - Создает определёному игроку несколько рабочих выбраной рассы и 1 героя(Если включить)
Задание:
№1.Удалить триггеры сражения из вашей новой карты если она не "Мили" biggrin
Скромные люди живут тихо и стреляют из пистолета с глушителем.
Война Эльфов(AoS)
Лига героев(тренировочный лагерь)
Одинокий орк(Ролик)

Alex-elf

#7
УРОК 5
Я думаю вы часто задумывались как выводить какое-нибудь сообщение не сбоку экрана,а непосредствено в игре возле воина,здания,области и т.д.Если вы хотите сделать такой текст то вам понадобяться функции "Плавающий текст".
Create floating text that reads (Текст) at (Область) with Z offset (Сдвиг вверх по оси Z), using font size (Размер текста), color ((Красный), (Зеленый), (Синий)), and (Прозрачность) transparency - Используеться для создания плавающего текста в области.
Create floating text that reads (Текст) above (Юнит) with Z offset (Сдвиг вверх по оси Z), using font size (Размер текста), color ((Красный), (Зеленый), (Синий)), and (Прозрачность) transparency - Используеться для создания плавающего текста над юнитом.
Destroy (Плавающий текст) - Используеться для удаления плавающего текста.
Показать (Плавающий текст) for (Игрок) - Используеться для показывания/скрытия плавающего текста для игрока.
Set the velocity of (Плавающий текст) to (Дистанция) towards (Градус) degrees - Используеться для того чтобы текст не стоял на месте а смещался в сторону.
Change the color of (Плавающий текст) to ((Красный), (Зеленый), (Синий)), and (Прозрачность) transparency - Используеться для изменеия цвета плавающего текста.
Change the position of (Плавающий текст) to (Область) with Z offset (Сдвиг вверх по оси Z) - Используеться для перемещения плавающего текста в другую точку.
Change the position of (Плавающий текст) to (Юнит) with Z offset (Сдвиг вверх по оси Z) - Используеться для перемещения плавающего текста в другому юниту.
Change text of (Плавающий текст) to (Текст) using font size (Размер текста) - Используеться для изменения текста в плавающем тексте.
Change (Плавающий текст): Заблокировать suspend state - Используеться для остановки/запуска всех действий плавающего текста(вроде паузы).
Change (Плавающий текст): Заблокировать permanence - Используеться для остановки/запуска затухания(Плавного исчезновения)плавающего текста.
Change the lifespan of (Плавающий текст) to (Время) seconds - Используеться для установки времени жизни плавающего текста(Через сколько он удалиться)
Change the fading age of (Плавающий текст) to (Время) seconds - Используеться для установки периода исчезания плавающего текста.
Change the age of (Плавающий текст) to (Время) seconds - Используеться для установки периода плавающего текста(Сколько времени его видно).
Важно:
lifespan,fading и Age не дадут эфекта вместе с permanent.
Задание:
№1.Создать желтый плавающий текст возле юнита который сдвигаеться вверх и в середине пути сменил цвет на фиолетовый
Скромные люди живут тихо и стреляют из пистолета с глушителем.
Война Эльфов(AoS)
Лига героев(тренировочный лагерь)
Одинокий орк(Ролик)

Litedragon

#8
а можно пример для третьего урока?? у меня просто русские тригеры поэтому неочень понятно
[url=http://nick-name.ru/sertificates/658129/][img]http://nick-name.ru/forum/Litedragon.gif[/img][/url]
http://www.seosprint.net/?ref=1829401

Qupad

#9
Litedragon, вот пример, думаю розберешся ели нет то пиши

Добавлено (05.09.10, 12:04)
---------------------------------------------
тут есть квесты типо найди item убей моба, типо такого подробно всё

Прикрепления: Quest_helper.w3x (20.5 Kb)

Alex-elf

#10
Блейд-Мастер, Вот подробное задание 1 урока.Я не такой поэт как ты,но всеже я надеюсь поймеш.
Для того чтобы выполнить это задание для начала естествено нужно запустить редактор и создать новую карту(надеюсь это вы умеете),затем нужно создать 9 областей,ну и можно обвести ваши области травой как на рисунке.В самой нижней области(Красной на рисунке) ставите так сказать "каждой твари по паре" тоесть 2-3 пехотинца,2-3 волшебницы и т.д.
Когда вы это все закончили переходим непосредствено к самим триггерам.

1.Создаем новый триггер называем его допустим "Type" создаем в нем новое событие после которого они все разойдуться кто куда(так сказать мальчики налево,девочки на право) например:
Событие
Игрок 1(Красный) chat message -Type Подстройка
Условие
Действие
Отряд - Pick every unit in (Units of type Пехотинец) and do (Боевая еденица - Order (Picked unit) to Двигаться (Center of (Область 2)))
Что получаеться мы сделали?Получаеться Красный игрок написал сообщение в чат -Type и все пехотинцы тутже побежали в область 2,но нам надо чтобы и все остальные тоже разбежались по областям.Для этого нам нужно скопировать наще действие только заменив Пехотинец на Волшебница,Грифон и т.д. тоесть для каждого кого мы ставили по действию,а чуть не забыл ведь они все должны быть в разных местах поэтому и для каждого вида войск надо ставить свою область.Теперь после того как красный игрок напишит -Type Все воины побегут по своим областьям(Как например Петровы пойдут в квартиру 10,Сидоровы в 11 квартиру и в каждой квартире будут только Петровы или только Сидоровы)
2.Ну почти тоже самое надо и со 2 заданием.Но здесь я пока ничего не скажу ведь на то это и задание чтобы делать его самому.Если вы сами не будете ничего пробовать,а будете брать готовые примеры,то вы наврятли чему-нибудь научитесь!

Скромные люди живут тихо и стреляют из пистолета с глушителем.
Война Эльфов(AoS)
Лига героев(тренировочный лагерь)
Одинокий орк(Ролик)

Pro100Killer

#11
расскажи о работе с переменными.
Мафия бессмертна!
Тестерирую на досуге мапы,без фанатизма)
nikikin
-Человек с очень завышеным ЧСВ и слабой нервной системой.
Это многое объясняет)
Весь мир это иллюзия бред больного ума и охреневшего сознания

Alex-elf

#12
УРОК 6
Что такое переменная?Каждая переменная это что-то вроде бумаги, на который вы записываете информацию,чтобы не забыть ее.Можно рассматривать переменную как объект,свойства которого — название и тип данных,которые можно в нее записать и значение, аписанное в переменную. Действия, которые можно производить с переменными – создать,присвоить новое значение,прочитать значение переменной.

Переменные используються с определенными игровыми объектами(Юниты,декорации,цифры и т.д.).
Иногда (даже очень часто) требуется запомнить какую-то информацию. Например, допустим мы хотим реализовать тот же прием, что и в кампании за нежить(первая миссия где люди бегут к областям, а нежить должна их перехватить). Если воин добегает до области, он исчезает из игры и считается выжившим. Если спасется болше 10 воинов,нежить проигрывает. Чтобы сделать такое,нужно запоминать количество спасшихся воинов.Создаем переменную i(Целочисленая), и в нее будем записывать число спасшихся воинов. При входе воина в область r, мы его убираем, а значение i увеличиваем на 1. Если i>9, нежить проигрывает.

Во многих случаях можно обойтись и без переменных,но при умении пользоваться переменными можно многое упростить да и некоторые задачи – такие как работа со спецэффектами, диалогами,таблицами записей,мультибоардами и др. – по нормальному просто невозможна без переменных.

Лутше использовать много переменных чтоб не получить кашу в триггерах! Большинство людей составлять карту из "кусков" — наработок/разработок. И это отличный пример использования переменных ради удобства. Гораздо удобнее настраивать наработку с помощью переменных(хотя не всегда настройка делаются именно с помощью переменных),чем лезть в её код, хотя в обоих случаях будет один и тот же результат (зато разные временные затраты и количество потраченных нервов).Еще это может сэкономить количество функций в триггере, если в паре с переменными массивами использовать циклы.Но об этом позже. Сейчас же запомните, что не следует бояться переменных, пусть их даже будет много, хотя, конечно, не стоит создавать их тоннами (очень на многом можно сэкономить).Но у всего есть своя цена — будет глупо, если вместо того, чтобы воспользоваться одной переменной, мы напишем 100 строк кода, только для того, чтобы не вводить новую переменную.

У переменных есть типы, соответствующие разным видам данных.Ведь число и тип юнита разные вещи.Нельзя же сделать с числом то, что можем сделать с воином(например,отдать приказ числу).Поэтому и появилась необходимость в типах, чтобы не возникало ошибок.Вот список часто используемых типов переменных(Остальные используют ооочень редко).
Логический (boolean)
Целое число (integer)
Рациональное число (real)
Строка (string)
Боевая еденица (unit)
Типы юнита (unit type)
Квест (quest)
Спецэффект (special effect)
Регион (region)
Точка (point)
Кнопка (button)
Отряд (group)
Плавающий текст (float text)
Игрок (player)

Для переменной каждого типа есть свои специальные функции.Например,в переменную целого типа с помощью этих функций можно помещать такие параметры,как количество юнитов у определенного игрока,количество золота или леса у игрока,количество еды и т.д.В рациональные переменные можно помещать не "целые" числа,количество жизней или маны у определенного юнита,угол поворота юнита,координаты юнита на карте и т. д.Разница между целочисленной и реальной состоит в том,что целочисленная может содержать только целые числа,в то время как реальная — любое число.Но лично я рекомендую использовать их по назначению!Например,если уверен,что какой-либо переменной будут присваиваться только целые значения,делай её целой. Нагрузка на процессор при работе с этими типами разная — у рациональных она выше.

Но далеко не обязательно,чтобы значение переменной было конкретным значением,вроде i = 4.Переменной можно присвоить выражение,то есть,i = 2 * 2запишет в переменную то же самое (конечно,я пишу это не в виде триггеров,но в общем,надеюсь, понятно).Можно дать значение какой-нибудь переменной в зависимости от другой переменной тип такого i = j * 5.В результате в i будет записано значение,"полученное" от j * 5.Такое выражение возвращает какое-то значение. Возвращаться могут не только цифры, а любые объекты (но только те, у которых есть свой тип переменных юниты, строки, игроки и т.д)Не сразу может быть понятно со словом возвращает. Никто ни у кого ничего не брал в долг.Более подробно это можно описать следующим образом: вместо самого выражения будет подставлен результат его выполнения(Тоесть ответ).

Также бывают массивы переменных.
Массивы – это множество переменных с одинаковым именем и типом,но разными номерами(индексами).Обращаться к элементу массива нужно тпк: (имя переменной) [(номер элемента массива)].
Пример:
Set i[0] = 2
Set i[1] = 5
Set i[3] = 8
Set i[5] = 7

Получаеться,i — массив типа integer,но не обязательно чтобы индексы(номера) шли по порядку. Можно использовать и отрицательные индексы.У масива есть и ограничение(Но вы наврятли его заполните) от -8192 до 8192.То есть,элемента с номером 8193 существовать не может,а при попытке присвоить такой номер индексу переменной он просто станет 0 и значение не будет присвоено(никаких предупреждений об ошибках). Особенно их удобно применять в паре с циклами.

Теперь рассмотрим понятие функций и возвращаемых ими значений. Функция что вроде "куска" кода,который можно "вызывать".Это как выражение,только гораздо более расширенное и с его помощью можно получить количество юнитов в группе,количество жизней или маны у юнита и т. д.Она точно так же "возвращает" значения.
Событие:
Герой получил уровень.
Действие:
Set i = (Hero level of triggering unit)

В результате работы триггера,в i будет записан уровень героя.
Возвращаемое значение не обязательно должно быть числом.Возвращаться может и воин.
Например:
Событие
Боевая еденица - Create 1 Town Hall for Игрок 1 (Красный) at (Center of (Playable map area)) facing 90 degrees
Set TownHall1 = (Last created unit)

В результате переменная TownHall1 ссылается на нового юнита.Создатели Варкрафта странно сделали некоторые вещи,и пример таких "странностей" может служить как раз этот код.(Last created unit) по сути тоже является функцией.Неужели не было легче сделать так, чтобы сама функция создания юнита возвращала только что созданного юнита?
Переменная ссылается на юнита!Не юнит переходит в переменную,а переменная ссылается на юнита.Грубо говоря,при её считывании она "вернет" этого юнита.Конечно,на одного и того же юнита могут ссылаться сразу несколько переменных.

Выражения могут быть использованы в паре с функциями что чаще всего и делается.
Как ни странно,но реально функция создания юнита возвращает юнита.Но почему-то нет возможности использовать это напрямую... Вместо этого, существует другая функция,которая присваивает переменной lastCreatedUnit созданного юнита,а функция (Last created unit) лишь возвращает эту переменную.Ну, предположим, что когда-то действительно нужно вернуть именно последнего созданного юнита, независимо как он был создан. Но ведь в большинстве случаев надо получить именно только что созданного юнита,а не последнего в целом.

Чтобы создать переменную надо находиться в редакторе триггеров.Нажмите переменные или просто нажмите кнопку с иксом.Здесь Вы сможете создавать переменные или изменять уже созданные.Редактор переменных можно запустить прямо во время создания некоторых триггеров, нажав на кнопку изменить.
Переменная включает следующие параметры:
Имя(должно быть уникальным,не числом),
Тип
Начальное значение (не обязательно)
Возможно также создание массивов переменных (во время создания переменной устанавливаете флажок).После того,как переменная создана,появляется возможным использовать ее при создании триггеров.

Кроме функций бывают еще операторы.Все математические действия и сравнения(сложение, вычитание,умножение,равенство,больше,меньше и т. д.) — операторы.

Оператор присваивания с его помощью переменной присваивается значение. Тут все довольно просто: выбираем переменную, выбираем значение.
Однако возможные функции и переменные (из которых Вы выбираете) будут разными в зависимости от типа выбранной переменной.То есть целочисленным переменным можно присвоить одни значения,переменным юнитам другие.Случайно присвоить числу юнита в таком случае почти невозможно.

Короче если вам надо что-то использовать не в первую секунду триггера то заносите это в переменнную

Скромные люди живут тихо и стреляют из пистолета с глушителем.
Война Эльфов(AoS)
Лига героев(тренировочный лагерь)
Одинокий орк(Ролик)

enomousbright

#13
я по поводу урока 5(плавающтй текст).

Создаю плавающий текст,устанаюливаю Velocity (припустим 64 и кут 90)и потом он не ищезает.Я уже пробовал и Lifespan(1c.) и Fading Age и просто Age,но текст все равно не ищезал.
Обьясните мне што не так плз.

Добавлено (26.09.10, 13:42)
---------------------------------------------
п.с:я не юзал Permanence

Alex-elf

#14
enomousbright, Просто плавающий текст не всегда может удалиться через Last created floating text(Если например ты содаеш текст над Picked unit текс удалиться только над 1 воином над остальными он будет висеть) Поэтому занеси его в переменную и он будет работать как надо
Вот пример текста на 1 сек. над всеми воинами красного игрока
Прикрепления: 9381967.jpg (28.9 Kb)
Скромные люди живут тихо и стреляют из пистолета с глушителем.
Война Эльфов(AoS)
Лига героев(тренировочный лагерь)
Одинокий орк(Ролик)
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск: