Вопрос: Что такое GUI?
Ответ: GUI расшифровывается как Graphical User Interface - графический интерфейс пользователя. Это триггеры, не переведенные в текст.
Вопрос: Что такое JASS?
Ответ: JASS расшифровывается как Just Another Scripting Syntax — событийно-ориентированный скриптовый язык программирования, который используется в триггерах при создании сценариев.
Ссылка на обучающую статью по JASS.
Вопрос: Я в совершенстве овладел GUI. Хочу освоить Jass, но не знаю с чего начать.
Ответ: Советую вам
ЭТУ статью.
Вопрос: Что такое нестандартный код карты и где его искать?
Ответ: См. скриншот
Вопрос: Как перевести триггеры на русский язык?
Ответ: Для этой цели существуют руссификаторы триггеров.
Ссылка на один из них.
Еще один - не полный, но более качественный.
Вопрос: Как создать способность с помощью триггеров?
Ответ: Вам поможет статья
Основы триггерных спеллов, а также советую посмотреть стандартные сценарии Blizzard, например "Конфетные Войны" (Extreme Candy War 2004).
Вопрос: Что нужно сделать, чтобы в начале не появлялись работники и ратуша (или аналог), и вообще отменить все правила игры в сражение (чтобы потом установить собственные)?
Ответ: Нужно удалить триггер "Иниц. сражения".
Вопрос: Что нужно сделать, чтобы игра начиналась с утра, а не с вечера?
Ответ: Создайте новый триггер, или поместите действие в имеющийся триггер с событием "Map initialization".
События:
Map initialization
Условия:
-
Действия:
Режим сражения: Use Melee Time of Day
или можете установить любое время суток действием Игра - Set Time of Day
Вопрос: Я сделал действие "Окружение - Create Weather Effect" установил правильно область, а погодный эффект почему-то не создается. В чем проблема?
Ответ: Для создания погодного эффекта мало применить действие "Окружение - Create Weather Effect", нужно также этот эффект включить действием "Окружение: Enable/Disable Weather Effect", поставьте его сразу после действия создания эффекта, и укажите "Last Created Weather Effect".
Вопрос: За убийство юнитов игрока-противника мне не дается золото. Что делать?
Ответ: Создайте новый триггер, или поместите действие в имеющийся триггер с событием "Map initialization".
События:
Map initialization
Условия:
-
Действия:
Игрок: Turn Player Flag On/Off: Turn Награда за убийство Вкл. for <игрок, за убийство юнитов которого требуется давать золото>
Настроить конкретные значения золота, получаемого за убийство юнита можно в редакторе объектов (РО), найдя требуемого юнита и отредактировав параметры
"Характеристики - награда за уничтожение - базовая: "
"Характеристики - награда за уничтожение - кол-во граней у кости: "
"Характеристики - награда за уничтожение - кол-во костей: "
Вопрос: Как сделать скрещивание предметов?
Ответ: Сперва создайте все необходимые предметы в редакторе объектов, затем сделайте триггер:
События:
Боевая единица - Generic Unit Event: A unit Получает предмет
Условия:
Boolean Comparison - Hero Has Item of Type: (Triggering unit) has an item of type <Предмет-ингредиент №1> равно Да
Boolean Comparison - Hero Has Item of Type: (Triggering unit) has an item of type <Предмет-ингредиент №2> равно Да
Действия:
Предмет - Remove: Remove (Item Carried By Hero of Type - Item carried by (Triggering unit) of type <Предмет-ингредиент №1> )
Предмет - Remove: Remove (Item Carried By Hero of Type - Item carried by (Triggering unit) of type <Предмет-ингредиент №2> )
Герой - Create Item For Hero: Create <конечный предмет> and give it to (Triggering unit)
Вопрос: Как сделать суммирование зарядов в предметах?
Ответ: Создайте переменную
ItemType типа "Тип предмета", далее триггер:
События:
Боевая единица - Generic Unit Event: A unit Получает предмет
Условия:
Or, Multiple Conditions:
Or- Any (Conditions) Are True:
Item Type Comparison - Item-type of (Реакция на событие - Item Being Manipulated) равно <тип предмета №1>
Item Type Comparison - Item-type of (Реакция на событие - Item Being Manipulated) равно <тип предмета №2>
Item Type Comparison - Item-type of (Реакция на событие - Item Being Manipulated) равно <тип предмета №3>
типов предметов может быть сколько угодно Действия:
Общие параметры - Set Variable: Set
ItemType = Item Type of (Item Being Manipulated)
Общие параметры - For Each Integer A Do Multiple Actions: For each (Integer A) from 1 to 6, do (Actions):
Цикл-действия
Общие параметры - If/Then/Else, Multiple Functions: If (All Conditions Are True) then do (Then Actions) else do (Else Actions):
Если - Условия
Item Type Comparison - Item-type of (Item carried by (Triggering unit) in slot (Integer A)) равно
ItemType Item Comparison - Item-type of (Item carried by (Triggering unit) in slot (Integer A)) не равно (Item Being Manipulated)
То-Действия
Предмет - Set Charges Remaining: Set charges remaining in Item carried by (Triggering unit) in slot (Integer A) to Arithmetic (Предмет - Item charges remaining in Item carried by (Triggering unit) in slot (Integer A) + Предмет - Item charges remaining in (Item Being Manipulated)
Предмет - Remove (Item Being Manipulated)
Вопрос: Что нужно сделать, чтобы когда юнит наступал на "Ножной переключатель" выполнялись мои действия, например, создавался энергетический мост?
Ответ: Создайте область прямо на "Ножном переключателе":
Затем создайте триггер:
События:
Боевая единица - Unit Enters Region: A unit enters <область на переключателе>
Условия:
Никакие условия необязательны, но если вам нужно сделать проверку например на какого-то определенного юнита, вы, конечно же, можете сделать её. Действия:
Триггер - Turn Off: Turn off (This trigger)
- это действие нужно для того, чтобы при повторном входе в эту область триггер не сработал снова. Декорация - Kill: Kill <ножной переключатель, на котором находится область> -
это действие нужно для того, чтобы создать визуальный эффект, что переключатель был приведен в действие. Далее идут любые ваши действия, например, создание энергетического моста: Декорация - Create: Create a Энергетический мост (З-В) at Center of <область, в которой должен появится мост> facing <угол, под которым создается мост (т.е. в какую сторону смотрит)> with <размер, обычно ставится 1> and variation <вариация, у мостов 0>
Вопрос: Как сделать табличку в правом верхнем углу экрана что бы она показывала сколько каждый игрок убил монстров?
Ответ: Откройте редактор триггеров, создайте переменную типа "целочисленная", поставьте галочку "массив", назвать её можно например
Kills. Создайте переменную типа "Таблица рекордов", назовите её, например,
TheLeaderBoard. Создайте переменную типа "Группа игроков", назовите её, например,
Playersgroup. Добавьте в эту переменную всех игроков действием Группа игроков - Add Player.
Теперь создайте 3 триггера: Set Up Leaderboard, Update Leaderboard, Change Value.
Триггер Set Up Leaderboard:
События:
Map initialization
Условия:
-
Действия:
Общие параметры - For Each Integer A, Do Action: For each (Integer A) from 1 to 4
(4 - количество игроков), do Общие параметры - Set Variable: Set
Kills[(IntegerA)] = 0
Общие параметры - Wait: Wait 1.00 seconds
Таблица рекордов - Create: create a leaderboard for (All Players) titled Врагов убито
Общие параметры - Set Variable: Set
TheLeaderBoard = Last created leaderboard
Общие параметры - If/Then/Else: If (Player Slot Status Comparison - Игрок 1 (красный) slot status равно Играет) then do Таблица рекордов - Add Player: Add Игрок 1 (красный) to Last created leaderboard with label (Игрок - Player Name: Name of Игрок 1 (Красный)) and value 0
Общие параметры - If/Then/Else: If (Player Slot Status Comparison - Игрок 2 (синий) slot status равно Играет) then do Таблица рекордов - Add Player: Add Игрок 2 (синий) to Last created leaderboard with label (Игрок - Player Name: Name of Игрок 2 (синий)) and value 0
Общие параметры - If/Then/Else: If (Player Slot Status Comparison - Игрок 3 (сине-зеленый) slot status равно Играет) then do Таблица рекордов - Add Player: Add Игрок 3 (сине-зеленый) to Last created leaderboard with label (Игрок - Player Name: Name of Игрок 3 (сине-зеленый)) and value 0
Общие параметры - If/Then/Else: If (Player Slot Status Comparison - Игрок 4 (фиолетовый) slot status равно Играет) then do Таблица рекордов - Add Player: Add Игрок 4 (фиолетовый) to Last created leaderboard with label (Игрок - Player Name: Name of Игрок 4 (фиолетовый)) and value 0
и так для всех игроков. Триггер Update Leaderboard:
События:
-
Условия:
-
Действия:
Таблица рекордов - Change Player Value: Change the value for Игрок 1 (красный) in
TheLeaderBoard to
Kills[1] Таблица рекордов - Change Player Value: Change the value for Игрок 2 (синий) in
TheLeaderBoard to
Kills[2] Таблица рекордов - Change Player Value: Change the value for Игрок 3 (сине-зеленый) in
TheLeaderBoard to
Kills[3] Таблица рекордов - Change Player Value: Change the value for Игрок 4 (фиолетовый) in
TheLeaderBoard to
Kills[4] и так для всех игроков. Триггер Change Value:
События:
Боевая единица Player-Owned Unit Event: A unit owned by Игрок 12 (коричневый) Умирает
Условия:
Boolean Comparison - Игрок - Player In Player Group: Owner of Unit - Owner of (Killing unit) is in
Playersgroup равно Да
Действия:
Общие параметры - Set Variable: Set
Kills[Игрок - Player Number: Player number of (Owner of Killing unit)] = Arithmetic:
Kills[Игрок - Player Number: Player number of (Owner of Killing unit)] + 1
Триггер - Run (ignoring conditions): Run Update Leaderboard <gen> (ignoring conditions)
Таблица рекордов готова.
Вопрос: Как уменьшить лаги в карте?
Ответ: Лаги в карте могут возникнуть по многим причинам. Но наиболее частая причина их - утечки в коде. Если вы хотите научиться вручную удалять утечки прочтите
ЭТУ статью. Если вы не хотите заморачиваться или просто ленивы вам
СЮДА