32

» WarCraft 3 / Игра подвисает при нажатии клавиши f9

Yury13, preloader, т.к в варкравте используется асинхронная подгрузка данных, то иконки и тексты меню задания не грузятся пока вы их не смотрите.
с помощью Preload (гугли статью) можно узнать что подгружает движок в момент открытия меню задания.
32

» WarCraft 3 / Массовая невидимость

Bergi_Bear, не стоит давать предметы на статы, не героям, прочим же юнитам с инвентарём можно, работает.

Я же писал статью ссылка
Там все описано и есть примеры, что надо делать. Руны прекрасно работают у любых типов юнитов, главное чтобы в них не оказались способности, требующие наличие красного плюса (Это отдельная абилка, которая есть лишь у героев) если юнит не герой, это все предметы на изменнение силы, ловкости и разума героев, это способность механика 'ANeg' = техника, все способности что взаимодействуют с опытом героя, или прочими чисто геройскими фишками.
Прочие же, вроде рун на повышение здоровья будут работать исправно, естественно нужно вручить инвентарь, дать руну, затем инвентарь удалить.


function UnitAddPowerUpItem takes unit u, integer id returns boolean // автор DracoL1ch, помогает безопасно вручать руны даже не героям.
    local item it
    local boolean invAdded = false
    local boolean added = true
    
    set it = CreateItem( id, GetUnitX( u ), GetUnitY( u ) )
    if GetUnitAbilityLevel(u, 'AInv') == 0 then     //AInv -> Inventory
        set invAdded = true
        call UnitAddAbility(u, 'AInv')              //AInv -> Inventory
    endif
    
    if UnitAddItem(u, it) == false then
        set added = false
    elseif GetWidgetLife(it) > 0.00 then
        set added = false
    endif
    
    call RemoveItem(it)
    
    if invAdded then
        call UnitRemoveAbility(u, 'AInv')           //AInv -> Inventory
    endif

    set it = null
    return added
endfunction

function IsUnitDead takes unit u returns boolean 
    return IsUnitType( u, UNIT_TYPE_DEAD ) or GetUnitTypeId( u ) < 1
endfunction
Вот код для вручения руны любому юниту, важно, проверяем жив ли юнит, чтобы не вручить способность сдохшему юниту и не словить фатал.
32

» WarCraft 3 / Игра подвисает при нажатии клавиши f9

Подгружать тексты надо прелоадер ом, или создавать в коде, иконки тоже надо подгружать.
32

» WarCraft 3 / Массовая невидимость

Ну а вручение руны никто чет не догадался? Не требует даммиков, мгновенное, можно сделать и виндвалк.
32

» WarCraft 3 / Работает ли GetItemTypeId

Я не зря скинул функцию, она требует предмет (именно указатель на реально существующий на карте предмет) и возвращает его ро код. в виде целого числа.
32

» WarCraft 3 / Работает ли GetItemTypeId

Ну покрайней мере работала, патч то какой? Скрина невидно.
native GetItemTypeId takes item i returns integer
32

» WarCraft 3 / Полное восстановление "поврежденного" листфайла карты.

Ikobot, в инструментах (tools), wc3namescaner, внизу будет пункт - запустить варкравт 3 и сканировать имена.
Unryze реализовал хук вара, который позволяет выуживать из оперативки, выделенной под вар, загруженный в карту импорт, так что было бы желание, даже из запрошенных микс архивов выудить можно данные.
32

» WarCraft 3 / Полное восстановление "поврежденного" листфайла карты.

Ну там же есть у ладика тула, автопоиск имен во время игры, когда ты играешь, все что грузит игра - попадает в файллист.
32

» WarCraft 3 / Собственные характеристики для героя

Ничего дефолтного заменить нельзя, можно сделать свой аналог в редакторе триггеров, тут правда будет проблема с отображением этих характеристик, в какой-нить рпг их можно вывести в мультибор, и изменять вручением\удалением способностей, на скажем защиту, резист, скорость бега, и т.п
Урон от огня или чето подобное реализуется системой детекта урона.
32

» WarCraft 3 / Как отловить момент попадания снаряда

Extremator, Это мало вероятно, даже в течении игры, в лтд в среднем 150 юнитов раз в 2-3 минуты, это не "тысячи и сотни юнитов на карте" как вещает наш друг. Потом даже 1000 событий на триггер - ерунда, они расходуют очень мало озу, и триггер после волны можно удалить вместе с ивентами, когда все юниты подохнут.
32

» WarCraft 3 / Как сделать кастомную озвучку

Вам нужно изучить в редакторе звука как сделаны озвучки стандартных юнитов, тогда поймете по какому принципу формируются пакеты озвучки из отдельных файлов. Самый простой вариант - менять дефолт на импорт, карта Funny Bunny egg hunt от близзардов в помощь, это наглядное пособие по импорту озвучки и не только.
32

» WarCraft 3 / Как отловить момент попадания снаряда

Стандартными средствами особо никак, импакт отследить можно лишь делая хук на мемхаке, обычно просто отлавливают урон.
Особенно портит жизнь щиты и способности со снарядами, в спелл щит снаряд то может и прилететь но урона не нанести.
Про тысячи юнитов - ты это харе врать, у тебя на 500+ игра зависнет, детект через урон как раз быстрее ваших костылей с замахами и даммиками. Событие - юнит получает урон есть на мемхаке и на 1.31+ на всех юнитов на карте, т.е глобальное, но это не обязательно, нет ничего плохого что ты навшал сотню событий на триггер, если все юниты умерли (и не будут воскрешены) то триггер можно удалить, и создать заного, таким образом избежать утечек.
32

» WarCraft 3 / Lua или jass?

Ну для гуишника - что то, что то, едино для гуишника. На офф патчах полно багов и проблем, карту писать новичкам сложно будет.
32

» WarCraft 3 / Первый призванный юнит, не хочет выполнять приказ

Вычисляешь координаты кастера, от него уже делаешь расчет точек в цикле, для каждого расчета, есть функция защающая время жизни, так же можно проще сделать задержку без вейтов.
32

» WarCraft 3 / как открыть карту ?

Открывать ненужно, ибо вам ничего это не даст, все в "перемолотом" виде и раз вы задаёте такие вопросы, изменить там вряд-ли что сможите, нужно найти читора который ломанет карту под вас или играть в старую версию.
32

» WarCraft 3 / Первый призванный юнит, не хочет выполнять приказ

local unit cast = GetSpellAbilityUnit()
local unit dummy = CreateUnit( GetOwningPlayer(cast),'hmtm', GetUnitX(cast), GetUnitY(cast), 270.00 ) // создаем юнита по принципу: игрок, ид, х, у, угол взгляда.
У тебя же все неправильно, глобалки какие то присваиваются перед локалками, такого быть не должно! Сначала идут локальные переменные, как в примере кода, сразу заносишь в них значения, это не гуи и всякие глупоконструкции тут никчему.
Далее что должен делать этот спелл, ибо судя по коду какая то ахинея и замысел не просматривается, опиши подробно словами что должно быть?
Далее использование точек и прочих BJ функций с ними вроде PolarProjectionBJ(GetRectCenter(RectFromCenterSizeBJ(GetUnitLoc(udg_Unitper) - плодят утечки, и нафиг ненужны, ибо координаты рулят.
32

» WarCraft 3 / Отследить нажатие кнопки "Строительство"

Кстати есть интересный баг, если открыть руками меню прокачки способностей и реплейснуть (создать заного другого, выбрав триггерно заново) героя, меню прокачки останется открытым =)
32

» WarCraft 3 / Механика посоха спасения

easypeasy, они идут последовательно, но естественно на них отводится некоторое время, условно 1 фрейм.
32

» WarCraft 3 / Механика посоха спасения

easypeasy:
quq_CCCP, А если ещё глубже посмотреть?) Вот представим что есть 10 триггеров которые будут запущены каждый по истечении 5 сек. игрового времени, все эти триггеры будут выполняться последовательно ведь? на очень большой вычислительной скорости разумеется

quq_CCCP, у посоха возвращения нет ведь анимации для героя, откуда там каст тайм не пойму?
easypeasy, само собой триггеры выполняются последовательно, как и все действия в коде карты, параллельно там ничего не происходит.
Ты в любом случае поворачиваешься к цели и сбиваешь текущий приказ, это уже касттайм, то что ты там не пляшешь а смотришь на цель - не принципиально важно, мгновенных абилок штук 6 на весь варкравт, и они внезапно без указания цели - вроде виндвалка или божественного щита. Хоть и предметы не заставляют героя порой проигрывать визуальные анимации вроде 'Spell', 'channel' кроме некоторых исключений, мнгновенной это абилку не делает.
32

» WarCraft 3 / Механика посоха спасения

easypeasy, все таргетные абилки применяются не мгновенно, я думаю это очивидно, ибо мало того что герой махает руками, еще и сбивается текущий приказ.
32

» WarCraft 3 / Механика посоха спасения

easypeasy, смерть и получение урона - происходят не одновременно, + снаряд то еще и юнита догнать может, а так же всякие яды, горения, отравления - они дейсвтуют, юнит телепортировался и подох, ибо ничего не мешает передвигать свежеподохших юнитов. Есть еще 1 фишка, у посоха есть каст тайм и он телепортируется не мгновенно, в юнита запустил снаряд юнит дальнего боя, и в момент прилета снаряда ты кастанул телепорт, юнит улетит, но по прелету у него отнимется хп от удара, и он умрет.