LastUchiha, ээ.. честно говоря я ожидал что-то эпичное. Ты более менее вывез тут исключительно за счёт импортированных спецэффектов, и то, даже на средний уровень не тянет. Попробуй переставить это всё на стандарт и поймёшь как убого оно выглядит. Тебе даже код особо не нужен - создать гоблина подрывателя с моделькой тучки и временем жизни. Я просто сам не могу закончить собственный спеллпак повелителя грома много лет из-за того, что не знаю как эпично оформить ульту, чтобы было на уровне пирокластического уничтожения или метеорита, который я сюда ещё не платил, но могу скинуть в личку видосик потом, если интересно. Оба спелла выглядят величественно по массивности, и при этом не замороченные, ибо задача в аое уроне, просто насрать спецэффектами. Да и спустя столько лет я понимаю, что 2 спелла из пака грома нужно переделывать, по сути мне там нравится только пассивка, которую сегодня рефакторил, и ешка (рывок за спину с ударом), над остальным буду думать, чтобы сделать что-то более оригинальное, но я не думаю что приду к чему-либо, ибо сейчас там очень хорошая мультипликация присутствует
можно костылями попробовать вставить затычку, если точка приказа находится в тумане войны - выбрать юнитов в радиусе, таким образом ты сможешь получить GetOrderTarget
>>
function Trig_Melee_Initialization_Actions takes nothing returns nothing
local group g = CreateGroup( )
local unit u
local real x = GetOrderPointX( )
local real y = GetOrderPointY( )
call BJDebugMsg( "order: " + OrderId2String( GetIssuedOrderId( ) ) )
call BJDebugMsg( "unit: " + GetUnitName( GetOrderTargetUnit( ) ) )
if GetOrderTargetUnit( ) == null and not IsVisibleToPlayer( x, y, GetOwningPlayer( GetTriggerUnit( ) ) ) then
call GroupEnumUnitsInRange( g, x, y, 200.00, null )
loop
set u = FirstOfGroup( g )
exitwhen u == null
call GroupRemoveUnit( g, u )
if IsUnitType( u, UNIT_TYPE_STRUCTURE ) and IsUnitInRangeXY( u, x, y, 0.00 ) then
call BJDebugMsg( "unit from loop: " + GetUnitName( u ) )
endif
endloop
endif
call DestroyGroup( g )
set g = null
endfunction
//===========================================================================
function InitTrig_Melee_Initialization takes nothing returns nothing
set gg_trg_Melee_Initialization = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Melee_Initialization, EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Melee_Initialization, EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER )
//call TriggerRegisterAnyUnitEventBJ( gg_trg_Melee_Initialization, EVENT_PLAYER_UNIT_ISSUED_ORDER )
call TriggerAddAction( gg_trg_Melee_Initialization, function Trig_Melee_Initialization_Actions )
endfunction
SсRealm, я думаю залить сюда карту-шаблон с этими эффектами, чтобы можно было сразу всё в игре просмотреть и выбрать для себя нужные. Потому что у меня на импорт всего ушло где-то 5-10 минут с прогой
OVOgenez, а ты тестируешь изменение скорости после того, как отдал приказ мува? потому что, например, если выдать ботинок во время движения юнита, его скорость не изменится до получения приказа
LastUchiha, просто чтобы ты знал, работа с переменными происходит быстрее, чем с вызовом функций, для остальных интересующих тебя вещей существуют бенчмарки в мемхаке/южапи, балуйся
LastUchiha, этот вопрос уже не столь к структурам относится, вирт машина читает быстрее последнюю созданную переменную, т.е. локалки, поэтому доступ к ним происходит быстрее, но это наносекунды и на игру не влияет. Глобалки, в отличии от локалок, обнулять не нужно, поэтому и существуют темповые переменные, чтобы, к примеру, не создавать каждый раз группу при необходимости выбора юнитов
Если возвращаться к структурам, то опять же, сохранять каждое значение под определённым ключем, в частности, если ты юзаешь стрингхэши, а потом ещё и выгрузка всех этих значений с последующим сейвом при их изменении - обойдётся тебе куда дороже, чем выгрузка целочисленной для работы со структурой, я уже молчу о банальном удобстве
LastUchiha, нет, переживать не стоит. Будет оптимизированней, чем обработка локальных переменных функциями Load/Save и StringHash. Жопа отстроена не будет, если не забудешь уничтожать структуры по их ненужде (окончание спелла, к примеру, ибо вряд-ли у тебя будет 9к кастов одновременно)
LastUchiha, он просто хейтит в то, во что они в коде превращается, и типа если тебе структуру аргументом в функцию передавать не нужно, то и смысла от неё нет, не обращай внимания
» WarCraft 3 / Как при использовании способности перевоплощение обратиться к перевоплащенному юниту
» WarCraft 3 / Движение камеры за курсором.
» WarCraft 3 / Движение камеры за курсором.
» WarCraft 3 / Движение камеры за курсором.
» WarCraft 3 / Приказ smart в нейтральное здание в тумане
» WarCraft 3 / Что делать если скрытая абилка стоит на месте кнопки атаки? World Editor.
» WarCraft 3 / Что делать если скрытая абилка стоит на месте кнопки атаки? World Editor.
» WarCraft 3 / Что делать если скрытая абилка стоит на месте кнопки атаки? World Editor.
» WarCraft 3 / Приказ smart в нейтральное здание в тумане
» WarCraft 3 / Атака и смятение вражеских юнитов
» WarCraft 3 / Атака и смятение вражеских юнитов
» WarCraft 3 / Атака и смятение вражеских юнитов
» WarCraft 3 / Атака и смятение вражеских юнитов
» WarCraft 3 / Что делать если скрытая абилка стоит на месте кнопки атаки? World Editor.
» WarCraft 3 / Anime effects pack
» WarCraft 3 / Улучшение на скорость бега.
» WarCraft 3 / Улучшение на скорость бега.
» Unryze Jass API / [UjAPI] Конкурс Наработок 2024
» WarCraft 3 / Какие ошибки допущены в данной способности? Jass.
» WarCraft 3 / Какие ошибки допущены в данной способности? Jass.
» WarCraft 3 / Какие ошибки допущены в данной способности? Jass.
» WarCraft 3 / Какие ошибки допущены в данной способности? Jass.
» WarCraft 3 / Какие ошибки допущены в данной способности? Jass.
» WarCraft 3 / Какие ошибки допущены в данной способности? Jass.
» WarCraft 3 / Как правильно обнулять данные в структуре? vJass.