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

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

Быстрый поиск на странице - Ctrl + F

Закрытая тема
 
alexkill

offline
Опыт: 19,172
Активность:
Проводник по способностям, хитростям и популярным вопросам
Авторы: PitzerMike, alexkill
Перевод: alexkill
На форуме существует много тем с вопросами о создании способностей/заклинаний, но обработать их и собрать воедино все разумные идеи почему-то никто доселе не решился. Нашел эту статью на известном буржуйском сайте, где автор рассказывает о некоторых хитростях редактора объектов и редактора триггеров Warcraft III, касающихся создания заклинаний. Это руководство будет полезно для новичков, однако пару интересных идей могут почерпнуть и опытные мапмэйкеры. Некоторые вопросы к тому же сопровождаются наглядными примерами.
Далее следует вольный перевод статьи с моими замечаниями по тому или иному поводу. Итак, начну по порядку - прим. alexkill

Раздел 1. Вопросы о способностях

» 1. Как сделать нелетающего воина летающим?
  • Amrf (Превратиться в ворона)
Добавление этой способности позволяет изменять высоту полета наземной боевой единицы (со всеми вытекающими из этого неприятными последствиями, связанными с пафингом – прим. alexkill).
call UnitAddAbility(un, 'Amrf')
call UnitRemoveAbility(un, 'Amrf')
После добавления и удаления способности вы можете корректировать высоту полета боевой единицы un, используя функцию SetUnitFlyHeight, даже если это наземная боевая единица.
» 2. Как сделать боевую единицу невыделяемой и неуязвимой?
  • Aloc (Москиты)
Боевая единица, которая обладает способностью “Москиты”, становится невыделяемой, ее нельзя указать в качестве цели и она игнорирует любые пределы пафинга *(pathing)*. Это означает, что контролировать и отдавать приказы этой боевой единице можно исключительно при помощи триггеров. Также не отображается полоса жизни игрового персонажа над его головой.
Скрипт
call UnitRemoveAbility(u, 'Aloc')
не сработает, если Вы захотите избавить боевую единицу от способности “Москиты”. Следовательно, нужно превратить боевую единицу в другую, временную, форму, а затем мгновенно превратить назад. Однако если боевая единица превратиться, используя способность “Темный” (о ней - чуть позже, - прим. alexkill), перед дальнейшим добавлением “Москитов”, она станет невыделяемой, но все еще останется целью для врагов, а также будет подчиняться правилам пафинга.
Другой способ отобрать “Москитов”:
  • спрятать боевую единицу;
  • удалить способность “Москиты”;
  • сделать боевую единицу снова видимой.
function UnitRemoveLocust takes unit u returns nothing
    local boolean backup = not IsUnitHidden(u)
    call ShowUnit(u, false)
    call UnitRemoveAbility(u, 'Aloc')
    call ShowUnit(u, backup)
endfunction
Это решение имеет и побочные эффекты:
  1. Полоса жизни над боевой единицей, как и имя игрока при наведении мышью на боевую единицу, больше не будут видны никогда. Это своеобразная уловка, если Вам необходимо сокрыть эти данные.
  2. Пропадет возможность указать боевую единицу в качестве цели заклинания (проблема решается триггерно).
  3. Выбирать боевую единицу станет возможно только рамкой.
» 3. Как сделать способность-пустышку, поменять ID способности и для чего нужен "Канал"?
  • ANcl (Канал)
”Канал” используется в качестве способности-пустышки *(dummy)*, не имеющей реального воздействия в игре. Она может быть использована для создания триггерного эффекта. Вы можете определить, является ли целью заклинания боевая единица, точка, область воздействия, либо цели нет вообще, показана ли иконка способности на карте команд. Также в параметрах способности настраивается:
  • время, в течении которого она длится;
  • отменяет ли применение способности другие способности воина;
  • является ли способность материальной, универсальной и т.п.
Благодаря возможности изменения базового ID способности на основе “Канала”, Вы можете без проблем использовать несколько способностей на основе “Канала” для одной боевой единицы. Безусловно, реальное воздействие способности нужно задавать триггерно.
function Channel_Conditions takes nothing returns boolean
  return GetSpellAbilityId() == <channel ability id>  // где channel ability id - равкод способности на основе "Канала"
endfunction

function Channel_Actions takes nothing returns nothing
endfunction

function Channel takes nothing returns nothing
  local trigger t = CreateTrigger()
  call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_SPELL_CAST)
  call TriggerAddCondition(t, Condition(function Channel_Conditions))
  call TriggerAddAction(t, function Channel_Actions)
endfunction
Начиная с патча 1.18 и выше “Канал” без проблем работает в спеллбуках и сочетается с улучшениями. Единственная проблема способностей на основе “Канала” – они могут быть отменены оглушающими способностями. Для предотвращения этого замените Ваши оглушающие способности способностями на основе ANab (Кислотная бомба).
» 4. Как увеличить запас здоровья и маны у героя, а также его защиту и скорость перемещения?]
  • AId1, AItg, AIlf, AImb, AIsi, Aamk, AIsr, AIdd, AIas, AIms, Arel, AIrm, AIcs (Повышение защиты, Повышение силы атаки, Увеличение запаса здоровья, Увеличение запасы маны, Увеличение поля зрения, Повышение характеристик, Уменьшение урона от магии, Defend Item, Attack Speed, Повышение скорости перемещения, Восстановление здоровья, Восстановление маны, Смертельный удар)
Эти предметные способности могут быть добавлены как способности боевой единицы для изменения показателей защиты, атаки, жизни, маны, поля зрения, силы, ловкости, разума, сопротивления магии, уменьшения и отражения урона, скорости атаки, скорости передвижения, смертельного удара, восстановления жизни и маны, боевой единицы. Все эти способности также будут работать и с отрицательными значениями, и Вы с их помощью сможете понизить показатели защиты, атаки и т.п. Однако, для увеличения поля зрения отрицательные значения можно использовать лишь в том случае, когда у боевой единицы отсутствуют способности, позволяющие обнаружить невидимых врагов.
Способность ‘AIdd’ имеет те же поля, что и ‘Aegr’ (Благословление Элуны), а именно: “Снижение магического урона”, “Вероятность отклонения”, ”Получено урона” и т.д. К сожалению, поля “Фактор скорости атаки” и “Фактор скорости перемещения” не работают.
Особенный баг, позволяющий Вам корректировать максимальные значения жизни и манны боевой единицы без добавления постоянной способности: просто создайте нестандартные способности на основе ‘AIlf’ (Увеличение запаса здоровья) или ‘Aimb’ (Увеличение запаса маны) с уровнем, большим 1. Далее установите бонус первого уровня - «0», а для второго – противоположный тому, что Вы хотите получить. Например, «-200», если Вы желаете добавить «200». Далее используйте функции UnitAddAbility и SetUnitAbilityLevel для добавления способности второго уровня вашей боевой единице (спеллбук создавать не нужно! – прим. alexkill). Затем немедленно удалите способность, используя функцию UnitRemoveAbility. Таким образом, вы измените максимальное значение жизни/маны без сохранения каких-либо способностей.
я не проверял это с другими предметными способностями, но у кого много свободного времени – может поэкспериментировать.
Также я хотел бы обратить внимание на поле “Без промаха” предметной способности “Смертельный удар” (оно же есть и у обычной способности героя). Установив значение “Да”, воин-стрелок (маг и т.п.) сможет без промаха поражать врагов, даже если те будут находится на возвышенностях. – прим. alexkill.
» 5. Как динамически создать декорацию?
  • ANvc (Вулкан)
Это единственная способность, которая может создать разрушаемый объект/декорацию, что в некоторых случаях может оказаться полезным.
» 6. Как триггерно переместить воинов через портал?
  • Awrp (Перемещение через портал)
Эта способность может быть добавлена в любой момент любой боевой единице. Затем при помощи функций WaygateSetDestination и WaygateActivate настраивается перемещение. Блокираторы пути могут использоваться для запрета перемещения летающих боевых единиц.
function SetupWaygate takes unit u, unit target returns nothing
   call UnitAddAbility(u, <waygate ability>)
   call UnitAddAbility(u, 'Aivs')
   call UnitAddAbility(u, 'Agho')
   call UnitAddAbility(u, 'Aloc')
   call WaygateSetDestination(u, GetUnitX(target), GetUnitY(target))
   call WaygateActivate(u, true)
endfunction

function ConnectRects takes rect left, rect right returns nothing
   local unit lu = CreateUnit(Player(15), 'ncop', GetRectCenterX(left), GetRectCenterY(left), 0)
   local unit ru = CreateUnit(Player(15), 'ncop', GetRectCenterX(right), GetRectCenterY(right), 0)
   call SetupWaygate(lu, ru)
   call SetupWaygate(ru, lu)
endfunction
немного подправил код: удалил утечки и оптимизировал – прим. alexkill
» 7. Как создать свой магазин с возможность добавления/удаления предмета или воина?
  • Apit, Aneu, Aall, Asid (Лавка: купить предмет, Выбрать героя, Общие магазины, Продажа предметов)
Вместе эти способности составляют магазин, который продает предметы исключительно для своего владельца. Замечу, что функция AddItemToStock также сработает. Функция RemoveItemFromStock срабатывает только для предметов, добавленных с использованием триггеров, поэтому Вам необходимо удалить все продаваемые и сделанные предметы в соответствующих полях магазина, а вместо этого добавить их триггерно при инициализации карты.
Замените способность ‘Asid’ способностью ‘Asud’ (Продажа войск), если хотите получить магазин, продающих войска и работающий с функциями AddUnitToStock и RemoveUnitFromStock, позволяющими добавлять и удалять воинов из магазина.
Удалите способность ‘Aall’, чтобы сделать магазин нейтральным.
Побочным эффектом способности ‘Aneu’ (Выбрать героя) является доступ к другим заклинаниям боевой единицы. Даже вражеский воин может использовать способности обладателя ‘Aneu’.
» 8. Как сделать, чтобы боевая единица могла атаковать и при этом оставалась невидимой?
  • Apiv, Agho, Aeth (Постоянная невидимость, Дух, Дух(видимый))
Эти способности делают боевую единицу невидимой для врагов без триггерной установки невидимости. Зачастую это лучший вариант нежели остановка боевой единицы (PauseUnit) и добавление способности “Москиты”. Воины с постоянной невидимостью теряют ее при атаке. Поэтому способность полезна при создании боевых единиц типа Духа Волка третьего уровня.
Воины, у которых одновременно присутствуют способности “Постоянная невидимость” и “Дух”, остаются невидимыми даже когда атакуют.
Кстати, способность ‘Aeye’ (Невидимый страж) автоматически добавляет вызванной боевой единице постоянную невидимость.
вспомните, как извращались когда-либо Вы, пытаясь сделать юнита невидимым – прим. alexkill
  • Abur, Abdt (Закопаться, Обнаружение закопавшихся)
Все закопавшиеся воины видны только своему владельцу.
» 9. Как определить рядом стоящее дерево?
  • Ahrl (Добывать ресурсы)
Может быть использована для определения, является ли разрушаемый объект деревом.
function IsDestructableTree takes destructable d returns boolean
  local boolean i = IsDestructableInvulnerable(d)
  local unit u = CreateUnit(Player(15), ‘ugho’,GetDestructableX(d), GetDestructableY(d), 0)
  local boolean result = false
  call UnitAddAbility(u, 'Aloc')
     if i then
       call SetDestructableInvulnerable(d, false)
     endif
  set result = IssueTargetOrder(u, "harvest", d)
  call RemoveUnit(u)
     if i then
       call SetDestructableInvulnerable(d, true)
     endif
  set u  = null
  return result
endfunction
весьма нужная функция при создании движения на стрелках для определения преград. Я немного модернизировал первоначальный код, ибо возникала утечка + удалил лишнюю операцию – прим. alexkill
» 10. Как отобрать у боевой единицы способность атаковать?
  • Abun(Склад)
Добавленная боевой единице способность лишает ее возможности атаковать других воинов. В этом случае даже удаляется иконка атаки на карте команд. Для того чтобы вернуть боевой единице возможность атаковать, просто удалите способность. “Склад” в сочетании со способностями сфер дают Вам полный контроль над индексом атаки.
» 11. Можно ли добавить бафф боевой единице?
  • Aasl (Аура замедления (торнадо))
Эта аура идеально подходит для добавления воину баффа, не имеющего никакого эффекта. Просто замените значения следующих полей в параметрах способности: “Данные – Фактор скорости перемещения” - “0.00” и “Характеристики – Разрешенные цели” - “Сам воин”. У способности нет иконки. Также Вы сможете добавлять боевой единице несколько способностей на основе ‘Aasl’, при этом различные иконки баффов будут сочетаться, а это, несомненно, плюс. Поскольку ‘Aasl’ является повреждающей аурой, то название баффа в игре всегда будет отображаться красным цветом, но Вы можете это изменить, используя в названии код цвета (поле “Текст – Подсказка” в параметрах баффа – прим. alexkill). Например, |cffff0000Повреждающий бафф|r или |cff00ff00Полезный бафф|r. Если же Вы когда-либо найдете предел для ‘Aasl’, то также сможете использовать другие ауры и затем скрывать их в неактивном спеллбуке.
» 12. Есть ли возможность без особых проблем прикрепить боевой единице модель оружия и т.п.?
  • ACnr (Аура восстановления здоровья)
Идеальная способность для прикрепления боевым единицам эффектов с сохранением цвета команды. Просто установите нулевое значение в поле “Данные – Объем восстановленного здоровья” и значение “Сам воин” в поле “Характеристики – Разрешенные цели”. Затем задайте модель, которую Вам нужно прикрепить (“Графика - Цель”), а в поле “Графика – Воздействие на цель 1” впишите названия соответствующих точек прикрепления.
Вот эти точки:
overhead – над головой
head – голова
chest – за спиной
origin – туловище
hand – рука
foot –нога
weapon – оружие (только для героев)
sprite – для зданий
medium – для зданий
large – для зданий
К точке прикрепления можно добавить модификаторы:
left – лево
right – право
mount – для обездвиженных боевых единиц
rear – для четвероногих
first – первый (для зданий)
second – второй (для зданий)
third – третий (для зданий)
fourth – четвертый (для зданий)
fifth – пятый (для зданий)
sixth – шестой (для зданий)
rallypoint – для зданий
Как пример: “foot left mount” – эффект будет прикреплен к левой ноге обездвиженной боевой единицы.
Заметьте также, что у некоторых моделей могут отсутствовать те или иные точки прикрепления.
Этим действием Вы привяжете модель к боевой единице со способностью ‘ACnr’, причем цвет команды модели будет соответствовать владельцу боевой единицы. Это также сработает в сочетании со способностями перевоплощения. Если случится, что у модели вдруг исчезнет цвет команды, следующий код исправит ситуацию:
call SetUnitColor(<unit>, GetPlayerColor(GetOwningPlayer(<unit>))) // где <unit> - модель прикрепленного эффекта
» 13. Как дать воину способность строить определенный тип зданий без изменения параметров этого воина в редакторе объектов?
  • AIbf (Игрушечная ферма)
Добавление этой способности позволяет боевым единицам возводить определенное здание, регулируя время его построения в параметрах способности.
» 14. Как дать воину дополнительную атаку?
  • Apxf (Пламя феникса)
Способность дает боевой единице дополнительную атаку, поражающую несколько целей, которая не зависит от обычной атаки этой единицы. У способности есть свое время перезарядки, дистанционная атака, возможность регулировать величину начального и последующего урона, а также она автоматически накладывается на каждого врага в определенной области. Поле способности “Характеристики - Длительность” определяет, насколько долго цель получает урон и сколько пройдет времени до следующей возможности атаковать ту же цель. Также существует возможность при помощи предметов добавить боевой единице несколько способностей на основе “Пламени феникса”, и все они будут срабатывать одновременно.
» 15. Как установить связь между способностями?
  • Acoa, Acoh, Adec (Посадить лучницу на спину, Расседлать, Оседлать гиппогрифа)
Особенно полезны, когда возникает необходимость объединить способности, а также для любых способностей, включающих две составляющие особого типа, поскольку Вы можете с легкостью отследить начало применения способности.
» 16. Как сделать способность, представляющую собой залп снарядов?
  • ANcs (Ракетный удар)
Если Вам нужна способность с несколькими последовательно вылетающими снарядами, особенно для создания AOE-заклинаний, используйте “Ракетный удар”. Просто установите количество выстрелов согласно количеству снарядов, которое Вам необходимо.
» 17. Как заманить воинов в определенную область?
  • AImo (Приманка)
Завлекает всех нейтрально-враждебных воинов в определенных пределах. Также Вы можете регулировать временной интервал, в течение которого приманиваются воины.
» 18. Какую способность лучше использовать в качестве основы для заклинания с целью – боевой единицей?
  • ANab, AEsh (Кислотная бомба, Отравленный нож)
Способность “Кислотная бомба” весьма многогранна и является лучшей основой для способностей с целью - боевой единицей. У нее много параметров, например, уменьшение скорости боя и перемещения, снижение защиты, основной урон, дополнительный урон, бафф, анимация дистанционной атаки. Все они при необходимости могут быть удалены. Также способность не оглушает и не имеет относящихся к цели ограничений.
У способности “Отравленный нож” похожие параметры, за исключением снижения защиты. К тому же, она отображает основной урон в виде зеленого исчезающего текста над головой воина-цели. Удалить эффект и звук можно, заменив баффом-пустышкой установленный по умолчанию бафф. Чтобы убрать всплывающий текст над головой жертвы, отображающий величину урона, установите нулевое значение поля "Данные - Начальный урон" в параметрах способности. Урон в этом случае должен наносится триггерно.
» 19. Как изменить имя персонажа в процессе игры и сменить его модель?
  • Sca1 (Темный)
Добавление воину способности “Темный” превращает его в боевую единицу типа, определенного в соответствующем поле способности. Это может использоваться для изменения какого-либо параметра, например, имени модели боевой единицы в процессе игры либо просто для выполнения трансформирующих способностей в сочетании с “Каналом”. Не забудьте очистить поле “Технологии – Требования” в настройках способности “Темный”. Единственная проблема этой способности состоит в том, что она добавляет текущее значение бонусов защиты, урона, здоровья и маны, полученных от предметов, ауры и показатели силы, ловкости и разума превращаемой боевой единицы результирующей боевой единице. Это означает, что идею трансформировать героев, нельзя назвать хорошей. Обычная же боевая единица не подвергается влиянию предметов и показателей силы, ловкости и разума, поэтому камнем преткновения являются баффы, полученные от аур. Эти баффы могут быть легко удалены перед превращением, а затем автоматически добавлены, поэтому это не проблема.
call UnitRemoveAbility(u, 'BHab')
call UnitRemoveAbility(u, 'BUau')
call UnitRemoveAbility(u, 'BUav')
call UnitRemoveAbility(u, 'BEah')
call UnitRemoveAbility(u, 'BHad')
call UnitRemoveAbility(u, 'BEar')
call UnitRemoveAbility(u, 'BOae')
call UnitRemoveAbility(u, 'BOac')
call UnitRemoveAbility(u, 'Bapl')
call UnitRemoveAbility(u, 'Bplg')
call UnitRemoveAbility(u, 'Boar')
call UnitRemoveAbility(u, 'Babr')
call UnitRemoveAbility(u, 'Bakb')
call UnitAddAbility(u, <chaos ability id>) // где <chaos ability id> - равкод способности на основе "Темный"
Этот скрипт удалит все баффы ауры перед применением способности "Темный". Если у Вас в карте имеются нестандартные баффы, необходимо удалить и их.
» 20. Какие способности не сбивают текущего приказа воина?
  • Absk, Adef, Amdf, ANms, AEim, AHds (Безумие, Укрыться за щитом, Магическая защита, Магический щит, Жар преисподней, Божественный щит)
Эти способности не сбивают текущего приказа мага, когда используются. Последние пять могут быть активированы и деактивированы (если это разрешено в игровых константах). Упомянутые способности могут с легкостью использоваться как пустышки посредством сброса всех эффектов на «0» и отслеживанием отдачи или отмены приказов строкового типа. Возможно, Вам нужно удалить бафф, используя native-функцию UnitRemoveAbility после получения приказа, если более не нужно показывать этот бафф на боевой единице.
Отрицательная сторона использования вышеупомянутых способностей состоит в том, что при их удалении отмена приказа выполняется дважды. Но можно написать несложный алгоритм, чтобы не отслеживать эти отмены приказа.
// Отслеживание деактивации:
function WasUnOrder takes nothing returns boolean
  return OrderId2String(GetIssuedOrderId()) == "undefend" or OrderId2String(GetIssuedOrderId()) == "magicundefend" or OrderId2String(GetIssuedOrderId()) == "unmanashield" or OrderId2String(GetIssuedOrderId()) == "unimmolation" or OrderId2String(GetIssuedOrderId()) == "undivineshield"
endfunction
// Отслеживание активации/деактивации способности "Укрыться за щитом"
function Defense_Condition takes nothing returns boolean
  return GetTriggerEventId() != EVENT_PLAYER_UNIT_ISSUED_ORDER or ((OrderId2String(GetIssuedOrderId()) == "defend" or OrderId2String(GetIssuedOrderId()) == "undefend") and GetUnitAbilityLevel(GetOrderedUnit(), 'Adef') > 0 and GetUnitState(GetOrderedUnit(), UNIT_STATE_LIFE) > 0)
endfunction

function TriggerRegisterDefenseEvent takes trigger t returns triggercondition
  call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_ISSUED_ORDER)
  return TriggerAddCondition(t, Condition(function Defense_Condition))
endfunction
// Отслеживание активации/деактивации способности "Магическая защита"
function MagicDefense_Condition takes nothing returns boolean
  return GetTriggerEventId() != EVENT_PLAYER_UNIT_ISSUED_ORDER or ((OrderId2String(GetIssuedOrderId()) == "magicdefend" or OrderId2String(GetIssuedOrderId()) == "magicundefend") and GetUnitAbilityLevel(GetOrderedUnit(), 'Amdf') > 0 and GetUnitState(GetOrderedUnit(), UNIT_STATE_LIFE) > 0)
endfunction

function TriggerRegisterMagicDefenseEvent takes trigger t returns triggercondition
  call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_ISSUED_ORDER)
  return TriggerAddCondition(t, Condition(function MagicDefense_Condition))
endfunction
// Отслеживание активации/деактивации способности "Магический щит"
function ManaShield_Condition takes nothing returns boolean
  return GetTriggerEventId() != EVENT_PLAYER_UNIT_ISSUED_ORDER or ((OrderId2String(GetIssuedOrderId()) == "manashield" or OrderId2String(GetIssuedOrderId()) == "unmanashield") and GetUnitAbilityLevel(GetOrderedUnit(), 'ANms') > 0 and GetUnitState(GetOrderedUnit(), UNIT_STATE_LIFE) > 0)
endfunction

function TriggerRegisterManaShieldEvent takes trigger t returns triggercondition
  call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_ISSUED_ORDER)
  return TriggerAddCondition(t, Condition(function ManaShield_Condition))
endfunction
// Отслеживание активации/деактивации способности "Жар преисподней"
function Immolation_Condition takes nothing returns boolean
  return GetTriggerEventId() != EVENT_PLAYER_UNIT_ISSUED_ORDER or ((OrderId2String(GetIssuedOrderId()) == "immolation" or OrderId2String(GetIssuedOrderId()) == "unimmolation") and GetUnitAbilityLevel(GetOrderedUnit(), 'AEim') > 0 and GetUnitState(GetOrderedUnit(), UNIT_STATE_LIFE) > 0)
endfunction

function TriggerRegisterImmolationEvent takes trigger t returns triggercondition
  call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_ISSUED_ORDER)
  return TriggerAddCondition(t, Condition(function Immolation_Condition))
endfunction
// Отслеживание активации/деактивации способности "Божественный щит"
function DivineShield_Condition takes nothing returns boolean
  return GetTriggerEventId() != EVENT_PLAYER_UNIT_ISSUED_ORDER or ((OrderId2String(GetIssuedOrderId()) == "divineshield" or OrderId2String(GetIssuedOrderId()) == "undivineshield") and GetUnitAbilityLevel(GetOrderedUnit(), 'AHds') > 0 and GetUnitState(GetOrderedUnit(), UNIT_STATE_LIFE) > 0)
endfunction

function TriggerRegisterDivineShieldEvent takes trigger t returns triggercondition
  call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_ISSUED_ORDER)
  return TriggerAddCondition(t, Condition(function DivineShield_Condition))
endfunction
Вышеуказанные события не совместимы с остальными событиями для приказа без указания цели потому как используется условие триггера. В случае, когда Вам необходимо различить отдачу и отмену приказа, существует функция WasUnOrder. Первая из описанных способностей, “Безумие”, не требует использования этого алгоритма, потому что не может быть активирована/деактивирована.
» 21. Как создать кнопку?
  • Arpl, Arpm, Arpb, Afzy, Apsh, Amel, Arai, AUcb (Власть порчи, Восстановление маны, Восстановить, Ярость, Бегство в астрал, Погрузить труп, Оживить мертвых, Трупоеды)
У этих способностей есть автокаст (autocast), но, когда нажимается левая клавиша, не требуется указание цели. Полезны для создания кнопок, выполняющих различные действия: когда нажата левая клавиша и когда нажата правая клавиша. Просто отследите приказ для определения нажатия левой клавиши и приказы использования/неиспользования способности для определения нажатой правой клавиши мыши. Последние три способности требуют наличия мертвых тел для активации. Для их создания вы просто можете дать тому же воину скрытый спеллбук со способностями 'Amtc' (Пассажир) и 'Agyd' (Создать труп).
» 22. Как навсегда изменить размер боевой единицы?
  • Ablo (Кровожадность)
Увеличивает размер боевой единицы, подвергшейся воздействию способности. Обычно для этих целей используются невидимые боевые единицы (dummy). Чтобы навсегда сохранить измененный размер модели, просто установите нулевое значение поля «Длительность воздействия». Путем триггерного удаления баффа "Кровожадность" (‘Bblo’), можно вернуть нормальный размер воина.
» 23. Как в процессе игры изменить величину урона воина?
  • AOcr (Смертельный удар)
Если точная величина урона боевой единицы не определена заранее, но Вам нужно обнулить весь ее урон, просто измените значение поля «Данные – Шанс на критический удар» - «100» и поля «Данные – Увеличение урона» - «-1». Ввиду того, что урон всегда будет равен нулю, он не будет отображаться красными цифрами над головой жертвы и желаемый эффект будет достигнут.
» 24. Для чего нужен спеллбук (книга заклинаний)?
  • Aspb (Книга заклинаний (спеллбук))
“Книга заклинаний” является вместилищем 11 других способностей. Она может содержать активные способности наравне с автокаст- и пассивными способностями, и даже способности героев.
Главная особенность способности заключается в том, что она сохраняет эффект пассивных способностей, находящихся в спеллбуке даже в том случае, когда 'Aspb' отключена для игрока. Спеллбук может использоваться для скрытия иконок любой пассивной способности и, таким образом, экономить ячейки на карте команд.
Второй особенностью является то, что Вы можете добавить и удалить способности в спеллбук в любой момент игры. Это осуществляется путем добавления боевой единице второго спеллбука со способностью, которую необходимо добавить, и отключением этого второго спеллбука. После выполнения этого действия способность отобразится в первом спеллбуке, в то время как второй будут невидим. Чтобы это подействовало, оба спеллбука должны иметь один и тот же базовый ID приказа. Для каждой способности, которую нужно добавить в процессе игры, Вам необходим такой дополнительный спеллбук.
Еще одна отличительная особенность: геройские способности в спеллбуках доступны для улучшения! Проблема лишь в том, что их начальный уровень – 1, а не нулевой (если они изначально находились в спеллбуке). Но это легко решается триггерно. Просто-напросто вначале добавьте эти способности герою (в редакторе объектов). Затем отлавливайте изучение героем способности, удаляйте эту способность и добавляйте ее в спеллбук.
function Learn_Actions takes nothing returns nothing
  if GetLearnedSkillLevel() == 1 and GetLearnedSkill() == 'AHwe' then // к примеру, изучим "Дух воды"
    call UnitRemoveAbility(GetTriggerUnit(), GetLearnedSkill()) 
    call UnitAddAbility(GetLearningUnit(), 'Aspb') // 'Aspb' - равкод спеллбука с заклинанием "Дух воды"
    call UnitMakeAbilityPermanent(u, 'Aspb') // сделаем способности постоянными
    call UnitMakeAbilityPermanent(u, 'AHwe')
  endif
endfunction

function Learn takes nothing returns nothing
  local trigger t = CreateTrigger() // создание динамического триггера
  call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_HERO_SKILL) // событие - боевая единица приобретает способность
  call TriggerAddAction(t, function Learn_Actions) // создание действия для динамического триггера
endfunction

Раздел 2. Вопросы о классификациях войск

» 1. Как убрать у воина все его способности и обездвижить?
  • Страж (ward)
Если классификация боевой единицы – Страж, исчезнет его карта команд и способности. Помимо этого, никаких изменений с воином не произойдет. Однако у боевой единицы все еще останется возможность выполнять приказ правой кнопкой мыши. Если же Вы хотите заблокировать и перемещение боевой единицы, используйте следующий код:
function Catch_Order_Actions takes nothing returns nothing
  if GetIssuedOrderId() == OrderId("smart") then
    call PauseUnit(GetOrderedUnit(), true)
    call IssueImmediateOrder(GetOrderedUnit(), "stop")
    call PauseUnit(GetOrderedUnit(), false)
  endif
endfunction

function Catch_Order takes nothing returns nothing
  local trigger t = CreateTrigger()
  call TriggerRegisterUnitEvent(t, gg_unit_hpea_0006, EVENT_UNIT_ISSUED_TARGET_ORDER)
  call TriggerRegisterUnitEvent(t, gg_unit_hpea_0006, EVENT_UNIT_ISSUED_POINT_ORDER)
  call TriggerAddAction(t, function Catch_Order_Actions)
endfunction
» 2. Как сделать, чтоб воин не убегал, когда его атакуют?
  • Работник (peon)
У классификации Работник есть главный недочет. Она отображает иконку незанятого работника, когда боевая единица стоит на месте. Если же классификация Работник была добавлена в процессе игры, то иконка не будет появляться. К тому же Вы создаете боевую единицу, игнорирующую врагов.
call UnitAddType(u, UNIT_TYPE_PEON)
Если Вы к тому же установите значение поля “Может бежать” – Нет в настройках соответствующей боевой единицы, то она не будет убегать даже когда ее атакуют.
Для создания боевой единицы, игнорирующей всех врагов, кроме тех, которые ее атакуют, Вы можете использовать способность ‘Apiv’ (Постоянная невидимость) с длительность, равной «-1» и значением поля “Автонахождение целей атаки” – Нет. Тогда воин будет видим, но не искать цели для атаки.
""
» 3. Как создать уникальный тип войск?
  • Самоубийца (sapper)
Воины со способностью ‘Asds’ (Взорвать), например, подрывная бригада, автоматически классифицируются самоубийцами – погибающими, атакуя врага. Во многих случаях Вам, возможно, не понадобится эта особенность, но можно злоупотребить данной классификацией, обозначив ею определенный тип войск. Затем можно проверить классификацию воина в поле “Разрешенные цели” характеристик Вашей способности. Это часто заменяет много триггерной работы.

Раздел 3. Вопросы о функциях

» 1. Как сделать, чтоб при морфе не исчезали способности, добавленные триггерно?
  • UnitMakeAbilityPermanent (Сделать способность боевой единицы постоянной)
native UnitMakeAbilityPermanent takes unit whichUnit, boolean permanent, integer abilityId returns boolean
Эта функция позволяет сохранить способности у воина, который подвергся какого-либо роду трансформации (способности морфа). Если Вы не хотите потерять способности в спеллбуке (‘Aspb’), то следует их также делать постоянными.
Пример использования: UnitMakeAbilityPermanent(<unit>,true,'A000') , где <unit> - воин, способность которого нужно сделать постоянной
» 2. Как триггерно сдвинуть воина с места?
  • SetUnitX, SetUnitY (Установить Х боевой единицы, Установить Y боевой единицы)
native SetUnitX takes unit whichUnit, real newX returns nothing
native SetUnitY takes unit whichUnit, real newY returns nothing
Эти две функции очень пригодятся, когда Вам необходимо создать отталкивающую способность либо просто передвигать периодически боевую единицу (всякого рода Moving Systems – прим. alexkill). Они работают намного быстрее функции SetUnitPosition, поскольку игнорируют большинство проверок на соответствие областей, куда должна переместится боевая единица. Соответственно, можно сделать движение более плавным. Отрицательная сторона функций заключается в том, что Вам необходимо проверять, не находится ли область, куда нужно передвинуть воина, за пределами карты. В противном же случае возникнет неисправимая ошибка игры. Еще совет: никогда не используйте внутри оператора цикла loop функцию TriggerSleepAction для создания задержки, для этих целей идеально подойдут таймеры.
К тому же нельзя обнулять значение базовой скорости боевой единицы в редакторе объектов, иначе будет передвигаться лишь ее тень.
» 3. Как определить проходимость точки?
  • IsTerrainPathable (Проходима ли местность)
native IsTerrainPathable takes real x, real y, pathingtype t returns boolean
Полезная функция, позволяющая определить, является ли местность (координаты Х и Y) проходимой и можно ли переместить боевую единицу в эту точку. Хочу заметить, что эта функция инверсная и возвратит false, если местность проходимая.
Поэтому скрипт
if not IsTerrainPathable(X,Y,PATHING_TYPE_WALKABILITY) then
...
endif
будет верным для определения проходимости точки.
Параметр t функции может принимать несколько значений:
PATHING_TYPE_AMPHIBIOUSPATHING - точка, в пределах которой передвигаются амфибии.
PATHING_TYPE_BLIGHTPATHING - точка, охваченная порчей.
PATHING_TYPE_BUILDABILITY - точка, где возможно возвести здание.
PATHING_TYPE_FLOATABILITY - точка, пригодная для плавания.
PATHING_TYPE_FLYABILITY - точка, через которую пролетает воздушная боевая единица.
PATHING_TYPE_PEONHARVESTPATHING - точка, в пределах которой могут передвигаться работники (добывая золото и дерево).
PATHING_TYPE_WALKABILITY - точка, в пределах которой могут передвигаться обыкновенные боевые единицы.
PATHING_TYPE_ANY - точка с любым типом проходимости.
» 4. Как спустя некоторое время совершить действия над воинами в группе?
  • ExecuteFunc (Выполнить функцию)
native ExecuteFunc takes string funcName returns nothing
Как известно, в callback-функции нельзя организовать задержку. Существует много способов для совершения этих действий. Например, создать таймер с последующим хэшированием, аттачить группу через кэш и т.п. Но все же лучшим вариантом, думаю, будет использование функции ExecuteFunc с обращением к выбранным заранее боевым единицам через функцию GetEnumUnit.
function D takes nothing returns nothing
   local unit g = GetEnumUnit() 
   call TriggerSleepAction(5.) // та самая задержка, после которой выполнится действие
   call KillUnit(g) // а это само действие
   set g = null 
endfunction

function C takes nothing returns nothing
   call ExecuteFunc("D")
endfunction

function B takes nothing returns nothing
   local group gr = CreateGroup()
   call GroupEnumUnitsOfType(gr,"footman",null) // к примеру, выберем всех пехотинцев на карте
   call ForGroup(gr, function C)
   call DestroyGroup(gr)
   set gr = null
endfunction
Если бы задержка (функция TriggerSleepAction) присутствовала в функции С, то никакого результата Вы бы не увидели. В этом же случае все сработает, как нужно.
Проблема ExecuteFunc заключается в том, что ее использование может вызвать крах игры, если в качестве аргумента указать имя несуществующей функции. То есть нужно внимательно следить за этим параметром.

Раздел 4.Скрытые идентификаторы приказов

  • 851971 (smart): Приказ (цель-точка или цель-объект), аналог правой клавиши мыши.
  • 852000 (skillmenu): Приказ (без указания цели), при выполнении которого открывается меню навыков героев. Если же триггерно заставить выполнить этот приказ обычную боевую единицу, то исчезнет ее карта команд, которая возвратится, если выбрать боевую единицу.
  • 851994 (buildmenu): Приказ (без указания цели), открывающий меню строительства воина, способного возводить здания.
  • 852002 to 852007 (moveslot): Эти приказы перемещают указанный предмет в соответствующий слот инвентаря героя, отдавшего приказ. Идентификатор 852002 переместит предмет в первый слот, идентификатор 852003 – во второй и т.д.
  • 852008 to 852013 (useslot): Заставляют героя, отдавшего приказ, использовать предмет, находящийся в соответствующем слоте инвентаря. Идентификатор 852008 использует предмет в первом слоте, идентификатор 852009 – во втором и т.д.
  • 851973 (stunned): Этот приказ отдается боевым единицам, подвергшимся оглушающим способностям, таким как ‘AOws’ (Громовая поступь), лишая их возможности двигаться и атаковать.

Отредактировано ScorpioT1000, 17.04.2013 в 13:53.
Старый 05.01.2009, 13:18
agentex

offline
Опыт: 34,534
Активность:

Раздел 5. Популярные вопросы

Оглавление подготовили: Артте, alexkill и MF
Эта тема является дополнением к FAQ, в котором, к сожалению, описать абсолютно все вопросы невозможно. Тут же содержатся ссылки на темы с обсуждением весьма актуальных, хотя и редко возникающих вопросов, не дающих покоя многим создателем карт.
  1. Если вы ищете ответ на конкретный вопрос, для начала воспользуйтесь поиском, просмотрите FAQ, заголовки тем данного оглавления, и только затем, не отыскав подходящего решения, создавайте тему с вопросом.
  1. Все темы разделены на условные разделы, будь то "Объекты", "Триггеры", "Ландшафт", тем не менее, при поиске ответа на свой вопрос, рекомендуется просматривать и схожие разделы (к примеру, Вы что-то хотите сделать триггерно, а это может элементарно решаться с помощью редактора объектов).
  1. Некоторые глобальные вопросы еще не решены или не имеют однозначно правильного решения, в таком случае перед ссылкой на тему будет поставлен символ *
  1. Вы всегда можете помочь нам в организации этого раздела, предложив добавить сюда тему, которую Вы считаете актуальной и интересной "картостроителям". Однако стоит помнить, что в ней должен быть четко сформулированный вопрос, а также решение или внятное объяснение, почему решить этот вопрос невозможно.

Триггеры и JASS

Создание квестов
Динамические триггеры
Устройство триггера в jass
Юнит получает урон. Вопрос к Джассерам
Generic Unit Event совместим с EVENT_UNIT_DAMAGED?
Плюсы и минусы кэша
Кэш или альтернатива кэшу?
Ассоциативные массивы или прогоним SCV
Оптимизация
Как изучить vJass?
Оптимизация JASS кода
Обнаружение утечек
Создание новых потоков
Уничтожение потока
Точка и типы путей
Проверка местности: проходимая или непроходимая
Создание ИИ в блокноте
Устройство AI-файлов
Отключить встроенный AI
Как проиграть анимации типа Stand 2, Spell-4
Проигрывание анимации задом наперед
Замедление юнита
Помогите с модом -ar (All Random)
Как отследить движение юнита?
Стоит ли юнит за спиной юнита?
Скольжение героя
Отображение оружия в руках боевой единицы
Динамическая смена модели
Динамическое изменение запаса маны
Как найти всех юнитов между 2-мя точками?
Движение снарядов
Мгновенный поворот боевой единицы
Блокировка/разблокирование инвентаря у боевой единицы
Определение положения юнита относительно другого
Как показать мультиборд конкретному игроку?
Границы карты
Переход с карты на карту
Десинхронизация и причины ее возникновения
Поразрядные логические операции в JASS
Как вызвать фатальную ошибку?
Советы по исправлению фатальных ошибок
Нестандартный курсор
Перевод из одной системы счисления в другую
От чего зависит скорость загрузки карты?
Как сделать к своей карте специальную подпись, как у Blizzard?
Как отключить читы? Как определить неуязвимость юнита? Как изменить период срабатывания триггера?
Ветвь реестра WarCraft
Подсчет триггеров
Герои в Таверне!
Как создать регион, область, рект определенной формы?
Баг с книгами или модельки на земле после использования итемов
Атака Ближнего и Дальнего Боя
Как включить получение золота за убийство НЕ нейтралов?
Разбивка строки
Прикрепление анимированного аттача
Запрет на перемещение камеры в определенную область
Текст над Юнитом (Видит только 1н Игрок)
Как осуществить отбивание единицы от декорации под углом
Посадка на животных
Как убрать тень у предметов?
Событие - юнит выбрасывает предмет
Создание водоема
Триггерное скрытие декорации
Прозрачные и многоэтажные здания: каков принцип работы?
Как дать возможность обьекту класа "Мост\Подъемник" принимать все ракурсы(вариации)?
Изменение цвета воды
Высота уклона
Динамическая смена текстуры
Как поменять текстуру земли?
Как скрыть полоску здоровья?
Ловим Мышь
Изменение панели войнов
Версии карт
Музыкальный список (MapMusic)
Как проигрывать импортированный звук, если его нет в списке?
Как убрать звук, проигрывающийся при появлении или исчезновении расходов?
Как полностью убрать освещение на карте?
Как создать героя с заранее заданным именем?
Как сделать квест только для одного игрока?
Какой функцией описать ломаную линию?
Как добавить иконки в описания юнитов?
Как повернуть юнита по 2-м осям?
Как узнать дату/время?
Преобразование предмета в строку

Функции

Типы переменных

Способности

Способности Warcraft III: проводник
Как триггерно приказать юниту использовать нестандартную способность?
Как включить авктокаст?
Для чего нужна способность "Канал"?
За что отвечает поле "Проверять зависимости" в редакторе объектов?
Эффекты и пассивки на иллюзиях
Превращение из одного юнита в другого
Все свойства - баг или фича?
Как спрятать иконки "стоп" "идти" и "патруль"?
Отображение снаряда у "Канала" и его DISBTN
Как сделать замедление времени?
Как устроить лесоповал?
Скачок во времени
Chaneling способности в предметах
Спелбуки внутри спелбука
Прыжок
Как одним кастом выбрать более чем одну цель?
Как сделать включаемую\выключаемую ауру?
Как убрать у юнита атаку?
Как сделать, чтоб через юнита со способностью "москиты"('Aloc') нельзя было проходить?
Есть ли предел увеличению скорости атаки?
Как убрать коллизию у юнита?
Как создать способность по принципу "Ожившего Огня"?

Вопросы общего характера


Отредактировано ScorpioT1000, 17.04.2013 в 13:55.
Старый 05.01.2009, 13:22
alexkill

offline
Опыт: 19,172
Активность:
Цитата:
и зачем это?? что в этом особенного не пойму?

эдакое пособие для чайников? =) к тому же многие интересуются, как создать динамический триггер
Цитата:
хм интересненько, 1 раз слышу. в варе че есть порталы? оО

я сам прозрел, когда проверил
Цитата:
Например, Блокировка атаки при добавлении 'Abun'

для того статья и создана, чтобы пополнять ее фичами, отысканными пользователями.
Старый 05.01.2009, 13:27
NETRAT

offline
Опыт: 82,062
Активность:
Цитата:
хм интересненько, 1 раз слышу. в варе че есть порталы
сразу видно отсутствие опыта игры в melee

коротенько о абилках
статью следует некоторым образом пришить к FAQ

NETRAT добавил:
Цитата:
Если же классификация Работник была добавлена в процессе игры, будет действовать. то иконка не будет появляться
а если создать юнита для левого игрока / скрытым, дать ему классификацию и потом передать правильному игроку - иконка появится?
Старый 05.01.2009, 13:52
Scorched

offline
Опыт: 7,912
Активность:
читал давно в оригинале автору и переводчику +1

Scorched добавил:
Цитата:
хм интересненько, 1 раз слышу. в варе че есть порталы? оО

всю дорогу были
Старый 05.01.2009, 13:54
alexkill

offline
Опыт: 19,172
Активность:
Цитата:
Сообщение от NETRAT
статью следует некоторым образом пришить к FAQ


NT, сделаешь? =)

alexkill добавил:
Цитата:
всю дорогу были


Scorched, то, что порталы были - думаю. многие знали. Но то, что можно из обычного юнита сделать портал - для меня, например, явилось новинкой.
Старый 05.01.2009, 13:57
NETRAT

offline
Опыт: 82,062
Активность:
Было бы неплохо выделить вопросы из академии, ответы на которые которые можно отнести к этой статье и составить какой-то мини-FAQ, который потом вставить в основной, я этого не сделаю.
Старый 05.01.2009, 14:03
PlayerDark
Coraline
offline
Опыт: 10,569
Активность:
Вобщем то любопытно, хотя большинство из этого я уже знал.
Старый 05.01.2009, 14:29
alexkill

offline
Опыт: 19,172
Активность:
исправил мелкие ошибки и добавил раздел о функциях.

Цитата:
Сообщение от NETRAT
Было бы неплохо выделить вопросы из академии, ответы на которые которые можно отнести к этой статье и составить какой-то мини-FAQ

ну что-то наподобие сделал
Старый 05.01.2009, 18:03
J
expert
offline
Опыт: 47,997
Активность:
Цитата:
. Как триггерно сдвинуть воина с места?
добавь что скорость юнита должна быть обязательно больше нуля и именно та которая ставится в РО ва не устанавилвается триггерно
Старый 05.01.2009, 18:03
zer0ne

offline
Опыт: 11,119
Активность:
Полезная статья. alexkill, переведи как будет время Hidden Order Ids, там немного, но очень полезно
Старый 05.01.2009, 18:58
alexkill

offline
Опыт: 19,172
Активность:
добавил главу о скрытых приказах

alexkill добавил:
Цитата:
Сообщение от NETRAT
а если создать юнита для левого игрока / скрытым, дать ему классификацию и потом передать правильному игроку - иконка появится?

проверил - появится

alexkill добавил:
Цитата:
Сообщение от J
добавь что скорость юнита должна быть обязательно больше нуля и именно та которая ставится в РО не устанавилвается триггерно

кстати, если установить в РО базовую скорость "0", то можно создать что-то наподобие астрального тела, способного передвигаться и т.д. в то время, как физ. тело останется неподвижным.

Отредактировано alexkill, 05.01.2009 в 20:53.
Старый 05.01.2009, 19:45
J
expert
offline
Опыт: 47,997
Активность:
ну я то вкурсе, но ты во вопросник это добавь
Старый 05.01.2009, 19:55
Lевик
Cat Crusade!
offline
Опыт: 1,800
Активность:
Класс, узнал несколько новых приемов) Допереведи остаток и в базу статей!
Старый 05.01.2009, 20:03
Hellfim
Новичок
offline
Опыт: 81,534
Активность:
Интересная статья, правда узнал только про классификацию работник =)
Старый 05.01.2009, 20:32
alexkill

offline
Опыт: 19,172
Активность:
Добавил пункт в раздел "Вопросы о способностях".

Отредактировано alexkill, 05.01.2009 в 21:53.
Старый 05.01.2009, 20:49
Hellfim
Новичок
offline
Опыт: 81,534
Активность:
alexkill, норм, примечай. Про ордеры баян =)
Старый 05.01.2009, 21:26
alexkill

offline
Опыт: 19,172
Активность:
Цитата:
Сообщение от Hellfim
Про ордеры баян =)

Ты просто не умеешь их готовить... )
Старый 05.01.2009, 21:30
ExArt

offline
Опыт: 13,734
Активность:
Отличная статья. Понравилась фишка с москитами для сокрытия хп бара.
Старый 05.01.2009, 21:59
J
expert
offline
Опыт: 47,997
Активность:
Цитата:
Это решение имеет и побочные эффекты. Полоса жизни над боевой единицей, как и имя игрока при наведении мышью на боевую единицу, больше не будут видны никогда. Это своеобразная уловка, если Вам необходимо сокрыть эти данные.
у меня неработает=/
Старый 06.01.2009, 00:41
alexkill

offline
Опыт: 19,172
Активность:
Цитата:
Сообщение от J
у меня неработает=/

Jon, проверь внимательнее. У меня вроде как работает (на всяк случай удостоверился еще раз).

Господа, неужели никто больше не встречал никаких интересных багов редактора?
Старый 06.01.2009, 00:57
J
expert
offline
Опыт: 47,997
Активность:
ложная тревога, отбой...
хотя работает не так как надо, если зажать alt то жизни всеравно видна...
Старый 06.01.2009, 01:07
Scorched

offline
Опыт: 7,912
Активность:
и еще побочный эффект заметил, что не выделяется кликом после этого, а только рамкой =\
Старый 06.01.2009, 01:17
agentex

offline
Опыт: 34,534
Активность:
Цитата:
“Склад” в сочетании со способностями сфер дают Вам полный контроль над индексом атаки.

ты хотябы проверь, а потом пиши
Старый 06.01.2009, 01:26
J
expert
offline
Опыт: 47,997
Активность:
ну принцепи и без этого можно от шкалы жизней избавится, просто в РО поставить "Шкалу выбора" через шифт на 0
Старый 06.01.2009, 02:10
Gres
Кораэлестраз
offline
Опыт: 18,575
Активность:
Статья очень хорошая вышла! )
Правда первая часть про Абилки, так се... ниче нового там не узнал!
А вот во второй части уже интереснее...

Особенно понравился этот пункт: Скрытые идентификаторы приказов!!!

И возник вопрос! по поводу этого пункта: "3. Как определить проходимость точки?"
Вобщем вопрос такой! Вот есть такая карта "Замок Скиби" и там я заметил такую фишку... когда проход полностью застраиваешь и монстры не могут пройти, то они начинают атаковать башни! Так вот хотелось бы узнать как это можно проверить... есть проход или нету...
Старый 06.01.2009, 09:48
ScorpioT1000
Работаем
offline
Опыт: отключен
Цитата:
Полоса жизни над боевой единицей, как и имя игрока при наведении мышью на боевую единицу, больше не будут видны никогда.

добавь еще что нельзя кликом выделять
Старый 06.01.2009, 10:10
NETRAT

offline
Опыт: 82,062
Активность:
добавил в FAQ в виде ссылки, не могу придумать как было бы лучше это сделать, однако, эта статейка дает ответы на вопросы, которые задаются достаточно часто, даже у тех кто варкрафтом занимается давно
Старый 06.01.2009, 14:04
Scorched

offline
Опыт: 7,912
Активность:
Цитата:
Сообщение от ScorpioT1000
добавь еще что нельзя кликом выделять

и нельзя выбирать целью каста в связи с этим =\
Старый 06.01.2009, 14:14
Gam_Over
Изучаю SC2 Editor
offline
Опыт: 7,892
Активность:
Цитата:
1. Как сделать нелетающего воина летающим?

Способ описанный в статье не подходит. И это очень легко проверить, сам так делал.
Создайте две нестандартные боевые единицы на базе одного и того же юнита. тока сделайте так чтобы один был по типу движения пешим (назовем его M) а другой летающим (назовем его N). Теперь установите высоту N.
Далее, зайдите в триггеры и продейлайте операцию по типу добавления способности "Превратиться в ворона", добавьте эту способность M. Не забудьте установить ту же высоту что и у N.
Теперь создайте любого ПЕШЕГО юнита (назовем его R) например конного рыцаря. Попробуйте сделать так, передвиньте N к позиции R. Запустите карту, наш N будет над R, как это и должно быть.
Теперь тоже самое проделайте с M который обладает способностью "Превратиться в ворона". Запускайте карту. Заметили разницу?
Значит N и M в карте не обладают равными свойствами летающего юнита. Значит, по типу движения летающим пешего юнита, обладающим способностью друида, назвать нельзя. Значит и в игре нельзя сделать юнита летающим.
Старый 07.01.2009, 11:49
J
expert
offline
Опыт: 47,997
Активность:
Gam_Over наоборот, если есть 2 юнита, со способностью сфинкс, и с типом перемещения летающий, то более "неправельным" летающим является юнит с типом перемещения, если ты например будет делать перемеещние без учета рельефа, то это получится только со сфинксом, с типом летающего это не получится
Старый 07.01.2009, 12:21
Gam_Over
Изучаю SC2 Editor
offline
Опыт: 7,892
Активность:
J нет ты не понял про что я хочу сказать.
Юнит по типу движения пеший, который обладает способностью "превратиться в ворона", если его направить на позицию юнита другого (пешего любого) то он облетит его а не повиснет НАД ним в воздухе.
А так ты прав.
Старый 07.01.2009, 13:05
alexkill

offline
Опыт: 19,172
Активность:
Добавил часть перевода о способностях и от себя о функциях.


Цитата:
Сообщение от agentex
ты хотябы проверь, а потом пиши

там что, настолько мудрая идея представлена?

alexkill добавил:
Цитата:
Сообщение от Gam_Over
Способ описанный в статье не подходит. И это очень легко проверить, сам так делал.
...Запустите карту...

вообще-то абилка добавляется динамически в период игры
Старый 08.01.2009, 11:14
Lевик
Cat Crusade!
offline
Опыт: 1,800
Активность:
Внимание, когда я в РО убираю у пеона классификацию "работник", он все равно игнорирует всех врагов и убегает от них.. мне нужен обратный эффект
Старый 08.01.2009, 11:16
agentex

offline
Опыт: 34,534
Активность:
Цитата:
там что, настолько мудрая идея представлена?

угу. там дезинфа представлена, я сам проверял давно еще этот способ не работает
Старый 08.01.2009, 11:41
alexkill

offline
Опыт: 19,172
Активность:
Цитата:
Сообщение от agentex
угу. там дезинфа представлена, я сам проверял давно еще этот способ не работает

ты преувеличил значение фразы "индекс атаки". это просто отнятие и возвращение иконки на карте команд. возможно, ты думал, что исчезнет показатель силы атаки?

alexkill добавил:
Цитата:
Сообщение от Gres
И возник вопрос! по поводу этого пункта: "3. Как определить проходимость точки?"
Вобщем вопрос такой! Вот есть такая карта "Замок Скиби" и там я заметил такую фишку... когда проход полностью застраиваешь и монстры не могут пройти, то они начинают атаковать башни! Так вот хотелось бы узнать как это можно проверить... есть проход или нету...


Не понял взаимосвязь, но дай хоть ссылку на карту.
Старый 08.01.2009, 12:30
agentex

offline
Опыт: 34,534
Активность:
Цитата:
ты преувеличил значение фразы "индекс атаки". это просто отнятие и возвращение иконки на карте команд. возможно, ты думал, что исчезнет показатель силы атаки?

я думал чо речь идет о нормальном переключении 1\2 атаки.

Цитата:
дай хоть ссылку на карту.

эта карта в стандартном комплекте вара идет
Старый 08.01.2009, 12:53
adic3x

offline
Опыт: 99,989
Активность:
доработать и залить) статья интересная, многим поможет
по абилкам, написать мб о спелбуке (сложение абил и скрытые абилы) (если этого нету, я не особо внимательно читал ;)
+ подумайте кто еще чего интересного знает по абилкам, что бы у нас было круче чем у буржуев)
Старый 08.01.2009, 13:18
alexkill

offline
Опыт: 19,172
Активность:
Цитата:
по абилкам, написать мб о спелбуке (сложение абил и скрытые абилы) (если этого нету, я не особо внимательно читал ;)

нету, я это решил не переводить. вроде бы есть статья о спеллбуке на форуме.

Цитата:
+ подумайте кто еще чего интересного знает по абилкам, что бы у нас было круче чем у буржуев)

я о том же. я, хоть и не играю в игры, но много своего добавил. да и о функциях могу еще придумать че-нить.
Старый 08.01.2009, 14:57
Gam_Over
Изучаю SC2 Editor
offline
Опыт: 7,892
Активность:
Цитата:
вообще-то абилка добавляется динамически в период игры

я это вроде бы написал. короче проезали.
Старый 08.01.2009, 15:06
alexkill

offline
Опыт: 19,172
Активность:
добавлена пара пунктов по абилкам и функциям. пожалуй, все-таки, переведу инфо о спеллбуке и можно считать руководство готовым.
Старый 10.01.2009, 15:29
Manhant
Убежал
offline
Опыт: 14,787
Активность:
alexkill довольно хорошая статья,но ващет она ненужна джассерам они и сами это сделать смогут,обьяснял бы лучше на ГУИ для новичков =) было бы лучше.
Старый 10.01.2009, 16:36
alexkill

offline
Опыт: 19,172
Активность:
Где ты здесь увидел обилие Jass-решений? Вообще-то руководство больше о редакторе объектов.

manhant, все скрипты можно легко использовать и гуишнику, вписав каждую строку в Custom Script (кажется, так называется)
Старый 11.01.2009, 12:47
ELDAR
НИИ 4А-ВО кафедра SPELLS
offline
Опыт: 8,394
Активность:
Цитата:
Сообщение от Gam_Over
J нет ты не понял про что я хочу сказать.
Юнит по типу движения пеший, который обладает способностью "превратиться в ворона", если его направить на позицию юнита другого (пешего любого) то он облетит его а не повиснет НАД ним в воздухе.
А так ты прав.


А ты не пробовал убирать колизию о_О
Старый 11.01.2009, 13:49
Darlinoid
/cheer
offline
Опыт: 2,847
Активность:
Эм.. у мну вопрос как использовать функцию: UnitMakeAbilityPermanent ..

Насколько йа понял она должна вызываться примерно так: UnitMakeAbilityPermanent (юнит, сделать абилку перманентной да/нет, номер абилки) причем она вродебы должна присваивать какое то значение... Тобишь вызывать ее надо так: boolean = UnitMakeAbilityPermanent(unit,true/falls,integer) .

Я прав? Если да то тогда как узанть номер абилки которую нужно "заморозить". Если же не прав то как тогда мне сделать так чтобы данные тригерно персонажу разные возможность предметы (герой) не пропадали при морфинге персонажа на основе морфинга мишки?
Старый 16.01.2009, 19:46
agentex

offline
Опыт: 34,534
Активность:
обычно функция вызывается так
Код:
call UnitMakeAbilityPermanent(...)

если же тебе надо записать в булин выполнилась ли функция, код будет выглядеть так:
Код:
local boolean b
set b = UnitMakeAbilityPermanent(...)

хотя не могу представить в каких случаях нужен возврат

по номеру абилы - в редакторе обьектов нажимаешь ctrl+D и слева от названий появятся их равкоды
Старый 16.01.2009, 19:53
NETRAT

offline
Опыт: 82,062
Активность:
Дать целевой форме способность инвентаря
Старый 16.01.2009, 19:54
Darlinoid
/cheer
offline
Опыт: 2,847
Активность:
agentex

Цитата:
если же тебе надо записать в булин выполнилась ли функция, код будет выглядеть так:

ненен не надо мне записывать в булин) просто йа видимо читая статьи упустил тот факт что функции котоыре что-то возвращают можно просто прогнать как процедуры а можно и использовать как функци.

Код:
native UnitMakeAbilityPermanent takes unit whichUnit, boolean permanent, integer abilityId returns boolean

Вапщето когды жмешь cntrl+d как тысам и гворишь появляються рав коды, а эта функция требует abilityId типа интеджер.... Как поступать?) С рав кодом даная функция не пшает однако..


NETRAT, нет.. мне надо чтобы они оставались. Просто йа хочу попробывать "инвентарный" баг совместить с морфом.. Если после морфа добавлять слой за слоем почемуто показатель урона скиыдваеться до 0-0 и вапще начинаются косяки с юнитом. Поэтому и хочу попытаться "замарозить" абилы.
Старый 16.01.2009, 20:24
agentex

offline
Опыт: 34,534
Активность:
Darlinoid то что там написано это число в 256-ричной системе, в жассе она обозначается одинарными ковычками. к примеру 'A000' - это интегер
Старый 16.01.2009, 20:29
Darlinoid
/cheer
offline
Опыт: 2,847
Активность:
agentex, домено аригато ^^ Всетаки с теорией у мну плоховато.. очень плоховато ^^
Еще вопрос по этойже функци елси например у меня равкод абилки AInv а абика на ее основе пишецо как A001:AInv то указывать A001? Или както по другому?

З.Ы. Уже сам разобрался.)

Отредактировано Darlinoid, 16.01.2009 в 21:30.
Старый 16.01.2009, 20:42
alexkill

offline
Опыт: 19,172
Активность:
Добавил часть перевода о способностях и комментарии к некоторым кодам, чтоб впредь не возникло недоразумений, как у Darlinoid'a.
Старый 17.01.2009, 22:23
df Hunter
Нападатель
offline
Опыт: 5,749
Активность:
Цитата:
852000 (skillmenu): Приказ (без указания цели), при выполнении которого открывается меню навыков героев. Если же триггерно заставить выполнить этот приказ обычную боевую единицу, то исчезнет ее карта команд, которая возвратится, если выбрать боевую единицу.

как я понял при ручном открывании скилл меню игроком этот приказ не выполняется?
Старый 18.01.2009, 08:05
alexkill

offline
Опыт: 19,172
Активность:
Не выполняется. df Hunter, на то раздел и называется "Скрытые идентификаторы приказов". )
Старый 19.01.2009, 12:53
alexkill

offline
Опыт: 19,172
Активность:
Добавил информацию о спеллбуке и еще пару пунктов в первый раздел.
Думаю, статью можно считать законченной. Остальные пункты исходной буржуйской статьи либо ошибочны, либо ясны как божий день.
Старый 08.02.2009, 16:13
MF
Что-то вокруг не так
offline
Опыт: 26,194
Активность:
alexkill
Статья хорошая, дополнил отлично. Автору +1.
Цитата:
весьма нужная функция при создании движения на стрелках для определения преград.
Мы оба знаем что это несколько устарело.
Старый 09.02.2009, 08:34
BlackShark

offline
Опыт: 237
Активность:
Цитата:
Код:
native UnitMakeAbilityPermanent takes unit whichUnit, boolean permanent, integer abilityId returns boolean

Эта функция позволяет оставить способности у воина, который подвергся какому-либо роду трансформации (способности морфа). Если Вы не хотите потерять способности в спеллбуке (‘Aspb’), то следует их также делать постоянными.


В WEU есть та кое действие "Make Ability Permanent"
Старый 14.03.2009, 18:15
Hellfim
Новичок
offline
Опыт: 81,534
Активность:
BlackShark, просто ВЕУ - дерьмо плохой редактор... Поэтому лучше пользоваться JNPG.
Старый 14.03.2009, 18:23
BlackShark

offline
Опыт: 237
Активность:
Цитата:
просто ВЕУ - плохой редактор
Насчет JNPG я ничего против не имею.Но о WEU чего ты так думаешь?
Старый 14.03.2009, 18:29
BLODMON

offline
Опыт: 1,857
Активность:
как сделать чтобы модель щита отображалась в левой руке?!если прописать hand left то щит отображается в правой руке но павернут в другую сторону!(
[+] 1 пункт от ADOLF: абуз смайлов

Отредактировано ADOLF, 25.03.2009 в 17:30.
Старый 25.03.2009, 15:55
NETRAT

offline
Опыт: 82,062
Активность:
BLODMON значит у тебя модель кривая... расположение аттачей зависит исключительно от точек прикрепления, описываемых в модели
Старый 25.03.2009, 16:08
Патиссончик
Time marches on
offline
Опыт: 9,855
Активность:
Вообще офигенно! Теперь знаю хоть не намного, но больше. И все же. Я не могу понять у меня прикрепляется оружие только к правой руке если прописываю hand left или hand right, а если left hand, то объект слева под ногами, а если right hand, то его (оружия) вообще нет! Хелп миии! А так большой СПАСАБА!
Старый 28.04.2009, 16:05
alexkill

offline
Опыт: 19,172
Активность:
Овощь
модель стандартная или импортированная?

возможно, причина в следующем:
Цитата:
Заметьте также, что у некоторых моделей могут отсутствовать те или иные точки прикрепления.
Старый 28.04.2009, 16:24
Патиссончик
Time marches on
offline
Опыт: 9,855
Активность:
Гхм... А c weapon будет получше: оружие на каком то расстоянии находиться от руки, но все идет.

Овощь добавил:
Да, импорт, но это ж футмен без оружия с xgm: http://xgm.guru/files.php?section=wc3&fc=2&perpage=50&page=9 . Даже не ожидал что так быстро ответят. =). Ну опять 10 мин ждать!
[+] замечание от NETRAT: матЪ

Отредактировано NETRAT, 28.04.2009 в 18:55.
Старый 28.04.2009, 16:42
House MD
I'm not all guys
offline
Опыт: 15,062
Активность:
Не знаю, писали тут или нет(не хочется перечитывать всё), но зачем извращаться с кровожадностью ради банального увеличения юнита? В разделе триггеров "Анимация" есть замечательная функция "Change Unit Size", гараздо более удобная и действенная.
Старый 30.04.2009, 01:01
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
Наверное, ещё имело бы смысл напомнить про уникальность способности горного великана "Вырвать дерево" ('Agra') с кратким описанием и референсом на статью, и про то что способность "Сфера" ('Asph') у блудмага заставляет проигрываться анимацию у эффекта.

Само собой на усмотрение автора... Если вспомню ещё интересные и уникальные эффекты у разных абил, напишу сюда же.
Старый 30.04.2009, 01:55
alexkill

offline
Опыт: 19,172
Активность:
Цитата:
Сообщение от House MD
В разделе триггеров "Анимация" есть замечательная функция "Change Unit Size", гараздо более удобная и действенная.

главное неудобство функции - это то, что не увеличивается шкала выбора воина. поэтому кровожадность для таких целей - оптимальный вариант
Цитата:
Сообщение от FellGuard
Само собой на усмотрение автора... Если вспомню ещё интересные и уникальные эффекты у разных абил, напишу сюда же.

само собой, пишите... я об этом давно говорил. кто знает более оптимальные способы решения того или иного вопроса, также не стесняйтесь.
Старый 30.04.2009, 11:12
MrSigma
愛 - XGM
offline
Опыт: 2,429
Активность:
Вопрос, а можно ли как нибудь отменить действие способности "темный"? Ато я делаю удаление этой способности а она не удаляется. Пытался привязывать способность к предмету. Тоже не работает. Подскажите как убрать ее действие или же какие нибудь альтернативы способности "темный". Потому что я на своей карте хочу реализовать возможность использования лука как оддельного оружия, и столкнулся с такой проблемой(
Старый 13.05.2009, 16:32
ELDAR
НИИ 4А-ВО кафедра SPELLS
offline
Опыт: 8,394
Активность:
Цитата:
Вопрос, а можно ли как нибудь отменить действие способности "темный"? Ато я делаю удаление этой способности а она не удаляется. Пытался привязывать способность к предмету. Тоже не работает. Подскажите как убрать ее действие или же какие нибудь альтернативы способности "темный". Потому что я на своей карте хочу реализовать возможность использования лука как оддельного оружия, и столкнулся с такой проблемой(
________________

а чем тебя собсвенно не устраивает морф ( триггерный конечно ) ?
Старый 13.05.2009, 17:30
MrSigma
愛 - XGM
offline
Опыт: 2,429
Активность:
Извиняюсь за глупый вопрос, но что из себя представляет морф (триггерный конечно), если можно ссылку на гайд или фак)
Старый 13.05.2009, 18:52
ELDAR
НИИ 4А-ВО кафедра SPELLS
offline
Опыт: 8,394
Активность:
MrSigma вроде если дать способность морфа медведя заюзать и удалить, то должно получится (хотя точно не знаю )
Старый 13.05.2009, 19:09
MrSigma
愛 - XGM
offline
Опыт: 2,429
Активность:
Попробую, спасибо.

MrSigma добавил:
Дайте плиз ссылку на статью про морф, ато я чего-то не могу сделать этого... Я попытался морф героя сделать а оно ничего не морфает)
Старый 13.05.2009, 19:28
NETRAT

offline
Опыт: 82,062
Активность:
героя можно морфить только в героя
Старый 13.05.2009, 19:32
MrSigma
愛 - XGM
offline
Опыт: 2,429
Активность:
я чтобы попробовать морфил горного короля в ерховного мага, невышло :(
он просто кастанул мажку и остался таким же как был
Народ, выложите ктонить пример карты, как можно использовать этот морф. У меня получается морфить юнита в дальний бой, но назад не получается (Всмысле при подбирании предмета)
Старый 13.05.2009, 20:15
ELDAR
НИИ 4А-ВО кафедра SPELLS
offline
Опыт: 8,394
Активность:
вся фишка в настройках морфа
Прикрепленные файлы
Тип файла: w3x Morf.w3x (13.9 Кбайт, 54 просмотров )
Старый 14.05.2009, 08:46
Патиссончик
Time marches on
offline
Опыт: 9,855
Активность:
Я не могу понять у меня прикрепляется оружие только к правой руке если прописываю hand left или hand right, а если left hand, то объект слева под ногами, а если right hand, то его (оружия) вообще нет! А c weapon будет получше: оружие на каком то расстоянии находиться от руки. С запятыми тоже пробовал - все равно в правой (ну это вот так выглядело: hand, left).
Старый 20.05.2009, 21:56
vit
кааааррл
offline
Опыт: 3,586
Активность:
оч полезная статья, не шарил раньше зачем канал...)
Старый 21.05.2009, 00:42
ELDAR
НИИ 4А-ВО кафедра SPELLS
offline
Опыт: 8,394
Активность:
Овощь если ты про РО , то надо в одной строке писать hand , а в следующей left.
В тригах просто hand left
Старый 21.05.2009, 12:08
agentex

offline
Опыт: 34,534
Активность:
Как можно застанить юнита без пауз, приказов и стража (чтобы все скилы и кнопки у него остались), и чтобы при удалении бафа стан снимался?? очень нужна такая абилка(
Старый 24.05.2009, 11:54
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
Овощь РО - Способности - твоя способность - Задать сценарий воздействия - <поменяй 0 на 1>
Старый 24.05.2009, 12:36
ELDAR
НИИ 4А-ВО кафедра SPELLS
offline
Опыт: 8,394
Активность:
agentex можно имитировать стан при помощи дамми каста сети Dragon Rider'a (вроде) тока баф поменять и удолять дамми при ударе
Старый 24.05.2009, 15:49
agentex

offline
Опыт: 34,534
Активность:
оО спс чето сам не додумался.
ну что дамикаст то понятно, меня интересовало что кастить)

agentex добавил:
а не не пойдет, в сетке можно крутиться и атаковать, а мне нужно чтоб юнит стоял и не шелохнулся. ну впринципе есть вариант сон+инвул, но инвул очень нежелателен.
Старый 24.05.2009, 16:23
ELDAR
НИИ 4А-ВО кафедра SPELLS
offline
Опыт: 8,394
Активность:
agentex ты наверное не про ту сеть подумал )
Прикрепленные файлы
Тип файла: w3x Example.w3x (11.9 Кбайт, 40 просмотров )
Старый 24.05.2009, 16:56
agentex

offline
Опыт: 34,534
Активность:
а ясно сетка как у расты спс конешн но я уже решил проблему. станю юнита молотом на 3600 сек потом када нада убрать стан произвожу следующее:
Код:
call UnitRemoveAbility(t, 'Bstu')//баф стана
call UnitRemoveType(t, UNIT_TYPE_STUNNED)

кстати можно добавить это в 1 пост
Старый 24.05.2009, 17:31
ZregerZ
Мы - лёд!
offline
Опыт: 7,029
Активность:
Вот ещё один из более (на мой взгляд) удобных методов для решения вопроса о макс хп
Старый 08.11.2009, 22:07
DIMENSIO
От сессии до сессии...
offline
Опыт: 1,070
Активность:
всем тем, кто рекомендовал это FAQ и тем, кто в этом разбирается.
Я его прочитал, но понятнее не стало. Наоборот, появилась проблемы. В основном - оружие упорно не хочет отображаться на персонаже(в качестве теста я использовал то работника, то пехоту, то ведьмака). Написано, что на некоторых моделях это действовать не будет. А как определить, будет ли на этой модели работать или нет?
а в редакторе я вроде бы всё правильно сделал
Старый 11.12.2009, 16:10
Амбидекстрия
Silenced by ScorpioT1000
offline
Опыт: 8,237
Активность:
Классная статья!Респект авторам!
Старый 20.01.2010, 09:53
exploder
iOS zealot
offline
Опыт: 17,594
Активность:
Перевод сырой и режет слух, видна калька с английского, ведь по русски так не говорят. А так статья на пятерочку, но тут спасибо PitzerMike'у - все что вы хотели знать об абилках, но боялись спросить.
Старый 21.01.2010, 13:30
Dartek
Welcome &quot;Deep place&quot;
offline
Опыт: 6,537
Активность:
Заранее извиняюсь, если вопрос был задан раньше, или попахивает явным нубством, я на него ответа не нашел.
При импорте иконок и назначении их на спеллы, то во время каста он заменяются на зеленые квадраты, то же происходит, если назначить на героя и вызвать меню.
Собственно вопрос, как от этого избавится?
Старый 01.02.2010, 21:48
agentex

offline
Опыт: 34,534
Активность:
DISBTN импортировать (затемненный вариант)
Старый 01.02.2010, 22:10
Dartek
Welcome &quot;Deep place&quot;
offline
Опыт: 6,537
Активность:
Я с самого начала импортировал оба варианта, но не пашет.
Спеллы "зеленеют" в тот момент, когда герой выполняет анимацию, в меню изучения почему-то зеленеют, если до изучения больше одного уровня, и, вместе с иконками героев, при вызове любого меню.
Пытаюсь исправить давно, но все равно ничего не вышло пока что(
Старый 02.02.2010, 00:03
Anufis

offline
Опыт: 6,290
Активность:
Помещай отключенные иконки в путь ReplaceableTextures\CommandButtonsDisabled\
Делай так. Нормальная иконка например ReplaceableTextures\CommandButtons\BTNTornado2.blp , а отключенная ReplaceableTextures\CommandButtonsDisabled\DISBTNTornado2.blp
Старый 02.02.2010, 17:11
Dartek
Welcome &quot;Deep place&quot;
offline
Опыт: 6,537
Активность:
Теперь работает)
Anufis, спасибо огромное!)
Старый 02.02.2010, 17:59
iZucken
ШТО
offline
Опыт: 17,985
Активность:
Внезапно понял, что забыл, как делать спелбук неактивным т_т
Скажите пожалуйста, кто нибудь...
Старый 04.02.2010, 16:51
agentex

offline
Опыт: 34,534
Активность:
SetPlayerAbilityAvailable(GetLocalPlayer(), 'XXXX', false)
Старый 04.02.2010, 16:59
iZucken
ШТО
offline
Опыт: 17,985
Активность:
agentex, Ага, спасибо )
Q w e r t y добавил:
Черт, не спасло =\
Кто нибудь знает, как спрятать "Сборный пункт" ( 'ARal' ), чтобы он при этом работал?
Спрятать его нужно так, чтобы при этом были свободны все 12 слотов приказов.
Q w e r t y добавил:
Просто он спеллбуком не прячется, он какбы перекрывает его собой.
Старый 04.02.2010, 18:19
DioD

offline
Опыт: 45,184
Активность:
Собственно пример того, как можно и стоит расширить статью, не стоит давать читающим информацию на основе "так и только так", стоит давать альтернативу и сразу указывать возможности.
Вот здесь например учтены как базовый так и продвинутый уровень пользователей.
» Разрешаем изменение высоты "полёта" для нелетающих юнитов через **'Amrf' (Вороний Облик)**
Эта способность, как и любой другой морф, в котором хотя бы одна из форм летающий юнит позволит изменять высоту "полёта" для юнитов у которых она есть, или была.
Юниты при этом не становятся летающими, ничего кроме анимации не изменяется.
Стоит отметить, что только таким образом можно использовать 3D движение объектов, так как изначально летающие юниты будут автоматически и непредсказуемо изменять свою высоту по приближению к клифам.
Для снарядов также стоит поставить тип движения парящий или плавающий, иначе будут провалы над водой, ну или учитывать глубину воды иным образом.
Данный вызов разрешит изменение высоты для юнита, учтите что ряд способностей приземляет юнитов, например Entagling Roots и не позволяет изменять высоту полёта пока они активны.
  call UnitAddAbility(unit, 'Amrf')
  call UnitRemoveAbility(unit, 'Amrf')
Также можно выдавать юнитам аналог способности и запрещать её, этот метод не лучше и не хуже, это альтернатива.
+ демокарта для этой конкретной части статьи.
Прикрепленные файлы
Тип файла: w3x Sharp Works TEST.w3x (37.8 Кбайт, 31 просмотров )
Старый 04.02.2010, 20:15
Doc

offline
Опыт: 61,963
Активность:
DioD, мне кажется, или все это уже давно знают? Это было в какой то из статей
Старый 04.02.2010, 20:57
agentex

offline
Опыт: 34,534
Активность:
это было уже везде. тут другая проблема - с водой юниты ведут себя очень плохо. а проверять в периоде на пафинг - медленно
Старый 04.02.2010, 21:11
DioD

offline
Опыт: 45,184
Активность:
за 5 лет всё что можно уже несомненно перетёрли по 150 раз, можно поднажать и собрать все знания в одном месте.
Старый 04.02.2010, 21:22
LordSerga

offline
Опыт: 3,809
Активность:
J:
ну принцепи и без этого можно от шкалы жизней избавится, просто в РО поставить "Шкалу выбора" через шифт на 0
Мною проверено много раз, когда где то год назад я в редакторе был не такой профи.
Ставил шкалу выбора на 0, а затем не понимал откуда берутся полоски с жизнями просто так. И прекриплены они не к юниту а к камере О_О.
С тех пор такое решение я не использую.
Старый 16.07.2010, 07:31
Закрытая тема

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

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

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

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



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