30

» WarCraft 3 / Заклинание: Длань Господня

Я думаю, что блок do...end выполняется во время клика на карту карты
do...end создаёт область видимости и выполняется там, где объявлен.
если так написать, то карта вылетит ещё при нажатии на неё, как мне кажется
скорей всего юнит не создатся. хотя тестить нужно
PT153:
Не надо эту функцию использовать
я уже на lua перешёл, а функция для теста приводилась.
PT153:
((цитата
Я верно понял, что союзная нежить будет получать урон?
))
да
PT153:
Во время создания карты используется функция config
Может package.config()? И скорее всего близы её прикрыли.
30

» WarCraft 3 / Способности и алгоритмы на заказ

Ну да, но это же подразумевает уделения внимания всем способностям
Зато самый красивый ибо разным способностям можно сделать уникальные отражения. Снаряды будут рикошетить, молнии будут бить соседних юнитов и т.д.
30

» WarCraft 3 / Способности и алгоритмы на заказ

Что вы тут развели спор непонятно о чём. Если все абилки триггерные то в каждой ручками прописываешь.
если цель имеет пассивку отражения, то вдамажить/дебафнуть/чтоугодно кастера
30

» WarCraft 3 / Условие - превосходство по хп.

Отчасти на это разработчики и рассчитывали, чтобы игрок мог быстро реализовать свои идеи
И поэтому удобно разложили в гуи действия по категориям, а если человеку лень их просмотреть, то мне лень давать ему советы)
30

» WarCraft 3 / Заклинание: Длань Господня

Я так полагаю , что работает такой код в тот момент, когда у жасс инициализируются глоб. перменные
Скорее всего сначала lua, потом jass. Можно попробовать BJDebugMsg('jass'), print('lua') ничего не выводит.
30

» WarCraft 3 / Заклинание: Длань Господня

Но ведь юниты, расставленные в редакторе, на самом деле ставятся в коде. Тот же самый триггер инициализации карты.
Только это jass триггер, луа раньше срабатывает.
30

» WarCraft 3 / Долгий прогруз

а вот начать осваивать Lua уже таки стоит
Дык lua очень на js похож. Вэбразработчикам повезло. Так что я уже пилю спэлы)
30

» WarCraft 3 / Долгий прогруз

ради бета версии,которая толк не работатет
Бэта скоро станет альфой, а lua уже работает. Не вижу смысла сидеть на устаревшем jass.
30

» WarCraft 3 / Долгий прогруз

А как я тебе потом огромную карту без Jass Helpera тащить?
Переходите на 1.31 и lua))
30

» WarCraft 3 / Заклинание: Длань Господня

но я кроме жасс не знаю других языков
А я только хотел сравнить с js(
ScopteRectuS:
Этот код как функция main сама запускается
Он сразу исполняется, а так как карта ещё не прогружена оперировать ей неполучится (юнита например разместить на карте не получится). Но можно создавать объекты (триггеры, таймеры, группы) и вешать обработчики событий.
Запуская таймер, вы ставите его в очередь, которая начнёт разгребаться после прогрузки main. Только не забывайте его уничтожать.
TimerStart(CreateTimer(), 0, false, function()
    print('Init')
    DestroyTimer(GetExpiredTimer())
end)
30

» WarCraft 3 / Долгий прогруз

Только теперь прийдется его заного включатьи выключать постоянно(((
Зачем? Один раз выключили и забыли.
30

» WarCraft 3 / Подсветка синтаксиса 1.31

Но кто ж будет на это время тратить.
Там же обыкновенный json, если найду файлы blizzard.j, cheats.j common.j на досуге подумаю как автоматизировать. Самому лень вытаскивать
30

» WarCraft 3 / Заклинание: Случайная Молния

новая нативка же есть
Что-то вообще ничего не меняет
BlzSetAbilityStringField(GetSpellAbility(), ABILITY_SF_ICON_ACTIVATED, 'ReplaceableTextures\\CommandButtons\\BTNPolymorph.blp')
Хотя исправно возвращает true
30

» WarCraft 3 / Долгий прогруз

Принятый ответ
SсRealm, отключите JassHelper и перезапустите редактор.
Загруженные файлы
30

» WarCraft 3 / Заклинание: Случайная Молния

Так ведь оно меняет конкретную абилку у применяемого юнита
BlzSetAbilityIcon(abilCode, iconPath) она принимает равкод способности и меняет иконку для всех юнитов.
30

» WarCraft 3 / Заклинание: Случайная Молния

Почему без MUI?
BlzSetAbilityIcon() меняет иконку для всех юнитов, если это игнорировать, то оно MUI.
Почему случайная?
Потому что простая слишком просто)
30

» WarCraft 3 / Условие - превосходство по хп.

ArlekinOo:
Я в редакторе первый день
Так может для начала поизучаете его функции, благо они удобно по категориям распределены. Можно ещё, например статьи почитать.
для криворуких, существо не убиваем, а оставляем ему 1 хп.
Неужто так сложно нанести 100500 урона?
Загруженные файлы
30

» WarCraft 3 / Заклинание: Длань Господня

ScopteRectuS, эх, а я всегда думал, что можно убрать обёртку.
set gg_trg_cast = CreateTrigger(  )
call TriggerRegisterAnyUnitEventBJ( gg_trg_cast, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddAction( gg_trg_cast, function Trig_cast_Actions )
как происходит инициализация способности
Код исполняется и вешает обработчик на событие. А для инициализации, можно использовать старый добрый таймер.
TimerStart(CreateTimer(), 0, false, function()
	print('Init')
end)
30

» WarCraft 3 / Заклинание: Длань Господня

ну в жасс это еще нужно где-то вызвать
Если конвертировать триггер, то будет тоже самое.
function Trig_cast_Actions takes nothing returns nothing
endfunction

//===========================================================================
function InitTrig_cast takes nothing returns nothing
    set gg_trg_cast = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_cast, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddAction( gg_trg_cast, function Trig_cast_Actions )
endfunction
Загруженные файлы
30

» WarCraft 3 / Заклинание: Длань Господня

Почему здесь нету функций
А зачем они в таком простом заклинании? Я повесил слушатель на событие и спрятал переменные в scope. Что ещё нужно?
30

» WarCraft 3 / Заклинание: Длань Господня

а что такое область видимости?
Если в кратце изолирование переменных от других областей кода. Вот простейший пример из документации.
local a = 5
print(a) --> 5

do
  local a = 6 -- create a new local inside the do block instead of changing the existing a
  print(a) --> 6
end

print(a) --> 5