15

» WarCraft 3 / Дебаггер Lua

Я вообще не использую кондишены.
То есть система работает полноценно только для тех, кто не использует кондишены?
15

» WarCraft 3 / Дебаггер Lua

А TriggerAddCondition не нужно хукать?
prog:
а вот возможность включить-выключить его одним флагом вполне пригодится.
Просто выключить триггер в который код был скопирован? Или система подразумевает редактирование war3map.lua?
15

» WarCraft 3 / Объясните как сейчас всё существует

когда я выкладывал мемхак, я надеялся, что люди будут его копать и изучать ASM так же рьяно, как я
Чтобы о существовании твоего мемхака просто узнать нужно усилия приложить. Единственная вменяемая статья, описывающая что это вообще такое и та на хайве.
15

» WarCraft 3 / Объясните как сейчас всё существует

Но вы можете быть честным и не пользоваться таким преимуществом, а просто делать новые карты уйдя от стандартов и гуёв 2003 года
И ведь никто не предложит главного: втихаря ставить порнуху на рабочий стол, пока игрок возводит новый зиккурат.
15

» WarCraft 3 / Разница запуска таймера

Proshel_Doty, представь себе некий яд, наносящий урон каждую 1 секунду. Для этого нужен периодический таймер. Но вот проблема, ты хочешь чтобы яд наносил урон, помимо прочего, еще и в момент наложения. Можно было бы написать избыточный код, производящий нанесение урона перед запуском таймера, а можно просто запустить сам таймер с интервалом 0 секунд, а затем перезапускать его изнутри как в твоем втором примере..
15

» WarCraft 3 / Разница запуска таймера

С точки зрения исполнения почти никакой.
С точки зрения оптимизации, это один дополнительный вызов функции на каждый тик таймера.
15

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

я тебе дал пример что бы ты сам разобрался что и как сделано, ну и вынес для себя что-то полезное, не просто копироваться-вставить-отрезать.
А готовое тебе никто не даёт.
Ты ведь понимаешь, что ты в разделе заказов находишься?
15

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

Определись.
Это было описано
Когда наложено кровотечение (...) юнит начинает терять свои хп в размере скажем 1% от текущего здоровья (если юнит стоит)
Непонятно другое, как должна терять здоровье стоячая цель - ежесекундно или за каждую атаку.
15

» WarCraft 3 / Редакторы карт WarCraft 3

Принятый ответ
Альтернатив от игроков пока не предвидится. После выхода игры, практически вся вспышка энтузиазма быстро охладилась.
Однако, недавно выяснилось, что функционал триггеров (а быть может и чего-то еще) достаточно просто можно расширить. Мож чаво и появится.
15

» WarCraft 3 / Pick every unit

Нет, всё-таки она не с работает с физ.размерами юнитов.
Вот более надежный способ проверки
Если способность действует по области, то ее круг выделения всегда учитывает физический размер юнита. Можешь заметить, что достаточно коснуться краешком области действия способности юнита, как тот тут же выделяется зеленым. Здесь видно, проверка IsUnitInRangeXY соответствует физическому выделению юнита способностью.
Загруженные файлы
15

» WarCraft 3 / Добавить функцию в редактор триггеров Reforged Lua

Потестил, все оказывается работает - события, действия, функции, категории и т.д.
Спойлер
Я хз что тут тогда полгода сопли по стенке размазывают, работы просто океан.
Загруженные файлы
15

» WarCraft 3 / Добавить функцию в редактор триггеров Reforged Lua

В общем надо развивать эту тему
Создавай репозиторий на GitHub с именем GUIStdLib. Будет потихоньку коммитить туда весь недостающий функционал из common.j
15

» WarCraft 3 / как включить локальные файлы в Reforged

У меня по какой-то причине локальные файлы больше не работают. Поле в регистре есть, но MiscData.txt в папке UI больше ни на что не влияет.
15

» WarCraft 3 / Добавить функцию в редактор триггеров Reforged Lua

что значит нет, способ описанный в статье на которую приведена ссылка вполне должен работать
В Рефорже должен работать?
15

» WarCraft 3 / Карта такая не лагала не лагала, а потом каааак начала лагать!

Где-то работает таймер с малым (нулевым) интервалом. Может в триггерах, может в редакторе объектов у какой-то способности/баффа.
15

» StarCraft 2 / Обучение редактору StarCraft II

Вот только, как помню, в детстве мы с друзьями залипали в редакторе абсолютно бесплатно,
Ну так мы не друзья. И мы больше не в детстве. Мама с папой (у кого таковые имеются) если вообще помогают, то не обеспечивают.
Mexaz:
Так что изменилось-то с тех времён?
В те времена не были так развиты электронные платежи, денег у людей тоже не было. Да и работал ты, в те времена, с куда более легким в освоении продуктом. Ну и смотреть выше.
Mexaz:
Али Близзард стал зарплату картоделам платить?
Близзард позволяет собирать пожертвования. Карту ты не продаешь, но за работу какие-то деньги получить можешь. Это, кстати, работает и в WC3, где некоторые встраивают в карту функционал за донат или создают страницу на патреоне.
Mexaz:
В чём смысл того, чтобы за это платить?
Смысл в капитализме. Человек вынужден зарабатывать деньги, но вместо зарабатывания денег, он тратит время, чтобы натаскать тебя в каком-то там редакторе. Нужно значит как-то компенсировать убыток.
15

» WarCraft 3 / [lua] Функция вывода урона

может у меня комп слабый или я хз, но когда я последний раз перебирал _G были жесткие фризы.
Даже будь оно и так (хотя, как мне кажется, под "перебирал" подразумевается print гигантского массива информации), таблицы из моего примера с типами урона/атаки/оружия создаются единожды, в процессе инициализации карты. В процессе игры обход _G не осуществляется, соответственно и фризов быть не может.
15

» WarCraft 3 / [lua] Функция вывода урона

шо это
Ищем среди глобальных переменных те, чьи имена начинаются с "WEAPON_TYPE_".
Записываем совпадения в новую таблицу, используя значения этих переменных как ключ, а имена как значение.
При получении урона, достаем из созданной таблицы имя типа урона по типу урона.
15

» WarCraft 3 / [lua] Функция вывода урона

Спойлер
do
    function string.startsWith(str, sub)
        return string.sub(str, 1, string.len(sub)) == sub
    end

    local weaponTypeNames = {}

    for k, v in pairs(_G) do
        if k:startsWith("WEAPON_TYPE_") then
            weaponTypeNames[v] = k
        end
    end
    
    _G["WeaponType2String"] = function(wp)
        return weaponTypeNames[wp]
    end
end