Yury13, preloader, т.к в варкравте используется асинхронная подгрузка данных, то иконки и тексты меню задания не грузятся пока вы их не смотрите.
с помощью Preload (гугли статью) можно узнать что подгружает движок в момент открытия меню задания.
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
Вот код для вручения руны любому юниту, важно, проверяем жив ли юнит, чтобы не вручить способность сдохшему юниту и не словить фатал.
Ikobot, в инструментах (tools), wc3namescaner, внизу будет пункт - запустить варкравт 3 и сканировать имена.
Unryze реализовал хук вара, который позволяет выуживать из оперативки, выделенной под вар, загруженный в карту импорт, так что было бы желание, даже из запрошенных микс архивов выудить можно данные.
Ничего дефолтного заменить нельзя, можно сделать свой аналог в редакторе триггеров, тут правда будет проблема с отображением этих характеристик, в какой-нить рпг их можно вывести в мультибор, и изменять вручением\удалением способностей, на скажем защиту, резист, скорость бега, и т.п
Урон от огня или чето подобное реализуется системой детекта урона.
Extremator, Это мало вероятно, даже в течении игры, в лтд в среднем 150 юнитов раз в 2-3 минуты, это не "тысячи и сотни юнитов на карте" как вещает наш друг. Потом даже 1000 событий на триггер - ерунда, они расходуют очень мало озу, и триггер после волны можно удалить вместе с ивентами, когда все юниты подохнут.
Вам нужно изучить в редакторе звука как сделаны озвучки стандартных юнитов, тогда поймете по какому принципу формируются пакеты озвучки из отдельных файлов. Самый простой вариант - менять дефолт на импорт, карта Funny Bunny egg hunt от близзардов в помощь, это наглядное пособие по импорту озвучки и не только.
Стандартными средствами особо никак, импакт отследить можно лишь делая хук на мемхаке, обычно просто отлавливают урон.
Особенно портит жизнь щиты и способности со снарядами, в спелл щит снаряд то может и прилететь но урона не нанести.
Про тысячи юнитов - ты это харе врать, у тебя на 500+ игра зависнет, детект через урон как раз быстрее ваших костылей с замахами и даммиками. Событие - юнит получает урон есть на мемхаке и на 1.31+ на всех юнитов на карте, т.е глобальное, но это не обязательно, нет ничего плохого что ты навшал сотню событий на триггер, если все юниты умерли (и не будут воскрешены) то триггер можно удалить, и создать заного, таким образом избежать утечек.
Вычисляешь координаты кастера, от него уже делаешь расчет точек в цикле, для каждого расчета, есть функция защающая время жизни, так же можно проще сделать задержку без вейтов.
Открывать ненужно, ибо вам ничего это не даст, все в "перемолотом" виде и раз вы задаёте такие вопросы, изменить там вряд-ли что сможите, нужно найти читора который ломанет карту под вас или играть в старую версию.
local unit cast = GetSpellAbilityUnit()
local unit dummy = CreateUnit( GetOwningPlayer(cast),'hmtm', GetUnitX(cast), GetUnitY(cast), 270.00 ) // создаем юнита по принципу: игрок, ид, х, у, угол взгляда.
У тебя же все неправильно, глобалки какие то присваиваются перед локалками, такого быть не должно! Сначала идут локальные переменные, как в примере кода, сразу заносишь в них значения, это не гуи и всякие глупоконструкции тут никчему.
Далее что должен делать этот спелл, ибо судя по коду какая то ахинея и замысел не просматривается, опиши подробно словами что должно быть?
Далее использование точек и прочих BJ функций с ними вроде PolarProjectionBJ(GetRectCenter(RectFromCenterSizeBJ(GetUnitLoc(udg_Unitper) - плодят утечки, и нафиг ненужны, ибо координаты рулят.
quq_CCCP, А если ещё глубже посмотреть?) Вот представим что есть 10 триггеров которые будут запущены каждый по истечении 5 сек. игрового времени, все эти триггеры будут выполняться последовательно ведь? на очень большой вычислительной скорости разумеется
quq_CCCP, у посоха возвращения нет ведь анимации для героя, откуда там каст тайм не пойму?
easypeasy, само собой триггеры выполняются последовательно, как и все действия в коде карты, параллельно там ничего не происходит.
Ты в любом случае поворачиваешься к цели и сбиваешь текущий приказ, это уже касттайм, то что ты там не пляшешь а смотришь на цель - не принципиально важно, мгновенных абилок штук 6 на весь варкравт, и они внезапно без указания цели - вроде виндвалка или божественного щита. Хоть и предметы не заставляют героя порой проигрывать визуальные анимации вроде 'Spell', 'channel' кроме некоторых исключений, мнгновенной это абилку не делает.
easypeasy, смерть и получение урона - происходят не одновременно, + снаряд то еще и юнита догнать может, а так же всякие яды, горения, отравления - они дейсвтуют, юнит телепортировался и подох, ибо ничего не мешает передвигать свежеподохших юнитов. Есть еще 1 фишка, у посоха есть каст тайм и он телепортируется не мгновенно, в юнита запустил снаряд юнит дальнего боя, и в момент прилета снаряда ты кастанул телепорт, юнит улетит, но по прелету у него отнимется хп от удара, и он умрет.
» WarCraft 3 / Игра подвисает при нажатии клавиши f9
с помощью Preload (гугли статью) можно узнать что подгружает движок в момент открытия меню задания.
Ред. quq_CCCP
» WarCraft 3 / Массовая невидимость
Там все описано и есть примеры, что надо делать. Руны прекрасно работают у любых типов юнитов, главное чтобы в них не оказались способности, требующие наличие красного плюса (Это отдельная абилка, которая есть лишь у героев) если юнит не герой, это все предметы на изменнение силы, ловкости и разума героев, это способность механика 'ANeg' = техника, все способности что взаимодействуют с опытом героя, или прочими чисто геройскими фишками.
Прочие же, вроде рун на повышение здоровья будут работать исправно, естественно нужно вручить инвентарь, дать руну, затем инвентарь удалить.
» WarCraft 3 / Игра подвисает при нажатии клавиши f9
» WarCraft 3 / Массовая невидимость
» WarCraft 3 / Работает ли GetItemTypeId
» WarCraft 3 / Работает ли GetItemTypeId
» WarCraft 3 / Полное восстановление "поврежденного" листфайла карты.
Unryze реализовал хук вара, который позволяет выуживать из оперативки, выделенной под вар, загруженный в карту импорт, так что было бы желание, даже из запрошенных микс архивов выудить можно данные.
» WarCraft 3 / Полное восстановление "поврежденного" листфайла карты.
» WarCraft 3 / Собственные характеристики для героя
Урон от огня или чето подобное реализуется системой детекта урона.
» WarCraft 3 / Мульти атака одного юнита.
» WarCraft 3 / Как сделать событие срабатывания пассивки
» WarCraft 3 / Как отловить момент попадания снаряда
» WarCraft 3 / Как сделать кастомную озвучку
» WarCraft 3 / Как отловить момент попадания снаряда
Особенно портит жизнь щиты и способности со снарядами, в спелл щит снаряд то может и прилететь но урона не нанести.
Про тысячи юнитов - ты это харе врать, у тебя на 500+ игра зависнет, детект через урон как раз быстрее ваших костылей с замахами и даммиками. Событие - юнит получает урон есть на мемхаке и на 1.31+ на всех юнитов на карте, т.е глобальное, но это не обязательно, нет ничего плохого что ты навшал сотню событий на триггер, если все юниты умерли (и не будут воскрешены) то триггер можно удалить, и создать заного, таким образом избежать утечек.
» WarCraft 3 / Lua или jass?
» WarCraft 3 / Первый призванный юнит, не хочет выполнять приказ
» WarCraft 3 / Первый призванный юнит, не хочет выполнять приказ
» WarCraft 3 / как открыть карту ?
» WarCraft 3 / Первый призванный юнит, не хочет выполнять приказ
Далее что должен делать этот спелл, ибо судя по коду какая то ахинея и замысел не просматривается, опиши подробно словами что должно быть?
Далее использование точек и прочих BJ функций с ними вроде PolarProjectionBJ(GetRectCenter(RectFromCenterSizeBJ(GetUnitLoc(udg_Unitper) - плодят утечки, и нафиг ненужны, ибо координаты рулят.
» WarCraft 3 / Отследить нажатие кнопки "Строительство"
» WarCraft 3 / Механика посоха спасения
» WarCraft 3 / Механика посоха спасения
Ты в любом случае поворачиваешься к цели и сбиваешь текущий приказ, это уже касттайм, то что ты там не пляшешь а смотришь на цель - не принципиально важно, мгновенных абилок штук 6 на весь варкравт, и они внезапно без указания цели - вроде виндвалка или божественного щита. Хоть и предметы не заставляют героя порой проигрывать визуальные анимации вроде 'Spell', 'channel' кроме некоторых исключений, мнгновенной это абилку не делает.
» WarCraft 3 / Механика посоха спасения
» WarCraft 3 / Механика посоха спасения