28

» WarCraft 3 / Движение камеры за курсором.

jasonrus96, координаты мыши нельзя отловить? Разрешение вара? Сглаживание сделать нельзя? Подключить smooth factor?
28

» WarCraft 3 / Что делать если скрытая абилка стоит на месте кнопки атаки? World Editor.

LastUchiha, ээ.. честно говоря я ожидал что-то эпичное. Ты более менее вывез тут исключительно за счёт импортированных спецэффектов, и то, даже на средний уровень не тянет. Попробуй переставить это всё на стандарт и поймёшь как убого оно выглядит. Тебе даже код особо не нужен - создать гоблина подрывателя с моделькой тучки и временем жизни. Я просто сам не могу закончить собственный спеллпак повелителя грома много лет из-за того, что не знаю как эпично оформить ульту, чтобы было на уровне пирокластического уничтожения или метеорита, который я сюда ещё не платил, но могу скинуть в личку видосик потом, если интересно. Оба спелла выглядят величественно по массивности, и при этом не замороченные, ибо задача в аое уроне, просто насрать спецэффектами. Да и спустя столько лет я понимаю, что 2 спелла из пака грома нужно переделывать, по сути мне там нравится только пассивка, которую сегодня рефакторил, и ешка (рывок за спину с ударом), над остальным буду думать, чтобы сделать что-то более оригинальное, но я не думаю что приду к чему-либо, ибо сейчас там очень хорошая мультипликация присутствует
28

» WarCraft 3 / Приказ smart в нейтральное здание в тумане

можно костылями попробовать вставить затычку, если точка приказа находится в тумане войны - выбрать юнитов в радиусе, таким образом ты сможешь получить 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

<<

можно и более тупым способом - отдать приказ smart в точку приказа, только триггер нужно отключить перед отдачей, чтобы не зациклился
Загруженные файлы
28

» WarCraft 3 / Атака и смятение вражеских юнитов

nazarpunk, можно игрока сделать враждебным самому себе? ппес приколы, мне даже в голову никогда не приходило затестировать подобное
28

» WarCraft 3 / Anime effects pack

SсRealm, я думаю залить сюда карту-шаблон с этими эффектами, чтобы можно было сразу всё в игре просмотреть и выбрать для себя нужные. Потому что у меня на импорт всего ушло где-то 5-10 минут с прогой
28

» WarCraft 3 / Улучшение на скорость бега.

OVOgenez, а ты тестируешь изменение скорости после того, как отдал приказ мува? потому что, например, если выдать ботинок во время движения юнита, его скорость не изменится до получения приказа
28

» WarCraft 3 / Улучшение на скорость бега.

ты же не упёрся в стандартный лимит 450, либо, если менял константы, 522?
28

» WarCraft 3 / Какие ошибки допущены в данной способности? Jass.

LastUchiha, просто чтобы ты знал, работа с переменными происходит быстрее, чем с вызовом функций, для остальных интересующих тебя вещей существуют бенчмарки в мемхаке/южапи, балуйся
28

» WarCraft 3 / Какие ошибки допущены в данной способности? Jass.

LastUchiha, этот вопрос уже не столь к структурам относится, вирт машина читает быстрее последнюю созданную переменную, т.е. локалки, поэтому доступ к ним происходит быстрее, но это наносекунды и на игру не влияет. Глобалки, в отличии от локалок, обнулять не нужно, поэтому и существуют темповые переменные, чтобы, к примеру, не создавать каждый раз группу при необходимости выбора юнитов
Если возвращаться к структурам, то опять же, сохранять каждое значение под определённым ключем, в частности, если ты юзаешь стрингхэши, а потом ещё и выгрузка всех этих значений с последующим сейвом при их изменении - обойдётся тебе куда дороже, чем выгрузка целочисленной для работы со структурой, я уже молчу о банальном удобстве
28

» WarCraft 3 / Какие ошибки допущены в данной способности? Jass.

LastUchiha, нет, переживать не стоит. Будет оптимизированней, чем обработка локальных переменных функциями Load/Save и StringHash. Жопа отстроена не будет, если не забудешь уничтожать структуры по их ненужде (окончание спелла, к примеру, ибо вряд-ли у тебя будет 9к кастов одновременно)
28

» WarCraft 3 / Какие ошибки допущены в данной способности? Jass.

LastUchiha, он просто хейтит в то, во что они в коде превращается, и типа если тебе структуру аргументом в функцию передавать не нужно, то и смысла от неё нет, не обращай внимания
28

» WarCraft 3 / Какие ошибки допущены в данной способности? Jass.

LastUchiha, это не локалки, а глобалки. Лучше в личку спрашивать, уведомления сайта не работают
28

» WarCraft 3 / Как правильно обнулять данные в структуре? vJass.

Я же тебе кидал пример с созданием, записью, выгрузкой и обнулением структуры..