28

» Clamp'ова кухня / Векторы

Не понимаю этой моды на вычисление длины методом. Почему нельзя её вычислить 1 раз во время создания вектора, записав в переменную, и менять её только в том случае, если вектор был изменён?

Хотят тут, конечно, зависит от использования. Если я часто буду изменять векторы, и редко брать длину, то тогда лучше длину каждый раз считать. Если наоборот, то тогда лучше рассчитывать только при создании и изменении вектора. Я бы вообще сделал вектор неизменяемым.
28

» WarCraft 3 / CS: set bj_wantDestroyGroup = true

8gabriel8:
Но у нас ни разу не видел использования подобного CS.
Даже в картах от близзард этот скрипт используется.
28

» WarCraft 3 / Таймеры

Absolute:
У самого таймера нет окна, окно таймера и сам таймер разные объекты.

По поводу вопроса. Да, любой таймер надо уничтожать (если это нужно) по истечению его действия. А можно создать 1 таймер и постоянно его перезапускать.
28

» Мир безумного / WarCraft 3 - 1.30 (все патчи PTR)

Буду рад адекватному переводу, можно мне в ЛС.
Работаю сейчас над этим.

Перевод отправил.
28

» Мир безумного / WarCraft 3 - 1.30 (все патчи PTR)

Потому что надо переводить по предложению, а не целиком всё. Google Переводчик предлагает варианты перевода.

Потому что надо переводить по предложению, а не целиком всё. Google Переводчик предлагает варианты перевода.
На самом деле переводить можно и целиком, переводчик разделяет текст на смысловые части, и в каждой из них можно выбрать вариант перевода. Конечно, иногда он плохо разделяет или предложенные варианты не подходят.

Как только появится желание, время и потребность в переводе у других, сделаю перевод.
Я считаю, что публиковать копипаст из переводчика не круто.

Я не пойму, это Google Translate переводил что ли?
Да, если скопировать оригинал и вставить в Google переводчик, получится этот текст.
28

» Блог Пушистого / Исследование способности "Постоянная невидимость"

Убрав галочку "является зданием" проблема с невидимостью для зданий решается
Но после этого здание перестаёт быть зданием, пропадают некоторые поля в РО и прочее.
28

» WarCraft 3 / Часть 2: Функция Preloader

после \n пробел надо
Пробел не нужен.
Для отображения переноса строки в блокноте нужно написать \r\n.
28

» WarCraft 3 / Редактирование карты (профи)

а стандартные данные (w3a и прочее) либо через временную карту
w3a тоже можно блокнотом редактировать, сегодня так менял равкоды у способностей, после этого всё работало как надо.
28

» WarCraft 3 / У предмета есть спеллбук, не получается триггерно открыть

можно через предметы в которые они уже врощены, в идеале именно так - но вот не получается
Если дать способность предмету, то хоткей способности работать не будет.
(так вроде НЕ видны)
ЕМНИП, если дать предметную способность юниту, у которой есть иконка, то она будет видна.
Это легко проверить, просто добавь юниту стандартный спеллбук.

Зачем открывать спеллбуки? Добавь спеллбуки юниту, ему же добавь способности из спеллбуков и не забудь подгрузить иконки.
28

» WarCraft 3 / Радиус обзора юнита

Если нужно убрать обзор за препятствиями, то глянь в этой статье пункт Art - Occluder Height (Real).
28

» WarCraft 3 / Аттачменты у способностей

Нашёл Arbr и Atol, но мне кажется, что они завязаны на улучшениях.
Насчёт Arbr я оказался прав, чтобы был эффект, нужно чтобы у юнита было улучшение на изменения брони, а само улучшения должно быть исследовано.

А вот Atol работает как надо, только визуальный эффект. При этом нет попадания эффекта при атаке и применении способности, как у Asph и Asp1 - Asp6.

biridius:
AIfn, AIfe, AIfo, AIfm, AIfl
Ещё можно добавить сюда AIfx.
Эти способности только предметные, на юнитах они не работают.

Если кто ещё задавался вопросом о способности, что даёт только визуальный эффект, то эта способность - Tree of Life upgrade ability, её равкод 'Atol'.
28

» WarCraft 3 / Безграничный атакспид

Мне quq_CCCP говорил, что максимальный бонус к скорости атаки 400%, и, насколько я помню, мои тесты это подтвердили. Снять это ограничение никак нельзя.
28

» WarCraft 3 / Каким образом улучшение "Фортификация" меняет броню зданий?

Ответ: нет, это никак нельзя сделать.
Чтобы узнать на сколько улучшение повышает тип брони, нажми CTRL + D.
У Medium стоит 1, потому после улучшения тип брони у юнита станет старый тип брони + 1.
У Fortified стоит 2, потому после улучшения тип брони у юнита станет старый тип брони + 2.
Аналогично и с другими.
Если же номер нового типа брони больше 7 (Unarmored), то будет установлен тип Unarmored.
28

» WarCraft 3 / Можно ли реализовать подобное без орб эффектов?

можно было и не выключать триггер, а обойтись логической переменной.
В итоге у тебя сработает триггер, начнётся проверятся условие. Зачем так, если можно просто выключить триггер, это обойдётся в меньше строк кода и без создания переменных.
28

» WarCraft 3 / Можно ли реализовать подобное без орб эффектов?

Буквально вчера такое же разбирал у себя. Краш лечится предусловием. Перед нанесением урона сохранить в Custom Value (UserData) боевой единицы какое-то число, которое бы говорило о нанесении урона, после нанесения урона - убираете. Для триггера, ловящего урон поставить условие, что юниты с таким установленным числом не проходят по событию детекта урона (чтобы триггерный урон не ловился и не получалась рекурсия).
Custom Value может использоваться.
Вот нормальное решение.
call DisableTrigger(GetTriggeringTrigger())
call UnitDamageTargetBJ( GetEventDamageSource() , GetTriggerUnit(), GetEventDamage()*5, ATTACK_TYPE_HERO, DAMAGE_TYPE_NORMAL )
call EnableTrigger(GetTriggeringTrigger())
28

» WarCraft 3 / GetRealId( )

Попробовал return bug, возвращает уникальные значения у real'ов, имеющих 31 символа после запятой, после 32 символа начинает возвращать 0:
31 символ после запятой? JASS неадекватно обрабатывает числа с более 9-ти знаками после запятой, и даже в некоторых числах, у которых знаков после запятой меньше 9, совершает ошибки.
Вот статья.
также, что удивительно, одинаковые числа, но имеющие разное кол-во введённых символов выдают разные числа:
Причина этому дана выше.
28

» WarCraft 3 / GetRealId( )

Тогда каждый экземпляр структуры будет обладать уникальным целочисленным значением в диапазоне от 1 до 8190 (или больше, если в патче 1.28+), эдакая ссылочная обертка для примитивного типа.
Вот кстати да, можно же сделать структуру! Но the return-loop hack лучше, потому что ограничений нет, в отличие от структур.
28

» WarCraft 3 / GetRealId( )

The return-loop hack в помощь.
В математике R не ограничено, но наш мир ограничен, потому число действительных чисел ограничено в программировании. Каждому целому числу сопоставлено число с плавающей точкой.
Не используй R2S, это R2SW с точностью 3. Лучше используй R2SW с точностью -1.
function R2SX takes real r returns string
    return R2SW(r, 0, -1)
endfunction
28

» WarCraft 3 / Скилл под лупу (Утечки)

Вот только DracoL1ch наоборот говорил, что лучше куча таймеров, чем 1 таймер с if-ами внутри его функции.
В цитате говорится, что периодический таймер лучше, чем периодический триггер, но не говорится, что периодический таймер хуже, чем непериодический.

Из всех проблем с периодическими таймерами я знаю только баг с ResumeTimer(). А ещё вроде бы периодический таймер будет точнее, чем перезапуск непериодического.