XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Желтая пресса: обучающие статьи
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

 
Smash3r
Картостроитель
offline
Опыт: 1,106
Активность:
Разбираемся, как устроен тот или иной триггер?
Как устроен тот или иной триггер?

Моя статья предназначена прежде всего для тех, кто хочет понять, как устроен тот или иной триггер в других картах. Например, как сделан repick героев в Доте, или как устроен триггер, позволяющий из нескольких предметов получить один - так называемые сборки (к примеру, Soul Booster из Доты). Данная статья может показатся неинтересной для знающих мапперов, но ведь вспомните - когда-то и вы, начиная постигать WE, бились над тем, как сделать тот или иной триггер, который внесёт разнообразие в вашу карту. Я пишу эту статью, ещё сам будучи новичком в мире WE, и посему излагать буду понятным для начинающего мапмейкера языком. Предполагается, что человек, читающий эту статью, имеет представление о том, что такое триггеры и как они работают. Если нет, то вам помогут статьи Sergey'a и Raz'a - Осваиваем World Editor: Триггеры.

1. Неуязвимость.

Наверно многие из вас играли в такие RPG карты, где герой, находясь в определённой точке на карте, становился неуязвимым. Такая точка обычно является базой игрока - местом, где он может спокойно пополнить очки здоровья и отправится в дальнейший путь. Допустим, вы создали какую-нибудь RPG наподобии Diablo, где есть начальная точка появления игрока - некий город со своими NPC и парочкой магазинов. В этом городе персонаж должен становится неуязвимым, чтобы на него в городе не напала всякая жуткая нечисть :). Нужно сделать совсем немного, чтобы добится такого эффекта. Перво-наперво, нам нужно создать область, в которой игрок будет оставатся неуязвимым до тех пор, пока не покинет её. Расположите её должным образом - для этого растяните вашу область по всей базе (Панель Областей) или сделайте участок, который считаете нужным. Далее дело за триггером. Выглядеть он будет следующим образом (назовём его Invincibility):

Invincibility
Событие
Боевая единица - A unit enters Region <gen>
Условия
Действия
Боевая единица - Add Неуязвимый (Нейтральный) to (Triggering unit)


Здесь всё предельно просто - когда юнит (любой, даже вражеский) зацепляет триггер (а в данном случае это область Region), то выполняются действия - сделать боевую единицу, которая зацепила триггер, неуязвимой. Но для того, чтобы юнит вновь стал уязвимым, когда покинет область Region, нужно создать ещё один триггер, отвечающий за снятие неуязвимости с героя. Выглядеть он будет так (назовём его Invincibility Remove):

Invincibility Remove
Событие
Боевая единица - A unit leaves Region <gen>
Условия
Действия
Боевая единица - Remove Неуязвимый (Нейтральный) from (Triggering unit)


В этом триггере указано, что на событие, когда боевая единица покидает облать Region, срабатывает действие "Убрать неуязвимость" с единицы, покинувшей область. То есть, когда ваш персонаж покинет границы области Region, то он внось станет смертным :). Вот так всё просто!

2. Тип вещи "только для"...

Давайте вспомним известный всем Blizzard'овский Diablo. Так вот, те, кто играл в эту замечательную игрушку, знают, что там есть немало вещей, которые может носить только определённый тип персонажа - будь то друид, или амазонка, или варвар... Суть заключается в том, чтобы создать такие же вещи и в вашей карте. Например, в вашей карте 3 типа героев - Маг, Воин и Друид. Вы хотите, чтобы на карте имелись такие вещи, которые может носить только один тип юнита - либо Воин, либо Маг, либо Друид. Сделать это опять-таки совсем несложно - достаточно лишь логически помыслить - и у нас получится такой нехитрый триггер (назовём его ItemOnlyForMage - вещи только для мага):

 ItemOnlyForMageType
Событие
Боевая единица - A unit Получает предмет
Условия
(Unit-type of (Triggering unit)) не равно Маг
Действия
Герой - Drop (Item carried by (Triggering unit) of type Камень Маны from (Triggering unit)

В этом скрипте нет ничего сложного. На событие, когда юнит (любой) получает предмет, выполняется условие, которое проверяет, какой тип юнита получил предмет. Если этот тип НЕ Маг, то выполняется действие - предмет выпадает из инвентаря. В данном случае выпадет предмет "Камень Маны". Если же данный тип юнита - Маг, то действие выполнятся не будет, и Камень Маны не выпадет из инвентаря. Этот скрипт даёт возможность делать вещи, которые могут носить только герои определённого типа. Чтобы сделать больше предметов, принадлежащему юниту типа Маг, добавьте действия на каждый интересующий вас предмет, например:

Событие
Боевая единица - A unit Получает предмет
Условия
(Unit-type of (Triggering unit)) не равно Маг
Действия
Герой - Drop (Item carried by (Triggering unit) of type Камень Маны from (Triggering unit)
Герой - Drop (Item carried by (Triggering unit) of type Свиток Силы from (Triggering unit)
Герой - Drop (Item carried by (Triggering unit) of type Боевые Когти from (Triggering unit)
Герой - Drop (Item carried by (Triggering unit) of type Кольцо Маны from (Triggering unit)
Герой - Drop (Item carried by (Triggering unit) of type Пояс Богатыря from (Triggering unit)
Герой - Drop (Item carried by (Triggering unit) of type Туфли Ловкости from (Triggering unit)


Теперь все эти вещи сможет носить только юнит типа Маг. Ничего сложного. Перейдём к следующему пункту относительно вещичек :).

3. Делаем сборки (несколько вещей превращаем в одну).

Этот триггер позволит внести огромное разнообразие в вашу RPG карту. Если вы играли в DotA Allstars, то наверняка знаете что такое сборки. Для тех, кто не знает - например, у вас в инвентаре 6 вещей, то есть все ячейки заполнены. И вот, дабы не забивать все 6 ячеек, из этих вещей собирается 1 вещица со всеми показателями тех шести вещей (или с вашими, установленными :) ) Иными словами, из нескольких предметов получается один. Это и ради экономии места и ради азарта (а дайте мне ту часть, а я вот меняю то-то на это, мне нехватает для сборки...) и так далее... Допустим, есть рецепт - Божественные доспехи. Чтобы получить эти доспехи, персонажу необходимо собрать части этого доспеха - например, "Божественные перчатки", "Золотой нагрудник" и "Священные латы титана". Когда все эти вещи находятся в инвентаре персонажа, то он автоматически получает эти самые Божественные доспехи. Как же работает данный триггер? Рассмотрим... Здесь приведён пример сборки из 4х предметов (назовём триггер ItemCombine):

ItemCombine
Событие
Боевая единица - A unit Получает предмет
Условия
Действия
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Если - Условия
((Item carried by (Triggering unit) of type Предмет1) is owned) равно Да
((Item carried by (Triggering unit) of type Предмет2) is owned) равно Да
((Item carried by (Triggering unit) of type Предмет3) is owned) равно Да
((Item carried by (Triggering unit) of type Предмет4) is owned) равно Да
То - Действия
Предмет - Remove (Item carried by (Triggering unit) of type Предмет1)
Предмет - Remove (Item carried by (Triggering unit) of type Предмет2)
Предмет - Remove (Item carried by (Triggering unit) of type Предмет3)
Предмет - Remove (Item carried by (Triggering unit) of type Предмет4)
Герой - Create Супер-Предмет and give it to (Triggering unit)
Спецэффект - Create a special effect attached to the overhead of (Triggering unit) using ...
Иначе - Действия


Ну тут всё очень просто. Смотрим на событие - этот тригер будет включатся каждый раз, когда юнит будет получать предмет. Неважно как - купил ли он его, или нашёл, или же ему передали - в любом случае игра просчитает это как получение героем предмета :). Итак, выполняются действия. В действиях мы ставим условие: Если (Все условия верны) то тогда (выполнять Действия) или (Если Условия не верны) выполнять (Другие Действия). Итак:
1. Если у героя, который получил предмет, есть в инвентаре Предмет1, Предмет2, Предмет3 и Предмет4, то выполнять Действия.
2. В действиях мгновенно убираем с инвентаря героя Предмет1, Предмет2, Предмет3 и Предмет4 и взамен даём ему Супер-Предмет. Оказывается, всё настолько просто :).
3. Спецэффект - это уже по вкусу. Чтобы все видели, что у вас появилась сборочка :).
4. Если всех нужных предметов нет, то выполняются другие действия (Иначе - Действия). Там оставим пустым.

4. Триггер события "при смерти героя".

Впринципе данное событие (event) можно делать при любых условиях. Но мы возьмём при смерти героя. В некоторых мультиплеерных RPG встречаются такие моменты: при смерти героя (имеется ввиду настоящая смерть, то есть когда у героя нет при себе Креста Возрождения) у его владельца (игрока) отнимается определённое количество денег (или жизнь). Такое событие можно наблюдать в той же Доте - при смерти героя у игрока-владельца отнимается золото, а затем ждёшь определённое количество секунд до воскрешения. Сделать это очень просто. Создаём новый триггер, называем его DieEvent:

DieEvent
Событие
Боевая единица - A unit Умирает
Условия
((Triggering unit) belongs to an ally of Игрок 1(Красный)) равно Да
And - All (Conditions) are true
Условия
((Dying unit) is Герой) равно Да)
((Dying unit) has an item of type Крест Перерождения) равно Нет
(Owner of (Triggering unit)) не равно Нейтрально-враждебный
(Owner of (Triggering unit)) не равно Нейтрально-пассивный
Действия
Wait 3.00 seconds
Игрок - Set (Triggering player) Золото (текущ.) to (((Owner of (Triggering unit)) Золото (текущ.)) / 2)
Игра - Display to (Player group((Owner of (Dying unit)))) for 15.00 seconds the text: Вы потеряли половину...
Wait 15.00 seconds


Смотрим на событие - игрок умирает, и если условия верны (умирающий игрок - союзник красного игрока, и у него нет при себе креста), то выполняем действия. В действиях указано, что при смерти игрок теряет 1/2 своего золота, а затем через 15 секунд можно врубить триггер возрождения героя или просто в этот же триггер дописать Instantly Revive Hero в определённой области. Впринципе, в действиях можно указать что угодно - тут главное, чтобы была фантазия маппера, желательно не извращённая :).

5. Триггер "Random"

Что-то я уже начал разбирать Доту по косточкам - того и гляди все триггеры оттуда вытащу :). Тем не менее, никто мне не запрещает их использование и всеобщее толкование, а посему я объясню, как же работает этот чудо-триггер, именуемый в доте -random.
Итак, всё начинается с того, что игрок определённого цвета (в Доте - синий) пишет команду -random (или -ar) в строку чата. При этом у всех игроков моментально появляется герой на базе, которого им определила игра. Вроде бы и ничего сложного на первый взгляд. Однако давайте проанализируем ситуацию. В Доте более 70 героев, и каждого из них можно выбрать только 1 раз. Это значит, что команда -random должна учитывать и это условие. Далее, если какой-то герой попался любому из игроков, то моментально этот герой должен стать недоступен другим игрокам. Ещё одно условие. Нужно учесть и то, что больше героев, чем 1, игрок-владелец иметь не может. Мда. Как же этот чудо-триггер будет выглядеть? А вот как (пример приведён на четырёх игроков):

Randomizator
Событие
Игрок - Игрок 2 (Синий) types a chat message containing -random as Точное совпадение
Условия
(Игрок 1 (Красный) Ограничение Пищи) равно 1
(Игрок 2 (Синий) Ограничение Пищи) равно 1
(Игрок 3 (Сине-зелёный) Ограничение Пищи) равно 1
(Игрок 4 (Фиолетовый) Ограничение Пищи) равно 1
Действия
Set RandomUnits = (Random integer number between 1 and 10)
Боевая единица - Create 1 RandomHeros[RandomUnits] for Игрок 1 (Красный) at (Center of Units Respawn <gen>) facing Стандартная ориентация зданий degrees
Группа игроков - Pick every player in (All players) and do (Игрок - Make (Unit-type of (Last created unit)) Недоступно for training/construction by (Picked player))
Боевая единица - Create 1 RandomHeros[RandomUnits] for Игрок 2 (Синий) at (Center of Units Respawn <gen>) facing Стандартная ориентация зданий degrees
Группа игроков - Pick every player in (All players) and do (Игрок - Make (Unit-type of (Last created unit)) Недоступно for training/construction by (Picked player))
Боевая единица - Create 1 RandomHeros[RandomUnits] for Игрок 3 (Сине-зелёный) at (Center of Units Respawn <gen>) facing Стандартная ориентация зданий degrees
Группа игроков - Pick every player in (All players) and do (Игрок - Make (Unit-type of (Last created unit)) Недоступно for training/construction by (Picked player))
Боевая единица - Create 1 RandomHeros[RandomUnits] for Игрок 4 (Фиолетовый) at (Center of Units Respawn <gen>) facing Стандартная ориентация зданий degrees
Группа игроков - Pick every player in (All players) and do (Игрок - Make (Unit-type of (Last created unit)) Недоступно for training/construction by (Picked player))
Игрок - Set Игрок 1 (Красный) Ограничение пищи to 0
Игрок - Set Игрок 2 (Синий) Ограничение пищи to 0
Игрок - Set Игрок 3 (Сине-зелёный) Ограничение пищи to 0
Игрок - Set Игрок 4 (Фиолетовый) Ограничение пищи to 0


Итак, начинаем разбиратся :). Событие - ну тут всё ясно - выполнятся оно будет, когда игрок в режиме чата напишет сообщение -random. В условиях сказано, что ограничение пищи должно быть равным 1. Если оно не равно 1, то при написании команды рандом ничего не произойдёт. Посему перед началом игры количество пищи у вас должно быть равно единице. Либо поставьте своё значение и затем отнимите его в конце триггера, чтобы пища была равна 0.
Смотрим действия. Комманда Set RandomUnits. Этим действием мы только что назначили переменной RandomUnits случайное значение (число) от 1 до 10. Об этой переменной речь пойдёт ниже. Далее идёт создание боевой единицы в центре области Units Respawn <gen>. Обратим внимание на переменную RandomHeros. Её также нужно назначить и придать ей значение 10. Для этого в Редакторе триггеров нажмём CTRL+B.
Появится окошко работы с переменными. Нажмём кнопку "Новая переменная" (зелёный значок). Введём название точь-в-точь такое, которое вы используете в скриптах (это ещё называется Вызов переменной :) ). В данном случае название RandomHeros. Поле "Тип переменной" - выберем из списка "Тип объекта". Поставим галочку на свойстве "Массив", тем самым указав, что это числовая переменная. В поле рядом введём максимальное значение героев (в данном случае, если мы выбираем от 1 до 10, то впишем туда число 10). Начальное значение поставим Нет.
Далее - Группа игроков. Этим действием мы удаляем из массива героя, который уже попался какому-либо игроку - мы же не хотим, чтобы у двух игроков были одинаковые герои? :). Затем проводим это действие со 2 игроком, с 3, с 4... Наконец ставим Ограничение пищи на 0, дабы при повторном написании слова -random опять не выбирались герои. Если хотите, чтобы они снова выбирались, то сотрите четыре последних строки в дейтсвиях. Но тогда хотя бы сделайте, чтобы денежка отнималась :).
RandomUnits - это также переменная, и задать мы её должны точно так же, как и RandomHeros. Только "тип переменной" будет "Целочисленная". Галочку на массиве ставить не нужно, а начальное значение оставим по умолчанию.
Итак, вроде бы всё готово! Но постойте-ка, а из чего мы выбираем? Наш массив пустой. Заполним его. Для этого создадим новый триггер:

RandomHeros
Событие
Map Initialization
Условия
Действия
Set RandomHeros[1] = Warlock
Set RandomHeros[2] = Beast
Set RandomHeros[3] = Penguin
Set RandomHeros[4] = Killa
Set RandomHeros[5] = Mutant
Set RandomHeros[6] = Peacock
Set RandomHeros[7] = Mage
Set RandomHeros[8] = Wizard
Set RandomHeros[9] = Thing
Set RandomHeros[10] = Another Monster


Вот теперь всё готово. Что же мы сделали тут? А тут мы назначили каждому числу из массива RandomHeros своё значение (или своего монстра, как хотите). Событие - как только загрузилась карта.

Итак, например в игре синий игрок пишет в чат сообщение -random.
1. Идёт проверка на еду. Если у всех по 1 ножке, идут действия.
2. Назначаем переменной RandomUnits значение от 1 до 10 рандом. Вот теперь вникайте внимательно:
- допустим рандомно выпала цифра 7. Смотрим на наш скрипт, и подставим под переменную RandomUnits значение 7:

Боевая единица - Create 1 RandomHeros[7] for Игрок 1 (Красный) at (Center of Units Respawn <gen>) facing Стандартная ориентация зданий degrees

Улавливаете смысл? Смотрим - у нас есть переменная RandomHeros с массивами-монстрами в ней. Смотрим на триггер Set RandomHeros. Так как у нас выпала цифра 7, ищем, кто же нам попадётся - в данном случае это Mage, потому как он находится в этом массиве под номером 7. Вот так вот всё просто :). Вообще массивы - мощная штука, с ними можно много чего делать в WarCraft'e.

6. Триггер "Repick"

Продолжаем штурмовать триггеры любимой Доты :). Конечно же вы знаете, что даёт комманда -repick. Не знаете? Позор... :) А даёт она возможность заново выбрать героя, если вам по какой-то причине не понравился тот, который вам попался при рандомной раздаче (см. триггер Random). Пример я приведу только на одном из игроков (красный), далее распишите этот триггер для каждого из играющих. Итак, пишем следующее (кстати, этот триггер связан с предыдущим триггером напрямую - там даже переменнные те же используются, так что обязательно прочитайте пункт 5, чтобы вникнуть в смысл данного триггера):

Repicker
Событие
Игрок - Игрок 1 (Красный) types a chat message containing -repick as Точное совпадение
Условия
Repicked[(Player number of (Triggering player))] равно Нет
Действия
Отряд - Pick every unit in (Units owned by (Triggering player) matching (((Matching unit) is Герой) равно Да)) and do (Actions)
Цикл - Действия
Боевая единица - Remove (Picked unit) from the game
Игрок - Make (Unit-type of (Picked unit)) Доступно for training/construction by (Picked player)
Игрок - Add -500 to (Triggering player) Золото (текущ.)
Set RandomUnits = (Random integer number between 1 and 10)
Боевая единица - Create 1 RandomHeros[RandomUnits] for Игрок 1 (Красный) at (Center of Units Respawn <gen>) facing Стандартная ориентация зданий degrees
Группа игроков - Pick every player in (All players) and do (Игрок - Make (Unit-type of (Last created unit)) Недоступно for training/construction by (Picked player))
Set Repicked[(Player number of (Triggering player))] равно Да


Итак, игрок пишет репик. Проверяем условия - равна ли переменная Repicked значению нет. Если равна, то идём к действиям. Обратите внимание, что в скобках стоит такое выражение: [(Player number of (Triggering player))]. Это значит, что здесь будет красоватся личная цифра игрока-владельца, чтобы команда -repick не подействовала на кого-нибудь другого :). Как вы уже поняли, переменную Repicked нужно задать. Это мы делать уже умеем - достаточно нажать CTRL+B и создать новую переменную. Тип на этот раз будет Логическая, Массив, 10. В действиях - берём героя Игрока 1 и удаляем с поля боя, делаем его доступным для выбора другим игрокам. Отбирам 500 золота за репик :), ставим значение переменной Repicked равное Да. То есть, больше написать комманду репик мы не сможем :).

Заключение.

Ну вот вроде и всё - здесь я описал принцип действия некоторых триггеров, которые могут пригодится в создании той или иной карты. От этих скриптов можно отталкиватся и делать свои. Конечно же, не стоит сразу пихать эти скрипты в каждую созданную вами карту и творить очередную Мегадоту :))). Я просто постарался донести до читателя всю мощь и доступность триггеров, в очередной раз показав, что ничего сложного в них нет, и боятся их не стоит. Просто нужно логически помыслить, представить себе мельчайшие детали скрипта - и всё у вас получится :).
Старый 19.05.2006, 12:47
free0n
Бумбарявка
offline
Опыт: 4,736
Активность:
Статья на мой взглад куль! Правда некоторые триггеры я знал как делаются! А вообще почему бы не сделать отдельный топик с описанием часто используемых триггеров(потому что я например если сам не могу написать какото триг, то начинаю перелапачивать какрты в поисках чего-то подобного), ну или не часто но интерестных. Хотя это моё мнение. Статья прикольная, даже очень.
Старый 19.05.2006, 14:16
Smash3r
Картостроитель
offline
Опыт: 1,106
Активность:
Ну вобщем-то о таком топике я как-раз и думал - это как вступительная часть - далее я ещё накатаю :) Спс за отклик =)
Старый 19.05.2006, 14:33
free0n
Бумбарявка
offline
Опыт: 4,736
Активность:
Не, на мой взгляд, это даже нужно а то я уже запарился лазить по всевозможным картам, находить там нужный триггер(отсеевая всё не нужное).
Сори забылЪ. Пиши ещё!
Старый 19.05.2006, 14:37
Murloc
Powered by Q
offline
Опыт: 16,977
Активность:
Распиши как добиваться в условиях
"(Unit-type of (Triggering unit)) не равно Маг" , "((Item carried by (Triggering unit) of type Предмет1) is owned) равно Да" и всё подобное, просто новичок такое не зделает, а писать статью для про это неразумно, а так норм статейка.
Старый 19.05.2006, 14:53
FoK_KruGer
<3 Vocal Trance
offline
Опыт: 19,940
Активность:
имхо все знают.
Но для новичков полезна. даже очень
Старый 19.05.2006, 14:57
Smash3r
Картостроитель
offline
Опыт: 1,106
Активность:
Цитата:
Сообщение от Cyberface
Распиши как добиваться в условиях
"(Unit-type of (Triggering unit)) не равно Маг" , "((Item carried by (Triggering unit) of type Предмет1) is owned) равно Да" и всё подобное, просто новичок такое не зделает, а писать статью для про это неразумно, а так норм статейка.


Ну это уже не новичок, а совсем нуб! Это же элементарно - найти из списка нужное условие и подставить тип юнита, предварительно его создав =) или выбрав из стандартных. Просто если всё это расписывать, статья растолстеет огого как )
Старый 19.05.2006, 15:13
THeBloodiest

offline
Опыт: 20,881
Активность:
Smash3r
нуб = новичек бтв >.<
Старый 19.05.2006, 20:02
Murloc
Powered by Q
offline
Опыт: 16,977
Активность:
А ты напиши сноску типа "внизу смарите..." и там поясни. Я раньше никак не мог выбрать "скастованый спел = мой спел", еле разобрался блин, а если статья не для нубов, то для кого же она? (нубы, как выразился блуди, это теже самые новички (бтв = ???)) Там не список, там какбы логическое соответсвие, если список, то было бы легче, а в каждом под пункте (Boolean comprasion) есть очень много строк, верную из них в самом начале познания редактора, выбрать пожалуй очень сложно. понимаю что "Разбираемся в строениях тригеров" явно должно изучаться после познания самих тригеров, но я чёт нигде не видел более менее подробного описания "условий". коль его нет, тебе надо пояснить больше о выборе условий. вотЪ.
Старый 19.05.2006, 21:14
NETRAT

offline
Опыт: 83,712
Активность:
Гм, если оформить как вопрос-ответ, то можно добавить в FAQ, и экспы автору добавить, ибо на статью это не потянет, а для ФАК'а - полезное дополнение
Старый 20.05.2006, 00:43
DioD

offline
Опыт: 45,134
Активность:
Сразу узнал дота тэмплат + абом из других статей.
Старый 20.05.2006, 05:51
Zerker
G Unit
offline
Опыт: 25,120
Активность:
Статья хорошая, но согласен с нетратом - это должны знать все и как FAQ оформить можно.
Старый 20.05.2006, 12:49
AnD
Weighted Companion Cube
offline
Опыт: 7,351
Активность:
Цитата:
3. Делаем сборки (несколько вещей превращаем в одну).

Ага, а если игрок не хочет обьеденять их в одну вещь? Статья, больше на ФАКЬЮ похожа, в целом мне понравилось.

AnD добавил:
Кстати, все такие триггеры люди и сами могут придумать, ты бы лучше написал о нестандартных методах... (у самого меня не хватает фантазии, что же назвать нестандартным методом)
Старый 20.05.2006, 13:57
Smash3r
Картостроитель
offline
Опыт: 1,106
Активность:
Ну фантазия есть посидеть-подумать о этих самых.... нестандартных - а вот времени нет - да и сижу я не из дома, а их кклуба... Вот так вот... Спасибо за отзывы.
2 DioD: чё значит абом из других статей? дота тп - это понятно - я ж и пытался донести до читателя триги из доты - их примеры
Старый 21.05.2006, 14:05
DioD

offline
Опыт: 45,134
Активность:
Абом это нечто собраное из частей других статей, бру в дауне так-что ссылок не будет, хотя аналоги есть и на xgm
Старый 21.05.2006, 15:51
AnD
Weighted Companion Cube
offline
Опыт: 7,351
Активность:
Цитата:
да и сижу я не из дома, а их кклуба

Ты и статьи чтоли в клубе пишешь??? Статьи то дома пиши, а в клубе то только отправлять надо.
Старый 23.05.2006, 12:37
Smash3r
Картостроитель
offline
Опыт: 1,106
Активность:
=) Статьи дома пишу конечно =) Ну а насчёт FAQ подумаю - мож 2ую чать сделаю как фрику.
Старый 23.05.2006, 13:01
DioD

offline
Опыт: 45,134
Активность:
Раскрась и разбей по абзацам, что-бы приятно было читать, даже переписывать не надо.
Сразу замечания по тексту,
Неуязвимость лучше делать через тригер ,а не абилку.
Ну и маленькое замечание по репику, он не проверяет есть ли золото, просто его вычитает и всё.
Старый 23.05.2006, 13:12
Smash3r
Картостроитель
offline
Опыт: 1,106
Активность:
Ну дык правильно - золото и не надо проверять, нужно отнять от имеющейся суммы 500 за репик. Имеется ввиду, что начальный капитал игрока больше 500 или равен 500 =)
А насичот неуязвимости - это уже на вкус и цвет... =)
Старый 24.05.2006, 10:37
dk

offline
Опыт: 60,293
Активность:
  1. Знаешь если герой умерает с крестом перерождения, то событие юнит умирает не срабатывает!
Так что это проверять не надо.
Старый 25.05.2006, 15:37

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 21:44.