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

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

Ответ
 
MDR
Адский кролик
offline
Опыт: 1,262
Активность:
Как триггерно приказать юниту использовать нестандартную способность?
Как триггерно приказать юниту использовать нестандартную абилу?
Старый 04.06.2007, 11:53
J
expert
offline
Опыт: 48,447
Активность:
используй действия:
  • Боевая еденица - Issue Order Targetiong A Unit - если для каста абилки нужно выбрать юнита в которого она будет кастоватся
  • Боевая еденица - Issue Order Targetiong A Point - если надо выбрать точку/область
  • Боевая еденица - Issue Order Targetiong A Destructible - декорацию
  • Боевая еденица - Issue Order Targetiong A Item - предмет
  • Боевая еденица - Issue Order With No Target - если ненадо выбирать никакую цель
в этих действиях ты выбираеш что за приказ будет отдаватся этуму юниту, во всех этих действиях распределены ВСЕ стандартные абилки которые распределены "по типу цели"
выбирай нужное тебе действие, там ты найдеш абилку на осное которой сделал этот нестандартный Spell, именно этим действием он и будет вызыватся.
Думаю понятно что юнит не должен иметь 2-ух абилок которые сделаны на основе одной стандартной абилки
Старый 04.06.2007, 12:13
MDR
Адский кролик
offline
Опыт: 1,262
Активность:
Понятно. Просто в списке тока стандартные абилы, вот и не понял
Старый 04.06.2007, 12:46
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
в случае если у твоей абилки нет приказа по-умолчанию, (например базировался спелл на предметной абиле, которые не воспринимают большей частью обычные приказы или же приказ был например, продать предмет) то можно с делать следующее - из прикрепленной карты из секции нестандартного кода (выбрать значок карты в древовидной структуре триггеров слева в редакторе триггеров) скопируй код и добавь себе в карту. Скопируй триггер check order. Добавь нужную тебе способность какому-нибудь юниту, которого в игре можно было бы выбрать и самому скастовать способность.

Запускаем игру, выбираем нашего юнита, кликаем по кнопке нашей способности: кастуем. Если все сделали правильно - видим сообщение, в котором либо есть строчка на английском и цифры либо просто цифры и пустая строчка взамен английских букв.
Английские буквы - это и есть строка приказа, которую используют действия описаные Jonом для отдачи приказа юниту.
Ничего удивительного, если не получается скастовать наш спел при отсутствии строки приказа на английском. Зато если есть цифры, поступаем так - запоминаем их. Закрываем игру, в редакторе же вмсесто отдачи приказа создаем новое действие customScript, в него пишем вызов одной из функций, которая каждая соответствует пункту, указаному Jonом выше:
  • IssueTargetOrderById(unit применяющий, integer приказ, widget цель) (данный приказ может использоваться как для нацеленных на юнита абил, так и на нацеленных на предмет или декорацию)
  • IssueBuildOrderById(unit применяющий, integer число, real X, real Y) (в данном приказе - равкод юнита, которого строим, можно посмотреть в редакторе РО)
  • IssuePointOrderById(unit применяющий, integer число-приказ, real X, real Y)
  • IssueImmediateOrderById(unit применяющий, integer число-приказ)
Там, где integer нужно будет вписать наше запомненное число в поле integer, в остальные же поля, соответственно впишем

unit - переменную-юнита, который должен исполнить приказ
widget - переменную-юнита, -предмет или -декорацию, которая является целью абилы.
real X, real Y - числа, обозначающие куда по Х и У будет направлен приказ.

Маленькая хитрость - если не понятно что куда писать, то проставьте в гуи все что надо в действия Jon`a (например, юнитов, координаты итд), а затем конвертируйте триггер в текст - и копируйте в наш custom script action нужные части (выставленных заранее юнитлв координаты итд)
Многое станет понятнее после просмотра примера.
вроде все
обновлено, добавлены примеры отдачи приказов по ид
Прикрепленные файлы
Тип файла: w3x GetOrderId.w3x (17.3 Кбайт, 175 просмотров )

Отредактировано FellGuard, 04.06.2007 в 16:41.
Старый 04.06.2007, 13:01
MDR
Адский кролик
offline
Опыт: 1,262
Активность:
FellGuard спасибо. а что если иконки спелла нету вообще? как например некоторые предметные абилы?

MDR добавил:
Да, и скрипт check order не работает на моей карте. Типа отсутствует название
Старый 04.06.2007, 18:43
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
Нужно из нестандартного скрипта карты скопировать функцию, я об этом написал.
Из тех, спеллов что не имеют иконки скорее всего кастуемых нет (или мало). Можно иконку дать, и переправить абилу (относится к предмету = нет)
Старый 04.06.2007, 19:26
MDR
Адский кролик
offline
Опыт: 1,262
Активность:
FellGuard Насчет иконки- не помогает. А нестандартный скрипт я первым делом скопировал.:)
Старый 04.06.2007, 19:28
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
MDR, ну тогда посмотри наличие всех переменных. Фз что у тебя там не пашет)
Кстати что за абилка?
Старый 04.06.2007, 19:32
MDR
Адский кролик
offline
Опыт: 1,262
Активность:
"Предмет: дополнительный опыт"
Не знаю, вроде все переменные есть.
Старый 04.06.2007, 20:11
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
затрудняюсь ответить на твой вопрос, приказ можно отдать когда он отслеживается. Здесь же нет возможности добавить абилу юниту и нажать кнопку -> отдача же приказов предмету с его абилами идет чере функцию - нативку UnitUseItem по хз каким законам. Так что если нет возможности даже добавить юниту абилу как бонус, ничего посоветовать не могу
Старый 05.06.2007, 08:13
Ответ

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

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

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

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



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