18

» WarCraft 3 / Триггерно добавляем урон герою

pro100master, не было времени понимать как там работал цикл, коде выше я написал за минуту давным давно
И чуть неправильно написал)
    if( damage >= 2048 ) then
        call UnitAddAbility(u, Damage2048)
        set damage = damage - 1024
    endif
Надо поменять на
    if( damage >= 2048 ) then
        call UnitAddAbility(u, Damage2048)
        set damage = damage - 2048
    endif
18

» WarCraft 3 / Как открыть в редакторе сейв?

Могу предположить что можно через прелоад вытащить информацию о координатах разрушаемых объектов, высоте ландшафта, тайлсетов и т.д
А потом с помощью программы собрать это всё в стандарты редактора

Но сначала надо написать программу)
18

» WarCraft 3 / Триггерно добавляем урон герою

Я делал зеленый урон очень просто, степенью двойки
function UnitSetDamage takes unit u, real r returns nothing
    local integer damage = R2I(r+.5)
    
    call UnitRemoveAbility(u, Damage2048)
    call UnitRemoveAbility(u, Damage1024)
    call UnitRemoveAbility(u, Damage512)
    call UnitRemoveAbility(u, Damage256)
    call UnitRemoveAbility(u, Damage128)
    call UnitRemoveAbility(u, Damage64)
    call UnitRemoveAbility(u, Damage32)
    call UnitRemoveAbility(u, Damage16)
    call UnitRemoveAbility(u, Damage8)
    call UnitRemoveAbility(u, Damage4)
    call UnitRemoveAbility(u, Damage2)
    call UnitRemoveAbility(u, Damage1)
    
    if( damage == 0 ) then
        return
    endif
    
    if( damage >= 2048 ) then
        call UnitAddAbility(u, Damage2048)
        set damage = damage - 1024
    endif
    if( damage >= 1024 ) then
        call UnitAddAbility(u, Damage1024)
        set damage = damage - 1024
    endif
    if( damage >= 512 ) then
        call UnitAddAbility(u, Damage512)
        set damage = damage - 512
    endif
    if( damage >= 256 ) then
        call UnitAddAbility(u, Damage256)
        set damage = damage - 256
    endif
    if( damage >= 128 ) then
        call UnitAddAbility(u, Damage128)
        set damage = damage - 128
    endif
    if( damage >= 64 ) then
        call UnitAddAbility(u, Damage64)
        set damage = damage - 64
    endif
    if( damage >= 32 ) then
        call UnitAddAbility(u, Damage32)
        set damage = damage - 32
    endif
    if( damage >= 16 ) then
        call UnitAddAbility(u, Damage16)
        set damage = damage - 16
    endif
    if( damage >= 8 ) then
        call UnitAddAbility(u, Damage8)
        set damage = damage - 8
    endif
    if( damage >= 4 ) then
        call UnitAddAbility(u, Damage4)
        set damage = damage - 4
    endif
    if( damage >= 2 ) then
        call UnitAddAbility(u, Damage2)
        set damage = damage - 2
    endif
    if( damage >= 1 ) then
        call UnitAddAbility(u, Damage1)
    endif
endfunction
В доте такой же механизм, но там циклом добавляется урон
Там где Damage - это обычная абилка от когтей, цифра - урон
18

» WarCraft 3 / мини карта

Дополнительно => Игровой интерфейс => Пиктограмма: Нейтральные на мини-карте
Ставишь там обычный пробел и мини карта перестает работать
18

» WarCraft 3 / Что лучше для сопротивления магии

quq_CCCP:
Складывается только благословение элуны или дефенд - фактор урона от магии - 1 это 100% урона, 0.70 это 70% урона , т.е из 100 прошло только 70 урона, 30 заблокировалось.
разве не предметные абилки складываются?
или это уже от самой абилки зависит?
Просто у меня откуда то этот стереотип, типа не предметые абилки не суммируются, а только лишь работает самая сильная и т.д
18

» XGM Конкурсы / Warcraft III Mini-Game Contest-2018

Танчики в мультиборде можно делать?)
Ну я имею в виду мини-игру в мультиборде
Просто интересуюсь, делать не буду
18

» WarCraft 3 / Приколы книги заклинаний

bazeba:
В способностях. гдето рядом с описаниями, (не могу скрин послать на данный момент) есть пунктик с ID приказа, просто поставь различные, по сути должно помочь
это только у канала работает, на остальных абилках даже если поменять id - то ничего не произойдет
18

» WarCraft 3 / Отлично, у меня сломалась карта.

Есть ещё вариант, если ты тестил карту в варкрафте, то последняя тест-карта будет по пути Maps/Test
18

» WarCraft 3 / Дота, редактор и триггеры

PT153, можешь ещё добавить деобфусцированный код из свежих версий доты, на xgm много такого материала)
18

» WarCraft 3 / Дота, редактор и триггеры

только j файл разбирать
это если деобфускатор хороший будет)
А если пытаться что то разобрать без деобфускации, к примеру крафт итемов или юзанье итемов - то глаза вытекут
18

» WarCraft 3 / В чем ошибка?

Во втором действии ты добавляешь юнита на которого среагировал триггер - это неправильно
В первом действии и так создается группа с 12 юнитами
Используй "Last Created Unit Group"
И не забудь после приказа всей группе, саму группу удалить (юниты не удалятся, а группа да)
call DestroyGroup(bj_lastCreatedGroup)
Загруженные файлы
18

» WarCraft 3 / После слк оптимизации ошибка

Единственный адекватный деслк - это Silk Object 3, я им доту восстанавливал)
Остальные деслк типа w3map restorer тупо съедают объекты и потом сидишь думаешь где та абилка из спеллбука
18

» WarCraft 3 / Что делать?

1-2 месяца на гуи, потом локалки, хештаблица и функции в кастом скрипте карты (всё это комбинировал с гуи)
Кстати, хештаблица полезна не только в сочетании с таймером
Потом гуи стал очень сложен и неудобен, когда я начинал писать "крупные алгоритмы" и из за этого я начал конвертировать гуи в jass и там писать код, при этом постоянно смотрел конвертированные из гуи нужные мне функции (но со временем отвык)
Одновременно с этим начинал вспоминать как работают потоки и что такое однопоточность
После всего этого я решил почитать о структурах, помню что когда то в C++ подобное видел
В итоге я начал на cJass писать и я скажу: это невероятно удобно
Вместе с этим в Q/A смотрел на чужие вопросы и запоминал всякие фичи
Суммарно это заняло ~7 месяцев
18

» WarCraft 3 / Выбрать рельеф

Steal nerves, но ведь придется алгоритм урезать) Короче, проехали)
Я вот переделал алгоритм, чтобы он делал всё расчеты ещё на экране загрузки.
К примеру сейчас 480x480 на карте полностью заполненной водой, алгоритм тратит 10 секунд, если без воды то 6 секунд
Для сравнения, раньше было 27 секунд и жуткие лаги в начале игры

Steal nerves:
Жаль что точки нельзя добавлять в регион (походу туда добавляют инфу ректов minx,maxx,many,maxy)
RegionAddCell( CustomRegion, pointX, pointY ), только точка туда добавится как область 32x32

UPD:
обновил xgm.guru/p/wc3/enter-water
надо ждать пока опубликуют
18

» WarCraft 3 / Выбрать рельеф

8gabriel8, да, но там для детекта входа/выхода в воду
Можно конечно поменять, чтобы считывало не воду, а землю
И я уверен можно переделать тот алгоритм, чтобы он сделал все "расчеты" ещё на экране загрузки Может быть сейчас займусь этим
18

» WarCraft 3 / Реально вернуть инициализацию в нормальный вид

В теории да
Технически - если хватит сил и терпения самому восстановить или написать программу
18

» WarCraft 3 / Вылет на полосе загрузки у некоторых игроков

Вообще-то это единица в 1 степени)))
P.S я знаю что такое нулевая степень, просто боялся что вар не схавает такую текстуру)
18

» WarCraft 3 / Вылет на полосе загрузки у некоторых игроков

8gabriel8:
Рад за тебя) Ну ты знаешь, как меня отблагодарить (плюсами)
никогда не ставил плюсы/минусы, но сейчас уже поставил)
18

» WarCraft 3 / Вылет на полосе загрузки у некоторых игроков

8gabriel8, бесконечно благодарю)))
удалил две текстуры, одна 1x1 и другая 70x70 - всё стало работать)))
Сейчас сделаю 2x2 и 64x64 и будет всё шикарно)
18

» WarCraft 3 / Вылет на полосе загрузки у некоторых игроков

Вот блин
Всё из за настройки "Качество текстур"

А что делать, я не совсем понял)
18

» WarCraft 3 / Вылет на полосе загрузки у некоторых игроков

8gabriel8:
Запускал свою карту на минимальных настройках графики?
хм, ща попробую
Да, вылетел варкрафт с черным экраном. Нифига себе)))
Сейчас научным методом выясню какая настройка делает такое