PomogiteMneYaBo, нет, в этой карте показано, что отрицательные значения у способности дотинок округляются до 0.
Сделай способность на основе способности Slow Aura (Tornado) [Aasl], выставь там нужный процент замедления, эту способность переведи в разряд предметных и дай предмету. Также рекомендую сделать свой бафф на основе Tornado (Slow Aura) [Basl], дать ему нужную иконку, описание, и заменить у твоей способности бафф на этот.
NazarPunk, про события каста я давно хочу написать, но лень и хочу подождать выхода ремастера (хотя бы альфа-беты), чтобы информация было актуальна. Вообще, странно, что за 17 лет игры об этом мало информации.
Ещё парочка ошибок.
Если форматирование всё равно ломается, разбей код внутри на блока кода.
Ставить на паузу таймер нужно, потому что ты работаешь с весьма малым периодом, а периодический таймер стартует повторно до запуска своей функции. Также ставить на паузу нужно, если периодический таймер может быть удалён действием извне.
В обоих случаях может произойти ситуация, что таймер запустит свою функцию и будет удалён, GetExpiredTimer() вернёт null, и все действия, которое по логике кода не должны быть выполнены, будут выполнены. Пауза решает данную проблему, потому вообще можно сделать так.
DestroyTimer_origin = DestroyTimer
DestroyTimer = function (t)
PauseTimer(t)
DestroyTimer_origin(t)
end
prog, скачай мою карту и запусти её. В Documents\WarCraft III\CustomMapData\test будут логи подгрузки данных. Лучше всего запускать из редактора, в config.txt меньше мусора будет. В 1.31 весь прелоад находится не в папке с варом, а в документах.
Во время config war3MapSkin.txt не подгружается, я сам его подгружаю, но это не помогает.
Разница от простого изменения данных игрового интерфейса лишь в том, что новые названия рас будут на экране загрузки, если не будет нестандартного.
карта загружается -> происходит подгрузка данных карты, которые остаются до запуска следующей карты
Запуска = до полной загрузки карты. Данные о имени рас подгружаются после запуска карты, а экран рисуется до загрузки и не меняется далее.
Поэтому, если после карты с нестандартными именами запустить со стандартными, на экране загрузки будут нестандартные имена (если они вообще отображаются), а после в лобби и на следующем экране загрузки имена вновь будут стандартными.
Нет, CHANNEL и FINISH ловят все способности. Различия на channel и не channel нет.
оно наступает после снятия маны и начала перезарядки способности.
Это не так. Мана и кд снимаются ПОСЛЕ завершения триггера с EFFECT событием или после паузы в нём.
Почему же нужно использовать EFFECT
Кратко: EFFECT означает фактический старт каста способности, когда cast time способности и cast point юнита прошли.
Дополнительно:
Во время этого события игрок уже может юнита контролировать, до этого - нет. Также если до этого события сбить каст, то юнит заново начнёт кастовать, после и во время этого события - нет. ENDCAST не может сработать раньше EFFECT, либо во время, либо после.
Лучше убрать лишнюю информацию и оставить только нужную.
if GetSpellAbilityId() == FourCC('A001') then
-- spell1
return
elseif GetSpellAbilityId() == FourCC('A002') then
-- spell2
return
elseif GetSpellAbilityId() == FourCC('A003') then
-- spell3
return
end
return тут не нужен.
local SPEED_INC = SPEED / (1 / TIMER_PERIOD) -- расстояние, которое снаряд пройдёт на каждый тик таймера
local SPEED_INC = SPEED * TIMER_PERIOD
Деление может только запутать читателя. Расстояние = скорость * время, это все знают.
return DestroyTimer(GetExpiredTimer())
Зачем возвращать nil? Это запутает не подкованных читателей.
Перед удалением периодические таймеры нужно ставить на паузу.
Исодя из этого, перепишем полёт исходя не из расстояния, а от времени.
"Исходя". А ниже сломалось форматирование. Опечатку заметил только из-за того, что браузер подчеркнул в цитате.
while true do
Так будет лучше.
local target = FirstOfGroup(GROUP)
while target ~= nil do -- если можно просто while target do, то так и сделать.
-- actions
target = FirstOfGroup(GROUP)
end
Так как у даммика нет модели, то касты способностей проходят моментально. Потому приказы даммику можно отдавать в цикле.
Насчет модели не уверен, всё же стоит занулять cast point и cast backswing у даммика, а cast time у самой способности занулять всегда. Кастовать в цикле можно не все способности (например, способности с молниями нельзя), зависит от способности. Как правило таргетные способности со снарядом можно.
Которому тоже можно посвятить целую статью.
Она есть, но лично я бы написал свою, так как в той даммик делается из дурного юнита.
Статья хорошая. Осталось поправить все недочеты, и будет очень хорошо.
8gabriel8, карта загружается -> происходит подгрузка данных карты, которые остаются до запуска следующей карты -> карта перезагружается\закрывается -> в лобби и во время загрузки используются данные карты.
Работает только в синглплеере.
NazarPunk, бывает, что лицензионных видит старый варик. А если просто скопировать варик куда-то и никак не взаимодействовать до установки лицензии, то и лицензия ничего не обнаружит.
Разве текстовая информация не перезагружается при запуске новой карты?
Перезагружается, после запуска карты имена становятся такими, какими они указаны в карте. Они остаются в игре до запуска новой карты.
Я вот что придумал.
После первого запуска карта сразу же закроется, при повторном - нет. При следующем вновь закроется.
Закрытие можно заменить перезапуском.
Вариант с перезапуском.
Saturin, в стандарте игрок проигрывает, если у него 0 строений. Стоит отметить, что стандартные условия победи и поражения - это куча триггеров, которые создаются 1 действием в GUI. Необходимо изучить blizzard.j и в карте написать аналоги функций по победе и поражению.
Yury13, можно в названии предмета в самом конце указать цвет фона описаний, но так как фон немного прозрачный, то данную приписку порой будет заметно. И, как уже сказал 8gabriel8, включите NumLock, если есть доп. панель с цифрами на клавиатуре.
Naadir, в 1.31 нет папки Maps, все данные пользователя находятся в папке "Документы". Никита21, запустите лаунчер WC3 и нажмите Repair (Проверить).
После этого нажмите Launch, в открывшейся игре нажмите на Battle.net. Появится окошко обновления, если есть обновление. Иначе появится экран входа в Battle.net.
» WarCraft 3 / [lua] Двигаем снаряды
Ред. PT153
» WarCraft 3 / Характеристика предмета
Сделай способность на основе способности Slow Aura (Tornado) [Aasl], выставь там нужный процент замедления, эту способность переведи в разряд предметных и дай предмету. Также рекомендую сделать свой бафф на основе Tornado (Slow Aura) [Basl], дать ему нужную иконку, описание, и заменить у твоей способности бафф на этот.
» WarCraft 3 / Характеристика предмета
» WarCraft 3 / [lua] Двигаем снаряды
» WarCraft 3 / Характеристика предмета
Ред. PT153
» WarCraft 3 / [lua] Двигаем снаряды
Если форматирование всё равно ломается, разбей код внутри на блока кода.
В обоих случаях может произойти ситуация, что таймер запустит свою функцию и будет удалён, GetExpiredTimer() вернёт null, и все действия, которое по логике кода не должны быть выполнены, будут выполнены. Пауза решает данную проблему, потому вообще можно сделать так.
» WarCraft 3 / Переименование расы
В 1.31 весь прелоад находится не в папке с варом, а в документах.
» WarCraft 3 / Переименование расы
» WarCraft 3 / Переименование расы
» WarCraft 3 / Переименование расы
Поэтому, если после карты с нестандартными именами запустить со стандартными, на экране загрузки будут нестандартные имена (если они вообще отображаются), а после в лобби и на следующем экране загрузки имена вновь будут стандартными.
Ред. PT153
» WarCraft 3 / [lua] Двигаем снаряды
Дополнительно:
Во время этого события игрок уже может юнита контролировать, до этого - нет. Также если до этого события сбить каст, то юнит заново начнёт кастовать, после и во время этого события - нет. ENDCAST не может сработать раньше EFFECT, либо во время, либо после.
Перед удалением периодические таймеры нужно ставить на паузу.
» WarCraft 3 / Ворота для опр. игроков
» WarCraft 3 / Ворота для опр. игроков
Ред. PT153
» WarCraft 3 / [lua] Двигаем снаряды
» WarCraft 3 / Герой крашит игру
Ред. PT153
» WarCraft 3 / Переименование расы
Работает только в синглплеере.
» WarCraft 3 / Вылетает редактор когда дотрагиваюсь до ландшафта.
Ред. PT153
» WarCraft 3 / Переименование расы
После первого запуска карта сразу же закроется, при повторном - нет. При следующем вновь закроется.
Закрытие можно заменить перезапуском.
Вариант с перезапуском.
» WarCraft 3 / Эволюция юнита через проверку уровня
» WarCraft 3 / Условия победы/поражения
» WarCraft 3 / Вылетает редактор когда дотрагиваюсь до ландшафта.
Ред. PT153
» WarCraft 3 / Переименование расы
» WarCraft 3 / Названия артефактов
Ред. PT153
» WarCraft 3 / Вылетает редактор когда дотрагиваюсь до ландшафта.
Никита21, запустите лаунчер WC3 и нажмите Repair (Проверить).
» WarCraft 3 / Условия победы/поражения
Опиши конкретнее, что нужно, для всех типов игроков.