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 / Заклинание: Случайная Молния

Так ведь оно меняет конкретную абилку у применяемого юнита
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
30

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

еее, давай сразу новые на луа
Я только любимые перегоню)
больше на CJ похоже
На zinc ещё больше похоже, мой старый код перегонять одно удовольствие)
а что делает строчка do
Блок do end создаёт область видимости и переменные наружу не торчат. Поэтому и триггер локальный)
30

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

Не совсем понял что делает спелл, пока не посмотрел в код.
Описание способностей не моя сильная сторона. Исправил
Реквестирую больше примеров на луа для чайников
Понемногу буду переписывать свои старые заклинания для 1.26 и может новое что-то придумаю)
30

» WarCraft 3 / Новичек интересуется областью

Так раз 5 подряд сделай и в итоге у тебя навсегда зависнет этот эфект в игре
Сделал тысячу, увидел забавный глюк с паладином и всё прекрасно удалилось.
статья покойного sergey(а) в помощь!
На статьи принято ссылки давать.
30

» WarCraft 3 / Новичек интересуется областью

Варик не упевает понять,которая из них только что сохраненный эффект
Варик однопоточный и когда он что-то не успевает, то просто начинает лагать.
SсRealm:
В данном примере нет,но лучше вообще все,что используется в одном триггере сохранять в локальные и обнулять
В моём примере вообще нет переменных, стоит их завести?
SсRealm:
31 патч это пока что бета. Не стоит его юзать!
Там есть lua и когда-то он из бэты выйдет.
30

» WarCraft 3 / Новичек интересуется областью

Во первых карта не открывается теперь
Это из-за 1.31 патча.
Валерия:
мне нужно именно записать сначало в локальные ,потом их удалить
Зачем?
8gabriel8:
откуда информация, что эффект надо обнулить после Destroy, чтобы устранить утечку?
Потому что хэндл эффекта никуда не делся. Тоже самое, что и с группой.
local group g = CreateGroup()
call DestroyGroup(g)
set g = null
Хотя с эффектами можно и без локалок
DestroyEffect(AddSpecialEffectTarget(...))
30

» WarCraft 3 / Новичек интересуется областью

Там 2005 год,а у меня тридцатая версия.
Дык ничего не изменилось))
Скажите как правильно записывать только что созданный эффект в локальную переменную и как ее потом удалить
local effect myEffect = GetLastCreatedEffectBJ() // Запоминаем поледний созданный эффект

// Что-то делаем

call DestroyEffect(myEffect) // Удаляем эффект
set myEffect = null // Удаляем утечку
Только вот при вэйтах локальные переменные теряются)
exAres, а не проще сразу удалить?
call DestroyEffect(GetLastCreatedEffect())
И вы про утечку забыли)
30

» WarCraft 3 / Новичек интересуется областью

Просто объясните как ее правильно удалить теперь?
Можете прочитать здесь например.
Валерия:
Я такое не понимаю
Блин, не заметил, что у вас последний патч. Если нужно, могу переписать под lua.