Записи участника (Alex-elf) - Форум


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

Результаты поиска

Alex-elf

#571 | Тема: Война Эльфов
M@}{, Так покупай свитки скорости или телепорта а если денег поднакопить то посох купил и перемещайся сколько угодно wink
Скромные люди живут тихо и стреляют из пистолета с глушителем.
Война Эльфов(AoS)
Лига героев(тренировочный лагерь)
Одинокий орк(Ролик)

Alex-elf

#572 | Тема: Заказ моделей
GraF_ZM_Nation, Это моя 4 модель(Вообще)Анимировать или тебе не пойдет?
Прикрепления: 6554010.jpg (34.3 Kb)
Скромные люди живут тихо и стреляют из пистолета с глушителем.
Война Эльфов(AoS)
Лига героев(тренировочный лагерь)
Одинокий орк(Ролик)

Alex-elf

#574 | Тема: Ваши вопросы по триггерам
Litedragon, кнопка это область еще под ней поэтому и срабатывает,а карта просто защищена поэтому триггеры тебе не показываються
Скромные люди живут тихо и стреляют из пистолета с глушителем.
Война Эльфов(AoS)
Лига героев(тренировочный лагерь)
Одинокий орк(Ролик)

Alex-elf

#579 | Тема: Переменные РО в триггерах
Если в редакторе обьектов нажать CTR+D,то высветиться вместо описания(Модель,маштабирование,и т.д.) название переменных.
Кто знает как эти названия можно использовать в триггерах или JASSе?И вообще где их можно использовать?
Скромные люди живут тихо и стреляют из пистолета с глушителем.
Война Эльфов(AoS)
Лига героев(тренировочный лагерь)
Одинокий орк(Ролик)

Alex-elf

#581 | Тема: Уроки по триггерам
УРОК 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)
Лига героев(тренировочный лагерь)
Одинокий орк(Ролик)
Поиск: